From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 15:21:09 2020 Received: (at submit) by debbugs.gnu.org; 17 Dec 2020 20:21:10 +0000 Received: from localhost ([127.0.0.1]:37068 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kpzlt-00050c-CE for submit@debbugs.gnu.org; Thu, 17 Dec 2020 15:21:09 -0500 Received: from lists.gnu.org ([209.51.188.17]:32994) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kpzlq-00050P-D4 for submit@debbugs.gnu.org; Thu, 17 Dec 2020 15:21:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54916) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpzlq-0007AZ-81 for bug-gnu-emacs@gnu.org; Thu, 17 Dec 2020 15:21:06 -0500 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]:38566) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kpzln-0005OL-ML for bug-gnu-emacs@gnu.org; Thu, 17 Dec 2020 15:21:06 -0500 Received: by mail-ej1-x62f.google.com with SMTP id 6so25122733ejz.5 for ; Thu, 17 Dec 2020 12:21:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=m3GF1MicQEYxYcVgQ4Bb0jP3+U37n4Y5DA1a63loXYQ=; b=lYUyIKgnvAQCb7317Lb7mlLg/XnBfF0V3d2eUvctUI1MNNeMNR8YbZUWNquMHVaAoh xw3tiE8UxzfoxZbGqBNPNp0WZP46dcdmpYZrnQfFU/G5DPGc9fL7dHevxTEcPmlpa84Q QTtrEiXxVFT3UgdxsTa8yAKEWVbzF7nAgYpWC5MdDX8sm9d9+cVvcQioX3aZ48tEfxN5 LpC8g2bRr6J7czLcYrfW4zqjOyNNjXsly9h0O1+xiy6MctMjxE7g4j/phZbvf1icvWaZ 45R2Yobcg0sUpWOLQxIE9Dme5Vj2s9avXMMScopvtCr8vK89hX2CeShfpoxkmnO6WNGb gLlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=m3GF1MicQEYxYcVgQ4Bb0jP3+U37n4Y5DA1a63loXYQ=; b=MBHp3MsXzhI3WLOJf7+FOppOxYZAjLfnb0dp67tIZQNJTeR3Bz2p3PwjLQ+WBO9hXR 8Ut96KF5O/eZuU6xYtOuhZIUdpAbPAUY8ogLUw49NWreMcdCAKYd3NDXtxnwBe+FBz8Q KIUeqotr83yvxed3z1grjLwj6wYVsB0/fiIdOSIL3FlBWWB4eMSwXV7DSB8XgVYxrzAG kRsCEOiV+76wFX0P4IWMnuUpmBIGgCoflR5nowht8BYTPWedicZLhMj47+ILzHZfvGvM yt8hGxlUp26TtalAFxbbVIsdco95MGpPk0YYISc4RUeX62ucM3qRYBYFQH51X/5TcOBB NdnQ== X-Gm-Message-State: AOAM530AFXvamsUPk0IDxb4sdCK1p1S42fQuYLN8QtnJt8cqU04LMYT7 PWWRqrlO3guA/7zmzcGk3QeiMadUgTAV7b5VFGlodedTuuk= X-Google-Smtp-Source: ABdhPJzrEQfWtAReqpQzlMJKroW5rzHNbq8vcQMUTZhspnMpy5oU5Ipn1OgjfjB/cKAOi/IXWI6nnEexUet6GvuUtFw= X-Received: by 2002:a17:906:941a:: with SMTP id q26mr737651ejx.227.1608236460723; Thu, 17 Dec 2020 12:21:00 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Thu, 17 Dec 2020 14:20:47 -0600 Message-ID: Subject: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2a00:1450:4864:20::62f; envelope-from=gongyi.liao@gmail.com; helo=mail-ej1-x62f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) I tried to build feature/native-comp branch on Windows 10 using the most up-to-date Msys2 system's mingw-w64-x86_64-gcc and mingw-w64-x86_64-libgccjit as 2020-12-16. The build is configured with flag 'configure --prefix=/home/VWinUser0/Downloads/emacs/native-comp --with-nativecomp' Configured for 'x86_64-w64-mingw32'. Where should the build process find the source code? ../src What compiler should emacs be built with? gcc -g3 -O2 -gdwarf-2 Should Emacs use the GNU version of malloc? no (The GNU allocators don't work with this system configuration.) Should Emacs use a relocating allocator for buffers? no Should Emacs use mmap(2) for buffer allocation? yes What window system should Emacs use? w32 What toolkit should Emacs use? none Where do we find X Windows header files? NONE Where do we find X Windows libraries? NONE Does Emacs use -lXaw3d? no Does Emacs use -lXpm? yes Does Emacs use -ljpeg? yes Does Emacs use -ltiff? yes Does Emacs use a gif library? yes Does Emacs use a png library? yes Does Emacs use -lrsvg-2? yes Does Emacs use cairo? no Does Emacs use -llcms2? yes Does Emacs use imagemagick? no Does Emacs use native APIs for images? yes (w32) Does Emacs support sound? yes Does Emacs use -lgpm? no Does Emacs use -ldbus? no Does Emacs use -lgconf? no Does Emacs use GSettings? no Does Emacs use a file notification library? yes (w32) Does Emacs use access control lists? yes Does Emacs use -lselinux? no Does Emacs use -lgnutls? yes Does Emacs use -lxml2? yes Does Emacs use -lfreetype? no Does Emacs use HarfBuzz? yes Does Emacs use -lm17n-flt? no Does Emacs use -lotf? no Does Emacs use -lxft? no Does Emacs use -lsystemd? no Does Emacs use -ljansson? yes Does Emacs use the GMP library? yes Does Emacs directly use zlib? yes Does Emacs have dynamic modules support? yes Does Emacs use toolkit scroll bars? yes Does Emacs support Xwidgets? no Does Emacs have threading support in lisp? yes Does Emacs support the portable dumper? yes Does Emacs support legacy unexec dumping? no Which dumping strategy does Emacs use? pdumper Does Emacs have native lisp compiler? yes configure: creating ./config.status config.status: creating nt/emacs.rc config.status: creating nt/emacsclient.rc config.status: creating src/emacs-module.h config.status: creating Makefile config.status: creating lib/gnulib.mk config.status: creating ../src/doc/man/emacs.1 config.status: creating lib/Makefile config.status: creating lib-src/Makefile config.status: creating oldXMenu/Makefile config.status: creating doc/emacs/Makefile config.status: creating doc/misc/Makefile config.status: creating doc/lispintro/Makefile config.status: creating doc/lispref/Makefile config.status: creating src/Makefile The compilation kicked-off using `make`, and it stopped at comp.c with the following error message: CC comp.o ../../src/src/comp.c: In function 'Fcomp_el_to_eln_filename': ../../src/src/comp.c:4110:36: error: expected ')' before 'PATH_REL_LOADSEARCH' 4110 | Fregexp_quote (build_string ("/" PATH_REL_LOADSEARCH "/"))); | ^~~~~~~~~~~~~~~~~~~~ | ) ../../src/src/comp.c: In function 'Fcomp__compile_ctxt_to_file': ../../src/src/comp.c:4458:12: warning: unused variable 'oldset' [-Wunused-variable] 4458 | sigset_t oldset; | ^~~~~~ ../../src/src/comp.c: In function 'eln_load_path_final_clean_up': ../../src/src/comp.c:4621:29: warning: passing argument 1 of 'internal_condition_case_4' from incompatible pointer type [-Wincompatible-pointer-types] 4621 | internal_condition_case_4 (Fdirectory_files, | ^~~~~~~~~~~~~~~~ | | | struct Lisp_X * (*)(struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) In file included from ../../src/src/comp.c:23: ../../src/src/lisp.h:4160:47: note: expected 'struct Lisp_X * (*)(struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *)' but argument is of type 'struct Lisp_X * (*)(struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *)' 4160 | extern Lisp_Object internal_condition_case_4 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[1]: *** [Makefile:410: comp.o] Error 1 make[1]: Leaving directory '/home/VWinUser0/Downloads/emacs/native-comp/build/src' make: *** [Makefile:433: src] Error 2 src/epaths.h has the following content: $ cat src/epaths.h /* Hey Emacs, this is -*- C -*- code! */ /* epaths.in file for MS-Windows build that uses the configure script. Since Emacs on Windows must be relocatable to any directory, it cannot have here hard-coded directories determined at configure time. Therefore, each directory must begin with %emacs_dir%, which is resolved at startup to the root of the Emacs installation tree (see w32.c:init_environment). This file is edited at configure time to replace @VER@ by the Emacs version being built (e.g., 25.9.77), @CFG@ by the canonical name of the host system (e.g., i686-pc-mingw32), and @SRC@ by the root of the Emacs source tree used to build Emacs. */ /* Copyright (C) 1993, 1995, 1997, 1999, 2001-2020 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . */ /* Together with PATH_SITELOADSEARCH, this gives the default value of load-path, which is the search path for the Lisp function "load". Configure (using "make epaths-force") sets this to ${standardlisppath}, which typically has a value like: /emacs/VERSION/lisp where datadir is eg /usr/local/share. */ #define PATH_LOADSEARCH "%emacs_dir%/share/emacs/28.0.50/lisp" /* Like PATH_LOADSEARCH, but contains the non-standard pieces. These are the site-lisp directories. Configure sets this to ${locallisppath}, which typically defaults to something like: /emacs/VERSION/site-lisp:/emacs/site-lisp but can be overridden by the --enable-locallisppath argument. This is combined with PATH_LOADSEARCH to make the default load-path. If the --no-site-lisp option is used, this piece is excluded. */ #define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/28.0.50/site-lisp;%emacs_dir%/share/emacs/site-lisp" /* Like PATH_LOADSEARCH, but used only during the build process when Emacs is dumping. Configure (using "make epaths-force-w32") sets this to $buildlisppath, which normally has the value: /lisp. */ #define PATH_DUMPLOADSEARCH "C:/msys64/home/VWinUser0/Downloads/emacs/native-comp/src/lisp" /* The extra search path for programs to invoke. This is appended to whatever the PATH environment variable says to set the Lisp variable exec-path and the first file name in it sets the Lisp variable exec-directory. exec-directory is used for finding executables and other architecture-dependent files. */ #define PATH_EXEC "%emacs_dir%/libexec/emacs/28.0.50/x86_64-w64-mingw32" /* Where Emacs should look for its architecture-independent data files, like the NEWS file. The lisp variable data-directory is set to this value. */ #define PATH_DATA "%emacs_dir%/share/emacs/28.0.50/etc" /* Where Emacs should look for X bitmap files. The lisp variable x-bitmap-file-path is set based on this value. */ #define PATH_BITMAPS "" /* Where Emacs should look for its docstring file. The lisp variable doc-directory is set to this value. */ #define PATH_DOC "%emacs_dir%/share/emacs/28.0.50/etc" /* Where the configuration process believes the info tree lives. The lisp variable configure-info-directory gets its value from this macro, and is then used to set the Info-default-directory-list. */ #define PATH_INFO "%emacs_dir%/share/info" /* Where Emacs should store game score files. */ #define PATH_GAME "%emacs_dir%/var/games/emacs" /* Where Emacs should look for the application default file. */ #define PATH_X_DEFAULTS "" From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 15:31:51 2020 Received: (at 45303) by debbugs.gnu.org; 17 Dec 2020 20:31:51 +0000 Received: from localhost ([127.0.0.1]:37112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kpzwF-0005R7-7B for submit@debbugs.gnu.org; Thu, 17 Dec 2020 15:31:51 -0500 Received: from mab.sdf.org ([205.166.94.33]:37014 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kpzwA-0005Qr-Vq for 45303@debbugs.gnu.org; Thu, 17 Dec 2020 15:31:49 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kpzw8-0001NU-Gz; Thu, 17 Dec 2020 20:31:44 +0000 From: Andrea Corallo To: =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: Date: Thu, 17 Dec 2020 20:31:44 +0000 In-Reply-To: (UTF's message of "Thu, 17 Dec 2020 14:20:47 -0600") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: _?= =?utf-8?B?S2lvbmctR8STIOW7luWuruavhQ==?= , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, could you share also the config.log? Thanks! Andrea From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 15:33:24 2020 Received: (at 45303) by debbugs.gnu.org; 17 Dec 2020 20:33:24 +0000 Received: from localhost ([127.0.0.1]:37116 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kpzxk-0005Um-Hk for submit@debbugs.gnu.org; Thu, 17 Dec 2020 15:33:24 -0500 Received: from mab.sdf.org ([205.166.94.33]:38008 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kpzxj-0005Uf-J5 for 45303@debbugs.gnu.org; Thu, 17 Dec 2020 15:33:23 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kpzxj-0001iY-4P; Thu, 17 Dec 2020 20:33:23 +0000 From: Andrea Corallo To: 45303@debbugs.gnu.org Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: Date: Thu, 17 Dec 2020 20:33:23 +0000 In-Reply-To: (UTF's message of "Thu, 17 Dec 2020 14:20:47 -0600") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: gongyi.liao@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, could you share also the config.log? Thanks! Andrea From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 15:41:54 2020 Received: (at 45303) by debbugs.gnu.org; 17 Dec 2020 20:41:54 +0000 Received: from localhost ([127.0.0.1]:37136 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq05x-0005nA-WA for submit@debbugs.gnu.org; Thu, 17 Dec 2020 15:41:54 -0500 Received: from mail-ej1-f47.google.com ([209.85.218.47]:45068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq05v-0005mo-Op for 45303@debbugs.gnu.org; Thu, 17 Dec 2020 15:41:52 -0500 Received: by mail-ej1-f47.google.com with SMTP id qw4so39794820ejb.12 for <45303@debbugs.gnu.org>; Thu, 17 Dec 2020 12:41:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5yi+kcbL2pQ/UK+QKnVHotwuHFscpy4TlBeyhUZ9txE=; b=MuYJzM4asKNkzSI975uZ4QmXcBl4yJfRjtCaYZmegjmc/1p4U0MGAKP/Tr1/BKRzuo rZr1jn25zcBZmLLa2H+KafanaV8tuhtTzxt41xyrelvwr23LYBI9D9L62PafOkeVlfwk A11F7ri011VJrZSd/I9iFQp1H6CdHY2niruUuK5cQWsfXWZvYyn2mWpCF614J8YaulwE DDtC0XBvsA7ILAKn47kaTB5FKpupF1FuoUh0WW0e1jEL0fxCH6ETpx9U9uBs7AztVITk clU8LC0tigO23LWIrsWY4pqaKST964/A5c50eWD2hkyU5jcUVVPicEJsRpchUF+XWw3L s/LQ== 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=5yi+kcbL2pQ/UK+QKnVHotwuHFscpy4TlBeyhUZ9txE=; b=m2UnIOVdk30guInrzcFcOzfGy1vAuI1rXEjSBkw35sVHiXSmRBIXHtTwTv6RVqOSIX TldCPOu1jwi990W+tK1woir3nE7423ec32wjCcbhee5inAIaj8s0iQ/vDFF8Qw/G9Zzp TK8SlYQIQTFm9qh/M7x8hquID1g01tNQ2xK00NX7NDn6LIznZdu1ZD5cinx7God0RY6d vDwWllLpVakLAzHgCwYBFDnnx2tnMpwOt0CsTKe6HL4GqF/pdYoOgu+JPd59w+VtDsfs Emx9SBAF67rsq1DkelGfb1aBwR6FPafkcF5mrm3erlHgTlGf54SyXN/7nLOeozFglTKC Enxw== X-Gm-Message-State: AOAM530/p2ChAwb6lqzl5N8J4/wmgvvEfqoc4WOJL/ol+FTSr4E5Z9i/ Te8HhPs9qiHkSBGb16PzLpbdWga8RyrB0eqYse0= X-Google-Smtp-Source: ABdhPJz7s0tjSNJo2V6hYNkQuHgGjgKJcjM4lZFYyytUpA+khQmhqIKop/53M9tVoweSkJihA8UwQmFCX5Aw/M4GS9o= X-Received: by 2002:a17:906:f894:: with SMTP id lg20mr834374ejb.348.1608237705827; Thu, 17 Dec 2020 12:41:45 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Thu, 17 Dec 2020 14:41:34 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: Andrea Corallo Content-Type: multipart/mixed; boundary="0000000000002bd70905b6af05ab" X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --0000000000002bd70905b6af05ab Content-Type: text/plain; charset="UTF-8" the attached file is the config.log file On Thu, Dec 17, 2020 at 2:33 PM Andrea Corallo wrote: > > Hi, > > could you share also the config.log? > > Thanks! > > Andrea --0000000000002bd70905b6af05ab Content-Type: application/octet-stream; name="config.log" Content-Disposition: attachment; filename="config.log" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kitb53ay0 VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IEdOVSBFbWFjcyBjb25maWd1cmUgMjguMC41 MCwgd2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42OS4gIEludm9jYXRpb24g Y29tbWFuZCBsaW5lIHdhcwoKICAkIC4uL3NyYy9jb25maWd1cmUgLS1wcmVmaXg9L2hvbWUvVldp blVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29t cAoKIyMgLS0tLS0tLS0tICMjCiMjIFBsYXRmb3JtLiAjIwojIyAtLS0tLS0tLS0gIyMKCmhvc3Ru YW1lID0gVldpbjQKdW5hbWUgLW0gPSB4ODZfNjQKdW5hbWUgLXIgPSAzLjEuNy0zNDAueDg2XzY0 CnVuYW1lIC1zID0gTUlOR1c2NF9OVC0xMC4wLTE5MDQyCnVuYW1lIC12ID0gMjAyMC0xMS0wOCAx MjozMiBVVEMKCi91c3IvYmluL3VuYW1lIC1wID0gdW5rbm93bgovYmluL3VuYW1lIC1YICAgICA9 IHVua25vd24KCi9iaW4vYXJjaCAgICAgICAgICAgICAgPSB4ODZfNjQKL3Vzci9iaW4vYXJjaCAt ayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IHVua25vd24KL3Vzci9i aW4vaG9zdGluZm8gICAgICA9IHVua25vd24KL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IHVua25v d24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24KL2Jpbi91bml2ZXJzZSAgICAgICAg ICA9IHVua25vd24KClBBVEg6IC9taW5ndzY0L2JpbgpQQVRIOiAvdXNyL2xvY2FsL2JpbgpQQVRI OiAvdXNyL2JpbgpQQVRIOiAvYmluClBBVEg6IC9jL1dpbmRvd3MvU3lzdGVtMzIKUEFUSDogL2Mv V2luZG93cwpQQVRIOiAvYy9XaW5kb3dzL1N5c3RlbTMyL1diZW0KUEFUSDogL2MvV2luZG93cy9T eXN0ZW0zMi9XaW5kb3dzUG93ZXJTaGVsbC92MS4wLwpQQVRIOiAvdXNyL2Jpbi9zaXRlX3BlcmwK UEFUSDogL3Vzci9iaW4vdmVuZG9yX3BlcmwKUEFUSDogL3Vzci9iaW4vY29yZV9wZXJsCgoKIyMg LS0tLS0tLS0tLS0gIyMKIyMgQ29yZSB0ZXN0cy4gIyMKIyMgLS0tLS0tLS0tLS0gIyMKCmNvbmZp Z3VyZTozNzIzOiBsb2FkaW5nIHNpdGUgc2NyaXB0IC9taW5ndzY0L2V0Yy9jb25maWcuc2l0ZQp8 ICMgVGhpcyBmaWxlIGlzIGluIHB1YmxpYyBkb21haW4uCnwgIyBPcmlnaW5hbCBhdXRob3I6IEth cmxzb24yayAoRXZnZW55IEdyaW4pCnwgIyBXcml0dGVuIGZvciBNU3lzMi9NaW5HVzY0IHRvIGhl bHAgcnVubmluZyAnY29uZmlndXJlJyBzY3JpcHRzCnwgCnwgIyBEZWZhdWx0cyBmb3IgTWluR1c2 NC10YXJnZXRlZCBwcm9ncmFtcwp8IAp8ICMgU2V0IHByb3BlciBzZWxmbmFtZSBvbiBiYXNoIGFu ZCBmYWxsYmFjayB0byBkZWZhdWx0IG5hbWUgb24gb3RoZXIgc2hlbGxzCnwgdGVzdCAtbiAiJHtC QVNIX1NPVVJDRX0iIDI+L2Rldi9udWxsICYmIGNvbmZpZ19zaXRlX21lPSIke0JBU0hfU09VUkNF WzBdIyMqL30iIHx8IGNvbmZpZ19zaXRlX21lPWNvbmZpZy5zaXRlCnwgCnwgIyBTZXQgZGVmYXVs dCAnaG9zdCcgdG8gc3BlZWR1cCBjb25maWd1cmUKfCBpZiB0ZXN0IC16ICIkYnVpbGRfYWxpYXMi OyB0aGVuCnwgICBidWlsZF9hbGlhcz0iJHtNU1lTVEVNX0NIT1NULXg4Nl82NC13NjQtbWluZ3cz Mn0iICYmIFwKfCAgICAgJHthc19lY2hvLWVjaG99ICIkY29uZmlnX3NpdGVfbWU6JHthc19saW5l bm8tJExJTkVOT306IGRlZmF1bHQgYnVpbGRfYWxpYXMgc2V0IHRvICRidWlsZF9hbGlhcyIgPiY1 CnwgZmkKfCAKfCAjIFNldCBkZWZhdWx0ICdwcmVmaXgnIHRvICIvbWluZ3c2NCIKfCBpZiAoIHRl c3QgLXogIiRwcmVmaXgiIHx8IHRlc3QgIngkcHJlZml4IiA9ICJ4Tk9ORSIgKSAmJiBcCnwgICAg KCB0ZXN0IC16ICIkZXhlY19wcmVmaXgiIHx8IHRlc3QgIngkZXhlY19wcmVmaXgiID0gInhOT05F IiApOyB0aGVuCnwgICBwcmVmaXg9IiR7TVNZU1RFTV9QUkVGSVgtL21pbmd3NjR9IiAmJiBcCnwg ICAgICR7YXNfZWNoby1lY2hvfSAiJGNvbmZpZ19zaXRlX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBkZWZhdWx0IHByZWZpeCBzZXQgdG8gJHByZWZpeCIgPiY1CnwgZmkKY29uZmlnLnNpdGU6MTM6 IGRlZmF1bHQgYnVpbGRfYWxpYXMgc2V0IHRvIHg4Nl82NC13NjQtbWluZ3czMgpjb25maWd1cmU6 Mzk2MzogY2hlY2tpbmcgZm9yIHhjcnVuCmNvbmZpZ3VyZTozOTkzOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo0MDU3OiBjaGVja2luZyBmb3IgR05VIE1ha2UKY29uZmlndXJlOjQxMDc6IHJlc3VsdDog bWFrZQpjb25maWd1cmU6NDEyMTogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUKY29uZmlndXJl OjQxMzU6IHJlc3VsdDogeDg2XzY0LXc2NC1taW5ndzMyCmNvbmZpZ3VyZTo0MTU1OiBjaGVja2lu ZyBob3N0IHN5c3RlbSB0eXBlCmNvbmZpZ3VyZTo0MTY4OiByZXN1bHQ6IHg4Nl82NC13NjQtbWlu Z3czMgpjb25maWd1cmU6NDIwMTogY2hlY2tpbmcgdGhlIGNvbXBpbGVyJ3MgdGFyZ2V0CmNvbmZp Z3VyZTo0MjIxOiByZXN1bHQ6IHg4Nl82NC13NjQtbWluZ3czMgpjb25maWd1cmU6NTIyNzogY2hl Y2tpbmcgZm9yIGdjYwpjb25maWd1cmU6NTI0MzogZm91bmQgL21pbmd3NjQvYmluL2djYwpjb25m aWd1cmU6NTI1NDogcmVzdWx0OiBnY2MKY29uZmlndXJlOjUyODU6IGNoZWNraW5nIGZvciBDIGNv bXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjUyOTQ6IGdjYyAtLXZlcnNpb24gPiY1CmdjYy5leGUg KFJldjYsIEJ1aWx0IGJ5IE1TWVMyIHByb2plY3QpIDEwLjIuMA0KQ29weXJpZ2h0IChDKSAyMDIw IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBz ZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8NCndhcnJh bnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLg0KDQpjb25maWd1cmU6NTMwNTogJD8gPSAwCmNvbmZpZ3VyZTo1Mjk0OiBn Y2MgLXYgPiY1ClVzaW5nIGJ1aWx0LWluIHNwZWNzLgpDT0xMRUNUX0dDQz1DOlxtc3lzNjRcbWlu Z3c2NFxiaW5cZ2NjLmV4ZQpDT0xMRUNUX0xUT19XUkFQUEVSPUM6L21zeXM2NC9taW5ndzY0L2Jp bi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvbHRvLXdyYXBwZXIuZXhlClRh cmdldDogeDg2XzY0LXc2NC1taW5ndzMyCkNvbmZpZ3VyZWQgd2l0aDogLi4vZ2NjLTEwLjIuMC9j b25maWd1cmUgLS1wcmVmaXg9L21pbmd3NjQgLS13aXRoLWxvY2FsLXByZWZpeD0vbWluZ3c2NC9s b2NhbCAtLWJ1aWxkPXg4Nl82NC13NjQtbWluZ3czMiAtLWhvc3Q9eDg2XzY0LXc2NC1taW5ndzMy IC0tdGFyZ2V0PXg4Nl82NC13NjQtbWluZ3czMiAtLXdpdGgtbmF0aXZlLXN5c3RlbS1oZWFkZXIt ZGlyPS9taW5ndzY0L3g4Nl82NC13NjQtbWluZ3czMi9pbmNsdWRlIC0tbGliZXhlY2Rpcj0vbWlu Z3c2NC9saWIgLS1lbmFibGUtYm9vdHN0cmFwIC0td2l0aC1hcmNoPXg4Ni02NCAtLXdpdGgtdHVu ZT1nZW5lcmljIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGx0byxjKyssZm9ydHJhbixhZGEsb2JqYyxv YmotYysrLGppdCAtLWVuYWJsZS1zaGFyZWQgLS1lbmFibGUtc3RhdGljIC0tZW5hYmxlLWxpYmF0 b21pYyAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWdyYXBoaXRlIC0tZW5hYmxlLWZ1 bGx5LWR5bmFtaWMtc3RyaW5nIC0tZW5hYmxlLWxpYnN0ZGN4eC1maWxlc3lzdGVtLXRzPXllcyAt LWVuYWJsZS1saWJzdGRjeHgtdGltZT15ZXMgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2ggLS1kaXNh YmxlLWxpYnN0ZGN4eC1kZWJ1ZyAtLWRpc2FibGUtaXNsLXZlcnNpb24tY2hlY2sgLS1lbmFibGUt bHRvIC0tZW5hYmxlLWxpYmdvbXAgLS1kaXNhYmxlLW11bHRpbGliIC0tZW5hYmxlLWNoZWNraW5n PXJlbGVhc2UgLS1kaXNhYmxlLXJwYXRoIC0tZGlzYWJsZS13aW4zMi1yZWdpc3RyeSAtLWRpc2Fi bGUtbmxzIC0tZGlzYWJsZS13ZXJyb3IgLS1kaXNhYmxlLXN5bXZlcnMgLS1kaXNhYmxlLXBsdWdp biAtLXdpdGgtbGliaWNvbnYgLS13aXRoLXN5c3RlbS16bGliIC0td2l0aC1nbXA9L21pbmd3NjQg LS13aXRoLW1wZnI9L21pbmd3NjQgLS13aXRoLW1wYz0vbWluZ3c2NCAtLXdpdGgtaXNsPS9taW5n dzY0IC0td2l0aC1wa2d2ZXJzaW9uPSdSZXY2LCBCdWlsdCBieSBNU1lTMiBwcm9qZWN0JyAtLXdp dGgtYnVndXJsPWh0dHBzOi8vZ2l0aHViLmNvbS9tc3lzMi9NSU5HVy1wYWNrYWdlcy9pc3N1ZXMg LS13aXRoLWdudS1hcyAtLXdpdGgtZ251LWxkIC0td2l0aC1ib290LWxkZmxhZ3M9Jy1waXBlIC1X bCwtLWR5bmFtaWNiYXNlLC0taGlnaC1lbnRyb3B5LXZhLC0tbnhjb21wYXQsLS1kZWZhdWx0LWlt YWdlLWJhc2UtaGlnaCAtV2wsLS1kaXNhYmxlLWR5bmFtaWNiYXNlIC1zdGF0aWMtbGlic3RkYysr IC1zdGF0aWMtbGliZ2NjJyAnTERGTEFHU19GT1JfVEFSR0VUPS1waXBlIC1XbCwtLWR5bmFtaWNi YXNlLC0taGlnaC1lbnRyb3B5LXZhLC0tbnhjb21wYXQsLS1kZWZhdWx0LWltYWdlLWJhc2UtaGln aCcgLS1lbmFibGUtbGlua2VyLXBsdWdpbi1mbGFncz0nTERGTEFHUz0tc3RhdGljLWxpYnN0ZGMr K1wgLXN0YXRpYy1saWJnY2NcIC1waXBlXCAtV2wsLS1keW5hbWljYmFzZSwtLWhpZ2gtZW50cm9w eS12YSwtLW54Y29tcGF0LC0tZGVmYXVsdC1pbWFnZS1iYXNlLWhpZ2hcIC1XbCwtLXN0YWNrLDEy NTgyOTEyJwpUaHJlYWQgbW9kZWw6IHBvc2l4ClN1cHBvcnRlZCBMVE8gY29tcHJlc3Npb24gYWxn b3JpdGhtczogemxpYiB6c3RkCmdjYyB2ZXJzaW9uIDEwLjIuMCAoUmV2NiwgQnVpbHQgYnkgTVNZ UzIgcHJvamVjdCkgCmNvbmZpZ3VyZTo1MzA1OiAkPyA9IDAKY29uZmlndXJlOjUyOTQ6IGdjYyAt ViA+JjUKZ2NjLmV4ZTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kLWxpbmUgb3B0aW9uICct VicKZ2NjLmV4ZTogZmF0YWwgZXJyb3I6IG5vIGlucHV0IGZpbGVzCmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZTo1MzA1OiAkPyA9IDEKY29uZmlndXJlOjUyOTQ6IGdjYyAtcXZlcnNp b24gPiY1CmdjYy5leGU6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZC1saW5lIG9wdGlvbiAn LXF2ZXJzaW9uJzsgZGlkIHlvdSBtZWFuICctLXZlcnNpb24nPwpnY2MuZXhlOiBmYXRhbCBlcnJv cjogbm8gaW5wdXQgZmlsZXMKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjUzMDU6 ICQ/ID0gMQpjb25maWd1cmU6NTI5NDogZ2NjIC12ZXJzaW9uID4mNQpnY2MuZXhlOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQtbGluZSBvcHRpb24gJy12ZXJzaW9uJwpnY2MuZXhlOiBmYXRh bCBlcnJvcjogbm8gaW5wdXQgZmlsZXMKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJl OjUzMDU6ICQ/ID0gMQpjb25maWd1cmU6NTMyNTogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21w aWxlciB3b3Jrcwpjb25maWd1cmU6NTM0NzogZ2NjICAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1 cmU6NTM1MTogJD8gPSAwCmNvbmZpZ3VyZTo1Mzk5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTQw MjogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lCmNvbmZp Z3VyZTo1NDA0OiByZXN1bHQ6IGEuZXhlCmNvbmZpZ3VyZTo1NDEwOiBjaGVja2luZyBmb3Igc3Vm Zml4IG9mIGV4ZWN1dGFibGVzCmNvbmZpZ3VyZTo1NDE3OiBnY2MgLW8gY29uZnRlc3QuZXhlICAg IGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6NTQyMTogJD8gPSAwCmNvbmZpZ3VyZTo1NDQzOiBy ZXN1bHQ6IC5leGUKY29uZmlndXJlOjU0NjU6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3Nz IGNvbXBpbGluZwpjb25maWd1cmU6NTQ3MzogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAgICBjb25mdGVz dC5jICA+JjUKY29uZmlndXJlOjU0Nzc6ICQ/ID0gMApjb25maWd1cmU6NTQ4NDogLi9jb25mdGVz dC5leGUKY29uZmlndXJlOjU0ODg6ICQ/ID0gMApjb25maWd1cmU6NTUwMzogcmVzdWx0OiBubwpj b25maWd1cmU6NTUwODogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmln dXJlOjU1MzA6IGdjYyAtYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1NTM0OiAkPyA9IDAK Y29uZmlndXJlOjU1NTU6IHJlc3VsdDogbwpjb25maWd1cmU6NTU1OTogY2hlY2tpbmcgd2hldGhl ciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyCmNvbmZpZ3VyZTo1NTc4OiBnY2MgLWMg ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTU3ODogJD8gPSAwCmNvbmZpZ3VyZTo1NTg3OiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6NTU5NjogY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAt Zwpjb25maWd1cmU6NTYxNjogZ2NjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTYx NjogJD8gPSAwCmNvbmZpZ3VyZTo1NjU3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTY3NDogY2hl Y2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMxMSBmZWF0dXJlcwpjb25maWd1cmU6NTg3 NzogZ2NjICAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1ODc3OiAkPyA9IDAK Y29uZmlndXJlOjU4OTE6IHJlc3VsdDogbm9uZSBuZWVkZWQKY29uZmlndXJlOjYwOTk6IGNoZWNr aW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIGlzIGNsYW5nCmNvbmZpZ3VyZTo2MTIwOiBnY2MgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjEyMDogJD8gPSAwCmNvbmZpZ3VyZTo2 MTI4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MTMyOiBjaGVja2luZyBmb3IgY29tcGlsZXIgb3B0 aW9uIG5lZWRlZCB3aGVuIGNoZWNraW5nIGZvciBkZWNsYXJhdGlvbnMKY29uZmlndXJlOjYxNjM6 IHJlc3VsdDogbm9uZQpjb25maWd1cmU6NjIyNDogY2hlY2tpbmcgd2hldGhlciBnY2MgYW5kIGNj IHVuZGVyc3RhbmQgLWMgYW5kIC1vIHRvZ2V0aGVyCmNvbmZpZ3VyZTo2MjU1OiBnY2MgLWMgY29u ZnRlc3QuYyAtbyBjb25mdGVzdDIubyA+JjUKY29uZmlndXJlOjYyNTk6ICQ/ID0gMApjb25maWd1 cmU6NjI2NTogZ2NjIC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1CmNvbmZpZ3VyZTo2 MjY5OiAkPyA9IDAKY29uZmlndXJlOjYyODA6IGNjIC1jIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy ZTo2Mjg0OiAkPyA9IDAKY29uZmlndXJlOjYyOTI6IGNjIC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRl c3QyLm8gPiY1CmNvbmZpZ3VyZTo2Mjk2OiAkPyA9IDAKY29uZmlndXJlOjYzMDI6IGNjIC1jIGNv bmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1CmNvbmZpZ3VyZTo2MzA2OiAkPyA9IDAKY29uZmln dXJlOjYzMjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MzYwOiBjaGVja2luZyBob3cgdG8gcnVu IHRoZSBDIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6NjM5MTogZ2NjIC1JIC4uL3NyYy9udC9pbmMg LUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjYzOTE6ICQ/ID0gMApjb25maWd1cmU6NjQwNTogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoxMToxMDogZmF0YWwg ZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMTEg fCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY0MDU6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxh Y19ub25leGlzdGVudC5oPgpjb25maWd1cmU6NjQzMDogcmVzdWx0OiBnY2MgLUkgLi4vc3JjL250 L2luYyAtRQpjb25maWd1cmU6NjQ1MDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLUUgIGNvbmZ0ZXN0 LmMKY29uZmlndXJlOjY0NTA6ICQ/ID0gMApjb25maWd1cmU6NjQ2NDogZ2NjIC1JIC4uL3NyYy9u dC9pbmMgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoxMToxMDogZmF0YWwgZXJyb3I6IGFjX25v bmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMTEgfCAjaW5jbHVkZSA8 YWNfbm9uZXhpc3RlbnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY0NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVu dC5oPgpjb25maWd1cmU6NjQ5MzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcg bGluZXMgYW5kIC1lCmNvbmZpZ3VyZTo2NTUxOiByZXN1bHQ6IC91c3IvYmluL2dyZXAKY29uZmln dXJlOjY1NTY6IGNoZWNraW5nIGZvciBlZ3JlcApjb25maWd1cmU6NjYxODogcmVzdWx0OiAvdXNy L2Jpbi9ncmVwIC1FCmNvbmZpZ3VyZTo2NjIzOiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBm aWxlcwpjb25maWd1cmU6NjY0MzogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWcgLU8yICBjb25m dGVzdC5jID4mNQpjb25maWd1cmU6NjY0MzogJD8gPSAwCmNvbmZpZ3VyZTo2NzE2OiBnY2MgLUkg Li4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo2NzE2OiAkPyA9IDAKY29uZmlndXJlOjY3MTY6IC4vY29uZnRlc3QuZXhlCmNvbmZp Z3VyZTo2NzE2OiAkPyA9IDAKY29uZmlndXJlOjY3Mjc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2 NzQwOiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgKY29uZmlndXJlOjY3NDA6IGdjYyAtSSAuLi9z cmMvbnQvaW5jIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjY3NDA6ICQ/ID0g MApjb25maWd1cmU6Njc0MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjY3NDA6IGNoZWNraW5nIGZv ciBzeXMvc3RhdC5oCmNvbmZpZ3VyZTo2NzQwOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2NzQwOiAkPyA9IDAKY29uZmlndXJlOjY3NDA6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NzQwOiBjaGVja2luZyBmb3Igc3RkbGliLmgKY29uZmln dXJlOjY3NDA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjY3NDA6ICQ/ID0gMApjb25maWd1cmU6Njc0MDogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjY3NDA6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25maWd1cmU6Njc0MDogZ2NjIC1JIC4u L3NyYy9udC9pbmMgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6Njc0MDogJD8g PSAwCmNvbmZpZ3VyZTo2NzQwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6Njc0MDogY2hlY2tpbmcg Zm9yIG1lbW9yeS5oCmNvbmZpZ3VyZTo2NzQwOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2NzQwOiAkPyA9IDAKY29uZmlndXJlOjY3NDA6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NzQwOiBjaGVja2luZyBmb3Igc3RyaW5ncy5oCmNvbmZp Z3VyZTo2NzQwOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZpZ3VyZTo2NzQwOiAkPyA9IDAKY29uZmlndXJlOjY3NDA6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo2NzQwOiBjaGVja2luZyBmb3IgaW50dHlwZXMuaApjb25maWd1cmU6Njc0MDogZ2NjIC1J IC4uL3NyYy9udC9pbmMgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6Njc0MDog JD8gPSAwCmNvbmZpZ3VyZTo2NzQwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6Njc0MDogY2hlY2tp bmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo2NzQwOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAt ZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2NzQwOiAkPyA9IDAKY29uZmlndXJlOjY3 NDA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NzQwOiBjaGVja2luZyBmb3IgdW5pc3RkLmgKY29u ZmlndXJlOjY3NDA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjY3NDA6ICQ/ID0gMApjb25maWd1cmU6Njc0MDogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjY3NTM6IGNoZWNraW5nIG1pbml4L2NvbmZpZy5oIHVzYWJpbGl0eQpjb25maWd1cmU6 Njc1MzogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25m dGVzdC5jOjU0OjEwOiBmYXRhbCBlcnJvcjogbWluaXgvY29uZmlnLmg6IE5vIHN1Y2ggZmlsZSBv ciBkaXJlY3RvcnkKICAgNTQgfCAjaW5jbHVkZSA8bWluaXgvY29uZmlnLmg+CiAgICAgIHwgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6 Njc1MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VT RV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cnwg IyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMg IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllf SAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4K fCAjZW5kaWYKfCAjaW5jbHVkZSA8bWluaXgvY29uZmlnLmg+CmNvbmZpZ3VyZTo2NzUzOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2NzUzOiBjaGVja2luZyBtaW5peC9jb25maWcuaCBwcmVzZW5jZQpj b25maWd1cmU6Njc1MzogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLUUgIGNvbmZ0ZXN0LmMKY29uZnRl c3QuYzoyMToxMDogZmF0YWwgZXJyb3I6IG1pbml4L2NvbmZpZy5oOiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5CiAgIDIxIHwgI2luY2x1ZGUgPG1pbml4L2NvbmZpZy5oPgogICAgICB8ICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY3 NTM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0Vf UE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtaW5peC9j b25maWcuaD4KY29uZmlndXJlOjY3NTM6IHJlc3VsdDogbm8KY29uZmlndXJlOjY3NTM6IGNoZWNr aW5nIGZvciBtaW5peC9jb25maWcuaApjb25maWd1cmU6Njc1MzogcmVzdWx0OiBubwpjb25maWd1 cmU6Njc3NzogY2hlY2tpbmcgd2hldGhlciBpdCBpcyBzYWZlIHRvIGRlZmluZSBfX0VYVEVOU0lP TlNfXwpjb25maWd1cmU6Njc5NTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWcgLU8yICBjb25m dGVzdC5jID4mNQpjb25maWd1cmU6Njc5NTogJD8gPSAwCmNvbmZpZ3VyZTo2ODAyOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6NjgzNTogY2hlY2tpbmcgd2hldGhlciBfWE9QRU5fU09VUkNFIHNob3Vs ZCBiZSBkZWZpbmVkCmNvbmZpZ3VyZTo2ODU0OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2ODU0OiAkPyA9IDAKY29uZmlndXJlOjY4Nzg6 IHJlc3VsdDogbm8KY29uZmlndXJlOjY4OTU6IGNoZWNraW5nIGZvciBNaW5peCBBbXN0ZXJkYW0g Y29tcGlsZXIKY29uZmlndXJlOjY5MTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjY5NzY6IGNoZWNr aW5nIGZvciBhcgpjb25maWd1cmU6Njk5MjogZm91bmQgL21pbmd3NjQvYmluL2FyCmNvbmZpZ3Vy ZTo3MDAzOiByZXN1bHQ6IGFyCmNvbmZpZ3VyZTo3MDc4OiBjaGVja2luZyBmb3IgcmFubGliCmNv bmZpZ3VyZTo3MDk0OiBmb3VuZCAvbWluZ3c2NC9iaW4vcmFubGliCmNvbmZpZ3VyZTo3MTA1OiBy ZXN1bHQ6IHJhbmxpYgpjb25maWd1cmU6NzE2NzogY2hlY2tpbmcgZm9yIHNwZWNpYWwgQyBjb21w aWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMKY29uZmlndXJlOjcyMTI6IHJlc3Vs dDogbm8KY29uZmlndXJlOjcyMTg6IGNoZWNraW5nIGZvciBfRklMRV9PRkZTRVRfQklUUyB2YWx1 ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCmNvbmZpZ3VyZTo3MjQzOiBnY2MgLUkgLi4vc3JjL250 L2luYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NDI6Mzk6IHdhcm5pbmc6 IHJlc3VsdCBvZiAnLTIxNDc0ODM2NDggPDwgMzEnIHJlcXVpcmVzIDYzIGJpdHMgdG8gcmVwcmVz ZW50LCBidXQgJ2xvbmcgaW50JyBvbmx5IGhhcyAzMiBiaXRzIFstV3NoaWZ0LW92ZXJmbG93PV0K ICAgNDIgfCAjZGVmaW5lIExBUkdFX09GRl9UICgoKG9mZl90KSAxIDw8IDMxIDw8IDMxKSAtIDEg KyAoKG9mZl90KSAxIDw8IDMxIDw8IDMxKSkKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+CmNvbmZ0ZXN0LmM6NDM6MjM6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyAnTEFSR0VfT0ZGX1QnCiAgIDQzIHwgICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExBUkdF X09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjEKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn4KY29uZnRlc3QuYzo0Mjo2OTogd2FybmluZzogcmVzdWx0IG9mICctMjE0NzQ4 MzY0OCA8PCAzMScgcmVxdWlyZXMgNjMgYml0cyB0byByZXByZXNlbnQsIGJ1dCAnbG9uZyBpbnQn IG9ubHkgaGFzIDMyIGJpdHMgWy1Xc2hpZnQtb3ZlcmZsb3c9XQogICA0MiB8ICNkZWZpbmUgTEFS R0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgMzEgPDwgMzEpIC0gMSArICgob2ZmX3QpIDEgPDwgMzEg PDwgMzEpKQogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn4KY29uZnRlc3QuYzo0MzoyMzogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvICdMQVJHRV9PRkZfVCcKICAgNDMgfCAgIGludCBvZmZfdF9pc19s YXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQogICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fgpjb25mdGVzdC5jOjQyOjM5OiB3YXJuaW5nOiByZXN1bHQg b2YgJy0yMTQ3NDgzNjQ4IDw8IDMxJyByZXF1aXJlcyA2MyBiaXRzIHRvIHJlcHJlc2VudCwgYnV0 ICdsb25nIGludCcgb25seSBoYXMgMzIgYml0cyBbLVdzaGlmdC1vdmVyZmxvdz1dCiAgIDQyIHwg I2RlZmluZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCAzMSA8PCAzMSkgLSAxICsgKChvZmZf dCkgMSA8PCAzMSA8PCAzMSkpCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefgpjb25mdGVzdC5jOjQ0OjI3OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g J0xBUkdFX09GRl9UJwogICA0NCB8ICAgICAgICAgICAgICAgICAgICAgICAgJiYgTEFSR0VfT0ZG X1QgJSAyMTQ3NDgzNjQ3ID09IDEpCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fgpjb25mdGVzdC5jOjQyOjY5OiB3YXJuaW5nOiByZXN1bHQgb2YgJy0yMTQ3NDgz NjQ4IDw8IDMxJyByZXF1aXJlcyA2MyBiaXRzIHRvIHJlcHJlc2VudCwgYnV0ICdsb25nIGludCcg b25seSBoYXMgMzIgYml0cyBbLVdzaGlmdC1vdmVyZmxvdz1dCiAgIDQyIHwgI2RlZmluZSBMQVJH RV9PRkZfVCAoKChvZmZfdCkgMSA8PCAzMSA8PCAzMSkgLSAxICsgKChvZmZfdCkgMSA8PCAzMSA8 PCAzMSkpCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefgpjb25mdGVzdC5jOjQ0OjI3OiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8gJ0xBUkdFX09GRl9UJwogICA0NCB8ICAgICAgICAgICAgICAgICAg ICAgICAgJiYgTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3ID09IDEpCiAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fgpjb25mdGVzdC5jOjQzOjc6IGVycm9yOiB2YXJp YWJseSBtb2RpZmllZCAnb2ZmX3RfaXNfbGFyZ2UnIGF0IGZpbGUgc2NvcGUKICAgNDMgfCAgIGlu dCBvZmZfdF9pc19sYXJnZVsoTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQogICAgICB8 ICAgICAgIF5+fn5+fn5+fn5+fn5+CmNvbmZpZ3VyZTo3MjQzOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1h Y3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg X19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgIC8qIENoZWNrIHRoYXQgb2Zm X3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5Lgp8ICAgICBXZSBjYW4ndCBzaW1w bHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcsCnwgICAgIHNp bmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMKfCAgICAg aW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAqLwp8ICNkZWZpbmUgTEFS R0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgMzEgPDwgMzEpIC0gMSArICgob2ZmX3QpIDEgPDwgMzEg PDwgMzEpKQp8ICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0ODM2Mjkg PT0gNzIxCnwgICAgICAgICAgICAgICAgICAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2 NDcgPT0gMSkKfCAgICAgICAgICAgICAgICAgICAgICAgPyAxIDogLTFdOwp8IGludAp8IG1haW4g KCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo3MjY3OiBnY2MgLUkg Li4vc3JjL250L2luYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3MjY3OiAk PyA9IDAKY29uZmlndXJlOjcyNzU6IHJlc3VsdDogNjQKY29uZmlndXJlOjc1MzA6IGNoZWNraW5n IHdoZXRoZXIgZ2NjIC1JIC4uL3NyYy9udC9pbmMgYWNjZXB0cyAtZzMgLU8yCmNvbmZpZ3VyZTo3 NTQ2OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAgIGNvbmZ0 ZXN0LmMgID4mNQpjb25maWd1cmU6NzU0NjogJD8gPSAwCmNvbmZpZ3VyZTo3NTU0OiByZXN1bHQ6 IHllcwpjb25maWd1cmU6NzY0MzogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLUUgIGNvbmZ0ZXN0LmMK Y29uZmlndXJlOjc2NDM6ICQ/ID0gMApjb25maWd1cmU6NzY2NTogY2hlY2tpbmcgd2hldGhlciB0 aGUgY29tcGlsZXIgaXMgY2xhbmcKY29uZmlndXJlOjc2ODU6IGdjYyAtSSAuLi9zcmMvbnQvaW5j IC1jIC1nMyAtTzIgLWdkd2FyZi0yICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjQwOjEyOiBl cnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmlidXRlX18nIGJl Zm9yZSBzdHJpbmcgY29uc3RhbnQKICAgNDAgfCAgICAgIGVycm9yICJub3QgY2xhbmciOwogICAg ICB8ICAgICAgICAgICAgXn5+fn5+fn5+fn4KY29uZmlndXJlOjc2ODU6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdu dS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhB VkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNf VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2Rl ZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRC U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmlu ZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAJICAj aWZuZGVmIF9fY2xhbmdfXwp8IAkgICAgZXJyb3IgIm5vdCBjbGFuZyI7CnwgCSAgI2VuZGlmCnwg CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl Ojc2OTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjc3MDY6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21w aWxlciBoYW5kbGVzIC1XZXJyb3IgLVd1bmtub3duLXdhcm5pbmctb3B0aW9uCmNvbmZpZ3VyZTo3 NzI1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJm LTIgIC1XZXJyb3IgLVd1bmtub3duLXdhcm5pbmctb3B0aW9uICAgY29uZnRlc3QuYyAgPiY1Cmdj Yy5leGU6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZC1saW5lIG9wdGlvbiAnLVd1bmtub3du LXdhcm5pbmctb3B0aW9uJwpjb25maWd1cmU6NzcyNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVS IDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhU RU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09G RlNFVF9CSVRTIDY0CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo3NzM1OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo3OTg4OiBjaGVja2luZyB3aGV0aGVyIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0 aWFsaXplcnMgaXMgc3VwcG9ydGVkCmNvbmZpZ3VyZTo4MDA2OiBnY2MgLUkgLi4vc3JjL250L2lu YyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtV2V4dHJhIC1XZXJyb3IgLVduby1taXNzaW5nLWZpZWxk LWluaXRpYWxpemVycyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjgwMDY6ICQ/ID0gMApjb25m aWd1cmU6ODAxNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgwMTk6IGNoZWNraW5nIHdoZXRoZXIg LVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyBpcyBuZWVkZWQKY29uZmlndXJlOjgwNDM6 IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1XZXh0cmEgLVdlcnJv ciAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjgwNDM6ICQ/ID0gMApjb25maWd1cmU6ODA1Mjog cmVzdWx0OiBubwpjb25maWd1cmU6ODA1NjogY2hlY2tpbmcgd2hldGhlciAtV3VuaW5pdGlhbGl6 ZWQgaXMgc3VwcG9ydGVkCmNvbmZpZ3VyZTo4MDc0OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAt ZzMgLU8yIC1nZHdhcmYtMiAtV2Vycm9yIC1XdW5pbml0aWFsaXplZCAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjgwNzQ6ICQ/ID0gMApjb25maWd1cmU6ODA4MzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjgyMjM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1mbm8tY29tbW9u CmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWcz IC1PMiAtZ2R3YXJmLTIgIC1mbm8tY29tbW9uICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4 MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBj aGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2FsbApjb25maWd1cmU6ODI0Mjog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAt V2FsbCAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4 MjUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBp bGVyIGhhbmRsZXMgLVdhcml0aC1jb252ZXJzaW9uCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4v c3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1XYXJpdGgtY29u dmVyc2lvbiAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3Vy ZTo4MjUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNv bXBpbGVyIGhhbmRsZXMgLVdkYXRlLXRpbWUKY29uZmlndXJlOjgyNDI6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAgLVdkYXRlLXRpbWUgICBj b25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgyNDI6ICQ/ID0gMApjb25maWd1cmU6ODI1MzogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjgyMjM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5k bGVzIC1XZGlzYWJsZWQtb3B0aW1pemF0aW9uCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3Jj L250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1XZGlzYWJsZWQtb3B0 aW1pemF0aW9uICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmln dXJlOjgyNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMg Y29tcGlsZXIgaGFuZGxlcyAtV2RvdWJsZS1wcm9tb3Rpb24KY29uZmlndXJlOjgyNDI6IGdjYyAt SSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAgLVdkb3Vi bGUtcHJvbW90aW9uICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29u ZmlndXJlOjgyNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV2R1cGxpY2F0ZWQtY29uZApjb25maWd1cmU6ODI0MjogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV2R1 cGxpY2F0ZWQtY29uZCAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNv bmZpZ3VyZTo4MjUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhl ciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdleHRyYQpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3Ny Yy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV2V4dHJhICAgY29u ZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxl cyAtV2Zvcm1hdC1zaWduZWRuZXNzCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2lu YyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1XZm9ybWF0LXNpZ25lZG5lc3Mg ICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgyNDI6ICQ/ID0gMApjb25maWd1cmU6ODI1Mzog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjgyMjM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBo YW5kbGVzIC1XaW5pdC1zZWxmCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAt byBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1XaW5pdC1zZWxmICAgY29uZnRlc3Qu YyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2lu dmFsaWQtcGNoCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVz dC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1XaW52YWxpZC1wY2ggICBjb25mdGVzdC5jICA+JjUK Y29uZmlndXJlOjgyNDI6ICQ/ID0gMApjb25maWd1cmU6ODI1MzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjgyMjM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XbG9naWNhbC1v cApjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1n MyAtTzIgLWdkd2FyZi0yICAtV2xvZ2ljYWwtb3AgICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJl OjgyNDI6ICQ/ID0gMApjb25maWd1cmU6ODI1MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgyMjM6 IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XbWlzc2luZy1kZWNsYXJhdGlv bnMKY29uZmlndXJlOjgyNDI6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAt ZzMgLU8yIC1nZHdhcmYtMiAgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAgIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdtaXNzaW5n LWluY2x1ZGUtZGlycwpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29u ZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV21pc3NpbmctaW5jbHVkZS1kaXJzICAgY29u ZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxl cyAtV21pc3NpbmctcHJvdG90eXBlcwpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3NyYy9udC9p bmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV21pc3NpbmctcHJvdG90eXBl cyAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUz OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVy IGhhbmRsZXMgLVduZXN0ZWQtZXh0ZXJucwpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3NyYy9u dC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV25lc3RlZC1leHRlcm5z ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIg aGFuZGxlcyAtV251bGwtZGVyZWZlcmVuY2UKY29uZmlndXJlOjgyNDI6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAgLVdudWxsLWRlcmVmZXJl bmNlICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgy NTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtV29sZC1zdHlsZS1kZWZpbml0aW9uCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkg Li4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1Xb2xkLXN0 eWxlLWRlZmluaXRpb24gICBjb25mdGVzdC5jICA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24g J21haW4nOgpjb25mdGVzdC5jOjQwOjE6IHdhcm5pbmc6IG9sZC1zdHlsZSBmdW5jdGlvbiBkZWZp bml0aW9uIFstV29sZC1zdHlsZS1kZWZpbml0aW9uXQogICA0MCB8IG1haW4gKCkKICAgICAgfCBe fn5+CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV29wZW5t cC1zaW1kCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5l eGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1Xb3Blbm1wLXNpbWQgICBjb25mdGVzdC5jICA+JjUKY29u ZmlndXJlOjgyNDI6ICQ/ID0gMApjb25maWd1cmU6ODI1MzogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjgyMjM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XcGFja2VkCmNvbmZp Z3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAt Z2R3YXJmLTIgIC1XcGFja2VkICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9 IDAKY29uZmlndXJlOjgyNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3 aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3BvaW50ZXItYXJpdGgKY29uZmlndXJlOjgyNDI6 IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAg LVdwb2ludGVyLWFyaXRoICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAK Y29uZmlndXJlOjgyNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0 aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3N0cmljdC1wcm90b3R5cGVzCmNvbmZpZ3VyZTo4MjQy OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIg IC1Xc3RyaWN0LXByb3RvdHlwZXMgICBjb25mdGVzdC5jICA+JjUKY29uZnRlc3QuYzo0MDoxOiB3 YXJuaW5nOiBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpc24ndCBhIHByb3RvdHlwZSBbLVdzdHJpY3Qt cHJvdG90eXBlc10KICAgNDAgfCBtYWluICgpCiAgICAgIHwgXn5+fgpjb25maWd1cmU6ODI0Mjog JD8gPSAwCmNvbmZpZ3VyZTo4MjUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tp bmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdzdWdnZXN0LWF0dHJpYnV0ZT1ub3JldHVy bgpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1n MyAtTzIgLWdkd2FyZi0yICAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0dXJuICAgY29uZnRlc3Qu YyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3N1 Z2dlc3QtZmluYWwtbWV0aG9kcwpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3NyYy9udC9pbmMg LW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV3N1Z2dlc3QtZmluYWwtbWV0aG9k cyAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUz OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVy IGhhbmRsZXMgLVdzdWdnZXN0LWZpbmFsLXR5cGVzCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4v c3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1Xc3VnZ2VzdC1m aW5hbC10eXBlcyAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZp Z3VyZTo4MjUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVd0cmFtcG9saW5lcwpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4u L3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV3RyYW1wb2xp bmVzICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgy NTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtV3VuaW5pdGlhbGl6ZWQKY29uZmlndXJlOjgyNDI6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAgLVd1bmluaXRpYWxpemVk ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIg aGFuZGxlcyAtV3Vua25vd24tcHJhZ21hcwpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3NyYy9u dC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV3Vua25vd24tcHJhZ21h cyAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUz OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVy IGhhbmRsZXMgLVd1bnVzZWQtbWFjcm9zCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250 L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1XdW51c2VkLW1hY3JvcyAg IGNvbmZ0ZXN0LmMgID4mNQpjb25mdGVzdC5jOjg6IHdhcm5pbmc6IG1hY3JvICJNQUlMX1VTRV9Q T1AiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgICA4IHwgI2RlZmluZSBNQUlMX1VT RV9QT1AgMQogICAgICB8IApjb25mdGVzdC5jOjE0OiB3YXJuaW5nOiBtYWNybyAiSEFWRV9TVFJJ TkdfSCIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTQgfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQogICAgICB8IApjb25mdGVzdC5jOjIwOiB3YXJuaW5nOiBtYWNybyAiX19FWFRF TlNJT05TX18iIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgIDIwIHwgI2RlZmluZSBf X0VYVEVOU0lPTlNfXyAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6MzE6IHdhcm5pbmc6IG1hY3JvICJf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18iIGlzIG5vdCB1c2VkIFstV3VudXNlZC1t YWNyb3NdCiAgIDMxIHwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18g MQogICAgICB8IApjb25mdGVzdC5jOjIyOiB3YXJuaW5nOiBtYWNybyAiX0RBUldJTl9DX1NPVVJD RSIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMjIgfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQogICAgICB8IApjb25mdGVzdC5jOjE3OiB3YXJuaW5nOiBtYWNybyAiSEFWRV9J TlRUWVBFU19IIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAxNyB8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKICAgICAgfCAKY29uZnRlc3QuYzozNDogd2FybmluZzogbWFjcm8g Il9UQU5ERU1fU09VUkNFIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAzNCB8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQogICAgICB8IApjb25mdGVzdC5jOjI5OiB3YXJuaW5nOiBt YWNybyAiX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyIgaXMgbm90IHVzZWQgWy1XdW51 c2VkLW1hY3Jvc10KICAgMjkgfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQogICAgICB8IApjb25mdGVzdC5jOjU6IHdhcm5pbmc6IG1hY3JvICJQQUNLQUdFX1NUUklO RyIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgIDUgfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKICAgICAgfCAKY29uZnRlc3QuYzoxODogd2Fybmlu ZzogbWFjcm8gIkhBVkVfU1RESU5UX0giIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAg IDE4IHwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKICAgICAgfCAKY29uZnRlc3QuYzozOiB3YXJu aW5nOiBtYWNybyAiUEFDS0FHRV9UQVJOQU1FIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9z XQogICAgMyB8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKICAgICAgfCAKY29uZnRl c3QuYzoyNTogd2FybmluZzogbWFjcm8gIl9PUEVOQlNEX1NPVVJDRSIgaXMgbm90IHVzZWQgWy1X dW51c2VkLW1hY3Jvc10KICAgMjUgfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCiAgICAgIHwg CmNvbmZ0ZXN0LmM6MTM6IHdhcm5pbmc6IG1hY3JvICJIQVZFX1NURExJQl9IIiBpcyBub3QgdXNl ZCBbLVd1bnVzZWQtbWFjcm9zXQogICAxMyB8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiAgICAg IHwgCmNvbmZ0ZXN0LmM6MTE6IHdhcm5pbmc6IG1hY3JvICJIQVZFX1NZU19UWVBFU19IIiBpcyBu b3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAxMSB8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6Njogd2FybmluZzogbWFjcm8gIlBBQ0tBR0VfQlVHUkVQ T1JUIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAgNiB8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKICAgICAgfCAKY29uZnRlc3QuYzox OTogd2FybmluZzogbWFjcm8gIkhBVkVfVU5JU1REX0giIGlzIG5vdCB1c2VkIFstV3VudXNlZC1t YWNyb3NdCiAgIDE5IHwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKICAgICAgfCAKY29uZnRlc3Qu YzoyNjogd2FybmluZzogbWFjcm8gIl9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyIgaXMgbm90IHVz ZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMjYgfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6MzI6IHdhcm5pbmc6IG1hY3JvICJfX1NURENfV0FO VF9MSUJfRVhUMl9fIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAzMiB8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6Mjc6IHdhcm5p bmc6IG1hY3JvICJfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyIgaXMgbm90IHVz ZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMjcgfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKICAgICAgfCAKY29uZnRlc3QuYzoxNjogd2FybmluZzogbWFjcm8g IkhBVkVfU1RSSU5HU19IIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAxNiB8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQogICAgICB8IApjb25mdGVzdC5jOjMwOiB3YXJuaW5nOiBt YWNybyAiX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIiBpcyBub3QgdXNlZCBbLVd1 bnVzZWQtbWFjcm9zXQogICAzMCB8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKICAgICAgfCAKY29uZnRlc3QuYzoxMjogd2FybmluZzogbWFjcm8gIkhBVkVfU1lT X1NUQVRfSCIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTIgfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6MTA6IHdhcm5pbmc6IG1hY3JvICJT VERDX0hFQURFUlMiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgIDEwIHwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQogICAgICB8IApjb25mdGVzdC5jOjE1OiB3YXJuaW5nOiBtYWNybyAi SEFWRV9NRU1PUllfSCIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTUgfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQogICAgICB8IApjb25mdGVzdC5jOjQ6IHdhcm5pbmc6IG1hY3Jv ICJQQUNLQUdFX1ZFUlNJT04iIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgICA0IHwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCiAgICAgIHwgCmNvbmZ0ZXN0LmM6Mjog d2FybmluZzogbWFjcm8gIlBBQ0tBR0VfTkFNRSIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jv c10KICAgIDIgfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgogICAgICB8IApjb25m dGVzdC5jOjMzOiB3YXJuaW5nOiBtYWNybyAiX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18i IGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgIDMzIHwgI2RlZmluZSBfX1NURENfV0FO VF9NQVRIX1NQRUNfRlVOQ1NfXyAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6Mjg6IHdhcm5pbmc6IG1h Y3JvICJfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIiBpcyBub3QgdXNlZCBbLVd1bnVz ZWQtbWFjcm9zXQogICAyOCB8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRf XyAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6MzU6IHdhcm5pbmc6IG1hY3JvICJfSFBVWF9BTFRfWE9Q RU5fU09DS0VUX0FQSSIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMzUgfCAjZGVm aW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKICAgICAgfCAKY29uZnRlc3QuYzo5OiB3 YXJuaW5nOiBtYWNybyAiSEFWRV9QRFVNUEVSIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9z XQogICAgOSB8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKICAgICAgfCAKY29uZnRlc3QuYzozNjog d2FybmluZzogbWFjcm8gIl9GSUxFX09GRlNFVF9CSVRTIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQt bWFjcm9zXQogICAzNiB8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKICAgICAgfCAKY29u ZnRlc3QuYzoyNDogd2FybmluZzogbWFjcm8gIl9ORVRCU0RfU09VUkNFIiBpcyBub3QgdXNlZCBb LVd1bnVzZWQtbWFjcm9zXQogICAyNCB8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQogICAgICB8 IApjb25mdGVzdC5jOjc6IHdhcm5pbmc6IG1hY3JvICJQQUNLQUdFX1VSTCIgaXMgbm90IHVzZWQg Wy1XdW51c2VkLW1hY3Jvc10KICAgIDcgfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKICAgICAgfCAKY29uZnRlc3QuYzoyMTogd2Fybmlu ZzogbWFjcm8gIl9BTExfU09VUkNFIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAy MSB8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQogICAgICB8IApjb25mdGVzdC5jOjIzOiB3YXJuaW5n OiBtYWNybyAiX0dOVV9TT1VSQ0UiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgIDIz IHwgI2RlZmluZSBfR05VX1NPVVJDRSAxCiAgICAgIHwgCmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAK Y29uZmlndXJlOjgyNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjIzOiBjaGVja2luZyB3aGV0 aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3ZhcmlhZGljLW1hY3Jvcwpjb25maWd1cmU6ODI0Mjog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAt V3ZhcmlhZGljLW1hY3JvcyAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAw CmNvbmZpZ3VyZTo4MjUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hl dGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlCmNv bmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1P MiAtZ2R3YXJmLTIgIC1XdmVjdG9yLW9wZXJhdGlvbi1wZXJmb3JtYW5jZSAgIGNvbmZ0ZXN0LmMg ID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUzOiByZXN1bHQ6IHllcwpj b25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVd3cml0 ZS1zdHJpbmdzCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVz dC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1Xd3JpdGUtc3RyaW5ncyAgIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdhcnJheS1i b3VuZHM9Mgpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3Qu ZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV2FycmF5LWJvdW5kcz0yICAgY29uZnRlc3QuYyAgPiY1 CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29uZmlndXJlOjgyNTM6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo4MjIzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2F0dHJpYnV0 ZS1hbGlhcz0yCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVz dC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1XYXR0cmlidXRlLWFsaWFzPTIgICBjb25mdGVzdC5j ICA+JjUKY29uZmlndXJlOjgyNDI6ICQ/ID0gMApjb25maWd1cmU6ODI1MzogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjgyMjM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZm9y bWF0PTIKY29uZmlndXJlOjgyNDI6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4 ZSAtZzMgLU8yIC1nZHdhcmYtMiAgLVdmb3JtYXQ9MiAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1 cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIy MzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdmb3JtYXQtdHJ1bmNhdGlv bj0yCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUg LWczIC1PMiAtZ2R3YXJmLTIgIC1XZm9ybWF0LXRydW5jYXRpb249MiAgIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdpbXBsaWNp dC1mYWxsdGhyb3VnaD01CmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBj b25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1XaW1wbGljaXQtZmFsbHRocm91Z2g9NSAg IGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUzOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhh bmRsZXMgLVdzaGlmdC1vdmVyZmxvdz0yCmNvbmZpZ3VyZTo4MjQyOiBnY2MgLUkgLi4vc3JjL250 L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgIC1Xc2hpZnQtb3ZlcmZsb3c9 MiAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODI0MjogJD8gPSAwCmNvbmZpZ3VyZTo4MjUz OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODIyMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVy IGhhbmRsZXMgLVd2bGEtbGFyZ2VyLXRoYW49NDAzMQpjb25maWd1cmU6ODI0MjogZ2NjIC1JIC4u L3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV3ZsYS1sYXJn ZXItdGhhbj00MDMxICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MjQyOiAkPyA9IDAKY29u ZmlndXJlOjgyNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MjYzOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV3JlZHVuZGFudC1kZWNscwpjb25maWd1cmU6ODI5MjogcmVz dWx0OiBubwpjb25maWd1cmU6ODMwMTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRs ZXMgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwpjb25maWd1cmU6ODMyMDogZ2NjIC1J IC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yICAtV21pc3Np bmctZmllbGQtaW5pdGlhbGl6ZXJzICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIwOiAk PyA9IDAKY29uZmlndXJlOjgzMzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzM5OiBjaGVja2lu ZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLW92ZXJyaWRlLWluaXQKY29uZmlndXJl OjgzNTg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdh cmYtMiAgLVdvdmVycmlkZS1pbml0ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzU4OiAk PyA9IDAKY29uZmlndXJlOjgzNjg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4Mzc3OiBjaGVja2lu ZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLXNpZ24tY29tcGFyZQpjb25maWd1cmU6 ODM5NjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2Fy Zi0yICAtV3NpZ24tY29tcGFyZSAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODM5NjogJD8g PSAwCmNvbmZpZ3VyZTo4NDA2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODQxNTogY2hlY2tpbmcg d2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby10eXBlLWxpbWl0cwpjb25maWd1cmU6ODQz NDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0y ICAtV3R5cGUtbGltaXRzICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4NDM0OiAkPyA9IDAK Y29uZmlndXJlOjg0NDQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4NDUzOiBjaGVja2luZyB3aGV0 aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIKY29uZmlndXJlOjg0 NzI6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYt MiAgLVd1bnVzZWQtcGFyYW1ldGVyICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4NDcyOiAk PyA9IDAKY29uZmlndXJlOjg0ODI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4NDkxOiBjaGVja2lu ZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLWZvcm1hdC1ub25saXRlcmFsCmNvbmZp Z3VyZTo4NTEwOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAt Z2R3YXJmLTIgIC1XZm9ybWF0LW5vbmxpdGVyYWwgICBjb25mdGVzdC5jICA+JjUKY2MxLmV4ZTog d2FybmluZzogJy1XZm9ybWF0LW5vbmxpdGVyYWwnIGlnbm9yZWQgd2l0aG91dCAnLVdmb3JtYXQn IFstV2Zvcm1hdC1ub25saXRlcmFsXQpjb25maWd1cmU6ODUxMDogJD8gPSAwCmNvbmZpZ3VyZTo4 NTIwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODYxMjogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBp bGVyIGhhbmRsZXMgLVduby1wb2ludGVyLXNpZ24KY29uZmlndXJlOjg2MzE6IGdjYyAtSSAuLi9z cmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAgLVdwb2ludGVyLXNp Z24gICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjg2MzE6ICQ/ID0gMApjb25maWd1cmU6ODY0 MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjg5NDQ6IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRp YmxlIGluc3RhbGwKY29uZmlndXJlOjkwMTI6IHJlc3VsdDogL3Vzci9iaW4vaW5zdGFsbCAtYwpj b25maWd1cmU6OTAyNjogY2hlY2tpbmcgY29tbWFuZCB0byBzeW1saW5rIGZpbGVzIGluIHRoZSBz YW1lIGRpcmVjdG9yeQpjb25maWd1cmU6OTA0NzogcmVzdWx0OiAvYmluL2xuCmNvbmZpZ3VyZTo5 MDYxOiBjaGVja2luZyBmb3IgaW5zdGFsbC1pbmZvCmNvbmZpZ3VyZTo5MDc5OiBmb3VuZCAvdXNy L2Jpbi9pbnN0YWxsLWluZm8KY29uZmlndXJlOjkwOTI6IHJlc3VsdDogL3Vzci9iaW4vaW5zdGFs bC1pbmZvCmNvbmZpZ3VyZTo5MTAyOiBjaGVja2luZyBmb3IgZ3ppcApjb25maWd1cmU6OTEyMDog Zm91bmQgL3Vzci9iaW4vZ3ppcApjb25maWd1cmU6OTEzMjogcmVzdWx0OiAvdXNyL2Jpbi9nemlw CmNvbmZpZ3VyZTo5MTQ4OiBjaGVja2luZyBmb3IgJ2ZpbmQnIGFyZ3MgdG8gZGVsZXRlIGEgZmls ZQpjb25maWd1cmU6OTE1OTogcmVzdWx0OiAtZGVsZXRlCmNvbmZpZ3VyZTo5Mjc5OiBjaGVja2lu ZyBmb3IgYnJldwpjb25maWd1cmU6OTMwOTogcmVzdWx0OiBubwpjb25maWd1cmU6OTQxNzogY2hl Y2tpbmcgZm9yIC16bm9jb21icmVsb2MKY29uZmlndXJlOjk0NDg6IHJlc3VsdDogbm90IG5lZWRl ZApjb25maWd1cmU6OTQ1NzogY2hlY2tpbmcgd2hldGhlciBhZGRyZXNzZXMgYXJlIHNhbml0aXpl ZApjb25maWd1cmU6OTQ4MDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJm LTIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NDQ6MTE6IGVycm9yOiBleHBlY3RlZCAnPScs ICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlIHN0cmluZyBjb25zdGFu dAogICA0NCB8ICAgICBlcnJvciAiQWRkcmVzc2VzIGFyZSBub3Qgc2FuaXRpemVkLiI7CiAgICAg IHwgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb25maWd1cmU6OTQ4 MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9Q T1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NL RVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElO VCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZm5kZWYgX19oYXNfZmVhdHVyZQp8IAkg ICNkZWZpbmUgX19oYXNfZmVhdHVyZShmKSAwCnwgCSAgI2VuZGlmCnwgCSAgI2lmIGRlZmluZWQg X19TQU5JVElaRV9BRERSRVNTX18gfHwgX19oYXNfZmVhdHVyZSAoYWRkcmVzc19zYW5pdGl6ZXIp CnwgCSAgI2Vsc2UKfCAJICAgZXJyb3IgIkFkZHJlc3NlcyBhcmUgbm90IHNhbml0aXplZC4iOwp8 IAkgICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZTo5NDg3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo5NjUxOiBjaGVja2luZyBm b3IgbGlicmFyeSBjb250YWluaW5nIHNxcnQKY29uZmlndXJlOjk2ODI6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAg ICBjb25mdGVzdC5jICA+JjUgCmNvbmZ0ZXN0LmM6NDY6Njogd2FybmluZzogY29uZmxpY3Rpbmcg dHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdzcXJ0JzsgZXhwZWN0ZWQgJ2RvdWJsZShkb3Vi bGUpJyBbLVdidWlsdGluLWRlY2xhcmF0aW9uLW1pc21hdGNoXQogICA0NiB8IGNoYXIgc3FydCAo KTsKICAgICAgfCAgICAgIF5+fn4KY29uZnRlc3QuYzoxOjE6IG5vdGU6ICdzcXJ0JyBpcyBkZWNs YXJlZCBpbiBoZWFkZXIgJzxtYXRoLmg+JwogICAgMSB8IC8qIGNvbmZkZWZzLmggKi8KY29uZmln dXJlOjk2ODI6ICQ/ID0gMApjb25maWd1cmU6OTY5OTogcmVzdWx0OiBub25lIHJlcXVpcmVkCmNv bmZpZ3VyZTo5ODExOiBjaGVja2luZyBmb3IgcGtnLWNvbmZpZwpjb25maWd1cmU6OTgyOTogZm91 bmQgL21pbmd3NjQvYmluL3BrZy1jb25maWcKY29uZmlndXJlOjk4NDE6IHJlc3VsdDogL21pbmd3 NjQvYmluL3BrZy1jb25maWcKY29uZmlndXJlOjk4NjY6IGNoZWNraW5nIHBrZy1jb25maWcgaXMg YXQgbGVhc3QgdmVyc2lvbiAwLjkuMApjb25maWd1cmU6OTg2OTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjk4ODY6IGNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2FyZC5oCmNvbmZpZ3VyZTo5ODg2 OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJp YyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NDc6MTA6IGZhdGFsIGVycm9yOiBtYWNoaW5l L3NvdW5kY2FyZC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDQ3IHwgI2luY2x1ZGUg PG1hY2hpbmUvc291bmRjYXJkLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo5ODg2OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBI QVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVU QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZ U1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAgICAg I2lmZGVmIF9fTUlOR1czMl9fCnwgICAgICNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgp8ICAg ICAjaW5jbHVkZSA8d2luZG93cy5oPgp8ICAgICAjZW5kaWYKfCAKfCAKfCAjaW5jbHVkZSA8bWFj aGluZS9zb3VuZGNhcmQuaD4KY29uZmlndXJlOjk4ODY6IHJlc3VsdDogbm8KY29uZmlndXJlOjk4 ODY6IGNoZWNraW5nIGZvciBzeXMvc291bmRjYXJkLmgKY29uZmlndXJlOjk4ODY6IGdjYyAtSSAu Li9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRl c3QuYyA+JjUKY29uZnRlc3QuYzo0NzoxMDogZmF0YWwgZXJyb3I6IHN5cy9zb3VuZGNhcmQuaDog Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICA0NyB8ICNpbmNsdWRlIDxzeXMvc291bmRjYXJk Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWlu YXRlZC4KY29uZmlndXJlOjk4ODY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8 ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAx CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf SFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2 NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQi CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAjaWZkZWYgX19NSU5HVzMyX18KfCAg ICAgI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCnwgICAgICNpbmNsdWRlIDx3aW5kb3dzLmg+ CnwgICAgICNlbmRpZgp8IAp8IAp8ICNpbmNsdWRlIDxzeXMvc291bmRjYXJkLmg+CmNvbmZpZ3Vy ZTo5ODg2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo5ODg2OiBjaGVja2luZyBmb3Igc291bmRjYXJk LmgKY29uZmlndXJlOjk4ODY6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2Fy Zi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzo0NzoxMDogZmF0 YWwgZXJyb3I6IHNvdW5kY2FyZC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDQ3IHwg I2luY2x1ZGUgPHNvdW5kY2FyZC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjk4ODY6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBf X0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklM RV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZ UEUgIndpbmRvd3MtbnQiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAjaWZkZWYg X19NSU5HVzMyX18KfCAgICAgI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCnwgICAgICNpbmNs dWRlIDx3aW5kb3dzLmg+CnwgICAgICNlbmRpZgp8IAp8IAp8ICNpbmNsdWRlIDxzb3VuZGNhcmQu aD4KY29uZmlndXJlOjk4ODY6IHJlc3VsdDogbm8KY29uZmlndXJlOjk4ODY6IGNoZWNraW5nIGZv ciBtbXN5c3RlbS5oCmNvbmZpZ3VyZTo5ODg2OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMg LU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5 ODg2OiAkPyA9IDAKY29uZmlndXJlOjk4ODY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5OTA3OiBj aGVja2luZyBmb3IgX29zc19pb2N0bCBpbiAtbG9zc2F1ZGlvCmNvbmZpZ3VyZTo5OTMyOiBnY2Mg LUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5l PWdlbmVyaWMgICAgY29uZnRlc3QuYyAtbG9zc2F1ZGlvICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2 NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4 Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBjYW5ub3QgZmluZCAtbG9zc2F1ZGlvCmNvbGxl Y3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjk5MzI6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9Q IDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEK fCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VU X0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQg MQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lT VEVNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8 ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIF9vc3NfaW9j dGwgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gX29zc19pb2N0bCAoKTsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjk5NDE6IHJlc3VsdDogbm8KY29uZmlndXJlOjk5 NTk6IGNoZWNraW5nIGZvciBhbHNhID49IDEuMC4wCmNvbmZpZ3VyZTo5OTY2OiAkUEtHX0NPTkZJ RyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiJEFMU0FfTU9EVUxFUyIKUGFja2FnZSBhbHNhIHdh cyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhhcHMgeW91IHNo b3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGBhbHNhLnBjJwp0byB0aGUgUEtHX0NP TkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlClBhY2thZ2UgJ2Fsc2EnLCByZXF1aXJlZCBi eSAndmlydHVhbDp3b3JsZCcsIG5vdCBmb3VuZApjb25maWd1cmU6OTk2OTogJD8gPSAxCmNvbmZp Z3VyZTo5OTgzOiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiJEFMU0FfTU9E VUxFUyIKUGFja2FnZSBhbHNhIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNo IHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGBh bHNhLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlClBhY2th Z2UgJ2Fsc2EnLCByZXF1aXJlZCBieSAndmlydHVhbDp3b3JsZCcsIG5vdCBmb3VuZApjb25maWd1 cmU6OTk4NjogJD8gPSAxCmNvbmZpZ3VyZToxMDAwMDogcmVzdWx0OiBubwpQYWNrYWdlICdhbHNh JywgcmVxdWlyZWQgYnkgJ3ZpcnR1YWw6d29ybGQnLCBub3QgZm91bmQKY29uZmlndXJlOjEwMDU5 OiBjaGVja2luZyBmb3IgbGludXgvZnMuaApjb25maWd1cmU6MTAwNTk6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+ JjUKY29uZnRlc3QuYzo3NjoxMDogZmF0YWwgZXJyb3I6IGxpbnV4L2ZzLmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgNzYgfCAjaW5jbHVkZSA8bGludXgvZnMuaD4KICAgICAgfCAgICAg ICAgICBefn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEwMDU5 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BP UCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu ZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf VU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tF VF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5U IDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZ U1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5j bHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBI QVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVm aW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMg aW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBp bmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMg aW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMg aW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGlu Y2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxsaW51eC9mcy5oPgpjb25m aWd1cmU6MTAwNTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMDU5OiBjaGVja2luZyBmb3IgbWFs bG9jLmgKY29uZmlndXJlOjEwMDU5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1n ZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxMDA1OTog JD8gPSAwCmNvbmZpZ3VyZToxMDA1OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMDU5OiBjaGVj a2luZyBmb3Igc3lzL3N5c3RlbWluZm8uaApjb25maWd1cmU6MTAwNTk6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+ JjUKY29uZnRlc3QuYzo3NzoxMDogZmF0YWwgZXJyb3I6IHN5cy9zeXN0ZW1pbmZvLmg6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgNzcgfCAjaW5jbHVkZSA8c3lzL3N5c3RlbWluZm8uaD4K ICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRl ZC4KY29uZmlndXJlOjEwMDU5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAj ZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUg U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf T1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQ VVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQK fCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8 ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZp bmUgSEFWRV9NQUxMT0NfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz dGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3Rh dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5o Pgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gK fCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVN T1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJp bmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmlu Z3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRp bnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3Rk Lmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9zeXN0ZW1pbmZvLmg+CmNvbmZpZ3VyZTox MDA1OTogcmVzdWx0OiBubwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBzeXMvc3lzaW5m by5oCmNvbmZpZ3VyZToxMDA1OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3 YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjc3OjEwOiBm YXRhbCBlcnJvcjogc3lzL3N5c2luZm8uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICA3 NyB8ICNpbmNsdWRlIDxzeXMvc3lzaW5mby5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTAwNTk6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9O RVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2Rl ZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUg U1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNk ZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVT X0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19T VEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVB REVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxz ZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5k aWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19I RUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8 ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lO VFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VO SVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lz L3N5c2luZm8uaD4KY29uZmlndXJlOjEwMDU5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDA1OTog Y2hlY2tpbmcgZm9yIGNvZmYuaApjb25maWd1cmU6MTAwNTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5j IC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29u ZnRlc3QuYzo3NzoxMDogZmF0YWwgZXJyb3I6IGNvZmYuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeQogICA3NyB8ICNpbmNsdWRlIDxjb2ZmLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn4K Y29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEwMDU5OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUt ZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZF X1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNE X1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUg X0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5l IEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwg IyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9I CnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMK fCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAj IGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVS UyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVu ZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdT X0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBF U19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElO VF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERf SAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPGNvZmYuaD4K Y29uZmlndXJlOjEwMDU5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDA1OTogY2hlY2tpbmcgZm9y IHB0eS5oCmNvbmZpZ3VyZToxMDA1OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAt Z2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjc3OjEw OiBmYXRhbCBlcnJvcjogcHR5Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgNzcgfCAj aW5jbHVkZSA8cHR5Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fgpjb21waWxhdGlvbiB0ZXJt aW5hdGVkLgpjb25maWd1cmU6MTAwNTk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFj cyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3Mv Igp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2Rl ZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RE SU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNf XyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVm aW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1Mg MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9G VU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmlu ZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklU UyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3Mt bnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwg I2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8cHR5Lmg+CmNvbmZpZ3VyZToxMDA1OTog cmVzdWx0OiBubwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBzeXMvcmVzb3VyY2UuaApj b25maWd1cmU6MTAwNTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0y IC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjEwMDU5OiAkPyA9IDAK Y29uZmlndXJlOjEwMDU5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZv ciBzeXMvdXRzbmFtZS5oCmNvbmZpZ3VyZToxMDA1OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMg LWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVz dC5jOjc4OjEwOiBmYXRhbCBlcnJvcjogc3lzL3V0c25hbWUuaDogTm8gc3VjaCBmaWxlIG9yIGRp cmVjdG9yeQogICA3OCB8ICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgogICAgICB8ICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTAwNTk6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9Q IDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEK fCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VU X0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQg MQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lT VEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5j bHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBI QVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVm aW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMg aW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBp bmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMg aW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMg aW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGlu Y2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgpj b25maWd1cmU6MTAwNTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMDU5OiBjaGVja2luZyBmb3Ig cHdkLmgKY29uZmlndXJlOjEwMDU5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1n ZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxMDA1OTog JD8gPSAwCmNvbmZpZ3VyZToxMDA1OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMDU5OiBjaGVj a2luZyBmb3IgdXRtcC5oCmNvbmZpZ3VyZToxMDA1OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMg LWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVz dC5jOjc5OjEwOiBmYXRhbCBlcnJvcjogdXRtcC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CiAgIDc5IHwgI2luY2x1ZGUgPHV0bXAuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fgpjb21w aWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTAwNTk6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBf X0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklM RV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZ UEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFW RV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JF U09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNs dWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBp bmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVm IEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBk ZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwg IyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAj IGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwg IyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwg IyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMg aW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHV0bXAuaD4KY29uZmln dXJlOjEwMDU5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDA1OTogY2hlY2tpbmcgZm9yIHV0aWwu aApjb25maWd1cmU6MTAwNTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2Fy Zi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzo3OToxMDogZmF0 YWwgZXJyb3I6IHV0aWwuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICA3OSB8ICNpbmNs dWRlIDx1dGlsLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWlu YXRlZC4KY29uZmlndXJlOjEwMDU5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIK fCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18g MQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMg NjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50 Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNk ZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAj ZGVmaW5lIEhBVkVfUFdEX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDx1dGlsLmg+CmNvbmZpZ3VyZToxMDA1OTogcmVz dWx0OiBubwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBzYW5pdGl6ZXIvbHNhbl9pbnRl cmZhY2UuaApjb25maWd1cmU6MTAwNTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIg LWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzo3OTox MDogZmF0YWwgZXJyb3I6IHNhbml0aXplci9sc2FuX2ludGVyZmFjZS5oOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CiAgIDc5IHwgI2luY2x1ZGUgPHNhbml0aXplci9sc2FuX2ludGVyZmFjZS5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjEwMDU5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFj cyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIg MQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRF TlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZG U0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3 aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09V TkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJD RV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVk ZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZF X1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5l ZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5j bHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNs dWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5j bHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5j bHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1 ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzYW5pdGl6ZXIvbHNhbl9pbnRl cmZhY2UuaD4KY29uZmlndXJlOjEwMDU5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDA1OTogY2hl Y2tpbmcgZm9yIHN5cy9zb2NrZXQuaApjb25maWd1cmU6MTAwNTk6IGdjYyAtSSAuLi9zcmMvbnQv aW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjEwMDU5OiAkPyA9IDAKY29uZmlndXJlOjEwMDU5OiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6MTAwNTk6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZToxMDA1OTogY2hlY2tpbmcgZm9yIHVuaXN0ZC5oCmNvbmZpZ3VyZTox MDA1OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMDU5OiBjaGVja2luZyBmb3Igc3lzL3BhcmFt LmgKY29uZmlndXJlOjEwMDU5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdh cmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxMDA1OTogJD8g PSAwCmNvbmZpZ3VyZToxMDA1OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMDU5OiBjaGVja2lu ZyBmb3IgcHRocmVhZC5oCmNvbmZpZ3VyZToxMDA1OTogcmVzdWx0OiBubwpjb25maWd1cmU6MTAw NTk6IGNoZWNraW5nIGZvciBtYWxsb2MvbWFsbG9jLmgKY29uZmlndXJlOjEwMDU5OiBnY2MgLUkg Li4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0 ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6ODM6MTA6IGZhdGFsIGVycm9yOiBtYWxsb2MvbWFsbG9jLmg6 IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgODMgfCAjaW5jbHVkZSA8bWFsbG9jL21hbGxv Yy5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZToxMDA1OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8i CnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19f IDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRT IDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1u dCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAj ZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwg I2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0 ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8 ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1P UllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmlu Zy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5n cy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGlu dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQu aD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bWFsbG9jL21hbGxvYy5oPgpjb25maWd1cmU6MTAw NTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMDU5OiBjaGVja2luZyBmb3Igc3lzL3VuLmgKY29u ZmlndXJlOjEwMDU5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAt bXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6ODM6MTA6IGZhdGFsIGVy cm9yOiBzeXMvdW4uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICA4MyB8ICNpbmNsdWRl IDxzeXMvdW4uaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZToxMDA1OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8i CnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19f IDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRT IDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1u dCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAj ZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwg I2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0 ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8 ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1P UllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmlu Zy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5n cy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGlu dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQu aD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3VuLmg+CmNvbmZpZ3VyZToxMDA1OTogcmVz dWx0OiBubwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBkaXJlbnQuaApjb25maWd1cmU6 MTAwNTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1n ZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjEwMDU5OiAkPyA9IDAKY29uZmlndXJl OjEwMDU5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBleGVjaW5m by5oCmNvbmZpZ3VyZToxMDA1OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3 YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjg0OjEwOiBm YXRhbCBlcnJvcjogZXhlY2luZm8uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICA4NCB8 ICNpbmNsdWRlIDxleGVjaW5mby5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fgpjb21w aWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTAwNTk6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBf X0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklM RV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZ UEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFW RV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JF U09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NL RVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRk ZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAj aW5jbHVkZSA8ZXhlY2luZm8uaD4KY29uZmlndXJlOjEwMDU5OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToxMDA1OTogY2hlY2tpbmcgZm9yIHN0ZGlvX2V4dC5oCmNvbmZpZ3VyZToxMDA1OTogZ2NjIC1J IC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25m dGVzdC5jID4mNQpjb25mdGVzdC5jOjg0OjEwOiBmYXRhbCBlcnJvcjogc3RkaW9fZXh0Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgODQgfCAjaW5jbHVkZSA8c3RkaW9fZXh0Lmg+CiAg ICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25m aWd1cmU6MTAwNTk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUg TUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hF QURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmlu ZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9H TlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNE X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRf WE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZp bmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmlu ZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZF X01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFW RV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFS QU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1 ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGlu Y2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5j bHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYg SEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRl ZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAj IGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMg aW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAj IGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAj IGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBp bmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3RkaW9fZXh0Lmg+CmNv bmZpZ3VyZToxMDA1OTogcmVzdWx0OiBubwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBz eXMvdmZzLmgKY29uZmlndXJlOjEwMDU5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8y IC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6ODQ6 MTA6IGZhdGFsIGVycm9yOiBzeXMvdmZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAg ODQgfCAjaW5jbHVkZSA8c3lzL3Zmcy5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+CmNv bXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDA1OTogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9G SUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1f VFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBI QVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP Q0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYg SEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAh ZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVk ZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8 ICNpbmNsdWRlIDxzeXMvdmZzLmg+CmNvbmZpZ3VyZToxMDA1OTogcmVzdWx0OiBubwpjb25maWd1 cmU6MTAwNTk6IGNoZWNraW5nIGZvciBzeXMvZnNfdHlwZXMuaApjb25maWd1cmU6MTAwNTk6IGdj YyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAg Y29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzo4NDoxMDogZmF0YWwgZXJyb3I6IHN5cy9mc190eXBl cy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDg0IHwgI2luY2x1ZGUgPHN5cy9mc190 eXBlcy5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVy bWluYXRlZC4KY29uZmlndXJlOjEwMDU5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNz LyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05T X18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ VFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dz LW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEK fCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBF U19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNf U1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hF QURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vs c2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVu ZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENf SEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K fCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9J TlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9V TklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5 cy9mc190eXBlcy5oPgpjb25maWd1cmU6MTAwNTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMDU5 OiBjaGVja2luZyBmb3IgZ2V0b3B0LmgKY29uZmlndXJlOjEwMDU5OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxMDA1OTogY2hlY2tpbmcgZm9yIHN5cy9jZGVmcy5oCmNvbmZpZ3VyZToxMDA1OTogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBj b25mdGVzdC5jID4mNQpjb25maWd1cmU6MTAwNTk6ICQ/ID0gMApjb25maWd1cmU6MTAwNTk6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxMDA1OTogY2hlY2tpbmcgZm9yIHN5cy90aW1lLmgKY29uZmln dXJlOjEwMDU5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1 bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxMDA1OTogJD8gPSAwCmNvbmZp Z3VyZToxMDA1OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwMDU5OiBjaGVja2luZyBmb3IgaWVl ZTc1NC5oCmNvbmZpZ3VyZToxMDA1OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAt Z2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjg2OjEw OiBmYXRhbCBlcnJvcjogaWVlZTc1NC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDg2 IHwgI2luY2x1ZGUgPGllZWU3NTQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fgpjb21w aWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTAwNTk6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBf X0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklM RV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZ UEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFW RV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JF U09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NL RVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRk ZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAj aW5jbHVkZSA8aWVlZTc1NC5oPgpjb25maWd1cmU6MTAwNTk6IHJlc3VsdDogbm8KY29uZmlndXJl OjEwMDU5OiBjaGVja2luZyBmb3IgbGltaXRzLmgKY29uZmlndXJlOjEwMDU5OiBnY2MgLUkgLi4v c3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0 LmMgPiY1CmNvbmZpZ3VyZToxMDA1OTogJD8gPSAwCmNvbmZpZ3VyZToxMDA1OTogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjEwMDU5OiBjaGVja2luZyBmb3Igd2NoYXIuaApjb25maWd1cmU6MTAwNTk6 IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmlj ICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjEwMDU5OiAkPyA9IDAKY29uZmlndXJlOjEwMDU5 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25m aWd1cmU6MTAwNTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDA1OTogY2hlY2tpbmcgZm9yIGlu dHR5cGVzLmgKY29uZmlndXJlOjEwMDU5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAwNTk6IGNo ZWNraW5nIGZvciBzeXMvc2VsZWN0LmgKY29uZmlndXJlOjEwMDU5OiBnY2MgLUkgLi4vc3JjL250 L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZ0ZXN0LmM6OTA6MTA6IGZhdGFsIGVycm9yOiBzeXMvc2VsZWN0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgOTAgfCAjaW5jbHVkZSA8c3lzL3NlbGVjdC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTox MDA1OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VT RV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9T T0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0Nf TElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVf TU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9D X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEK fCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2Rl ZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3Rk aW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwg IyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9S WV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5n Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlw ZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5o Pgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+CmNvbmZpZ3VyZToxMDA1OTog cmVzdWx0OiBubwpjb25maWd1cmU6MTAwNTk6IGNoZWNraW5nIGZvciBzeXMvcmFuZG9tLmgKY29u ZmlndXJlOjEwMDU5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAt bXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6OTA6MTA6IGZhdGFsIGVy cm9yOiBzeXMvcmFuZG9tLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgOTAgfCAjaW5j bHVkZSA8c3lzL3JhbmRvbS5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CmNvbXBp bGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDA1OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg RW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNz QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9f RVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxF X09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQ RSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZF X1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVT T1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tF VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQ RVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT X1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNl bHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBl bmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERD X0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+ CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf SU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf VU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxz eXMvcmFuZG9tLmg+CmNvbmZpZ3VyZToxMDA1OTogcmVzdWx0OiBubwpjb25maWd1cmU6MTAwNTk6 IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oCmNvbmZpZ3VyZToxMDA1OTogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjEwMDk2OiBjaGVja2luZyBmb3IgQUREUl9OT19SQU5ET01JWkUKY29uZmlndXJlOjEw MTEzOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2Vu ZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6NTc6MTA6IGZhdGFsIGVycm9yOiBzeXMv cGVyc29uYWxpdHkuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICA1NyB8ICNpbmNsdWRl IDxzeXMvcGVyc29uYWxpdHkuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDExMzogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmlu ZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN5cy9wZXJzb25hbGl0eS5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgcGVyc29uYWxpdHkg KHBlcnNvbmFsaXR5ICgweGZmZmZmZmZmKQp8IAkJCQkgICAgIHwgQUREUl9OT19SQU5ET01JWkUp CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDEyMDogcmVzdWx0OiBubwpjb25m aWd1cmU6MTAxODY6IGNoZWNraW5nIGZvciB0ZXJtLmgKY29uZmlndXJlOjEwMTg2OiBnY2MgLUkg Li4vc3JjL250L2luYyAtRSAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzo1 NzoxMDogZmF0YWwgZXJyb3I6IHRlcm0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICA1 NyB8ICNpbmNsdWRlIDx0ZXJtLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjEwMTg2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFj cyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIg MQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRF TlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZG U0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3 aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09V TkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJD RV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8dGVybS5o Pgpjb25maWd1cmU6MTAxODY6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMTk2OiBjaGVja2luZyB3 aGV0aGVyIHRpbWUuaCBhbmQgc3lzL3RpbWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZApjb25maWd1 cmU6MTAyMTY6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVu ZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjEwMjE2OiAkPyA9IDAKY29uZmln dXJlOjEwMjIzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAyMzE6IGNoZWNraW5nIGZvciBzeXMv d2FpdC5oIHRoYXQgaXMgUE9TSVguMSBjb21wYXRpYmxlCmNvbmZpZ3VyZToxMDI1NzogZ2NjIC1J IC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25m dGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6NzE6 Mzogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ3dhaXQnIFstV2lt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICA3MSB8ICAgd2FpdCAoJnMpOwogICAgICB8 ICAgXn5+fgpjb25maWd1cmU6MTAyNTc6ICQ/ID0gMApjb25maWd1cmU6MTAyNjQ6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZToxMDI3ODogY2hlY2tpbmcgZm9yIG5ldC9pZi5oCmNvbmZpZ3VyZToxMDI3 ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVy aWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjk2OjEwOiBmYXRhbCBlcnJvcjogbmV0L2lm Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgOTYgfCAjaW5jbHVkZSA8bmV0L2lmLmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25m aWd1cmU6MTAyNzg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUg TUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hF QURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmlu ZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9H TlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNE X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRf WE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZp bmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmlu ZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZF X01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFW RV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFS QU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0gg MQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2Rl ZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVf U1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVm IFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYu aD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5o Pgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmlu ZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1l bW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFW RV9TWVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8IAp8ICNp bmNsdWRlIDxuZXQvaWYuaD4KY29uZmlndXJlOjEwMjc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox MDI5NDogY2hlY2tpbmcgZm9yIGlmYWRkcnMuaApjb25maWd1cmU6MTAyOTQ6IGdjYyAtSSAuLi9z cmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3Qu YyA+JjUKY29uZnRlc3QuYzo5NjoxMDogZmF0YWwgZXJyb3I6IGlmYWRkcnMuaDogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQogICA5NiB8ICNpbmNsdWRlIDxpZmFkZHJzLmg+CiAgICAgIHwgICAg ICAgICAgXn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEwMjk0 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BP UCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu ZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf VU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tF VF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5U IDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZ U1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNk ZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5l IEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9X SVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19I CnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RB VF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURF UlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UK fCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlm CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVB REVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAj IGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRU WVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU RElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklT VERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfU1lTX1NPQ0tF VF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8aWZh ZGRycy5oPgpjb25maWd1cmU6MTAyOTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMzEwOiBjaGVj a2luZyBmb3IgbmV0L2lmX2RsLmgKY29uZmlndXJlOjEwMzEwOiBnY2MgLUkgLi4vc3JjL250L2lu YyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNv bmZ0ZXN0LmM6OTY6MTA6IGZhdGFsIGVycm9yOiBuZXQvaWZfZGwuaDogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQogICA5NiB8ICNpbmNsdWRlIDxuZXQvaWZfZGwuaD4KICAgICAgfCAgICAgICAg ICBefn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDMxMDog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1Ag MQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2Rl ZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUg SEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRf QVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAx CnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNU RU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVm aW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBI QVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lU SF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8 ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRf SAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJT CnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwg IyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURF UlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBl bmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H U19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQ RVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJ TlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1RE X0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRf SAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPG5ldC9p Zl9kbC5oPgpjb25maWd1cmU6MTAzMTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMzI1OiBjaGVj a2luZyBmb3Igc3RydWN0IGlmcmVxLmlmcl9mbGFncwpjb25maWd1cmU6MTAzMjU6IGdjYyAtSSAu Li9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRl c3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjEwMjoy MTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KICAxMDIgfCBz dGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+CmNvbmZpZ3VyZToxMDMyNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8i CnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19f IDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRT IDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1u dCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAj ZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwg I2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFW RV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RB VF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19X QUlUX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAj aWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1 ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwg IyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAg aW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRp Zgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2Vu ZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2VuZGlmCnwg CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7CnwgaWYg KGFjX2FnZ3IuaWZyX2ZsYWdzKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MTAzMjU6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0y IC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24g J21haW4nOgpjb25mdGVzdC5jOjEwMjoyMTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdn cicgaXNuJ3Qga25vd24KICAxMDIgfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7CiAgICAg IHwgICAgICAgICAgICAgICAgICAgICBefn5+fn5+CmNvbmZpZ3VyZToxMDMyNTogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFj cyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZp bmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAj ZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmlu ZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwg I2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVf RElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFS X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElN RSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5j bHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBI QVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVm aW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMg aW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBp bmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMg aW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMg aW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGlu Y2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNs dWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVk ZSA8bmV0L2lmLmg+CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3Ry dWN0IGlmcmVxIGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBhY19hZ2dyLmlmcl9mbGFncykKfCByZXR1 cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwMzI1OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxMDM0MTogY2hlY2tpbmcgZm9yIHN0cnVjdCBpZnJlcS5pZnJfaHdhZGRyCmNv bmZpZ3VyZToxMDM0MTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIg LW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAn bWFpbic6CmNvbmZ0ZXN0LmM6MTAyOjIxOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dy JyBpc24ndCBrbm93bgogIDEwMiB8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsKICAgICAg fCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KY29uZmlndXJlOjEwMzQxOiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmlu ZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf TkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNk ZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5l IFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAj ZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9E SVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNs dWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhB VkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp bmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBp bmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBp bmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1 ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRl IDxuZXQvaWYuaD4KfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1 Y3QgaWZyZXEgYWNfYWdncjsKfCBpZiAoYWNfYWdnci5pZnJfaHdhZGRyKQp8IHJldHVybiAwOwp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTAzNDE6IGdjYyAtSSAuLi9zcmMvbnQv aW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUK Y29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjEwMjoyMTogZXJyb3I6 IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KICAxMDIgfCBzdGF0aWMgc3Ry dWN0IGlmcmVxIGFjX2FnZ3I7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICBefn5+fn5+CmNv bmZpZ3VyZToxMDM0MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENf SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5C U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FM VF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2Rl ZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVm aW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhB VkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBI QVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19Q QVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RF RlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNf SCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFW RV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRl Zi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGli Lmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVm aW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8 bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpZiBI QVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lm IEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2VuZGlmCnwgCnwgaW50Cnwg bWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBh Y19hZ2dyLmlmcl9od2FkZHIpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToxMDM0MTogcmVzdWx0OiBubwpjb25maWd1cmU6MTAzNTc6IGNoZWNraW5nIGZvciBz dHJ1Y3QgaWZyZXEuaWZyX25ldG1hc2sKY29uZmlndXJlOjEwMzU3OiBnY2MgLUkgLi4vc3JjL250 L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoxMDI6MjE6IGVycm9y OiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3InIGlzbid0IGtub3duCiAgMTAyIHwgc3RhdGljIHN0 cnVjdCBpZnJlcSBhY19hZ2dyOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fgpj b25maWd1cmU6MTAzNTc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZp bmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVO QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNk ZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2Rl ZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBI QVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUg SEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NE RUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRT X0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRk ZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYg SEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8ICNp ZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUgPG5ldC9pZi5oPgp8ICNlbmRpZgp8IAp8IGludAp8 IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBpZnJlcSBhY19hZ2dyOwp8IGlmIChhY19hZ2dy Lmlmcl9uZXRtYXNrKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MTAzNTc6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVu ZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4n Ogpjb25mdGVzdC5jOjEwMjoyMTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNu J3Qga25vd24KICAxMDIgfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7CiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+CmNvbmZpZ3VyZToxMDM1NzogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmlu ZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lz L3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8 c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxz dGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NU RExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBI QVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVk ZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRl IDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVk ZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVk ZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUg PHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxz eXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0 L2lmLmg+CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlm cmVxIGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBhY19hZ2dyLmlmcl9uZXRtYXNrKQp8IHJldHVybiAw Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTAzNTc6IHJlc3VsdDogbm8KY29u ZmlndXJlOjEwMzczOiBjaGVja2luZyBmb3Igc3RydWN0IGlmcmVxLmlmcl9icm9hZGFkZHIKY29u ZmlndXJlOjEwMzczOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAt bXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoxMDI6MjE6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3In IGlzbid0IGtub3duCiAgMTAyIHwgc3RhdGljIHN0cnVjdCBpZnJlcSBhY19hZ2dyOwogICAgICB8 ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fgpjb25maWd1cmU6MTAzNzM6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9O RVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2Rl ZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUg U1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNk ZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf VU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJ UkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVk ZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUg PG5ldC9pZi5oPgp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVj dCBpZnJlcSBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLmlmcl9icm9hZGFkZHIpCnwgcmV0dXJuIDA7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDM3MzogZ2NjIC1JIC4uL3NyYy9u dC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4m NQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MTAyOjIxOiBlcnJv cjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgogIDEwMiB8IHN0YXRpYyBz dHJ1Y3QgaWZyZXEgYWNfYWdncjsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4K Y29uZmlndXJlOjEwMzczOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1RE Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNk ZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmlu ZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BF TkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhf QUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAj ZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNk ZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5l IEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19D REVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlU U19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBI QVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3Rk ZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFk ZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRl IDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lm IEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAj aWYgSEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRlIDxuZXQvaWYuaD4KfCAjZW5kaWYKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsKfCBpZiAoc2l6ZW9m IGFjX2FnZ3IuaWZyX2Jyb2FkYWRkcikKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjEwMzczOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDM4OTogY2hlY2tpbmcg Zm9yIHN0cnVjdCBpZnJlcS5pZnJfYWRkcgpjb25maWd1cmU6MTAzODk6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+ JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjEwMjoyMTogZXJy b3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KICAxMDIgfCBzdGF0aWMg c3RydWN0IGlmcmVxIGFjX2FnZ3I7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ CmNvbmZpZ3VyZToxMDM4OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09Q RU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVY X0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0Cnwg I2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAj ZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5l IEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmlu ZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf Q0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1J VFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0gg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYg SEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAh ZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVk ZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNp ZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwg I2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2VuZGlmCnwgCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7CnwgaWYgKGFjX2Fn Z3IuaWZyX2FkZHIpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToxMDM4OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5l PWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6 CmNvbmZ0ZXN0LmM6MTAyOjIxOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24n dCBrbm93bgogIDEwMiB8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsKICAgICAgfCAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn4KY29uZmlndXJlOjEwMzg5OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUt ZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZF X1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNE X1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUg X0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5l IEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVf SCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUgPHN5 cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRlIDxuZXQv aWYuaD4KfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgaWZy ZXEgYWNfYWdncjsKfCBpZiAoc2l6ZW9mIGFjX2FnZ3IuaWZyX2FkZHIpCnwgcmV0dXJuIDA7Cnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDM4OTogcmVzdWx0OiBubwpjb25maWd1 cmU6MTA0MDU6IGNoZWNraW5nIGZvciBzdHJ1Y3QgaWZyZXEuaWZyX2FkZHIuc2FfbGVuCmNvbmZp Z3VyZToxMDQwNTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10 dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFp bic6CmNvbmZ0ZXN0LmM6MTAyOjIxOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBp c24ndCBrbm93bgogIDEwMiB8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KY29uZmlndXJlOjEwNDA1OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBI QVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVU QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZ U1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVm aW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJF TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJ TUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxz eXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRl IDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUg PHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVf U1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVk IEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNs dWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1 ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNs dWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNs dWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVk ZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUg PHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRlIDxu ZXQvaWYuaD4KfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3Qg aWZyZXEgYWNfYWdncjsKfCBpZiAoYWNfYWdnci5pZnJfYWRkci5zYV9sZW4pCnwgcmV0dXJuIDA7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDQwNTogZ2NjIC1JIC4uL3NyYy9u dC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4m NQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MTAyOjIxOiBlcnJv cjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgogIDEwMiB8IHN0YXRpYyBz dHJ1Y3QgaWZyZXEgYWNfYWdncjsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4K Y29uZmlndXJlOjEwNDA1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1RE Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNk ZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmlu ZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BF TkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhf QUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAj ZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNk ZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5l IEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19D REVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlU U19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBI QVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3Rk ZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFk ZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRl IDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lm IEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAj aWYgSEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRlIDxuZXQvaWYuaD4KfCAjZW5kaWYKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsKfCBpZiAoc2l6ZW9m IGFjX2FnZ3IuaWZyX2FkZHIuc2FfbGVuKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MTA0MDU6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwNDI4OiBjaGVja2lu ZyB3aGV0aGVyIGdjYyB1bmRlcnN0YW5kcyAtTU1EIC1NRgpjb25maWd1cmU6MTA0NDY6IGdjYyAt SSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1NTUQgLU1GIGRlcHMuZCAtTVAg LW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTA0NDY6ICQ/ID0gMApj b25maWd1cmU6MTA0NTY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMDQ3MjogY2hlY2tpbmcgZm9y IFgKY29uZmlndXJlOjEwNTgwOiBnY2MgLUkgLi4vc3JjL250L2luYyAtRSAtbXR1bmU9Z2VuZXJp YyAgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjEwNTgwOiAkPyA9IDAKY29uZmlndXJlOjEwNjExOiBn Y2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10 dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAtbFgxMSAgPiY1IApJbiBmaWxlIGluY2x1ZGVkIGZy b20gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9YMTEvWGxpYi5oOjMxLAogICAgICAgICAgICAg ICAgIGZyb20gY29uZnRlc3QuYzo1OToKQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9YMTEvWC5o OjQ0OjI2OiBlcnJvcjogZXhwZWN0ZWQgJz0nLCAnLCcsICc7JywgJ2FzbScgb3IgJ19fYXR0cmli dXRlX18nIGJlZm9yZSAnWElEJwogICA0NCB8IHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCBYSUQ7 CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgpDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL1gxMS9YLmg6NDk6OTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdYSUQnCiAgIDQ5 IHwgdHlwZWRlZiBYSUQgV2luZG93OwogICAgICB8ICAgICAgICAgXn5+CkM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvWDExL1guaDo1MDo5OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ1hJRCcK ICAgNTAgfCB0eXBlZGVmIFhJRCBEcmF3YWJsZTsKICAgICAgfCAgICAgICAgIF5+fgpDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YLmg6NTE6OTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1l ICdYSUQnCiAgIDUxIHwgdHlwZWRlZiBYSUQgRm9udDsKICAgICAgfCAgICAgICAgIF5+fgpDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YLmg6NTI6OTogZXJyb3I6IHVua25vd24gdHlwZSBu YW1lICdYSUQnCiAgIDUyIHwgdHlwZWRlZiBYSUQgUGl4bWFwOwogICAgICB8ICAgICAgICAgXn5+ CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1guaDo1Mzo5OiBlcnJvcjogdW5rbm93biB0 eXBlIG5hbWUgJ1hJRCcKICAgNTMgfCB0eXBlZGVmIFhJRCBDdXJzb3I7CiAgICAgIHwgICAgICAg ICBefn4KQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9YMTEvWC5oOjU0Ojk6IGVycm9yOiB1bmtu b3duIHR5cGUgbmFtZSAnWElEJwogICA1NCB8IHR5cGVkZWYgWElEIENvbG9ybWFwOwogICAgICB8 ICAgICAgICAgXn5+CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1guaDo1NTo5OiBlcnJv cjogdW5rbm93biB0eXBlIG5hbWUgJ1hJRCcKICAgNTUgfCB0eXBlZGVmIFhJRCBHQ29udGV4dDsK ICAgICAgfCAgICAgICAgIF5+fgpDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YLmg6NTY6 OTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdYSUQnCiAgIDU2IHwgdHlwZWRlZiBYSUQgS2V5 U3ltOwogICAgICB8ICAgICAgICAgXn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5j OjU5OgpDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YbGliLmg6NDUyOjk6IGVycm9yOiB1 bmtub3duIHR5cGUgbmFtZSAnWElEJwogIDQ1MiB8ICAgICAgICAgWElEIHJlc291cmNlX2Jhc2U7 IC8qIHJlc291cmNlIElEIGJhc2UgKi8KICAgICAgfCAgICAgICAgIF5+fgpDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL1gxMS9YbGliLmg6NDUzOjI6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAn WElEJwogIDQ1MyB8ICBYSUQgcmVzb3VyY2VfbWFzazsgLyogcmVzb3VyY2UgSUQgbWFzayBiaXRz ICovCiAgICAgIHwgIF5+fgpDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YbGliLmg6NDU0 OjI6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnWElEJwogIDQ1NCB8ICBYSUQgcmVzb3VyY2Vf aWQ7IC8qIGFsbG9jYXRvciBjdXJyZW50IElEICovCiAgICAgIHwgIF5+fgpDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL1gxMS9YbGliLmg6NDU2OjI6IGVycm9yOiBleHBlY3RlZCBzcGVjaWZpZXIt cXVhbGlmaWVyLWxpc3QgYmVmb3JlICdYSUQnCiAgNDU2IHwgIFhJRCAoKnJlc291cmNlX2FsbG9j KSgpOyAvKiBhbGxvY2F0b3IgZnVuY3Rpb24gKi8KICAgICAgfCAgXn5+CkM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvWDExL1hsaWIuaDo5MTA6MjogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdY SUQnCiAgOTEwIHwgIFhJRCByZXNvdXJjZWlkOyAgLyogcmVzb3VyY2UgaWQgKi8KICAgICAgfCAg Xn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3RrSW50 WGxpYkRlY2xzLmg6MzAsCiAgICAgICAgICAgICAgICAgZnJvbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL1gxMS9YbGliLmg6MTE5OSwKICAgICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6 NTk6CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1h1dGlsLmg6MTAwOjI6IGVycm9yOiB1 bmtub3duIHR5cGUgbmFtZSAnWElEJwogIDEwMCB8ICBYSUQgd2luZG93X2dyb3VwOyAvKiBpZCBv ZiByZWxhdGVkIHdpbmRvdyBncm91cCAqLwogICAgICB8ICBefn4KQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9YMTEvWHV0aWwuaDoyNjg6MjogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdYSUQn CiAgMjY4IHwgIFhJRCBraWxsaWQ7ICAgLyogYWRkZWQgYnkgSUNDQ00gdmVyc2lvbiAxICovCiAg ICAgIHwgIF5+fgpDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YdXRpbC5oOjM1Njo1OiBl cnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ1hJRCc7IGRpZCB5b3UgbWVhbiAnWElDJz8KICAzNTYg fCAgICAgWElEICAgLyogcmlkICovLAogICAgICB8ICAgICBefn4KICAgICAgfCAgICAgWElDCkM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1h1dGlsLmg6MzgzOjU6IGVycm9yOiB1bmtub3du IHR5cGUgbmFtZSAnWElEJzsgZGlkIHlvdSBtZWFuICdYSUMnPwogIDM4MyB8ICAgICBYSUQgICAv KiByaWQgKi8sCiAgICAgIHwgICAgIF5+fgogICAgICB8ICAgICBYSUMKQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9YMTEvWHV0aWwuaDo1NzU6NTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdY SUQnOyBkaWQgeW91IG1lYW4gJ1hJQyc/CiAgNTc1IHwgICAgIFhJRCAgIC8qIHJpZCAqLywKICAg ICAgfCAgICAgXn5+CiAgICAgIHwgICAgIFhJQwpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFp bic6CmNvbmZ0ZXN0LmM6NjM6MTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ1hybUluaXRpYWxpemUnIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQog ICA2MyB8IFhybUluaXRpYWxpemUgKCkKICAgICAgfCBefn5+fn5+fn5+fn5+CmNvbmZpZ3VyZTox MDYxMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VT RV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9T T0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0Nf TElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVf TU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9D X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEK fCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2Rl ZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJ TUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8WDExL1hsaWIuaD4KfCBpbnQKfCBtYWluICgpCnwg ewp8IFhybUluaXRpYWxpemUgKCkKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEw NjUwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTI4MzogY2hlY2tpbmcgd2hldGhlciBXaW5kb3dz IEFQSSBoZWFkZXJzIGFyZSByZWNlbnQgZW5vdWdoCmNvbmZpZ3VyZToxMTMwMjogZ2NjIC1JIC4u L3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVz dC5jID4mNQpjb25maWd1cmU6MTEzMDI6ICQ/ID0gMApjb25maWd1cmU6MTEzMDk6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZToxMTM3NDogY2hlY2tpbmcgZm9yIHdpbmRyZXMKY29uZmlndXJlOjExMzkw OiBmb3VuZCAvbWluZ3c2NC9iaW4vd2luZHJlcwpjb25maWd1cmU6MTE0MDE6IHJlc3VsdDogd2lu ZHJlcwpjb25maWd1cmU6MTE1OTA6IGNoZWNraW5nIHdoZXRoZXIgbWFsbG9jIGlzIERvdWcgTGVh IHN0eWxlCmNvbmZpZ3VyZToxMTYxMTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3Qu ZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgID4mNSAK Y29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjY2OjE6IHdhcm5pbmc6 IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdtYWxsb2Nfc2V0X3N0YXRlJyBbLVdp bXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgNjYgfCBtYWxsb2Nfc2V0X3N0YXRlICht YWxsb2NfZ2V0X3N0YXRlICgpKTsKICAgICAgfCBefn5+fn5+fn5+fn5+fn5+CmNvbmZ0ZXN0LmM6 NjY6MTk6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdtYWxsb2Nf Z2V0X3N0YXRlJyBbLVdpbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgNjYgfCBtYWxs b2Nfc2V0X3N0YXRlIChtYWxsb2NfZ2V0X3N0YXRlICgpKTsKICAgICAgfCAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+CmNvbmZ0ZXN0LmM6Njc6NjogZXJyb3I6ICdfX2FmdGVyX21v cmVjb3JlX2hvb2snIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICA2 NyB8ICAgICAgX19hZnRlcl9tb3JlY29yZV9ob29rID0gaG9vazsKICAgICAgfCAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpjb25mdGVzdC5jOjY3OjY6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBp ZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBl YXJzIGluCmNvbmZ0ZXN0LmM6Njg6NjogZXJyb3I6ICdfX21hbGxvY19pbml0aWFsaXplX2hvb2sn IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICA2OCB8ICAgICAgX19t YWxsb2NfaW5pdGlhbGl6ZV9ob29rID0gaG9vazsKICAgICAgfCAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpjb25maWd1cmU6MTE2MTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lP TlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRf QklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRv d3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0gg MQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5l IEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9T WVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf SU1BR0VfQVBJIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hbGxvYy5o Pgp8IAkgICAgc3RhdGljIHZvaWQgaG9vayAodm9pZCkge30KfCBpbnQKfCBtYWluICgpCnwgewp8 IG1hbGxvY19zZXRfc3RhdGUgKG1hbGxvY19nZXRfc3RhdGUgKCkpOwp8IAkgICAgX19hZnRlcl9t b3JlY29yZV9ob29rID0gaG9vazsKfCAJICAgIF9fbWFsbG9jX2luaXRpYWxpemVfaG9vayA9IGhv b2s7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTYxODogcmVzdWx0OiBubwpj b25maWd1cmU6MTE3NDc6IGNoZWNraW5nIGZvciBnZXRwYWdlc2l6ZQpjb25maWd1cmU6MTE3NDc6 IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAt bXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICA+JjUgCmNvbmZpZ3VyZToxMTc0NzogJD8gPSAw CmNvbmZpZ3VyZToxMTc0NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjExNzU2OiBjaGVja2luZyBm b3Igd29ya2luZyBtbWFwCmNvbmZpZ3VyZToxMTkwMzogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8g Y29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0 LmMgID4mNSAKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjE2ODox NDogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2dldHBhZ2VzaXpl JyBbLVdpbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAxNjggfCAgIHBhZ2VzaXplID0g Z2V0cGFnZXNpemUgKCk7CiAgICAgIHwgICAgICAgICAgICAgIF5+fn5+fn5+fn5+CmNvbmZ0ZXN0 LmM6MTkyOjIwOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnbW1h cCcgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgMTkyIHwgICBkYXRhMiA9IChj aGFyICopIG1tYXAgKDAsIHBhZ2VzaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hB UkVELCBmZDIsIDBMKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXn5+fgpjb25mdGVzdC5j OjE5MjozOTogZXJyb3I6ICdQUk9UX1JFQUQnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQogIDE5MiB8ICAgZGF0YTIgPSAoY2hhciAqKSBtbWFwICgwLCBwYWdlc2l6ZSwg UFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQyLCAwTCk7CiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KY29uZnRlc3QuYzox OTI6Mzk6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkg b25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCmNvbmZ0ZXN0LmM6MTkyOjUxOiBl cnJvcjogJ1BST1RfV1JJVEUnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogIDE5MiB8ICAgZGF0YTIgPSAoY2hhciAqKSBtbWFwICgwLCBwYWdlc2l6ZSwgUFJPVF9SRUFE IHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQyLCAwTCk7CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CmNvbmZ0ZXN0 LmM6MTk5Ojc6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdtdW5t YXAnIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIDE5OSB8ICAgaWYgKG11bm1h cCAoZGF0YTIsIHBhZ2VzaXplKSkKICAgICAgfCAgICAgICBefn5+fn4KY29uZmlndXJlOjExOTAz OiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmlu ZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAvKiBtYWxsb2MgbWlnaHQgaGF2ZSBiZWVuIHJlbmFtZWQgYXMg cnBsX21hbGxvYy4gKi8KfCAjdW5kZWYgbWFsbG9jCnwgCnwgLyogVGhhbmtzIHRvIE1pa2UgSGFl cnRlbCBhbmQgSmltIEF2ZXJhIGZvciB0aGlzIHRlc3QuCnwgICAgSGVyZSBpcyBhIG1hdHJpeCBv ZiBtbWFwIHBvc3NpYmlsaXRpZXM6CnwgCW1tYXAgcHJpdmF0ZSBub3QgZml4ZWQKfCAJbW1hcCBw cml2YXRlIGZpeGVkIGF0IHNvbWV3aGVyZSBjdXJyZW50bHkgdW5tYXBwZWQKfCAJbW1hcCBwcml2 YXRlIGZpeGVkIGF0IHNvbWV3aGVyZSBhbHJlYWR5IG1hcHBlZAp8IAltbWFwIHNoYXJlZCBub3Qg Zml4ZWQKfCAJbW1hcCBzaGFyZWQgZml4ZWQgYXQgc29tZXdoZXJlIGN1cnJlbnRseSB1bm1hcHBl ZAp8IAltbWFwIHNoYXJlZCBmaXhlZCBhdCBzb21ld2hlcmUgYWxyZWFkeSBtYXBwZWQKfCAgICBG b3IgcHJpdmF0ZSBtYXBwaW5ncywgd2Ugc2hvdWxkIHZlcmlmeSB0aGF0IGNoYW5nZXMgY2Fubm90 IGJlIHJlYWQoKQp8ICAgIGJhY2sgZnJvbSB0aGUgZmlsZSwgbm9yIG1tYXAncyBiYWNrIGZyb20g dGhlIGZpbGUgYXQgYSBkaWZmZXJlbnQKfCAgICBhZGRyZXNzLiAgKFRoZXJlIGhhdmUgYmVlbiBz eXN0ZW1zIHdoZXJlIHByaXZhdGUgd2FzIG5vdCBjb3JyZWN0bHkKfCAgICBpbXBsZW1lbnRlZCBs aWtlIHRoZSBpbmZhbW91cyBpMzg2IHN2cjQuMCwgYW5kIHN5c3RlbXMgd2hlcmUgdGhlCnwgICAg Vk0gcGFnZSBjYWNoZSB3YXMgbm90IGNvaGVyZW50IHdpdGggdGhlIGZpbGUgc3lzdGVtIGJ1ZmZl ciBjYWNoZQp8ICAgIGxpa2UgZWFybHkgdmVyc2lvbnMgb2YgRnJlZUJTRCBhbmQgcG9zc2libHkg Y29udGVtcG9yYXJ5IE5ldEJTRC4pCnwgICAgRm9yIHNoYXJlZCBtYXBwaW5ncywgd2Ugc2hvdWxk IGNvbnZlcnNlbHkgdmVyaWZ5IHRoYXQgY2hhbmdlcyBnZXQKfCAgICBwcm9wYWdhdGVkIGJhY2sg dG8gYWxsIHRoZSBwbGFjZXMgdGhleSdyZSBzdXBwb3NlZCB0byBiZS4KfCAKfCAgICBHcmVwIHdh bnRzIHByaXZhdGUgZml4ZWQgYWxyZWFkeSBtYXBwZWQuCnwgICAgVGhlIG1haW4gdGhpbmdzIGdy ZXAgbmVlZHMgdG8ga25vdyBhYm91dCBtbWFwIGFyZToKfCAgICAqIGRvZXMgaXQgZXhpc3QgYW5k IGlzIGl0IHNhZmUgdG8gd3JpdGUgaW50byB0aGUgbW1hcCdkIGFyZWEKfCAgICAqIGhvdyB0byB1 c2UgaXQgKEJTRCB2YXJpYW50cykgICovCnwgCnwgI2luY2x1ZGUgPGZjbnRsLmg+CnwgI2luY2x1 ZGUgPHN5cy9tbWFuLmg+CnwgCnwgI2lmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiAhZGVmaW5l ZCBIQVZFX1NURExJQl9ICnwgY2hhciAqbWFsbG9jICgpOwp8ICNlbmRpZgp8IAp8IC8qIFRoaXMg bWVzcyB3YXMgY29waWVkIGZyb20gdGhlIEdOVSBnZXRwYWdlc2l6ZS5oLiAgKi8KfCAjaWZuZGVm IEhBVkVfR0VUUEFHRVNJWkUKfCAjIGlmZGVmIF9TQ19QQUdFU0laRQp8ICMgIGRlZmluZSBnZXRw YWdlc2l6ZSgpIHN5c2NvbmYoX1NDX1BBR0VTSVpFKQp8ICMgZWxzZSAvKiBubyBfU0NfUEFHRVNJ WkUgKi8KfCAjICBpZmRlZiBIQVZFX1NZU19QQVJBTV9ICnwgIyAgIGluY2x1ZGUgPHN5cy9wYXJh bS5oPgp8ICMgICBpZmRlZiBFWEVDX1BBR0VTSVpFCnwgIyAgICBkZWZpbmUgZ2V0cGFnZXNpemUo KSBFWEVDX1BBR0VTSVpFCnwgIyAgIGVsc2UgLyogbm8gRVhFQ19QQUdFU0laRSAqLwp8ICMgICAg aWZkZWYgTkJQRwp8ICMgICAgIGRlZmluZSBnZXRwYWdlc2l6ZSgpIE5CUEcgKiBDTFNJWkUKfCAj ICAgICBpZm5kZWYgQ0xTSVpFCnwgIyAgICAgIGRlZmluZSBDTFNJWkUgMQp8ICMgICAgIGVuZGlm IC8qIG5vIENMU0laRSAqLwp8ICMgICAgZWxzZSAvKiBubyBOQlBHICovCnwgIyAgICAgaWZkZWYg TkJQQwp8ICMgICAgICBkZWZpbmUgZ2V0cGFnZXNpemUoKSBOQlBDCnwgIyAgICAgZWxzZSAvKiBu byBOQlBDICovCnwgIyAgICAgIGlmZGVmIFBBR0VTSVpFCnwgIyAgICAgICBkZWZpbmUgZ2V0cGFn ZXNpemUoKSBQQUdFU0laRQp8ICMgICAgICBlbmRpZiAvKiBQQUdFU0laRSAqLwp8ICMgICAgIGVu ZGlmIC8qIG5vIE5CUEMgKi8KfCAjICAgIGVuZGlmIC8qIG5vIE5CUEcgKi8KfCAjICAgZW5kaWYg Lyogbm8gRVhFQ19QQUdFU0laRSAqLwp8ICMgIGVsc2UgLyogbm8gSEFWRV9TWVNfUEFSQU1fSCAq Lwp8ICMgICBkZWZpbmUgZ2V0cGFnZXNpemUoKSA4MTkyCS8qIHB1bnQgdG90YWxseSAqLwp8ICMg IGVuZGlmIC8qIG5vIEhBVkVfU1lTX1BBUkFNX0ggKi8KfCAjIGVuZGlmIC8qIG5vIF9TQ19QQUdF U0laRSAqLwp8IAp8ICNlbmRpZiAvKiBubyBIQVZFX0dFVFBBR0VTSVpFICovCnwgCnwgaW50Cnwg bWFpbiAoKQp8IHsKfCAgIGNoYXIgKmRhdGEsICpkYXRhMiwgKmRhdGEzOwp8ICAgY29uc3QgY2hh ciAqY2RhdGEyOwp8ICAgaW50IGksIHBhZ2VzaXplOwp8ICAgaW50IGZkLCBmZDI7CnwgCnwgICBw YWdlc2l6ZSA9IGdldHBhZ2VzaXplICgpOwp8IAp8ICAgLyogRmlyc3QsIG1ha2UgYSBmaWxlIHdp dGggc29tZSBrbm93biBnYXJiYWdlIGluIGl0LiAqLwp8ICAgZGF0YSA9IChjaGFyICopIG1hbGxv YyAocGFnZXNpemUpOwp8ICAgaWYgKCFkYXRhKQp8ICAgICByZXR1cm4gMTsKfCAgIGZvciAoaSA9 IDA7IGkgPCBwYWdlc2l6ZTsgKytpKQp8ICAgICAqKGRhdGEgKyBpKSA9IHJhbmQgKCk7CnwgICB1 bWFzayAoMCk7CnwgICBmZCA9IGNyZWF0ICgiY29uZnRlc3QubW1hcCIsIDA2MDApOwp8ICAgaWYg KGZkIDwgMCkKfCAgICAgcmV0dXJuIDI7CnwgICBpZiAod3JpdGUgKGZkLCBkYXRhLCBwYWdlc2l6 ZSkgIT0gcGFnZXNpemUpCnwgICAgIHJldHVybiAzOwp8ICAgY2xvc2UgKGZkKTsKfCAKfCAgIC8q IE5leHQsIGNoZWNrIHRoYXQgdGhlIHRhaWwgb2YgYSBwYWdlIGlzIHplcm8tZmlsbGVkLiAgRmls ZSBtdXN0IGhhdmUKfCAgICAgIG5vbi16ZXJvIGxlbmd0aCwgb3RoZXJ3aXNlIHdlIHJpc2sgU0lH QlVTIGZvciBlbnRpcmUgcGFnZS4gICovCnwgICBmZDIgPSBvcGVuICgiY29uZnRlc3QudHh0Iiwg T19SRFdSIHwgT19DUkVBVCB8IE9fVFJVTkMsIDA2MDApOwp8ICAgaWYgKGZkMiA8IDApCnwgICAg IHJldHVybiA0Owp8ICAgY2RhdGEyID0gIiI7CnwgICBpZiAod3JpdGUgKGZkMiwgY2RhdGEyLCAx KSAhPSAxKQp8ICAgICByZXR1cm4gNTsKfCAgIGRhdGEyID0gKGNoYXIgKikgbW1hcCAoMCwgcGFn ZXNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZkMiwgMEwpOwp8ICAg aWYgKGRhdGEyID09IE1BUF9GQUlMRUQpCnwgICAgIHJldHVybiA2Owp8ICAgZm9yIChpID0gMDsg aSA8IHBhZ2VzaXplOyArK2kpCnwgICAgIGlmICgqKGRhdGEyICsgaSkpCnwgICAgICAgcmV0dXJu IDc7CnwgICBjbG9zZSAoZmQyKTsKfCAgIGlmIChtdW5tYXAgKGRhdGEyLCBwYWdlc2l6ZSkpCnwg ICAgIHJldHVybiA4Owp8IAp8ICAgLyogTmV4dCwgdHJ5IHRvIG1tYXAgdGhlIGZpbGUgYXQgYSBm aXhlZCBhZGRyZXNzIHdoaWNoIGFscmVhZHkgaGFzCnwgICAgICBzb21ldGhpbmcgZWxzZSBhbGxv Y2F0ZWQgYXQgaXQuICBJZiB3ZSBjYW4sIGFsc28gbWFrZSBzdXJlIHRoYXQKfCAgICAgIHdlIHNl ZSB0aGUgc2FtZSBnYXJiYWdlLiAgKi8KfCAgIGZkID0gb3BlbiAoImNvbmZ0ZXN0Lm1tYXAiLCBP X1JEV1IpOwp8ICAgaWYgKGZkIDwgMCkKfCAgICAgcmV0dXJuIDk7CnwgICBpZiAoZGF0YTIgIT0g bW1hcCAoZGF0YTIsIHBhZ2VzaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAp8IAkJICAgICBN QVBfUFJJVkFURSB8IE1BUF9GSVhFRCwgZmQsIDBMKSkKfCAgICAgcmV0dXJuIDEwOwp8ICAgZm9y IChpID0gMDsgaSA8IHBhZ2VzaXplOyArK2kpCnwgICAgIGlmICgqKGRhdGEgKyBpKSAhPSAqKGRh dGEyICsgaSkpCnwgICAgICAgcmV0dXJuIDExOwp8IAp8ICAgLyogRmluYWxseSwgbWFrZSBzdXJl IHRoYXQgY2hhbmdlcyB0byB0aGUgbWFwcGVkIGFyZWEgZG8gbm90CnwgICAgICBwZXJjb2xhdGUg YmFjayB0byB0aGUgZmlsZSBhcyBzZWVuIGJ5IHJlYWQoKS4gIChUaGlzIGlzIGEgYnVnIG9uCnwg ICAgICBzb21lIHZhcmlhbnRzIG9mIGkzODYgc3ZyNC4wLikgICovCnwgICBmb3IgKGkgPSAwOyBp IDwgcGFnZXNpemU7ICsraSkKfCAgICAgKihkYXRhMiArIGkpID0gKihkYXRhMiArIGkpICsgMTsK fCAgIGRhdGEzID0gKGNoYXIgKikgbWFsbG9jIChwYWdlc2l6ZSk7CnwgICBpZiAoIWRhdGEzKQp8 ICAgICByZXR1cm4gMTI7CnwgICBpZiAocmVhZCAoZmQsIGRhdGEzLCBwYWdlc2l6ZSkgIT0gcGFn ZXNpemUpCnwgICAgIHJldHVybiAxMzsKfCAgIGZvciAoaSA9IDA7IGkgPCBwYWdlc2l6ZTsgKytp KQp8ICAgICBpZiAoKihkYXRhICsgaSkgIT0gKihkYXRhMyArIGkpKQp8ICAgICAgIHJldHVybiAx NDsKfCAgIGNsb3NlIChmZCk7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTkxMzogcmVz dWx0OiBubwpjb25maWd1cmU6MTE5MzE6IGNoZWNraW5nIGZvciBtYWluIGluIC1sWGJzZApjb25m aWd1cmU6MTE5NTA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8y IC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1sWGJzZCAgICA+JjUgCkM6 L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAv Li4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IGNhbm5vdCBmaW5kIC1s WGJzZApjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp Z3VyZToxMTk1MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBN QUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVB REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0Rf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmlu ZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5l IEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVf TUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZF X1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJB TV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAx CnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNk ZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNk ZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwg CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gbWFpbiAoKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjExOTU5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjA0NTogY2hlY2tp bmcgZm9yIHRocmVhZCBzdXBwb3J0CmNvbmZpZ3VyZToxMjA2MTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjEyMzA4OiBjaGVja2luZyBmb3IgbGlicnN2Zy0yLjAgPj0gMi4xNC4wCmNvbmZpZ3VyZTox MjMxNTogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgIiRSU1ZHX01PRFVMRSIK Y29uZmlndXJlOjEyMzE4OiAkPyA9IDAKY29uZmlndXJlOjEyMzMyOiAkUEtHX0NPTkZJRyAtLWV4 aXN0cyAtLXByaW50LWVycm9ycyAiJFJTVkdfTU9EVUxFIgpjb25maWd1cmU6MTIzMzU6ICQ/ID0g MApjb25maWd1cmU6MTIzNzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjU5OTogY2hlY2tpbmcg Zm9yIGdldGFkZHJpbmZvX2EgaW4gLWxhbmwKY29uZmlndXJlOjEyNjI0OiBnY2MgLUkgLi4vc3Jj L250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIu MC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1w dGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv Y2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1sYW5s ICAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5n dzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogY2Fu bm90IGZpbmQgLWxhbmwKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0 YXR1cwpjb25maWd1cmU6MTI2MjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8 ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAx CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf SFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2 NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQi CnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2Rl ZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNk ZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVf TElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJ VF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0Vf QVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0la RSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VO QUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg CnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy b3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl IG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv dWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwg I2VuZGlmCnwgY2hhciBnZXRhZGRyaW5mb19hICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0 dXJuIGdldGFkZHJpbmZvX2EgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTox MjYzMzogcmVzdWx0OiBubwpjb25maWd1cmU6MTMwNzY6IGNoZWNraW5nIGZvciBkYnVzLTEgPj0g MS4wCmNvbmZpZ3VyZToxMzA4MzogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMg ImRidXMtMSA+PSAxLjAiClBhY2thZ2UgZGJ1cy0xIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1j b25maWcgc2VhcmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBj b250YWluaW5nIGBkYnVzLTEucGMnCnRvIHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQg dmFyaWFibGUKUGFja2FnZSAnZGJ1cy0xJywgcmVxdWlyZWQgYnkgJ3ZpcnR1YWw6d29ybGQnLCBu b3QgZm91bmQKY29uZmlndXJlOjEzMDg2OiAkPyA9IDEKY29uZmlndXJlOjEzMTAwOiAkUEtHX0NP TkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiZGJ1cy0xID49IDEuMCIKUGFja2FnZSBkYnVz LTEgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0aC4KUGVyaGFwcyB5 b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGRidXMtMS5wYycKdG8gdGhl IFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpQYWNrYWdlICdkYnVzLTEnLCBy ZXF1aXJlZCBieSAndmlydHVhbDp3b3JsZCcsIG5vdCBmb3VuZApjb25maWd1cmU6MTMxMDM6ICQ/ ID0gMQpjb25maWd1cmU6MTMxMTc6IHJlc3VsdDogbm8KUGFja2FnZSAnZGJ1cy0xJywgcmVxdWly ZWQgYnkgJ3ZpcnR1YWw6d29ybGQnLCBub3QgZm91bmQKY29uZmlndXJlOjEzNDc2OiBjaGVja2lu ZyBmb3IgbGdldGZpbGVjb24gaW4gLWxzZWxpbnV4CmNvbmZpZ3VyZToxMzUwMTogZ2NjIC1JIC4u L3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xp Yi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0 ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxk cyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAt bHNlbGludXggICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQt dzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQu ZXhlOiBjYW5ub3QgZmluZCAtbHNlbGludXgKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJu ZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTM1MDE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVt YWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0Bn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBF UiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VY VEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9P RkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUg IndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9T T1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09V UkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAj ZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUg SEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9O QVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFW RV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmlu ZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8g YXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl IHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBl eHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBsZ2V0ZmlsZWNvbiAoKTsKfCBpbnQKfCBtYWluICgp Cnwgewp8IHJldHVybiBsZ2V0ZmlsZWNvbiAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjEzNTEwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMzUzMTogY2hlY2tpbmcgZm9yIGdu dXRscyA+PSAyLjEyLjIKY29uZmlndXJlOjEzNTM4OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXBy aW50LWVycm9ycyAiZ251dGxzID49IDIuMTIuMiIKY29uZmlndXJlOjEzNTQxOiAkPyA9IDAKY29u ZmlndXJlOjEzNTU1OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiZ251dGxz ID49IDIuMTIuMiIKY29uZmlndXJlOjEzNTU4OiAkPyA9IDAKY29uZmlndXJlOjEzNTk2OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MTM2MjA6IGNoZWNraW5nIGZvciBsaWJzeXN0ZW1kID49IDIyMgpj b25maWd1cmU6MTM2Mjc6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJsaWJz eXN0ZW1kID49IDIyMiIKUGFja2FnZSBsaWJzeXN0ZW1kIHdhcyBub3QgZm91bmQgaW4gdGhlIHBr Zy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9y eSBjb250YWluaW5nIGBsaWJzeXN0ZW1kLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmly b25tZW50IHZhcmlhYmxlClBhY2thZ2UgJ2xpYnN5c3RlbWQnLCByZXF1aXJlZCBieSAndmlydHVh bDp3b3JsZCcsIG5vdCBmb3VuZApjb25maWd1cmU6MTM2MzA6ICQ/ID0gMQpjb25maWd1cmU6MTM2 NDQ6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJsaWJzeXN0ZW1kID49IDIy MiIKUGFja2FnZSBsaWJzeXN0ZW1kIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2Vh cmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5n IGBsaWJzeXN0ZW1kLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlh YmxlClBhY2thZ2UgJ2xpYnN5c3RlbWQnLCByZXF1aXJlZCBieSAndmlydHVhbDp3b3JsZCcsIG5v dCBmb3VuZApjb25maWd1cmU6MTM2NDc6ICQ/ID0gMQpjb25maWd1cmU6MTM2NjE6IHJlc3VsdDog bm8KUGFja2FnZSAnbGlic3lzdGVtZCcsIHJlcXVpcmVkIGJ5ICd2aXJ0dWFsOndvcmxkJywgbm90 IGZvdW5kCmNvbmZpZ3VyZToxMzcwNjogY2hlY2tpbmcgZm9yIGphbnNzb24gPj0gMi43CmNvbmZp Z3VyZToxMzcxMzogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImphbnNzb24g Pj0gMi43Igpjb25maWd1cmU6MTM3MTY6ICQ/ID0gMApjb25maWd1cmU6MTM3MzA6ICRQS0dfQ09O RklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJqYW5zc29uID49IDIuNyIKY29uZmlndXJlOjEz NzMzOiAkPyA9IDAKY29uZmlndXJlOjEzNzcxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTM4MDM6 IGNoZWNraW5nIHdpbmRvd3MuaCB1c2FiaWxpdHkKY29uZmlndXJlOjEzODAzOiBnY2MgLUkgLi4v c3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv Z2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1t cy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjEz ODAzOiAkPyA9IDAKY29uZmlndXJlOjEzODAzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTM4MDM6 IGNoZWNraW5nIHdpbmRvd3MuaCBwcmVzZW5jZQpjb25maWd1cmU6MTM4MDM6IGdjYyAtSSAuLi9z cmMvbnQvaW5jIC1FIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYwpjb25maWd1cmU6MTM4MDM6 ICQ/ID0gMApjb25maWd1cmU6MTM4MDM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMzgwMzogY2hl Y2tpbmcgZm9yIHdpbmRvd3MuaApjb25maWd1cmU6MTM4MDM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToxNDUzNjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xp Yi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1t cy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVm LTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0 ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0 LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL1gx MS9YbGliLmg6MzEsCiAgICAgICAgICAgICAgICAgZnJvbSBjb25mdGVzdC5jOjcyOgpDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YLmg6NDQ6MjY6IGVycm9yOiBleHBlY3RlZCAnPScsICcs JywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdYSUQnCiAgIDQ0IHwgdHlw ZWRlZiB1bnNpZ25lZCBfX2ludDY0IFhJRDsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1guaDo0OTo5OiBlcnJvcjogdW5r bm93biB0eXBlIG5hbWUgJ1hJRCcKICAgNDkgfCB0eXBlZGVmIFhJRCBXaW5kb3c7CiAgICAgIHwg ICAgICAgICBefn4KQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9YMTEvWC5oOjUwOjk6IGVycm9y OiB1bmtub3duIHR5cGUgbmFtZSAnWElEJwogICA1MCB8IHR5cGVkZWYgWElEIERyYXdhYmxlOwog ICAgICB8ICAgICAgICAgXn5+CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1guaDo1MTo5 OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ1hJRCcKICAgNTEgfCB0eXBlZGVmIFhJRCBGb250 OwogICAgICB8ICAgICAgICAgXn5+CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1guaDo1 Mjo5OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ1hJRCcKICAgNTIgfCB0eXBlZGVmIFhJRCBQ aXhtYXA7CiAgICAgIHwgICAgICAgICBefn4KQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9YMTEv WC5oOjUzOjk6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnWElEJwogICA1MyB8IHR5cGVkZWYg WElEIEN1cnNvcjsKICAgICAgfCAgICAgICAgIF5+fgpDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L1gxMS9YLmg6NTQ6OTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdYSUQnCiAgIDU0IHwgdHlw ZWRlZiBYSUQgQ29sb3JtYXA7CiAgICAgIHwgICAgICAgICBefn4KQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9YMTEvWC5oOjU1Ojk6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnWElEJwogICA1 NSB8IHR5cGVkZWYgWElEIEdDb250ZXh0OwogICAgICB8ICAgICAgICAgXn5+CkM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvWDExL1guaDo1Njo5OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ1hJ RCcKICAgNTYgfCB0eXBlZGVmIFhJRCBLZXlTeW07CiAgICAgIHwgICAgICAgICBefn4KSW4gZmls ZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6NzI6CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv WDExL1hsaWIuaDo0NTI6OTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdYSUQnCiAgNDUyIHwg ICAgICAgICBYSUQgcmVzb3VyY2VfYmFzZTsgLyogcmVzb3VyY2UgSUQgYmFzZSAqLwogICAgICB8 ICAgICAgICAgXn5+CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1hsaWIuaDo0NTM6Mjog ZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdYSUQnCiAgNDUzIHwgIFhJRCByZXNvdXJjZV9tYXNr OyAvKiByZXNvdXJjZSBJRCBtYXNrIGJpdHMgKi8KICAgICAgfCAgXn5+CkM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvWDExL1hsaWIuaDo0NTQ6MjogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdY SUQnCiAgNDU0IHwgIFhJRCByZXNvdXJjZV9pZDsgLyogYWxsb2NhdG9yIGN1cnJlbnQgSUQgKi8K ICAgICAgfCAgXn5+CkM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1hsaWIuaDo0NTY6Mjog ZXJyb3I6IGV4cGVjdGVkIHNwZWNpZmllci1xdWFsaWZpZXItbGlzdCBiZWZvcmUgJ1hJRCcKICA0 NTYgfCAgWElEICgqcmVzb3VyY2VfYWxsb2MpKCk7IC8qIGFsbG9jYXRvciBmdW5jdGlvbiAqLwog ICAgICB8ICBefn4KQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9YMTEvWGxpYi5oOjkxMDoyOiBl cnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ1hJRCcKICA5MTAgfCAgWElEIHJlc291cmNlaWQ7ICAv KiByZXNvdXJjZSBpZCAqLwogICAgICB8ICBefn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvdGtJbnRYbGliRGVjbHMuaDozMCwKICAgICAgICAgICAgICAg ICBmcm9tIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvWDExL1hsaWIuaDoxMTk5LAogICAgICAg ICAgICAgICAgIGZyb20gY29uZnRlc3QuYzo3MjoKQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9Y MTEvWHV0aWwuaDoxMDA6MjogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdYSUQnCiAgMTAwIHwg IFhJRCB3aW5kb3dfZ3JvdXA7IC8qIGlkIG9mIHJlbGF0ZWQgd2luZG93IGdyb3VwICovCiAgICAg IHwgIF5+fgpDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YdXRpbC5oOjI2ODoyOiBlcnJv cjogdW5rbm93biB0eXBlIG5hbWUgJ1hJRCcKICAyNjggfCAgWElEIGtpbGxpZDsgICAvKiBhZGRl ZCBieSBJQ0NDTSB2ZXJzaW9uIDEgKi8KICAgICAgfCAgXn5+CkM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvWDExL1h1dGlsLmg6MzU2OjU6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnWElEJzsg ZGlkIHlvdSBtZWFuICdYSUMnPwogIDM1NiB8ICAgICBYSUQgICAvKiByaWQgKi8sCiAgICAgIHwg ICAgIF5+fgogICAgICB8ICAgICBYSUMKQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9YMTEvWHV0 aWwuaDozODM6NTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdYSUQnOyBkaWQgeW91IG1lYW4g J1hJQyc/CiAgMzgzIHwgICAgIFhJRCAgIC8qIHJpZCAqLywKICAgICAgfCAgICAgXn5+CiAgICAg IHwgICAgIFhJQwpDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL1gxMS9YdXRpbC5oOjU3NTo1OiBl cnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ1hJRCc7IGRpZCB5b3UgbWVhbiAnWElDJz8KICA1NzUg fCAgICAgWElEICAgLyogcmlkICovLAogICAgICB8ICAgICBefn4KICAgICAgfCAgICAgWElDCmNv bmZ0ZXN0LmM6NzM6MTM6IGZhdGFsIGVycm9yOiBYMTEvWHJlc291cmNlLmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgNzMgfCAgICAjaW5jbHVkZSA8WDExL1hyZXNvdXJjZS5oPgogICAg ICB8ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZToxNDUzNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09Q RU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVY X0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0Cnwg I2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAj ZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5l IEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmlu ZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf Q0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1J VFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0gg MQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkg MQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEK fCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxF RCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZp bmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9G SUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8IAkgICNpbmNsdWRlIDxYMTEvWGxpYi5oPgp8IAkgICNpbmNs dWRlIDxYMTEvWHJlc291cmNlLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBYSU1Qcm9jICBjYWxs YmFjazsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE1NDcxOiBjaGVja2luZyBm b3IgaGFyZmJ1enogPj0gMS4yLjMKY29uZmlndXJlOjE1NDc4OiAkUEtHX0NPTkZJRyAtLWV4aXN0 cyAtLXByaW50LWVycm9ycyAiaGFyZmJ1enogPj0gJGhhcmZidXp6X3JlcXVpcmVkX3ZlciIKY29u ZmlndXJlOjE1NDgxOiAkPyA9IDAKY29uZmlndXJlOjE1NDk1OiAkUEtHX0NPTkZJRyAtLWV4aXN0 cyAtLXByaW50LWVycm9ycyAiaGFyZmJ1enogPj0gJGhhcmZidXp6X3JlcXVpcmVkX3ZlciIKY29u ZmlndXJlOjE1NDk4OiAkPyA9IDAKY29uZmlndXJlOjE1NTM2OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6MTU4NjA6IGNoZWNraW5nIGZvciBYMTEveHBtLmgKY29uZmlndXJlOjE1ODYwOiBnY2MgLUkg Li4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1 ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQg LW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl OjE1ODYwOiAkPyA9IDAKY29uZmlndXJlOjE1ODYwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTU4 ODc6IGNoZWNraW5nIGZvciBqcGVnbGliIDZiIG9yIGxhdGVyCmNvbmZpZ3VyZToxNTkyMDogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9s aWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1 Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJp dGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRl c3QuYyAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1t aW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTog QzpcbXN5czY0XHRtcFxjY242TVlKay5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxo b21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3Qu Yzo4NTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBganBlZ19DcmVhdGVEZWNvbXByZXNzJwpDOi9t c3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4u Ly4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcaG9tZVxW V2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6ODc6 IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGpwZWdfZGVzdHJveV9kZWNvbXByZXNzJwpjb2xsZWN0 Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxNTkyMDog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1Ag MQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2Rl ZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUg SEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRf QVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAx CnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNU RU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVm aW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBI QVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lU SF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9O VEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVN X01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQ X0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZF X1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAj ZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2Rl ZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVm aW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjdW5kZWYgSEFWRV9TVERMSUJfSCAvKiBBdm9pZCBjb25maWcuaC9qcGVnbGli LmggY29sbGlzaW9uLiAgKi8KfCAJCSNpbmNsdWRlIDxzdGRpby5oPiAvKiBqcGVnbGliLmggbmVl ZHMgRklMRSBhbmQgc2l6ZV90LiAgKi8KfCAJCSNpbmNsdWRlIDxqcGVnbGliLmg+CnwgCQkjaW5j bHVkZSA8amVycm9yLmg+CnwgCQljaGFyIHZlcmlmeVtKUEVHX0xJQl9WRVJTSU9OIDwgNjIgPyAt MSA6IDFdOwp8IAkJc3RydWN0IGpwZWdfZGVjb21wcmVzc19zdHJ1Y3QgY2luZm87CnwgCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCAKfCAJCWpwZWdfY3JlYXRlX2RlY29tcHJlc3MgKCZjaW5mbyk7Cnwg CQlXQVJOTVMgKCZjaW5mbywgSldSTl9KUEVHX0VPRik7CnwgCQlqcGVnX2Rlc3Ryb3lfZGVjb21w cmVzcyAoJmNpbmZvKTsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE1OTIw OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGst cGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1t bXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9s em8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBj b25mdGVzdC5jICAgLWxqcGVnID4mNSAKY29uZmlndXJlOjE1OTIwOiAkPyA9IDAKY29uZmlndXJl OjE1OTMxOiByZXN1bHQ6IC1sanBlZwpjb25maWd1cmU6MTU5NTQ6IGNoZWNraW5nIGZvciBsY21z Mgpjb25maWd1cmU6MTU5NjE6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJs Y21zMiIKY29uZmlndXJlOjE1OTY0OiAkPyA9IDAKY29uZmlndXJlOjE1OTc4OiAkUEtHX0NPTkZJ RyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGNtczIiCmNvbmZpZ3VyZToxNTk4MTogJD8gPSAw CmNvbmZpZ3VyZToxNjAxOTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE2MDQxOiBjaGVja2luZyBm b3IgbGlicmFyeSBjb250YWluaW5nIGluZmxhdGVFbmQKY29uZmlndXJlOjE2MDcyOiBnY2MgLUkg Li4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9n bGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1i aXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIu MCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0Zmll bGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5j ICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3 MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxt c3lzNjRcdG1wXGNjZ3JYT0tOLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVc VldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjg3 OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBpbmZsYXRlRW5kJwpjb2xsZWN0Mi5leGU6IGVycm9y OiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxNjA3MjogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05F VEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVm aW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBT WVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2Rl ZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElS RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19U SU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2Rl ZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwg I2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJT IDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNk ZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVf VzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9P TEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFS RkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVm aW5lIEhBVkVfTENNUzIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlk ZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2Ug Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAg ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw bHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFy IGluZmxhdGVFbmQgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gaW5mbGF0ZUVuZCAo KTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE2MDcyOiBnY2MgLUkgLi4vc3Jj L250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIu MC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1w dGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv Y2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1seiAg ICA+JjUgCmNvbmZpZ3VyZToxNjA3MjogJD8gPSAwCmNvbmZpZ3VyZToxNjA4OTogcmVzdWx0OiAt bHoKY29uZmlndXJlOjE2MTU0OiBjaGVja2luZyBmb3IgZGxhZGRyCmNvbmZpZ3VyZToxNjE1NDog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBp eGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1z LWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpv IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29u ZnRlc3QuYyAgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13 NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5l eGU6IEM6XG1zeXM2NFx0bXBcY2M4SEtFY0cubzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lz NjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0 ZXN0LmM6MTExOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBkbGFkZHInCmNvbGxlY3QyLmV4ZTog ZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE2MTU0OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVm aW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEK fCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFW RV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NI QVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9D IDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JV RkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAx CnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUg SEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFW RV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8 ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZGxhZGRyIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBp biBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZGxhZGRyLgp8ICAgIEZvciBleGFtcGxlLCBIUC1V WCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgZGxh ZGRyIGlubm9jdW91c19kbGFkZHIKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0 dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBj b25mbGljdCB3aXRoIGNoYXIgZGxhZGRyICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNp ZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUg PGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBkbGFkZHIKfCAKfCAvKiBPdmVycmlkZSBh bnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBi dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHku ICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGRs YWRkciAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u cyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGlu ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZp bmVkIF9fc3R1Yl9kbGFkZHIgfHwgZGVmaW5lZCBfX3N0dWJfX19kbGFkZHIKfCBjaG9rZSBtZQp8 ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGRsYWRkciAoKTsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE2MTU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox NjE1NDogY2hlY2tpbmcgZm9yIGRsZnVuYwpjb25maWd1cmU6MTYxNTQ6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4w L2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxk cyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0 aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9j YWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICAgPiY1 IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAu Mi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRc dG1wXGNjcWNDYm5aLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVz ZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjExMTogdW5k ZWZpbmVkIHJlZmVyZW5jZSB0byBgZGxmdW5jJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1 cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxNjE1NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg RW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNz QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9f RVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxF X09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQ RSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZF X1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVT T1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tF VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBI QVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVm aW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFW RV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JP TExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8 ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVf TENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg LyogRGVmaW5lIGRsZnVuYyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRz Lmg+IGRlY2xhcmVzIGRsZnVuYy4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMu aD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGRsZnVuYyBpbm5vY3VvdXNf ZGxmdW5jCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQg aG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBj aGFyIGRsZnVuYyAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQu aD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMg ZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18K fCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAj ZW5kaWYKfCAKfCAjdW5kZWYgZGxmdW5jCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5h bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhl biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBkbGZ1bmMgKCk7CnwgLyog VGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w bGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZGxm dW5jIHx8IGRlZmluZWQgX19zdHViX19fZGxmdW5jCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBp bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBkbGZ1bmMgKCk7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToxNjE1NDogcmVzdWx0OiBubwpjb25maWd1cmU6MTYyMjU6IGNoZWNraW5n IGZvciBnY2Nfaml0X2NvbnRleHRfYWNxdWlyZSBpbiAtbGdjY2ppdApjb25maWd1cmU6MTYyNTA6 IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1w aXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1t cy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6 byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNv bmZ0ZXN0LmMgLWxnY2NqaXQgICAgPiY1IApjb25maWd1cmU6MTYyNTA6ICQ/ID0gMApjb25maWd1 cmU6MTYyNTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNjI3OTogY2hlY2tpbmcgbGliZ2Njaml0 LmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNjI3OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWcz IC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3Zn LTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVl dHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJp dGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1 bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNjI3OTogJD8gPSAwCmNvbmZp Z3VyZToxNjI3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE2Mjc5OiBjaGVja2luZyBsaWJnY2Nq aXQuaCBwcmVzZW5jZQpjb25maWd1cmU6MTYyNzk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1FIC1t dHVuZT1nZW5lcmljICAgY29uZnRlc3QuYwpjb25maWd1cmU6MTYyNzk6ICQ/ID0gMApjb25maWd1 cmU6MTYyNzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNjI3OTogY2hlY2tpbmcgZm9yIGxpYmdj Y2ppdC5oCmNvbmZpZ3VyZToxNjI3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE2MzQ2OiBnY2Mg LUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xp Yi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1t cy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVm LTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0 ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVz dC5jIC1sZ2Njaml0ID4mNSAKY29uZmlndXJlOjE2MzQ2OiAkPyA9IDAKY29uZmlndXJlOjE2MzQ2 OiAuL2NvbmZ0ZXN0LmV4ZQpjb25maWd1cmU6MTYzNDY6ICQ/ID0gMApjb25maWd1cmU6MTYzOTQ6 IGNoZWNraW5nIHBuZy5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTYzOTQ6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGli LTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJp dGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFy ZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9w aXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTYzOTQ6 ICQ/ID0gMApjb25maWd1cmU6MTYzOTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNjM5NDogY2hl Y2tpbmcgcG5nLmggcHJlc2VuY2UKY29uZmlndXJlOjE2Mzk0OiBnY2MgLUkgLi4vc3JjL250L2lu YyAtRSAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE2Mzk0OiAkPyA9IDAK Y29uZmlndXJlOjE2Mzk0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTYzOTQ6IGNoZWNraW5nIGZv ciBwbmcuaApjb25maWd1cmU6MTYzOTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNjUzODogY2hl Y2tpbmcgd2hldGhlciBwbmdfbG9uZ2ptcCBpcyBkZWNsYXJlZApjb25maWd1cmU6MTY1Mzg6IGdj YyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAv aW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRz IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRo cmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2Nh aXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9waXhtYW4tMSAgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29u ZmlndXJlOjE2NTM4OiAkPyA9IDAKY29uZmlndXJlOjE2NTM4OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6MTY1NjA6IGNoZWNraW5nIHRpZmZpby5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTY1NjA6IGdj YyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAv aW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRz IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRo cmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2Nh aXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25m aWd1cmU6MTY1NjA6ICQ/ID0gMApjb25maWd1cmU6MTY1NjA6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToxNjU2MDogY2hlY2tpbmcgdGlmZmlvLmggcHJlc2VuY2UKY29uZmlndXJlOjE2NTYwOiBnY2Mg LUkgLi4vc3JjL250L2luYyAtRSAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMKY29uZmlndXJl OjE2NTYwOiAkPyA9IDAKY29uZmlndXJlOjE2NTYwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTY1 NjA6IGNoZWNraW5nIGZvciB0aWZmaW8uaApjb25maWd1cmU6MTY1NjA6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZToxNjY0MjogY2hlY2tpbmcgZ2lmX2xpYi5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTY2 NDI6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xp Yi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0 ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxk cyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4m NQpjb25maWd1cmU6MTY2NDI6ICQ/ID0gMApjb25maWd1cmU6MTY2NDI6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZToxNjY0MjogY2hlY2tpbmcgZ2lmX2xpYi5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNjY0 MjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLUUgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jCmNv bmZpZ3VyZToxNjY0MjogJD8gPSAwCmNvbmZpZ3VyZToxNjY0MjogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjE2NjQyOiBjaGVja2luZyBmb3IgZ2lmX2xpYi5oCmNvbmZpZ3VyZToxNjY0MjogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjE2ODU4OiBjaGVja2luZyBncG0uaCB1c2FiaWxpdHkKY29uZmlndXJl OjE2ODU4OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGli L2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1z LWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYt Mi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRm aWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3Qu YyA+JjUKY29uZnRlc3QuYzoxMTk6MTA6IGZhdGFsIGVycm9yOiBncG0uaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogIDExOSB8ICNpbmNsdWRlIDxncG0uaD4KICAgICAgfCAgICAgICAgICBe fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxNjg1ODogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFj cyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZp bmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAj ZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmlu ZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwg I2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVf RElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFS X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElN RSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwg I2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAx CnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZG RVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8 ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhB VkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0Vf VE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVf SEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAj ZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVf TU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVf TElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9O QVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZp bmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRk ZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5j bHVkZSA8Z3BtLmg+CmNvbmZpZ3VyZToxNjg1ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTY4NTg6 IGNoZWNraW5nIGdwbS5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNjg1ODogZ2NjIC1JIC4uL3NyYy9u dC9pbmMgLUUgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6ODY6MTA6IGZh dGFsIGVycm9yOiBncG0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICA4NiB8ICNpbmNs dWRlIDxncG0uaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0 ZWQuCmNvbmZpZ3VyZToxNjg1ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwg I2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5l IFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9I UFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0 CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIK fCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVm aW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2Rl ZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9M SU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlU X0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9B UEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpF IDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5B QkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNk ZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2Rl ZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9Y UE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZp bmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVT X1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVf TElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJ VkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFW RV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPGdwbS5oPgpjb25maWd1cmU6MTY4NTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2 ODU4OiBjaGVja2luZyBmb3IgZ3BtLmgKY29uZmlndXJlOjE2ODU4OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxNzQ4ODogY2hlY2tpbmcgZm9yIGxpYnhtbC0yLjAgPiAyLjYuMTcKY29uZmlndXJlOjE3 NDk1OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGlieG1sLTIuMCA+IDIu Ni4xNyIKY29uZmlndXJlOjE3NDk4OiAkPyA9IDAKY29uZmlndXJlOjE3NTEyOiAkUEtHX0NPTkZJ RyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGlieG1sLTIuMCA+IDIuNi4xNyIKY29uZmlndXJl OjE3NTE1OiAkPyA9IDAKY29uZmlndXJlOjE3NTUzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc2 NTE6IGNoZWNraW5nIGZvciBtYWlsbG9jayBpbiAtbG1haWwKY29uZmlndXJlOjE3Njc2OiBnY2Mg LUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xp Yi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1t cy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVm LTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0 ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVz dC5jIC1sbWFpbCAgLWxnY2NqaXQgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIv Z2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5n dzMyL2Jpbi9sZC5leGU6IGNhbm5vdCBmaW5kIC1sbWFpbApjb2xsZWN0Mi5leGU6IGVycm9yOiBs ZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxNzY3NjogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmlu ZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEK fCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZp bmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMy Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJ VF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJV WlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5l IEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxF UyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0ND SklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf Q09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFW RV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVm aW5lIEhBVkVfTElCWE1MMiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgbWFpbGxvY2sgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gbWFpbGxvY2sgKCk7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNzY4NTogcmVzdWx0OiBubwpjb25m aWd1cmU6MTc3MTQ6IGNoZWNraW5nIGZvciBtYWlsbG9jayBpbiAtbGxvY2tmaWxlCmNvbmZpZ3Vy ZToxNzczOTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdk d2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJw bmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVy aWMgICAgY29uZnRlc3QuYyAtbGxvY2tmaWxlICAtbGdjY2ppdCAgID4mNSAKQzovbXN5czY0L21p bmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8u Li94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogY2Fubm90IGZpbmQgLWxsb2NrZmlsZQpj b2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTox NzczOTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VT RV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9T T0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0Nf TElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVf TU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9D X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEK fCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2Rl ZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJ TUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUg SEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUg U1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVT RV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmlu ZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09O IDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAx CnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEK fCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUg SEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEK fCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIK fCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8 ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklY ICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVm aW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2 b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy ZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0 ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgbWFpbGxvY2sgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsK fCByZXR1cm4gbWFpbGxvY2sgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTox Nzc0ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTc3Njc6IGNoZWNraW5nIGZvciBsaWJsb2NrZmls ZS5zbwpjb25maWd1cmU6MTc3OTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3ODEyOiBjaGVja2lu ZyBtYWlsbG9jay5oIHVzYWJpbGl0eQpjb25maWd1cmU6MTc4MTI6IGdjYyAtSSAuLi9zcmMvbnQv aW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIu MCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZp ZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1 enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXht YW4tMSAgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjEyMDoxMDog ZmF0YWwgZXJyb3I6IG1haWxsb2NrLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAxMjAg fCAjaW5jbHVkZSA8bWFpbGxvY2suaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn4KY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjE3ODEyOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1h Y3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg X19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJ TEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9U WVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhB VkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19S RVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09D S0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx CnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhB VkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5l IEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNk ZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBI QVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJ RlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1ND Uk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAx CnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFW RV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEK fCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQg MQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01Q IDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BO RyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUg SEFWRV9MSUJYTUwyIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cnwg IyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMg IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllf SAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4K fCAjZW5kaWYKfCAjaW5jbHVkZSA8bWFpbGxvY2suaD4KY29uZmlndXJlOjE3ODEyOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxNzgxMjogY2hlY2tpbmcgbWFpbGxvY2suaCBwcmVzZW5jZQpjb25maWd1 cmU6MTc4MTI6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1FIC1tdHVuZT1nZW5lcmljICAgY29uZnRl c3QuYwpjb25mdGVzdC5jOjg3OjEwOiBmYXRhbCBlcnJvcjogbWFpbGxvY2suaDogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQogICA4NyB8ICNpbmNsdWRlIDxtYWlsbG9jay5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTc4 MTI6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0Vf UE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09D S0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJ TlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01N U1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwg I2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZp bmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1F X1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhB VkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZ U1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0Vf TU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUg SEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAx CnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8 ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwg I2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhB VkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwg I2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwg I2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAj ZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAi LmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmlu ZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8bWFpbGxvY2suaD4KY29uZmlndXJlOjE3ODEyOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxNzgxMjogY2hlY2tpbmcgZm9yIG1haWxsb2NrLmgKY29uZmlndXJlOjE3ODEy OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzg4ODogY2hlY2tpbmcgZm9yIGFjY2VwdDQKY29uZmln dXJlOjE3ODg4OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAt Z2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxk cyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2Vu ZXJpYyAgICBjb25mdGVzdC5jICAgLWxnY2NqaXQgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jp bi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0 LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NPNVQxdnEubzogaW4gZnVu Y3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5h dGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MTIxOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBh Y2NlcHQ0Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNv bmZpZ3VyZToxNzg4ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENf SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5C U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FM VF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2Rl ZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVm aW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhB VkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBI QVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19Q QVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RF RlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNf SCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8 ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8 ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAj ZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAx CnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUg SEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxF X05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBV U0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8 ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFW RV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJ WCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0ND SklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJ U1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZG IDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBhY2NlcHQ0IHRvIGFuIGlubm9jdW91cyB2YXJp YW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYWNjZXB0NC4KfCAgICBGb3IgZXhhbXBs ZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVm aW5lIGFjY2VwdDQgaW5ub2N1b3VzX2FjY2VwdDQKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRl ZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdo aWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgYWNjZXB0NCAoKTsgYmVsb3cuCnwgICAgIFByZWZl ciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UK fCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAg Ki8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwg IyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgYWNjZXB0NAp8IAp8IC8q IE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8 ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh IEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz dGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRp Zgp8IGNoYXIgYWNjZXB0NCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMg Zm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdp dGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0 aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAq Lwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9hY2NlcHQ0IHx8IGRlZmluZWQgX19zdHViX19fYWNjZXB0 NAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gYWNj ZXB0NCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3ODg4OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxNzg4ODogY2hlY2tpbmcgZm9yIGZjaGRpcgpjb25maWd1cmU6MTc4ODg6 IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1w aXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1t cy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6 byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNv bmZ0ZXN0LmMgICAtbGdjY2ppdCAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9n Y2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3 MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY2VXS0FaeC5vOiBpbiBmdW5jdGlvbiBgbWFp bic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBc YnVpbGQvY29uZnRlc3QuYzoxMjE6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGZjaGRpcicKY29s bGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTc4 ODg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0Vf UE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09D S0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJ TlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01N U1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwg I2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZp bmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1F X1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhB VkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZ U1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0Vf TU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUg SEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAx CnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8 ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwg I2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhB VkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwg I2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwg I2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAj ZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAi LmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmlu ZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAvKiBEZWZpbmUgZmNoZGlyIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNl IDxsaW1pdHMuaD4gZGVjbGFyZXMgZmNoZGlyLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkg PGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgZmNoZGlyIGlu bm9jdW91c19mY2hkaXIKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFj cm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGlj dCB3aXRoIGNoYXIgZmNoZGlyICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+ IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBf X1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2Vy dC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBmY2hkaXIKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8 ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGZjaGRpciAo KTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGlj aCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBm dW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRo IF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9f c3R1Yl9mY2hkaXIgfHwgZGVmaW5lZCBfX3N0dWJfX19mY2hkaXIKfCBjaG9rZSBtZQp8ICNlbmRp Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGZjaGRpciAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjE3ODg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzg4ODog Y2hlY2tpbmcgZm9yIGdldGhvc3RuYW1lCmNvbmZpZ3VyZToxNzg4ODogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3IgZ2V0cnVzYWdlCmNvbmZpZ3VyZToxNzg4ODogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9s aWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1 Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJp dGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRl c3QuYyAgIC1sZ2Njaml0ICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94 ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9i aW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjVkJ6WFBoLm86IGluIGZ1bmN0aW9uIGBtYWluJzoK QzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWls ZC9jb25mdGVzdC5jOjEyMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ2V0cnVzYWdlJwpjb2xs ZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxNzg4 ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9Q T1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NL RVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElO VCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1T WVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAj ZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVf V0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFW RV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lT VEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9N TUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBI QVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEK fCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwg I2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAj ZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFW RV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAj ZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAj ZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNk ZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIu ZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5l IEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhP U1ROQU1FIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdldHJ1c2FnZSB0 byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHJ1 c2FnZS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0 dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGdldHJ1c2FnZSBpbm5vY3VvdXNfZ2V0cnVzYWdlCnwg CnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5 IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdldHJ1 c2FnZSAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYg X19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBv biBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGlu Y2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYK fCAKfCAjdW5kZWYgZ2V0cnVzYWdlCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBw cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWln aHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBp dHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19j cGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBnZXRydXNhZ2UgKCk7CnwgLyog VGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w bGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZ2V0 cnVzYWdlIHx8IGRlZmluZWQgX19zdHViX19fZ2V0cnVzYWdlCnwgY2hva2UgbWUKfCAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBnZXRydXNhZ2UgKCk7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNzg4ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTc4ODg6 IGNoZWNraW5nIGZvciBnZXRfY3VycmVudF9kaXJfbmFtZQpjb25maWd1cmU6MTc4ODg6IGdjYyAt SSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGli L2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1z LWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYt Mi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRm aWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0 LmMgICAtbGdjY2ppdCAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2 XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmlu L2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY0E4Tkp6Ty5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6 XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQv Y29uZnRlc3QuYzoxMjI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldF9jdXJyZW50X2Rpcl9u YW1lJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp Z3VyZToxNzg4ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBN QUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVB REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0Rf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmlu ZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5l IEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVf TUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZF X1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJB TV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAx CnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNk ZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNk ZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwg I2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFW RV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05P VElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0Vf WElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNk ZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9a TElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAi LmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU X0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1Bf U1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEK fCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBI QVZFX0dFVEhPU1ROQU1FIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdl dF9jdXJyZW50X2Rpcl9uYW1lIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1p dHMuaD4gZGVjbGFyZXMgZ2V0X2N1cnJlbnRfZGlyX25hbWUuCnwgICAgRm9yIGV4YW1wbGUsIEhQ LVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBn ZXRfY3VycmVudF9kaXJfbmFtZSBpbm5vY3VvdXNfZ2V0X2N1cnJlbnRfZGlyX25hbWUKfCAKfCAv KiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3 IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ2V0X2N1cnJl bnRfZGlyX25hbWUgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0 Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3Rz IGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19f CnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+Cnwg I2VuZGlmCnwgCnwgI3VuZGVmIGdldF9jdXJyZW50X2Rpcl9uYW1lCnwgCnwgLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNo YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBn ZXRfY3VycmVudF9kaXJfbmFtZSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRo aXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWls IHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNv bWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMu ICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9nZXRfY3VycmVudF9kaXJfbmFtZSB8fCBkZWZpbmVk IF9fc3R1Yl9fX2dldF9jdXJyZW50X2Rpcl9uYW1lCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBp bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBnZXRfY3VycmVudF9kaXJfbmFtZSAoKTsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3ODg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox Nzg4ODogY2hlY2tpbmcgZm9yIGxyYW5kNDgKY29uZmlndXJlOjE3ODg4OiBnY2MgLUkgLi4vc3Jj L250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIu MC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1w dGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv Y2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgLWxn Y2NqaXQgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQt bWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6 IEM6XG1zeXM2NFx0bXBcY2NLT242U1oubzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRc aG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0 LmM6MTIyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBscmFuZDQ4Jwpjb2xsZWN0Mi5leGU6IGVy cm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxNzg4ODogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFj cyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZp bmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAj ZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmlu ZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwg I2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVf RElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFS X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElN RSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwg I2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAx CnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZG RVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8 ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhB VkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0Vf VE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVf SEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAj ZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVf TU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVf TElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9O QVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZp bmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEK fCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGxyYW5kNDggdG8gYW4gaW5ub2N1b3Vz IHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBscmFuZDQ4Lgp8ICAgIEZvciBl eGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8 ICNkZWZpbmUgbHJhbmQ0OCBpbm5vY3VvdXNfbHJhbmQ0OAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIg dG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAg ICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBscmFuZDQ4ICgpOyBiZWxvdy4KfCAgICAg UHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBz aW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxl cnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vs c2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBscmFuZDQ4Cnwg CnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy b3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl IG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv dWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwg I2VuZGlmCnwgY2hhciBscmFuZDQ4ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAg c29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlh cy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2xyYW5kNDggfHwgZGVmaW5lZCBfX3N0dWJfX19s cmFuZDQ4CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVy biBscmFuZDQ4ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTc4ODg6IHJl c3VsdDogbm8KY29uZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3IgcmFuZG9tCmNvbmZpZ3VyZTox Nzg4ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3IgcmludApjb25m aWd1cmU6MTc4ODg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8y IC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4w IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv bGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBl MiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0Zmll bGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1n ZW5lcmljICAgIGNvbmZ0ZXN0LmMgICAtbGdjY2ppdCAgID4mNSAKY29uZnRlc3QuYzoxMTI6Njog d2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdyaW50Jzsg ZXhwZWN0ZWQgJ2RvdWJsZShkb3VibGUpJyBbLVdidWlsdGluLWRlY2xhcmF0aW9uLW1pc21hdGNo XQogIDExMiB8IGNoYXIgcmludCAoKTsKICAgICAgfCAgICAgIF5+fn4KY29uZnRlc3QuYzoxMDA6 MTogbm90ZTogJ3JpbnQnIGlzIGRlY2xhcmVkIGluIGhlYWRlciAnPG1hdGguaD4nCiAgIDk5IHwg IyBpbmNsdWRlIDxsaW1pdHMuaD4KICAxMDAgfCAjZWxzZQpjb25maWd1cmU6MTc4ODg6ICQ/ID0g MApjb25maWd1cmU6MTc4ODg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzg4ODogY2hlY2tpbmcg Zm9yIHRydW5jCmNvbmZpZ3VyZToxNzg4ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRl c3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIu MCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZp ZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1 enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXht YW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgIC1sZ2Njaml0ICAgPiY1IApjb25m dGVzdC5jOjExMzo2OiB3YXJuaW5nOiBjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVu Y3Rpb24gJ3RydW5jJzsgZXhwZWN0ZWQgJ2RvdWJsZShkb3VibGUpJyBbLVdidWlsdGluLWRlY2xh cmF0aW9uLW1pc21hdGNoXQogIDExMyB8IGNoYXIgdHJ1bmMgKCk7CiAgICAgIHwgICAgICBefn5+ fgpjb25mdGVzdC5jOjEwMToxOiBub3RlOiAndHJ1bmMnIGlzIGRlY2xhcmVkIGluIGhlYWRlciAn PG1hdGguaD4nCiAgMTAwIHwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KICAxMDEgfCAjZWxzZQpjb25m aWd1cmU6MTc4ODg6ICQ/ID0gMApjb25maWd1cmU6MTc4ODg6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToxNzg4ODogY2hlY2tpbmcgZm9yIHNlbGVjdApjb25maWd1cmU6MTc4ODg6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZToxNzg4ODogY2hlY2tpbmcgZm9yIGdldHBhZ2VzaXplCmNvbmZpZ3VyZToxNzg4 ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3Igc2V0bG9jYWxlCmNv bmZpZ3VyZToxNzg4ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAt TzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0y LjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5 cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRm aWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5l PWdlbmVyaWMgICAgY29uZnRlc3QuYyAgIC1sZ2Njaml0ICAgPiY1IApjb25maWd1cmU6MTc4ODg6 ICQ/ID0gMApjb25maWd1cmU6MTc4ODg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzg4ODogY2hl Y2tpbmcgZm9yIG5ld2xvY2FsZQpjb25maWd1cmU6MTc4ODg6IGdjYyAtSSAuLi9zcmMvbnQvaW5j IC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1 ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQg LW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICAtbGdjY2ppdCAg ID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMy LzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5 czY0XHRtcFxjY1NiUHlURy5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZX aW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxMjg6 IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG5ld2xvY2FsZScKY29sbGVjdDIuZXhlOiBlcnJvcjog bGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTc4ODg6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdu dS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhB VkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNf VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2Rl ZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRC U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmlu ZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lT VEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZp bmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVO VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElN RV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8 ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZp bmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNk ZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAx CnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVm aW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1cz Mk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xL SVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZC VVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmlu ZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVM RVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdD Q0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZF X0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhB VkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2Rl ZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVO QyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEK fCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyog RGVmaW5lIG5ld2xvY2FsZSB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRz Lmg+IGRlY2xhcmVzIG5ld2xvY2FsZS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1p dHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIG5ld2xvY2FsZSBpbm5v Y3VvdXNfbmV3bG9jYWxlCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1h Y3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxp Y3Qgd2l0aCBjaGFyIG5ld2xvY2FsZSAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+ IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0 cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZk ZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxh c3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgbmV3bG9jYWxlCnwgCnwgLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNo YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBu ZXdsb2NhbGUgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5j dGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZ Uy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3Rh cnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYg ZGVmaW5lZCBfX3N0dWJfbmV3bG9jYWxlIHx8IGRlZmluZWQgX19zdHViX19fbmV3bG9jYWxlCnwg Y2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBuZXdsb2Nh bGUgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNzg4ODogcmVzdWx0OiBu bwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZvciBnZXRybGltaXQKY29uZmlndXJlOjE3ODg4 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZvciBzZXRybGltaXQKY29u ZmlndXJlOjE3ODg4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZvciBz aHV0ZG93bgpjb25maWd1cmU6MTc4ODg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzg4ODogY2hl Y2tpbmcgZm9yIHB0aHJlYWRfc2lnbWFzawpjb25maWd1cmU6MTc4ODg6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZToxNzg4ODogY2hlY2tpbmcgZm9yIHN0cnNpZ25hbApjb25maWd1cmU6MTc4ODg6IGdj YyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv bGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAt bW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhi dWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1i aXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0 ZXN0LmMgICAtbGdjY2ppdCAgID4mNSAKY29uZmlndXJlOjE3ODg4OiAkPyA9IDAKY29uZmlndXJl OjE3ODg4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZvciBzZXRpdGlt ZXIKY29uZmlndXJlOjE3ODg4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5n IGZvciB0aW1lcl9nZXRvdmVycnVuCmNvbmZpZ3VyZToxNzg4ODogZ2NjIC1JIC4uL3NyYy9udC9p bmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5j bHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVh ZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJv IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgIC1sZ2Njaml0 ICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3 MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxt c3lzNjRcdG1wXGNjVVU2TGJjLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVc VldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjEz NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgdGltZXJfZ2V0b3ZlcnJ1bicKY29sbGVjdDIuZXhl OiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTc4ODg6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAj ZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf TUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAx CnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNk ZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0gg MQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBI QVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9X Q0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxM T0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1Jf QlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZH IDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmlu ZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUg VVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBI QVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAx CnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBI QVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBI QVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhB VkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAj ZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJ RiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAx CnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUg SEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBB R0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJ TUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04g MQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdO QUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAvKiBEZWZpbmUgdGltZXJfZ2V0b3ZlcnJ1biB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4g Y2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHRpbWVyX2dldG92ZXJydW4uCnwgICAgRm9yIGV4YW1w bGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2Rl ZmluZSB0aW1lcl9nZXRvdmVycnVuIGlubm9jdW91c190aW1lcl9nZXRvdmVycnVuCnwgCnwgLyog U3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBw cm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHRpbWVyX2dldG92 ZXJydW4gKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlm IF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4g b24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBp bmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlm CnwgCnwgI3VuZGVmIHRpbWVyX2dldG92ZXJydW4KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGlu dGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNl IGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFu ZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNp ZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHRpbWVyX2dldG92 ZXJydW4gKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlv bnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4g IFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRp bmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVm aW5lZCBfX3N0dWJfdGltZXJfZ2V0b3ZlcnJ1biB8fCBkZWZpbmVkIF9fc3R1Yl9fX3RpbWVyX2dl dG92ZXJydW4KfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0 dXJuIHRpbWVyX2dldG92ZXJydW4gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToxNzg4ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZvciBzZW5kdG8K Y29uZmlndXJlOjE3ODg4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZv ciByZWN2ZnJvbQpjb25maWd1cmU6MTc4ODg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNzg4ODog Y2hlY2tpbmcgZm9yIGdldHNvY2tuYW1lCmNvbmZpZ3VyZToxNzg4ODogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3IgZ2V0aWZhZGRycwpjb25maWd1cmU6MTc4ODg6IGdj YyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv bGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAt bW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhi dWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1i aXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0 ZXN0LmMgICAtbGdjY2ppdCAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2Mv eDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIv YmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY01DcW9hRi5vOiBpbiBmdW5jdGlvbiBgbWFpbic6 CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVp bGQvY29uZnRlc3QuYzoxMzc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldGlmYWRkcnMnCmNv bGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE3 ODg4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNF X1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl ZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18g MQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NP Q0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19M SU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9N TVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0Nf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8 ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVm aW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhB VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElN RV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBI QVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBT WVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNF X01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5l IEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04g MQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEK fCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8 ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBI QVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8 ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8 ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwg I2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVgg Ii5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZp bmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VU SE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEK fCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUg SEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBI QVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZF X1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhB VkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVf U0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NL TkFNRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBnZXRpZmFkZHJzIHRv IGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0aWZh ZGRycy4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0 dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGdldGlmYWRkcnMgaW5ub2N1b3VzX2dldGlmYWRkcnMK fCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVs bHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ2V0 aWZhZGRycyAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4g aWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZl biBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAj IGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5k aWYKfCAKfCAjdW5kZWYgZ2V0aWZhZGRycwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJu YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVm IF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZ2V0aWZhZGRycyAoKTsK fCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp dCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1 Yl9nZXRpZmFkZHJzIHx8IGRlZmluZWQgX19zdHViX19fZ2V0aWZhZGRycwp8IGNob2tlIG1lCnwg I2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0aWZhZGRycyAoKTsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3ODg4OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToxNzg4ODogY2hlY2tpbmcgZm9yIGZyZWVpZmFkZHJzCmNvbmZpZ3VyZToxNzg4ODogZ2NjIC1J IC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIv Z2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMt Yml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0y LjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZp ZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3Qu YyAgIC1sZ2Njaml0ICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZf NjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4v bGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjZzRha0s0Lm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpc bXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9j b25mdGVzdC5jOjEzNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZnJlZWlmYWRkcnMnCmNvbGxl Y3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE3ODg4 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BP UCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu ZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf VU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tF VF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5U IDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZ U1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNk ZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5l IEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9X SVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZF X05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNU RU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01N QVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhB VkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8 ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAj ZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNk ZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZF X0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNk ZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNk ZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2Rl ZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5l bG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUg SEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9T VE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAj ZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFW RV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZF X0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NI VVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVf U1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VO RFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFN RSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBmcmVlaWZhZGRycyB0byBh biBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGZyZWVpZmFk ZHJzLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0 aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgZnJlZWlmYWRkcnMgaW5ub2N1b3VzX2ZyZWVpZmFkZHJz CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGZy ZWVpZmFkZHJzICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5o PiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBl dmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8 ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNl bmRpZgp8IAp8ICN1bmRlZiBmcmVlaWZhZGRycwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50 ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2Ug aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5k IHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lm ZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZnJlZWlmYWRkcnMg KCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp Y2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0 aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBf X3N0dWJfZnJlZWlmYWRkcnMgfHwgZGVmaW5lZCBfX3N0dWJfX19mcmVlaWZhZGRycwp8IGNob2tl IG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZnJlZWlmYWRkcnMg KCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNzg4ODogcmVzdWx0OiBubwpj b25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZvciBnYWlfc3RyZXJyb3IKY29uZmlndXJlOjE3ODg4 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZvciBzeW5jCmNvbmZpZ3Vy ZToxNzg4ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdk d2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJw bmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVy aWMgICAgY29uZnRlc3QuYyAgIC1sZ2Njaml0ICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4v Li4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13 NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjTXBTUG5ULm86IGluIGZ1bmN0 aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRp dmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjEzODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc3lu YycKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1 cmU6MTc4ODg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJ TF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURF UlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9Q RU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBI QVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01B TExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9Q V0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1f SCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu ZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVm aW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVm aW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmlu ZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNk ZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVf SlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJ RlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJ TSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVm aW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJ QiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5k bGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9I IDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NV RkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwg I2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFW RV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJ TlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVm aW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5l IEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZp bmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUg SEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dF VFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgLyogRGVmaW5lIHN5bmMgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNh c2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzeW5jLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkg PGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc3luYyBpbm5v Y3VvdXNfc3luYwp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdp dGggY2hhciBzeW5jICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2Vy dC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0 cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENf Xwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8 ICNlbmRpZgp8IAp8ICN1bmRlZiBzeW5jCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5h bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhl biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBzeW5jICgpOwp8IC8qIFRo ZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxl bWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBh cmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRo ZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3N5bmMg fHwgZGVmaW5lZCBfX3N0dWJfX19zeW5jCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IHJldHVybiBzeW5jICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MTc4ODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3IgZ2V0 cHdlbnQKY29uZmlndXJlOjE3ODg4OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5l eGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9s aWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRz IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAt bW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0x ICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgLWxnY2NqaXQgICA+JjUgCkM6L21zeXM2 NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4v Li4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2MyYzRT cjIubzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxv YWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MTM4OiB1bmRlZmluZWQgcmVm ZXJlbmNlIHRvIGBnZXRwd2VudCcKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBl eGl0IHN0YXR1cwpjb25maWd1cmU6MTc4ODg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lP TlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRf QklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRv d3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0gg MQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5l IEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9T WVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf SU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJF QURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExT IDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2Rl ZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMg MQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5l IEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEK fCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUg TU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmlu ZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZp bmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVm aW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhN TDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAx CnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBI QVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVf U0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VU UkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJ VElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAx CnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9S IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdldHB3ZW50IHRvIGFuIGlu bm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0cHdlbnQuCnwg ICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh eS4gICovCnwgI2RlZmluZSBnZXRwd2VudCBpbm5vY3VvdXNfZ2V0cHdlbnQKfCAKfCAvKiBTeXN0 ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3Rv dHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ2V0cHdlbnQgKCk7IGJl bG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1p dHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVm IGdldHB3ZW50CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8g YXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl IHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBl eHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBnZXRwd2VudCAoKTsKfCAvKiBUaGUgR05VIEMgbGli cmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAg IHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5 IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5h bWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9nZXRwd2VudCB8fCBkZWZp bmVkIF9fc3R1Yl9fX2dldHB3ZW50CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWlu ICgpCnwgewp8IHJldHVybiBnZXRwd2VudCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjE3ODg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzg4ODogY2hlY2tpbmcgZm9yIGVu ZHB3ZW50CmNvbmZpZ3VyZToxNzg4ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3Qu ZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv bGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxk cyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enog LW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4t MSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgIC1sZ2Njaml0ICAgPiY1IApDOi9tc3lz NjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4u Ly4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjQ3Vt STdmLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25s b2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjEzODogdW5kZWZpbmVkIHJl ZmVyZW5jZSB0byBgZW5kcHdlbnQnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEg ZXhpdCBzdGF0dXMKY29uZmlndXJlOjE3ODg4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJ T05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VU X0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5k b3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9I IDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZF X0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VU UEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhS RUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRM UyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNk ZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJT IDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmlu ZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAx CnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5l IE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVm aW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2Rl ZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJY TUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00g MQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUg SEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZF X1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00g MQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJP UiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBlbmRwd2VudCB0byBhbiBp bm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGVuZHB3ZW50Lgp8 ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2Zk YXkuICAqLwp8ICNkZWZpbmUgZW5kcHdlbnQgaW5ub2N1b3VzX2VuZHB3ZW50CnwgCnwgLyogU3lz dGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90 b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGVuZHB3ZW50ICgpOyBi ZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBp cyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFu ZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGlt aXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRl ZiBlbmRwd2VudAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv IGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo ZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50 IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg ZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZW5kcHdlbnQgKCk7CnwgLyogVGhlIEdOVSBDIGxp YnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAg ICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxs eSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBu YW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZW5kcHdlbnQgfHwgZGVm aW5lZCBfX3N0dWJfX19lbmRwd2VudAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFp biAoKQp8IHsKfCByZXR1cm4gZW5kcHdlbnQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToxNzg4ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZvciBn ZXRncmVudApjb25maWd1cmU6MTc4ODg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0 LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6 IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFu LTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICAtbGdjY2ppdCAgID4mNSAKQzovbXN5 czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8u Li8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY0sy WkxGRi5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3du bG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxMzg6IHVuZGVmaW5lZCBy ZWZlcmVuY2UgdG8gYGdldGdyZW50Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAx IGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxNzg4ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3Mg MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9l bWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEK fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5T SU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNF VF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2lu ZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5E IDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0Vf SCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZF X1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElW RV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dF VFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRI UkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVU TFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAj ZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFS UyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZp bmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIg MQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmlu ZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVm aW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2Rl ZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNk ZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElC WE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9N IDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5l IEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFW RV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9T RVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJF QURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NF VElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9N IDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJS T1IgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZ2V0Z3JlbnQgdG8gYW4g aW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXRncmVudC4K fCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9m ZGF5LiAgKi8KfCAjZGVmaW5lIGdldGdyZW50IGlubm9jdW91c19nZXRncmVudAp8IAp8IC8qIFN5 c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJv dG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBnZXRncmVudCAoKTsg YmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18g aXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3Rh bmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxp bWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5k ZWYgZ2V0Z3JlbnQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdldGdyZW50ICgpOwp8IC8qIFRoZSBHTlUgQyBs aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAg ICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwg bmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2dldGdyZW50IHx8IGRl ZmluZWQgX19zdHViX19fZ2V0Z3JlbnQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1h aW4gKCkKfCB7CnwgcmV0dXJuIGdldGdyZW50ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MTc4ODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3Ig ZW5kZ3JlbnQKY29uZmlndXJlOjE3ODg4OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVz dC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4w IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0Zmll bGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6 eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1h bi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgLWxnY2NqaXQgICA+JjUgCkM6L21z eXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4v Li4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2Nt NXJERlEubzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93 bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MTM4OiB1bmRlZmluZWQg cmVmZXJlbmNlIHRvIGBlbmRncmVudCcKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQg MSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTc4ODg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNz IDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAx CnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVO U0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZT RVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndp bmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VO RCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNF X0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVm aW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJ VkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBU SFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05V VExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwg I2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JB UlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVm aW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMy IDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZp bmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2Rl ZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNk ZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAj ZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJ QlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRP TSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmlu ZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhB VkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVf U0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhS RUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9T RVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJP TSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVS Uk9SIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGVuZGdyZW50IHRvIGFu IGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZW5kZ3JlbnQu CnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVv ZmRheS4gICovCnwgI2RlZmluZSBlbmRncmVudCBpbm5vY3VvdXNfZW5kZ3JlbnQKfCAKfCAvKiBT eXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHBy b3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZW5kZ3JlbnQgKCk7 IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxs aW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3Vu ZGVmIGVuZGdyZW50CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUg dG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg dGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMK fCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBlbmRncmVudCAoKTsKfCAvKiBUaGUgR05VIEMg bGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwg ICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVh bGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFs IG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9lbmRncmVudCB8fCBk ZWZpbmVkIF9fc3R1Yl9fX2VuZGdyZW50CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IHJldHVybiBlbmRncmVudCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjE3ODg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzg4ODogY2hlY2tpbmcgZm9y IGNmbWFrZXJhdwpjb25maWd1cmU6MTc4ODg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0 ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0y LjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRm aWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZi dXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4 bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICAtbGdjY2ppdCAgID4mNSAKQzov bXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8u Li8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxj Y0toV3pzZy5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxE b3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxMzg6IHVuZGVmaW5l ZCByZWZlcmVuY2UgdG8gYGNmbWFrZXJhdycKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJu ZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTc4ODg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVt YWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0Bn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBF UiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VY VEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9P RkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUg IndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9T T1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09V UkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAj ZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUg SEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9O QVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFW RV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmlu ZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVf R05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAx CnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xM X0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAj ZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xD TVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNk ZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwg I2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8 ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEK fCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZF X0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JB TkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2Rl ZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhB VkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9Q VEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFW RV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNW RlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NU UkVSUk9SIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGNmbWFrZXJhdyB0 byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGNmbWFr ZXJhdy4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0 dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGNmbWFrZXJhdyBpbm5vY3VvdXNfY2ZtYWtlcmF3Cnwg CnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5 IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGNmbWFr ZXJhdyAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYg X19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBv biBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGlu Y2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYK fCAKfCAjdW5kZWYgY2ZtYWtlcmF3CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBw cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWln aHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBp dHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19j cGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBjZm1ha2VyYXcgKCk7CnwgLyog VGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w bGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfY2Zt YWtlcmF3IHx8IGRlZmluZWQgX19zdHViX19fY2ZtYWtlcmF3CnwgY2hva2UgbWUKfCAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBjZm1ha2VyYXcgKCk7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNzg4ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTc4ODg6 IGNoZWNraW5nIGZvciBjZnNldHNwZWVkCmNvbmZpZ3VyZToxNzg4ODogZ2NjIC1JIC4uL3NyYy9u dC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAv aW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRz IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRo cmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2Nh aXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgIC1sZ2Nj aml0ICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1p bmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBD Olxtc3lzNjRcdG1wXGNjR2czb1N0Lm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhv bWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5j OjEzODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgY2ZzZXRzcGVlZCcKY29sbGVjdDIuZXhlOiBl cnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTc4ODg6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf UE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBf VEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwg I2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZp bmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8 ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZF X0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8 ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0Mg MQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVG RkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEK fCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBI QVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNF X1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZF X0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwg I2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZF X01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZF X0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVf TkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVm aW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAx CnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwg I2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFW RV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VT SVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlU IDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8 ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwg MQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNk ZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVm aW5lIGNmc2V0c3BlZWQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5o PiBkZWNsYXJlcyBjZnNldHNwZWVkLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0 cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgY2ZzZXRzcGVlZCBpbm5v Y3VvdXNfY2ZzZXRzcGVlZAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZs aWN0IHdpdGggY2hhciBjZnNldHNwZWVkICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNp ZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUg PGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBjZnNldHNwZWVkCnwgCnwgLyogT3ZlcnJp ZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwg ICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw cGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hh ciBjZnNldHNwZWVkICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3Ig ZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBF Tk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5n IHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwg I2lmIGRlZmluZWQgX19zdHViX2Nmc2V0c3BlZWQgfHwgZGVmaW5lZCBfX3N0dWJfX19jZnNldHNw ZWVkCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBj ZnNldHNwZWVkICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTc4ODg6IHJl c3VsdDogbm8KY29uZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3IgX19leGVjdXRhYmxlX3N0YXJ0 CmNvbmZpZ3VyZToxNzg4ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1n MyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2 Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJl ZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1i aXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10 dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgIC1sZ2Njaml0ICAgPiY1IApDOi9tc3lzNjQvbWlu Z3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4u L3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjRW9TNGpJLm86 IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xl bWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjEzODogdW5kZWZpbmVkIHJlZmVyZW5j ZSB0byBgX19leGVjdXRhYmxlX3N0YXJ0Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5l ZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxNzg4ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVS IDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhU RU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09G RlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAi d2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NP VU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VS Q0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNk ZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05B VElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZF X0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5l IFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9H TlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEK fCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExf QkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNk ZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENN UzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2Rl ZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAj ZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwg I2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8 ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVf TElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFO RE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVm aW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg SEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFW RV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BU SFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZF X1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZG Uk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RS RVJST1IgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgX19leGVjdXRhYmxl X3N0YXJ0IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFy ZXMgX19leGVjdXRhYmxlX3N0YXJ0Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0 cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgX19leGVjdXRhYmxlX3N0 YXJ0IGlubm9jdW91c19fX2V4ZWN1dGFibGVfc3RhcnQKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRv IGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAg IHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgX19leGVjdXRhYmxlX3N0YXJ0ICgpOyBiZWxv dy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBk ZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGlu ZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRz Lmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBf X2V4ZWN1dGFibGVfc3RhcnQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVz cGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIF9fZXhlY3V0YWJsZV9zdGFydCAoKTsK fCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp dCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1 Yl9fX2V4ZWN1dGFibGVfc3RhcnQgfHwgZGVmaW5lZCBfX3N0dWJfX19fX2V4ZWN1dGFibGVfc3Rh cnQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIF9f ZXhlY3V0YWJsZV9zdGFydCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3 ODg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzg4ODogY2hlY2tpbmcgZm9yIGxvZzIKY29uZmln dXJlOjE3ODg4OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAt Z2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxk cyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2Vu ZXJpYyAgICBjb25mdGVzdC5jICAgLWxnY2NqaXQgICA+JjUgCmNvbmZ0ZXN0LmM6MTI3OjY6IHdh cm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5jdGlvbiAnbG9nMic7IGV4 cGVjdGVkICdkb3VibGUoZG91YmxlKScgWy1XYnVpbHRpbi1kZWNsYXJhdGlvbi1taXNtYXRjaF0K ICAxMjcgfCBjaGFyIGxvZzIgKCk7CiAgICAgIHwgICAgICBefn5+CmNvbmZ0ZXN0LmM6MTE1OjE6 IG5vdGU6ICdsb2cyJyBpcyBkZWNsYXJlZCBpbiBoZWFkZXIgJzxtYXRoLmg+JwogIDExNCB8ICMg aW5jbHVkZSA8bGltaXRzLmg+CiAgMTE1IHwgI2Vsc2UKY29uZmlndXJlOjE3ODg4OiAkPyA9IDAK Y29uZmlndXJlOjE3ODg4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTc4ODg6IGNoZWNraW5nIGZv ciBwdGhyZWFkX3NldG5hbWVfbnAKY29uZmlndXJlOjE3ODg4OiBnY2MgLUkgLi4vc3JjL250L2lu YyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNs dWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFk IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8g LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgLWxnY2NqaXQg ICA+JjUgCmNvbmZpZ3VyZToxNzg4ODogJD8gPSAwCmNvbmZpZ3VyZToxNzg4ODogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjE3ODg4OiBjaGVja2luZyBmb3IgcHRocmVhZF9zZXRfbmFtZV9ucApjb25m aWd1cmU6MTc4ODg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8y IC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4w IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv bGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBl MiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0Zmll bGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1n ZW5lcmljICAgIGNvbmZ0ZXN0LmMgICAtbGdjY2ppdCAgID4mNSAKQzovbXN5czY0L21pbmd3NjQv YmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZf NjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY2dPb2cwRS5vOiBpbiBm dW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3Nc bmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxNDA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g YHB0aHJlYWRfc2V0X25hbWVfbnAnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEg ZXhpdCBzdGF0dXMKY29uZmlndXJlOjE3ODg4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJ T05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VU X0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5k b3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9I IDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZF X0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VU UEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhS RUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRM UyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNk ZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJT IDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmlu ZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAx CnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5l IE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVm aW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2Rl ZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJY TUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00g MQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUg SEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZF X1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00g MQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJP UiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVf TlAgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgcHRocmVhZF9zZXRfbmFt ZV9ucCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVz IHB0aHJlYWRfc2V0X25hbWVfbnAuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRz Lmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBwdGhyZWFkX3NldF9uYW1l X25wIGlubm9jdW91c19wdGhyZWFkX3NldF9uYW1lX25wCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0 byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAg ICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHB0aHJlYWRfc2V0X25hbWVfbnAgKCk7IGJl bG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1p dHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVm IHB0aHJlYWRfc2V0X25hbWVfbnAKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2Nw bHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHB0aHJlYWRfc2V0X25hbWVfbnAg KCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp Y2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0 aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBf X3N0dWJfcHRocmVhZF9zZXRfbmFtZV9ucCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3B0aHJlYWRfc2V0 X25hbWVfbnAKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0 dXJuIHB0aHJlYWRfc2V0X25hbWVfbnAgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZToxNzg4ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTc5MDA6IGNoZWNraW5nIHdoZXRoZXIg cHRocmVhZF9zZXRuYW1lX25wIHRha2VzIGEgc2luZ2xlIGFyZ3VtZW50CmNvbmZpZ3VyZToxNzkx NjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGli LTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRm aWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRz IC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoxMTA6MjE6IHdhcm5p bmc6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiAncHRocmVhZF9zZXRuYW1lX25wJyBtYWtlcyBpbnRl Z2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdCBbLVdpbnQtY29udmVyc2lvbl0KICAxMTAg fCBwdGhyZWFkX3NldG5hbWVfbnAgKCJhIik7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICBe fn4KICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgfCAgICAgICAgICAgICAgICAg ICAgIGNoYXIgKgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDY6CkM6L21zeXM2 NC9taW5ndzY0L3g4Nl82NC13NjQtbWluZ3czMi9pbmNsdWRlL3B0aHJlYWQuaDozMTc6NTU6IG5v dGU6IGV4cGVjdGVkICdwdGhyZWFkX3QnIHtha2EgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnfSBi dXQgYXJndW1lbnQgaXMgb2YgdHlwZSAnY2hhciAqJwogIDMxNyB8IGludCAgICAgICBXSU5QVEhS RUFEX0FQSSBwdGhyZWFkX3NldG5hbWVfbnAocHRocmVhZF90IHRocmVhZCwgY29uc3QgY2hhciAq bmFtZSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB+fn5+fn5+fn5+Xn5+fn5+CmNvbmZ0ZXN0LmM6MTEwOjE6IGVycm9yOiB0b28gZmV3IGFyZ3Vt ZW50cyB0byBmdW5jdGlvbiAncHRocmVhZF9zZXRuYW1lX25wJwogIDExMCB8IHB0aHJlYWRfc2V0 bmFtZV9ucCAoImEiKTsKICAgICAgfCBefn5+fn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIGNvbmZ0ZXN0LmM6MTA2OgpDOi9tc3lzNjQvbWluZ3c2NC94ODZfNjQtdzY0LW1pbmd3 MzIvaW5jbHVkZS9wdGhyZWFkLmg6MzE3OjI2OiBub3RlOiBkZWNsYXJlZCBoZXJlCiAgMzE3IHwg aW50ICAgICAgIFdJTlBUSFJFQURfQVBJIHB0aHJlYWRfc2V0bmFtZV9ucChwdGhyZWFkX3QgdGhy ZWFkLCBjb25zdCBjaGFyICpuYW1lKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+CmNvbmZpZ3VyZToxNzkxNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg RW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNz QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9f RVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxF X09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQ RSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZF X1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVT T1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tF VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBI QVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVm aW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFW RV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JP TExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8 ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVf TENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwg I2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEK fCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAx CnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcg MQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhB VkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVf UkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAj ZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZp bmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZF X1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBI QVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JF Q1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlf U1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T RVROQU1FX05QIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHB0aHJlYWQu aD4KfCBpbnQKfCBtYWluICgpCnwgewp8IHB0aHJlYWRfc2V0bmFtZV9ucCAoImEiKTsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3OTIzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox NzkzMDogY2hlY2tpbmcgd2hldGhlciBwdGhyZWFkX3NldG5hbWVfbnAgdGFrZXMgdGhyZWUgYXJn dW1lbnRzCmNvbmZpZ3VyZToxNzk0NjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAt Z2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxk cyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2Vu ZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29u ZnRlc3QuYzoxMTA6MTogZXJyb3I6IHRvbyBtYW55IGFyZ3VtZW50cyB0byBmdW5jdGlvbiAncHRo cmVhZF9zZXRuYW1lX25wJwogIDExMCB8IHB0aHJlYWRfc2V0bmFtZV9ucCAoMCwgIiVzIiwgImEi KTsKICAgICAgfCBefn5+fn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0 ZXN0LmM6MTA2OgpDOi9tc3lzNjQvbWluZ3c2NC94ODZfNjQtdzY0LW1pbmd3MzIvaW5jbHVkZS9w dGhyZWFkLmg6MzE3OjI2OiBub3RlOiBkZWNsYXJlZCBoZXJlCiAgMzE3IHwgaW50ICAgICAgIFdJ TlBUSFJFQURfQVBJIHB0aHJlYWRfc2V0bmFtZV9ucChwdGhyZWFkX3QgdGhyZWFkLCBjb25zdCBj aGFyICpuYW1lKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+CmNvbmZpZ3VyZToxNzk0NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8i CnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19f IDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRT IDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1u dCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAj ZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwg I2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFW RV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RB VF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19X QUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFH RV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VT SVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNf RU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8 ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5l IFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwg I2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFW RV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNk ZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RV TEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhB VkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBO QVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUg SEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAx CnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAj ZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVf U0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRM T0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElN SVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lH TUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1F UiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAj ZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8 ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4KfCBpbnQKfCBt YWluICgpCnwgewp8IHB0aHJlYWRfc2V0bmFtZV9ucCAoMCwgIiVzIiwgImEiKTsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3OTUzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzk2 NjogY2hlY2tpbmcgZm9yIGFsaWduZWRfYWxsb2MKY29uZmlndXJlOjE3OTY2OiBnY2MgLUkgLi4v c3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGli LTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRm aWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRz IC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1s Z2Njaml0ICAgPiY1IApjb25mdGVzdC5jOjEyOTo2OiB3YXJuaW5nOiBjb25mbGljdGluZyB0eXBl cyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gJ2FsaWduZWRfYWxsb2MnOyBleHBlY3RlZCAndm9pZCAq KGxvbmcgbG9uZyB1bnNpZ25lZCBpbnQsICBsb25nIGxvbmcgdW5zaWduZWQgaW50KScgWy1XYnVp bHRpbi1kZWNsYXJhdGlvbi1taXNtYXRjaF0KICAxMjkgfCBjaGFyIGFsaWduZWRfYWxsb2MgKCk7 CiAgICAgIHwgICAgICBefn5+fn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MTE3OjE6IG5vdGU6ICdhbGln bmVkX2FsbG9jJyBpcyBkZWNsYXJlZCBpbiBoZWFkZXIgJzxzdGRsaWIuaD4nCiAgMTE2IHwgIyBp bmNsdWRlIDxsaW1pdHMuaD4KICAxMTcgfCAjZWxzZQpDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4v bGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQt bWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjcUlsRTdPLm86IGluIGZ1bmN0aW9u IGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUt Y29tcFxidWlsZC9jb25mdGVzdC5jOjE0MDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgYWxpZ25l ZF9hbGxvYycKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpj b25maWd1cmU6MTc5NjY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZp bmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVO QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNk ZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2Rl ZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBI QVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUg SEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NE RUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRT X0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEK fCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEK fCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwg I2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQg MQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5l IEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklM RV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUg VVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEK fCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhB VkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZG SVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdD Q0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VM SVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElG RiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZp bmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBI QVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAx CnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEK fCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAj ZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8 ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNk ZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBI QVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5l IEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBhbGlnbmVkX2FsbG9jIHRvIGFuIGlubm9jdW91 cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYWxpZ25lZF9hbGxvYy4KfCAg ICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5 LiAgKi8KfCAjZGVmaW5lIGFsaWduZWRfYWxsb2MgaW5ub2N1b3VzX2FsaWduZWRfYWxsb2MKfCAK fCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkg ZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgYWxpZ25l ZF9hbGxvYyAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4g aWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZl biBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAj IGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5k aWYKfCAKfCAjdW5kZWYgYWxpZ25lZF9hbGxvYwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50 ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2Ug aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5k IHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lm ZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgYWxpZ25lZF9hbGxv YyAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3 aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3 aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVk IF9fc3R1Yl9hbGlnbmVkX2FsbG9jIHx8IGRlZmluZWQgX19zdHViX19fYWxpZ25lZF9hbGxvYwp8 IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gYWxpZ25l ZF9hbGxvYyAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3OTY2OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToxNzk2NjogY2hlY2tpbmcgZm9yIHBvc2l4X21lbWFsaWduCmNvbmZp Z3VyZToxNzk2NjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIg LWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9s aWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUy IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdl bmVyaWMgICAgY29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAKY29uZnRlc3QuYzoxMjk6Njogd2Fy bmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdwb3NpeF9tZW1h bGlnbic7IGV4cGVjdGVkICdpbnQodm9pZCAqKiwgbG9uZyBsb25nIHVuc2lnbmVkIGludCwgIGxv bmcgbG9uZyB1bnNpZ25lZCBpbnQpJyBbLVdidWlsdGluLWRlY2xhcmF0aW9uLW1pc21hdGNoXQog IDEyOSB8IGNoYXIgcG9zaXhfbWVtYWxpZ24gKCk7CiAgICAgIHwgICAgICBefn5+fn5+fn5+fn5+ fgpDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAu Mi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRc dG1wXGNjZUI3bmNXLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVz ZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjE0MDogdW5k ZWZpbmVkIHJlZmVyZW5jZSB0byBgcG9zaXhfbWVtYWxpZ24nCmNvbGxlY3QyLmV4ZTogZXJyb3I6 IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE3OTY2OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBI QVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVU QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZ U1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVm aW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJF TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJ TUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVm aW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAj ZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMg MQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2Rl ZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9X MzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09M S0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJG QlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZp bmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RV TEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJH Q0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElW RV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBI QVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNk ZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZp bmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJV TkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAx CnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwg I2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVm aW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAj ZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5l IEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBI QVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9Q VEhSRUFEX1NFVE5BTUVfTlAgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUg cG9zaXhfbWVtYWxpZ24gdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5o PiBkZWNsYXJlcyBwb3NpeF9tZW1hbGlnbi4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxs aW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHBvc2l4X21lbWFs aWduIGlubm9jdW91c19wb3NpeF9tZW1hbGlnbgp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hp Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBwb3NpeF9tZW1hbGlnbiAoKTsgYmVsb3cuCnwgICAg IFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwg c2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGls ZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNl bHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgcG9zaXhfbWVt YWxpZ24KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p ZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0 dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90 b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVy biAiQyIKfCAjZW5kaWYKfCBjaGFyIHBvc2l4X21lbWFsaWduICgpOwp8IC8qIFRoZSBHTlUgQyBs aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAg ICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwg bmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3Bvc2l4X21lbWFsaWdu IHx8IGRlZmluZWQgX19zdHViX19fcG9zaXhfbWVtYWxpZ24KfCBjaG9rZSBtZQp8ICNlbmRpZgp8 IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHBvc2l4X21lbWFsaWduICgpOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTc5NjY6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3 OTc1OiBjaGVja2luZyB3aGV0aGVyIGFsaWduZWRfYWxsb2MgaXMgZGVjbGFyZWQKY29uZmlndXJl OjE3OTc1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2 NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGli L2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1z LWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYt Mi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRm aWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3Qu YyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjExNToxMDog ZXJyb3I6ICdhbGlnbmVkX2FsbG9jJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbik7IGRpZCB5b3UgbWVhbiAnX2FsaWduZWRfbWFsbG9jJz8KICAxMTUgfCAgICh2b2lkKSBh bGlnbmVkX2FsbG9jOwogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn4KICAgICAgfCAgICAg ICAgICBfYWxpZ25lZF9tYWxsb2MKY29uZnRlc3QuYzoxMTU6MTA6IG5vdGU6IGVhY2ggdW5kZWNs YXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBp dCBhcHBlYXJzIGluCmNvbmZpZ3VyZToxNzk3NTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3Mg MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9l bWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEK fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5T SU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNF VF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2lu ZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5E IDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0Vf SCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZF X1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElW RV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dF VFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRI UkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVU TFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAj ZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFS UyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZp bmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIg MQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmlu ZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVm aW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2Rl ZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNk ZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElC WE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9N IDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5l IEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFW RV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9T RVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJF QURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NF VElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9N IDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJS T1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1F X05QIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGxpYi5oPgp8IAp8 IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBhbGlnbmVkX2FsbG9jCnwgI2lmZGVmIF9fY3Bs dXNwbHVzCnwgICAodm9pZCkgYWxpZ25lZF9hbGxvYzsKfCAjZWxzZQp8ICAgKHZvaWQpIGFsaWdu ZWRfYWxsb2M7CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToxNzk3NTogcmVzdWx0OiBubwpjb25maWd1cmU6MTgwMDI6IGNoZWNraW5nIGZvciBw b3NpeF9tYWR2aXNlCmNvbmZpZ3VyZToxODAwMjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29u ZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGli LTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJp dGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFy ZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9w aXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAKQzov bXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8u Li8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxj Y290Wkw3MC5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxE b3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxNDE6IHVuZGVmaW5l ZCByZWZlcmVuY2UgdG8gYHBvc2l4X21hZHZpc2UnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJl dHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE4MDAyOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1h Y3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg X19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJ TEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9U WVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhB VkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19S RVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09D S0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx CnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhB VkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5l IEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNk ZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBI QVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJ RlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1ND Uk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAx CnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFW RV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEK fCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQg MQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01Q IDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BO RyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUg SEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFW RV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8 ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2Rl ZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmlu ZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhB VkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5l IEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVf UkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dB SV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgcG9zaXhfbWFkdmlzZSB0byBhbiBpbm5vY3Vv dXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHBvc2l4X21hZHZpc2UuCnwg ICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh eS4gICovCnwgI2RlZmluZSBwb3NpeF9tYWR2aXNlIGlubm9jdW91c19wb3NpeF9tYWR2aXNlCnwg CnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5 IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHBvc2l4 X21hZHZpc2UgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+ IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2 ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwg IyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2Vu ZGlmCnwgCnwgI3VuZGVmIHBvc2l4X21hZHZpc2UKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGlu dGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNl IGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFu ZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNp ZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHBvc2l4X21hZHZp c2UgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMg d2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNv bWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcg d2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5l ZCBfX3N0dWJfcG9zaXhfbWFkdmlzZSB8fCBkZWZpbmVkIF9fc3R1Yl9fX3Bvc2l4X21hZHZpc2UK fCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHBvc2l4 X21hZHZpc2UgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxODAwMjogcmVz dWx0OiBubwpjb25maWd1cmU6MTgwMTI6IGNoZWNraW5nIGZvciBfX2J1aWx0aW5fZnJhbWVfYWRk cmVzcwpjb25maWd1cmU6MTgwMjg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4 ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEg IC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgLWxnY2NqaXQgICA+JjUgCmNvbmZpZ3VyZTox ODAyODogJD8gPSAwCmNvbmZpZ3VyZToxODAzNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE4MDQz OiBjaGVja2luZyBmb3IgX19idWlsdGluX3Vud2luZF9pbml0CmNvbmZpZ3VyZToxODA1OTogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9s aWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1 Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJp dGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRl c3QuYyAtbGdjY2ppdCAgID4mNSAKY29uZmlndXJlOjE4MDU5OiAkPyA9IDAKY29uZmlndXJlOjE4 MDY3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTgwNzk6IGNoZWNraW5nIGZvciBfTEFSR0VGSUxF X1NPVVJDRSB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCmNvbmZpZ3VyZToxODA5ODogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9s aWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1 Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJp dGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRl c3QuYyAtbGdjY2ppdCAgID4mNSAKY29uZmlndXJlOjE4MDk4OiAkPyA9IDAKY29uZmlndXJlOjE4 MTI2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxODE1MTogY2hlY2tpbmcgZm9yIGdyYW50cHQKY29u ZmlndXJlOjE4MTUxOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1P MiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIu MCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlw ZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZp ZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9 Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1sZ2Njaml0ICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9i aW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82 NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjZ0hUR2l5Lm86IGluIGZ1 bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xu YXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjE0NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg Z3JhbnRwdCcKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpj b25maWd1cmU6MTgxNTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZp bmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVO QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNk ZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2Rl ZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBI QVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUg SEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NE RUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRT X0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEK fCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEK fCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwg I2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQg MQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5l IEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklM RV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUg VVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEK fCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhB VkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZG SVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdD Q0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VM SVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElG RiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZp bmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBI QVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAx CnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEK fCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAj ZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8 ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNk ZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBI QVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5l IEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFN RV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVm aW5lIEhBVkVfRlNFRUtPIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdy YW50cHQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJl cyBncmFudHB0Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJl cyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgZ3JhbnRwdCBpbm5vY3VvdXNfZ3JhbnRwdAp8 IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs eSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBncmFu dHB0ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBf X1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9u IGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5j bHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8 IAp8ICN1bmRlZiBncmFudHB0CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90 b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1 c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBncmFudHB0ICgpOwp8IC8qIFRoZSBH TlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVu dHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUg YWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBu b3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2dyYW50cHQg fHwgZGVmaW5lZCBfX3N0dWJfX19ncmFudHB0CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHJldHVybiBncmFudHB0ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6MTgxNTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjE4MTY1OiBjaGVja2luZyBm b3IgZ2V0cHQKY29uZmlndXJlOjE4MTY1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVz dC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4w IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0Zmll bGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6 eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1h bi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1sZ2Njaml0ICAgPiY1IApDOi9tc3lz NjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4u Ly4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjMFpk eG9JLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25s b2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjE0NDogdW5kZWZpbmVkIHJl ZmVyZW5jZSB0byBgZ2V0cHQnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhp dCBzdGF0dXMKY29uZmlndXJlOjE4MTY1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNz LyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05T X18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ VFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dz LW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEK fCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBI QVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lN QUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFH RVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFE U19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAx CnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZp bmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEK fCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBI QVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwg I2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1P RFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUg SEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5l IE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmlu ZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwy IDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8 ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFW RV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NF VExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T SUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJ TUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8 ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAx CnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5J VCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8q IERlZmluZSBnZXRwdCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+ IGRlY2xhcmVzIGdldHB0Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBk ZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgZ2V0cHQgaW5ub2N1b3VzX2dldHB0 CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdl dHB0ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBf X1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9u IGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5j bHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8 IAp8ICN1bmRlZiBnZXRwdAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90 eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNw bHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZ2V0cHQgKCk7CnwgLyogVGhlIEdOVSBD IGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8 ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1 YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1h bCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZ2V0cHQgfHwgZGVm aW5lZCBfX3N0dWJfX19nZXRwdAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCByZXR1cm4gZ2V0cHQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToxODE2NTogcmVzdWx0OiBubwpjb25maWd1cmU6MTgxNjU6IGNoZWNraW5nIGZvciBwb3NpeF9v cGVucHQKY29uZmlndXJlOjE4MTY1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5l eGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9s aWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRz IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAt bW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0x ICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1sZ2Njaml0ICAgPiY1IApDOi9tc3lzNjQv bWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4u Ly4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjY003MHhi Lm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fk c1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjE0NDogdW5kZWZpbmVkIHJlZmVy ZW5jZSB0byBgcG9zaXhfb3BlbnB0Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAx IGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxODE2NTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3Mg MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9l bWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEK fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5T SU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNF VF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2lu ZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5E IDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0Vf SCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZF X1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElW RV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dF VFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRI UkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVU TFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAj ZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFS UyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZp bmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIg MQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmlu ZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVm aW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2Rl ZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNk ZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElC WE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9N IDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5l IEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFW RV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9T RVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJF QURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NF VElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9N IDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJS T1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1F X05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVf X19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5E X0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAvKiBEZWZpbmUgcG9zaXhfb3BlbnB0IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNl IDxsaW1pdHMuaD4gZGVjbGFyZXMgcG9zaXhfb3BlbnB0Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1V WCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgcG9z aXhfb3BlbnB0IGlubm9jdW91c19wb3NpeF9vcGVucHQKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRv IGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAg IHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgcG9zaXhfb3BlbnB0ICgpOyBiZWxvdy4KfCAg ICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21w aWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+Cnwg I2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBwb3NpeF9v cGVucHQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p ZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0 dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90 b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVy biAiQyIKfCAjZW5kaWYKfCBjaGFyIHBvc2l4X29wZW5wdCAoKTsKfCAvKiBUaGUgR05VIEMgbGli cmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAg IHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5 IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5h bWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9wb3NpeF9vcGVucHQgfHwg ZGVmaW5lZCBfX3N0dWJfX19wb3NpeF9vcGVucHQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGlu dAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHBvc2l4X29wZW5wdCAoKTsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjE4MTY1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxODE4MTogY2hl Y2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyB0cHV0cwpjb25maWd1cmU6MTgyNDg6IHJlc3Vs dDogbm9uZSByZXF1aXJlZApjb25maWd1cmU6MTgzNjI6IGNoZWNraW5nIGZvciB0aW1lcmZkIGlu dGVyZmFjZQpjb25maWd1cmU6MTgzODE6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIg LWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9s aWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUy IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdl bmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjExMDoxMDogZmF0YWwgZXJyb3I6IHN5 cy90aW1lcmZkLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAxMTAgfCAjaW5jbHVkZSA8 c3lzL3RpbWVyZmQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjE4MzgxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFj cyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIg MQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRF TlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZG U0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3 aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09V TkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJD RV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFU SVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVf R0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUg VEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dO VVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8 ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9C QVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2Rl ZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01T MiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVm aW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNk ZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAj ZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwg I2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9M SUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5E T00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZp bmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBI QVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZF X1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVf U0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZS T00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJF UlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5B TUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFW RV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJ TkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxzeXMvdGltZXJmZC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgdGlt ZXJmZF9jcmVhdGUgKENMT0NLX1JFQUxUSU1FLAp8IAkJCQkJVEZEX0NMT0VYRUMgfCBURkRfTk9O QkxPQ0spOwp8IAkJCXRpbWVyZmRfc2V0dGltZSAoMCwgVEZEX1RJTUVSX0FCU1RJTUUsIDAsIDAp Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTgzODg6IHJlc3VsdDogbm8KY29u ZmlndXJlOjE4Mzk3OiBjaGVja2luZyB3aGV0aGVyIHNpZ25hbHMgY2FuIGJlIGhhbmRsZWQgb24g YWx0ZXJuYXRlIHN0YWNrCmNvbmZpZ3VyZToxODQyMDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMg LWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJy c3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9m cmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1z LWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAt bXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoxMTU6MTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdzdGFja190 JwogIDExNSB8IHN0YWNrX3Qgc3M7CiAgICAgIHwgXn5+fn5+fgpjb25mdGVzdC5jOjExNjoyMTog ZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnc2EnIGlzbid0IGtub3duCiAgMTE2IHwgICAgc3RydWN0 IHNpZ2FjdGlvbiBzYTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+CmNvbmZ0ZXN0LmM6 MTE3OjY6IGVycm9yOiByZXF1ZXN0IGZvciBtZW1iZXIgJ3NzX3NwJyBpbiBzb21ldGhpbmcgbm90 IGEgc3RydWN0dXJlIG9yIHVuaW9uCiAgMTE3IHwgICAgc3Muc3Nfc3AgPSBtYWxsb2MgKFNJR1NU S1NaKTsKICAgICAgfCAgICAgIF4KY29uZnRlc3QuYzoxMTc6MTU6IHdhcm5pbmc6IGltcGxpY2l0 IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdtYWxsb2MnIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRl Y2xhcmF0aW9uXQogIDExNyB8ICAgIHNzLnNzX3NwID0gbWFsbG9jIChTSUdTVEtTWik7CiAgICAg IHwgICAgICAgICAgICAgICBefn5+fn4KY29uZnRlc3QuYzoxMTc6MTU6IHdhcm5pbmc6IGluY29t cGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnbWFsbG9j Jwpjb25mdGVzdC5jOjExMToxOiBub3RlOiBpbmNsdWRlICc8c3RkbGliLmg+JyBvciBwcm92aWRl IGEgZGVjbGFyYXRpb24gb2YgJ21hbGxvYycKICAxMTAgfCAjaW5jbHVkZSA8c2lnbmFsLmg+CiAg MTExIHwgCmNvbmZ0ZXN0LmM6MTE3OjIzOiBlcnJvcjogJ1NJR1NUS1NaJyB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAxMTcgfCAgICBzcy5zc19zcCA9IG1hbGxvYyAo U0lHU1RLU1opOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fgpjb25mdGVz dC5jOjExNzoyMzogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQg b25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZnRlc3QuYzoxMTg6 NjogZXJyb3I6IHJlcXVlc3QgZm9yIG1lbWJlciAnc3Nfc2l6ZScgaW4gc29tZXRoaW5nIG5vdCBh IHN0cnVjdHVyZSBvciB1bmlvbgogIDExOCB8ICAgIHNzLnNzX3NpemUgPSBTSUdTVEtTWjsKICAg ICAgfCAgICAgIF4KY29uZnRlc3QuYzoxMTk6MTg6IGVycm9yOiAnU0FfU0lHSU5GTycgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgMTE5IHwgICAgc2Euc2FfZmxhZ3Mg PSBTQV9TSUdJTkZPIHwgU0FfT05TVEFDSzsKICAgICAgfCAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn4KY29uZnRlc3QuYzoxMTk6MzE6IGVycm9yOiAnU0FfT05TVEFDSycgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgMTE5IHwgICAgc2Euc2FfZmxhZ3MgPSBTQV9T SUdJTkZPIHwgU0FfT05TVEFDSzsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MTIwOjQ6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdzaWdhbHRzdGFjaycgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFy YXRpb25dCiAgMTIwIHwgICAgc2lnYWx0c3RhY2sgKCZzcywgMCk7CiAgICAgIHwgICAgXn5+fn5+ fn5+fn4KY29uZnRlc3QuYzoxMjE6NDogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ3NpZ2FjdGlvbicgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAg MTIxIHwgICAgc2lnYWN0aW9uIChTSUdTRUdWLCAmc2EsIDApOwogICAgICB8ICAgIF5+fn5+fn5+ fgpjb25maWd1cmU6MTg0MjA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNk ZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBT VERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdT X0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9P UEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBV WF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8 ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwg I2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmlu ZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZp bmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBI QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElN SVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9I IDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJ IDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAx CnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJM RUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVm aW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0Vf RklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZp bmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBN IDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5l IEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19T VUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJ QkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZF X0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVf VElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNk ZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmlu ZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVD VCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxF IDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEK fCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sg MQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8 ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmlu ZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVm aW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9G UkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAj ZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PHNpZ25hbC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhY2tfdCBzczsKfCAJCQlzdHJ1 Y3Qgc2lnYWN0aW9uIHNhOwp8IAkJCXNzLnNzX3NwID0gbWFsbG9jIChTSUdTVEtTWik7CnwgCQkJ c3Muc3Nfc2l6ZSA9IFNJR1NUS1NaOwp8IAkJCXNhLnNhX2ZsYWdzID0gU0FfU0lHSU5GTyB8IFNB X09OU1RBQ0s7CnwgCQkJc2lnYWx0c3RhY2sgKCZzcywgMCk7CnwgCQkJc2lnYWN0aW9uIChTSUdT RUdWLCAmc2EsIDApOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTg0Mjc6IHJl c3VsdDogbm8KY29uZmlndXJlOjE5MDcwOiBjaGVja2luZyB2YWxncmluZC92YWxncmluZC5oIHVz YWJpbGl0eQpjb25maWd1cmU6MTkwNzA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIg LWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9s aWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUy IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdl bmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjE0MzoxMDogZmF0YWwgZXJyb3I6IHZh bGdyaW5kL3ZhbGdyaW5kLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAxNDMgfCAjaW5j bHVkZSA8dmFsZ3JpbmQvdmFsZ3JpbmQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjE5MDcwOiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVm aW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEK fCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFW RV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NI QVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9D IDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JV RkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAx CnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUg SEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFW RV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8 ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFW RV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFW RV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2Rl ZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYg MQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8 ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhB VkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdF U0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1J VCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEK fCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFM IDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAj ZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUg SEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxM T0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBI QVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZ U19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBT VERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+ CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVk IFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1v cnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUg PHZhbGdyaW5kL3ZhbGdyaW5kLmg+CmNvbmZpZ3VyZToxOTA3MDogcmVzdWx0OiBubwpjb25maWd1 cmU6MTkwNzA6IGNoZWNraW5nIHZhbGdyaW5kL3ZhbGdyaW5kLmggcHJlc2VuY2UKY29uZmlndXJl OjE5MDcwOiBnY2MgLUkgLi4vc3JjL250L2luYyAtRSAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0 LmMKY29uZnRlc3QuYzoxMTA6MTA6IGZhdGFsIGVycm9yOiB2YWxncmluZC92YWxncmluZC5oOiBO byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgMTEwIHwgI2luY2x1ZGUgPHZhbGdyaW5kL3ZhbGdy aW5kLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxOTA3MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3Mg MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9l bWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEK fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5T SU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNF VF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2lu ZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5E IDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0Vf SCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZF X1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElW RV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dF VFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRI UkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVU TFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAj ZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFS UyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZp bmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIg MQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmlu ZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVm aW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2Rl ZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNk ZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElC WE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9N IDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5l IEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFW RV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9T RVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJF QURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NF VElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9N IDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJS T1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1F X05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVf X19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5E X0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8dmFsZ3JpbmQvdmFsZ3JpbmQuaD4KY29uZmlndXJlOjE5MDcwOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxOTA3MDogY2hlY2tpbmcgZm9yIHZhbGdyaW5kL3ZhbGdyaW5kLmgKY29u ZmlndXJlOjE5MDcwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTA4MTogY2hlY2tpbmcgZm9yIHN0 cnVjdCB1bmlwYWlyLnVuaWNvZGUKY29uZmlndXJlOjE5MDgxOiBnY2MgLUkgLi4vc3JjL250L2lu YyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6 IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFu LTEgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzoxMTA6MTA6IGZh dGFsIGVycm9yOiBsaW51eC9rZC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgMTEwIHwg I2luY2x1ZGUgPGxpbnV4L2tkLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+CmNvbXBp bGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxOTA4MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg RW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNz QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9f RVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxF X09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQ RSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZF X1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVT T1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tF VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBI QVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVm aW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFW RV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JP TExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8 ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVf TENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwg I2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEK fCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAx CnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcg MQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhB VkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVf UkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAj ZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZp bmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZF X1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBI QVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JF Q1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlf U1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T RVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5l IEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5f VU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8bGludXgva2QuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0 YXRpYyBzdHJ1Y3QgdW5pcGFpciBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLnVuaWNvZGUpCnwgcmV0 dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTA4MTogZ2NjIC1JIC4u L3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRl IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6 MTEwOjEwOiBmYXRhbCBlcnJvcjogbGludXgva2QuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQogIDExMCB8ICNpbmNsdWRlIDxsaW51eC9rZC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+ fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTkwODE6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9O RVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2Rl ZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUg U1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNk ZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf VU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJ UkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNk ZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8 ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVS UyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAj ZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZF X1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RP T0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hB UkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2Rl ZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01P RFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJ QkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFU SVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5l IEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwg I2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9U UlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpF IDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEK fCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8 ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZp bmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5l IEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZF X1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAw CnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVf X19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGxpbnV4L2tkLmg+CnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCBzdGF0aWMgc3RydWN0IHVuaXBhaXIgYWNfYWdncjsKfCBpZiAoc2l6ZW9mIGFjX2Fn Z3IudW5pY29kZSkKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjE5MDgxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tpbmcgZm9yIF9fbHNhbl9p Z25vcmVfb2JqZWN0CmNvbmZpZ3VyZToxOTA5OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29u ZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGli LTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJp dGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFy ZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9w aXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAKQzov bXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8u Li8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxj Y1NNUUliby5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxE b3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxNDQ6IHVuZGVmaW5l ZCByZWZlcmVuY2UgdG8gYF9fbHNhbl9pZ25vcmVfb2JqZWN0Jwpjb2xsZWN0Mi5leGU6IGVycm9y OiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToxOTA5OTogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05F VEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVm aW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBT WVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2Rl ZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElS RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19U SU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2Rl ZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwg I2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJT IDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNk ZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVf VzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9P TEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFS RkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVm aW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9E VUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElC R0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJ VkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUg SEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAj ZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVm aW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RS VU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUg MQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2Rl ZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwg I2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmlu ZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUg SEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVf UFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAK fCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgX19sc2FuX2lnbm9yZV9vYmplY3QgdG8gYW4gaW5u b2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBfX2xzYW5faWdub3Jl X29iamVjdC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMg Z2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIF9fbHNhbl9pZ25vcmVfb2JqZWN0IGlubm9jdW91 c19fX2xzYW5faWdub3JlX29iamVjdAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9f c3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2Fu IGNvbmZsaWN0IHdpdGggY2hhciBfX2xzYW5faWdub3JlX29iamVjdCAoKTsgYmVsb3cuCnwgICAg IFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwg c2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGls ZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNl bHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgX19sc2FuX2ln bm9yZV9vYmplY3QKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIF9fbHNhbl9pZ25vcmVfb2JqZWN0ICgpOwp8IC8q IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt cGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9u cyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX19f bHNhbl9pZ25vcmVfb2JqZWN0IHx8IGRlZmluZWQgX19zdHViX19fX19sc2FuX2lnbm9yZV9vYmpl Y3QKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIF9f bHNhbl9pZ25vcmVfb2JqZWN0ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 MTkwOTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MDk5OiBjaGVja2luZyBmb3Igc2Jyawpjb25m aWd1cmU6MTkwOTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tpbmcgZm9yIGZj aG1vZApjb25maWd1cmU6MTkwOTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4 ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEg IC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgLWxnY2NqaXQgICA+JjUgCkM6L21zeXM2NC9t aW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4v Li4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NjTXA4bjMu bzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRz XGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MTQ1OiB1bmRlZmluZWQgcmVmZXJl bmNlIHRvIGBmY2htb2QnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBz dGF0dXMKY29uZmlndXJlOjE5MDk5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIK fCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18g MQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMg NjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50 Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNk ZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAj ZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZF X0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dB SVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdF X0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJ WkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19F TkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwg I2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUg VVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAj ZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZF X1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2Rl ZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVM RVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFW RV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5B VElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBI QVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEK fCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNk ZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9T RUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExP Q0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1J VCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdN QVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVS IDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNk ZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwg I2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAx CnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZmNobW9kIHRvIGFuIGlubm9jdW91cyB2YXJpYW50 LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZmNobW9kLgp8ICAgIEZvciBleGFtcGxlLCBI UC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUg ZmNobW9kIGlubm9jdW91c19mY2htb2QKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBf X3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNh biBjb25mbGljdCB3aXRoIGNoYXIgZmNobW9kICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1p dHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8 bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8 ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1 ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBmY2htb2QKfCAKfCAvKiBPdmVycmlk ZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2Ug Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAg ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw bHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFy IGZjaG1vZCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0 aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lT LiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFy dGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBk ZWZpbmVkIF9fc3R1Yl9mY2htb2QgfHwgZGVmaW5lZCBfX3N0dWJfX19mY2htb2QKfCBjaG9rZSBt ZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGZjaG1vZCAoKTsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MDk5OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToxOTA5OTogY2hlY2tpbmcgZm9yIGNhbm9uaWNhbGl6ZV9maWxlX25hbWUKY29uZmlndXJlOjE5 MDk5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciByZWFkbGluawpj b25maWd1cmU6MTkwOTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tpbmcgZm9y IHJlYWxwYXRoCmNvbmZpZ3VyZToxOTA5OTogcmVzdWx0OiBub3QtbmVlZGVkCmNvbmZpZ3VyZTox OTA5OTogY2hlY2tpbmcgZm9yIHJlYWRsaW5rYXQKY29uZmlndXJlOjE5MDk5OiByZXN1bHQ6IHll cwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciBleHBsaWNpdF9iemVybwpjb25maWd1cmU6 MTkwOTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tpbmcgZm9yIG1lbXNldF9z CmNvbmZpZ3VyZToxOTA5OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1n MyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2 Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJl ZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1i aXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10 dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAKQzovbXN5czY0L21pbmd3 NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94 ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY0NMSnB4OC5vOiBp biBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1h Y3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxNDk6IHVuZGVmaW5lZCByZWZlcmVuY2Ug dG8gYG1lbXNldF9zJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3Rh dHVzCmNvbmZpZ3VyZToxOTA5OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwg I2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5l IFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9I UFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0 CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIK fCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVm aW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2Rl ZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9M SU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlU X0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9B UEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpF IDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5B QkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNk ZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2Rl ZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9Y UE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZp bmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVT X1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVf TElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJ VkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFW RV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwg I2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVm aW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VM RUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NB TEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQg MQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFT SyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAx CnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVm aW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNk ZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElO X0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8 ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhB VkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAj ZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIG1lbXNldF9zIHRvIGFuIGlubm9j dW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgbWVtc2V0X3MuCnwgICAg Rm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4g ICovCnwgI2RlZmluZSBtZW1zZXRfcyBpbm5vY3VvdXNfbWVtc2V0X3MKfCAKfCAvKiBTeXN0ZW0g aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw ZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbWVtc2V0X3MgKCk7IGJlbG93 Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRl ZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5n IGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMu aD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIG1l bXNldF9zCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv aWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRl cm4gIkMiCnwgI2VuZGlmCnwgY2hhciBtZW1zZXRfcyAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFy eSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRv IGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5h bWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUg aXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9tZW1zZXRfcyB8fCBkZWZpbmVk IF9fc3R1Yl9fX21lbXNldF9zCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgp Cnwgewp8IHJldHVybiBtZW1zZXRfcyAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln dXJlOjE5MDk5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tpbmcgZm9yIGZhY2Nl c3NhdApjb25maWd1cmU6MTkwOTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tp bmcgZm9yIGZjaG1vZGF0CmNvbmZpZ3VyZToxOTA5OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE5 MDk5OiBjaGVja2luZyBmb3IgbGNobW9kCmNvbmZpZ3VyZToxOTA5OTogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjE5MDk5OiBjaGVja2luZyBmb3IgZmNudGwKY29uZmlndXJlOjE5MDk5OiByZXN1bHQ6 IHllcwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciBmZG9wZW5kaXIKY29uZmlndXJlOjE5 MDk5OiByZXN1bHQ6IG5vdC1uZWVkZWQKY29uZmlndXJlOjE5MDk5OiBjaGVja2luZyBmb3IgZnN0 YXRhdApjb25maWd1cmU6MTkwOTk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tp bmcgZm9yIGZzeW5jCmNvbmZpZ3VyZToxOTA5OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE5MDk5 OiBjaGVja2luZyBmb3IgZnV0aW1lbnMKY29uZmlndXJlOjE5MDk5OiByZXN1bHQ6IG5vdC1uZWVk ZWQKY29uZmlndXJlOjE5MDk5OiBjaGVja2luZyBmb3IgZ2V0cmFuZG9tCmNvbmZpZ3VyZToxOTA5 OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0y IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2Rr LXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAt bW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv bHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAg Y29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9n Y2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3 MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY3M4UTczNi5vOiBpbiBmdW5jdGlvbiBgbWFp bic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBc YnVpbGQvY29uZnRlc3QuYzoxNTU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldHJhbmRvbScK Y29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6 MTkwOTk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9V U0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5f U09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0ND X0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZF X01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExP Q19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0Rf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAx CnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBU SU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5l IEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5l IFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBV U0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZp bmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNP TiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkg MQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAx CnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5l IEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAx CnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwi CnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJ WCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2Rl ZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9H RVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQg MQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5l IEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhB VkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUg SEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFW RV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNP Q0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9H MiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNT IDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVf RlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTEla RV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JF QURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZF X0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENI TU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAj ZGVmaW5lIEhBVkVfRlNZTkMgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUg Z2V0cmFuZG9tIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVj bGFyZXMgZ2V0cmFuZG9tLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBk ZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgZ2V0cmFuZG9tIGlubm9jdW91c19n ZXRyYW5kb20KfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFu ZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo IGNoYXIgZ2V0cmFuZG9tICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFz c2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4 aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NU RENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5o Pgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBnZXRyYW5kb20KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8 ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdldHJhbmRv bSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3 aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3 aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVk IF9fc3R1Yl9nZXRyYW5kb20gfHwgZGVmaW5lZCBfX3N0dWJfX19nZXRyYW5kb20KfCBjaG9rZSBt ZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGdldHJhbmRvbSAoKTsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MDk5OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxOTA5OTogY2hlY2tpbmcgZm9yIGdldHRpbWVvZmRheQpjb25maWd1cmU6MTkwOTk6IGdj YyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv bGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAt bW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhi dWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1i aXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0 ZXN0LmMgLWxnY2NqaXQgICA+JjUgCmNvbmZpZ3VyZToxOTA5OTogJD8gPSAwCmNvbmZpZ3VyZTox OTA5OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE5MDk5OiBjaGVja2luZyBmb3IgbHN0YXQKY29u ZmlndXJlOjE5MDk5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciBt a29zdGVtcApjb25maWd1cmU6MTkwOTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0 LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6 IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFu LTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgLWxnY2NqaXQgICA+JjUgCkM6L21zeXM2 NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4v Li4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NTcUd2 VDMubzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxv YWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MTU3OiB1bmRlZmluZWQgcmVm ZXJlbmNlIHRvIGBta29zdGVtcCcKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBl eGl0IHN0YXR1cwpjb25maWd1cmU6MTkwOTk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lP TlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRf QklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRv d3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0gg MQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5l IEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9T WVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf SU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJF QURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExT IDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2Rl ZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMg MQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5l IEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEK fCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUg TU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmlu ZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZp bmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVm aW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhN TDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAx CnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBI QVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVf U0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VU UkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJ VElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAx CnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9S IDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9O UCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9J TklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2Rl ZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElO SyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9C WkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFU IDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZp bmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9H RVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IC8qIERlZmluZSBta29zdGVtcCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2Fz ZSA8bGltaXRzLmg+IGRlY2xhcmVzIG1rb3N0ZW1wLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAx MWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgbWtvc3Rl bXAgaW5ub2N1b3VzX21rb3N0ZW1wCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4g Y29uZmxpY3Qgd2l0aCBjaGFyIG1rb3N0ZW1wICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1p dHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8 bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8 ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1 ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBta29zdGVtcAp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgbWtvc3RlbXAgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBm dW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcg c3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAj aWYgZGVmaW5lZCBfX3N0dWJfbWtvc3RlbXAgfHwgZGVmaW5lZCBfX3N0dWJfX19ta29zdGVtcAp8 IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gbWtvc3Rl bXAgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTA5OTogcmVzdWx0OiBu bwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciBwaXBlMgpjb25maWd1cmU6MTkwOTk6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tpbmcgZm9yIHBzZWxlY3QKY29uZmlndXJl OjE5MDk5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciBpc2JsYW5r CmNvbmZpZ3VyZToxOTA5OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1n MyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2 Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJl ZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1i aXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10 dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAKY29uZnRlc3QuYzoxNDg6 Njogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdpc2Js YW5rJzsgZXhwZWN0ZWQgJ2ludChpbnQpJyBbLVdidWlsdGluLWRlY2xhcmF0aW9uLW1pc21hdGNo XQogIDE0OCB8IGNoYXIgaXNibGFuayAoKTsKICAgICAgfCAgICAgIF5+fn5+fn4KY29uZnRlc3Qu YzoxMzY6MTogbm90ZTogJ2lzYmxhbmsnIGlzIGRlY2xhcmVkIGluIGhlYWRlciAnPGN0eXBlLmg+ JwogIDEzNSB8ICMgaW5jbHVkZSA8bGltaXRzLmg+CiAgMTM2IHwgI2Vsc2UKY29uZmlndXJlOjE5 MDk5OiAkPyA9IDAKY29uZmlndXJlOjE5MDk5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTkwOTk6 IGNoZWNraW5nIGZvciBpc3djdHlwZQpjb25maWd1cmU6MTkwOTk6IGdjYyAtSSAuLi9zcmMvbnQv aW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2lu Y2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJl YWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWly byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgLWxnY2NqaXQg ICA+JjUgCmNvbmZpZ3VyZToxOTA5OTogJD8gPSAwCmNvbmZpZ3VyZToxOTA5OTogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjE5MDk5OiBjaGVja2luZyBmb3Igc3RydG9pbWF4CmNvbmZpZ3VyZToxOTA5 OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0y IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2Rr LXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAt bW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv bHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAg Y29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAKY29uZmlndXJlOjE5MDk5OiAkPyA9IDAKY29uZmln dXJlOjE5MDk5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciBzeW1s aW5rCmNvbmZpZ3VyZToxOTA5OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE5MDk5OiBjaGVja2lu ZyBmb3IgbG9jYWx0aW1lX3IKY29uZmlndXJlOjE5MDk5OiBnY2MgLUkgLi4vc3JjL250L2luYyAt byBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRl IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1sZ2Njaml0ICAgPiY1 IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAu Mi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRc dG1wXGNjMmEzcXNuLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVz ZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjE2MzogdW5k ZWZpbmVkIHJlZmVyZW5jZSB0byBgbG9jYWx0aW1lX3InCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxk IHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE5MDk5OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUt ZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZF X1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNE X1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUg X0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5l IEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVf SCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5l IEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVm aW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8 ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmlu ZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJO T1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lU X1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVa WiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUg SEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVT IDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NK SVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9D T01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZF X1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZp bmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUg SEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMg MQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwg I2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2Rl ZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5l IEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVm aW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhB VkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZF X0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhS RUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNk ZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJ TFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZF X1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhB VkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUg SEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZD TlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAj ZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZp bmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9J U0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lN QVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg LyogRGVmaW5lIGxvY2FsdGltZV9yIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxs aW1pdHMuaD4gZGVjbGFyZXMgbG9jYWx0aW1lX3IuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDEx aSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBsb2NhbHRp bWVfciBpbm5vY3VvdXNfbG9jYWx0aW1lX3IKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmlu ZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNo IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbG9jYWx0aW1lX3IgKCk7IGJlbG93Lgp8ICAgICBQcmVm ZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNl CnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4g ICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8 ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGxvY2FsdGltZV9yCnwg CnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy b3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl IG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv dWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwg I2VuZGlmCnwgY2hhciBsb2NhbHRpbWVfciAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZp bmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5 cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwg ICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4g YWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9sb2NhbHRpbWVfciB8fCBkZWZpbmVkIF9f c3R1Yl9fX2xvY2FsdGltZV9yCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgp Cnwgewp8IHJldHVybiBsb2NhbHRpbWVfciAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjE5MDk5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTA5OTogY2hlY2tpbmcgZm9yIHRp bWVnbQpjb25maWd1cmU6MTkwOTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4 ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEg IC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgLWxnY2NqaXQgICA+JjUgCkM6L21zeXM2NC9t aW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4v Li4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NzbmZPVXou bzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRz XGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MTYzOiB1bmRlZmluZWQgcmVmZXJl bmNlIHRvIGB0aW1lZ20nCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBz dGF0dXMKY29uZmlndXJlOjE5MDk5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIK fCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18g MQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMg NjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50 Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNk ZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAj ZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZF X0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dB SVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdF X0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJ WkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19F TkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwg I2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUg VVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAj ZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZF X1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2Rl ZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVM RVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFW RV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5B VElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBI QVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEK fCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNk ZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9T RUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExP Q0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1J VCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdN QVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVS IDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNk ZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwg I2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAx CnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUg SEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8 ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8g MQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwg I2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhB VkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElN RU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwg I2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5l IEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFW RV9TWU1MSU5LIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHRpbWVnbSB0 byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHRpbWVn bS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGlt ZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHRpbWVnbSBpbm5vY3VvdXNfdGltZWdtCnwgCnwgLyogU3lz dGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90 b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHRpbWVnbSAoKTsgYmVs b3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMg ZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRp bmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0 cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYg dGltZWdtCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv aWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRl cm4gIkMiCnwgI2VuZGlmCnwgY2hhciB0aW1lZ20gKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkg ZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBh bHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1l ZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlz IGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfdGltZWdtIHx8IGRlZmluZWQgX19z dHViX19fdGltZWdtCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiB0aW1lZ20gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTA5 OTogcmVzdWx0OiBubwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciB1dGltZW5zYXQKY29u ZmlndXJlOjE5MDk5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTkwOTk6IGNoZWNraW5nIGZvciBn ZXRkdGFibGVzaXplCmNvbmZpZ3VyZToxOTA5OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29u ZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGli LTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJp dGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFy ZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9w aXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAKQzov bXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8u Li8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxj Y3dNZlZRZS5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxE b3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxNjQ6IHVuZGVmaW5l ZCByZWZlcmVuY2UgdG8gYGdldGR0YWJsZXNpemUnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJl dHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE5MDk5OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1h Y3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg X19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJ TEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9U WVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhB VkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19S RVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09D S0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx CnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhB VkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5l IEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNk ZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBI QVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJ RlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1ND Uk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAx CnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFW RV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEK fCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQg MQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01Q IDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BO RyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUg SEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFW RV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8 ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2Rl ZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmlu ZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhB VkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5l IEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVf UkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dB SV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZp bmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJ Tl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NC UksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhB VkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVf RVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFW RV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRM IDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVm aW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUg SEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JM QU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVgg MQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdldGR0YWJsZXNpemUgdG8gYW4gaW5u b2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXRkdGFibGVzaXpl Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1l b2ZkYXkuICAqLwp8ICNkZWZpbmUgZ2V0ZHRhYmxlc2l6ZSBpbm5vY3VvdXNfZ2V0ZHRhYmxlc2l6 ZQp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVm dWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBn ZXRkdGFibGVzaXplICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2Vy dC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0 cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENf Xwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8 ICNlbmRpZgp8IAp8ICN1bmRlZiBnZXRkdGFibGVzaXplCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBnZXRkdGFi bGVzaXplICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rp b25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0 aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRl ZmluZWQgX19zdHViX2dldGR0YWJsZXNpemUgfHwgZGVmaW5lZCBfX3N0dWJfX19nZXRkdGFibGVz aXplCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBn ZXRkdGFibGVzaXplICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTkwOTk6 IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MDk5OiBjaGVja2luZyBmb3IgZnV0aW1lcwpjb25maWd1 cmU6MTkwOTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1n ZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGli cG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRz IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5l cmljICAgIGNvbmZ0ZXN0LmMgLWxnY2NqaXQgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8u Li9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2 NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NrSlhtNHQubzogaW4gZnVuY3Rp b24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2 ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MTY0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBmdXRp bWVzJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp Z3VyZToxOTA5OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBN QUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVB REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0Rf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmlu ZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5l IEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVf TUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZF X1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJB TV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAx CnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNk ZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNk ZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwg I2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFW RV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05P VElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0Vf WElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNk ZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9a TElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAi LmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU X0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1Bf U1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEK fCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBI QVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVf UklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAj ZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNk ZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2Rl ZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmlu ZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVf R0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFW RV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FE RFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUg SEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05J Q0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhB VkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5l IEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFW RV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQg MQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwg I2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFW RV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NU WVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAx CnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8q IERlZmluZSBmdXRpbWVzIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMu aD4gZGVjbGFyZXMgZnV0aW1lcy4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMu aD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGZ1dGltZXMgaW5ub2N1b3Vz X2Z1dGltZXMKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFu ZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo IGNoYXIgZnV0aW1lcyAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3Nl cnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlz dHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERD X18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4K fCAjZW5kaWYKfCAKfCAjdW5kZWYgZnV0aW1lcwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50 ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2Ug aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5k IHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lm ZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZnV0aW1lcyAoKTsK fCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp dCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1 Yl9mdXRpbWVzIHx8IGRlZmluZWQgX19zdHViX19fZnV0aW1lcwp8IGNob2tlIG1lCnwgI2VuZGlm CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZnV0aW1lcyAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjE5MDk5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTA5OTog Y2hlY2tpbmcgZm9yIGZ1dGltZXNhdApjb25maWd1cmU6MTkwOTk6IGdjYyAtSSAuLi9zcmMvbnQv aW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2lu Y2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJl YWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWly byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgLWxnY2NqaXQg ICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3cz Mi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1z eXM2NFx0bXBcY2NFcDA4N1UubzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxW V2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MTY0 OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBmdXRpbWVzYXQnCmNvbGxlY3QyLmV4ZTogZXJyb3I6 IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE5MDk5OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBI QVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVU QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZ U1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVm aW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJF TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJ TUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVm aW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAj ZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMg MQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2Rl ZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9X MzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09M S0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJG QlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZp bmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RV TEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJH Q0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElW RV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBI QVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNk ZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZp bmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJV TkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAx CnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwg I2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVm aW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAj ZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5l IEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBI QVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9Q VEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8 ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBI QVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVm aW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5l IEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZp bmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZF X0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEK fCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNk ZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFW RV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJU T0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FU IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGZ1dGltZXNhdCB0byBhbiBp bm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGZ1dGltZXNhdC4K fCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9m ZGF5LiAgKi8KfCAjZGVmaW5lIGZ1dGltZXNhdCBpbm5vY3VvdXNfZnV0aW1lc2F0CnwgCnwgLyog U3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBw cm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGZ1dGltZXNhdCAo KTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERD X18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVl c3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUg PGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAj dW5kZWYgZnV0aW1lc2F0CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBmdXRpbWVzYXQgKCk7CnwgLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBh Y3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZnV0aW1lc2F0 IHx8IGRlZmluZWQgX19zdHViX19fZnV0aW1lc2F0CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBp bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBmdXRpbWVzYXQgKCk7CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZToxOTA5OTogcmVzdWx0OiBubwpjb25maWd1cmU6MTkwOTk6IGNoZWNr aW5nIGZvciBsdXRpbWVzCmNvbmZpZ3VyZToxOTA5OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8g Y29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9n bGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1z LWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv aGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAtbGdjY2ppdCAgID4mNSAK QzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIu MC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRt cFxjY29pZGx5OC5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2Vy MFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoxNjQ6IHVuZGVm aW5lZCByZWZlcmVuY2UgdG8gYGx1dGltZXMnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVy bmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjE5MDk5OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBF bWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1Q RVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19F WFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVf T0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBF ICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVf U09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNP VVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwg I2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVf TkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhB VkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZp bmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZF X0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkg MQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9M TF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwg I2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9M Q01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAj ZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8 ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEK fCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAx CnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFW RV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9S QU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNk ZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmlu ZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBI QVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVf UFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhB VkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVD VkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9T VFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NF VE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUg SEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9V TldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksg MQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVf UkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQ TElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9G Q0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEK fCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5l IEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFW RV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5L IDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8 ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGx1dGltZXMgdG8gYW4gaW5ub2N1b3VzIHZh cmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBsdXRpbWVzLgp8ICAgIEZvciBleGFt cGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNk ZWZpbmUgbHV0aW1lcyBpbm5vY3VvdXNfbHV0aW1lcwp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8g ZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAg d2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBsdXRpbWVzICgpOyBiZWxvdy4KfCAgICAgUHJl ZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5j ZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMu ICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UK fCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBsdXRpbWVzCnwgCnwg LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2Vu ZGlmCnwgY2hhciBsdXRpbWVzICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhp cyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwg d2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29t ZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4g ICovCnwgI2lmIGRlZmluZWQgX19zdHViX2x1dGltZXMgfHwgZGVmaW5lZCBfX3N0dWJfX19sdXRp bWVzCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBs dXRpbWVzICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTkwOTk6IHJlc3Vs dDogbm8KY29uZmlndXJlOjE5MTE0OiBjaGVja2luZyBmb3IgcGlkX3QKY29uZmlndXJlOjE5MTE0 OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWIt Mi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZp ZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMg LXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjE5MTE0OiAkPyA9IDAKY29uZmlndXJlOjE5MTE0OiBnY2MgLUkgLi4vc3JjL250 L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0y LjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9t c3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9t aW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRm aWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBD Oi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZi dXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4 bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVu Y3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjE2NjoyMDogZXJyb3I6IGV4cGVjdGVkIGV4cHJlc3Np b24gYmVmb3JlICcpJyB0b2tlbgogIDE2NiB8IGlmIChzaXplb2YgKChwaWRfdCkpKQogICAgICB8 ICAgICAgICAgICAgICAgICAgICBeCmNvbmZpZ3VyZToxOTExNDogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9G SUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1f VFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBI QVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP Q0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAj ZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUg SEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9U SUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9T Q1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlog MQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhB VkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAx CnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU IDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09N UCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9Q TkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5l IEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhB VkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEK fCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmlu ZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZF X1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9H QUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVm aW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9T QlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBI QVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZF X0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05U TCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNC TEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZF X1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVm Lmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZp bmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxt ZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50Cnwg bWFpbiAoKQp8IHsKfCBpZiAoc2l6ZW9mICgocGlkX3QpKSkKfCAJICAgIHJldHVybiAwOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTkxMTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToxOTEyNzogY2hlY2tpbmcgdmZvcmsuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE5MTI3OiBnY2Mg LUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2lu Y2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJl YWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWly byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRl c3QuYzoxNjM6MTA6IGZhdGFsIGVycm9yOiB2Zm9yay5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgMTYzIHwgI2luY2x1ZGUgPHZmb3JrLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+ CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxOTEyNzogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmlu ZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEK fCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZp bmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMy Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJ VF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJV WlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5l IEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxF UyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0ND SklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf Q09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFW RV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVm aW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5l IEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5D IDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8 ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNk ZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmlu ZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2Rl ZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBI QVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFW RV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAj ZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFW RV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBI QVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5l IEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9G Q05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwg I2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVm aW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVf SVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9J TUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBI QVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3Rk ZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFk ZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRl IDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lu Y2x1ZGUgPHZmb3JrLmg+CmNvbmZpZ3VyZToxOTEyNzogcmVzdWx0OiBubwpjb25maWd1cmU6MTkx Mjc6IGNoZWNraW5nIHZmb3JrLmggcHJlc2VuY2UKY29uZmlndXJlOjE5MTI3OiBnY2MgLUkgLi4v c3JjL250L2luYyAtRSAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoxMzA6 MTA6IGZhdGFsIGVycm9yOiB2Zm9yay5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgMTMw IHwgI2luY2x1ZGUgPHZmb3JrLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+CmNvbXBpbGF0 aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxOTEyNzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVS IDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhU RU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09G RlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAi d2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NP VU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VS Q0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNk ZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05B VElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZF X0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5l IFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9H TlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEK fCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExf QkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNk ZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENN UzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2Rl ZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAj ZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwg I2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8 ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVf TElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFO RE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVm aW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg SEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFW RV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BU SFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZF X1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZG Uk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RS RVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRO QU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhB VkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5X SU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEK fCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JF QURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJ Q0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNI TU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwg I2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBI QVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVf UElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAx CnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAj ZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDx2Zm9yay5oPgpjb25maWd1cmU6MTkxMjc6IHJl c3VsdDogbm8KY29uZmlndXJlOjE5MTI3OiBjaGVja2luZyBmb3IgdmZvcmsuaApjb25maWd1cmU6 MTkxMjc6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MTQwOiBjaGVja2luZyBmb3IgZm9yawpjb25m aWd1cmU6MTkxNDA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8y IC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4w IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv bGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBl MiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0Zmll bGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1n ZW5lcmljICAgIGNvbmZ0ZXN0LmMgLWxnY2NqaXQgICA+JjUgCmNvbmZ0ZXN0LmM6MTUzOjY6IHdh cm5pbmc6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5jdGlvbiAnZm9yayc7IGV4 cGVjdGVkICdpbnQodm9pZCknIFstV2J1aWx0aW4tZGVjbGFyYXRpb24tbWlzbWF0Y2hdCiAgMTUz IHwgY2hhciBmb3JrICgpOwogICAgICB8ICAgICAgXn5+fgpDOi9tc3lzNjQvbWluZ3c2NC9iaW4v Li4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13 NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjbVJBZHl1Lm86IGluIGZ1bmN0 aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRp dmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjE2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZm9y aycKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1 cmU6MTkxNDA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJ TF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURF UlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9Q RU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBI QVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01B TExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9Q V0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1f SCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu ZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVm aW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVm aW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmlu ZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNk ZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVf SlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJ RlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJ TSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVm aW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJ QiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5k bGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9I IDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NV RkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwg I2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFW RV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJ TlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVm aW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5l IEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZp bmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUg SEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dF VFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVf TE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERS RVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhB VkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNB TElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZF X1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBI QVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVf TENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEK fCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNk ZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVf UFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQ RSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8 ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBE ZWZpbmUgZm9yayB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRl Y2xhcmVzIGZvcmsuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xh cmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBmb3JrIGlubm9jdW91c19mb3JrCnwgCnwg LyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZl dyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGZvcmsgKCk7 IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxs aW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3Vu ZGVmIGZvcmsKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBh dm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg cmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4 dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGZvcmsgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkg ZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBh bHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1l ZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlz IGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZm9yayB8fCBkZWZpbmVkIF9fc3R1 Yl9fX2ZvcmsKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0 dXJuIGZvcmsgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTE0MDogcmVz dWx0OiBubwpjb25maWd1cmU6MTkxNDA6IGNoZWNraW5nIGZvciB2Zm9yawpjb25maWd1cmU6MTkx NDA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYt MiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21p bmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dk ay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYg LW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0 L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEgIC1tdHVuZT1nZW5lcmljICAg IGNvbmZ0ZXN0LmMgLWxnY2NqaXQgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIv Z2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5n dzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NzaG51SlAubzogaW4gZnVuY3Rpb24gYG1h aW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21w XGJ1aWxkL2NvbmZ0ZXN0LmM6MTY0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB2Zm9yaycKY29s bGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTkx NDA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0Vf UE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09D S0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJ TlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01N U1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwg I2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZp bmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1F X1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhB VkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZ U1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0Vf TU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUg SEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAx CnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8 ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwg I2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhB VkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwg I2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwg I2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAj ZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAi LmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmlu ZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRI T1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8 ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBI QVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhB VkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVf U0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFW RV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9T RU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tO QU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAx CnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf QUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEK fCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNF RUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9G SUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURM SU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZB Q0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9E IDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVm aW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUg SEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVD VCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwg I2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZp bmUgSEFWRV9VVElNRU5TQVQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUg dmZvcmsgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJl cyB2Zm9yay4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMg Z2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHZmb3JrIGlubm9jdW91c192Zm9yawp8IAp8IC8q IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg cHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciB2Zm9yayAoKTsg YmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18g aXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3Rh bmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxp bWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5k ZWYgdmZvcmsKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBh dm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg cmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4 dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHZmb3JrICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5 IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt ZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBp cyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3Zmb3JrIHx8IGRlZmluZWQgX19z dHViX19fdmZvcmsKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwg cmV0dXJuIHZmb3JrICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTkxNDA6 IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MzQxOiBjaGVja2luZyBmb3Igc25wcmludGYKY29uZmln dXJlOjE5MzQxOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAt Z2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxk cyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2Vu ZXJpYyAgICBjb25mdGVzdC5jIC1sZ2Njaml0ICAgPiY1IApjb25mdGVzdC5jOjE1NDo2OiB3YXJu aW5nOiBjb25mbGljdGluZyB0eXBlcyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gJ3NucHJpbnRmJzsg ZXhwZWN0ZWQgJ2ludChjaGFyICosIGxvbmcgbG9uZyB1bnNpZ25lZCBpbnQsICBjb25zdCBjaGFy ICosIC4uLiknIFstV2J1aWx0aW4tZGVjbGFyYXRpb24tbWlzbWF0Y2hdCiAgMTU0IHwgY2hhciBz bnByaW50ZiAoKTsKICAgICAgfCAgICAgIF5+fn5+fn5+CmNvbmZ0ZXN0LmM6MTQyOjE6IG5vdGU6 ICdzbnByaW50ZicgaXMgZGVjbGFyZWQgaW4gaGVhZGVyICc8c3RkaW8uaD4nCiAgMTQxIHwgIyBp bmNsdWRlIDxsaW1pdHMuaD4KICAxNDIgfCAjZWxzZQpjb25maWd1cmU6MTkzNDE6ICQ/ID0gMApj b25maWd1cmU6MTkzNDE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTM1MjogY2hlY2tpbmcgd2hl dGhlciBHTGliIGlzIGxpbmtlZCBpbgpjb25maWd1cmU6MTkzNzU6IGdjYyAtSSAuLi9zcmMvbnQv aW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2xpYnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvZ2xpYi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2lu Y2x1ZGUgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVt IEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJl YWQgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWly byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2hhcmZidXp6IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvcGl4bWFuLTEgICAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnJzdmctMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0 L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMgLXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9jYWlybyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2x6byAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl L2ZyZWV0eXBlMiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2hhcmZidXp6IC1t bXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvcGl4bWFuLTEg ICAgICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1sZ2Njaml0ICAgICAgICAgPiY1IApD Oi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4w Ly4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1w XGNjamx5SUJWLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIw XERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjEzNzogdW5kZWZp bmVkIHJlZmVyZW5jZSB0byBgZ19wcmludCcKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJu ZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTkzNzU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVt YWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0Bn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBF UiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VY VEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9P RkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUg IndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9T T1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09V UkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAj ZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUg SEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9O QVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFW RV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmlu ZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVf R05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAx CnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xM X0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAj ZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xD TVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNk ZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwg I2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8 ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEK fCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZF X0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JB TkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2Rl ZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhB VkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9Q VEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFW RV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNW RlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NU UkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VU TkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBI QVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VO V0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAx CnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9S RUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBM SUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZD SE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8 ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUg SEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZF X1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksg MQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwg I2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZp bmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxnbGliLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBnX3By aW50ICgiSGVsbG8gd29ybGQiKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5 Mzg1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTM5NzogY2hlY2tpbmcgZm9yIG5sX2xhbmdpbmZv IGFuZCBDT0RFU0VUCmNvbmZpZ3VyZToxOTQyMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE5NDI5 OiBjaGVja2luZyBmb3IgbmxfbGFuZ2luZm8gYW5kIF9OTF9QQVBFUl9XSURUSApjb25maWd1cmU6 MTk0NTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTQ2NTogY2hlY2tpbmcgZm9yIG1ic3RhdGVf dApjb25maWd1cmU6MTk0ODk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2Fy Zi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv Z2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcx NiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMg ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTk0ODk6ICQ/ID0gMApjb25maWd1cmU6MTk0OTY6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTkzNzogY2hlY2tpbmcgZm9yIF9zZXRqbXAKY29uZmln dXJlOjE5OTU5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAt Z2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAt aXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5n dzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5j bHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xp YnBuZzE2IC1tbXMtYml0ZmllbGRzIC1wdGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvY2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQv aW5jbHVkZS9sem8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIg LWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxk cyAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2Vu ZXJpYyAgICBjb25mdGVzdC5jIC1sZ2Njaml0ICAgPiY1IApjb25mdGVzdC5jOiBJbiBmdW5jdGlv biAnbWFpbic6CmNvbmZ0ZXN0LmM6MTU1Ojk6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBm dW5jdGlvbiAnX3NldGptcCcKICAxNTUgfCAgIGlmICghIF9zZXRqbXAgKGopKQogICAgICB8ICAg ICAgICAgXn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxNDY6CkM6L21z eXM2NC9taW5ndzY0L3g4Nl82NC13NjQtbWluZ3czMi9pbmNsdWRlL3NldGptcC5oOjI0Mjo2Mzog bm90ZTogZGVjbGFyZWQgaGVyZQogIDI0MiB8ICAgaW50IF9fY2RlY2wgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fLF9fcmV0dXJuc190d2ljZV9fKSkgX3NldGptcChqbXBfYnVmIF9CdWYsIHZv aWQgKl9DdHgpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fgpjb25maWd1cmU6MTk5NTk6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf UE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBf VEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwg I2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZp bmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8 ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZF X0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8 ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0Mg MQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVG RkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEK fCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBI QVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNF X1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZF X0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwg I2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZF X01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZF X0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVf TkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVm aW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAx CnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwg I2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFW RV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VT SVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlU IDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8 ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwg MQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNk ZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExP QyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhB VkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVm aW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8 ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNk ZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwg I2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5l IEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZ TkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAx CnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmlu ZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZF X1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElN RU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwg I2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19f TkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFW RV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hB UiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBw dy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJ Q0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2Nf KSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9j XykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZp bmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dP UktTIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHNldGptcC5oPgp8ICAg ICAgICAgICNpZmRlZiBfX01JTkdXMzJfXwp8ICAgICAgICAgICMgZGVmaW5lIF9sb25nam1wIGxv bmdqbXAKfCAgICAgICAgICAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IGptcF9idWYg ajsKfCAJIGlmICghIF9zZXRqbXAgKGopKQp8IAkgICBfbG9uZ2ptcCAoaiwgMSk7CnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTk2NzogcmVzdWx0OiBubwpjb25maWd1cmU6MTk5 NzY6IGNoZWNraW5nIGZvciBzaWdzZXRqbXAKY29uZmlndXJlOjE5OTk1OiBnY2MgLUkgLi4vc3Jj L250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9saWJyc3ZnLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIu MC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLW1tcy1iaXRmaWVs ZHMgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVmLTIuMCAtaXN5 c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnBuZzE2IC1tbXMtYml0ZmllbGRzIC1w dGhyZWFkIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv Y2Fpcm8gLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3 NjQvaW5jbHVkZS9oYXJmYnV6eiAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL3BpeG1hbi0xICAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1sZ2Nj aml0ICAgPiY1IApjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MTUx OjE6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnc2lnam1wX2J1Zic7IGRpZCB5b3UgbWVhbiAn am1wX2J1Zic/CiAgMTUxIHwgc2lnam1wX2J1ZiBqOwogICAgICB8IF5+fn5+fn5+fn4KICAgICAg fCBqbXBfYnVmCmNvbmZ0ZXN0LmM6MTUyOjE2OiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiAnc2lnc2V0am1wJzsgZGlkIHlvdSBtZWFuICdfc2V0am1wJz8gWy1XaW1w bGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgMTUyIHwgICAgICAgICAgaWYgKCEgc2lnc2V0 am1wIChqLCAxKSkKICAgICAgfCAgICAgICAgICAgICAgICBefn5+fn5+fn4KICAgICAgfCAgICAg ICAgICAgICAgICBfc2V0am1wCmNvbmZ0ZXN0LmM6MTUzOjU6IHdhcm5pbmc6IGltcGxpY2l0IGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdzaWdsb25nam1wJzsgZGlkIHlvdSBtZWFuICdsb25nam1w Jz8gWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgMTUzIHwgICAgIHNpZ2xvbmdq bXAgKGosIDEpOwogICAgICB8ICAgICBefn5+fn5+fn5+CiAgICAgIHwgICAgIGxvbmdqbXAKY29u ZmlndXJlOjE5OTk1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxU X1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVm aW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZp bmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFW RV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhB VkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BB UkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVG U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19I IDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwg I2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwg I2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEK fCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBI QVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVf Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVT RV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwg I2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZF X1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklY ICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NK SVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElT UF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYg MQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5l IEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFW RV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8 ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwg I2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2Rl ZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAj ZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVm aW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFW RV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBI QVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVf QUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmlu ZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5P TklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUg SEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZp bmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBI QVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRB VCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEK fCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBI QVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNX Q1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5L IDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVm aW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAj ZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJT VEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAi TlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNk ZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQ ICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmlu ZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8 ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RF VklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIK fCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxzZXRqbXAuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHNpZ2ptcF9idWYgajsK fCAgICAgICAgICBpZiAoISBzaWdzZXRqbXAgKGosIDEpKQp8IAkgICBzaWdsb25nam1wIChqLCAx KTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIwMDAzOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToyMDEyOTogY2hlY2tpbmcgZm9yIHVzYWJsZSBGSU9OUkVBRApjb25maWd1cmU6MjAx Njk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMDE3NzogY2hlY2tpbmcgZm9yIHVzYWJsZSBTSUdJ Twpjb25maWd1cmU6MjAxOTU6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2Fy Zi0yIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0 ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQv bWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlIC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv Z2RrLXBpeGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcx NiAtbW1zLWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lz NjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1 ZGUvbHpvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lz dGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlz eXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAgLW10dW5lPWdlbmVyaWMg ICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0 LmM6MTU2OjExOiBlcnJvcjogJ1NJR0lPJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbik7IGRpZCB5b3UgbWVhbiAnU0lHSUxMJz8KICAxNTYgfCBpbnQgZm9vID0gU0lHSU8g fCBGX1NFVEZMIHwgRkFTWU5DOwogICAgICB8ICAgICAgICAgICBefn5+fgogICAgICB8ICAgICAg ICAgICBTSUdJTEwKY29uZnRlc3QuYzoxNTY6MTE6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVu dGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJz IGluCmNvbmZ0ZXN0LmM6MTU2OjE5OiBlcnJvcjogJ0ZfU0VURkwnIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIDE1NiB8IGludCBmb28gPSBTSUdJTyB8IEZfU0VURkwg fCBGQVNZTkM7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgXn5+fn5+fgpjb25mdGVzdC5jOjE1 NjoyOTogZXJyb3I6ICdGQVNZTkMnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIDE1NiB8IGludCBmb28gPSBTSUdJTyB8IEZfU0VURkwgfCBGQVNZTkM7CiAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgpjb25maWd1cmU6MjAxOTU6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAj ZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf TUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAx CnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNk ZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0gg MQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBI QVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9X Q0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxM T0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1Jf QlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZH IDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmlu ZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUg VVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBI QVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAx CnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBI QVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBI QVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhB VkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAj ZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJ RiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAx CnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUg SEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBB R0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJ TUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04g MQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdO QUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8 ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAj ZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmlu ZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9B TExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5l IEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAj ZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUg MQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8 ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAx CnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVm aW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVf RlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RB VCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2Rl ZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBI QVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9V VElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAx CnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUg SEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQ Q0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFN RSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19E RVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAo X2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQ KF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNk ZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1Q X1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZp bmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklP TlJFQUQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8ZmNudGwuaD4KfCAJ CQkgICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgaW50IGZv byA9IFNJR0lPIHwgRl9TRVRGTCB8IEZBU1lOQzsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjIwMjAyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMDQyMTogY2hlY2tpbmcgZm9yIHN0 cnVjdCBhbGlnbm1lbnQKY29uZmlndXJlOjIwNDQxOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAt ZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy ZToyMDQ0MTogJD8gPSAwCmNvbmZpZ3VyZToyMDQ0ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjIw NDU3OiBjaGVja2luZyBmb3IgdHlwZW9mIHN5bnRheCBhbmQga2V5d29yZCBzcGVsbGluZwpjb25m aWd1cmU6MjA0ODg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1t dHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjIwNDg4OiAkPyA9IDAKY29u ZmlndXJlOjIwNDk1OiByZXN1bHQ6IHR5cGVvZgpjb25maWd1cmU6MjA1MTE6IGNoZWNraW5nIGZv ciBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMKY29uZmlndXJlOjIwNTI3OiBnY2MgLUkgLi4vc3JjL250 L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZpZ3VyZToyMDUyNzogJD8gPSAwCmNvbmZpZ3VyZToyMDUzNDogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjIwNjQ4OiBjaGVja2luZyBmb3Igd29ya2luZyBhbGxvY2EuaApjb25maWd1cmU6MjA2 NjU6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYt MiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgPiY1IApjb25mdGVzdC5jOjE1NzoxMDog ZmF0YWwgZXJyb3I6IGFsbG9jYS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgMTU3IHwg I2luY2x1ZGUgPGFsbG9jYS5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjIwNjY1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFj cyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIg MQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRF TlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZG U0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3 aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09V TkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJD RV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFU SVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVf R0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUg VEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dO VVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8 ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9C QVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2Rl ZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01T MiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVm aW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNk ZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAj ZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwg I2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9M SUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5E T00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZp bmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBI QVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZF X1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVf U0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZS T00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJF UlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5B TUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFW RV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJ TkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8 ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVB RExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElD SVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hN T0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAj ZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhB VkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9Q SVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEK fCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNk ZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5l IHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5H SU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEK fCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2Rl ZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBz dWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2Rl ZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2Nf KSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8 fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllf U0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRf REVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBI QVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2Rl ZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENP UFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05G SUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BU SU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29t cC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVU RV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVN RU5UX0VYUFJFU1NJT05TIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFs bG9jYS5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgY2hhciAqcCA9IChjaGFyICopIGFsbG9jYSAo MiAqIHNpemVvZiAoaW50KSk7CnwgCQkJICBpZiAocCkgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToyMDY3MzogcmVzdWx0OiBubwpjb25maWd1cmU6MjA2ODE6IGNo ZWNraW5nIGZvciBhbGxvY2EKY29uZmlndXJlOjIwNzE4OiBnY2MgLUkgLi4vc3JjL250L2luYyAt byBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICAgY29uZnRl c3QuYyAgID4mNSAKY29uZmlndXJlOjIwNzE4OiAkPyA9IDAKY29uZmlndXJlOjIwNzI2OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MjA4OTU6IGNoZWNraW5nIHdoZXRoZXIgLy8gaXMgZGlzdGluY3Qg ZnJvbSAvCmNvbmZpZ3VyZToyMDkyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjIwOTM2OiBjaGVj a2luZyB3aGV0aGVyIHJlYWxwYXRoIHdvcmtzCmNvbmZpZ3VyZToyMTEyOTogcmVzdWx0OiBuby1i dXQtbm90LW5lZWRlZC1zby15ZXMKY29uZmlndXJlOjIxMTYzOiBjaGVja2luZyBmb3IgQy9DKysg cmVzdHJpY3Qga2V5d29yZApjb25maWd1cmU6MjExOTA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1j IC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjIxMTkwOiAkPyA9IDAKY29uZmlndXJlOjIxMTk4OiByZXN1bHQ6IF9fcmVzdHJpY3QKY29u ZmlndXJlOjIxMzU1OiBjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFu CmNvbmZpZ3VyZToyMTM3MDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJm LTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjE2Mjo5OiBlcnJv cjogdW5rbm93biB0eXBlIG5hbWUgJ25vdCcKICAxNjIgfCAgICAgICAgIG5vdCBhIHVuaXZlcnNh bCBjYXBhYmxlIGNvbXBpbGVyCiAgICAgIHwgICAgICAgICBefn4KY29uZnRlc3QuYzoxNjI6MTU6 IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycg YmVmb3JlICd1bml2ZXJzYWwnCiAgMTYyIHwgICAgICAgICBub3QgYSB1bml2ZXJzYWwgY2FwYWJs ZSBjb21waWxlcgogICAgICB8ICAgICAgICAgICAgICAgXn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MTYy OjE1OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ3VuaXZlcnNhbCcKY29uZmlndXJlOjIxMzcw OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BP UCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu ZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf VU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tF VF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5U IDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZ U1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNk ZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5l IEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9X SVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZF X05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNU RU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01N QVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhB VkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8 ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAj ZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNk ZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZF X0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNk ZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNk ZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2Rl ZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5l bG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUg SEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9T VE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAj ZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFW RV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZF X0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NI VVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVf U1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VO RFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFN RSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8 ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FM SUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwg I2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVL TyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklM RV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElO S0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUND RVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAx CnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmlu ZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhB VkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1Qg MQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNk ZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5l IEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05Q UklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVf TEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAj ZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVm aW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9G VUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZp bmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RP UllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNf QU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2Nf KSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdD X1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEK fCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNB QkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0 ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIi CnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIw L0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAj ZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQ RU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhB VkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAj ZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmlj dAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9fQVBQTEVfQ0NfXwp8IAkgICAg ICAgbm90IGEgdW5pdmVyc2FsIGNhcGFibGUgY29tcGlsZXIKfCAJICAgICAjZW5kaWYKfCAJICAg ICB0eXBlZGVmIGludCBkdW1teTsKfCAKY29uZmlndXJlOjIxNDE1OiBnY2MgLUkgLi4vc3JjL250 L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoxNjg6ODogZXJyb3I6 IHVua25vd24gdHlwZSBuYW1lICdib2d1cycKICAxNjggfCAgICAgICAgYm9ndXMgZW5kaWFuIG1h Y3JvcwogICAgICB8ICAgICAgICBefn5+fgpjb25mdGVzdC5jOjE2ODoyMTogZXJyb3I6IGV4cGVj dGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUgJ21hY3Jv cycKICAxNjggfCAgICAgICAgYm9ndXMgZW5kaWFuIG1hY3JvcwogICAgICB8ICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+CmNvbmZpZ3VyZToyMTQxNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVS IDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhU RU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09G RlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAi d2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NP VU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VS Q0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNk ZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05B VElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZF X0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5l IFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9H TlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEK fCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExf QkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNk ZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENN UzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2Rl ZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAj ZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwg I2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8 ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVf TElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFO RE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVm aW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg SEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFW RV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BU SFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZF X1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZG Uk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RS RVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRO QU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhB VkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5X SU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEK fCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JF QURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJ Q0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNI TU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwg I2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBI QVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVf UElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAx CnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAj ZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmlu ZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFO R0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAx CnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNk ZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUg c3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNk ZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9j XykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycg fHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZ X1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5E X0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUg SEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNk ZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBD T1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09O RklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09Q VElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNv bXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJV VEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRF TUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VC TEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktT IDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8IAkgICAgICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4K fCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZiAhIChkZWZpbmVkIEJZVEVfT1JERVIgJiYgZGVm aW5lZCBCSUdfRU5ESUFOIAkJICAgICAmJiBkZWZpbmVkIExJVFRMRV9FTkRJQU4gJiYgQllURV9P UkRFUiAmJiBCSUdfRU5ESUFOIAkJICAgICAmJiBMSVRUTEVfRU5ESUFOKQp8IAkgICAgICBib2d1 cyBlbmRpYW4gbWFjcm9zCnwgCSAgICAgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9 CmNvbmZpZ3VyZToyMTQ1OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJm LTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlv biAnbWFpbic6CmNvbmZ0ZXN0LmM6MTY3Ojg6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnYm9n dXMnCiAgMTY3IHwgICAgICAgIGJvZ3VzIGVuZGlhbiBtYWNyb3MKICAgICAgfCAgICAgICAgXn5+ fn4KY29uZnRlc3QuYzoxNjc6MjE6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNt JyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdtYWNyb3MnCiAgMTY3IHwgICAgICAgIGJvZ3Vz IGVuZGlhbiBtYWNyb3MKICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgpjb25maWd1 cmU6MjE0NTk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJ TF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURF UlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9Q RU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBI QVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01B TExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9Q V0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1f SCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu ZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVm aW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVm aW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmlu ZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNk ZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVf SlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJ RlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJ TSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVm aW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJ QiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5k bGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9I IDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NV RkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwg I2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFW RV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJ TlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVm aW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5l IEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZp bmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUg SEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dF VFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVf TE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERS RVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhB VkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNB TElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZF X1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBI QVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVf TENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEK fCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNk ZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVf UFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQ RSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8 ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUg SEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZp bmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRF X1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6 Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmlu ZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8n CnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElT X0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2Rl ZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNF X1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNk ZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFO RExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2Rl ZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMp IDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFE RVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQt bWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9W V2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVj b21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUg SEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNk ZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JP T1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBf X3Jlc3RyaWN0CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxsaW1pdHMuaD4K fCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZiAhIChkZWZpbmVkIF9MSVRUTEVfRU5ESUFOIHx8 IGRlZmluZWQgX0JJR19FTkRJQU4pCnwgCSAgICAgIGJvZ3VzIGVuZGlhbiBtYWNyb3MKfCAJICAg ICAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIxNTUwOiBnY2Mg LUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5l PWdlbmVyaWMgICAgY29uZnRlc3QuYyAgID4mNSAKY29uZmlndXJlOjIxNTUwOiAkPyA9IDAKY29u ZmlndXJlOjIxNTUwOiAuL2NvbmZ0ZXN0LmV4ZQpjb25maWd1cmU6MjE1NTA6ICQ/ID0gMApjb25m aWd1cmU6MjE1NjE6IHJlc3VsdDogbm8KY29uZmlndXJlOjIxNjA1OiBjaGVja2luZyB3aGV0aGVy IHRoZSBwcmVwcm9jZXNzb3Igc3VwcG9ydHMgaW5jbHVkZV9uZXh0CmNvbmZpZ3VyZToyMTY0Mzog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMg ICAtSWNvbmZ0ZXN0ZDFiIC1JY29uZnRlc3RkMiBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MjE2 NDM6ICQ/ID0gMApjb25maWd1cmU6MjE2NjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMTY4Njog Y2hlY2tpbmcgd2hldGhlciBzb3VyY2UgY29kZSBsaW5lIGxlbmd0aCBpcyB1bmxpbWl0ZWQKY29u ZmlndXJlOjIxNzA5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjE3ODI6IGNoZWNraW5nIGlmIGVu dmlyb24gaXMgcHJvcGVybHkgZGVjbGFyZWQKY29uZmlndXJlOjIxODA0OiBnY2MgLUkgLi4vc3Jj L250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMg PiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBDOi9tc3lzNjQvbWluZ3c2NC94ODZfNjQtdzY0LW1p bmd3MzIvaW5jbHVkZS9fbWluZ3cuaDoxMCwKICAgICAgICAgICAgICAgICBmcm9tIEM6L21zeXM2 NC9taW5ndzY0L3g4Nl82NC13NjQtbWluZ3czMi9pbmNsdWRlL2NvcmVjcnQuaDoxMCwKICAgICAg ICAgICAgICAgICBmcm9tIEM6L21zeXM2NC9taW5ndzY0L3g4Nl82NC13NjQtbWluZ3czMi9pbmNs dWRlL2NydGRlZnMuaDoxMCwKICAgICAgICAgICAgICAgICBmcm9tIEM6L21zeXM2NC9taW5ndzY0 L3g4Nl82NC13NjQtbWluZ3czMi9pbmNsdWRlL3N5cy90eXBlcy5oOjEzLAogICAgICAgICAgICAg ICAgIGZyb20gLi4vc3JjL250L2luYy91bmlzdGQuaDo2LAogICAgICAgICAgICAgICAgIGZyb20g Y29uZnRlc3QuYzoxNjI6CmNvbmZ0ZXN0LmM6MTY3OjQwOiBlcnJvcjogY29uZmxpY3RpbmcgdHlw ZXMgZm9yICdfX2ltcF9fZW52aXJvbicKICAxNjcgfCAgICAgICAgICAgICBleHRlcm4gc3RydWN0 IHsgaW50IGZvbzsgfSBlbnZpcm9uOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn4KQzovbXN5czY0L21pbmd3NjQveDg2XzY0LXc2NC1taW5ndzMy L2luY2x1ZGUvc3RkbGliLmg6MzIyOjE5OiBub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiAn X19pbXBfX2Vudmlyb24nIHdhcyBoZXJlCiAgMzIyIHwgICBleHRlcm4gY2hhciAqKiogX19NSU5H V19JTVBfU1lNQk9MKF9lbnZpcm9uKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn4KY29uZmlndXJlOjIxODA0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJ T05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VU X0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5k b3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9I IDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZF X0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VU UEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhS RUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRM UyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNk ZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJT IDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmlu ZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAx CnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5l IE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVm aW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2Rl ZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJY TUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00g MQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUg SEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZF X1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00g MQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJP UiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVf TlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRf SU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNk ZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJ TksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRf QlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RB VCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVm aW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBF MiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAj ZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZp bmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZm b3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAj ZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmlu ZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJw cm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmlu ZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9 PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAo X2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQ IChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVW SUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZF X1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmlu ZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlS SUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIK fCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdV UkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9O UyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9i dWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9B TElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5U X0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9T TEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8 ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aWYgSEFWRV9VTklTVERfSAp8ICAgICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgp8ICAgICAgI2VuZGlm CnwgICAgICAvKiBtaW5ndywgQmVPUywgSGFpa3UgZGVjbGFyZSBlbnZpcm9uIGluIDxzdGRsaWIu aD4sIG5vdCBpbiA8dW5pc3RkLmg+LiAgKi8KfCAgICAgICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAK fCAgICAgICAgICAgICBleHRlcm4gc3RydWN0IHsgaW50IGZvbzsgfSBlbnZpcm9uOwp8IGludAp8 IG1haW4gKCkKfCB7CnwgZW52aXJvbi5mb28gPSAxOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MjE4MTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMTgyNjogY2hlY2tpbmcgZm9y IGNvbXBsZXRlIGVycm5vLmgKY29uZmlndXJlOjIxODk5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToy MTk4MjogY2hlY2tpbmcgZm9yIEVNVUxUSUhPUCB2YWx1ZQpjb25maWd1cmU6MjIwMzc6IHJlc3Vs dDogbm8KY29uZmlndXJlOjIyMDUzOiBjaGVja2luZyBmb3IgRU5PTElOSyB2YWx1ZQpjb25maWd1 cmU6MjIxMDg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMjEyNDogY2hlY2tpbmcgZm9yIEVPVkVS RkxPVyB2YWx1ZQpjb25maWd1cmU6MjIxNzk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMjI4Nzog Y2hlY2tpbmcgd2hldGhlciBsc3RhdCBjb3JyZWN0bHkgaGFuZGxlcyB0cmFpbGluZyBzbGFzaApj b25maWd1cmU6MjIzNDE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMjQxNDogY2hlY2tpbmcgZm9y IG1vZGVfdApjb25maWd1cmU6MjI0MTQ6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIg LWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjIyNDE0 OiAkPyA9IDAKY29uZmlndXJlOjIyNDE0OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8y IC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IElu IGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoxOTk6MjE6IGVycm9yOiBleHBlY3RlZCBleHBy ZXNzaW9uIGJlZm9yZSAnKScgdG9rZW4KICAxOTkgfCBpZiAoc2l6ZW9mICgobW9kZV90KSkpCiAg ICAgIHwgICAgICAgICAgICAgICAgICAgICBeCmNvbmZpZ3VyZToyMjQxNDogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05F VEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVm aW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBT WVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2Rl ZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElS RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19U SU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2Rl ZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwg I2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJT IDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNk ZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVf VzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9P TEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFS RkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVm aW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9E VUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElC R0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJ VkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUg SEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAj ZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVm aW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RS VU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUg MQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2Rl ZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwg I2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmlu ZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUg SEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVf UFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAK fCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUg SEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmlu ZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVm aW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFW RV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAx CnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAj ZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhB VkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RS VE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNB VCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVm aW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9Q QVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NP Q0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7 Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5w d19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9T RVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgo X2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAo SVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBE RUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1Mg MQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1Nf TlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAx CnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZp bmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1B Q1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1h Y3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NU UlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmlu ZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwg I2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JF QUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5L IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVm IEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxz dGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYg IWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1 ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBp bnQKfCBtYWluICgpCnwgewp8IGlmIChzaXplb2YgKChtb2RlX3QpKSkKfCAJICAgIHJldHVybiAw Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjI0MTQ6IHJlc3VsdDogeWVzCmNv bmZpZ3VyZToyMjQyNzogY2hlY2tpbmcgZm9yIHN0X2RtX21vZGUgaW4gc3RydWN0IHN0YXQKY29u ZmlndXJlOjIyNDQ1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAt bXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoxNjk6MTg6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1i ZXIgbmFtZWQgJ3N0X2RtX21vZGUnOyBkaWQgeW91IG1lYW4gJ3N0X21vZGUnPwogIDE2OSB8IHN0 cnVjdCBzdGF0IHM7IHMuc3RfZG1fbW9kZTsKICAgICAgfCAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn4KICAgICAgfCAgICAgICAgICAgICAgICAgIHN0X21vZGUKY29uZmlndXJlOjIyNDQ1OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw czovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAx CnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9B UEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEK fCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RF TV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZp bmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhB VkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRI X1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05U R1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1f TUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBf Rk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVf UlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNk ZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVm aW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZp bmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQ RUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZp bmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4i CnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFW RV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5B TUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVm aW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRE T1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RS U0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRP IDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAx CnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdO RURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2Rl ZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAx CnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9O QU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FU IDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNT QVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwg I2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBI QVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVf TFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8 ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZp bmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhB VkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklO VEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFO R0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVm aW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5l IFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxM X05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUg SVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllf U0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5Z X1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkK fCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NF VEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAj ZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxF X0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJt LmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwg I2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rv d25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVm aW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9G IDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVf QUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVm aW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFT SEVEX1NZTUxJTksgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5jbHVkZSA8c3lz L3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBz dHJ1Y3Qgc3RhdCBzOyBzLnN0X2RtX21vZGU7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZToyMjQ1MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjI0NjI6IGNoZWNraW5nIHdoZXRoZXIg c3RybW9kZSBpcyBkZWNsYXJlZApjb25maWd1cmU6MjI0NjI6IGdjYyAtSSAuLi9zcmMvbnQvaW5j IC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29u ZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIwMzoxMDogZXJyb3I6ICdz dHJtb2RlJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3Ug bWVhbiAnc3RydG9kJz8KICAyMDMgfCAgICh2b2lkKSBzdHJtb2RlOwogICAgICB8ICAgICAgICAg IF5+fn5+fn4KICAgICAgfCAgICAgICAgICBzdHJ0b2QKY29uZnRlc3QuYzoyMDM6MTA6IG5vdGU6 IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFj aCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCmNvbmZpZ3VyZToyMjQ2MjogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmlu ZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEK fCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZp bmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMy Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJ VF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJV WlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5l IEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxF UyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0ND SklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf Q09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFW RV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVm aW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5l IEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5D IDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8 ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNk ZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmlu ZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2Rl ZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBI QVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFW RV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAj ZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFW RV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBI QVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5l IEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9G Q05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwg I2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVm aW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVf SVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9J TUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAx CnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBF Ul9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tF VFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8 ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19n ZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAo X2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2Nf KSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNf RElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZB VUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8 ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQg LyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwg I2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUg RU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1Nf Q09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3Mv bmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVD VF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBI QVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2Rl ZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQ QVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVf RU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRk ZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQK fCBtYWluICgpCnwgewp8ICNpZm5kZWYgc3RybW9kZQp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAg KHZvaWQpIHN0cm1vZGU7CnwgI2Vsc2UKfCAgICh2b2lkKSBzdHJtb2RlOwp8ICNlbmRpZgp8ICNl bmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjI0NjI6IHJlc3VsdDog bm8KY29uZmlndXJlOjIyNDg5OiBjaGVja2luZyBmb3IgZ2F3awpjb25maWd1cmU6MjI1MDU6IGZv dW5kIC91c3IvYmluL2dhd2sKY29uZmlndXJlOjIyNTE2OiByZXN1bHQ6IGdhd2sKY29uZmlndXJl OjIyNjIzOiBjaGVja2luZyBmb3IgZ2V0b3B0LmgKY29uZmlndXJlOjIyNjIzOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToyMzI2NzogY2hlY2tpbmcgZm9yIHN0cnVjdCB0aW1ldmFsCmNvbmZpZ3VyZToy MzI5MDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdl bmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MjMyOTA6ICQ/ID0gMApjb25maWd1cmU6 MjMyOTg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMzMwMzogY2hlY2tpbmcgZm9yIHdpZGUtZW5v dWdoIHN0cnVjdCB0aW1ldmFsLnR2X3NlYyBtZW1iZXIKY29uZmlndXJlOjIzMzM4OiByZXN1bHQ6 IHllcwpjb25maWd1cmU6MjM0MzQ6IGNoZWNraW5nIHdoZXRoZXIgbGltaXRzLmggaGFzIExMT05H X01BWCwgV09SRF9CSVQsIFVMTE9OR19XSURUSCBldGMuCmNvbmZpZ3VyZToyMzQ1NzogZ2NjIC1J IC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25m dGVzdC5jID4mNQpjb25mdGVzdC5jOjE2OToyMjogZXJyb3I6ICdXT1JEX0JJVCcgdW5kZWNsYXJl ZCBoZXJlIChub3QgaW4gYSBmdW5jdGlvbikKICAxNjkgfCAgICAgICAgICAgICBpbnQgd2IgPSBX T1JEX0JJVDsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fgpjb25maWd1cmU6 MjM0NTc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9V U0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5f U09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0ND X0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZF X01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExP Q19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0Rf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAx CnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBU SU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5l IEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5l IFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBV U0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZp bmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNP TiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkg MQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAx CnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5l IEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAx CnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwi CnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJ WCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2Rl ZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9H RVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQg MQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5l IEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhB VkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUg SEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFW RV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNP Q0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9H MiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNT IDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVf RlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTEla RV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JF QURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZF X0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENI TU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAj ZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZp bmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNF TEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAx CnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNk ZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFW RV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUg SEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1Qg MQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8 ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBV U0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwg I2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJ UkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmlu ZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NF UChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZp bmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJ TkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmlu ZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIw MjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIg InczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWlu Z3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2lu VXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21w Igp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFW RV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZp bmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1Qg MQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jl c3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xM T1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZm5kZWYgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXwp8ICAgICAgICAgICAgICAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICAgICAgICAgICAgICNlbmRpZgp8ICAgICAgICAgICAgICNpbmNsdWRlIDxsaW1pdHMu aD4KfCAgICAgICAgICAgICBsb25nIGxvbmcgbGxtID0gTExPTkdfTUFYOwp8ICAgICAgICAgICAg IGludCB3YiA9IFdPUkRfQklUOwp8ICAgICAgICAgICAgIGludCB1bGx3ID0gVUxMT05HX1dJRFRI Owp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZToyMzQ2NDogcmVzdWx0OiBubwpjb25maWd1cmU6MjM0ODI6IGNoZWNraW5nIHdoZXRoZXIg dGhlIGNvbXBpbGVyIHByb2R1Y2VzIG11bHRpLWFyY2ggYmluYXJpZXMKY29uZmlndXJlOjIzNDk2 OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJp YyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MTY1OjEzOiBlcnJvcjogdW5rbm93biB0eXBl IG5hbWUgJ25vdCcKICAxNjUgfCAgICAgICAgICAgICBub3QgYSB1bml2ZXJzYWwgY2FwYWJsZSBj b21waWxlcgogICAgICB8ICAgICAgICAgICAgIF5+fgpjb25mdGVzdC5jOjE2NToxOTogZXJyb3I6 IGV4cGVjdGVkICc9JywgJywnLCAnOycsICdhc20nIG9yICdfX2F0dHJpYnV0ZV9fJyBiZWZvcmUg J3VuaXZlcnNhbCcKICAxNjUgfCAgICAgICAgICAgICBub3QgYSB1bml2ZXJzYWwgY2FwYWJsZSBj b21waWxlcgogICAgICB8ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fgpjb25mdGVzdC5jOjE2 NToxOTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICd1bml2ZXJzYWwnCmNvbmZpZ3VyZToyMzQ5 NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9Q T1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NL RVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElO VCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1T WVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAj ZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVf V0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFW RV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lT VEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9N TUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBI QVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEK fCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwg I2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAj ZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFW RV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAj ZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAj ZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNk ZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIu ZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5l IEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhP U1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwg I2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhB VkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFW RV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9T SFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZF X1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NF TkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05B TUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEK fCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9B TElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8 ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VF S08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJ TEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJ TktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFD Q0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0Qg MQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZp bmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNU IDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAj ZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmlu ZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NO UFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZF X0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwg I2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2Rl ZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJf RlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVm aW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNU T1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElT X0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9j XykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBH Q19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAx CnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVT QUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMy dGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMy Igp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2Vy MC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwg I2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZ UEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBI QVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwg I2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJp Y3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1Nf U0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2lmbmRlZiBfX0FQUExFX0NDX18KfCAgICAgICAgICAgICBub3Qg YSB1bml2ZXJzYWwgY2FwYWJsZSBjb21waWxlcgp8ICAgICAgICAgICAgI2VuZGlmCnwgICAgICAg ICAgICB0eXBlZGVmIGludCBkdW1teTsKfCAKY29uZmlndXJlOjIzNTIzOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToyMzY1MjogY2hlY2tpbmcgd2hldGhlciBzdGRpbnQuaCBjb25mb3JtcyB0byBDOTkK Y29uZmlndXJlOjIzODMyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYt MiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToyMzgzMjogJD8gPSAw CmNvbmZpZ3VyZToyMzkxOTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1n MyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCmNvbmZp Z3VyZToyMzkxOTogJD8gPSAwCmNvbmZpZ3VyZToyMzkxOTogLi9jb25mdGVzdC5leGUKY29uZmln dXJlOjIzOTE5OiAkPyA9IDAKY29uZmlndXJlOjIzOTMxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6 MjM5NDI6IGNoZWNraW5nIHdoZXRoZXIgc3RkaW50Lmggd29ya3Mgd2l0aG91dCBJU08gQyBwcmVk ZWZpbmVzCmNvbmZpZ3VyZToyMzk3ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAt Z2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MjM5Nzg6 ICQ/ID0gMApjb25maWd1cmU6MjM5ODQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMzk5NTogY2hl Y2tpbmcgd2hldGhlciBzdGRpbnQuaCBoYXMgVUlOVE1BWF9XSURUSCBldGMuCmNvbmZpZ3VyZToy NDAzMTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdl bmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjE4NDoyNDogZXJyb3I6ICdVSU5UTUFY X1dJRFRIJyB1bmRlY2xhcmVkIGhlcmUgKG5vdCBpbiBhIGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFu ICdVSU5UTUFYX01BWCc/CiAgMTg0IHwgICAgICAgICAgICAgICBpbnQgaXcgPSBVSU5UTUFYX1dJ RFRIOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgogICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgVUlOVE1BWF9NQVgKY29uZmlndXJlOjI0MDMxOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwg I2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkg MQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAj ZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9I IDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUg SEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVf V0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZ U19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJ IDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFM TE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9S X0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNW RyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZp bmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5l IFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUg SEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcg MQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUg SEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUg SEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwg I2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9H SUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUg MQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5l IEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dO IDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lH TkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEK fCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwg I2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZp bmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURf QUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmlu ZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwg I2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1F IDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEK fCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQg MQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2Rl ZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZF X0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNU QVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNk ZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUg SEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVf VVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYg MQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lO Rk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5l IEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNF UENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05B TUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNf REVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQ KF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NF UChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAj ZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpN UF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVm aW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJ T05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgi CnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2Rl ZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25s b2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5l IEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEK fCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxM T0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5l IEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVE X1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9M T05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAgICAgICAgICAgLyogV29yayBpZiBidWls ZCBpcyBub3QgY2xlYW4uICAqLwp8ICAgICAgICAgICAgICAgI2RlZmluZSBfR0xfSlVTVF9JTkNM VURFX1NZU1RFTV9TVERJTlRfSCAxCnwgICAgICAgICAgICAgICAjaWZuZGVmIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18KfCAgICAgICAgICAgICAgICAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICAgICAgICAgICAgICAgI2VuZGlmCnwgICAgICAgICAg ICAgICAjaW5jbHVkZSA8c3RkaW50Lmg+CnwgCnwgICAvKiBCU0QvT1MgNC4wLjEgaGFzIGEgYnVn OiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1lLmg+IG11c3QgYmUKfCAgICAgIGluY2x1 ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAgI2lu Y2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NIQVJfSAp8ICAgIyBpbmNsdWRlIDxzdGRp by5oPgp8ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAjIGluY2x1ZGUgPHdjaGFyLmg+CnwgICAj ZW5kaWYKfCAKfCAgICAgICAgICAgICAgIGludCBpdyA9IFVJTlRNQVhfV0lEVEg7CnwgCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI0MDM2 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNDQ5MjogY2hlY2tpbmcgZm9yIDY0LWJpdCBvZmZfdApj b25maWd1cmU6MjQ1MTA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0y IC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjI0NTEwOiAkPyA9IDAK Y29uZmlndXJlOjI0NTE4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjQ1MjU6IGNoZWNraW5nIGZv ciA2NC1iaXQgc3Rfc2l6ZQpjb25maWd1cmU6MjQ1NDQ6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1j IC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRl c3QuYzoxNjg6NTI6IGVycm9yOiBpbnZhbGlkIHVzZSBvZiB1bmRlZmluZWQgdHlwZSAnc3RydWN0 IHN0YXQnCiAgMTY4IHwgICAgICAgICAgICAgICAgIGludCB2ZXJpZnlfc3Rfc2l6ZV9zaXplW3Np emVvZiAoYnVmLnN0X3NpemUpID49IDggPyAxIDogLTFdOwogICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KY29uZnRlc3QuYzoxNjc6Mjk6 IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2J1ZicgaXNuJ3Qga25vd24KICAxNjcgfCAgICAgICAg ICAgICAgICAgc3RydWN0IHN0YXQgYnVmOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn4KY29uZmlndXJlOjI0NTQ0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNz LyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05T X18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ VFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dz LW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEK fCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBI QVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lN QUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFH RVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFE U19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAx CnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZp bmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEK fCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBI QVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwg I2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1P RFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUg SEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5l IE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmlu ZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwy IDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8 ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFW RV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NF VExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T SUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJ TUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8 ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAx CnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5J VCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZp bmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksg MQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpF Uk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAx CnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5l IEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAx CnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVm aW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUg SEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3Jr IGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19D T0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVm aW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBO VUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9j ZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBE SVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAn OicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2Nf KSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChf Y18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNF ICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NU QUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBX SU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdI VCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAj ZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFU SU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAi LS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWls dCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElH TkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VY UFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFT SF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNk ZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhB VkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAgICAgICAgICAgICAgICAgc3RydWN0IHN0YXQgYnVmOwp8 ICAgICAgICAgICAgICAgICBpbnQgdmVyaWZ5X3N0X3NpemVfc2l6ZVtzaXplb2YgKGJ1Zi5zdF9z aXplKSA+PSA4ID8gMSA6IC0xXTsKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjQ1NTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI0NTY4 OiBjaGVja2luZyB3aGV0aGVyIG1lbW1lbSBpcyBkZWNsYXJlZApjb25maWd1cmU6MjQ1Njg6IGdj YyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAg Y29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5j OjIwNjoxMDogZXJyb3I6ICdtZW1tZW0nIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKTsgZGlkIHlvdSBtZWFuICdtZW1zZXQnPwogIDIwNiB8ICAgKHZvaWQpIG1lbW1lbTsK ICAgICAgfCAgICAgICAgICBefn5+fn4KICAgICAgfCAgICAgICAgICBtZW1zZXQKY29uZnRlc3Qu YzoyMDY6MTA6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9u bHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCmNvbmZpZ3VyZToyNDU2ODog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1Ag MQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2Rl ZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUg SEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRf QVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAx CnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNU RU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVm aW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBI QVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lU SF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9O VEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVN X01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQ X0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZF X1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAj ZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2Rl ZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVm aW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9K UEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVm aW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVm aW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZp bmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxu Igp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhB VkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RO QU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2Rl ZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVf R0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9H RVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVU RE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NU UlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRU TyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUg MQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAj ZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElH TkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNk ZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08g MQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVf TkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktB VCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VT U0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8 ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUg SEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZF X0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEK fCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVm aW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBI QVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJ TlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xB TkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2Rl ZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmlu ZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVM TF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5l IElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZ X1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FO WV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykp CnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19T RVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwg I2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJM RV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVy bS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8 ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9E b3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2Rl ZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVP RiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZF X0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2Rl ZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QK fCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xB U0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhB VkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYg SEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAh ZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVk ZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGlu dAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBtZW1tZW0KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAg ICh2b2lkKSBtZW1tZW07CnwgI2Vsc2UKfCAgICh2b2lkKSBtZW1tZW07CnwgI2VuZGlmCnwgI2Vu ZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNDU2ODogcmVzdWx0OiBu bwpjb25maWd1cmU6MjQ1Nzk6IGNoZWNraW5nIHdoZXRoZXIgbWVtcmNociBpcyBkZWNsYXJlZApj b25maWd1cmU6MjQ1Nzk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0y IC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24g J21haW4nOgpjb25mdGVzdC5jOjIwNzoxMDogZXJyb3I6ICdtZW1yY2hyJyB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiAnbWVtY2hyJz8KICAyMDcg fCAgICh2b2lkKSBtZW1yY2hyOwogICAgICB8ICAgICAgICAgIF5+fn5+fn4KICAgICAgfCAgICAg ICAgICBtZW1jaHIKY29uZnRlc3QuYzoyMDc6MTA6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVu dGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJz IGluCmNvbmZpZ3VyZToyNDU3OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwg I2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5l IFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9I UFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0 CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIK fCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVm aW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2Rl ZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9M SU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlU X0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9B UEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpF IDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5B QkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNk ZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2Rl ZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9Y UE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZp bmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVT X1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVf TElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJ VkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFW RV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwg I2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVm aW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VM RUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NB TEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQg MQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFT SyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAx CnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVm aW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNk ZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElO X0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8 ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhB VkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAj ZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEK fCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNk ZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZF X0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVP RkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNk ZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBI QVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVf U1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3Jr CnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNF VCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBI QVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9E RVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2Vz IDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNU T1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8 ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0g J1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8 fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rl di9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19P VkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9X U05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNv cHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmlu ZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAi eDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJl Zml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13 aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAx CnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNT SU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNf RElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5l IHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVm aW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VO U0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZ U19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBT VERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+ CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVk IFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1v cnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFp biAoKQp8IHsKfCAjaWZuZGVmIG1lbXJjaHIKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAgICh2b2lk KSBtZW1yY2hyOwp8ICNlbHNlCnwgICAodm9pZCkgbWVtcmNocjsKfCAjZW5kaWYKfCAjZW5kaWYK fCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI0NTc5OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToyNDU5NDogY2hlY2tpbmcgd2hldGhlciA8bGltaXRzLmg+IGRlZmluZXMgTUlOIGFu ZCBNQVgKY29uZmlndXJlOjI0NjExOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1n ZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MTY5OjIx OiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnTUlOJyBbLVdpbXBs aWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAxNjkgfCAgICAgICAgICAgICBpbnQgeCA9IE1J TiAoNDIsIDE3KTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fgpjb25mdGVzdC5jOjE2 OToyMTogZXJyb3I6IGluaXRpYWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbnN0YW50CmNvbmZpZ3Vy ZToyNDYxMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlM X1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVS UyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8 ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BF Tl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBH Q0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhB VkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFM TE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BX RF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9I IDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwg I2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZp bmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZp bmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2Rl ZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9K U09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElG WSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElN IDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZp bmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElC IDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRs bCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0gg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VG RklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAj ZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZF X0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklO VCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVm aW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZp bmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmlu ZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBI QVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VU U09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9M T0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJF U1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFW RV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVf UkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhB VkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9M Q0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8 ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2Rl ZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9Q U0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBF IDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwg I2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBI QVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmlu ZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVf VCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoi CnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5l IFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycK fCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNf RElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVm aW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0Vf U0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2Rl ZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5E TElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVm aW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykg MjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURF UiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1t aW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZX aW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNv bXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBI QVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2Rl ZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9P VCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9f cmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZP TExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAj ZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdf TE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfTUVNUkNIUiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxsaW1pdHMu aD4KfCAgICAgICAgICAgICBpbnQgeCA9IE1JTiAoNDIsIDE3KTsKfCBpbnQKfCBtYWluICgpCnwg ewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjQ2MTg6IHJlc3VsdDogbm8K Y29uZmlndXJlOjI0NjMxOiBjaGVja2luZyB3aGV0aGVyIDxzeXMvcGFyYW0uaD4gZGVmaW5lcyBN SU4gYW5kIE1BWApjb25maWd1cmU6MjQ2NDg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAt TzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzox Njk6MjE6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdNSU4nIFst V2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIDE2OSB8ICAgICAgICAgICAgIGludCB4 ID0gTUlOICg0MiwgMTcpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgXn5+CmNvbmZ0ZXN0 LmM6MTY5OjIxOiBlcnJvcjogaW5pdGlhbGl6ZXIgZWxlbWVudCBpcyBub3QgY29uc3RhbnQKY29u ZmlndXJlOjI0NjQ4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxU X1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVm aW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZp bmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFW RV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhB VkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BB UkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVG U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19I IDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwg I2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwg I2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEK fCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBI QVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVf Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVT RV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwg I2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZF X1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklY ICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NK SVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElT UF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYg MQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5l IEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFW RV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8 ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwg I2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2Rl ZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAj ZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVm aW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFW RV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBI QVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVf QUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmlu ZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5P TklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUg SEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZp bmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBI QVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRB VCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEK fCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBI QVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNX Q1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5L IDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVm aW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAj ZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJT VEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAi TlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNk ZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQ ICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmlu ZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8 ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RF VklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIK fCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9X X0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8 ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0 IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1f SEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQt dzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hv bWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0 aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVm aW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEK fCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5D VF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJp Y3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNU QVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUg MAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURf TE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9NRU1SQ0hSIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5 cy9wYXJhbS5oPgp8ICAgICAgICAgICAgIGludCB4ID0gTUlOICg0MiwgMTcpOwp8IGludAp8IG1h aW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNDY1NTogcmVz dWx0OiBubwpjb25maWd1cmU6MjQ2OTc6IGNoZWNraW5nIHdoZXRoZXIgdGltZV90IGlzIHNpZ25l ZApjb25maWd1cmU6MjQ3MTQ6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2Fy Zi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjI0NzE0OiAkPyA9 IDAKY29uZmlndXJlOjI0NzIxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjQ3Mjk6IGNoZWNraW5n IHdoZXRoZXIgYWxhcm0gaXMgZGVjbGFyZWQKY29uZmlndXJlOjI0NzI5OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MjQ3NDY6IGNoZWNraW5nIGZvciB3b3JraW5nIG1rdGltZQpjb25maWd1cmU6MjQ5 ODI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNDk4NTogY2hlY2tpbmcgd2hldGhlciBzdHJ1Y3Qg dG0gaXMgaW4gc3lzL3RpbWUuaCBvciB0aW1lLmgKY29uZmlndXJlOjI1MDA1OiBnY2MgLUkgLi4v c3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0 LmMgPiY1CmNvbmZpZ3VyZToyNTAwNTogJD8gPSAwCmNvbmZpZ3VyZToyNTAxMjogcmVzdWx0OiB0 aW1lLmgKY29uZmlndXJlOjI1MDIwOiBjaGVja2luZyBmb3Igc3RydWN0IHRtLnRtX3pvbmUKY29u ZmlndXJlOjI1MDIwOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAt bXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoxNzg6MTM6IGVycm9yOiAnc3RydWN0IHRtJyBoYXMgbm8gbWVtYmVy IG5hbWVkICd0bV96b25lJzsgZGlkIHlvdSBtZWFuICd0bV9tb24nPwogIDE3OCB8IGlmIChhY19h Z2dyLnRtX3pvbmUpCiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+fgogICAgICB8ICAgICAgICAg ICAgIHRtX21vbgpjb25maWd1cmU6MjUwMjA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lP TlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRf QklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRv d3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0gg MQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5l IEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9T WVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf SU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJF QURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExT IDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2Rl ZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMg MQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5l IEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEK fCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUg TU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmlu ZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZp bmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVm aW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhN TDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAx CnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBI QVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVf U0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VU UkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJ VElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAx CnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9S IDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9O UCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9J TklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2Rl ZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElO SyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9C WkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFU IDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZp bmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9H RVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUy IDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNk ZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmlu ZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZv cmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZP X0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNk ZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5l IE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnBy b2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5l IERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09 ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChf Y18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAg KF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJ Q0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVf U1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5l IFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJ R0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8 ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VS QVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05T ICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1 aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FM SUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRf RVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NM QVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwg I2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUg SEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05F RCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHRpbWUuaD4KfCAKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgdG0gYWNfYWdncjsKfCBpZiAoYWNfYWdnci50 bV96b25lKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjUw MjA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5l cmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25m dGVzdC5jOjE3ODoyMDogZXJyb3I6ICdzdHJ1Y3QgdG0nIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3Rt X3pvbmUnOyBkaWQgeW91IG1lYW4gJ3RtX21vbic/CiAgMTc4IHwgaWYgKHNpemVvZiBhY19hZ2dy LnRtX3pvbmUpCiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KICAgICAgfCAgICAg ICAgICAgICAgICAgICAgdG1fbW9uCmNvbmZpZ3VyZToyNTAyMDogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9G SUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1f VFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBI QVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP Q0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAj ZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUg SEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9U SUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9T Q1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlog MQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhB VkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAx CnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU IDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09N UCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9Q TkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5l IEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhB VkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEK fCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmlu ZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZF X1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9H QUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVm aW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9T QlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBI QVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZF X0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05U TCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNC TEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwg I2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhB VkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9X SURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMg MQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNk ZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNv cwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2Nf KSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9 PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElS RUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxU X1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNk ZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoq Lwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2Rl ZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1B Q1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09O RklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0 aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9B VFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZF X1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmlu ZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRI X1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAx CnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1F X1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8dGltZS5oPgp8 IAp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCB0bSBhY19hZ2dyOwp8IGlm IChzaXplb2YgYWNfYWdnci50bV96b25lKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MjUwMjA6IHJlc3VsdDogbm8KY29uZmlndXJlOjI1MDM4OiBjaGVja2lu ZyB3aGV0aGVyIHR6bmFtZSBpcyBkZWNsYXJlZApjb25maWd1cmU6MjUwMzg6IGdjYyAtSSAuLi9z cmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3Qu YyA+JjUKY29uZmlndXJlOjI1MDM4OiAkPyA9IDAKY29uZmlndXJlOjI1MDM4OiByZXN1bHQ6IHll cwpjb25maWd1cmU6MjUwNTA6IGNoZWNraW5nIGZvciB0em5hbWUKY29uZmlndXJlOjI1MDcwOiBn Y2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10 dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgID4mNSAKY29uZmlndXJlOjI1MDcwOiAkPyA9IDAK Y29uZmlndXJlOjI1MDc4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjUwODg6IGNoZWNraW5nIGZv ciBzdHJ1Y3QgdG0udG1fZ210b2ZmCmNvbmZpZ3VyZToyNTA4ODogZ2NjIC1JIC4uL3NyYy9udC9p bmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpj b25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MTc4OjEyOiBlcnJvcjog J3N0cnVjdCB0bScgaGFzIG5vIG1lbWJlciBuYW1lZCAndG1fZ210b2ZmJwogIDE3OCB8IGlmIChh Y19hZ2dyLnRtX2dtdG9mZikKICAgICAgfCAgICAgICAgICAgIF4KY29uZmlndXJlOjI1MDg4OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw czovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAx CnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9B UEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEK fCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RF TV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZp bmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhB VkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRI X1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05U R1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1f TUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBf Rk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVf UlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNk ZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVm aW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZp bmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQ RUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZp bmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4i CnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFW RV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5B TUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVm aW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRE T1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RS U0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRP IDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAx CnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdO RURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2Rl ZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAx CnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9O QU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FU IDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNT QVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwg I2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBI QVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVf TFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8 ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZp bmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhB VkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklO VEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFO R0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVm aW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5l IFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxM X05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUg SVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllf U0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5Z X1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkK fCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NF VEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAj ZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxF X0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJt LmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwg I2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rv d25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVm aW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9G IDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVf QUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVm aW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFT SEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFW RV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hS IDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8dGltZS5oPgp8IAp8IGludAp8IG1h aW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCB0bSBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLnRtX2dt dG9mZikKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI1MDg4 OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJp YyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRl c3QuYzoxNzg6MTk6IGVycm9yOiAnc3RydWN0IHRtJyBoYXMgbm8gbWVtYmVyIG5hbWVkICd0bV9n bXRvZmYnCiAgMTc4IHwgaWYgKHNpemVvZiBhY19hZ2dyLnRtX2dtdG9mZikKICAgICAgfCAgICAg ICAgICAgICAgICAgICBeCmNvbmZpZ3VyZToyNTA4ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVS IDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhU RU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09G RlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAi d2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NP VU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VS Q0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNk ZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05B VElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZF X0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5l IFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9H TlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEK fCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExf QkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNk ZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENN UzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2Rl ZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAj ZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwg I2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8 ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVf TElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFO RE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVm aW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg SEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFW RV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BU SFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZF X1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZG Uk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RS RVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRO QU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhB VkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5X SU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEK fCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JF QURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJ Q0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNI TU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwg I2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBI QVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVf UElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAx CnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAj ZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmlu ZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFO R0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAx CnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNk ZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUg c3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNk ZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9j XykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycg fHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZ X1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5E X0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUg SEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNk ZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBD T1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09O RklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09Q VElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNv bXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJV VEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRF TUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VC TEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktT IDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2Rl ZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01F TU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNf U0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf VFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHRpbWUuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1 Y3QgdG0gYWNfYWdncjsKfCBpZiAoc2l6ZW9mIGFjX2FnZ3IudG1fZ210b2ZmKQp8IHJldHVybiAw Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjUwODg6IHJlc3VsdDogbm8KY29u ZmlndXJlOjI1MTExOiBjaGVja2luZyB3aGV0aGVyIDxzeXMvc2VsZWN0Lmg+IGlzIHNlbGYtY29u dGFpbmVkCmNvbmZpZ3VyZToyNTEyODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAt Z2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjE3Mjox MDogZmF0YWwgZXJyb3I6IHN5cy9zZWxlY3QuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQog IDE3MiB8ICNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+ fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjI1MTI4OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmlu ZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf TkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNk ZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5l IFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAj ZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9E SVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAj ZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEK fCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZF UlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwg I2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFW RV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9U T09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9I QVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNk ZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9N T0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9M SUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05B VElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmlu ZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8 ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVf VFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0la RSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAx CnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAj ZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEK fCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVm aW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFW RV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0Mg MAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZF X19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmlu ZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAj ZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVm aW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNk ZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBI QVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5D IDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8 ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUg SEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9T VFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVO U0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNk ZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05M X1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVf U09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIg JzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHct PnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNF X1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykg KChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18p IChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5l IERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JL UyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERP U19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFE IDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2Rl ZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBF TUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9l bWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVf U1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVm aW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEK fCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNf UkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUg SEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJ TksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xP TkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVm aW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3NlbGVjdC5oPgp8IGludAp8IG1haW4gKCkK fCB7Cnwgc3RydWN0IHRpbWV2YWwgYjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjI1MTkwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNTMzMDogY2hlY2tpbmcgZm9yIGlubGluZQpj b25maWd1cmU6MjUzNDY6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0y IC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjI1MzQ2OiAkPyA9IDAK Y29uZmlndXJlOjI1MzU0OiByZXN1bHQ6IGlubGluZQpjb25maWd1cmU6MjUzNzU6IGNoZWNraW5n IGZvciBzdGRsaWIuaApjb25maWd1cmU6MjUzNzU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNTM4 NTogY2hlY2tpbmcgZm9yIEdOVSBsaWJjIGNvbXBhdGlibGUgbWFsbG9jCmNvbmZpZ3VyZToyNTQw OTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0y IC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCmNvbmZpZ3VyZToyNTQwOTogJD8g PSAwCmNvbmZpZ3VyZToyNTQwOTogLi9jb25mdGVzdC5leGUKY29uZmlndXJlOjI1NDA5OiAkPyA9 IDAKY29uZmlndXJlOjI1NDE5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjU0MzQ6IGNoZWNraW5n IHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBMaWJyYXJ5ID49IDIuMSBvciB1Q2xpYmMK Y29uZnRlc3QuYzoxNzU6MTA6IGZhdGFsIGVycm9yOiBmZWF0dXJlcy5oOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CiAgMTc1IHwgI2luY2x1ZGUgPGZlYXR1cmVzLmg+CiAgICAgIHwgICAgICAg ICAgXn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuDQpjb25maWd1cmU6MjU0NjQ6 IHJlc3VsdDogbm8KY29uZmlndXJlOjI1NDc1OiBjaGVja2luZyBmb3Igc2lnc2V0X3QKY29uZmln dXJlOjI1NDc1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1 bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWlu JzoKY29uZnRlc3QuYzoxODM6MTM6IGVycm9yOiAnc2lnc2V0X3QnIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFuICdfc2lnc2V0X3QnPwogIDE4MyB8 IGlmIChzaXplb2YgKHNpZ3NldF90KSkKICAgICAgfCAgICAgICAgICAgICBefn5+fn5+fgogICAg ICB8ICAgICAgICAgICAgIF9zaWdzZXRfdApjb25mdGVzdC5jOjE4MzoxMzogbm90ZTogZWFjaCB1 bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0 aW9uIGl0IGFwcGVhcnMgaW4KY29uZmlndXJlOjI1NDc1OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBF bWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1Q RVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19F WFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVf T0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBF ICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVf U09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNP VVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwg I2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVf TkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhB VkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZp bmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZF X0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkg MQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9M TF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwg I2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9M Q01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAj ZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8 ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEK fCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAx CnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFW RV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9S QU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNk ZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmlu ZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBI QVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVf UFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhB VkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVD VkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9T VFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NF VE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUg SEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9V TldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksg MQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVf UkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQ TElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9G Q0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEK fCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5l IEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFW RV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5L IDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8 ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVm aW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9M QU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRI IDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwg I2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmlu ZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwg I2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgo X2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcv JyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RP UllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09V TkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmlu ZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwg I2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5l IENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19D T05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdf T1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUt Y29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJ QlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RB VEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERP VUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09S S1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9O X0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAj ZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf TUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9J U19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgCnwgICAgICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgICAgIC8qIE1pbmd3IGRlZmlu ZXMgc2lnc2V0X3Qgbm90IGluIDxzaWduYWwuaD4sIGJ1dCBpbiA8c3lzL3R5cGVzLmg+LiAgKi8K fCAgICAgICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCBpZiAoc2l6ZW9mIChzaWdzZXRfdCkpCnwgCSByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjI1NDc1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNTUxOTogY2hlY2tp bmcgZm9yIHdjaGFyX3QKY29uZmlndXJlOjI1NTM2OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAt ZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy ZToyNTUzNjogJD8gPSAwCmNvbmZpZ3VyZToyNTU0MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI1 NzMyOiBjaGVja2luZyB3aGV0aGVyIHN0cm5sZW4gaXMgZGVjbGFyZWQKY29uZmlndXJlOjI1NzMy OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJp YyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToyNTczMjogJD8gPSAwCmNvbmZpZ3VyZToyNTcz MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI1NzQ1OiBjaGVja2luZyB3aGV0aGVyIHN0cnRvaW1h eCBpcyBkZWNsYXJlZApjb25maWd1cmU6MjU3NDU6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1n MyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl OjI1NzQ1OiAkPyA9IDAKY29uZmlndXJlOjI1NzQ1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjU3 NjA6IGNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wCmNvbmZpZ3VyZToyNTc5OTog cmVzdWx0OiAvdXNyL2Jpbi9ta2RpciAtcApjb25maWd1cmU6MjU4MDI6IGNoZWNraW5nIHdoZXRo ZXIgc3RhdCBmaWxlLW1vZGUgbWFjcm9zIGFyZSBicm9rZW4KY29uZmlndXJlOjI1ODI5OiBnY2Mg LUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToyNTgyOTogJD8gPSAwCmNvbmZpZ3VyZToyNTgzNjogcmVz dWx0OiBubwpjb25maWd1cmU6MjU5NDU6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdGltZXNwZWMgaW4g PHRpbWUuaD4KY29uZmlndXJlOjI1OTYyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8y IC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToyNTk2 MjogJD8gPSAwCmNvbmZpZ3VyZToyNTk2OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI2MTU2OiBj aGVja2luZyB3aGV0aGVyIGNsZWFyZXJyX3VubG9ja2VkIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToy NjE1NjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdl bmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNv bmZ0ZXN0LmM6MjE4OjEwOiBlcnJvcjogJ2NsZWFyZXJyX3VubG9ja2VkJyB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAyMTggfCAgICh2b2lkKSBjbGVhcmVycl91bmxv Y2tlZDsKICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgpjb25mdGVzdC5jOjIxODox MDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNl IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZmlndXJlOjI2MTU2OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVm aW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEK fCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFW RV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NI QVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9D IDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JV RkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAx CnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUg SEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFW RV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8 ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFW RV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFW RV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2Rl ZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYg MQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8 ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhB VkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdF U0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1J VCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEK fCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFM IDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAj ZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUg SEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxM T0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBI QVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2Rl ZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEK fCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAj ZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8 ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmlu ZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZT WU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQg MQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFW RV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJ TUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8 ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9f X05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhB VkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENI QVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUg cHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVW SUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9j XykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChf Y18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVm aW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9X T1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5l IERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05S RUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwg I2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmlu ZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fk cy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhB VkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAj ZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NB IDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZV TkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZ TUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05H X0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAj ZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVm aW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNf VFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1RE Q19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8 ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cnwg IyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBT VERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5 Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1haW4g KCkKfCB7CnwgI2lmbmRlZiBjbGVhcmVycl91bmxvY2tlZAp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 ICAgKHZvaWQpIGNsZWFyZXJyX3VubG9ja2VkOwp8ICNlbHNlCnwgICAodm9pZCkgY2xlYXJlcnJf dW5sb2NrZWQ7CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToyNjE1NjogcmVzdWx0OiBubwpjb25maWd1cmU6MjYxNjc6IGNoZWNraW5nIHdoZXRo ZXIgZmVvZl91bmxvY2tlZCBpcyBkZWNsYXJlZApjb25maWd1cmU6MjYxNjc6IGdjYyAtSSAuLi9z cmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3Qu YyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIxOToxMDog ZXJyb3I6ICdmZW9mX3VubG9ja2VkJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikKICAyMTkgfCAgICh2b2lkKSBmZW9mX3VubG9ja2VkOwogICAgICB8ICAgICAgICAgIF5+ fn5+fn5+fn5+fn4KY29uZnRlc3QuYzoyMTk6MTA6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVu dGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJz IGluCmNvbmZpZ3VyZToyNjE2NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwg I2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5l IFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9I UFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0 CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIK fCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVm aW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2Rl ZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9M SU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlU X0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9B UEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpF IDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5B QkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNk ZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2Rl ZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9Y UE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZp bmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVT X1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVf TElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJ VkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFW RV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwg I2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVm aW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VM RUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NB TEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQg MQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFT SyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAx CnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVm aW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNk ZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElO X0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8 ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhB VkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAj ZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEK fCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNk ZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZF X0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVP RkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNk ZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBI QVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVf U1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3Jr CnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNF VCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBI QVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9E RVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2Vz IDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNU T1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8 ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0g J1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8 fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rl di9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19P VkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9X U05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNv cHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmlu ZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAi eDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJl Zml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13 aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAx CnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNT SU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNf RElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5l IHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVm aW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VO U0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAj ZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg TUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2Rl ZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tF RCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRl ZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8 c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxz dGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlm ICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNs dWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwg aW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIGZlb2ZfdW5sb2NrZWQKfCAjaWZkZWYgX19jcGx1 c3BsdXMKfCAgICh2b2lkKSBmZW9mX3VubG9ja2VkOwp8ICNlbHNlCnwgICAodm9pZCkgZmVvZl91 bmxvY2tlZDsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjI2MTY3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjE3ODogY2hlY2tpbmcgd2hldGhl ciBmZXJyb3JfdW5sb2NrZWQgaXMgZGVjbGFyZWQKY29uZmlndXJlOjI2MTc4OiBnY2MgLUkgLi4v c3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0 LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyMjA6MTA6 IGVycm9yOiAnZmVycm9yX3VubG9ja2VkJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICAyMjAgfCAgICh2b2lkKSBmZXJyb3JfdW5sb2NrZWQ7CiAgICAgIHwgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MjIwOjEwOiBub3RlOiBlYWNoIHVuZGVjbGFy ZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQg YXBwZWFycyBpbgpjb25maWd1cmU6MjYxNzg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lP TlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRf QklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRv d3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0gg MQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5l IEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9T WVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf SU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJF QURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExT IDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2Rl ZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMg MQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5l IEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEK fCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUg TU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmlu ZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZp bmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVm aW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhN TDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAx CnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBI QVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVf U0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VU UkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJ VElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAx CnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9S IDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9O UCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9J TklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2Rl ZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElO SyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9C WkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFU IDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZp bmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9H RVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUy IDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNk ZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmlu ZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZv cmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZP X0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNk ZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5l IE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnBy b2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5l IERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09 ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChf Y18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAg KF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJ Q0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVf U1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5l IFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJ R0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8 ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VS QVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05T ICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1 aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FM SUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRf RVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NM QVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwg I2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUg SEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05F RCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFN RSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVgg MQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQ RVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT X1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNl bHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBl bmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERD X0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+ CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf SU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf VU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1haW4gKCkK fCB7CnwgI2lmbmRlZiBmZXJyb3JfdW5sb2NrZWQKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAgICh2 b2lkKSBmZXJyb3JfdW5sb2NrZWQ7CnwgI2Vsc2UKfCAgICh2b2lkKSBmZXJyb3JfdW5sb2NrZWQ7 CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToy NjE3ODogcmVzdWx0OiBubwpjb25maWd1cmU6MjYxODk6IGNoZWNraW5nIHdoZXRoZXIgZmZsdXNo X3VubG9ja2VkIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToyNjE4OTogZ2NjIC1JIC4uL3NyYy9udC9p bmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpj b25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjIxOjEwOiBlcnJvcjog J2ZmbHVzaF91bmxvY2tlZCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p OyBkaWQgeW91IG1lYW4gJ19mZmx1c2hfbm9sb2NrJz8KICAyMjEgfCAgICh2b2lkKSBmZmx1c2hf dW5sb2NrZWQ7CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CiAgICAgIHwgICAgICAg ICAgX2ZmbHVzaF9ub2xvY2sKY29uZnRlc3QuYzoyMjE6MTA6IG5vdGU6IGVhY2ggdW5kZWNsYXJl ZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBh cHBlYXJzIGluCmNvbmZpZ3VyZToyNjE4OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFj cy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAj ZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9O U19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVm aW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9C SVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93 cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEK fCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAx CnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUg SEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZ U19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9J TUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBB R0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVB RFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMg MQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVm aW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAx CnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUg SEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8 ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBN T0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5l IEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmlu ZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZp bmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1M MiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEK fCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhB VkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9T RVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRS TElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURf U0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElU SU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEK fCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1Ig MQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05Q IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19C VUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lO SVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVm aW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5L IDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0Ja RVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQg MQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmlu ZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dF VFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIg MQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2Rl ZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5l IEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9y ayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9f Q09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2Rl ZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUg TlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJv Y2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUg RElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0g JzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9j XykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAo X2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklD RSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9T VEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUg V0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklH SFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwg I2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJB VElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMg Ii0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVp bHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJ R05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9F WFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xB U0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAj ZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBI QVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVE IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1F IDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAx CnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5 cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUg PHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9T VERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQg SEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1 ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVk ZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1 ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1 ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRl IDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZm5kZWYgZmZsdXNo X3VubG9ja2VkCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgICAodm9pZCkgZmZsdXNoX3VubG9ja2Vk Owp8ICNlbHNlCnwgICAodm9pZCkgZmZsdXNoX3VubG9ja2VkOwp8ICNlbmRpZgp8ICNlbmRpZgp8 IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjYxODk6IHJlc3VsdDogbm8KY29u ZmlndXJlOjI2MjAwOiBjaGVja2luZyB3aGV0aGVyIGZnZXRzX3VubG9ja2VkIGlzIGRlY2xhcmVk CmNvbmZpZ3VyZToyNjIwMDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJm LTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlv biAnbWFpbic6CmNvbmZ0ZXN0LmM6MjIyOjEwOiBlcnJvcjogJ2ZnZXRzX3VubG9ja2VkJyB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAyMjIgfCAgICh2b2lkKSBmZ2V0 c191bmxvY2tlZDsKICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fgpjb25mdGVzdC5jOjIy MjoxMDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBv bmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZmlndXJlOjI2MjAwOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwg I2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkg MQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAj ZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9I IDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUg SEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVf V0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZ U19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJ IDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFM TE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9S X0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNW RyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZp bmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5l IFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUg SEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcg MQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUg SEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUg SEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwg I2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9H SUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUg MQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5l IEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dO IDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lH TkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEK fCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwg I2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZp bmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURf QUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmlu ZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwg I2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1F IDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEK fCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQg MQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2Rl ZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZF X0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNU QVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNk ZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUg SEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVf VVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYg MQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lO Rk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5l IEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNF UENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05B TUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNf REVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQ KF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NF UChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAj ZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpN UF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVm aW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJ T05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgi CnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2Rl ZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25s b2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5l IEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEK fCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxM T0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5l IEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVE X1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9M T05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAK fCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAj ZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G RU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNs dWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBp bmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVm IEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBk ZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwg IyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAj IGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwg IyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwg IyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMg aW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVm IGZnZXRzX3VubG9ja2VkCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgICAodm9pZCkgZmdldHNfdW5s b2NrZWQ7CnwgI2Vsc2UKfCAgICh2b2lkKSBmZ2V0c191bmxvY2tlZDsKfCAjZW5kaWYKfCAjZW5k aWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI2MjAwOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToyNjIxMTogY2hlY2tpbmcgd2hldGhlciBmcHV0Y191bmxvY2tlZCBpcyBkZWNs YXJlZApjb25maWd1cmU6MjYyMTE6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdk d2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVu Y3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIyMzoxMDogZXJyb3I6ICdmcHV0Y191bmxvY2tlZCcg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4gJ19w dXRjX25vbG9jayc/CiAgMjIzIHwgICAodm9pZCkgZnB1dGNfdW5sb2NrZWQ7CiAgICAgIHwgICAg ICAgICAgXn5+fn5+fn5+fn5+fn4KICAgICAgfCAgICAgICAgICBfcHV0Y19ub2xvY2sKY29uZnRl c3QuYzoyMjM6MTA6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVk IG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCmNvbmZpZ3VyZToyNjIx MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9Q T1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwg I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NL RVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElO VCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1T WVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAj ZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVf V0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFW RV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lT VEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9N TUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBI QVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEK fCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwg I2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAj ZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFW RV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAj ZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAj ZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNk ZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIu ZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5l IEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhP U1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwg I2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhB VkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFW RV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9T SFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZF X1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NF TkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05B TUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEK fCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9B TElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8 ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VF S08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJ TEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJ TktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFD Q0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0Qg MQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZp bmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNU IDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAj ZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmlu ZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NO UFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZF X0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwg I2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2Rl ZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJf RlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVm aW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNU T1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElT X0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9j XykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBH Q19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAx CnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVT QUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMy dGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMy Igp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2Vy MC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwg I2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZ UEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBI QVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwg I2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJp Y3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1Nf U0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5l IEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19J TlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVN UkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1F IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVM TCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFU IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBl cy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9z dGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGli Lmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJf SAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9N RU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0 cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3Ry aW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGlu dHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0 ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlz dGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZm5kZWYgZnB1dGNfdW5sb2Nr ZWQKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAgICh2b2lkKSBmcHV0Y191bmxvY2tlZDsKfCAjZWxz ZQp8ICAgKHZvaWQpIGZwdXRjX3VubG9ja2VkOwp8ICNlbmRpZgp8ICNlbmRpZgp8IAp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjYyMTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI2 MjIyOiBjaGVja2luZyB3aGV0aGVyIGZwdXRzX3VubG9ja2VkIGlzIGRlY2xhcmVkCmNvbmZpZ3Vy ZToyNjIyMjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5l PWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6 CmNvbmZ0ZXN0LmM6MjI0OjEwOiBlcnJvcjogJ2ZwdXRzX3VubG9ja2VkJyB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAyMjQgfCAgICh2b2lkKSBmcHV0c191bmxvY2tl ZDsKICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fgpjb25mdGVzdC5jOjIyNDoxMDogbm90 ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBl YWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZmlndXJlOjI2MjIyOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBI QVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVU QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZ U1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVm aW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJF TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJ TUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVm aW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAj ZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMg MQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2Rl ZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9X MzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09M S0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJG QlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZp bmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RV TEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJH Q0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElW RV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBI QVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNk ZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZp bmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJV TkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAx CnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwg I2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVm aW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAj ZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5l IEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBI QVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9Q VEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8 ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBI QVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVm aW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5l IEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZp bmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZF X0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEK fCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNk ZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFW RV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJU T0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FU IDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZp bmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BB UEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09D S0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsn CnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3 X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NF UChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChf Y18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJ U19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERF RkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAx CnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19O VCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEK fCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmlu ZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFD U19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFj cy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RS VUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5l IEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAj ZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVB TFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFW RV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdf SU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5l IFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhB VkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8 ICNpZm5kZWYgZnB1dHNfdW5sb2NrZWQKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAgICh2b2lkKSBm cHV0c191bmxvY2tlZDsKfCAjZWxzZQp8ICAgKHZvaWQpIGZwdXRzX3VubG9ja2VkOwp8ICNlbmRp Zgp8ICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjYyMjI6IHJl c3VsdDogbm8KY29uZmlndXJlOjI2MjMzOiBjaGVja2luZyB3aGV0aGVyIGZyZWFkX3VubG9ja2Vk IGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToyNjIzMzogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWcz IC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5j OiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjI1OjEwOiBlcnJvcjogJ2ZyZWFkX3Vu bG9ja2VkJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3Ug bWVhbiAnX2ZyZWFkX25vbG9ja19zJz8KICAyMjUgfCAgICh2b2lkKSBmcmVhZF91bmxvY2tlZDsK ICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fgogICAgICB8ICAgICAgICAgIF9mcmVhZF9u b2xvY2tfcwpjb25mdGVzdC5jOjIyNToxMDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZp ZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4K Y29uZmlndXJlOjI2MjMzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1RE Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNk ZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmlu ZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BF TkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhf QUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAj ZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNk ZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5l IEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19D REVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlU U19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8 ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAx CnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAx CnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8 ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVE IDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmlu ZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJ TEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5l IFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAx CnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBI QVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VG RklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJH Q0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9F TElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJ RkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVm aW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUg SEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1Qg MQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAx CnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwg I2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEK fCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAj ZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUg SEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmlu ZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJB TUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2Rl ZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9D QU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZp bmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNk ZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmlu ZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNU QVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZ IDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmlu ZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVf SVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1M SU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAj ZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEK fCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVf TUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklD RSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8 ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllf U0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2Rl ZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwn KQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElT X0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2Rz cCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJG TE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQg MQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJp Z2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRF Uk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZf NjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9 L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgt bmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAj ZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05T IDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNU SU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVz dHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg TFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1P REUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdO RURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZp bmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxM T0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5l IF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G RVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQ VVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZ U19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBT VERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+ CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVk IFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1v cnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFp biAoKQp8IHsKfCAjaWZuZGVmIGZyZWFkX3VubG9ja2VkCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg ICAodm9pZCkgZnJlYWRfdW5sb2NrZWQ7CnwgI2Vsc2UKfCAgICh2b2lkKSBmcmVhZF91bmxvY2tl ZDsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjI2MjMzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjI0NDogY2hlY2tpbmcgd2hldGhlciBmd3Jp dGVfdW5sb2NrZWQgaXMgZGVjbGFyZWQKY29uZmlndXJlOjI2MjQ0OiBnY2MgLUkgLi4vc3JjL250 L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1 CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyMjY6MTA6IGVycm9y OiAnZndyaXRlX3VubG9ja2VkJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bik7IGRpZCB5b3UgbWVhbiAnX2Z3cml0ZV9ub2xvY2snPwogIDIyNiB8ICAgKHZvaWQpIGZ3cml0 ZV91bmxvY2tlZDsKICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KICAgICAgfCAgICAg ICAgICBfZndyaXRlX25vbG9jawpjb25mdGVzdC5jOjIyNjoxMDogbm90ZTogZWFjaCB1bmRlY2xh cmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0 IGFwcGVhcnMgaW4KY29uZmlndXJlOjI2MjQ0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJ T05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VU X0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5k b3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9I IDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZF X0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VU UEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhS RUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRM UyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNk ZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJT IDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmlu ZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAx CnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5l IE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVm aW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2Rl ZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJY TUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00g MQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUg SEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZF X1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00g MQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJP UiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVf TlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRf SU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNk ZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJ TksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRf QlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RB VCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVm aW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBF MiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAj ZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZp bmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZm b3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAj ZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmlu ZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJw cm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmlu ZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9 PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAo X2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQ IChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVW SUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZF X1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmlu ZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlS SUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIK fCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdV UkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9O UyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9i dWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9B TElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5U X0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9T TEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8 ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5l IEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVN IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdO RUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5B TUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJS X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNf SAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NU QVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFE RVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNl CnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRp Zgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hF QURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cnwg IyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RS SU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5U VFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5J U1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1haW4gKCkKfCB7 CnwgI2lmbmRlZiBmd3JpdGVfdW5sb2NrZWQKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAgICh2b2lk KSBmd3JpdGVfdW5sb2NrZWQ7CnwgI2Vsc2UKfCAgICh2b2lkKSBmd3JpdGVfdW5sb2NrZWQ7Cnwg I2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjI0 NDogcmVzdWx0OiBubwpjb25maWd1cmU6MjYyNTU6IGNoZWNraW5nIHdoZXRoZXIgZ2V0Y191bmxv Y2tlZCBpcyBkZWNsYXJlZApjb25maWd1cmU6MjYyNTU6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1j IC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRl c3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIyNzoxMDogZXJyb3I6ICdnZXRj X3VubG9ja2VkJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAyMjcg fCAgICh2b2lkKSBnZXRjX3VubG9ja2VkOwogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn4K Y29uZnRlc3QuYzoyMjc6MTA6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJl cG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCmNvbmZpZ3Vy ZToyNjI1NTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlM X1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVS UyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8 ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BF Tl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBH Q0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhB VkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFM TE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BX RF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9I IDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwg I2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZp bmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZp bmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2Rl ZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9K U09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElG WSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElN IDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZp bmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElC IDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRs bCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0gg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VG RklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAj ZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZF X0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklO VCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVm aW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZp bmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmlu ZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBI QVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VU U09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9M T0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJF U1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFW RV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVf UkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhB VkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9M Q0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8 ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2Rl ZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9Q U0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBF IDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwg I2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBI QVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmlu ZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVf VCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoi CnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5l IFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycK fCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNf RElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVm aW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0Vf U0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2Rl ZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5E TElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVm aW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykg MjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURF UiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1t aW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZX aW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNv bXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBI QVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2Rl ZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9P VCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9f cmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZP TExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAj ZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdf TE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVf VFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNf Tk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU Uk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NU RF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NL RUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBnZXRjX3VubG9ja2VkCnwgI2lmZGVmIF9fY3Bs dXNwbHVzCnwgICAodm9pZCkgZ2V0Y191bmxvY2tlZDsKfCAjZWxzZQp8ICAgKHZvaWQpIGdldGNf dW5sb2NrZWQ7CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToyNjI1NTogcmVzdWx0OiBubwpjb25maWd1cmU6MjYyNjY6IGNoZWNraW5nIHdoZXRo ZXIgZ2V0Y2hhcl91bmxvY2tlZCBpcyBkZWNsYXJlZApjb25maWd1cmU6MjYyNjY6IGdjYyAtSSAu Li9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRl c3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIyODox MDogZXJyb3I6ICdnZXRjaGFyX3VubG9ja2VkJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiAnX2dldGNoYXJfbm9sb2NrJz8KICAyMjggfCAgICh2 b2lkKSBnZXRjaGFyX3VubG9ja2VkOwogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4K ICAgICAgfCAgICAgICAgICBfZ2V0Y2hhcl9ub2xvY2sKY29uZnRlc3QuYzoyMjg6MTA6IG5vdGU6 IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFj aCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCmNvbmZpZ3VyZToyNjI2NjogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmlu ZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEK fCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZp bmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMy Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJ VF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJV WlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5l IEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxF UyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0ND SklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf Q09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFW RV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVm aW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5l IEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5D IDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8 ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNk ZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmlu ZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2Rl ZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBI QVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFW RV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAj ZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFW RV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBI QVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5l IEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9G Q05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwg I2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVm aW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVf SVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9J TUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAx CnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBF Ul9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tF VFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8 ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19n ZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAo X2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2Nf KSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNf RElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZB VUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8 ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQg LyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwg I2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUg RU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1Nf Q09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3Mv bmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVD VF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBI QVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2Rl ZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQ QVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVf RU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lO VCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBU SU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZF X1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVENfVU5MT0NLRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3Rk aW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwg IyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9S WV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5n Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlw ZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5o Pgp8ICNlbmRpZgp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBnZXRjaGFyX3VubG9ja2Vk CnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgICAodm9pZCkgZ2V0Y2hhcl91bmxvY2tlZDsKfCAjZWxz ZQp8ICAgKHZvaWQpIGdldGNoYXJfdW5sb2NrZWQ7CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjI2NjogcmVzdWx0OiBubwpjb25maWd1cmU6 MjYyNzc6IGNoZWNraW5nIHdoZXRoZXIgcHV0Y191bmxvY2tlZCBpcyBkZWNsYXJlZApjb25maWd1 cmU6MjYyNzc6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVu ZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4n Ogpjb25mdGVzdC5jOjIyOToxMDogZXJyb3I6ICdwdXRjX3VubG9ja2VkJyB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAyMjkgfCAgICh2b2lkKSBwdXRjX3VubG9ja2Vk OwogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29uZnRlc3QuYzoyMjk6MTA6IG5vdGU6 IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFj aCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCmNvbmZpZ3VyZToyNjI3NzogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmlu ZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEK fCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZp bmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMy Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJ VF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJV WlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5l IEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxF UyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0ND SklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf Q09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFW RV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVm aW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5l IEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5D IDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8 ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNk ZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmlu ZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2Rl ZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBI QVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFW RV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAj ZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFW RV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBI QVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5l IEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9G Q05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwg I2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVm aW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVf SVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9J TUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAx CnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBF Ul9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tF VFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8 ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19n ZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAo X2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2Nf KSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNf RElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZB VUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8 ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQg LyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwg I2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUg RU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1Nf Q09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3Mv bmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVD VF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBI QVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2Rl ZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQ QVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVf RU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lO VCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBU SU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZF X1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFW RV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRl Zi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGli Lmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVm aW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8 bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8 IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBwdXRjX3VubG9ja2VkCnwgI2lmZGVmIF9fY3BsdXNwbHVz CnwgICAodm9pZCkgcHV0Y191bmxvY2tlZDsKfCAjZWxzZQp8ICAgKHZvaWQpIHB1dGNfdW5sb2Nr ZWQ7CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToyNjI3NzogcmVzdWx0OiBubwpjb25maWd1cmU6MjYyODg6IGNoZWNraW5nIHdoZXRoZXIgcHV0 Y2hhcl91bmxvY2tlZCBpcyBkZWNsYXJlZApjb25maWd1cmU6MjYyODg6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+ JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIzMDoxMDogZXJy b3I6ICdwdXRjaGFyX3VubG9ja2VkJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbik7IGRpZCB5b3UgbWVhbiAnX3B1dGNoYXJfbm9sb2NrJz8KICAyMzAgfCAgICh2b2lkKSBw dXRjaGFyX3VubG9ja2VkOwogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4KICAgICAg fCAgICAgICAgICBfcHV0Y2hhcl9ub2xvY2sKY29uZnRlc3QuYzoyMzA6MTA6IG5vdGU6IGVhY2gg dW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5j dGlvbiBpdCBhcHBlYXJzIGluCmNvbmZpZ3VyZToyNjI4ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg RW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNz QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9f RVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxF X09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQ RSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZF X1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVT T1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tF VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBI QVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVm aW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFW RV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JP TExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8 ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVf TENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwg I2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEK fCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAx CnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcg MQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhB VkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVf UkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAj ZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZp bmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZF X1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBI QVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JF Q1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlf U1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T RVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5l IEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5f VU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJL IDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZF X1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VY UExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVf RkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAx CnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmlu ZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhB VkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFO SyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEK fCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2Rl ZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVf TEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURU SCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8 ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZp bmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8 ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAo KF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAn LycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNU T1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NP VU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZp bmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8 ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmlu ZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1Nf Q09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklH X09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZl LWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRS SUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NU QVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBE T1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dP UktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJP Tl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwg I2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1Rf SVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFS X1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU UlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9D TEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G RkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBV VFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVk ZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZF X1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5l ZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5j bHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNs dWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5j bHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5j bHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1 ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBwdXRj aGFyX3VubG9ja2VkCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgICAodm9pZCkgcHV0Y2hhcl91bmxv Y2tlZDsKfCAjZWxzZQp8ICAgKHZvaWQpIHB1dGNoYXJfdW5sb2NrZWQ7CnwgI2VuZGlmCnwgI2Vu ZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjI4ODogcmVzdWx0OiBu bwpjb25maWd1cmU6MjYzMDE6IGNoZWNraW5nIHR5cGUgb2YgYXJyYXkgYXJndW1lbnQgdG8gZ2V0 Z3JvdXBzCmNvbmZpZ3VyZToyNjMzNTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3Qu ZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUg CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyMzk6Nzogd2Fybmlu ZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2dldGdyb3VwcycgWy1XaW1wbGlj aXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgMjM5IHwgICBuID0gZ2V0Z3JvdXBzIChzaXplb2Yg KGdpZHNldCkgLyBNQVggKHNpemVvZiAoaW50KSwgc2l6ZW9mIChnaWRfdCkpIC0gMSwKICAgICAg fCAgICAgICBefn5+fn5+fn4KQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0 LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xk LmV4ZTogQzpcbXN5czY0XHRtcFxjY2Fhc3hpZi5vOiBpbiBmdW5jdGlvbiBgbWFpbic6DQpDOlxt c3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2Nv bmZ0ZXN0LmM6MjM5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnZXRncm91cHMnDQpjb2xsZWN0 Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToyNjMzNTog JD8gPSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1l bWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVf UERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmlu ZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0Rf U09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBf RklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVN X1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUg SEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T T0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9I IDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNk ZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUg SEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZp bmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwg I2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5l IEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5P VElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRf U0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpa IDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBI QVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMg MQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJ VCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NP TVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVf UE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmlu ZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBI QVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAx CnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAj ZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVm aW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUg SEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZp bmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFW RV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVf R0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJF QURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2Rl ZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlM VElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVf U0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUg SEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFW RV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBI QVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNO VEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNk ZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmlu ZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lT QkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1B WCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8 ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBI QVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJf V0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRT IDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAj ZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vj b3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9j XykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykg PT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJ UkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVM VF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAj ZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8q Ki8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNk ZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVN QUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NP TkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25h dGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1Rf QVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFW RV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZp bmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFU SF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQg MQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElN RV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9X Q0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRD SEFSX1VOTE9DS0VEIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogVGhhbmtzIHRvIE1p a2UgUmVuZGVsbCBmb3IgdGhpcyB0ZXN0LiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 ICNkZWZpbmUgTkdJRCAyNTYKfCAjdW5kZWYgTUFYCnwgI2RlZmluZSBNQVgoeCwgeSkgKCh4KSA+ ICh5KSA/ICh4KSA6ICh5KSkKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICAgZ2lkX3QgZ2lkc2V0 W05HSURdOwp8ICAgaW50IGksIG47CnwgICB1bmlvbiB7IGdpZF90IGd2YWw7IGxvbmcgaW50IGx2 YWw7IH0gIHZhbDsKfCAKfCAgIHZhbC5sdmFsID0gLTE7CnwgICBmb3IgKGkgPSAwOyBpIDwgTkdJ RDsgaSsrKQp8ICAgICBnaWRzZXRbaV0gPSB2YWwuZ3ZhbDsKfCAgIG4gPSBnZXRncm91cHMgKHNp emVvZiAoZ2lkc2V0KSAvIE1BWCAoc2l6ZW9mIChpbnQpLCBzaXplb2YgKGdpZF90KSkgLSAxLAp8 IAkJIGdpZHNldCk7CnwgICAvKiBFeGl0IG5vbi16ZXJvIGlmIGdldGdyb3VwcyBzZWVtcyB0byBy ZXF1aXJlIGFuIGFycmF5IG9mIGludHMuICBUaGlzCnwgICAgICBoYXBwZW5zIHdoZW4gZ2lkX3Qg aXMgc2hvcnQgaW50IGJ1dCBnZXRncm91cHMgbW9kaWZpZXMgYW4gYXJyYXkKfCAgICAgIG9mIGlu dHMuICAqLwp8ICAgcmV0dXJuIG4gPiAwICYmIGdpZHNldFtuXSAhPSB2YWwuZ3ZhbDsKfCB9CmNv bmZpZ3VyZToyNjM2MDogcmVzdWx0OiBpbnQKY29uZmlndXJlOjI2MzcwOiBjaGVja2luZyB3aGV0 aGVyIGdldGR0YWJsZXNpemUgaXMgZGVjbGFyZWQKY29uZmlndXJlOjI2MzcwOiBnY2MgLUkgLi4v c3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0 LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyMzI6MTA6 IGVycm9yOiAnZ2V0ZHRhYmxlc2l6ZScgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgMjMyIHwgICAodm9pZCkgZ2V0ZHRhYmxlc2l6ZTsKICAgICAgfCAgICAgICAgICBe fn5+fn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MjMyOjEwOiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRl bnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFy cyBpbgpjb25maWd1cmU6MjYzNzA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8 ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAx CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf SFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2 NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQi CnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2Rl ZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNk ZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVf TElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJ VF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0Vf QVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0la RSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VO QUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAj ZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBV U0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNk ZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVf WFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVm aW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxF U19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZF X0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFU SVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhB VkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8 ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2Rl ZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NF TEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9D QUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlU IDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01B U0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIg MQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2Rl ZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAj ZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJ Tl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEK fCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBI QVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwg I2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAx CnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAj ZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFW RV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1F T0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAj ZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUg SEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZF X1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9y awp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVT RVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUg SEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExf REVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3Nl cyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVD VE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykK fCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09 ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykg fHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9k ZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tf T1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRP V1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJD b3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZp bmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04g Ing4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXBy ZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0t d2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQg MQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVT U0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lT X0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmlu ZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2Rl ZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf U1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9V TlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwg I2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNk ZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9Q VVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEdFVEdST1VQU19UIGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVk ZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lz L3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJ Ql9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZF X01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8 c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxz dHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8 aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8 c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVu aXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBnZXRkdGFibGVz aXplCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgICAodm9pZCkgZ2V0ZHRhYmxlc2l6ZTsKfCAjZWxz ZQp8ICAgKHZvaWQpIGdldGR0YWJsZXNpemU7CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjM3MDogcmVzdWx0OiBubwpjb25maWd1cmU6MjYz ODI6IGNoZWNraW5nIGZvciBPX0NMT0VYRUMKY29uZmlndXJlOjI2NDAyOiBnY2MgLUkgLi4vc3Jj L250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMg PiY1CmNvbmZ0ZXN0LmM6MTk1OjI5OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ2Nob2tlJwog IDE5NSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaG9rZSBtZTsKICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn4KY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21h aW4nOgpjb25mdGVzdC5jOjIwMTo4OiBlcnJvcjogJ09fQ0xPRVhFQycgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgMjAxIHwgcmV0dXJuIE9fQ0xPRVhFQzsKICAgICAg fCAgICAgICAgXn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MjAxOjg6IG5vdGU6IGVhY2ggdW5kZWNsYXJl ZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBh cHBlYXJzIGluCmNvbmZpZ3VyZToyNjQwMjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFj cy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAj ZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZF X1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9O U19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVm aW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9C SVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93 cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEK fCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAx CnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUg SEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZ U19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9J TUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBB R0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVB RFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMg MQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVm aW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAx CnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUg SEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8 ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBN T0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5l IEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmlu ZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZp bmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1M MiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEK fCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhB VkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9T RVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRS TElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURf U0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElU SU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEK fCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1Ig MQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05Q IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19C VUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lO SVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVm aW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5L IDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0Ja RVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQg MQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmlu ZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dF VFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIg MQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2Rl ZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5l IEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9y ayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9f Q09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2Rl ZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUg TlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJv Y2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUg RElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0g JzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9j XykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAo X2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklD RSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9T VEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUg V0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklH SFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwg I2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJB VElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMg Ii0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVp bHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJ R05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9F WFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xB U0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAj ZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBI QVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVE IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1F IDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAx CnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQg MAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxF U0laRSAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxmY250bC5oPgp8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgI2lmbmRlZiBPX0NMT0VYRUMKfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2hva2UgbWU7CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAjZW5k aWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBPX0NMT0VYRUM7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjQwOTogcmVzdWx0OiBubwpjb25maWd1cmU6MjY0MTQ6 IGNoZWNraW5nIGZvciBwcm9tb3RlZCBtb2RlX3QgdHlwZQpjb25maWd1cmU6MjY0MzE6IGdjYyAt SSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29u ZnRlc3QuYyA+JjUKY29uZmlndXJlOjI2NDMxOiAkPyA9IDAKY29uZmlndXJlOjI2NDM5OiByZXN1 bHQ6IGludApjb25maWd1cmU6MjY0NDg6IGNoZWNraW5nIHdoZXRoZXIgdGhlIHV0aW1lcyBmdW5j dGlvbiB3b3Jrcwpjb25maWd1cmU6MjY1ODc6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0 ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAg PiY1IApjb25mdGVzdC5jOjIzODogd2FybmluZzogImxzZWVrIiByZWRlZmluZWQKICAyMzggfCAj ZGVmaW5lIGxzZWVrICAgICBfbHNlZWsKICAgICAgfCAKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIEM6 L21zeXM2NC9taW5ndzY0L3g4Nl82NC13NjQtbWluZ3czMi9pbmNsdWRlL2ZjbnRsLmg6OCwKICAg ICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6MTk3OgpDOi9tc3lzNjQvbWluZ3c2NC94ODZf NjQtdzY0LW1pbmd3MzIvaW5jbHVkZS9pby5oOjM1Mjogbm90ZTogdGhpcyBpcyB0aGUgbG9jYXRp b24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24KICAzNTIgfCAjZGVmaW5lIGxzZWVrIGxzZWVr NjQKICAgICAgfCAKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjI4 NzoxNDogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ3V0aW1lcyc7 IGRpZCB5b3UgbWVhbiAndXRpbWUnPyBbLVdpbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0K ICAyODcgfCAgICAgZWxzZSBpZiAodXRpbWVzIChmaWxlLCB0aW1ldmFsKSAhPSAwKQogICAgICB8 ICAgICAgICAgICAgICBefn5+fn4KICAgICAgfCAgICAgICAgICAgICAgdXRpbWUKQzovbXN5czY0 L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8u Li8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY1hBUXY2 ZC5vOiBpbiBmdW5jdGlvbiBgbWFpbic6DQpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxv YWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MzU5OiB1bmRlZmluZWQgcmVm ZXJlbmNlIHRvIGB1dGltZXMnDQpDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZf NjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4v bGQuZXhlOiBDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1j b21wXGJ1aWxkL2NvbmZ0ZXN0LmM6Mjg3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB1dGltZXMn DQpDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAu Mi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRc aG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0 LmM6Mjg5OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBsc3RhdCcNCkM6L21zeXM2NC9taW5ndzY0 L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2 XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3du bG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzozMTQ6IHVuZGVmaW5lZCBy ZWZlcmVuY2UgdG8gYHV0aW1lcycNCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4 Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jp bi9sZC5leGU6IEM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZl LWNvbXBcYnVpbGQvY29uZnRlc3QuYzozMjE6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHV0aW1l cycNCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8x MC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2 NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRl c3QuYzozMjU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHV0aW1lcycNCkM6L21zeXM2NC9taW5n dzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4v eDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxE b3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzozMTg6IHVuZGVmaW5l ZCByZWZlcmVuY2UgdG8gYHV0aW1lcycNCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVk IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjI2NTg3OiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFt IGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENf SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5C U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FM VF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2Rl ZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVm aW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhB VkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBI QVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19Q QVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RF RlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNf SCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8 ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8 ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAj ZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAx CnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUg SEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxF X05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBV U0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8 ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFW RV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJ WCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0ND SklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJ U1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZG IDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmlu ZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhB VkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEK fCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8 ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNk ZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwg I2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2Rl ZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhB VkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUg SEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1F X0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZp bmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FO T05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5l IEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVm aW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUg SEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFU QVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAx CnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUg SEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lT V0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElO SyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2Rl ZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwg I2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01C U1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0Ug Ik5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAj ZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NF UCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZp bmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykK fCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19E RVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3Ai CnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxP V19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEK fCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdo dCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJN X0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0 LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9o b21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5h dGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2Rl ZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAx CnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElO Q1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3Ry aWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExT VEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RF IDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVE X0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5l IEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9D XzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBf VVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVS Uk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUg R0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2Rl ZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICNp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjaW5jbHVkZSA8 ZmNudGwuaD4KfCAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KfCAjaW5jbHVkZSA8dGltZS5oPgp8ICNp bmNsdWRlIDx1bmlzdGQuaD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgI2luY2x1ZGUgPHV0aW1lLmg+CnwgI2luY2x1ZGUgPGVycm5vLmg+CnwgCnwgCnwgCnwg I2lmIGRlZmluZWQgX1dJTjMyICYmICFkZWZpbmVkIF9fQ1lHV0lOX18KfCAjZGVmaW5lIGFjY2Vz cyAgICBfYWNjZXNzCnwgI2RlZmluZSBjaGRpciAgICAgX2NoZGlyCnwgI2RlZmluZSBjaG1vZCAg ICAgX2NobW9kCnwgI2RlZmluZSBjbG9zZSAgICAgX2Nsb3NlCnwgI2RlZmluZSBjcmVhdCAgICAg X2NyZWF0CnwgI2RlZmluZSBkdXAgICAgICAgX2R1cAp8ICNkZWZpbmUgZHVwMiAgICAgIF9kdXAy CnwgI2RlZmluZSBlY3Z0ICAgICAgX2VjdnQKfCAjZGVmaW5lIGV4ZWNsICAgICBfZXhlY2wKfCAj ZGVmaW5lIGV4ZWNsZSAgICBfZXhlY2xlCnwgI2RlZmluZSBleGVjbHAgICAgX2V4ZWNscAp8ICNk ZWZpbmUgZXhlY3YgICAgIF9leGVjdgp8ICNkZWZpbmUgZXhlY3ZlICAgIF9leGVjdmUKfCAjZGVm aW5lIGV4ZWN2cCAgICBfZXhlY3ZwCnwgI2RlZmluZSBleGVjdnBlICAgX2V4ZWN2cGUKfCAjZGVm aW5lIGZjbG9zZWFsbCBfZmNsb3NlYWxsCnwgI2RlZmluZSBmY3Z0ICAgICAgX2ZjdnQKfCAjZGVm aW5lIGZkb3BlbiAgICBfZmRvcGVuCnwgI2RlZmluZSBmaWxlbm8gICAgX2ZpbGVubwp8ICNkZWZp bmUgZ2N2dCAgICAgIF9nY3Z0CnwgI2RlZmluZSBnZXRjd2QgICAgX2dldGN3ZAp8ICNkZWZpbmUg Z2V0cGlkICAgIF9nZXRwaWQKfCAjZGVmaW5lIGdldHcgICAgICBfZ2V0dwp8ICNkZWZpbmUgaXNh dHR5ICAgIF9pc2F0dHkKfCAjZGVmaW5lIGowICAgICAgICBfajAKfCAjZGVmaW5lIGoxICAgICAg ICBfajEKfCAjZGVmaW5lIGpuICAgICAgICBfam4KfCAjZGVmaW5lIGxmaW5kICAgICBfbGZpbmQK fCAjZGVmaW5lIGxzZWFyY2ggICBfbHNlYXJjaAp8ICNkZWZpbmUgbHNlZWsgICAgIF9sc2Vlawp8 ICNkZWZpbmUgbWVtY2NweSAgIF9tZW1jY3B5CnwgI2RlZmluZSBta2RpciAgICAgX21rZGlyCnwg I2RlZmluZSBta3RlbXAgICAgX21rdGVtcAp8ICNkZWZpbmUgb3BlbiAgICAgIF9vcGVuCnwgI2Rl ZmluZSBwdXRlbnYgICAgX3B1dGVudgp8ICNkZWZpbmUgcHV0dyAgICAgIF9wdXR3CnwgI2RlZmlu ZSByZWFkICAgICAgX3JlYWQKfCAjZGVmaW5lIHJtZGlyICAgICBfcm1kaXIKfCAjZGVmaW5lIHN0 cmR1cCAgICBfc3RyZHVwCnwgI2RlZmluZSBzd2FiICAgICAgX3N3YWIKfCAjZGVmaW5lIHRlbXBu YW0gICBfdGVtcG5hbQp8ICNkZWZpbmUgdHpzZXQgICAgIF90enNldAp8ICNkZWZpbmUgdW1hc2sg ICAgIF91bWFzawp8ICNkZWZpbmUgdW5saW5rICAgIF91bmxpbmsKfCAjZGVmaW5lIHV0aW1lICAg ICBfdXRpbWUKfCAjZGVmaW5lIHdjc2R1cCAgICBfd2NzZHVwCnwgI2RlZmluZSB3cml0ZSAgICAg X3dyaXRlCnwgI2RlZmluZSB5MCAgICAgICAgX3kwCnwgI2RlZmluZSB5MSAgICAgICAgX3kxCnwg I2RlZmluZSB5biAgICAgICAgX3luCnwgI2VuZGlmCnwgCnwgCnwgCnwgc3RhdGljIGludAp8IGlu b3JkZXIgKHRpbWVfdCBhLCB0aW1lX3QgYiwgdGltZV90IGMpCnwgewp8ICAgcmV0dXJuIGEgPD0g YiAmJiBiIDw9IGM7CnwgfQp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgICBpbnQgcmVzdWx0ID0g MDsKfCAgIGNoYXIgY29uc3QgKmZpbGUgPSAiY29uZnRlc3QudXRpbWVzIjsKfCAgIC8qIE9uIE9T LzIsIGZpbGUgdGltZXN0YW1wcyBtdXN0IGJlIG9uIG9yIGFmdGVyIDE5ODAgaW4gbG9jYWwgdGlt ZSwKfCAgICAgIHdpdGggYW4gZXZlbiBudW1iZXIgb2Ygc2Vjb25kcy4gICovCnwgICBzdGF0aWMg c3RydWN0IHRpbWV2YWwgdGltZXZhbFsyXSA9IHt7MzE1NjIwMDAwICsgMTAsIDEwfSwKfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHszMTU2MjAwMDAgKyAxMDAwMDAwLCA5 OTk5OTh9fTsKfCAKfCAgIC8qIFRlc3Qgd2hldGhlciB1dGltZXMoKSBlc3NlbnRpYWxseSB3b3Jr cy4gICovCnwgICB7CnwgICAgIHN0cnVjdCBzdGF0IHNidWY7CnwgICAgIEZJTEUgKmYgPSBmb3Bl biAoZmlsZSwgInciKTsKfCAgICAgaWYgKGYgPT0gTlVMTCkKfCAgICAgICByZXN1bHQgfD0gMTsK fCAgICAgZWxzZSBpZiAoZmNsb3NlIChmKSAhPSAwKQp8ICAgICAgIHJlc3VsdCB8PSAxOwp8ICAg ICBlbHNlIGlmICh1dGltZXMgKGZpbGUsIHRpbWV2YWwpICE9IDApCnwgICAgICAgcmVzdWx0IHw9 IDI7CnwgICAgIGVsc2UgaWYgKGxzdGF0IChmaWxlLCAmc2J1ZikgIT0gMCkKfCAgICAgICByZXN1 bHQgfD0gMTsKfCAgICAgZWxzZSBpZiAoIShzYnVmLnN0X2F0aW1lID09IHRpbWV2YWxbMF0udHZf c2VjCnwgICAgICAgICAgICAgICAgJiYgc2J1Zi5zdF9tdGltZSA9PSB0aW1ldmFsWzFdLnR2X3Nl YykpCnwgICAgICAgcmVzdWx0IHw9IDQ7CnwgICAgIGlmICh1bmxpbmsgKGZpbGUpICE9IDApCnwg ICAgICAgcmVzdWx0IHw9IDE7CnwgICB9CnwgCnwgICAvKiBUZXN0IHdoZXRoZXIgdXRpbWVzKCkg d2l0aCBhIE5VTEwgYXJndW1lbnQgc2V0cyB0aGUgZmlsZSdzIHRpbWVzdGFtcAp8ICAgICAgdG8g dGhlIGN1cnJlbnQgdGltZS4gIFVzZSAnZnN0YXQnIGFzIHdlbGwgYXMgJ3RpbWUnIHRvCnwgICAg ICBkZXRlcm1pbmUgdGhlICJjdXJyZW50IiB0aW1lLCB0byBhY2NvbW1vZGF0ZSBORlMgZmlsZSBz eXN0ZW1zCnwgICAgICBpZiB0aGVyZSBpcyBhIHRpbWUgc2tldyBiZXR3ZWVuIHRoZSBob3N0IGFu ZCB0aGUgTkZTIHNlcnZlci4gICovCnwgICB7CnwgICAgIGludCBmZCA9IG9wZW4gKGZpbGUsIE9f V1JPTkxZfE9fQ1JFQVQsIDA2NDQpOwp8ICAgICBpZiAoZmQgPCAwKQp8ICAgICAgIHJlc3VsdCB8 PSAxOwp8ICAgICBlbHNlCnwgICAgICAgewp8ICAgICAgICAgdGltZV90IHQwLCB0MjsKfCAgICAg ICAgIHN0cnVjdCBzdGF0IHN0MCwgc3QxLCBzdDI7CnwgICAgICAgICBpZiAodGltZSAoJnQwKSA9 PSAodGltZV90KSAtMSkKfCAgICAgICAgICAgcmVzdWx0IHw9IDE7CnwgICAgICAgICBlbHNlIGlm IChmc3RhdCAoZmQsICZzdDApICE9IDApCnwgICAgICAgICAgIHJlc3VsdCB8PSAxOwp8ICAgICAg ICAgZWxzZSBpZiAodXRpbWVzIChmaWxlLCB0aW1ldmFsKSAhPSAwCnwgICAgICAgICAgICAgICAg ICAmJiAoZXJybm8gIT0gRUFDQ0VTCnwgICAgICAgICAgICAgICAgICAgICAgLyogT1MvMiBrTElC QyB1dGltZXMgZmFpbHMgb24gb3BlbmVkIGZpbGVzLiAgKi8KfCAgICAgICAgICAgICAgICAgICAg ICB8fCBjbG9zZSAoZmQpICE9IDAKfCAgICAgICAgICAgICAgICAgICAgICB8fCB1dGltZXMgKGZp bGUsIHRpbWV2YWwpICE9IDAKfCAgICAgICAgICAgICAgICAgICAgICB8fCAoZmQgPSBvcGVuIChm aWxlLCBPX1dST05MWSkpIDwgMCkpCnwgICAgICAgICAgIHJlc3VsdCB8PSAyOwp8ICAgICAgICAg ZWxzZSBpZiAodXRpbWVzIChmaWxlLCBOVUxMKSAhPSAwCnwgICAgICAgICAgICAgICAgICAmJiAo ZXJybm8gIT0gRUFDQ0VTCnwgICAgICAgICAgICAgICAgICAgICAgLyogT1MvMiBrTElCQyB1dGlt ZXMgZmFpbHMgb24gb3BlbmVkIGZpbGVzLiAgKi8KfCAgICAgICAgICAgICAgICAgICAgICB8fCBj bG9zZSAoZmQpICE9IDAKfCAgICAgICAgICAgICAgICAgICAgICB8fCB1dGltZXMgKGZpbGUsIE5V TEwpICE9IDAKfCAgICAgICAgICAgICAgICAgICAgICB8fCAoZmQgPSBvcGVuIChmaWxlLCBPX1dS T05MWSkpIDwgMCkpCnwgICAgICAgICAgIHJlc3VsdCB8PSA4Owp8ICAgICAgICAgZWxzZSBpZiAo ZnN0YXQgKGZkLCAmc3QxKSAhPSAwKQp8ICAgICAgICAgICByZXN1bHQgfD0gMTsKfCAgICAgICAg IGVsc2UgaWYgKHdyaXRlIChmZCwgIlxuIiwgMSkgIT0gMSkKfCAgICAgICAgICAgcmVzdWx0IHw9 IDE7CnwgICAgICAgICBlbHNlIGlmIChmc3RhdCAoZmQsICZzdDIpICE9IDApCnwgICAgICAgICAg IHJlc3VsdCB8PSAxOwp8ICAgICAgICAgZWxzZSBpZiAodGltZSAoJnQyKSA9PSAodGltZV90KSAt MSkKfCAgICAgICAgICAgcmVzdWx0IHw9IDE7CnwgICAgICAgICBlbHNlCnwgICAgICAgICAgIHsK fCAgICAgICAgICAgICBpbnQgbV9va19QT1NJWCA9IGlub3JkZXIgKHQwLCBzdDEuc3RfbXRpbWUs IHQyKTsKfCAgICAgICAgICAgICBpbnQgbV9va19ORlMgPSBpbm9yZGVyIChzdDAuc3RfbXRpbWUs IHN0MS5zdF9tdGltZSwgc3QyLnN0X210aW1lKTsKfCAgICAgICAgICAgICBpZiAoISAoc3QxLnN0 X2F0aW1lID09IHN0MS5zdF9tdGltZSkpCnwgICAgICAgICAgICAgICByZXN1bHQgfD0gMTY7Cnwg ICAgICAgICAgICAgaWYgKCEgKG1fb2tfUE9TSVggfHwgbV9va19ORlMpKQp8ICAgICAgICAgICAg ICAgcmVzdWx0IHw9IDMyOwp8ICAgICAgICAgICB9CnwgICAgICAgICBpZiAoY2xvc2UgKGZkKSAh PSAwKQp8ICAgICAgICAgICByZXN1bHQgfD0gMTsKfCAgICAgICB9CnwgICAgIGlmICh1bmxpbmsg KGZpbGUpICE9IDApCnwgICAgICAgcmVzdWx0IHw9IDE7CnwgICB9CnwgCnwgICAvKiBUZXN0IHdo ZXRoZXIgdXRpbWVzKCkgd2l0aCBhIE5VTEwgYXJndW1lbnQgd29ya3Mgb24gcmVhZC1vbmx5IGZp bGVzLiAgKi8KfCAgIHsKfCAgICAgaW50IGZkID0gb3BlbiAoZmlsZSwgT19XUk9OTFl8T19DUkVB VCwgMDQ0NCk7CnwgICAgIGlmIChmZCA8IDApCnwgICAgICAgcmVzdWx0IHw9IDE7CnwgICAgIGVs c2UgaWYgKGNsb3NlIChmZCkgIT0gMCkKfCAgICAgICByZXN1bHQgfD0gMTsKfCAgICAgZWxzZSBp ZiAodXRpbWVzIChmaWxlLCBOVUxMKSAhPSAwKQp8ICAgICAgIHJlc3VsdCB8PSA2NDsKfCAgICAg aWYgKHVubGluayAoZmlsZSkgIT0gMCkKfCAgICAgICByZXN1bHQgfD0gMTsKfCAgIH0KfCAKfCAg IHJldHVybiByZXN1bHQ7CnwgfQp8IApjb25maWd1cmU6MjY1OTg6IHJlc3VsdDogbm8KY29uZmln dXJlOjI2NjQxOiBjaGVja2luZyBzeXMvYWNsLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToyNjY0MTog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMg ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MjY2NDE6ICQ/ID0gMApjb25maWd1cmU6MjY2NDE6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNjY0MTogY2hlY2tpbmcgc3lzL2FjbC5oIHByZXNlbmNl CmNvbmZpZ3VyZToyNjY0MTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLUUgLW10dW5lPWdlbmVyaWMg ICBjb25mdGVzdC5jCmNvbmZpZ3VyZToyNjY0MTogJD8gPSAwCmNvbmZpZ3VyZToyNjY0MTogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjI2NjQxOiBjaGVja2luZyBmb3Igc3lzL2FjbC5oCmNvbmZpZ3Vy ZToyNjY0MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI2NjU1OiBjaGVja2luZyBmb3IgbGlicmFy eSBjb250YWluaW5nIGFjbF9nZXRfZmlsZQpjb25maWd1cmU6MjY3MDM6IHJlc3VsdDogbm9uZSBy ZXF1aXJlZApjb25maWd1cmU6MjY3MTk6IGNoZWNraW5nIGZvciBhY2xfZ2V0X2ZpbGUKY29uZmln dXJlOjI2NzE5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjY3MTk6IGNoZWNraW5nIGZvciBhY2xf Z2V0X2ZkCmNvbmZpZ3VyZToyNjcxOTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3Qu ZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUg CkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4y LjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0 bXBcY2NXWFEzbXEubzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNl cjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MjMwOiB1bmRl ZmluZWQgcmVmZXJlbmNlIHRvIGBhY2xfZ2V0X2ZkJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCBy ZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToyNjcxOTogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9G SUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1f VFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBI QVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP Q0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAj ZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUg SEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9U SUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9T Q1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlog MQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhB VkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAx CnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU IDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09N UCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9Q TkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5l IEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhB VkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEK fCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmlu ZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZF X1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9H QUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVm aW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9T QlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBI QVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZF X0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05U TCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNC TEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwg I2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhB VkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9X SURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMg MQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNk ZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNv cwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2Nf KSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9 PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElS RUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxU X1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNk ZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoq Lwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2Rl ZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1B Q1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09O RklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0 aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9B VFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZF X1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmlu ZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRI X1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAx CnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1F X1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dD SEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENI QVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmlu ZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBhY2xfZ2V0X2ZkIHRvIGFuIGlubm9jdW91cyB2 YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYWNsX2dldF9mZC4KfCAgICBGb3Ig ZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8K fCAjZGVmaW5lIGFjbF9nZXRfZmQgaW5ub2N1b3VzX2FjbF9nZXRfZmQKfCAKfCAvKiBTeXN0ZW0g aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw ZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgYWNsX2dldF9mZCAoKTsgYmVs b3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMg ZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRp bmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0 cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYg YWNsX2dldF9mZAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv IGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo ZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50 IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg ZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgYWNsX2dldF9mZCAoKTsKfCAvKiBUaGUgR05VIEMg bGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwg ICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVh bGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFs IG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9hY2xfZ2V0X2ZkIHx8 IGRlZmluZWQgX19zdHViX19fYWNsX2dldF9mZAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gYWNsX2dldF9mZCAoKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjI2NzE5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjcxOTogY2hlY2tp bmcgZm9yIGFjbF9zZXRfZmlsZQpjb25maWd1cmU6MjY3MTk6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToyNjcxOTogY2hlY2tpbmcgZm9yIGFjbF9zZXRfZmQKY29uZmlndXJlOjI2NzE5OiBnY2MgLUkg Li4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdl bmVyaWMgICAgY29uZnRlc3QuYyAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9n Y2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3 MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY3d2VHJtci5vOiBpbiBmdW5jdGlvbiBgbWFp bic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBc YnVpbGQvY29uZnRlc3QuYzoyMzE6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGFjbF9zZXRfZmQn CmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJl OjI2NzE5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxf VVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJT IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdD Q19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFW RV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxM T0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdE X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0gg MQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAj ZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmlu ZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg VVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVm aW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pT T04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0g MQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmlu ZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIg MQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxs Igp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAx CnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZG SVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNk ZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVf R0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5U IDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmlu ZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBI QVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5l IEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhB VkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xP RzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVT UyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZF X0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9S RUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFW RV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xD SE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwg I2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BT RUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUg MQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhB VkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9U IDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIK fCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUg VVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8 ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19E SVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZp bmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9T RVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVm aW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRM SU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZp bmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAy MDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVS ICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1p bmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldp blVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29t cCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhB VkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVm aW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09U IDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19y ZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9M TE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19M T05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9U Wk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS TkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1RE X1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9V UFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhB VkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGFjbF9zZXRfZmQgdG8gYW4gaW5ub2N1b3VzIHZh cmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBhY2xfc2V0X2ZkLgp8ICAgIEZvciBl eGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8 ICNkZWZpbmUgYWNsX3NldF9mZCBpbm5vY3VvdXNfYWNsX3NldF9mZAp8IAp8IC8qIFN5c3RlbSBo ZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBl cywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBhY2xfc2V0X2ZkICgpOyBiZWxv dy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBk ZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGlu ZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRz Lmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBh Y2xfc2V0X2ZkCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8g YXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl IHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBl eHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBhY2xfc2V0X2ZkICgpOwp8IC8qIFRoZSBHTlUgQyBs aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAg ICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwg bmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2FjbF9zZXRfZmQgfHwg ZGVmaW5lZCBfX3N0dWJfX19hY2xfc2V0X2ZkCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHJldHVybiBhY2xfc2V0X2ZkICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MjY3MTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjI2NzE5OiBjaGVja2lu ZyBmb3IgYWNsX2ZyZWUKY29uZmlndXJlOjI2NzE5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjY3 MTk6IGNoZWNraW5nIGZvciBhY2xfZnJvbV9tb2RlCmNvbmZpZ3VyZToyNjcxOTogZ2NjIC1JIC4u L3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5l cmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2Nj L3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMy L2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NVNjZBN3YubzogaW4gZnVuY3Rpb24gYG1haW4n OgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1 aWxkL2NvbmZ0ZXN0LmM6MjMyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBhY2xfZnJvbV9tb2Rl Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3Vy ZToyNjcxOTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlM X1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVS UyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8 ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BF Tl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBH Q0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhB VkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFM TE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BX RF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9I IDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwg I2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZp bmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZp bmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2Rl ZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9K U09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElG WSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElN IDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZp bmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElC IDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRs bCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0gg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VG RklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAj ZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZF X0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklO VCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVm aW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZp bmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmlu ZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBI QVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VU U09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9M T0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJF U1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFW RV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVf UkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhB VkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9M Q0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8 ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2Rl ZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9Q U0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBF IDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwg I2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBI QVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmlu ZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVf VCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoi CnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5l IFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycK fCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNf RElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVm aW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0Vf U0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2Rl ZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5E TElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVm aW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykg MjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURF UiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1t aW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZX aW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNv bXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBI QVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2Rl ZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9P VCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9f cmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZP TExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAj ZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdf TE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVf VFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNf Tk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU Uk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NU RF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JP VVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBI QVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmlu ZSBIQVZFX0FDTF9GUkVFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGFj bF9mcm9tX21vZGUgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBk ZWNsYXJlcyBhY2xfZnJvbV9tb2RlLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0 cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgYWNsX2Zyb21fbW9kZSBp bm5vY3VvdXNfYWNsX2Zyb21fbW9kZQp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9f c3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2Fu IGNvbmZsaWN0IHdpdGggY2hhciBhY2xfZnJvbV9tb2RlICgpOyBiZWxvdy4KfCAgICAgUHJlZmVy IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8 ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAq Lwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAj IGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBhY2xfZnJvbV9tb2RlCnwg CnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy b3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl IG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv dWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwg I2VuZGlmCnwgY2hhciBhY2xfZnJvbV9tb2RlICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRl ZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3 YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQK fCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBh biBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2FjbF9mcm9tX21vZGUgfHwgZGVmaW5l ZCBfX3N0dWJfX19hY2xfZnJvbV9tb2RlCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IHJldHVybiBhY2xfZnJvbV9tb2RlICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MjY3MTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjI2NzE5OiBjaGVja2lu ZyBmb3IgYWNsX2Zyb21fdGV4dApjb25maWd1cmU6MjY3MTk6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZToyNjcxOTogY2hlY2tpbmcgZm9yIGFjbF9kZWxldGVfZGVmX2ZpbGUKY29uZmlndXJlOjI2NzE5 OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIg LW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmlu Ly4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQt dzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjYzBBVnZzay5vOiBpbiBmdW5j dGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0 aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoyMzM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGFj bF9kZWxldGVfZGVmX2ZpbGUnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhp dCBzdGF0dXMKY29uZmlndXJlOjI2NzE5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNz LyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05T X18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ VFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dz LW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEK fCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBI QVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lN QUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFH RVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFE U19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAx CnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZp bmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEK fCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBI QVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwg I2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1P RFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUg SEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5l IE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmlu ZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwy IDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8 ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFW RV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NF VExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T SUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJ TUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8 ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAx CnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5J VCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZp bmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksg MQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpF Uk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAx CnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5l IEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAx CnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVm aW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUg SEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3Jr IGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19D T0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVm aW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBO VUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9j ZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBE SVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAn OicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2Nf KSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChf Y18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNF ICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NU QUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBX SU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdI VCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAj ZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFU SU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAi LS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWls dCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElH TkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VY UFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFT SF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNk ZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhB VkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEK fCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVT SVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FD TF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NF VF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJP TV9URVhUIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGFjbF9kZWxldGVf ZGVmX2ZpbGUgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNs YXJlcyBhY2xfZGVsZXRlX2RlZl9maWxlLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxp bWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgYWNsX2RlbGV0ZV9k ZWZfZmlsZSBpbm5vY3VvdXNfYWNsX2RlbGV0ZV9kZWZfZmlsZQp8IAp8IC8qIFN5c3RlbSBoZWFk ZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywK fCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBhY2xfZGVsZXRlX2RlZl9maWxlICgp OyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENf XyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVz dGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8 bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1 bmRlZiBhY2xfZGVsZXRlX2RlZl9maWxlCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5h bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhl biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBhY2xfZGVsZXRlX2RlZl9m aWxlICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z IHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBT b21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5n IHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmlu ZWQgX19zdHViX2FjbF9kZWxldGVfZGVmX2ZpbGUgfHwgZGVmaW5lZCBfX3N0dWJfX19hY2xfZGVs ZXRlX2RlZl9maWxlCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiBhY2xfZGVsZXRlX2RlZl9maWxlICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MjY3MTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjI2NzE5OiBjaGVja2luZyBmb3Ig YWNsX2V4dGVuZGVkX2ZpbGUKY29uZmlndXJlOjI2NzE5OiBnY2MgLUkgLi4vc3JjL250L2luYyAt byBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICAgY29uZnRl c3QuYyAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1t aW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTog QzpcbXN5czY0XHRtcFxjY1FobWg2Zi5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxo b21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3Qu YzoyMzM6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGFjbF9leHRlbmRlZF9maWxlJwpjb2xsZWN0 Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZToyNjcxOTog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1Ag MQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2Rl ZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUg SEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRf QVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAx CnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNU RU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVm aW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBI QVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lU SF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9O VEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVN X01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQ X0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZF X1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAj ZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2Rl ZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVm aW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9K UEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVm aW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVm aW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZp bmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxu Igp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhB VkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1RO QU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2Rl ZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVf R0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9H RVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVU RE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NU UlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRU TyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUg MQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAj ZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElH TkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNk ZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08g MQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVf TkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktB VCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VT U0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8 ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUg SEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZF X0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEK fCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVm aW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBI QVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJ TlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xB TkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2Rl ZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmlu ZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVM TF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5l IElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZ X1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FO WV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykp CnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19T RVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwg I2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJM RV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVy bS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8 ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9E b3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2Rl ZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVP RiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZF X0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2Rl ZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QK fCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xB U0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhB VkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNI UiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAx CnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZS RUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENI QVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQUk9NT1RFRF9N T0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBIQVZFX0FDTF9H RVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FD TF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IC8qIERlZmluZSBhY2xfZXh0ZW5kZWRfZmlsZSB0byBhbiBpbm5vY3VvdXMgdmFy aWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGFjbF9leHRlbmRlZF9maWxlLgp8ICAg IEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXku ICAqLwp8ICNkZWZpbmUgYWNsX2V4dGVuZGVkX2ZpbGUgaW5ub2N1b3VzX2FjbF9leHRlbmRlZF9m aWxlCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9w ZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFy IGFjbF9leHRlbmRlZF9maWxlICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+ IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBf X1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2Vy dC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBhY2xfZXh0ZW5kZWRfZmlsZQp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgYWNsX2V4dGVuZGVkX2ZpbGUgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0 aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFp bCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBz b21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFz LiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfYWNsX2V4dGVuZGVkX2ZpbGUgfHwgZGVmaW5lZCBf X3N0dWJfX19hY2xfZXh0ZW5kZWRfZmlsZQp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50Cnwg bWFpbiAoKQp8IHsKfCByZXR1cm4gYWNsX2V4dGVuZGVkX2ZpbGUgKCk7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjcxOTogcmVzdWx0OiBubwpjb25maWd1cmU6MjY3MTk6IGNo ZWNraW5nIGZvciBhY2xfZGVsZXRlX2ZkX25wCmNvbmZpZ3VyZToyNjcxOTogZ2NjIC1JIC4uL3Ny Yy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmlj ICAgIGNvbmZ0ZXN0LmMgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4 Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jp bi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NHeGRhd0subzogaW4gZnVuY3Rpb24gYG1haW4nOgpD Olxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxk L2NvbmZ0ZXN0LmM6MjMzOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBhY2xfZGVsZXRlX2ZkX25w Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3Vy ZToyNjcxOTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlM X1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVS UyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8 ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BF Tl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBH Q0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhB VkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFM TE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BX RF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9I IDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwg I2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZp bmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZp bmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2Rl ZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9K U09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElG WSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElN IDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZp bmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElC IDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRs bCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0gg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VG RklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAj ZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZF X0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklO VCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVm aW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZp bmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmlu ZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBI QVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VU U09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9M T0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJF U1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFW RV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVf UkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhB VkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9M Q0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8 ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2Rl ZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9Q U0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBF IDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwg I2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBI QVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmlu ZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVf VCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoi CnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5l IFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycK fCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNf RElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVm aW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0Vf U0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2Rl ZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5E TElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVm aW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykg MjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURF UiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1t aW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZX aW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNv bXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBI QVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2Rl ZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9P VCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9f cmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZP TExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAj ZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdf TE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVf VFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNf Tk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU Uk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NU RF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JP VVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBI QVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmlu ZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBhY2xfZGVsZXRlX2ZkX25wIHRvIGFuIGlubm9j dW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYWNsX2RlbGV0ZV9mZF9u cC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGlt ZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGFjbF9kZWxldGVfZmRfbnAgaW5ub2N1b3VzX2FjbF9kZWxl dGVfZmRfbnAKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFu ZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo IGNoYXIgYWNsX2RlbGV0ZV9mZF9ucCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+ IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0 cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZk ZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxh c3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgYWNsX2RlbGV0ZV9mZF9ucAp8IAp8IC8qIE92 ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAg IFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdD Qwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8 IGNoYXIgYWNsX2RlbGV0ZV9mZF9ucCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVz IHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBm YWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAg IHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxp YXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9hY2xfZGVsZXRlX2ZkX25wIHx8IGRlZmluZWQg X19zdHViX19fYWNsX2RlbGV0ZV9mZF9ucAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50Cnwg bWFpbiAoKQp8IHsKfCByZXR1cm4gYWNsX2RlbGV0ZV9mZF9ucCAoKTsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjI2NzE5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjcxOTogY2hl Y2tpbmcgZm9yIGFjbF9kZWxldGVfZmlsZV9ucApjb25maWd1cmU6MjY3MTk6IGdjYyAtSSAuLi9z cmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJp YyAgICBjb25mdGVzdC5jICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94 ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9i aW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjTVR0eExjLm86IGluIGZ1bmN0aW9uIGBtYWluJzoK QzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWls ZC9jb25mdGVzdC5jOjIzMzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgYWNsX2RlbGV0ZV9maWxl X25wJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp Z3VyZToyNjcxOTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBN QUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVB REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0Rf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmlu ZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5l IEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVf TUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZF X1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJB TV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAx CnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNk ZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNk ZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwg I2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFW RV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05P VElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0Vf WElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNk ZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9a TElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAi LmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU X0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1Bf U1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEK fCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBI QVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVf UklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAj ZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNk ZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2Rl ZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmlu ZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVf R0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFW RV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FE RFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUg SEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05J Q0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhB VkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5l IEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFW RV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQg MQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwg I2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFW RV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NU WVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAx CnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmlu ZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2Rl ZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RB VEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5V TDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVm aW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAn LycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUg SVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAj ZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJ Q0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwg I2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19I QU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAj ZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAo QykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hF QURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2 NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21l L1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2 ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmlu ZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwg I2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1Rf Uk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0 IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFU X0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAK fCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xP TkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhB VkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBf SVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNF X1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9S X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VU R1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmlu ZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmlu ZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2Rl ZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBhY2xfZGVsZXRlX2ZpbGVfbnAgdG8gYW4g aW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBhY2xfZGVsZXRl X2ZpbGVfbnAuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBhY2xfZGVsZXRlX2ZpbGVfbnAgaW5ub2N1b3Vz X2FjbF9kZWxldGVfZmlsZV9ucAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1 YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNv bmZsaWN0IHdpdGggY2hhciBhY2xfZGVsZXRlX2ZpbGVfbnAgKCk7IGJlbG93Lgp8ICAgICBQcmVm ZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNl CnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4g ICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8 ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGFjbF9kZWxldGVfZmls ZV9ucAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk IGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJu ICJDIgp8ICNlbmRpZgp8IGNoYXIgYWNsX2RlbGV0ZV9maWxlX25wICgpOwp8IC8qIFRoZSBHTlUg QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMK fCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0 dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3Jt YWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2FjbF9kZWxldGVf ZmlsZV9ucCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2FjbF9kZWxldGVfZmlsZV9ucAp8IGNob2tlIG1l CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gYWNsX2RlbGV0ZV9maWxl X25wICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjY3MTk6IHJlc3VsdDog bm8KY29uZmlndXJlOjI2NzE5OiBjaGVja2luZyBmb3IgYWNsX2NvcHlfZXh0X25hdGl2ZQpjb25m aWd1cmU6MjY3MTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8y IC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgPiY1IApDOi9tc3lzNjQv bWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4u Ly4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjNG5OZjRJ Lm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fk c1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjIzMzogdW5kZWZpbmVkIHJlZmVy ZW5jZSB0byBgYWNsX2NvcHlfZXh0X25hdGl2ZScKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0 dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MjY3MTk6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBf X0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklM RV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZ UEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFW RV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JF U09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NL RVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEK fCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZp bmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFW RV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUg SEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2Rl ZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhB VkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElG WSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NS T0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEK fCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZF X0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8 ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAx CnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAg MQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5H IDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBI QVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZF X1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwg I2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5l IEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFW RV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUg SEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9S RUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJ X1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURf U0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmlu ZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElO X1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JS SyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFW RV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9F WFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZF X0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwg MQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZp bmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBI QVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxB TksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAx CnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNk ZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZF X0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lE VEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEK fCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVm aW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MK fCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykg KChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0g Jy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVD VE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9T T1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVm aW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8K fCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZp bmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNT X0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJ R19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2 ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRU UklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9T VEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUg RE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9X T1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklS T05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8 ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9U X0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf Q0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQ VVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFS X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUg SEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUg SEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBI QVZFX0FDTF9GUk9NX1RFWFQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUg YWNsX2NvcHlfZXh0X25hdGl2ZSB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGlt aXRzLmg+IGRlY2xhcmVzIGFjbF9jb3B5X2V4dF9uYXRpdmUuCnwgICAgRm9yIGV4YW1wbGUsIEhQ LVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBh Y2xfY29weV9leHRfbmF0aXZlIGlubm9jdW91c19hY2xfY29weV9leHRfbmF0aXZlCnwgCnwgLyog U3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBw cm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGFjbF9jb3B5X2V4 dF9uYXRpdmUgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+ IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2 ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwg IyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2Vu ZGlmCnwgCnwgI3VuZGVmIGFjbF9jb3B5X2V4dF9uYXRpdmUKfCAKfCAvKiBPdmVycmlkZSBhbnkg R0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBi ZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWls dGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAq Lwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGFjbF9j b3B5X2V4dF9uYXRpdmUgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZv ciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRo IEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhp bmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8K fCAjaWYgZGVmaW5lZCBfX3N0dWJfYWNsX2NvcHlfZXh0X25hdGl2ZSB8fCBkZWZpbmVkIF9fc3R1 Yl9fX2FjbF9jb3B5X2V4dF9uYXRpdmUKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1h aW4gKCkKfCB7CnwgcmV0dXJuIGFjbF9jb3B5X2V4dF9uYXRpdmUgKCk7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjcxOTogcmVzdWx0OiBubwpjb25maWd1cmU6MjY3MTk6IGNo ZWNraW5nIGZvciBhY2xfY3JlYXRlX2VudHJ5X25wCmNvbmZpZ3VyZToyNjcxOTogZ2NjIC1JIC4u L3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5l cmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2Nj L3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMy L2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NjZFl6Y2UubzogaW4gZnVuY3Rpb24gYG1haW4n OgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1 aWxkL2NvbmZ0ZXN0LmM6MjMzOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBhY2xfY3JlYXRlX2Vu dHJ5X25wJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNv bmZpZ3VyZToyNjcxOTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENf SEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5C U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FM VF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2Rl ZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVm aW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhB VkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBI QVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19Q QVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RF RlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNf SCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj ZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8 ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8 ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAj ZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAx CnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUg SEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxF X05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBV U0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8 ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFW RV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJ WCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0ND SklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJ U1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZG IDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmlu ZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhB VkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEK fCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8 ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNk ZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwg I2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2Rl ZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhB VkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUg SEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1F X0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZp bmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FO T05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5l IEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVm aW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUg SEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFU QVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAx CnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUg SEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lT V0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElO SyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2Rl ZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwg I2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01C U1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0Ug Ik5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAj ZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NF UCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZp bmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykK fCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19E RVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3Ai CnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxP V19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEK fCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdo dCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJN X0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0 LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9o b21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5h dGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2Rl ZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAx CnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElO Q1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3Ry aWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExT VEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RF IDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVE X0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5l IEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9D XzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBf VVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVS Uk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUg R0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2Rl ZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2Rl ZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwg I2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBhY2xfY3JlYXRlX2VudHJ5X25wIHRv IGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYWNsX2Ny ZWF0ZV9lbnRyeV9ucC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVj bGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGFjbF9jcmVhdGVfZW50cnlfbnAgaW5u b2N1b3VzX2FjbF9jcmVhdGVfZW50cnlfbnAKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmlu ZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNo IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgYWNsX2NyZWF0ZV9lbnRyeV9ucCAoKTsgYmVsb3cuCnwg ICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5l ZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29t cGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8 ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgYWNsX2Ny ZWF0ZV9lbnRyeV9ucAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVz CnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgYWNsX2NyZWF0ZV9lbnRyeV9ucCAoKTsKfCAv KiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBp bXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlv bnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFu ZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9h Y2xfY3JlYXRlX2VudHJ5X25wIHx8IGRlZmluZWQgX19zdHViX19fYWNsX2NyZWF0ZV9lbnRyeV9u cAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gYWNs X2NyZWF0ZV9lbnRyeV9ucCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI2 NzE5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjcxOTogY2hlY2tpbmcgZm9yIGFjbF90b19zaG9y dF90ZXh0CmNvbmZpZ3VyZToyNjcxOTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3Qu ZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUg CkM6L21zeXM2NC9taW5ndzY0L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4y LjAvLi4vLi4vLi4vLi4veDg2XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0 bXBcY2NVN1hXVTUubzogaW4gZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNl cjBcRG93bmxvYWRzXGVtYWNzXG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6MjMzOiB1bmRl ZmluZWQgcmVmZXJlbmNlIHRvIGBhY2xfdG9fc2hvcnRfdGV4dCcKY29sbGVjdDIuZXhlOiBlcnJv cjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MjY3MTk6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZ X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwg I2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9O RVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2Rl ZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUg U1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNk ZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVf VU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJ UkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNk ZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8 ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVS UyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAj ZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZF X1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RP T0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hB UkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2Rl ZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01P RFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJ QkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFU SVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5l IEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwg I2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9U UlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpF IDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEK fCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8 ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZp bmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5l IEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZF X1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAw CnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVf X19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5l IEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNk ZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZp bmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2Rl ZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhB VkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMg MQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwg I2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBI QVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NU UlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5T QVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2Rl ZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxf UEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9T T0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAn OycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+ cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0Vf U0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAo KF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykg KElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUg REVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktT IDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9T X05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQg MQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVm aW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVN QUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2Vt YWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9T VFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZp bmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8 ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19S RUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBI QVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElO SyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9O R19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZp bmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZp bmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBI QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUg SEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8 ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8 ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwg I2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAv KiBEZWZpbmUgYWNsX3RvX3Nob3J0X3RleHQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNh c2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBhY2xfdG9fc2hvcnRfdGV4dC4KfCAgICBGb3IgZXhhbXBs ZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVm aW5lIGFjbF90b19zaG9ydF90ZXh0IGlubm9jdW91c19hY2xfdG9fc2hvcnRfdGV4dAp8IAp8IC8q IFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg cHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBhY2xfdG9fc2hv cnRfdGV4dCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4g aWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZl biBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAj IGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5k aWYKfCAKfCAjdW5kZWYgYWNsX3RvX3Nob3J0X3RleHQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8 ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGFjbF90b19z aG9ydF90ZXh0ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVu Y3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9T WVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0 YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lm IGRlZmluZWQgX19zdHViX2FjbF90b19zaG9ydF90ZXh0IHx8IGRlZmluZWQgX19zdHViX19fYWNs X3RvX3Nob3J0X3RleHQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7 CnwgcmV0dXJuIGFjbF90b19zaG9ydF90ZXh0ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MjY3MTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjI2NzE5OiBjaGVja2luZyBmb3Ig YWNsX2ZyZWVfdGV4dApjb25maWd1cmU6MjY3MTk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNv bmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5j ICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3 MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxt c3lzNjRcdG1wXGNjS0pLTmFHLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVc VldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjIz MzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgYWNsX2ZyZWVfdGV4dCcKY29sbGVjdDIuZXhlOiBl cnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MjY3MTk6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf UE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBf VEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwg I2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZp bmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8 ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZF X0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8 ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0Mg MQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVG RkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEK fCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBI QVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNF X1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZF X0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwg I2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZF X01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZF X0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVf TkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVm aW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAx CnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwg I2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFW RV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VT SVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlU IDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8 ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwg MQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNk ZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExP QyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhB VkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVm aW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8 ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNk ZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwg I2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5l IEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZ TkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAx CnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmlu ZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZF X1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElN RU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwg I2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19f TkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFW RV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hB UiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBw dy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJ Q0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2Nf KSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9j XykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZp bmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dP UktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUg RE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJF QUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAj ZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5l IEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRz L2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFW RV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNk ZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0Eg MQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVO Q19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lN TElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdf TE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNk ZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZp bmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0Zf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGlu dAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUg MQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAx CnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAvKiBEZWZpbmUgYWNsX2ZyZWVfdGV4dCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2Fz ZSA8bGltaXRzLmg+IGRlY2xhcmVzIGFjbF9mcmVlX3RleHQuCnwgICAgRm9yIGV4YW1wbGUsIEhQ LVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBh Y2xfZnJlZV90ZXh0IGlubm9jdW91c19hY2xfZnJlZV90ZXh0CnwgCnwgLyogU3lzdGVtIGhlYWRl ciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8 ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGFjbF9mcmVlX3RleHQgKCk7IGJlbG93 Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRl ZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5n IGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMu aD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGFj bF9mcmVlX3RleHQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGFjbF9mcmVlX3RleHQgKCk7CnwgLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBh Y3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfYWNsX2ZyZWVf dGV4dCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2FjbF9mcmVlX3RleHQKfCBjaG9rZSBtZQp8ICNlbmRp Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGFjbF9mcmVlX3RleHQgKCk7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjcxOTogcmVzdWx0OiBubwpjb25maWd1cmU6 MjY3MzA6IGNoZWNraW5nIGZvciB3b3JraW5nIGFjbF9nZXRfZmlsZQpjb25maWd1cmU6MjY3NjI6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNjc3MTogY2hlY2tpbmcgYWNsL2xpYmFjbC5oIHVzYWJp bGl0eQpjb25maWd1cmU6MjY3NzE6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdk d2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzoyMzI6MTA6 IGZhdGFsIGVycm9yOiBhY2wvbGliYWNsLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAy MzIgfCAjaW5jbHVkZSA8YWNsL2xpYmFjbC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToyNjc3MTogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05F VEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVm aW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBT WVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2Rl ZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElS RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19U SU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2Rl ZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwg I2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJT IDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNk ZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVf VzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9P TEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFS RkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVm aW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9E VUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElC R0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJ VkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUg SEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAj ZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVm aW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RS VU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUg MQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2Rl ZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwg I2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmlu ZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUg SEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVf UFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAK fCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUg SEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmlu ZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVm aW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFW RV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAx CnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAj ZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhB VkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RS VE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNB VCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVm aW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9Q QVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NP Q0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7 Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5w d19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9T RVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgo X2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAo SVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBE RUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1Mg MQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1Nf TlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAx CnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZp bmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1B Q1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1h Y3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NU UlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmlu ZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwg I2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JF QUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5L IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05H X0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmlu ZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBI QVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50Cnwg I2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwg I2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAj ZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxz eXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRl IDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUg PHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVf U1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVk IEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNs dWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1 ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNs dWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNs dWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVk ZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPGFjbC9saWJhY2wuaD4KY29uZmlndXJl OjI2NzcxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjc3MTogY2hlY2tpbmcgYWNsL2xpYmFjbC5o IHByZXNlbmNlCmNvbmZpZ3VyZToyNjc3MTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLUUgLW10dW5l PWdlbmVyaWMgICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6MTk5OjEwOiBmYXRhbCBlcnJvcjogYWNs L2xpYmFjbC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgMTk5IHwgI2luY2x1ZGUgPGFj bC9saWJhY2wuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0 ZXJtaW5hdGVkLgpjb25maWd1cmU6MjY3NzE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lP TlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRf QklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRv d3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0gg MQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5l IEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVf U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9T WVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVf SU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJF QURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExT IDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2Rl ZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMg MQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5l IEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEK fCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUg TU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmlu ZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZp bmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVm aW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhN TDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAx CnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBI QVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVf U0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VU UkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJ VElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAx CnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9S IDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9O UCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9J TklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2Rl ZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElO SyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9C WkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFU IDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZp bmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9H RVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUy IDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNk ZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmlu ZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZv cmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZP X0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNk ZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5l IE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnBy b2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5l IERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09 ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChf Y18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAg KF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJ Q0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVf U1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5l IFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJ R0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8 ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VS QVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05T ICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1 aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FM SUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRf RVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NM QVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwg I2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUg SEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05F RCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFN RSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVgg MQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJM RVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNf QUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xf U0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9G Uk9NX1RFWFQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YWNsL2xpYmFj bC5oPgpjb25maWd1cmU6MjY3NzE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI2NzcxOiBjaGVja2lu ZyBmb3IgYWNsL2xpYmFjbC5oCmNvbmZpZ3VyZToyNjc3MTogcmVzdWx0OiBubwpjb25maWd1cmU6 MjY3OTE6IGNoZWNraW5nIGZvciBhY2xfZW50cmllcwpjb25maWd1cmU6MjY3OTE6IGdjYyAtSSAu Li9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2Vu ZXJpYyAgICBjb25mdGVzdC5jICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2dj Yy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3cz Mi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjaTNFSGIyLm86IGluIGZ1bmN0aW9uIGBtYWlu JzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxi dWlsZC9jb25mdGVzdC5jOjIzMzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgYWNsX2VudHJpZXMn CmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJl OjI2NzkxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxf VVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJT IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdD Q19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFW RV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxM T0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdE X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0gg MQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAj ZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmlu ZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg VVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVm aW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pT T04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0g MQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmlu ZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIg MQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxs Igp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAx CnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZG SVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNk ZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVf R0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5U IDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmlu ZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBI QVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5l IEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhB VkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xP RzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVT UyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZF X0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9S RUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFW RV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xD SE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwg I2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BT RUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUg MQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhB VkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9U IDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIK fCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUg VVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8 ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19E SVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZp bmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9T RVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVm aW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRM SU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZp bmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAy MDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVS ICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1p bmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldp blVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29t cCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhB VkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVm aW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09U IDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19y ZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9M TE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19M T05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9U Wk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS TkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1RE X1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9V UFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhB VkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5l IEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGFjbF9lbnRyaWVzIHRvIGFuIGlubm9jdW91cyB2 YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYWNsX2VudHJpZXMuCnwgICAgRm9y IGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICov CnwgI2RlZmluZSBhY2xfZW50cmllcyBpbm5vY3VvdXNfYWNsX2VudHJpZXMKfCAKfCAvKiBTeXN0 ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3Rv dHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgYWNsX2VudHJpZXMgKCk7 IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxs aW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3Vu ZGVmIGFjbF9lbnRyaWVzCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBhY2xfZW50cmllcyAoKTsKfCAvKiBUaGUg R05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1l bnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJl IGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUg bm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9hY2xfZW50 cmllcyB8fCBkZWZpbmVkIF9fc3R1Yl9fX2FjbF9lbnRyaWVzCnwgY2hva2UgbWUKfCAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBhY2xfZW50cmllcyAoKTsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI2NzkxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjgw NTogY2hlY2tpbmcgZm9yIEFDTF9GSVJTVF9FTlRSWQpjb25maWd1cmU6MjY4MjM6IGdjYyAtSSAu Li9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRl c3QuYyA+JjUKY29uZnRlc3QuYzoyMDE6MTI6IGVycm9yOiAnQUNMX0ZJUlNUX0VOVFJZJyB1bmRl Y2xhcmVkIGhlcmUgKG5vdCBpbiBhIGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFuICdQU0xJU1RfRU5U UlknPwogIDIwMSB8IGludCB0eXBlID0gQUNMX0ZJUlNUX0VOVFJZOwogICAgICB8ICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+CiAgICAgIHwgICAgICAgICAgICBQU0xJU1RfRU5UUlkKY29uZmln dXJlOjI2ODIzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1B SUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFE RVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RB VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAj ZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVm aW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hP UEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5l IEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUg SEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9N QUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVf UFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFN X0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEK fCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZp bmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2Rl ZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2Rl ZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZp bmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAj ZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZF X0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9U SUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9Y SU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2Rl ZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pM SUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIu ZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRf SCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9T VUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8 ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhB VkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9S SU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNk ZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2Rl ZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmlu ZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVm aW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5l IEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9H RVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZF X0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQURE UkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBI QVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklD QUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFW RV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUg SEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZF X0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAx CnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAj ZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZF X1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZ UEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEK fCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5l IEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVm aW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFU RV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVM OiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZp bmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcv Jwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJ U19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNk ZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklD RV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAj ZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hB TkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNk ZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChD KSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVB REVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0 LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUv VldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZl Y29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5l IEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAj ZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9S T09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3Qg X19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRf Rk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8 ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9O R19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFW RV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf U1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0Vf U1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1Jf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRH Uk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5l IFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5l IEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVm aW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxz eXMvYWNsLmg+CnwgaW50IHR5cGUgPSBBQ0xfRklSU1RfRU5UUlk7CnwgaW50CnwgbWFpbiAoKQp8 IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI2ODMwOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToyNjgzNzogY2hlY2tpbmcgZm9yIEFDTF9UWVBFX0VYVEVOREVECmNvbmZpZ3Vy ZToyNjg1NTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5l PWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjIwMToxMjogZXJyb3I6ICdBQ0xf VFlQRV9FWFRFTkRFRCcgdW5kZWNsYXJlZCBoZXJlIChub3QgaW4gYSBmdW5jdGlvbikKICAyMDEg fCBpbnQgdHlwZSA9IEFDTF9UWVBFX0VYVEVOREVEOwogICAgICB8ICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn4KY29uZmlndXJlOjI2ODU1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJ T05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VU X0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5k b3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9I IDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZF X0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VU UEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhS RUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRM UyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNk ZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJT IDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmlu ZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAx CnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5l IE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVm aW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2Rl ZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJY TUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00g MQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUg SEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZF X1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00g MQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJP UiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVf TlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRf SU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNk ZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJ TksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRf QlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RB VCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVm aW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBF MiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAj ZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZp bmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZm b3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAj ZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmlu ZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJw cm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmlu ZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9 PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAo X2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQ IChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVW SUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZF X1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmlu ZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlS SUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIK fCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdV UkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9O UyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9i dWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9B TElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5U X0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9T TEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8 ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5l IEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVN IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdO RUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5B TUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJS X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tF RCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFC TEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lT X0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNM X1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xf RlJPTV9URVhUIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBl cy5oPgp8ICNpbmNsdWRlIDxzeXMvYWNsLmg+CnwgaW50IHR5cGUgPSBBQ0xfVFlQRV9FWFRFTkRF RDsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MjY4NjI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTI0OiBjaGVja2luZyBmb3IgX19idWls dGluX2V4cGVjdApjb25maWd1cmU6MjcxMzk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0 ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAg PiY1IApjb25maWd1cmU6MjcxMzk6ICQ/ID0gMApjb25maWd1cmU6MjcxNjQ6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZToyNzE3ODogY2hlY2tpbmcgYnl0ZXN3YXAuaCB1c2FiaWxpdHkKY29uZmlndXJl OjI3MTc4OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9 Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MjM0OjEwOiBmYXRhbCBlcnJvcjog Ynl0ZXN3YXAuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogIDIzNCB8ICNpbmNsdWRlIDxi eXRlc3dhcC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJt aW5hdGVkLgpjb25maWd1cmU6MjcxNzg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFj cyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3Mv Igp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2Rl ZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RE SU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNf XyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVm aW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1Mg MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9G VU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmlu ZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklU UyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3Mt bnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwg I2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8 ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhB VkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE SU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNf V0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1B R0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdF U0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURT X0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEK fCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmlu ZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8 ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhB VkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAj ZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9E VUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBI QVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUg TkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5l IEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIg MQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwg I2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZF X1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VU TE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJ TUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJ R01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElN RVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwg I2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEK fCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJ TFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklU IDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmlu ZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAx CnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVS TyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEK fCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUg SEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRU SU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEK fCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZp bmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBI QVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsg Zm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NP REVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZp bmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5V TExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nl c3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJ UkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6 JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18p ID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9j XykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0Ug Ii9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RB Q0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJ TkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hU ICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNk ZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJ T04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICIt LXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0 IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdO RUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQ UkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNI X0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2Rl ZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFW RV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAx CnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8 ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJ WkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNM X0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VU X0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9N X1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBF Q1QgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 ICNpbmNsdWRlIDxieXRlc3dhcC5oPgpjb25maWd1cmU6MjcxNzg6IHJlc3VsdDogbm8KY29uZmln dXJlOjI3MTc4OiBjaGVja2luZyBieXRlc3dhcC5oIHByZXNlbmNlCmNvbmZpZ3VyZToyNzE3ODog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLUUgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jCmNvbmZ0 ZXN0LmM6MjAxOjEwOiBmYXRhbCBlcnJvcjogYnl0ZXN3YXAuaDogTm8gc3VjaCBmaWxlIG9yIGRp cmVjdG9yeQogIDIwMSB8ICNpbmNsdWRlIDxieXRlc3dhcC5oPgogICAgICB8ICAgICAgICAgIF5+ fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MjcxNzg6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAj ZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf TUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAx CnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNk ZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0gg MQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBI QVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9X Q0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxM T0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1Jf QlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZH IDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmlu ZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUg VVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBI QVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAx CnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBI QVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBI QVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhB VkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAj ZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJ RiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAx CnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUg SEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBB R0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJ TUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04g MQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdO QUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8 ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAj ZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmlu ZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9B TExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5l IEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAj ZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUg MQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8 ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAx CnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVm aW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVf RlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RB VCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2Rl ZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBI QVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9V VElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAx CnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUg SEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQ Q0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFN RSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19E RVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAo X2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQ KF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNk ZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1Q X1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZp bmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklP TlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIK fCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVm aW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxv YWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUg SEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8 ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExP Q0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUg RlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2Rl ZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURf U1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xP TkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8 ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNk ZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZF T0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VU U19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJ TEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJF RSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwg I2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8Ynl0ZXN3YXAuaD4KY29uZmlndXJlOjI3MTc4OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToyNzE3ODogY2hlY2tpbmcgZm9yIGJ5dGVzd2FwLmgKY29uZmlndXJlOjI3MTc4OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToyNzI3NzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBj bG9ja19nZXR0aW1lCmNvbmZpZ3VyZToyNzMyNTogcmVzdWx0OiBub25lIHJlcXVpcmVkCmNvbmZp Z3VyZToyNzMzNzogY2hlY2tpbmcgZm9yIGNsb2NrX2dldHRpbWUKY29uZmlndXJlOjI3MzM3OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzMzNzogY2hlY2tpbmcgZm9yIGNsb2NrX3NldHRpbWUKY29u ZmlndXJlOjI3MzM3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzM2MDogY2hlY2tpbmcgZm9yIGNv cHlfZmlsZV9yYW5nZQpjb25maWd1cmU6MjczOTA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNzQ0 NDogY2hlY2tpbmcgZm9yIGRfdHlwZSBtZW1iZXIgaW4gZGlyZWN0b3J5IHN0cnVjdApjb25maWd1 cmU6Mjc0NjM6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1n ZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgPiY1IApjb25mdGVzdC5jOiBJ biBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjEwOjIxOiBlcnJvcjogJ3N0cnVjdCBkaXJl bnQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ2RfdHlwZScKICAyMTAgfCBzdHJ1Y3QgZGlyZW50IGRw OyBkcC5kX3R5cGUgPSAwOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgXgpjb25maWd1cmU6 Mjc0NjM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9V U0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5f U09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0ND X0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZF X01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExP Q19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0Rf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAx CnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBU SU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5l IEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5l IFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBV U0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZp bmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNP TiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkg MQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAx CnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5l IEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAx CnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwi CnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJ WCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2Rl ZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9H RVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQg MQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5l IEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhB VkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUg SEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFW RV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNP Q0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9H MiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNT IDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVf RlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTEla RV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JF QURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZF X0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENI TU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAj ZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZp bmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNF TEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAx CnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNk ZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFW RV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUg SEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1Qg MQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8 ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBV U0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwg I2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJ UkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmlu ZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NF UChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZp bmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJ TkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmlu ZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIw MjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIg InczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWlu Z3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2lu VXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21w Igp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFW RV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZp bmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1Qg MQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jl c3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xM T1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2Rl ZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xP TkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1Ra TkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05P Tk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJO TEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERf U1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQ U19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFW RV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUg SEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUg VVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05V TElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2lu Y2x1ZGUgPGRpcmVudC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RydWN0IGRpcmVudCBk cDsgZHAuZF90eXBlID0gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3NDcz OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzU3NDogY2hlY2tpbmcgd2hldGhlciAvLyBpcyBkaXN0 aW5jdCBmcm9tIC8KY29uZmlndXJlOjI3NjAzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6Mjc2MTQ6 IGNoZWNraW5nIHdoZXRoZXIgZHVwMiB3b3Jrcwpjb25maWd1cmU6Mjc3MTY6IHJlc3VsdDogeWVz CmNvbmZpZ3VyZToyNzk3NTogY2hlY2tpbmcgd2hldGhlciBmY2htb2RhdCtBVF9TWU1MSU5LX05P Rk9MTE9XIHdvcmtzIG9uIG5vbi1zeW1saW5rcwpjb25maWd1cmU6MjgwNDI6IHJlc3VsdDogbm90 LW5lZWRlZC1zby15ZXMKY29uZmlndXJlOjI4MDk4OiBjaGVja2luZyB3aGV0aGVyIGZjbnRsIGhh bmRsZXMgRl9EVVBGRCBjb3JyZWN0bHkKY29uZmlndXJlOjI4MTcwOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6MjgxODg6IGNoZWNraW5nIHdoZXRoZXIgZmNudGwgdW5kZXJzdGFuZHMgRl9EVVBGRF9D TE9FWEVDCmNvbmZpZ3VyZToyODIzODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI4MzYzOiBjaGVj a2luZyB3aGV0aGVyIGZkb3BlbmRpciBpcyBkZWNsYXJlZApjb25maWd1cmU6MjgzNjM6IGdjYyAt SSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29u ZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjIx NjoxMDogZXJyb3I6ICdmZG9wZW5kaXInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKTsgZGlkIHlvdSBtZWFuICdvcGVuZGlyJz8KICAyMTYgfCAgICh2b2lkKSBmZG9wZW5k aXI7CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+CiAgICAgIHwgICAgICAgICAgb3BlbmRpcgpj b25mdGVzdC5jOjIxNjoxMDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVw b3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZmlndXJl OjI4MzYzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxf VVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJT IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdD Q19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFW RV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxM T0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdE X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0gg MQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAj ZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmlu ZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg VVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVm aW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pT T04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0g MQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmlu ZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIg MQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxs Igp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAx CnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZG SVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNk ZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVf R0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5U IDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmlu ZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBI QVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5l IEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhB VkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xP RzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVT UyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZF X0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9S RUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFW RV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xD SE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwg I2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BT RUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUg MQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhB VkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9U IDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIK fCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUg VVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8 ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19E SVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZp bmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9T RVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVm aW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRM SU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZp bmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAy MDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVS ICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1p bmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldp blVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29t cCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhB VkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVm aW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09U IDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19y ZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9M TE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19M T05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9U Wk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS TkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1RE X1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9V UFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhB VkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5l IEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5l IFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEK fCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJ Ql9GQUNDRVNTQVQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5jbHVkZSA8ZGly ZW50Lmg+CnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIGZkb3BlbmRpcgp8ICNp ZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQpIGZkb3BlbmRpcjsKfCAjZWxzZQp8ICAgKHZvaWQp IGZkb3BlbmRpcjsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjI4MzYzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODM4NjogY2hlY2tpbmcgd2hl dGhlciBmZG9wZW5kaXIgd29ya3MKY29uZmlndXJlOjI4NDQ0OiByZXN1bHQ6IG5vLWJ1dC1ub3Qt bmVlZGVkLXNvLXllcwpjb25maWd1cmU6Mjg0ODk6IGNoZWNraW5nIGZvciBmbGV4aWJsZSBhcnJh eSBtZW1iZXIKY29uZmlndXJlOjI4NTE3OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8y IC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToyODUx NzogJD8gPSAwCmNvbmZpZ3VyZToyODUyNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI4NTQzOiBj aGVja2luZyBmb3IgX19mcGVuZGluZwpjb25maWd1cmU6Mjg1NjA6IGdjYyAtSSAuLi9zcmMvbnQv aW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBj b25mdGVzdC5jICAgPiY1IApjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0 LmM6MjE3OjEwOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnX19m cGVuZGluZycgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgMjE3IHwgcmV0dXJu ICEgX19mcGVuZGluZyAoc3RkaW4pOwogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn4KQzovbXN5 czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8u Li8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY3FV WllYNS5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3du bG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoyMTc6IHVuZGVmaW5lZCBy ZWZlcmVuY2UgdG8gYF9fZnBlbmRpbmcnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVk IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjI4NTYwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFj cyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIg MQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRF TlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZG U0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3 aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09V TkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJD RV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2Rl ZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFU SVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVf R0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUg VEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dO VVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8 ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9C QVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2Rl ZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01T MiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVm aW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNk ZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAj ZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwg I2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9M SUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5E T00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZp bmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBI QVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZF X1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRI UkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVf U0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZS T00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJF UlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5B TUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFW RV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJ TkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8 ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVB RExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElD SVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hN T0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAj ZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhB VkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9Q SVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEK fCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNk ZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5l IHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5H SU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEK fCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2Rl ZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBz dWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2Rl ZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2Nf KSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8 fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllf U0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRf REVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBI QVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2Rl ZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENP UFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05G SUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BU SU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29t cC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVU RV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVN RU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJM RV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1Mg MQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RF Q0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVm aW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVN TUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19T SUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9U Wk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9J TUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFS RVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVT SF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRE VEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVf U1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVf QUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9B Q0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmlu ZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5D VF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJ QkxFX0FSUkFZX01FTUJFUiAvKiovCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAj aW5jbHVkZSA8c3RkaW8uaD4KfCAgICAgI2lmIEhBVkVfU1RESU9fRVhUX0gKfCAgICAgIyBpbmNs dWRlIDxzdGRpb19leHQuaD4KfCAgICAgI2VuZGlmCnwgICAKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiAhIF9fZnBlbmRpbmcgKHN0ZGluKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjI4NTY5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODYwODogY2hlY2tpbmcgd2hldGhl ciBmc3RhdGF0ICguLi4sIDApIHdvcmtzCmNvbmZpZ3VyZToyODY0NDogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjI4Njk0OiBjaGVja2luZyBmb3Igc3lzL21vdW50LmgKY29uZmlndXJlOjI4Njk0OiBn Y2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAg IGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MjQ1OjEwOiBmYXRhbCBlcnJvcjogc3lzL21vdW50 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAyNDUgfCAjaW5jbHVkZSA8c3lzL21vdW50 Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6Mjg2OTQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNk ZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBT VERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdT X0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9P UEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBV WF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8 ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwg I2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmlu ZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZp bmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBI QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElN SVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9I IDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJ IDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAx CnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJM RUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVm aW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0Vf RklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZp bmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBN IDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5l IEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19T VUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJ QkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZF X0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVf VElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNk ZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmlu ZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVD VCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxF IDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEK fCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sg MQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8 ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmlu ZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVm aW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9G UkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAj ZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZF X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2Rl ZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwg I2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVm aW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9G U1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZE QVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVm aW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFW RV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZ TUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8 ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQg MQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFW RV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVW SUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAx CnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9S WV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAj ZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdc XCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwg SVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYv ZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZF UkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NO VCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5 cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUg VEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4 Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZp eD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0 aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8 ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lP TlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJ U1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSBy ZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmlu ZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS TU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJ R05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZp bmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1B TExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZp bmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldS SVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8 ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUg MQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQg MQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8 ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9T RV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNk ZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAK fCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVN QkVSIC8qKi8KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+Cnwg I2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNs dWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8 ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMg IGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5k aWYKfCAgICAgICNpZiBIQVZFX1NZU19QQVJBTV9ICnwgICAgICAgICNpbmNsdWRlIDxzeXMvcGFy YW0uaD4KfCAgICAgICAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL21vdW50Lmg+CmNvbmZpZ3Vy ZToyODY5NDogcmVzdWx0OiBubwpjb25maWd1cmU6Mjg3MTE6IGNoZWNraW5nIGhvdyB0byBnZXQg ZmlsZSBzeXN0ZW0gc3BhY2UgdXNhZ2UKY29uZmlndXJlOjI4NzI0OiBjaGVja2luZyBmb3Igc3Rh dHZmcyBmdW5jdGlvbiAoU1ZSNCkKY29uZmlndXJlOjI4NzU5OiBnY2MgLUkgLi4vc3JjL250L2lu YyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICAgY29u ZnRlc3QuYyAgID4mNSAKY29uZnRlc3QuYzoyMTQ6MTA6IGZhdGFsIGVycm9yOiBzeXMvc3RhdHZm cy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgMjE0IHwgI2luY2x1ZGUgPHN5cy9zdGF0 dmZzLmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZToyODc1OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8i CnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19f IDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRT IDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1u dCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAj ZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwg I2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFW RV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RB VF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19X QUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFH RV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VT SVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNf RU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8 ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5l IFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwg I2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFW RV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNk ZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RV TEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhB VkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBO QVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUg SEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAx CnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAj ZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVf U0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRM T0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElN SVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lH TUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1F UiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAj ZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8 ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlM VElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQg MQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5l IEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEK fCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJP IDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8 ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBI QVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJ TUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8 ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmlu ZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhB VkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBm b3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09E RVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmlu ZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVM TF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vz c2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElS RUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzon KQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykg PT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2Nf KSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAi L2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFD S19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lO RE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQg IkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2Rl ZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElP TiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0t cHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQg LS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05F RCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBS RVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hf SVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVm aW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZF X1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEK fCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwg I2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0la RSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xf SCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRf RklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01f VEVYVCAxCnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0VYUEVD VCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElC X0NMT1NFX1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAx CnwgI2RlZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9GRE9QRU5E SVIgMAp8ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmluZSBGTEVYSUJMRV9BUlJB WV9NRU1CRVIgLyoqLwp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5jbHVkZSA8c3lz L3R5cGVzLmg+CnwgI2lmZGVmIF9fb3NmX18KfCAiRG8gbm90IHVzZSBUcnU2NCdzIHN0YXR2ZnMg aW1wbGVtZW50YXRpb24iCnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9zdGF0dmZzLmg+Cnwg Cnwgc3RydWN0IHN0YXR2ZnMgZnNkOwp8IAp8ICNpZiBkZWZpbmVkIF9fQVBQTEVfXyAmJiBkZWZp bmVkIF9fTUFDSF9fCnwgI2luY2x1ZGUgPGxpbWl0cy5oPgp8IC8qIE9uIE1hYyBPUyBYID49IDEw LjUsIGZfYmxvY2tzIGluICdzdHJ1Y3Qgc3RhdHZmcycgaXMgYSAzMi1iaXQgcXVhbnRpdHk7Cnwg ICAgdGhhdCBjb21tb25seSBsaW1pdHMgZmlsZSBzeXN0ZW1zIHRvIDQgVGlCLiAgV2hlcmVhcyBm X2Jsb2NrcyBpbgp8ICAgICdzdHJ1Y3Qgc3RhdGZzJyBpcyBhIDY0LWJpdCB0eXBlLCB0aGFua3Mg dG8gdGhlIGxhcmdlLWZpbGUgc3VwcG9ydAp8ICAgIHRoYXQgd2FzIGVuYWJsZWQgYWJvdmUuICBJ biB0aGlzIGNhc2UsIGRvbid0IHVzZSBzdGF0dmZzKCk7IHVzZSBzdGF0ZnMoKQp8ICAgIGluc3Rl YWQuICAqLwp8IGludCBjaGVja19mX2Jsb2Nrc19zaXplW3NpemVvZiBmc2QuZl9ibG9ja3MgKiBD SEFSX0JJVCA8PSAzMiA/IC0xIDogMV07CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCBzdGF0dmZzICgwLCAmZnNkKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI4 NzY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODgyMzogY2hlY2tpbmcgZm9yIHR3by1hcmd1bWVu dCBzdGF0ZnMgd2l0aCBzdGF0ZnMuZl9mcnNpemUgbWVtYmVyCmNvbmZpZ3VyZToyODg1MTogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVu ZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoyMjE6MTk6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2ZzZCcgaXNu J3Qga25vd24KICAyMjEgfCAgICAgc3RydWN0IHN0YXRmcyBmc2Q7CiAgICAgIHwgICAgICAgICAg ICAgICAgICAgXn5+CmNvbmZ0ZXN0LmM6MjIzOjEyOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJh dGlvbiBvZiBmdW5jdGlvbiAnc3RhdGZzJyBbLVdpbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlv bl0KICAyMjMgfCAgICAgcmV0dXJuIHN0YXRmcyAoIi4iLCAmZnNkKSAhPSAwOwogICAgICB8ICAg ICAgICAgICAgXn5+fn5+CmNvbmZpZ3VyZToyODg1MTogJD8gPSAxCmNvbmZpZ3VyZTogcHJvZ3Jh bSBleGl0ZWQgd2l0aCBzdGF0dXMgMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZp bmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVO QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNk ZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2Rl ZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBI QVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUg SEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NE RUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRT X0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwg I2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEK fCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEK fCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwg I2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQg MQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5l IEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklM RV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUg VVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEK fCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhB VkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZG SVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdD Q0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VM SVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElG RiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZp bmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBI QVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAx CnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEK fCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAj ZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8 ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNk ZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBI QVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5l IEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFN RV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVm aW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NB Tk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmlu ZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2Rl ZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5l IEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RB VEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkg MQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5l IEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9J U1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJ TksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNk ZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8 ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9N QlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNF ICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwg I2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9T RVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVm aW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcp CnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNf REVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNw Igp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZM T1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAx CnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmln aHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVS TV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82 NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0v aG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1u YXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNk ZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMg MQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJ TkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0 cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBM U1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9E RSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05F RF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExP Q18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUg X1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZF UlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBV VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRF X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNk ZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNk ZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8 ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8 ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8ICNk ZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9TRV9T VFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZp bmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAKfCAj ZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVNQkVS IC8qKi8KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2lmZGVmIEhBVkVfU1lTX1BBUkFN X0gKfCAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX01P VU5UX0gKfCAjaW5jbHVkZSA8c3lzL21vdW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT X1ZGU19ICnwgI2luY2x1ZGUgPHN5cy92ZnMuaD4KfCAjZW5kaWYKfCAgIGludAp8ICAgbWFpbiAo KQp8ICAgewp8ICAgICBzdHJ1Y3Qgc3RhdGZzIGZzZDsKfCAgICAgZnNkLmZfZnJzaXplID0gMDsK fCAgICAgcmV0dXJuIHN0YXRmcyAoIi4iLCAmZnNkKSAhPSAwOwp8ICAgfQpjb25maWd1cmU6Mjg4 NjI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI4ODczOiBjaGVja2luZyBmb3IgMy1hcmd1bWVudCBz dGF0ZnMgZnVuY3Rpb24gKERFQyBPU0YvMSkKY29uZmlndXJlOjI4ODk1OiBnY2MgLUkgLi4vc3Jj L250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMg ICAgY29uZnRlc3QuYyAgID4mNSAKY29uZnRlc3QuYzoyMTE6MTA6IGZhdGFsIGVycm9yOiBzeXMv bW91bnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogIDIxMSB8ICNpbmNsdWRlIDxzeXMv bW91bnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuDQpjb25maWd1cmU6Mjg4OTU6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVk IHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxf VVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJT IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdD Q19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFW RV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxM T0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdE X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0gg MQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAj ZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmlu ZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg VVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVm aW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pT T04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0g MQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmlu ZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIg MQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxs Igp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAx CnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZG SVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNk ZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVf R0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5U IDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmlu ZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBI QVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5l IEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhB VkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xP RzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVT UyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZF X0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9S RUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFW RV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xD SE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwg I2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BT RUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUg MQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhB VkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9U IDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIK fCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUg VVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8 ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19E SVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZp bmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9T RVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVm aW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRM SU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZp bmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAy MDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVS ICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1p bmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldp blVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29t cCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhB VkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVm aW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09U IDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19y ZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9M TE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19M T05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9U Wk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS TkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1RE X1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9V UFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhB VkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5l IEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5l IFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEK fCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJ Ql9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBH TlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KfCAjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9tb3VudC5oPgp8ICAgaW50CnwgICBt YWluICgpCnwgICB7CnwgICAgIHN0cnVjdCBzdGF0ZnMgZnNkOwp8ICAgICBmc2QuZl9mc2l6ZSA9 IDA7CnwgICAgIHJldHVybiBzdGF0ZnMgKCIuIiwgJmZzZCwgc2l6ZW9mIChzdHJ1Y3Qgc3RhdGZz KSkgIT0gMDsKfCAgIH0KY29uZmlndXJlOjI4OTA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODky MzogY2hlY2tpbmcgZm9yIHR3by1hcmd1bWVudCBzdGF0ZnMgd2l0aCBzdGF0ZnMuZl9ic2l6ZSBt ZW1iZXIgKEFJWCwgNC4zQlNEKQpjb25maWd1cmU6Mjg5NTE6IGdjYyAtSSAuLi9zcmMvbnQvaW5j IC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25m dGVzdC5jICAgPiY1IApjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6 MjIxOjE5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdmc2QnIGlzbid0IGtub3duCiAgMjIxIHwg ICAgIHN0cnVjdCBzdGF0ZnMgZnNkOwogICAgICB8ICAgICAgICAgICAgICAgICAgIF5+fgpjb25m dGVzdC5jOjIyMzoxMjogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g J3N0YXRmcycgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgMjIzIHwgICAgIHJl dHVybiBzdGF0ZnMgKCIuIiwgJmZzZCkgIT0gMDsKICAgICAgfCAgICAgICAgICAgIF5+fn5+fgpj b25maWd1cmU6Mjg5NTE6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3Rh dHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw czovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAx CnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9B UEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEK fCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RF TV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZp bmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhB VkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRI X1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05U R1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1f TUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBf Rk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVf UlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNk ZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVm aW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZp bmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQ RUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZp bmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4i CnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFW RV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5B TUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVm aW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRE T1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RS U0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRP IDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAx CnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdO RURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2Rl ZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAx CnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9O QU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FU IDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNT QVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwg I2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBI QVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVf TFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8 ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZp bmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhB VkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklO VEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFO R0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVm aW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5l IFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxM X05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUg SVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllf U0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5Z X1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkK fCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NF VEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAj ZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxF X0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJt LmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwg I2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rv d25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVm aW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9G IDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVf QUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVm aW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFT SEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFW RV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hS IDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEK fCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJF QURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hB Ul9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01P REVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dF VF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNM X0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wg MQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5P TklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5l IERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNT QVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRP UEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8IAp8ICNpZmRlZiBIQVZFX1NZU19QQVJBTV9ICnwgI2luY2x1ZGUgPHN5 cy9wYXJhbS5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19NT1VOVF9ICnwgI2luY2x1ZGUg PHN5cy9tb3VudC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19WRlNfSAp8ICNpbmNsdWRl IDxzeXMvdmZzLmg+CnwgI2VuZGlmCnwgICBpbnQKfCAgIG1haW4gKCkKfCAgIHsKfCAgICAgc3Ry dWN0IHN0YXRmcyBmc2Q7CnwgICAgIGZzZC5mX2JzaXplID0gMDsKfCAgICAgcmV0dXJuIHN0YXRm cyAoIi4iLCAmZnNkKSAhPSAwOwp8ICAgfQpjb25maWd1cmU6Mjg5NjI6IHJlc3VsdDogbm8KY29u ZmlndXJlOjI4OTc1OiBjaGVja2luZyBmb3IgZm91ci1hcmd1bWVudCBzdGF0ZnMgKFNWUjMpCmNv bmZpZ3VyZToyODk5NTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAt TzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCmNvbmZ0ZXN0 LmM6MjEwOjEwOiBmYXRhbCBlcnJvcjogc3lzL3N0YXRmcy5oOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CiAgMjEwIHwgI2luY2x1ZGUgPHN5cy9zdGF0ZnMuaD4KICAgICAgfCAgICAgICAgICBe fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLg0KY29uZmlndXJlOjI4OTk1OiAk PyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9G SUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1f VFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBI QVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP Q0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAj ZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUg SEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9U SUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9T Q1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlog MQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhB VkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAx CnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU IDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09N UCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9Q TkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5l IEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhB VkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEK fCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmlu ZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZF X1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9H QUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVm aW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9T QlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBI QVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZF X0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05U TCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNC TEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwg I2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhB VkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9X SURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMg MQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNk ZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNv cwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2Nf KSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9 PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElS RUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxU X1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNk ZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoq Lwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2Rl ZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1B Q1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09O RklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0 aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9B VFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZF X1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmlu ZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRI X1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAx CnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1F X1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dD SEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENI QVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmlu ZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmlu ZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5l IEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVf X19CVUlMVElOX0VYUEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8 ICNkZWZpbmUgR05VTElCX0NMT1NFX1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNf RElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9GRE9QRU5ESVIgMAp8ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmlu ZSBGTEVYSUJMRV9BUlJBWV9NRU1CRVIgLyoqLwp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAK fCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9zdGF0ZnMuaD4KfCAgIGlu dAp8ICAgbWFpbiAoKQp8ICAgewp8ICAgICBzdHJ1Y3Qgc3RhdGZzIGZzZDsKfCAgICAgcmV0dXJu IHN0YXRmcyAoIi4iLCAmZnNkLCBzaXplb2YgZnNkLCAwKSAhPSAwOwp8ICAgfQpjb25maWd1cmU6 MjkwMDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5MDIyOiBjaGVja2luZyBmb3IgdHdvLWFyZ3Vt ZW50IHN0YXRmcyB3aXRoIHN0YXRmcy5mX2ZzaXplIG1lbWJlciAoNC40QlNEIGFuZCBOZXRCU0Qp CmNvbmZpZ3VyZToyOTA0ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1n MyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCmNvbmZ0 ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyMTk6MTk6IGVycm9yOiBzdG9y YWdlIHNpemUgb2YgJ2ZzZCcgaXNuJ3Qga25vd24KICAyMTkgfCAgICAgc3RydWN0IHN0YXRmcyBm c2Q7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgXn5+CmNvbmZ0ZXN0LmM6MjIxOjEyOiB3YXJu aW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnc3RhdGZzJyBbLVdpbXBsaWNp dC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAyMjEgfCAgICAgcmV0dXJuIHN0YXRmcyAoIi4iLCAm ZnNkKSAhPSAwOwogICAgICB8ICAgICAgICAgICAgXn5+fn5+CmNvbmZpZ3VyZToyOTA0ODogJD8g PSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBf X0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklM RV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZ UEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFW RV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JF U09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NL RVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEK fCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZp bmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFW RV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUg SEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2Rl ZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhB VkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElG WSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NS T0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEK fCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZF X0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8 ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAx CnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAg MQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5H IDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBI QVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZF X1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwg I2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5l IEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFW RV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUg SEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9S RUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJ X1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURf U0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmlu ZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElO X1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JS SyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFW RV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9F WFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZF X0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwg MQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZp bmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBI QVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxB TksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAx CnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNk ZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZF X0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lE VEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEK fCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVm aW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MK fCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykg KChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0g Jy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVD VE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9T T1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVm aW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8K fCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZp bmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNT X0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJ R19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2 ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRU UklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9T VEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUg RE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9X T1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklS T05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8 ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9U X0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf Q0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQ VVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFS X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUg SEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUg SEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBI QVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAj ZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJ U1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfRkRPUEVORElSIDAKfCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUg RkxFWElCTEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwg I2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpZmRlZiBIQVZFX1NZU19QQVJBTV9ICnwgI2luY2x1 ZGUgPHN5cy9wYXJhbS5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19NT1VOVF9ICnwgI2lu Y2x1ZGUgPHN5cy9tb3VudC5oPgp8ICNlbmRpZgp8ICAgaW50CnwgICBtYWluICgpCnwgICB7Cnwg ICAgIHN0cnVjdCBzdGF0ZnMgZnNkOwp8ICAgICBmc2QuZl9mc2l6ZSA9IDA7CnwgICAgIHJldHVy biBzdGF0ZnMgKCIuIiwgJmZzZCkgIT0gMDsKfCAgIH0KY29uZmlndXJlOjI5MDU5OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToyOTE4MzogY2hlY2tpbmcgd2hldGhlciBmdXRpbWVucyB3b3Jrcwpjb25m aWd1cmU6MjkyNDc6IHJlc3VsdDogbm90LW5lZWRlZC1zby15ZXMKY29uZmlndXJlOjI5MjkxOiBj aGVja2luZyBmb3IgZ2V0bG9hZGF2Zwpjb25maWd1cmU6MjkyOTE6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZToyOTY1MTogY2hlY2tpbmcgc3lzL2xvYWRhdmcuaCB1c2FiaWxpdHkKY29uZmlndXJlOjI5 NjUxOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2Vu ZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MjQxOjEwOiBmYXRhbCBlcnJvcjogc3lz L2xvYWRhdmcuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogIDI0MSB8ICNpbmNsdWRlIDxz eXMvbG9hZGF2Zy5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlv biB0ZXJtaW5hdGVkLgpjb25maWd1cmU6Mjk2NTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNz IDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAx CnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVO U0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZT RVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndp bmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VO RCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNF X0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVm aW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJ VkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBU SFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05V VExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwg I2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JB UlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVm aW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMy IDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZp bmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2Rl ZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNk ZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAj ZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJ QlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRP TSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmlu ZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhB VkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVf U0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhS RUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9T RVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJP TSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVS Uk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFN RV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZF X19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lO RF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwg I2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFE TElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJ VF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1P REFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNk ZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFW RV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJ UEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8 ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2Rl ZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUg dmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJ TkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8 ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVm aW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1 YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVm aW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18p ID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8 IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9T RVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9E RVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhB VkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVm aW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09Q WVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Igp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJ R1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJ T05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21w L2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRF X0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1F TlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxF X1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAx CnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZp bmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1N RU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJ R05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1Ra TkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lN QVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJF UlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNI X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERU QUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9T WVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9B Q0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FD TF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJ Tl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5l IEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNU X1JPT1QgMQp8ICNkZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkRPUEVORElSIDAKfCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElC TEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBl cy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9z dGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGli Lmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJf SAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9N RU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0 cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3Ry aW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGlu dHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0 ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlz dGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8c3lzL2xvYWRhdmcuaD4KY29uZmlndXJlOjI5NjUx OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTY1MTogY2hlY2tpbmcgc3lzL2xvYWRhdmcuaCBwcmVz ZW5jZQpjb25maWd1cmU6Mjk2NTE6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1FIC1tdHVuZT1nZW5l cmljICAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjIwODoxMDogZmF0YWwgZXJyb3I6IHN5cy9sb2Fk YXZnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAyMDggfCAjaW5jbHVkZSA8c3lzL2xv YWRhdmcuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVy bWluYXRlZC4KY29uZmlndXJlOjI5NjUxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNz LyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05T X18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ VFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dz LW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEK fCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBI QVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lN QUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFH RVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFE U19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAx CnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZp bmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEK fCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBI QVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwg I2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1P RFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUg SEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5l IE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmlu ZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwy IDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8 ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFW RV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NF VExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T SUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJ TUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8 ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAx CnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5J VCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZp bmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksg MQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpF Uk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAx CnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5l IEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAx CnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVm aW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUg SEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3Jr IGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19D T0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVm aW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBO VUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9j ZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBE SVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAn OicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2Nf KSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChf Y18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNF ICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NU QUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBX SU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdI VCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAj ZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFU SU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAi LS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWls dCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElH TkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VY UFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFT SF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNk ZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhB VkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEK fCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVT SVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FD TF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NF VF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJP TV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQ RUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVM SUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09U IDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BF TkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FS UkFZX01FTUJFUiAvKiovCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMv bG9hZGF2Zy5oPgpjb25maWd1cmU6Mjk2NTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5NjUxOiBj aGVja2luZyBmb3Igc3lzL2xvYWRhdmcuaApjb25maWd1cmU6Mjk2NTE6IHJlc3VsdDogbm8KY29u ZmlndXJlOjI5NjY2OiBjaGVja2luZyB3aGV0aGVyIGdldGxvYWRhdmcgaXMgZGVjbGFyZWQKY29u ZmlndXJlOjI5NjY2OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAt bXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoyMjM6MTA6IGVycm9yOiAnZ2V0bG9hZGF2ZycgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgMjIzIHwgICAodm9pZCkgZ2V0bG9hZGF2ZzsK ICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MjIzOjEwOiBub3RlOiBlYWNo IHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVu Y3Rpb24gaXQgYXBwZWFycyBpbgpjb25maWd1cmU6Mjk2NjY6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBf X0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklM RV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZ UEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFW RV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JF U09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NL RVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEK fCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVm aW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZp bmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFW RV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUg SEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2Rl ZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhB VkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElG WSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NS T0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEK fCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZF X0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8 ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAx CnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAg MQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5H IDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBI QVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZF X1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwg I2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5l IEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFW RV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUg SEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9S RUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJ X1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURf U0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmlu ZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElO X1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JS SyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFW RV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9F WFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZF X0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwg MQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZp bmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBI QVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxB TksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAx CnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNk ZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZF X0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lE VEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEK fCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVm aW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MK fCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykg KChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0g Jy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVD VE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9T T1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVm aW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8K fCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZp bmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNT X0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJ R19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2 ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRU UklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9T VEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUg RE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9X T1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklS T05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8 ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9U X0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf Q0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQ VVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFS X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUg SEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUg SEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBI QVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAj ZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJ U1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfRkRPUEVORElSIDAKfCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUg RkxFWElCTEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lm IEhBVkVfU1lTX0xPQURBVkdfSAp8ICAgICAvKiBPcGVuSW5kaWFuYSBoYXMgYSBidWc6IDxzeXMv dGltZS5oPiBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZQp8ICAgICAgICA8c3lzL2xvYWRhdmcuaD4u ICAqLwp8ICAgICAjIGluY2x1ZGUgPHN5cy90aW1lLmg+CnwgICAgICMgaW5jbHVkZSA8c3lzL2xv YWRhdmcuaD4KfCAgICAgI2VuZGlmCnwgICAgICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAKfCBpbnQK fCBtYWluICgpCnwgewp8ICNpZm5kZWYgZ2V0bG9hZGF2Zwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 ICAgKHZvaWQpIGdldGxvYWRhdmc7CnwgI2Vsc2UKfCAgICh2b2lkKSBnZXRsb2FkYXZnOwp8ICNl bmRpZgp8ICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6Mjk2NjY6 IHJlc3VsdDogbm8KY29uZmlndXJlOjI5OTM5OiBjaGVja2luZyBmb3IgYmNyeXB0LmgKY29uZmln dXJlOjI5OTM5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1 bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToyOTkzOTogJD8gPSAwCmNvbmZp Z3VyZToyOTkzOTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI5OTUxOiBjaGVja2luZyB3aGV0aGVy IHRoZSBiY3J5cHQgbGlicmFyeSBpcyBndWFyYW50ZWVkIHRvIGJlIHByZXNlbnQKY29uZmlndXJl OjI5OTc5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMDAzNDogY2hlY2tpbmcgZm9yIGdldHRpbWVv ZmRheSB3aXRoIFBPU0lYIHNpZ25hdHVyZQpjb25maWd1cmU6MzAwNjI6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjMwMDYyOiAkPyA9IDAKY29uZmlndXJlOjMwMDg3OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MzAxNDk6IGNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIHRo ZSBfX2lubGluZSBrZXl3b3JkCmNvbmZpZ3VyZTozMDE2NjogZ2NjIC1JIC4uL3NyYy9udC9pbmMg LWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25m aWd1cmU6MzAxNjY6ICQ/ID0gMApjb25maWd1cmU6MzAxNzM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTozMDE5NTogY2hlY2tpbmcgZ21wLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTozMDE5NTogZ2NjIC1J IC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25m dGVzdC5jID4mNQpjb25maWd1cmU6MzAxOTU6ICQ/ID0gMApjb25maWd1cmU6MzAxOTU6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTozMDE5NTogY2hlY2tpbmcgZ21wLmggcHJlc2VuY2UKY29uZmlndXJl OjMwMTk1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtRSAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0 LmMKY29uZmlndXJlOjMwMTk1OiAkPyA9IDAKY29uZmlndXJlOjMwMTk1OiByZXN1bHQ6IHllcwpj b25maWd1cmU6MzAxOTU6IGNoZWNraW5nIGZvciBnbXAuaApjb25maWd1cmU6MzAxOTU6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTozMDIwODogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBf X2dtcHpfcm9pbml0X24KY29uZmlndXJlOjMwMjM5OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBj b25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3Qu YyAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5n dzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpc bXN5czY0XHRtcFxjY0tVS1FqUi5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21l XFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoy MjU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9fZ21wel9yb2luaXRfbicKY29sbGVjdDIuZXhl OiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MzAyMzk6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAj ZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVf TUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAx CnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNk ZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0gg MQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBI QVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9X Q0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxM T0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1Jf QlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZH IDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmlu ZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUg VVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBI QVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAx CnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBI QVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBI QVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhB VkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAj ZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJ RiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAx CnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUg SEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBB R0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJ TUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04g MQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdO QUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8 ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAj ZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmlu ZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9B TExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5l IEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAj ZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUg MQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8 ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAx CnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVm aW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVf RlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RB VCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2Rl ZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBI QVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9V VElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAx CnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUg SEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQ Q0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFN RSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19E RVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAo X2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQ KF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNk ZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1Q X1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZp bmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklP TlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIK fCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVm aW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxv YWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUg SEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8 ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExP Q0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUg RlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2Rl ZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURf U1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xP TkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8 ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNk ZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZF T0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VU U19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJ TEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJF RSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwg I2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNB TElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9V QkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAKfCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5E SVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAjZGVmaW5lIF9fR0VU T1BUX1BSRUZJWCBycGxfCnwgI2RlZmluZSBIQVZFX0JDUllQVF9IIDEKfCAjZGVmaW5lIEdFVFRJ TUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBfR0xfUkVQTEFDRV9JRUVFNzU0X0ggMQp8 ICNkZWZpbmUgSEFWRV9fX0lOTElORSAxCnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBfX2dtcHpfcm9pbml0X24gKCk7CnwgaW50 CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gX19nbXB6X3JvaW5pdF9uICgpOwp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MzAyMzk6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0 ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1s Z21wICAgID4mNSAKY29uZmlndXJlOjMwMjM5OiAkPyA9IDAKY29uZmlndXJlOjMwMjU2OiByZXN1 bHQ6IC1sZ21wCmNvbmZpZ3VyZTozMDM1MDogY2hlY2tpbmcgZm9yIG1lbW1lbQpjb25maWd1cmU6 MzAzNTA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdh cmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2 NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4 Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjTU9uVTg1Lm86IGlu IGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFj c1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjI0ODogdW5kZWZpbmVkIHJlZmVyZW5jZSB0 byBgbWVtbWVtJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz CmNvbmZpZ3VyZTozMDM1MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09Q RU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVY X0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0Cnwg I2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAj ZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5l IEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmlu ZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf Q0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1J VFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0gg MQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkg MQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEK fCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxF RCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZp bmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9G SUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmlu ZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0g MQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUg SEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NV RkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElC R0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVf RUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9U SUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2Rl ZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5l IEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNU IDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUg MQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8 ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAx CnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwg I2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5l IEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZp bmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZS QU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNk ZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVf Q0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVm aW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAj ZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZp bmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZT VEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRB WSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZp bmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZF X0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lN TElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwg I2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAx CnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZF X01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJ Q0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEK fCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZ X1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNk ZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xc JykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJ U19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9k c3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVS RkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05U IDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHly aWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBU RVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2 XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4 PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRo LW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwg I2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9O UyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElT VElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJl c3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJN T0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lH TkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVm aW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFM TE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmlu ZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G UFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJ VEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZp bmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwg I2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwg I2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAx CnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAx CnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0VYUEVDVCAxCnwg I2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX0NMT1NF X1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2Rl ZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9GRE9QRU5ESVIgMAp8 ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmluZSBGTEVYSUJMRV9BUlJBWV9NRU1C RVIgLyoqLwp8ICNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJwbF8KfCAjZGVmaW5lIEhBVkVfQkNS WVBUX0ggMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIF9H TF9SRVBMQUNFX0lFRUU3NTRfSCAxCnwgI2RlZmluZSBIQVZFX19fSU5MSU5FIDEKfCAjZGVmaW5l IEhBVkVfR01QX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgbWVtbWVt IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgbWVt bWVtLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0 aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgbWVtbWVtIGlubm9jdW91c19tZW1tZW0KfCAKfCAvKiBT eXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHBy b3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbWVtbWVtICgpOyBi ZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBp cyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFu ZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGlt aXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRl ZiBtZW1tZW0KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBh dm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg cmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4 dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIG1lbW1lbSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFy eSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRv IGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5h bWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUg aXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9tZW1tZW0gfHwgZGVmaW5lZCBf X3N0dWJfX19tZW1tZW0KfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7 CnwgcmV0dXJuIG1lbW1lbSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjMw MzUwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMDQ4NTogY2hlY2tpbmcgZm9yIG1lbXBjcHkKY29u ZmlndXJlOjMwNDg1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1P MiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgID4mNSAKY29uZnRlc3Qu YzoyMzc6Njogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9u ICdtZW1wY3B5JzsgZXhwZWN0ZWQgJ3ZvaWQgKih2b2lkICosIGNvbnN0IHZvaWQgKiwgbG9uZyBs b25nIHVuc2lnbmVkIGludCknIFstV2J1aWx0aW4tZGVjbGFyYXRpb24tbWlzbWF0Y2hdCiAgMjM3 IHwgY2hhciBtZW1wY3B5ICgpOwogICAgICB8ICAgICAgXn5+fn5+fgpjb25maWd1cmU6MzA0ODU6 ICQ/ID0gMApjb25maWd1cmU6MzA0ODU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMDUzNTogY2hl Y2tpbmcgZm9yIG1lbXJjaHIKY29uZmlndXJlOjMwNTM1OiBnY2MgLUkgLi4vc3JjL250L2luYyAt byBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICAgY29uZnRl c3QuYyAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1t aW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTog QzpcbXN5czY0XHRtcFxjY3lkTDRaRS5vOiBpbiBmdW5jdGlvbiBgbWFpbic6CkM6XG1zeXM2NFxo b21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBcYnVpbGQvY29uZnRlc3Qu YzoyNDk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG1lbXJjaHInCmNvbGxlY3QyLmV4ZTogZXJy b3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjMwNTM1OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmlu ZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf TkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNk ZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5l IFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAj ZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9E SVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAj ZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEK fCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZF UlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwg I2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFW RV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9U T09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9I QVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNk ZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9N T0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9M SUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05B VElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmlu ZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8 ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVf VFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0la RSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAx CnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAj ZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEK fCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVm aW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFW RV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0Mg MAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZF X19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmlu ZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAj ZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVm aW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNk ZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBI QVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5D IDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8 ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUg SEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9T VFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVO U0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNk ZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05M X1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVf U09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIg JzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHct PnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNF X1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykg KChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18p IChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5l IERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JL UyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERP U19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFE IDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2Rl ZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBF TUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9l bWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVf U1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVm aW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEK fCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNf UkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUg SEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJ TksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xP TkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVm aW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5l IEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQK fCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEK fCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8 ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZp bmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVf TEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9T TEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEK fCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9Q UkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZE QVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVm aW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZF X01FTVBDUFkgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgbWVtcmNociB0 byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIG1lbXJj aHIuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRp bWVvZmRheS4gICovCnwgI2RlZmluZSBtZW1yY2hyIGlubm9jdW91c19tZW1yY2hyCnwgCnwgLyog U3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBw cm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIG1lbXJjaHIgKCk7 IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxs aW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3Vu ZGVmIG1lbXJjaHIKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIG1lbXJjaHIgKCk7CnwgLyogVGhlIEdOVSBDIGxp YnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAg ICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxs eSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBu YW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfbWVtcmNociB8fCBkZWZp bmVkIF9fc3R1Yl9fX21lbXJjaHIKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4g KCkKfCB7CnwgcmV0dXJuIG1lbXJjaHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZTozMDUzNTogcmVzdWx0OiBubwpjb25maWd1cmU6MzA3MDI6IGNoZWNraW5nIHdoZXRoZXIg c2lnbmF0dXJlIG9mIHBzZWxlY3QgY29uZm9ybXMgdG8gUE9TSVgKY29uZmlndXJlOjMwNzMwOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6MzA3MzM6IGNoZWNraW5nIHdoZXRoZXIgcHNlbGVjdCBkZXRl Y3RzIGludmFsaWQgZmRzCmNvbmZpZ3VyZTozMDc5NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMw ODM0OiBjaGVja2luZyB3aGV0aGVyIHB0aHJlYWRfc2lnbWFzayBpcyBhIG1hY3JvCmNvbmZpZ3Vy ZTozMDg1ODogcmVzdWx0OiBubwpjb25maWd1cmU6MzA4ODc6IGNoZWNraW5nIHdoZXRoZXIgcHRo cmVhZF9zaWdtYXNrIHdvcmtzIHdpdGhvdXQgLWxwdGhyZWFkCmNvbmZpZ3VyZTozMDkxNjogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVu ZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoyMjQ6MjI6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnc2lnc2V0 X3QnOyBkaWQgeW91IG1lYW4gJ19zaWdzZXRfdCc/CiAgMjI0IHwgICAgICAgICAgICAgICAgICAg ICAgc2lnc2V0X3Qgc2V0OwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+CiAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgX3NpZ3NldF90CmNvbmZ0ZXN0LmM6MjI1OjIyOiB3 YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnc2lnZW1wdHlzZXQnIFst V2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIDIyNSB8ICAgICAgICAgICAgICAgICAg ICAgIHNpZ2VtcHR5c2V0ICgmc2V0KTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fgpjb25maWd1cmU6MzA5MTY6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVk IHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxf VVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJT IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdD Q19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFW RV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxM T0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdE X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0gg MQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAj ZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmlu ZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUg VVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVm aW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pT T04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0g MQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmlu ZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIg MQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxs Igp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAx CnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZG SVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNk ZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVf R0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5U IDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmlu ZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBI QVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5l IEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhB VkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xP RzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVT UyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZF X0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9S RUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFW RV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xD SE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwg I2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BT RUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUg MQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhB VkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9U IDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIK fCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUg VVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8 ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19E SVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZp bmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9T RVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVm aW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRM SU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZp bmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAy MDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVS ICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1p bmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldp blVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29t cCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhB VkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVm aW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09U IDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19y ZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9M TE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19M T05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9U Wk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS TkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1RE X1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9V UFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhB VkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5l IEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5l IFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEK fCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJ Ql9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBH TlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwg I2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwg I2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0Vf SUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBf SCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEK fCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRpbWUgbnN0 cmZ0aW1lCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAgICAgICAgICAgICAgICAj aW5jbHVkZSA8cHRocmVhZC5oPgp8ICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8c2lnbmFs Lmg+CnwgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICAgICAgICAg ICAgICAgICAgaW50IG1haW4gKCkKfCAgICAgICAgICAgICAgICAgICAgewp8ICAgICAgICAgICAg ICAgICAgICAgIHNpZ3NldF90IHNldDsKfCAgICAgICAgICAgICAgICAgICAgICBzaWdlbXB0eXNl dCAoJnNldCk7CnwgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB0aHJlYWRfc2lnbWFzayAo MTcyOSwgJnNldCwgTlVMTCkgIT0gMDsKfCAgICAgICAgICAgICAgICAgICAgfQpjb25maWd1cmU6 MzA5Mjc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMDk0MDogY2hlY2tpbmcgd2hldGhlciBwdGhy ZWFkX3NpZ21hc2sgcmV0dXJucyBlcnJvciBudW1iZXJzCmNvbmZpZ3VyZTozMDk4NDogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjMwOTk1OiBjaGVja2luZyB3aGV0aGVyIHB0aHJlYWRfc2lnbWFzayB1 bmJsb2NrcyBzaWduYWxzIGNvcnJlY3RseQpjb25maWd1cmU6MzEwNjQ6IHJlc3VsdDogbm90IHJl bGV2YW50CmNvbmZpZ3VyZTozMTExMjogY2hlY2tpbmcgd2hldGhlciByZWFkbGluayBzaWduYXR1 cmUgaXMgY29ycmVjdApjb25maWd1cmU6MzExMzA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1n MyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl OjMxMTMwOiAkPyA9IDAKY29uZmlndXJlOjMxMTM3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzEx Mzk6IGNoZWNraW5nIHdoZXRoZXIgcmVhZGxpbmsgaGFuZGxlcyB0cmFpbGluZyBzbGFzaCBjb3Jy ZWN0bHkKY29uZmlndXJlOjMxMTgyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzEyMzM6IGNoZWNr aW5nIHdoZXRoZXIgcmVhZGxpbmthdCBzaWduYXR1cmUgaXMgY29ycmVjdApjb25maWd1cmU6MzEy NTE6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5l cmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjMxMjUxOiAkPyA9IDAKY29uZmlndXJlOjMx MjU4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzEzMTU6IGNoZWNraW5nIGZvciB3b3JraW5nIHJl X2NvbXBpbGVfcGF0dGVybgpjb25maWd1cmU6MzE1OTI6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1v IGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVz dC5jICAgPiY1IApjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjQy OjQ1OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdyZWdleCcgaXNuJ3Qga25vd24KICAyNDIgfCAg ICAgICAgICAgICBzdGF0aWMgc3RydWN0IHJlX3BhdHRlcm5fYnVmZmVyIHJlZ2V4OwogICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn4KY29uZnRl c3QuYzoyNDY6MzM6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ3JlZ3MnIGlzbid0IGtub3duCiAg MjQ2IHwgICAgICAgICAgICAgc3RydWN0IHJlX3JlZ2lzdGVycyByZWdzOwogICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fgpjb25mdGVzdC5jOjI1MjoyMTogZXJyb3I6 ICdTSUdBTFJNJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5 b3UgbWVhbiAnU0lHQUJSVCc/CiAgMjUyIHwgICAgICAgICAgICAgc2lnbmFsIChTSUdBTFJNLCBT SUdfREZMKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KICAgICAgfCAgICAg ICAgICAgICAgICAgICAgIFNJR0FCUlQKY29uZnRlc3QuYzoyNTI6MjE6IG5vdGU6IGVhY2ggdW5k ZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlv biBpdCBhcHBlYXJzIGluCmNvbmZ0ZXN0LmM6MjUzOjEzOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnYWxhcm0nIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0 aW9uXQogIDI1MyB8ICAgICAgICAgICAgIGFsYXJtICgyKTsKICAgICAgfCAgICAgICAgICAgICBe fn5+fgpjb25mdGVzdC5jOjI3MToxOTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ3JlX3NldF9zeW50YXgnIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9u XQogIDI3MSB8ICAgICAgICAgICAgICAgICAgIHJlX3NldF9zeW50YXggKFJFX1NZTlRBWF9HUkVQ IHwgUkVfSEFUX0xJU1RTX05PVF9ORVdMSU5FCiAgICAgIHwgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fgpjb25mdGVzdC5jOjI3MTozNDogZXJyb3I6ICdSRV9TWU5UQVhfR1JFUCcgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgMjcxIHwgICAgICAgICAgICAg ICAgICAgcmVfc2V0X3N5bnRheCAoUkVfU1lOVEFYX0dSRVAgfCBSRV9IQVRfTElTVFNfTk9UX05F V0xJTkUKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fgpjb25mdGVzdC5jOjI3MTo1MTogZXJyb3I6ICdSRV9IQVRfTElTVFNfTk9UX05FV0xJTkUn IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIDI3MSB8ICAgICAgICAg ICAgICAgICAgIHJlX3NldF9zeW50YXggKFJFX1NZTlRBWF9HUkVQIHwgUkVfSEFUX0xJU1RTX05P VF9ORVdMSU5FCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29uZnRlc3QuYzoyNzI6MzY6IGVy cm9yOiAnUkVfSUNBU0UnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKTsg ZGlkIHlvdSBtZWFuICdSRUdfSUNBU0UnPwogIDI3MiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgUkVfSUNBU0UpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn4KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJFR19JQ0FTRQpjb25mdGVzdC5jOjI3NDoyMzogd2FybmluZzogaW1wbGljaXQgZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24gJ3JlX2NvbXBpbGVfcGF0dGVybicgWy1XaW1wbGljaXQtZnVuY3Rp b24tZGVjbGFyYXRpb25dCiAgMjc0IHwgICAgICAgICAgICAgICAgICAgcyA9IHJlX2NvbXBpbGVf cGF0dGVybiAocGF0LCBzaXplb2YgcGF0IC0gMSwgJnJlZ2V4KTsKICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CmNvbmZ0ZXN0LmM6Mjc5OjI3OiB3YXJuaW5n OiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAncmVfc2VhcmNoJyBbLVdpbXBsaWNp dC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAyNzkgfCAgICAgICAgICAgICAgICAgICAgICAgaWYg KHJlX3NlYXJjaCAoJnJlZ2V4LCBkYXRhLCBzaXplb2YgZGF0YSAtIDEsCiAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KY29uZnRlc3QuYzozMjQ6Mjg6IGVycm9yOiAn UkVfU1lOVEFYX0VHUkVQJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikK ICAzMjQgfCAgICAgICAgICAgICByZV9zZXRfc3ludGF4IChSRV9TWU5UQVhfRUdSRVAgfCBSRV9I QVRfTElTVFNfTk9UX05FV0xJTkUpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fgpjb25mdGVzdC5jOjMzOToyODogZXJyb3I6ICdSRV9TWU5UQVhfUE9T SVhfRUdSRVAnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIDMzOSB8 ICAgICAgICAgICAgIHJlX3NldF9zeW50YXggKFJFX1NZTlRBWF9QT1NJWF9FR1JFUCk7CiAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbmZ0 ZXN0LmM6MzU0OjUyOiBlcnJvcjogJ1JFX05PX0VNUFRZX1JBTkdFUycgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgMzU0IHwgICAgICAgICAgICAgcmVfc2V0X3N5bnRh eCAoUkVfU1lOVEFYX1BPU0lYX0VHUkVQIHwgUkVfTk9fRU1QVFlfUkFOR0VTKTsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn4KY29uZnRlc3QuYzozODA6MjE6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdyZV9tYXRjaCcgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRp b25dCiAgMzgwIHwgICAgICAgICAgICAgICAgIGlmIChyZV9tYXRjaCAoJnJlZ2V4LCAiYW4iLCAy LCAwLCAmcmVncykgIT0gMikKICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+CmNv bmZ0ZXN0LmM6NDA5OjI4OiBlcnJvcjogJ1JFX1NZTlRBWF9FTUFDUycgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgNDA5IHwgICAgICAgICAgICAgcmVfc2V0X3N5bnRh eCAoUkVfU1lOVEFYX0VNQUNTIHwgUkVfSUNBU0UpOwogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgpjb25mdGVzdC5jOjQyOToyODogZXJyb3I6ICdSRV9T WU5UQVhfUE9TSVhfQkFTSUMnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogIDQyOSB8ICAgICAgICAgICAgIHJlX3NldF9zeW50YXggKFJFX1NZTlRBWF9QT1NJWF9CQVNJ QwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpjb25mdGVzdC5jOjQzMDozMTogZXJyb3I6ICdSRV9DT05URVhUX0lOVkFMSURfRFVQJyB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICA0MzAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmIH5SRV9DT05URVhUX0lOVkFMSURfRFVQCiAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb25mdGVzdC5jOjQ0 MToxOTogZXJyb3I6ICdSRUdfU1RBUlRFTkQnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFuICdSRUdfRVBBUkVOJz8KICA0NDEgfCAgICAgICAgICAg ICBpZiAoISBSRUdfU1RBUlRFTkQpCiAgICAgIHwgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+CiAgICAgIHwgICAgICAgICAgICAgICAgICAgUkVHX0VQQVJFTgpjb25maWd1cmU6MzE1OTI6 ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUt ZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZF X1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp bmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNE X1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUg X0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5l IEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVf SCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwg I2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5l IEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVm aW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8 ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmlu ZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJO T1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lU X1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVa WiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUg SEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVT IDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NK SVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9D T01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZF X1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZp bmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUg SEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMg MQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwg I2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2Rl ZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5l IEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVm aW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhB VkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZF X0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhS RUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNk ZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJ TFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZF X1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhB VkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUg SEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZD TlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAj ZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZp bmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9J U0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lN QVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEK fCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUg SEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVS X1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VU UyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwg I2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dl Y29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChf Y18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18p ID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19E SVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFV TFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwg I2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAv KiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAj ZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBF TUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19D T05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9u YXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNU X0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhB VkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVm aW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBB VEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9F TlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5U IDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJ TUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVf V0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVU Q0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVm aW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVm aW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZp bmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFW RV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAx CnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9J U19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVm aW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVgg cnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElN RVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhB VkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBD UFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJ TkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxyZWdleC5oPgp8IAp8ICAgICAgICAgICAgICNpbmNsdWRlIDxs b2NhbGUuaD4KfCAgICAgICAgICAgICAjaW5jbHVkZSA8bGltaXRzLmg+CnwgICAgICAgICAgICAg I2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8ICAgICAgICAgICAgICNpZiBkZWZpbmVkIE1fQ0hFQ0tf QUNUSU9OIHx8IEhBVkVfREVDTF9BTEFSTQp8ICAgICAgICAgICAgICMgaW5jbHVkZSA8c2lnbmFs Lmg+CnwgICAgICAgICAgICAgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAgICAgICAgICAgICAjZW5k aWYKfCAKfCAgICAgICAgICAgICAjaWYgSEFWRV9NQUxMT0NfSAp8ICAgICAgICAgICAgICMgaW5j bHVkZSA8bWFsbG9jLmg+CnwgICAgICAgICAgICAgI2VuZGlmCnwgCnwgICAgICAgICAgICAgI2lm ZGVmIE1fQ0hFQ0tfQUNUSU9OCnwgICAgICAgICAgICAgLyogRXhpdCB3aXRoIGRpc3Rpbmd1aXNo YWJsZSBleGl0IGNvZGUuICAqLwp8ICAgICAgICAgICAgIHN0YXRpYyB2b2lkIHNpZ2FicnRfbm9f Y29yZSAoaW50IHNpZykgeyByYWlzZSAoU0lHVEVSTSk7IH0KfCAgICAgICAgICAgICAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IGludCByZXN1bHQgPSAwOwp8ICAgICAgICAgICAgIHN0 YXRpYyBzdHJ1Y3QgcmVfcGF0dGVybl9idWZmZXIgcmVnZXg7CnwgICAgICAgICAgICAgdW5zaWdu ZWQgY2hhciBmb2xkZWRfY2hhcnNbVUNIQVJfTUFYICsgMV07CnwgICAgICAgICAgICAgaW50IGk7 CnwgICAgICAgICAgICAgY29uc3QgY2hhciAqczsKfCAgICAgICAgICAgICBzdHJ1Y3QgcmVfcmVn aXN0ZXJzIHJlZ3M7CnwgCnwgICAgICAgICAgICAgLyogU29tZSBidWlsZHMgb2YgZ2xpYmMgZ28g aW50byBhbiBpbmZpbml0ZSBsb29wIG9uIHRoaXMKfCAgICAgICAgICAgICAgICB0ZXN0LiAgVXNl IGFsYXJtIHRvIGZvcmNlIGRlYXRoLCBhbmQgbWFsbG9wdCB0byBhdm9pZAp8ICAgICAgICAgICAg ICAgIG1hbGxvYyByZWN1cnNpb24gaW4gZGlhZ25vc2luZyB0aGUgY29ycnVwdGVkIGhlYXAuICov CnwgI2lmIEhBVkVfREVDTF9BTEFSTQp8ICAgICAgICAgICAgIHNpZ25hbCAoU0lHQUxSTSwgU0lH X0RGTCk7CnwgICAgICAgICAgICAgYWxhcm0gKDIpOwp8ICNlbmRpZgp8ICNpZmRlZiBNX0NIRUNL X0FDVElPTgp8ICAgICAgICAgICAgIHNpZ25hbCAoU0lHQUJSVCwgc2lnYWJydF9ub19jb3JlKTsK fCAgICAgICAgICAgICBtYWxsb3B0IChNX0NIRUNLX0FDVElPTiwgMik7CnwgI2VuZGlmCnwgCnwg ICAgICAgICAgICAgaWYgKHNldGxvY2FsZSAoTENfQUxMLCAiZW5fVVMuVVRGLTgiKSkKfCAgICAg ICAgICAgICAgIHsKfCAgICAgICAgICAgICAgICAgewp8ICAgICAgICAgICAgICAgICAgIC8qIGh0 dHBzOi8vc291cmNld2FyZS5vcmcvbWwvbGliYy1oYWNrZXIvMjAwNi0wOS9tc2cwMDAwOC5odG1s CnwgICAgICAgICAgICAgICAgICAgICAgVGhpcyB0ZXN0IG5lZWRzIHZhbGdyaW5kIHRvIGNhdGNo IHRoZSBidWcgb24gRGViaWFuCnwgICAgICAgICAgICAgICAgICAgICAgR05VL0xpbnV4IDMuMSB4 ODYsIGJ1dCBpdCBtaWdodCBjYXRjaCB0aGUgYnVnIGJldHRlcgp8ICAgICAgICAgICAgICAgICAg ICAgIG9uIG90aGVyIHBsYXRmb3JtcyBhbmQgaXQgc2hvdWxkbid0IGh1cnQgdG8gdHJ5IHRoZQp8 ICAgICAgICAgICAgICAgICAgICAgIHRlc3QgaGVyZS4gICovCnwgICAgICAgICAgICAgICAgICAg c3RhdGljIGNoYXIgY29uc3QgcGF0W10gPSAiaW5zZXJ0IGludG8iOwp8ICAgICAgICAgICAgICAg ICAgIHN0YXRpYyBjaGFyIGNvbnN0IGRhdGFbXSA9CnwgICAgICAgICAgICAgICAgICAgICAiXHhG RlwwXHgxMlx4QTJceEFBXHhDNFx4QjEsS1x4MTJceEM0XHhCMSpceEFDSyI7CnwgICAgICAgICAg ICAgICAgICAgcmVfc2V0X3N5bnRheCAoUkVfU1lOVEFYX0dSRVAgfCBSRV9IQVRfTElTVFNfTk9U X05FV0xJTkUKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJFX0lDQVNFKTsK fCAgICAgICAgICAgICAgICAgICBtZW1zZXQgKCZyZWdleCwgMCwgc2l6ZW9mIHJlZ2V4KTsKfCAg ICAgICAgICAgICAgICAgICBzID0gcmVfY29tcGlsZV9wYXR0ZXJuIChwYXQsIHNpemVvZiBwYXQg LSAxLCAmcmVnZXgpOwp8ICAgICAgICAgICAgICAgICAgIGlmIChzKQp8ICAgICAgICAgICAgICAg ICAgICAgcmVzdWx0IHw9IDE7CnwgICAgICAgICAgICAgICAgICAgZWxzZQp8ICAgICAgICAgICAg ICAgICAgICAgewp8ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVfc2VhcmNoICgmcmVnZXgs IGRhdGEsIHNpemVvZiBkYXRhIC0gMSwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCwgc2l6ZW9mIGRhdGEgLSAxLCAmcmVncykKfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICE9IC0xKQp8ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAxOwp8ICAgICAg ICAgICAgICAgICAgICAgICByZWdmcmVlICgmcmVnZXgpOwp8ICAgICAgICAgICAgICAgICAgICAg fQp8ICAgICAgICAgICAgICAgICB9CnwgCnwgICAgICAgICAgICAgICAgIHsKfCAgICAgICAgICAg ICAgICAgICAvKiBUaGlzIHRlc3QgaXMgZnJvbSBnbGliYyBidWcgMTUwNzguCnwgICAgICAgICAg ICAgICAgICAgICAgVGhlIHRlc3QgY2FzZSBpcyBmcm9tIEFuZHJlYXMgU2Nod2FiIGluCnwgICAg ICAgICAgICAgICAgICAgICAgPGh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvbGliYy1hbHBoYS8y MDEzLTAxL21zZzAwOTY3Lmh0bWw+Lgp8ICAgICAgICAgICAgICAgICAgICAgICovCnwgICAgICAg ICAgICAgICAgICAgc3RhdGljIGNoYXIgY29uc3QgcGF0W10gPSAiW154XXgiOwp8ICAgICAgICAg ICAgICAgICAgIHN0YXRpYyBjaGFyIGNvbnN0IGRhdGFbXSA9CnwgICAgICAgICAgICAgICAgICAg ICAvKiA8VTEwMDA+PFUxMDNCPjxVMTAzRD48VTEwMTQ+PFUxMDNBPjxVMTAyRj48VTEwMTU+PFUx MDNBPiAqLwp8ICAgICAgICAgICAgICAgICAgICAgIlx4ZTFceDgwXHg4MCIKfCAgICAgICAgICAg ICAgICAgICAgICJceGUxXHg4MFx4YmIiCnwgICAgICAgICAgICAgICAgICAgICAiXHhlMVx4ODBc eGJkIgp8ICAgICAgICAgICAgICAgICAgICAgIlx4ZTFceDgwXHg5NCIKfCAgICAgICAgICAgICAg ICAgICAgICJceGUxXHg4MFx4YmEiCnwgICAgICAgICAgICAgICAgICAgICAiXHhlMVx4ODBceGFm Igp8ICAgICAgICAgICAgICAgICAgICAgIlx4ZTFceDgwXHg5NSIKfCAgICAgICAgICAgICAgICAg ICAgICJceGUxXHg4MFx4YmEiCnwgICAgICAgICAgICAgICAgICAgICAieCI7CnwgICAgICAgICAg ICAgICAgICAgcmVfc2V0X3N5bnRheCAoMCk7CnwgICAgICAgICAgICAgICAgICAgbWVtc2V0ICgm cmVnZXgsIDAsIHNpemVvZiByZWdleCk7CnwgICAgICAgICAgICAgICAgICAgcyA9IHJlX2NvbXBp bGVfcGF0dGVybiAocGF0LCBzaXplb2YgcGF0IC0gMSwgJnJlZ2V4KTsKfCAgICAgICAgICAgICAg ICAgICBpZiAocykKfCAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAxOwp8ICAgICAgICAg ICAgICAgICAgIGVsc2UKfCAgICAgICAgICAgICAgICAgICAgIHsKfCAgICAgICAgICAgICAgICAg ICAgICAgaSA9IHJlX3NlYXJjaCAoJnJlZ2V4LCBkYXRhLCBzaXplb2YgZGF0YSAtIDEsCnwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHNpemVvZiBkYXRhIC0gMSwgMCk7 CnwgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IDAgJiYgaSAhPSAyMSkKfCAgICAgICAg ICAgICAgICAgICAgICAgICByZXN1bHQgfD0gMTsKfCAgICAgICAgICAgICAgICAgICAgICAgcmVn ZnJlZSAoJnJlZ2V4KTsKfCAgICAgICAgICAgICAgICAgICAgIH0KfCAgICAgICAgICAgICAgICAg fQp8IAp8ICAgICAgICAgICAgICAgICBpZiAoISBzZXRsb2NhbGUgKExDX0FMTCwgIkMiKSkKfCAg ICAgICAgICAgICAgICAgICByZXR1cm4gMTsKfCAgICAgICAgICAgICAgIH0KfCAKfCAgICAgICAg ICAgICAvKiBUaGlzIHRlc3QgaXMgZnJvbSBnbGliYyBidWcgMzk1NywgcmVwb3J0ZWQgYnkgQW5k cmV3IE1hY2tleS4gICovCnwgICAgICAgICAgICAgcmVfc2V0X3N5bnRheCAoUkVfU1lOVEFYX0VH UkVQIHwgUkVfSEFUX0xJU1RTX05PVF9ORVdMSU5FKTsKfCAgICAgICAgICAgICBtZW1zZXQgKCZy ZWdleCwgMCwgc2l6ZW9mIHJlZ2V4KTsKfCAgICAgICAgICAgICBzID0gcmVfY29tcGlsZV9wYXR0 ZXJuICgiYVteeF1iIiwgNiwgJnJlZ2V4KTsKfCAgICAgICAgICAgICBpZiAocykKfCAgICAgICAg ICAgICAgIHJlc3VsdCB8PSAyOwp8ICAgICAgICAgICAgIGVsc2UKfCAgICAgICAgICAgICAgIHsK fCAgICAgICAgICAgICAgICAgLyogVGhpcyBzaG91bGQgZmFpbCwgYnV0IHN1Y2NlZWRzIGZvciBn bGliYy0yLjUuICAqLwp8ICAgICAgICAgICAgICAgICBpZiAocmVfc2VhcmNoICgmcmVnZXgsICJh XG5iIiwgMywgMCwgMywgJnJlZ3MpICE9IC0xKQp8ICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8 PSAyOwp8ICAgICAgICAgICAgICAgICByZWdmcmVlICgmcmVnZXgpOwp8ICAgICAgICAgICAgICAg fQp8IAp8ICAgICAgICAgICAgIC8qIFRoaXMgcmVndWxhciBleHByZXNzaW9uIGlzIGZyb20gU3Bl bmNlciBlcmUgdGVzdCBudW1iZXIgNzUKfCAgICAgICAgICAgICAgICBpbiBncmVwLTIuMy4gICov CnwgICAgICAgICAgICAgcmVfc2V0X3N5bnRheCAoUkVfU1lOVEFYX1BPU0lYX0VHUkVQKTsKfCAg ICAgICAgICAgICBtZW1zZXQgKCZyZWdleCwgMCwgc2l6ZW9mIHJlZ2V4KTsKfCAgICAgICAgICAg ICBmb3IgKGkgPSAwOyBpIDw9IFVDSEFSX01BWDsgaSsrKQp8ICAgICAgICAgICAgICAgZm9sZGVk X2NoYXJzW2ldID0gaTsKfCAgICAgICAgICAgICByZWdleC50cmFuc2xhdGUgPSBmb2xkZWRfY2hh cnM7CnwgICAgICAgICAgICAgcyA9IHJlX2NvbXBpbGVfcGF0dGVybiAoImFbWzpdOl1dYlxuIiwg MTEsICZyZWdleCk7CnwgICAgICAgICAgICAgLyogVGhpcyBzaG91bGQgZmFpbCB3aXRoIF9JbnZh bGlkIGNoYXJhY3RlciBjbGFzcyBuYW1lXyBlcnJvci4gICovCnwgICAgICAgICAgICAgaWYgKCFz KQp8ICAgICAgICAgICAgICAgewp8ICAgICAgICAgICAgICAgICByZXN1bHQgfD0gNDsKfCAgICAg ICAgICAgICAgICAgcmVnZnJlZSAoJnJlZ2V4KTsKfCAgICAgICAgICAgICAgIH0KfCAKfCAgICAg ICAgICAgICAvKiBFbnN1cmUgdGhhdCBbYi1hXSBpcyBkaWFnbm9zZWQgYXMgaW52YWxpZCwgd2hl bgp8ICAgICAgICAgICAgICAgIHVzaW5nIFJFX05PX0VNUFRZX1JBTkdFUy4gKi8KfCAgICAgICAg ICAgICByZV9zZXRfc3ludGF4IChSRV9TWU5UQVhfUE9TSVhfRUdSRVAgfCBSRV9OT19FTVBUWV9S QU5HRVMpOwp8ICAgICAgICAgICAgIG1lbXNldCAoJnJlZ2V4LCAwLCBzaXplb2YgcmVnZXgpOwp8 ICAgICAgICAgICAgIHMgPSByZV9jb21waWxlX3BhdHRlcm4gKCJhW2ItYV0iLCA2LCAmcmVnZXgp Owp8ICAgICAgICAgICAgIGlmIChzID09IDApCnwgICAgICAgICAgICAgICB7CnwgICAgICAgICAg ICAgICAgIHJlc3VsdCB8PSA4Owp8ICAgICAgICAgICAgICAgICByZWdmcmVlICgmcmVnZXgpOwp8 ICAgICAgICAgICAgICAgfQp8IAp8ICAgICAgICAgICAgIC8qIFRoaXMgc2hvdWxkIHN1Y2NlZWQs IGJ1dCBkb2VzIG5vdCBmb3IgZ2xpYmMtMi4xLjMuICAqLwp8ICAgICAgICAgICAgIG1lbXNldCAo JnJlZ2V4LCAwLCBzaXplb2YgcmVnZXgpOwp8ICAgICAgICAgICAgIHMgPSByZV9jb21waWxlX3Bh dHRlcm4gKCJ7MSIsIDIsICZyZWdleCk7CnwgICAgICAgICAgICAgaWYgKHMpCnwgICAgICAgICAg ICAgICByZXN1bHQgfD0gODsKfCAgICAgICAgICAgICBlbHNlCnwgICAgICAgICAgICAgICByZWdm cmVlICgmcmVnZXgpOwp8IAp8ICAgICAgICAgICAgIC8qIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBp cyBkZXJpdmVkIGZyb20gYSBwcm9ibGVtIHJlcG9ydAp8ICAgICAgICAgICAgICAgIGFnYWluc3Qg Z2F3ayBmcm9tIEpvcmdlIFN0b2xmaSA8c3RvbGZpQGljLnVuaWNhbXAuYnI+LiAgKi8KfCAgICAg ICAgICAgICBtZW1zZXQgKCZyZWdleCwgMCwgc2l6ZW9mIHJlZ2V4KTsKfCAgICAgICAgICAgICBz ID0gcmVfY29tcGlsZV9wYXR0ZXJuICgiW2FuXDM3MV0qbiIsIDcsICZyZWdleCk7CnwgICAgICAg ICAgICAgaWYgKHMpCnwgICAgICAgICAgICAgICByZXN1bHQgfD0gODsKfCAgICAgICAgICAgICBl bHNlCnwgICAgICAgICAgICAgICB7CnwgICAgICAgICAgICAgICAgIC8qIFRoaXMgc2hvdWxkIG1h dGNoLCBidXQgZG9lcyBub3QgZm9yIGdsaWJjLTIuMi4xLiAgKi8KfCAgICAgICAgICAgICAgICAg aWYgKHJlX21hdGNoICgmcmVnZXgsICJhbiIsIDIsIDAsICZyZWdzKSAhPSAyKQp8ICAgICAgICAg ICAgICAgICAgIHJlc3VsdCB8PSA4Owp8ICAgICAgICAgICAgICAgICBlbHNlCnwgICAgICAgICAg ICAgICAgICAgewp8ICAgICAgICAgICAgICAgICAgICAgZnJlZSAocmVncy5zdGFydCk7CnwgICAg ICAgICAgICAgICAgICAgICBmcmVlIChyZWdzLmVuZCk7CnwgICAgICAgICAgICAgICAgICAgfQp8 ICAgICAgICAgICAgICAgICByZWdmcmVlICgmcmVnZXgpOwp8ICAgICAgICAgICAgICAgfQp8IAp8 ICAgICAgICAgICAgIG1lbXNldCAoJnJlZ2V4LCAwLCBzaXplb2YgcmVnZXgpOwp8ICAgICAgICAg ICAgIHMgPSByZV9jb21waWxlX3BhdHRlcm4gKCJ4IiwgMSwgJnJlZ2V4KTsKfCAgICAgICAgICAg ICBpZiAocykKfCAgICAgICAgICAgICAgIHJlc3VsdCB8PSA4Owp8ICAgICAgICAgICAgIGVsc2UK fCAgICAgICAgICAgICAgIHsKfCAgICAgICAgICAgICAgICAgLyogZ2xpYmMtMi4yLjkzIGRvZXMg bm90IHdvcmsgd2l0aCBhIG5lZ2F0aXZlIFJBTkdFIGFyZ3VtZW50LiAgKi8KfCAgICAgICAgICAg ICAgICAgaWYgKHJlX3NlYXJjaCAoJnJlZ2V4LCAid3h5IiwgMywgMiwgLTIsICZyZWdzKSAhPSAx KQp8ICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSA4Owp8ICAgICAgICAgICAgICAgICBlbHNl CnwgICAgICAgICAgICAgICAgICAgewp8ICAgICAgICAgICAgICAgICAgICAgZnJlZSAocmVncy5z dGFydCk7CnwgICAgICAgICAgICAgICAgICAgICBmcmVlIChyZWdzLmVuZCk7CnwgICAgICAgICAg ICAgICAgICAgfQp8ICAgICAgICAgICAgICAgICByZWdmcmVlICgmcmVnZXgpOwp8ICAgICAgICAg ICAgICAgfQp8IAp8ICAgICAgICAgICAgIC8qIFRoZSB2ZXJzaW9uIG9mIHJlZ2V4LmMgaW4gb2xk ZXIgdmVyc2lvbnMgb2YgZ251bGliCnwgICAgICAgICAgICAgICAgaWdub3JlZCBSRV9JQ0FTRS4g IERldGVjdCB0aGF0IHByb2JsZW0gdG9vLiAgKi8KfCAgICAgICAgICAgICByZV9zZXRfc3ludGF4 IChSRV9TWU5UQVhfRU1BQ1MgfCBSRV9JQ0FTRSk7CnwgICAgICAgICAgICAgbWVtc2V0ICgmcmVn ZXgsIDAsIHNpemVvZiByZWdleCk7CnwgICAgICAgICAgICAgcyA9IHJlX2NvbXBpbGVfcGF0dGVy biAoIngiLCAxLCAmcmVnZXgpOwp8ICAgICAgICAgICAgIGlmIChzKQp8ICAgICAgICAgICAgICAg cmVzdWx0IHw9IDE2Owp8ICAgICAgICAgICAgIGVsc2UKfCAgICAgICAgICAgICAgIHsKfCAgICAg ICAgICAgICAgICAgaWYgKHJlX3NlYXJjaCAoJnJlZ2V4LCAiV1hZIiwgMywgMCwgMywgJnJlZ3Mp IDwgMCkKfCAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gMTY7CnwgICAgICAgICAgICAgICAg IGVsc2UKfCAgICAgICAgICAgICAgICAgICB7CnwgICAgICAgICAgICAgICAgICAgICBmcmVlIChy ZWdzLnN0YXJ0KTsKfCAgICAgICAgICAgICAgICAgICAgIGZyZWUgKHJlZ3MuZW5kKTsKfCAgICAg ICAgICAgICAgICAgICB9CnwgICAgICAgICAgICAgICAgIHJlZ2ZyZWUgKCZyZWdleCk7CnwgICAg ICAgICAgICAgICB9CnwgCnwgICAgICAgICAgICAgLyogQ2F0Y2ggYSBidWcgcmVwb3J0ZWQgYnkg VmluIFNoZWx0b24gaW4KfCAgICAgICAgICAgICAgICBodHRwczovL2xpc3RzLmdudS5vcmcvci9i dWctY29yZXV0aWxzLzIwMDctMDYvbXNnMDAwODkuaHRtbAp8ICAgICAgICAgICAgICAgICovCnwg ICAgICAgICAgICAgcmVfc2V0X3N5bnRheCAoUkVfU1lOVEFYX1BPU0lYX0JBU0lDCnwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJiB+UkVfQ09OVEVYVF9JTlZBTElEX0RVUAp8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICYgflJFX05PX0VNUFRZX1JBTkdFUyk7CnwgICAgICAgICAgICAg bWVtc2V0ICgmcmVnZXgsIDAsIHNpemVvZiByZWdleCk7CnwgICAgICAgICAgICAgcyA9IHJlX2Nv bXBpbGVfcGF0dGVybiAoIltbOmFsbnVtOl1fLV1cXCskIiwgMTYsICZyZWdleCk7CnwgICAgICAg ICAgICAgaWYgKHMpCnwgICAgICAgICAgICAgICByZXN1bHQgfD0gMzI7CnwgICAgICAgICAgICAg ZWxzZQp8ICAgICAgICAgICAgICAgcmVnZnJlZSAoJnJlZ2V4KTsKfCAKfCAgICAgICAgICAgICAv KiBSRUdfU1RBUlRFTkQgd2FzIGFkZGVkIHRvIGdsaWJjIG9uIDIwMDQtMDEtMTUuCnwgICAgICAg ICAgICAgICAgUmVqZWN0IG9sZGVyIHZlcnNpb25zLiAgKi8KfCAgICAgICAgICAgICBpZiAoISBS RUdfU1RBUlRFTkQpCnwgICAgICAgICAgICAgICByZXN1bHQgfD0gNjQ7CnwgCnwgICAgICAgICAg ICAgLyogTWF0Y2hpbmcgd2l0aCB0aGUgY29tcGlsZWQgZm9ybSBvZiB0aGlzIHJlZ2V4cCB3b3Vs ZCBwcm92b2tlCnwgICAgICAgICAgICAgICAgYW4gYXNzZXJ0aW9uIGZhaWx1cmUgcHJpb3IgdG8g Z2xpYmMtMi4yODoKfCAgICAgICAgICAgICAgICAgIHJlZ2V4ZWMuYzoxMzc1OiBwb3BfZmFpbF9z dGFjazogQXNzZXJ0aW9uICdudW0gPj0gMCcgZmFpbGVkCnwgICAgICAgICAgICAgICAgV2l0aCBn bGliYy0yLjI4LCBjb21waWxhdGlvbiBmYWlscyBhbmQgcmVwb3J0cyB0aGUgaW52YWxpZAp8ICAg ICAgICAgICAgICAgIGJhY2sgcmVmZXJlbmNlLiAgKi8KfCAgICAgICAgICAgICByZV9zZXRfc3lu dGF4IChSRV9TWU5UQVhfUE9TSVhfRUdSRVApOwp8ICAgICAgICAgICAgIG1lbXNldCAoJnJlZ2V4 LCAwLCBzaXplb2YgcmVnZXgpOwp8ICAgICAgICAgICAgIHMgPSByZV9jb21waWxlX3BhdHRlcm4g KCIwfCgpMHxcMXwwIiwgMTAsICZyZWdleCk7CnwgICAgICAgICAgICAgaWYgKCFzKQp8ICAgICAg ICAgICAgICAgcmVzdWx0IHw9IDY0Owp8ICAgICAgICAgICAgIGVsc2UKfCAgICAgICAgICAgICAg IHsKfCAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcCAocywgIkludmFsaWQgYmFjayByZWZlcmVu Y2UiKSkKfCAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gNjQ7CnwgICAgICAgICAgICAgICAg IHJlZ2ZyZWUgKCZyZWdleCk7CnwgICAgICAgICAgICAgICB9CnwgCnwgI2lmIDAKfCAgICAgICAg ICAgICAvKiBJdCB3b3VsZCBiZSBuaWNlIHRvIHJlamVjdCBob3N0cyB3aG9zZSByZWdvZmZfdCB2 YWx1ZXMgYXJlIHRvbwp8ICAgICAgICAgICAgICAgIG5hcnJvdyAoaW5jbHVkaW5nIGdsaWJjIG9u IGhvc3RzIHdpdGggNjQtYml0IHB0cmRpZmZfdCBhbmQKfCAgICAgICAgICAgICAgICAzMi1iaXQg aW50KSwgYnV0IHdlIHNob3VsZCB3YWl0IHVudGlsIGdsaWJjIGltcGxlbWVudHMgdGhpcwp8ICAg ICAgICAgICAgICAgIGZlYXR1cmUuICBPdGhlcndpc2UsIHN1cHBvcnQgZm9yIGVxdWl2YWxlbmNl IGNsYXNzZXMgYW5kCnwgICAgICAgICAgICAgICAgbXVsdGlieXRlIGNvbGxhdGlvbiBzeW1ib2xz IHdvdWxkIGFsd2F5cyBiZSBicm9rZW4gZXhjZXB0CnwgICAgICAgICAgICAgICAgd2hlbiBjb21w aWxpbmcgLS13aXRob3V0LWluY2x1ZGVkLXJlZ2V4LiAgICovCnwgICAgICAgICAgICAgaWYgKHNp emVvZiAocmVnb2ZmX3QpIDwgc2l6ZW9mIChwdHJkaWZmX3QpCnwgICAgICAgICAgICAgICAgIHx8 IHNpemVvZiAocmVnb2ZmX3QpIDwgc2l6ZW9mIChzc2l6ZV90KSkKfCAgICAgICAgICAgICAgIHJl c3VsdCB8PSA2NDsKfCAjZW5kaWYKfCAKfCAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owp8IAp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MzE2MDM6IHJlc3VsdDogbm8KY29uZmln dXJlOjMxNjg4OiBjaGVja2luZyBsaWJpbnRsLmggdXNhYmlsaXR5CmNvbmZpZ3VyZTozMTY4ODog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMg ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzE2ODg6ICQ/ID0gMApjb25maWd1cmU6MzE2ODg6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTY4ODogY2hlY2tpbmcgbGliaW50bC5oIHByZXNlbmNl CmNvbmZpZ3VyZTozMTY4ODogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLUUgLW10dW5lPWdlbmVyaWMg ICBjb25mdGVzdC5jCmNvbmZpZ3VyZTozMTY4ODogJD8gPSAwCmNvbmZpZ3VyZTozMTY4ODogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjMxNjg4OiBjaGVja2luZyBmb3IgbGliaW50bC5oCmNvbmZpZ3Vy ZTozMTY4ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMxNjk5OiBjaGVja2luZyB3aGV0aGVyIGlz YmxhbmsgaXMgZGVjbGFyZWQKY29uZmlndXJlOjMxNjk5OiBnY2MgLUkgLi4vc3JjL250L2luYyAt YyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp Z3VyZTozMTY5OTogJD8gPSAwCmNvbmZpZ3VyZTozMTY5OTogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjMxNzE2OiBjaGVja2luZyBmb3Igc2lnMnN0cgpjb25maWd1cmU6MzE3MTY6IGdjYyAtSSAuLi9z cmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJp YyAgICBjb25mdGVzdC5jICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94 ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9i aW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1wXGNjSXhzTHB4Lm86IGluIGZ1bmN0aW9uIGBtYWluJzoK QzpcbXN5czY0XGhvbWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWls ZC9jb25mdGVzdC5jOjI3MTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc2lnMnN0cicKY29sbGVj dDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MzE3MTY6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9Q IDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk ZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5l IEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEK fCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VU X0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQg MQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lT VEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2Rl ZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUg SEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9J TlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJ VEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVf TlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RF TV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1B UF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFW RV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwg I2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNk ZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2Rl ZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVf SlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2Rl ZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2Rl ZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVm aW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVs biIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBI QVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NU TkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNk ZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZF X0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVf R0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hV VERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9T VFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5E VE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1F IDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwg I2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJ R05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAj ZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtP IDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxF X05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5L QVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NF U1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEK fCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5l IEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFW RV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAx CnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2Rl ZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUg SEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBS SU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9M QU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNk ZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZp bmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZV TExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmlu ZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9S WV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19B TllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18p KQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0Nf U0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8 ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FC TEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRl cm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIK fCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAv RG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNk ZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBF T0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFW RV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNk ZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0 CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NM QVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBI QVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5U IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJD SFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxB Uk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwg MQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G UkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD SEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURf TU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xf R0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9B Q0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FD TCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05VTElCX0NB Tk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8ICNkZWZp bmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgR05VTElCX0ZBQ0NF U1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAKfCAjZGVmaW5lIEdOVUxJQl9G RE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAjZGVmaW5l IF9fR0VUT1BUX1BSRUZJWCBycGxfCnwgI2RlZmluZSBIQVZFX0JDUllQVF9IIDEKfCAjZGVmaW5l IEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBfR0xfUkVQTEFDRV9JRUVFNzU0 X0ggMQp8ICNkZWZpbmUgSEFWRV9fX0lOTElORSAxCnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAj ZGVmaW5lIEhBVkVfTUVNUENQWSAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZp bmUgTkVFRF9NS1RJTUVfV0lORE9XUyAxCnwgI2RlZmluZSBteV9zdHJmdGltZSBuc3RyZnRpbWUK fCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJH RV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0 aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUg cmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2Nv bXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2gg cnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2Rl ZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21h dGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAj ZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMK fCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4 ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxf cmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9MSUJJTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lT QkxBTksgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgc2lnMnN0ciB0byBh biBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHNpZzJzdHIu CnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVv ZmRheS4gICovCnwgI2RlZmluZSBzaWcyc3RyIGlubm9jdW91c19zaWcyc3RyCnwgCnwgLyogU3lz dGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90 b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHNpZzJzdHIgKCk7IGJl bG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1p dHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVm IHNpZzJzdHIKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBh dm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg cmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4 dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHNpZzJzdHIgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJh cnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0 byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBu YW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1l IGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfc2lnMnN0ciB8fCBkZWZpbmVk IF9fc3R1Yl9fX3NpZzJzdHIKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgcmV0dXJuIHNpZzJzdHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZTozMTcxNjogcmVzdWx0OiBubwpjb25maWd1cmU6MzE3NDc6IGNoZWNraW5nIGZvciBzaWdkZXNj cl9ucApjb25maWd1cmU6MzE3NDc6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4 ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgPiY1IApD Oi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4w Ly4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lzNjRcdG1w XGNjNlBiU0s2Lm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldpblVzZXIw XERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjI3MTogdW5kZWZp bmVkIHJlZmVyZW5jZSB0byBgc2lnZGVzY3JfbnAnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJl dHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjMxNzQ3OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1h Y3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg X19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJ TEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9U WVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhB VkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19S RVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09D S0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx CnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhB VkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5l IEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNk ZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBI QVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJ RlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1ND Uk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAx CnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFW RV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEK fCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQg MQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01Q IDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BO RyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUg SEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFW RV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8 ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2Rl ZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmlu ZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhB VkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5l IEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVf UkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dB SV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZp bmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJ Tl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NC UksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhB VkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVf RVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFW RV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRM IDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVm aW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUg SEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JM QU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVgg MQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAj ZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFW RV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJ RFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAx CnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2Rl ZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29z CnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18p ICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09 ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJF Q1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRf U09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2Rl ZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiov CnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVm aW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFD U19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05G SUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRp dmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FU VFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVf U1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5l IERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhf V09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEK fCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVf VF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NI QVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf U1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G UFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hB Ul9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5l IEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5l IEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUg SEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwg I2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19E SVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5l IEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBs Xwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpP TkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVf X19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkg MQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRP V1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5D TFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmlu ZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3Nl dF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBy cGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3Jl X2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVm aW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3Jl X21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9z ZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9y ZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJw bF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJv ciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhB VkVfTElCSU5UTF9IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHNpZ2Rlc2NyX25wIHRvIGFuIGlubm9jdW91cyB2YXJp YW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc2lnZGVzY3JfbnAuCnwgICAgRm9yIGV4 YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwg I2RlZmluZSBzaWdkZXNjcl9ucCBpbm5vY3VvdXNfc2lnZGVzY3JfbnAKfCAKfCAvKiBTeXN0ZW0g aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw ZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc2lnZGVzY3JfbnAgKCk7IGJl bG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1p dHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVm IHNpZ2Rlc2NyX25wCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUg dG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg dGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMK fCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBzaWdkZXNjcl9ucCAoKTsKfCAvKiBUaGUgR05V IEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRz CnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFj dHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9y bWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9zaWdkZXNjcl9u cCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3NpZ2Rlc2NyX25wCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAK fCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBzaWdkZXNjcl9ucCAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjMxNzQ3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMTg2MDog Y2hlY2tpbmcgZm9yIHZvbGF0aWxlIHNpZ19hdG9taWNfdApjb25maWd1cmU6MzE4NjA6IGdjYyAt SSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29u ZnRlc3QuYyA+JjUKY29uZmlndXJlOjMxODYwOiAkPyA9IDAKY29uZmlndXJlOjMxODYwOiBnY2Mg LUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoy NDQ6MzY6IGVycm9yOiBleHBlY3RlZCBleHByZXNzaW9uIGJlZm9yZSAnKScgdG9rZW4KICAyNDQg fCBpZiAoc2l6ZW9mICgodm9sYXRpbGUgc2lnX2F0b21pY190KSkpCiAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCmNvbmZpZ3VyZTozMTg2MDogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05F VEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVm aW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBT WVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2Rl ZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9V TklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElS RU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19U SU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2Rl ZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwg I2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJT IDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNk ZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVf VzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9P TEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFS RkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVm aW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9E VUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElC R0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJ VkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUg SEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAj ZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVm aW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RS VU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUg MQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8 ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2Rl ZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwg I2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmlu ZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUg SEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVf UFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAK fCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUg SEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmlu ZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVm aW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFW RV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAx CnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAj ZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhB VkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RS VE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNB VCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVm aW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9Q QVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NP Q0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7 Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5w d19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9T RVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgo X2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAo SVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBE RUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1Mg MQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1Nf TlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAx CnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZp bmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1B Q1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1h Y3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NU UlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmlu ZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwg I2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JF QUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5L IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05H X0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmlu ZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBI QVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50Cnwg I2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwg I2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAj ZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5l IEhBVkVfX19CVUlMVElOX0VYUEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xH UEwgMQp8ICNkZWZpbmUgR05VTElCX0NMT1NFX1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xB U0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9GRE9QRU5ESVIgMAp8ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwg I2RlZmluZSBGTEVYSUJMRV9BUlJBWV9NRU1CRVIgLyoqLwp8ICNkZWZpbmUgX19HRVRPUFRfUFJF RklYIHJwbF8KfCAjZGVmaW5lIEhBVkVfQkNSWVBUX0ggMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZ X1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIF9HTF9SRVBMQUNFX0lFRUU3NTRfSCAxCnwgI2RlZmlu ZSBIQVZFX19fSU5MSU5FIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9N RU1QQ1BZIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBORUVEX01LVElN RV9XSU5ET1dTIDEKfCAjZGVmaW5lIG15X3N0cmZ0aW1lIG5zdHJmdGltZQp8ICNkZWZpbmUgX1JF R0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8 ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmlu ZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3Bh dHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFw IHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNo CnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNo IHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZp bmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29t cCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVn Y29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUg cmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2Rl ZmluZSBIQVZFX0xJQklOVExfSCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICNpbmNsdWRlIDxzaWduYWwuaD4KfCAKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IGlmIChzaXplb2YgKCh2b2xhdGlsZSBzaWdfYXRvbWljX3QpKSkKfCAJ ICAgIHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MzE4NjA6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTozMTg3NjogY2hlY2tpbmcgZm9yIHNpZ2hhbmRsZXJfdApjb25m aWd1cmU6MzE4NzY6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1t dHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21h aW4nOgpjb25mdGVzdC5jOjI0NDoxMzogZXJyb3I6ICdzaWdoYW5kbGVyX3QnIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIDI0NCB8IGlmIChzaXplb2YgKHNpZ2hhbmRs ZXJfdCkpCiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CmNvbmZ0ZXN0LmM6MjQ0OjEz OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2Ug Zm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgpjb25maWd1cmU6MzE4NzY6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf UE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBf VEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwg I2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZp bmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8 ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZF X0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hB Ul9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8 ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0Mg MQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVG RkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEK fCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBI QVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNF X1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZF X0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwg I2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZF X01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZF X0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVf TkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVm aW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAx CnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwg I2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFW RV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VT SVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlU IDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8 ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwg MQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNk ZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExP QyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhB VkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVm aW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8 ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNk ZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwg I2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5l IEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZ TkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAx CnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmlu ZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZF X1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElN RU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwg I2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19f TkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFW RV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hB UiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBw dy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJ Q0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2Nf KSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9j XykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZp bmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dP UktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUg RE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJF QUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAj ZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5l IEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRz L2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFW RV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNk ZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0Eg MQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVO Q19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lN TElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdf TE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNk ZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZp bmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0Zf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGlu dAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUg MQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAx CnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2Rl ZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTEla RV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxF X1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAKfCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIg MQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAjZGVmaW5lIF9fR0VUT1BU X1BSRUZJWCBycGxfCnwgI2RlZmluZSBIQVZFX0JDUllQVF9IIDEKfCAjZGVmaW5lIEdFVFRJTUVP RkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBfR0xfUkVQTEFDRV9JRUVFNzU0X0ggMQp8ICNk ZWZpbmUgSEFWRV9fX0lOTElORSAxCnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5lIEhB VkVfTUVNUENQWSAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgTkVFRF9N S1RJTUVfV0lORE9XUyAxCnwgI2RlZmluZSBteV9zdHJmdGltZSBuc3RyZnRpbWUKfCAjZGVmaW5l IF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRT IDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNk ZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGls ZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFz dG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3Nl YXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9t YXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAj ZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJl X2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5l IHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVm aW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8 ICNkZWZpbmUgSEFWRV9MSUJJTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5jbHVkZSA8c2lnbmFsLmg+CnwgCnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCBpZiAoc2l6ZW9mIChzaWdoYW5kbGVyX3QpKQp8IAkgcmV0dXJu IDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozMTg3NjogcmVzdWx0OiBubwpj b25maWd1cmU6MzE4OTE6IGNoZWNraW5nIGZvciBzb2NrbGVuX3QKY29uZmlndXJlOjMxODkxOiBn Y2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAg IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozMTg5MTogJD8gPSAwCmNvbmZpZ3VyZTozMTg5MTog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMg ICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0 LmM6MjUyOjI0OiBlcnJvcjogZXhwZWN0ZWQgZXhwcmVzc2lvbiBiZWZvcmUgJyknIHRva2VuCiAg MjUyIHwgaWYgKHNpemVvZiAoKHNvY2tsZW5fdCkpKQogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgXgpjb25maWd1cmU6MzE4OTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFj cyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3Mv Igp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2Rl ZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RE SU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNf XyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVm aW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1Mg MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9G VU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmlu ZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklU UyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3Mt bnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwg I2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8 ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhB VkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE SU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNf V0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1B R0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdF U0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURT X0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEK fCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmlu ZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8 ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhB VkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAj ZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9E VUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBI QVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUg TkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5l IEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIg MQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwg I2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZF X1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VU TE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJ TUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJ R01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElN RVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwg I2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEK fCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJ TFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklU IDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmlu ZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAx CnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVS TyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEK fCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUg SEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRU SU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEK fCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZp bmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBI QVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsg Zm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NP REVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZp bmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5V TExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nl c3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJ UkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6 JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18p ID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9j XykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0Ug Ii9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RB Q0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJ TkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hU ICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNk ZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJ T04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICIt LXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0 IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdO RUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQ UkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNI X0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2Rl ZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFW RV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAx CnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8 ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJ WkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNM X0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VU X0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9N X1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBF Q1QgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9DTE9TRV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1Qg MQp8ICNkZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVO RElSIDAKfCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJS QVlfTUVNQkVSIC8qKi8KfCAjZGVmaW5lIF9fR0VUT1BUX1BSRUZJWCBycGxfCnwgI2RlZmluZSBI QVZFX0JDUllQVF9IIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2Rl ZmluZSBfR0xfUkVQTEFDRV9JRUVFNzU0X0ggMQp8ICNkZWZpbmUgSEFWRV9fX0lOTElORSAxCnwg I2RlZmluZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5lIEhBVkVfTUVNUENQWSAxCnwgI2RlZmluZSBH TlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgTkVFRF9NS1RJTUVfV0lORE9XUyAxCnwgI2RlZmlu ZSBteV9zdHJmdGltZSBuc3RyZnRpbWUKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19I IDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9v cHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxf cmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxl X3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0 bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNo XzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVm aW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMg cnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVm aW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAj ZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJv cgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9MSUJJTlRMX0gg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAKfCAvKiA8c3lzL3R5cGVzLmg+IGlzIG5vdCBuZWVkZWQgYWNjb3JkaW5nIHRvIFBPU0lYLCBi dXQgdGhlCnwgICAgPHN5cy9zb2NrZXQuaD4gaW4gaTM4Ni11bmtub3duLWZyZWVic2Q0LjEwIGFu ZAp8ICAgIHBvd2VycGMtYXBwbGUtZGFyd2luNS41IHJlcXVpcmVkIGl0LiAqLwp8ICNpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjIGluY2x1ZGUgPHN5cy9z b2NrZXQuaD4KfCAjZWxpZiBIQVZFX1dTMlRDUElQX0gKfCAjIGluY2x1ZGUgPHdzMnRjcGlwLmg+ CnwgI2VuZGlmCnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBpZiAoc2l6ZW9mICgoc29ja2xl bl90KSkpCnwgCSAgICByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjMxODkxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzE5NTQ6IGNoZWNraW5nIGZvciBzc2l6ZV90 CmNvbmZpZ3VyZTozMTk3MTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJm LTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzE5NzE6ICQ/ID0g MApjb25maWd1cmU6MzE5Nzg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTk5MDogY2hlY2tpbmcg Zm9yIHN0cnVjdCBzdGF0LnN0X2F0aW0udHZfbnNlYwpjb25maWd1cmU6MzE5OTA6IGdjYyAtSSAu Li9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRl c3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjI0NDox MzogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfYXRpbSc7IGRp ZCB5b3UgbWVhbiAnc3RfYXRpbWUnPwogIDI0NCB8IGlmIChhY19hZ2dyLnN0X2F0aW0udHZfbnNl YykKICAgICAgfCAgICAgICAgICAgICBefn5+fn5+CiAgICAgIHwgICAgICAgICAgICAgc3RfYXRp bWUKY29uZmlndXJlOjMxOTkwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAj ZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUg U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf T1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQ VVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQK fCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8 ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZp bmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVm aW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJ TUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRf SCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQ SSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUg MQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFC TEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2Rl ZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNF X0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVm aW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQ TSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmlu ZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNf U1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9M SUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElW RV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZF X1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAj ZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZp bmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxF Q1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FM RSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAx CnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNL IDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEK fCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZp bmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2Rl ZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5f RlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwg I2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFW RV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNk ZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8 ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2Rl ZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVf RlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9G REFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2Rl ZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhB VkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9T WU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsK fCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VU IDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhB VkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RF VklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMg MQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RP UllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwg I2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAn XFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8 IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2 L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09W RVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dT TlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29w eXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5l IFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4 ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVm aXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdp dGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEK fCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJ T05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19E SVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUg cmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZp bmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU Uk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5T SUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBN QUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVm aW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZX UklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEK fCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxF IDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhU IDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEK fCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xP U0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAj ZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAw CnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01F TUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9C Q1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUg X0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZp bmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElC X01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlf c3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwg I2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9u cyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3Nl dF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0 ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8 ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJw bF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSBy ZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9y ZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSBy ZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmlu ZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAj ZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKfCBpZiAoYWNfYWdn ci5zdF9hdGltLnR2X25zZWMpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZTozMTk5MDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIg LW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAn bWFpbic6CmNvbmZ0ZXN0LmM6MjQ0OjIwOiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVt YmVyIG5hbWVkICdzdF9hdGltJzsgZGlkIHlvdSBtZWFuICdzdF9hdGltZSc/CiAgMjQ0IHwgaWYg KHNpemVvZiBhY19hZ2dyLnN0X2F0aW0udHZfbnNlYykKICAgICAgfCAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fgogICAgICB8ICAgICAgICAgICAgICAgICAgICBzdF9hdGltZQpjb25maWd1cmU6 MzE5OTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9V U0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5f U09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0ND X0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZF X01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExP Q19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0Rf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAx CnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBU SU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5l IEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5l IFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBV U0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZp bmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNP TiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkg MQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAx CnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5l IEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAx CnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwi CnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJ WCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2Rl ZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9H RVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQg MQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5l IEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhB VkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUg SEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFW RV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNP Q0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9H MiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNT IDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVf RlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTEla RV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JF QURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZF X0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENI TU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAj ZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZp bmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNF TEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAx CnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNk ZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFW RV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUg SEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1Qg MQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8 ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBV U0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwg I2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJ UkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmlu ZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NF UChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZp bmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJ TkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmlu ZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIw MjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIg InczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWlu Z3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2lu VXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21w Igp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFW RV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZp bmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1Qg MQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jl c3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xM T1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2Rl ZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xP TkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1Ra TkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05P Tk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJO TEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERf U1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQ U19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFW RV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUg SEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUg VVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05V TElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8 ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgR05VTElC X0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAKfCAjZGVmaW5lIEdO VUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAj ZGVmaW5lIF9fR0VUT1BUX1BSRUZJWCBycGxfCnwgI2RlZmluZSBIQVZFX0JDUllQVF9IIDEKfCAj ZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBfR0xfUkVQTEFDRV9J RUVFNzU0X0ggMQp8ICNkZWZpbmUgSEFWRV9fX0lOTElORSAxCnwgI2RlZmluZSBIQVZFX0dNUF9I IDEKfCAjZGVmaW5lIEhBVkVfTUVNUENQWSAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8 ICNkZWZpbmUgTkVFRF9NS1RJTUVfV0lORE9XUyAxCnwgI2RlZmluZSBteV9zdHJmdGltZSBuc3Ry ZnRpbWUKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdF WF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50 YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNk ZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5l IHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9z ZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8y CnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBs X3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3Rl cnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3Jl X2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBs X3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJl ZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9MSUJJTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0lTQkxBTksgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgICAgICAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwp8IGlmIChzaXplb2YgYWNfYWdnci5zdF9h dGltLnR2X25zZWMpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZTozMTk5MDogcmVzdWx0OiBubwpjb25maWd1cmU6MzIwNDE6IGNoZWNraW5nIGZvciBzdHJ1Y3Qg c3RhdC5zdF9hdGltZXNwZWMudHZfbnNlYwpjb25maWd1cmU6MzIwNDE6IGdjYyAtSSAuLi9zcmMv bnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+ JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjI0NDoxMzogZXJy b3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfYXRpbWVzcGVjJzsgZGlk IHlvdSBtZWFuICdzdF9hdGltZSc/CiAgMjQ0IHwgaWYgKGFjX2FnZ3Iuc3RfYXRpbWVzcGVjLnR2 X25zZWMpCiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CiAgICAgIHwgICAgICAgICAg ICAgc3RfYXRpbWUKY29uZmlndXJlOjMyMDQxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJ T05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VU X0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5k b3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9I IDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZF X0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VU UEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhS RUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRM UyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNk ZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJT IDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmlu ZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAx CnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5l IE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVm aW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2Rl ZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJY TUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00g MQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUg SEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZF X1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00g MQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJP UiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVf TlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRf SU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNk ZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJ TksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRf QlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RB VCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVm aW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBF MiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAj ZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZp bmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZm b3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAj ZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmlu ZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJw cm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmlu ZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9 PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAo X2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQ IChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVW SUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZF X1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmlu ZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlS SUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIK fCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdV UkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9O UyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9i dWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9B TElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5U X0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9T TEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8 ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5l IEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVN IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdO RUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5B TUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJS X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tF RCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFC TEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lT X0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNM X1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xf RlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5f RVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBH TlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9S T09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZE T1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxF X0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZp bmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8 ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUg MQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZp bmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNk ZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1J VFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50 YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXgg cnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29t cGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVf ZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3Nl YXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwg I2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0 ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwg I2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21w CnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVn ZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5U TF9IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsK fCBpZiAoYWNfYWdnci5zdF9hdGltZXNwZWMudHZfbnNlYykKfCByZXR1cm4gMDsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjMyMDQxOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAt ZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0 LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyNDQ6MjA6IGVycm9yOiAnc3RydWN0 IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2F0aW1lc3BlYyc7IGRpZCB5b3UgbWVhbiAn c3RfYXRpbWUnPwogIDI0NCB8IGlmIChzaXplb2YgYWNfYWdnci5zdF9hdGltZXNwZWMudHZfbnNl YykKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHN0X2F0aW1lCmNvbmZpZ3VyZTozMjA0MTogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9G SUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1f VFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBI QVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP Q0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAj ZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUg SEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9U SUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9T Q1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlog MQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhB VkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAx CnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU IDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09N UCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9Q TkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5l IEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhB VkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEK fCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmlu ZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZF X1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9H QUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVm aW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9T QlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBI QVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZF X0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05U TCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNC TEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwg I2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhB VkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9X SURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMg MQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNk ZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNv cwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2Nf KSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9 PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElS RUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxU X1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNk ZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoq Lwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2Rl ZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1B Q1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09O RklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0 aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9B VFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZF X1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmlu ZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRI X1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAx CnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1F X1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dD SEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENI QVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmlu ZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmlu ZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5l IEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVf X19CVUlMVElOX0VYUEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8 ICNkZWZpbmUgR05VTElCX0NMT1NFX1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNf RElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9GRE9QRU5ESVIgMAp8ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmlu ZSBGTEVYSUJMRV9BUlJBWV9NRU1CRVIgLyoqLwp8ICNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJw bF8KfCAjZGVmaW5lIEhBVkVfQkNSWVBUX0ggMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVa T05FIHZvaWQKfCAjZGVmaW5lIF9HTF9SRVBMQUNFX0lFRUU3NTRfSCAxCnwgI2RlZmluZSBIQVZF X19fSU5MSU5FIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1QQ1BZ IDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBORUVEX01LVElNRV9XSU5E T1dTIDEKfCAjZGVmaW5lIG15X3N0cmZ0aW1lIG5zdHJmdGltZQp8ICNkZWZpbmUgX1JFR0VYX0lO Q0xVREVfTElNSVRTX0ggMQp8ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZp bmUgcmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9z ZXRfc3ludGF4IHJwbF9yZV9zZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4g cnBsX3JlX2NvbXBpbGVfcGF0dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9y ZV9jb21waWxlX2Zhc3RtYXAKfCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2Rl ZmluZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9y ZV9tYXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVf c2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxf cmVfY29tcAp8ICNkZWZpbmUgcmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBy cGxfcmVnY29tcAp8ICNkZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJy b3IgcnBsX3JlZ2Vycm9yCnwgI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBI QVZFX0xJQklOVExfSCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAgICAgICAgICNpbmNsdWRl IDxzeXMvc3RhdC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBzdGF0 IGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBhY19hZ2dyLnN0X2F0aW1lc3BlYy50dl9uc2VjKQp8IHJl dHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MzIwNDE6IHJlc3VsdDog bm8KY29uZmlndXJlOjMyMDUyOiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYXRpbWVuc2Vj CmNvbmZpZ3VyZTozMjA1MjogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJm LTIgLW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlv biAnbWFpbic6CmNvbmZ0ZXN0LmM6MjQ0OjEzOiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8g bWVtYmVyIG5hbWVkICdzdF9hdGltZW5zZWMnOyBkaWQgeW91IG1lYW4gJ3N0X2F0aW1lJz8KICAy NDQgfCBpZiAoYWNfYWdnci5zdF9hdGltZW5zZWMpCiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+CiAgICAgIHwgICAgICAgICAgICAgc3RfYXRpbWUKY29uZmlndXJlOjMyMDUyOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwg I2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZF X01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkg MQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAj ZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9I IDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUg SEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVf V0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZ U19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJ IDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFM TE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9S X0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNW RyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZp bmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5l IFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUg SEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcg MQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUg SEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUg SEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwg I2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9H SUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUg MQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5l IEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQ QUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dO IDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lH TkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEK fCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwg I2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZp bmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURf QUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmlu ZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwg I2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1F IDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEK fCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQg MQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2Rl ZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZF X0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNU QVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNk ZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUg SEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVf VVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYg MQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lO Rk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5l IEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNF UENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05B TUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNf REVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQ KF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NF UChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAj ZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpN UF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVm aW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJ T05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgi CnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2Rl ZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25s b2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5l IEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEK fCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxM T0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5l IEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVE X1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9M T05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAK fCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAj ZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G RU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdF VFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVf VCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9G SUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZS RUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8 ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklD QUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERP VUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVO RElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dF VE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRU SU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEK fCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmlu ZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5F RURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2Rl ZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZG U0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMK fCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2Nv bXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxl X2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9y ZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUg cmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8y CnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmlu ZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2Rl ZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwg I2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2Zy ZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5L IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAg ICAgICAgICAgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBz dGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKfCBpZiAoYWNfYWdnci5zdF9hdGltZW5zZWMpCnwg cmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozMjA1MjogZ2NjIC1J IC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBjb25m dGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjQ0 OjIwOiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9hdGltZW5z ZWMnOyBkaWQgeW91IG1lYW4gJ3N0X2F0aW1lJz8KICAyNDQgfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iu c3RfYXRpbWVuc2VjKQogICAgICB8ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KICAg ICAgfCAgICAgICAgICAgICAgICAgICAgc3RfYXRpbWUKY29uZmlndXJlOjMyMDUyOiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVm aW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEK fCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFW RV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NI QVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9D IDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JV RkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAx CnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUg SEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFW RV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8 ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFW RV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFW RV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2Rl ZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYg MQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8 ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhB VkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdF U0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1J VCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEK fCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFM IDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAj ZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUg SEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxM T0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBI QVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2Rl ZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEK fCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAj ZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8 ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmlu ZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZT WU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQg MQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFW RV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJ TUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8 ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9f X05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhB VkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENI QVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUg cHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVW SUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9j XykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChf Y18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVm aW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9X T1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5l IERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05S RUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwg I2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmlu ZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fk cy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhB VkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAj ZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NB IDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZV TkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZ TUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05H X0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAj ZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVm aW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9G X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBp bnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxF IDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUg MQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNk ZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJ WkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJM RV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElS IDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9Q VF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1F T0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAj ZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBI QVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURf TUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmlu ZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VU UyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAj ZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBp bGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zh c3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9z ZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVf bWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwg I2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSBy ZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmlu ZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2Rl ZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUK fCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAg ICAgICAgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0 aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfYXRpbWVuc2Vj KQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MzIwNTI6IHJl c3VsdDogbm8KY29uZmlndXJlOjMyMDYzOiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYXRp bS5zdF9fdGltLnR2X25zZWMKY29uZmlndXJlOjMyMDYzOiBnY2MgLUkgLi4vc3JjL250L2luYyAt YyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0 ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyNDQ6MTM6IGVycm9yOiAnc3Ry dWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2F0aW0nOyBkaWQgeW91IG1lYW4gJ3N0 X2F0aW1lJz8KICAyNDQgfCBpZiAoYWNfYWdnci5zdF9hdGltLnN0X190aW0udHZfbnNlYykKICAg ICAgfCAgICAgICAgICAgICBefn5+fn5+CiAgICAgIHwgICAgICAgICAgICAgc3RfYXRpbWUKY29u ZmlndXJlOjMyMDYzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxU X1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVm aW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZp bmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFW RV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhB VkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BB UkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVG U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19I IDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwg I2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwg I2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEK fCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBI QVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVf Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVT RV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwg I2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZF X1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklY ICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NK SVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElT UF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYg MQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5l IEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFW RV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8 ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwg I2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2Rl ZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAj ZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVm aW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFW RV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBI QVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVf QUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmlu ZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5P TklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUg SEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZp bmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBI QVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRB VCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEK fCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBI QVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNX Q1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5L IDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVm aW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAj ZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJT VEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAi TlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNk ZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQ ICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmlu ZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8 ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RF VklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIK fCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9X X0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8 ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0 IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1f SEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQt dzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hv bWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0 aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVm aW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEK fCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5D VF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJp Y3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNU QVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUg MAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURf TE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUg SEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0Nf MF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9V U0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJS T1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBH RVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVm aW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVm aW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAj ZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAj ZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVm aW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RS RUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5l IEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2Rl ZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAv KiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRf SCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JF UExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFW RV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NU RU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRp bWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxf cmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50 YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwg I2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZp bmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9z ZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRj aF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRf cmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVj IHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdl eGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5l IHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9JU0JMQU5LIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICAgICAgICAgICAgICAgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKfCBpZiAoYWNf YWdnci5zdF9hdGltLnN0X190aW0udHZfbnNlYykKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjMyMDYzOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8y IC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IElu IGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyNDQ6MjA6IGVycm9yOiAnc3RydWN0IHN0YXQn IGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2F0aW0nOyBkaWQgeW91IG1lYW4gJ3N0X2F0aW1lJz8K ICAyNDQgfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfYXRpbS5zdF9fdGltLnR2X25zZWMpCiAgICAg IHwgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KICAgICAgfCAgICAgICAgICAgICAgICAgICAg c3RfYXRpbWUKY29uZmlndXJlOjMyMDYzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNz LyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05T X18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJ VFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dz LW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEK fCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBI QVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lN QUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFH RVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFE U19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAx CnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZp bmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEK fCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBI QVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwg I2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1P RFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUg SEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5l IE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmlu ZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwy IDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8 ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFW RV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NF VExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJM SU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T SUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJ TUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8 ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAx CnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JV SUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5J VCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZp bmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksg MQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpF Uk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAx CnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5l IEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAx CnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVm aW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUg SEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3Jr IGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19D T0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVm aW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBO VUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9j ZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBE SVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAn OicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2Nf KSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChf Y18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNF ICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NU QUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBX SU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdI VCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAj ZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFU SU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAi LS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWls dCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElH TkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VY UFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFT SF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNk ZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhB VkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEK fCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVT SVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FD TF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NF VF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJP TV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQ RUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVM SUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09U IDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BF TkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FS UkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUg SEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNk ZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8 ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUg R05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZp bmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNf SCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhf b3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBs X3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGls ZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFz dG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJj aF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2Rl ZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJz IHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2Rl ZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwg I2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJy b3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5UTF9I IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgICAgICAgI2luY2x1ZGUgPHN5cy9z dGF0Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdn cjsKfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfYXRpbS5zdF9fdGltLnR2X25zZWMpCnwgcmV0dXJu IDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozMjA2MzogcmVzdWx0OiBubwpj b25maWd1cmU6MzIwODU6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9iaXJ0aHRpbWVzcGVj LnR2X25zZWMKY29uZmlndXJlOjMyMDg1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8y IC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IElu IGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyNDQ6MTI6IGVycm9yOiAnc3RydWN0IHN0YXQn IGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2JpcnRodGltZXNwZWMnCiAgMjQ0IHwgaWYgKGFjX2Fn Z3Iuc3RfYmlydGh0aW1lc3BlYy50dl9uc2VjKQogICAgICB8ICAgICAgICAgICAgXgpjb25maWd1 cmU6MzIwODU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJ TF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURF UlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9Q RU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBI QVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01B TExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9Q V0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1f SCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8 ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmlu ZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVm aW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVm aW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmlu ZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNk ZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVf SlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJ RlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJ TSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVm aW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJ QiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5k bGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9I IDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NV RkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwg I2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFW RV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJ TlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVm aW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5l IEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZp bmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUg SEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dF VFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVf TE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERS RVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhB VkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNB TElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZF X1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBI QVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVf TENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEK fCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNk ZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVf UFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQ RSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8 ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUg SEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZp bmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRF X1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6 Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmlu ZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8n CnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElT X0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2Rl ZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNF X1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNk ZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFO RExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2Rl ZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMp IDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFE RVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQt bWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9W V2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVj b21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUg SEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNk ZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JP T1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBf X3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9G T0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwg I2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05H X0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZF X1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lT X05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9T VERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdS T1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUg UFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUg SEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZp bmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZp bmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUg R05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0g MQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgR05V TElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAKfCAjZGVmaW5l IEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVNQkVSIC8qKi8K fCAjZGVmaW5lIF9fR0VUT1BUX1BSRUZJWCBycGxfCnwgI2RlZmluZSBIQVZFX0JDUllQVF9IIDEK fCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBfR0xfUkVQTEFD RV9JRUVFNzU0X0ggMQp8ICNkZWZpbmUgSEFWRV9fX0lOTElORSAxCnwgI2RlZmluZSBIQVZFX0dN UF9IIDEKfCAjZGVmaW5lIEhBVkVfTUVNUENQWSAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAg MQp8ICNkZWZpbmUgTkVFRF9NS1RJTUVfV0lORE9XUyAxCnwgI2RlZmluZSBteV9zdHJmdGltZSBu c3RyZnRpbWUKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9S RUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9z eW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8 ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVm aW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSBy ZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJj aF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIg cnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdp c3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBs X3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMg cnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVn ZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9MSUJJTlRMX0ggMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0lTQkxBTksgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lz L3R5cGVzLmg+CnwgICAgICAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgp Cnwgewp8IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLnN0X2JpcnRo dGltZXNwZWMudHZfbnNlYykKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjMyMDg1OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAt bXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdt YWluJzoKY29uZnRlc3QuYzoyNDQ6MTk6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1i ZXIgbmFtZWQgJ3N0X2JpcnRodGltZXNwZWMnCiAgMjQ0IHwgaWYgKHNpemVvZiBhY19hZ2dyLnN0 X2JpcnRodGltZXNwZWMudHZfbnNlYykKICAgICAgfCAgICAgICAgICAgICAgICAgICBeCmNvbmZp Z3VyZTozMjA4NTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBN QUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVB REVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0Rf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmlu ZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5l IEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVf TUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZF X1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJB TV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAx CnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNk ZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNk ZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVm aW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwg I2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFW RV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05P VElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0Vf WElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNk ZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9a TElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAi LmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU X0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1Bf U1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEK fCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBI QVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVf UklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAj ZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNk ZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2Rl ZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmlu ZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVf R0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFW RV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FE RFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUg SEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05J Q0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhB VkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5l IEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFW RV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQg MQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwg I2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFW RV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NU WVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAx CnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmlu ZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2Rl ZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RB VEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5V TDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVm aW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAn LycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUg SVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAj ZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJ Q0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwg I2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19I QU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAj ZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAo QykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hF QURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2 NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21l L1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2 ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmlu ZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwg I2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1Rf Uk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0 IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFU X0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAK fCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xP TkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhB VkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBf SVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNF X1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9S X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VU R1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmlu ZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmlu ZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2Rl ZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgI2Rl ZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0VYUEVDVCAxCnwgI2RlZmlu ZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX0NMT1NFX1NUUkVB TSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBH TlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9GRE9QRU5ESVIgMAp8ICNkZWZp bmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmluZSBGTEVYSUJMRV9BUlJBWV9NRU1CRVIgLyoq Lwp8ICNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJwbF8KfCAjZGVmaW5lIEhBVkVfQkNSWVBUX0gg MQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIF9HTF9SRVBM QUNFX0lFRUU3NTRfSCAxCnwgI2RlZmluZSBIQVZFX19fSU5MSU5FIDEKfCAjZGVmaW5lIEhBVkVf R01QX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1QQ1BZIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVN UCAxCnwgI2RlZmluZSBORUVEX01LVElNRV9XSU5ET1dTIDEKfCAjZGVmaW5lIG15X3N0cmZ0aW1l IG5zdHJmdGltZQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNkZWZpbmUg X1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMgcnBsX3Jl X3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRfc3ludGF4 CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVybgp8ICNk ZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAjZGVmaW5l IHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxfcmVfc2Vh cmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hf MiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0X3Jl Z2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVfZXhlYyBy cGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUgcmVnZXhl YyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2RlZmluZSBy ZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0xJQklOVExfSCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfSVNCTEFOSyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KfCAgICAgICNpbmNsdWRlIDxzeXMvc3RhdC5oPgp8IAp8IGludAp8IG1haW4g KCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBhY19hZ2dy LnN0X2JpcnRodGltZXNwZWMudHZfbnNlYykKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjMyMDg1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMjA5NjogY2hlY2tp bmcgZm9yIHN0cnVjdCBzdGF0LnN0X2JpcnRodGltZW5zZWMKY29uZmlndXJlOjMyMDk2OiBnY2Mg LUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoy NDQ6MTI6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2JpcnRo dGltZW5zZWMnCiAgMjQ0IHwgaWYgKGFjX2FnZ3Iuc3RfYmlydGh0aW1lbnNlYykKICAgICAgfCAg ICAgICAgICAgIF4KY29uZmlndXJlOjMyMDk2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJ T05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VU X0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5k b3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9I IDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZF X0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VU UEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhS RUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRM UyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNk ZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJT IDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmlu ZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAx CnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5l IE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVm aW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2Rl ZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJY TUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00g MQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUg SEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZF X1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00g MQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJP UiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVf TlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9f X0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRf SU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNk ZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJ TksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRf QlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RB VCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVm aW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBF MiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAj ZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZp bmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZm b3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAj ZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmlu ZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJw cm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmlu ZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9 PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAo X2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQ IChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVW SUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZF X1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmlu ZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlS SUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIK fCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdV UkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9O UyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9i dWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9B TElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5U X0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9T TEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8 ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5l IEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVN IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdO RUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5B TUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg I2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJS X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tF RCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFC TEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lT X0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNM X1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xf RlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5f RVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBH TlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9S T09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZE T1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxF X0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZp bmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8 ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUg MQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZp bmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNk ZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1J VFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50 YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXgg cnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29t cGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVf ZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3Nl YXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwg I2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0 ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwg I2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21w CnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVn ZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5U TF9IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsK fCBpZiAoYWNfYWdnci5zdF9iaXJ0aHRpbWVuc2VjKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MzIwOTY6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAt TzIgLWdkd2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzog SW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjI0NDoxOTogZXJyb3I6ICdzdHJ1Y3Qgc3Rh dCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfYmlydGh0aW1lbnNlYycKICAyNDQgfCBpZiAoc2l6 ZW9mIGFjX2FnZ3Iuc3RfYmlydGh0aW1lbnNlYykKICAgICAgfCAgICAgICAgICAgICAgICAgICBe CmNvbmZpZ3VyZTozMjA5NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09Q RU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVY X0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0Cnwg I2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAj ZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5l IEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmlu ZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf Q0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1J VFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEK fCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0gg MQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkg MQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEK fCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxF RCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZp bmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9G SUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmlu ZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0g MQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUg SEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NV RkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElC R0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVf RUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9U SUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2Rl ZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5l IEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNU IDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUg MQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8 ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAx CnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwg I2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5l IEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZp bmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZS QU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNk ZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVf Q0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVm aW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAj ZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZp bmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZT VEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRB WSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZp bmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZF X0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lN TElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwg I2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAx CnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZF X01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJ Q0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEK fCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZ X1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNk ZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xc JykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJ U19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9k c3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVS RkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05U IDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHly aWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBU RVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2 XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4 PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRo LW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwg I2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9O UyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElT VElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJl c3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJN T0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lH TkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVm aW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFM TE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmlu ZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G UFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJ VEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZp bmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwg I2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwg I2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAx CnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAx CnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0VYUEVDVCAxCnwg I2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX0NMT1NF X1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2Rl ZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9GRE9QRU5ESVIgMAp8 ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmluZSBGTEVYSUJMRV9BUlJBWV9NRU1C RVIgLyoqLwp8ICNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJwbF8KfCAjZGVmaW5lIEhBVkVfQkNS WVBUX0ggMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIF9H TF9SRVBMQUNFX0lFRUU3NTRfSCAxCnwgI2RlZmluZSBIQVZFX19fSU5MSU5FIDEKfCAjZGVmaW5l IEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1QQ1BZIDEKfCAjZGVmaW5lIEdOVUxJQl9N S09TVEVNUCAxCnwgI2RlZmluZSBORUVEX01LVElNRV9XSU5ET1dTIDEKfCAjZGVmaW5lIG15X3N0 cmZ0aW1lIG5zdHJmdGltZQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMg cnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRf c3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVy bgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAj ZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxf cmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVf bWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVf c2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVf ZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUg cmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2Rl ZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0xJQklOVExfSCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzeXMvdHlwZXMuaD4KfCAgICAgICAgICNpbmNsdWRlIDxzeXMvc3RhdC5oPgp8IAp8IGlu dAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7CnwgaWYgKHNpemVv ZiBhY19hZ2dyLnN0X2JpcnRodGltZW5zZWMpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZTozMjA5NjogcmVzdWx0OiBubwpjb25maWd1cmU6MzIxMDc6IGNoZWNr aW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9iaXJ0aHRpbS50dl9uc2VjCmNvbmZpZ3VyZTozMjEwNzog Z2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMg ICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0 LmM6MjQ0OjEyOiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9i aXJ0aHRpbScKICAyNDQgfCBpZiAoYWNfYWdnci5zdF9iaXJ0aHRpbS50dl9uc2VjKQogICAgICB8 ICAgICAgICAgICAgXgpjb25maWd1cmU6MzIxMDc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNz IDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAx CnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVO U0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZT RVRfQklUUyA2NAp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndp bmRvd3MtbnQiCnwgI2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VO RCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNF X0ggMQp8ICNkZWZpbmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAx CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVm aW5lIEhBVkVfTElNSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJ VkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxCnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBU SFJFQURTX0VOQUJMRUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05V VExTIDEKfCAjZGVmaW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwg I2RlZmluZSBVU0VfRklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JB UlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVm aW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMy IDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZp bmUgTU9EVUxFU19TVUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2Rl ZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNk ZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAj ZGVmaW5lIEhBVkVfVElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJ QlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRP TSAxCnwgI2RlZmluZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmlu ZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhB VkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVf U0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhS RUFEX1NJR01BU0sgMQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9T RVRJVElNRVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJP TSAxCnwgI2RlZmluZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVS Uk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFN RV9OUCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZF X19fQlVJTFRJTl9GUkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lO RF9JTklUIDEKfCAjZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwg I2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFE TElOSyAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJ VF9CWkVSTyAxCnwgI2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1P REFUIDEKfCAjZGVmaW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNk ZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFW RV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJ UEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8 ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2Rl ZmluZSBIQVZFX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUg dmZvcmsgZm9yawp8ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJ TkZPX0NPREVTRVQgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8 ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVm aW5lIE5VTExfREVWSUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1 YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVm aW5lIERJUkVDVE9SWV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18p ID09ICc6JykKfCAjZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8 IChfY18pID09ICdcXCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9T RVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9E RVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhB VkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVm aW5lIFdJTkRPV1NOVCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09Q WVJJR0hUICJDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Igp8ICNkZWZpbmUgVEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJ R1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJ T05TICItLXByZWZpeD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21w L2J1aWx0IC0td2l0aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRF X0FMSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1F TlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxF X1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAx CnwgI2RlZmluZSByZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZp bmUgSEFWRV9VTlNJR05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1N RU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJ R05FRCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1Ra TkFNRSAxCnwgI2RlZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lN QVggMQp8ICNkZWZpbmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJF UlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNI X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9QVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERU QUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9T WVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9B Q0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FD TF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJ Tl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5l IEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNU X1JPT1QgMQp8ICNkZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkRPUEVORElSIDAKfCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElC TEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAjZGVmaW5lIF9fR0VUT1BUX1BSRUZJWCBycGxfCnwgI2Rl ZmluZSBIQVZFX0JDUllQVF9IIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lk CnwgI2RlZmluZSBfR0xfUkVQTEFDRV9JRUVFNzU0X0ggMQp8ICNkZWZpbmUgSEFWRV9fX0lOTElO RSAxCnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5lIEhBVkVfTUVNUENQWSAxCnwgI2Rl ZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgTkVFRF9NS1RJTUVfV0lORE9XUyAxCnwg I2RlZmluZSBteV9zdHJmdGltZSBuc3RyZnRpbWUKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJ TUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5 bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRh eCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9j b21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGls ZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVf c2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gK fCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdp c3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAK fCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2Nv bXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9y ZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9MSUJJ TlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgICAgICAgICAgICNpbmNsdWRlIDxzeXMv c3RhdC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2Fn Z3I7CnwgaWYgKGFjX2FnZ3Iuc3RfYmlydGh0aW0udHZfbnNlYykKfCByZXR1cm4gMDsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjMyMTA3OiBnY2MgLUkgLi4vc3JjL250L2luYyAt YyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0 ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyNDQ6MTk6IGVycm9yOiAnc3Ry dWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2JpcnRodGltJwogIDI0NCB8IGlmIChz aXplb2YgYWNfYWdnci5zdF9iaXJ0aHRpbS50dl9uc2VjKQogICAgICB8ICAgICAgICAgICAgICAg ICAgIF4KY29uZmlndXJlOjMyMTA3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIK fCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18g MQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMg NjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50 Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNk ZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAj ZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZF X0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dB SVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdF X0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJ WkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19F TkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwg I2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUg VVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAj ZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZF X1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2Rl ZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVM RVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFW RV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5B VElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBI QVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEK fCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNk ZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9T RUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExP Q0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1J VCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdN QVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVS IDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNk ZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwg I2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAx CnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUg SEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8 ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8g MQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwg I2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhB VkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElN RU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwg I2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5l IEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFW RV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZv cmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RF U0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5l IEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxM X0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNz ZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJF Q1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicp CnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9 PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18p IHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIv ZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNL X09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5E T1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAi Q29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVm aW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9O ICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1w cmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAt LXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVE IDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJF U1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9J U19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZp bmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNk ZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVf VU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8 ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu ZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAj ZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tF RCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf UFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwg I2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpF IDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9I IDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9G SUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9U RVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNU IDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJf Q0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEK fCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJ UiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZ X01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFW RV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZp bmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNk ZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05V TElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUg bXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAx CnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0 aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3Jl X3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9w YXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1h cAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8y IHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmlu ZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJw bF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmlu ZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2Rl ZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IK fCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgICAjaW5jbHVkZSA8c3lzL3N0YXQuaD4K fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwp8IGlm IChzaXplb2YgYWNfYWdnci5zdF9iaXJ0aHRpbS50dl9uc2VjKQp8IHJldHVybiAwOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MzIxMDc6IHJlc3VsdDogbm8KY29uZmlndXJlOjMy MTI1OiBjaGVja2luZyBmb3Igd29ya2luZyBzdGRhbGlnbi5oCmNvbmZpZ3VyZTozMjE3MDogZ2Nj IC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5lPWdlbmVyaWMgICBj b25mdGVzdC5jID4mNQpjb25maWd1cmU6MzIxNzA6ICQ/ID0gMApjb25maWd1cmU6MzIxNzc6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTozMjE5NTogY2hlY2tpbmcgZm9yIGdvb2QgbWF4X2FsaWduX3QK Y29uZmlndXJlOjMyMjE3OiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYt MiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozMjIxNzogJD8gPSAw CmNvbmZpZ3VyZTozMjIyNTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMyMjM3OiBjaGVja2luZyB3 aGV0aGVyIE5VTEwgY2FuIGJlIHVzZWQgaW4gYXJiaXRyYXJ5IGV4cHJlc3Npb25zCmNvbmZpZ3Vy ZTozMjI1NTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5l PWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzIyNTU6ICQ/ID0gMApjb25maWd1 cmU6MzIyNjI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMjQyNDogY2hlY2tpbmcgd2hpY2ggZmxh dm9yIG9mIHByaW50ZiBhdHRyaWJ1dGUgbWF0Y2hlcyBpbnR0eXBlcyBtYWNyb3MKY29uZmlndXJl OjMyNDUxOiBnY2MgLUkgLi4vc3JjL250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9 Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MjQ2OjIwOiBlcnJvcjogc2l6ZSBv ZiBhcnJheSAnUFJJZE1BWF9wcm9iZScgaXMgbmVnYXRpdmUKICAyNDYgfCAgICAgICAgZXh0ZXJu IGNoYXIgUFJJZE1BWF9wcm9iZVtzaXplb2YgUFJJZE1BWCA9PSBzaXplb2YgIkk2NGQiID8gMSA6 IC0xXTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgpjb25maWd1cmU6 MzI0NTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgTUFJTF9V U0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAj ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5f U09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNkZWZpbmUgR0ND X0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwgI2RlZmluZSBIQVZF X01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmluZSBIQVZFX01BTExP Q19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZpbmUgSEFWRV9QV0Rf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAx CnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0NERUZTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBU SU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9IIDEKfCAjZGVmaW5l IEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJIDEKfCAjZGVmaW5l IFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBV U0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJMRUQgMQp8ICNkZWZp bmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVmaW5lIEhBVkVfSlNP TiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0VfRklMRV9OT1RJRlkg MQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZpbmUgVVNFX1hJTSAx CnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBNIDEKfCAjZGVmaW5l IEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAx CnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19TVUZGSVggIi5kbGwi CnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9IIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZFX0VMSVNQX1NVRkZJ WCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVfVElGRiAxCnwgI2Rl ZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNkZWZpbmUgSEFWRV9H RVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmluZSBIQVZFX1JJTlQg MQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVDVCAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxFIDEKfCAjZGVmaW5l IEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhB VkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sgMQp8ICNkZWZpbmUg SEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8ICNkZWZpbmUgSEFW RV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmluZSBIQVZFX0dFVFNP Q0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVmaW5lIEhBVkVfTE9H MiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9BRERSRVNT IDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAjZGVmaW5lIEhBVkVf RlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZFX0NBTk9OSUNBTEla RV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2RlZmluZSBIQVZFX1JF QURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwgI2RlZmluZSBIQVZF X0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVmaW5lIEhBVkVfTENI TU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKfCAj ZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZp bmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVmaW5lIEhBVkVfUFNF TEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFWRV9JU1dDVFlQRSAx CnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZTUxJTksgMQp8ICNk ZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8ICNkZWZpbmUgSEFW RV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQgMQp8ICNkZWZpbmUg SEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFWRV9NQlNUQVRFX1Qg MQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVWSUNFICJOVUw6Igp8 ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAxCnwgI2RlZmluZSBV U0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCnwg I2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAjZGVmaW5lIElTX0RJ UkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdcXCcpCnwgI2RlZmlu ZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NF UChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYvZHNwIgp8ICNkZWZp bmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJ TkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NOVCAxCnwgI2RlZmlu ZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5cmlnaHQgKEMpIDIw MjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUgVEVSTV9IRUFERVIg InczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWlu Z3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZpeD0vaG9tZS9WV2lu VXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0aC1uYXRpdmVjb21w Igp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8ICNkZWZpbmUgSEFW RV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lPTlMgMQp8ICNkZWZp bmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1Qg MQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSByZXN0cmljdCBfX3Jl c3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBMU1RBVF9GT0xM T1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTU9ERSAwCnwgI2Rl ZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJR05FRF9MT05HX0xP TkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1Ra TkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05P Tk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJO TEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZpbmUgX1VTRV9TVERf U1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFUlJPUl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldSSVRFX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEdFVEdST1VQ U19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8ICNkZWZpbmUgSEFW RV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUgMQp8ICNkZWZpbmUg SEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQgMQp8ICNkZWZpbmUg VVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8ICNkZWZpbmUgR05V TElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9TRV9TVFJFQU0gMQp8 ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgR05VTElC X0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAKfCAjZGVmaW5lIEdO VUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVNQkVSIC8qKi8KfCAj ZGVmaW5lIF9fR0VUT1BUX1BSRUZJWCBycGxfCnwgI2RlZmluZSBIQVZFX0JDUllQVF9IIDEKfCAj ZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBfR0xfUkVQTEFDRV9J RUVFNzU0X0ggMQp8ICNkZWZpbmUgSEFWRV9fX0lOTElORSAxCnwgI2RlZmluZSBIQVZFX0dNUF9I IDEKfCAjZGVmaW5lIEhBVkVfTUVNUENQWSAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8 ICNkZWZpbmUgTkVFRF9NS1RJTUVfV0lORE9XUyAxCnwgI2RlZmluZSBteV9zdHJmdGltZSBuc3Ry ZnRpbWUKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdF WF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50 YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNk ZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5l IHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9z ZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8y CnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBs X3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3Rl cnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3Jl X2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBs X3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJl ZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9MSUJJTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0lTQkxBTksgMQp8ICNkZWZpbmUgX19VU0VfTUlOR1dfQU5TSV9TVERJTyAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8ICAgICAgICAjZGVmaW5lIF9fU1REQ19GT1JNQVRfTUFDUk9T IDEKfCAgICAgICAgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgICAgICAgICNpbmNsdWRlIDxpbnR0eXBl cy5oPgp8ICAgICAgICAvKiBGb3Igbm9uLW1pbmd3IHN5c3RlbXMsIGNvbXBpbGF0aW9uIHdpbGwg dHJpdmlhbGx5IHN1Y2NlZWQuCnwgICAgICAgICAgIEZvciBtaW5ndywgY29tcGlsYXRpb24gd2ls bCBzdWNjZWVkIGZvciBvbGRlciBtaW5ndyAoc3lzdGVtCnwgICAgICAgICAgIHByaW50ZiwgIkk2 NGQiKSBhbmQgZmFpbCBmb3IgbmV3ZXIgbWluZ3cgKGdudSBwcmludGYsICJsbGQiKS4gKi8KfCAg ICAgICAgI2lmIChkZWZpbmVkIF9XSU4zMiAmJiAhIGRlZmluZWQgX19DWUdXSU5fXykgJiYgICAg ICAgICAgKF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+ PSA0KSkKfCAgICAgICAgZXh0ZXJuIGNoYXIgUFJJZE1BWF9wcm9iZVtzaXplb2YgUFJJZE1BWCA9 PSBzaXplb2YgIkk2NGQiID8gMSA6IC0xXTsKfCAgICAgICAgI2VuZGlmCnwgCnwgaW50CnwgbWFp biAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjMyNDU4OiByZXN1 bHQ6IGdudQpjb25maWd1cmU6MzI1OTI6IGNoZWNraW5nIGZvciBzdHBjcHkKY29uZmlndXJlOjMy NTkyOiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJm LTIgLW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgID4mNSAKY29uZnRlc3QuYzoyNjQ6Njog d2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdzdHBjcHkn OyBleHBlY3RlZCAnY2hhciAqKGNoYXIgKiwgY29uc3QgY2hhciAqKScgWy1XYnVpbHRpbi1kZWNs YXJhdGlvbi1taXNtYXRjaF0KICAyNjQgfCBjaGFyIHN0cGNweSAoKTsKICAgICAgfCAgICAgIF5+ fn5+fgpDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIv MTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBDOlxtc3lz NjRcdG1wXGNjS0hVa3VtLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhvbWVcVldp blVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5jOjI3NTog dW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgc3RwY3B5Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCBy ZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTozMjU5MjogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwg I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9G SUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1f VFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBI QVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP Q0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBI QVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAj ZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUg SEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9U SUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9T Q1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlog MQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhB VkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAx CnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklU IDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09N UCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9Q TkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5l IEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhB VkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEK fCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZp bmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmlu ZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZF X1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9H QUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVB RF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVm aW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxU SU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9T QlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBI QVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZF X0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05U TCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2Rl ZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNC TEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFY IDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwg I2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhB VkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9X SURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMg MQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNk ZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNv cwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2Nf KSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9 PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElS RUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxU X1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNk ZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoq Lwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2Rl ZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1B Q1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09O RklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0 aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9B VFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZF X1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmlu ZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRI X1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAx CnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1F X1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dD SEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENI QVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmlu ZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmlu ZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5l IEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVf X19CVUlMVElOX0VYUEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8 ICNkZWZpbmUgR05VTElCX0NMT1NFX1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNf RElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9GRE9QRU5ESVIgMAp8ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmlu ZSBGTEVYSUJMRV9BUlJBWV9NRU1CRVIgLyoqLwp8ICNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJw bF8KfCAjZGVmaW5lIEhBVkVfQkNSWVBUX0ggMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVa T05FIHZvaWQKfCAjZGVmaW5lIF9HTF9SRVBMQUNFX0lFRUU3NTRfSCAxCnwgI2RlZmluZSBIQVZF X19fSU5MSU5FIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1QQ1BZ IDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBORUVEX01LVElNRV9XSU5E T1dTIDEKfCAjZGVmaW5lIG15X3N0cmZ0aW1lIG5zdHJmdGltZQp8ICNkZWZpbmUgX1JFR0VYX0lO Q0xVREVfTElNSVRTX0ggMQp8ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZp bmUgcmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9z ZXRfc3ludGF4IHJwbF9yZV9zZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4g cnBsX3JlX2NvbXBpbGVfcGF0dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9y ZV9jb21waWxlX2Zhc3RtYXAKfCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2Rl ZmluZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9y ZV9tYXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVf c2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxf cmVfY29tcAp8ICNkZWZpbmUgcmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBy cGxfcmVnY29tcAp8ICNkZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJy b3IgcnBsX3JlZ2Vycm9yCnwgI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBI QVZFX0xJQklOVExfSCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAxCnwgI2RlZmluZSBf X1VTRV9NSU5HV19BTlNJX1NURElPIDEKfCAjZGVmaW5lIEdOVUxJQl9QUklOVEZfQVRUUklCVVRF X0ZMQVZPUl9HTlUgMQp8ICNkZWZpbmUgR05VTElCX0ZTQ0FORiAxCnwgI2RlZmluZSBHTlVMSUJf U0NBTkYgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgc3RwY3B5IHRvIGFu IGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc3RwY3B5Lgp8 ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2Zk YXkuICAqLwp8ICNkZWZpbmUgc3RwY3B5IGlubm9jdW91c19zdHBjcHkKfCAKfCAvKiBTeXN0ZW0g aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw ZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc3RwY3B5ICgpOyBiZWxvdy4K fCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZp bmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBj b21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+ CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzdHBj cHkKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu IHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAi QyIKfCAjZW5kaWYKfCBjaGFyIHN0cGNweSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZp bmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5 cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwg ICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4g YWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9zdHBjcHkgfHwgZGVmaW5lZCBfX3N0dWJf X19zdHBjcHkKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0 dXJuIHN0cGNweSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjMyNTkyOiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMjY0NDogY2hlY2tpbmcgZm9yIHdvcmtpbmcgc3Rybmxlbgpj b25maWd1cmU6MzI2ODI6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMg LU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgPiY1IApjb25maWd1 cmU6MzI2ODI6ICQ/ID0gMApjb25maWd1cmU6MzI2ODI6IC4vY29uZnRlc3QuZXhlCmNvbmZpZ3Vy ZTozMjY4MjogJD8gPSAwCmNvbmZpZ3VyZTozMjY5MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMy NzM3OiBjaGVja2luZyB3aGV0aGVyIHN0cnRvaW1heCB3b3Jrcwpjb25maWd1cmU6MzI3OTM6IGdj YyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1 bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAgPiY1IApjb25maWd1cmU6MzI3OTM6ICQ/ID0gMApj b25maWd1cmU6MzI3OTM6IC4vY29uZnRlc3QuZXhlCmNvbmZpZ3VyZTozMjc5MzogJD8gPSAwCmNv bmZpZ3VyZTozMjgwNDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMyODU4OiBjaGVja2luZyB3aGV0 aGVyIHN5bWxpbmsgaGFuZGxlcyB0cmFpbGluZyBzbGFzaCBjb3JyZWN0bHkKY29uZmlndXJlOjMy OTA1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzMxMzE6IGNoZWNraW5nIGZvciBubGlua190CmNv bmZpZ3VyZTozMzEzMTogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLWMgLWczIC1PMiAtZ2R3YXJmLTIg LW10dW5lPWdlbmVyaWMgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAn bWFpbic6CmNvbmZ0ZXN0LmM6MjQ3OjEzOiBlcnJvcjogJ25saW5rX3QnIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIDI0NyB8IGlmIChzaXplb2YgKG5saW5rX3QpKQog ICAgICB8ICAgICAgICAgICAgIF5+fn5+fn4KY29uZnRlc3QuYzoyNDc6MTM6IG5vdGU6IGVhY2gg dW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5j dGlvbiBpdCBhcHBlYXJzIGluCmNvbmZpZ3VyZTozMzEzMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg RW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNz QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEK fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9f RVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxF X09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQ RSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZF X1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVT T1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tF VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZp bmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBI QVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVm aW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFW RV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZ IDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JP TExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8 ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVf TENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwg I2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEK fCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAx CnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcg MQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhB VkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVf UkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAj ZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZp bmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZF X1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBI QVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JF Q1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlf U1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9T RVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5l IEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5f VU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJL IDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZF X1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VY UExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVf RkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAx CnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmlu ZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhB VkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFO SyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEK fCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2Rl ZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVf TEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURU SCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8 ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZp bmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8 ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAo KF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAn LycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNU T1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NP VU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZp bmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8 ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmlu ZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1Nf Q09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklH X09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZl LWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRS SUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NU QVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBE T1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dP UktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJP Tl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwg I2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1Rf SVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFS X1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU UlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9D TEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G RkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBV VFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJf VU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBI QVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBI QVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhB VkVfQUNMX0ZST01fVEVYVCAxCnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVfX19C VUlMVElOX0VYUEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNk ZWZpbmUgR05VTElCX0NMT1NFX1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElT VElOQ1RfUk9PVCAxCnwgI2RlZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9GRE9QRU5ESVIgMAp8ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmluZSBG TEVYSUJMRV9BUlJBWV9NRU1CRVIgLyoqLwp8ICNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJwbF8K fCAjZGVmaW5lIEhBVkVfQkNSWVBUX0ggMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05F IHZvaWQKfCAjZGVmaW5lIF9HTF9SRVBMQUNFX0lFRUU3NTRfSCAxCnwgI2RlZmluZSBIQVZFX19f SU5MSU5FIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1QQ1BZIDEK fCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBORUVEX01LVElNRV9XSU5ET1dT IDEKfCAjZGVmaW5lIG15X3N0cmZ0aW1lIG5zdHJmdGltZQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xV REVfTElNSVRTX0ggMQp8ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUg cmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRf c3ludGF4IHJwbF9yZV9zZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBs X3JlX2NvbXBpbGVfcGF0dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9j b21waWxlX2Zhc3RtYXAKfCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmlu ZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9t YXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0 X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVf Y29tcAp8ICNkZWZpbmUgcmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxf cmVnY29tcAp8ICNkZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3Ig cnBsX3JlZ2Vycm9yCnwgI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZF X0xJQklOVExfSCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAxCnwgI2RlZmluZSBfX1VT RV9NSU5HV19BTlNJX1NURElPIDEKfCAjZGVmaW5lIEdOVUxJQl9QUklOVEZfQVRUUklCVVRFX0ZM QVZPUl9HTlUgMQp8ICNkZWZpbmUgR05VTElCX0ZTQ0FORiAxCnwgI2RlZmluZSBHTlVMSUJfU0NB TkYgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg ICAgICAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IGlmIChz aXplb2YgKG5saW5rX3QpKQp8IAkgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZTozMzEzMTogcmVzdWx0OiBubwpjb25maWd1cmU6MzMxNzU6IGNoZWNraW5nIHdoZXRo ZXIgbG9jYWx0aW1lX3IgaXMgZGVjbGFyZWQKY29uZmlndXJlOjMzMTc1OiBnY2MgLUkgLi4vc3Jj L250L2luYyAtYyAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgIGNvbmZ0ZXN0LmMg PiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3QuYzoyNTk6MTA6IGVy cm9yOiAnbG9jYWx0aW1lX3InIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KTsgZGlkIHlvdSBtZWFuICdsb2NhbHRpbWVfcyc/CiAgMjU5IHwgICAodm9pZCkgbG9jYWx0aW1l X3I7CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn4KICAgICAgfCAgICAgICAgICBsb2NhbHRp bWVfcwpjb25mdGVzdC5jOjI1OToxMDogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIg aXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29u ZmlndXJlOjMzMTc1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxU X1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVm aW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZp bmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFW RV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhB VkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BB UkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVG U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19I IDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAj ZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNk ZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwg I2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwg I2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNk ZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEK fCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBI QVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVf Tk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVT RV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwg I2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZF X1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklY ICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NK SVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElT UF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYg MQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5l IEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFW RV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8 ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwg I2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2Rl ZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAj ZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVm aW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFW RV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBI QVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVf QUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmlu ZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5P TklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUg SEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZp bmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBI QVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRB VCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEK fCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBI QVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNX Q1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5L IDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVm aW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAj ZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJT VEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAi TlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNk ZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQ ICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmlu ZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8 ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RF VklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIK fCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9X X0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8 ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0 IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1f SEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQt dzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hv bWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0 aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVm aW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEK fCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5D VF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJp Y3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNU QVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUg MAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURf TE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUg SEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0Nf MF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9V U0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJS T1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9V TkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBH RVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVm aW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVm aW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAj ZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAj ZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVm aW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RS RUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5l IEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2Rl ZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAv KiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRf SCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JF UExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFW RV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NU RU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRp bWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxf cmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50 YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwg I2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZp bmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9z ZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRj aF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRf cmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVj IHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdl eGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5l IHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9JU0JMQU5LIDEKfCAjZGVmaW5lIF9fVVNFX01JTkdXX0FOU0lfU1RESU8gMQp8 ICNkZWZpbmUgR05VTElCX1BSSU5URl9BVFRSSUJVVEVfRkxBVk9SX0dOVSAxCnwgI2RlZmluZSBH TlVMSUJfRlNDQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9TQ0FORiAxCnwgI2RlZmluZSBubGlua190 IGludAp8ICNkZWZpbmUgR05VTElCX1RFTVBOQU1FIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgLyogbWluZ3cncyA8dGltZS5oPiBwcm92aWRlcyB0aGUgZnVuY3Rpb25zIGFzY3RpbWVfciwg Y3RpbWVfciwKfCAgICAgICAgICBnbXRpbWVfciwgbG9jYWx0aW1lX3Igb25seSBpZiA8dW5pc3Rk Lmg+IG9yIDxwdGhyZWFkLmg+IGhhcwp8ICAgICAgICAgIGJlZW4gaW5jbHVkZWQgYmVmb3JlLiAg Ki8KfCAgICAgICAjaWYgZGVmaW5lZCBfX01JTkdXMzJfXwp8ICAgICAgICMgaW5jbHVkZSA8dW5p c3RkLmg+CnwgICAgICAgI2VuZGlmCnwgICAgICAgI2luY2x1ZGUgPHRpbWUuaD4KfCAKfCAKfCBp bnQKfCBtYWluICgpCnwgewp8ICNpZm5kZWYgbG9jYWx0aW1lX3IKfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCAgICh2b2lkKSBsb2NhbHRpbWVfcjsKfCAjZWxzZQp8ICAgKHZvaWQpIGxvY2FsdGltZV9y Owp8ICNlbmRpZgp8ICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 MzMxNzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjMzMjQ5OiBjaGVja2luZyB3aGV0aGVyIGxvY2Fs dGltZV9yIGV4aXN0cyBhcyBhbiBpbmxpbmUgZnVuY3Rpb24KY29uZmlndXJlOjMzMjc2OiBnY2Mg LUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIgLW10dW5l PWdlbmVyaWMgICAgY29uZnRlc3QuYyAgID4mNSAKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21h aW4nOgpjb25mdGVzdC5jOjI1NzoxNTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ2xvY2FsdGltZV9yJzsgZGlkIHlvdSBtZWFuICdsb2NhbHRpbWVfcyc/IFstV2lt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIDI1NyB8ICAgICAgICAgICAgICAgbG9jYWx0 aW1lX3IgKCZhLCAmcik7CiAgICAgIHwgICAgICAgICAgICAgICBefn5+fn5+fn5+fgogICAgICB8 ICAgICAgICAgICAgICAgbG9jYWx0aW1lX3MKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9n Y2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3 MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY3dQMUFUZS5vOiBpbiBmdW5jdGlvbiBgbWFp bic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0aXZlLWNvbXBc YnVpbGQvY29uZnRlc3QuYzoyNTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGxvY2FsdGltZV9y Jwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3Vy ZTozMzI3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBNQUlM X1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIFNURENfSEVBREVS UyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8 ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BF Tl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CnwgI2RlZmluZSBH Q0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1udCIKfCAjZGVmaW5lIEhB VkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAjZGVmaW5lIEhBVkVfTUFM TE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwgI2RlZmluZSBIQVZFX1BX RF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElC X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9I IDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfQ0RFRlNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCnwg I2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5l IFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQp8ICNkZWZp bmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFHRV9BUEkgMQp8ICNkZWZp bmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5l IFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCnwgI2Rl ZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8ICNkZWZpbmUgSEFWRV9K U09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9GSUxFX05PVElG WSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwgI2RlZmluZSBVU0VfWElN IDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFWRV9YUE0gMQp8ICNkZWZp bmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNkZWZpbmUgSEFWRV9aTElC IDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLmRs bCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUX0gg MQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VG RklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUgSEFWRV9USUZGIDEKfCAj ZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAxCnwgI2RlZmluZSBIQVZF X0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAjZGVmaW5lIEhBVkVfUklO VCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVfU0VMRUNUIDEKfCAjZGVm aW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRMT0NBTEUgMQp8ICNkZWZp bmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElNSVQgMQp8ICNkZWZpbmUg SEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lHTUFTSyAxCnwgI2RlZmlu ZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1FUiAxCnwgI2RlZmluZSBI QVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIEhBVkVfR0VU U09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8ICNkZWZpbmUgSEFWRV9M T0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0ZSQU1FX0FERFJF U1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQgMQp8ICNkZWZpbmUgSEFW RV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKfCAjZGVmaW5lIEhBVkVf UkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJPIDEKfCAjZGVmaW5lIEhB VkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8ICNkZWZpbmUgSEFWRV9M Q0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBIQVZFX0ZTVEFUQVQgMQp8 ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCnwgI2Rl ZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8ICNkZWZpbmUgSEFWRV9Q U0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmluZSBIQVZFX0lTV0NUWVBF IDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhBVkVfU1lNTElOSyAxCnwg I2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBmb3JrCnwgI2RlZmluZSBI QVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCnwgI2RlZmlu ZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmluZSBIQVZFX01CU1RBVEVf VCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5VTDoi CnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vzc2VzIDEKfCAjZGVmaW5l IFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElSRUNUT1JZX1NFUCAnLycK fCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzonKQp8ICNkZWZpbmUgSVNf RElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKfCAjZGVm aW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2NfKSB8fCBJU19ERVZJQ0Vf U0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAiL2Rldi9kc3AiCnwgI2Rl ZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFDS19PVkVSRkxPV19IQU5E TElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lORE9XU05UIDEKfCAjZGVm aW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykg MjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2RlZmluZSBURVJNX0hFQURF UiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElPTiAieDg2XzY0LXc2NC1t aW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0tcHJlZml4PS9ob21lL1ZX aW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQgLS13aXRoLW5hdGl2ZWNv bXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05FRCAxCnwgI2RlZmluZSBI QVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUyAxCnwgI2Rl ZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9P VCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVmaW5lIHJlc3RyaWN0IF9f cmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIExTVEFUX0ZP TExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RFIDAKfCAj ZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VOU0lHTkVEX0xPTkdf TE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVf VFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgTUFMTE9DXzBfSVNf Tk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU Uk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBfVVNFX1NU RF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVSUk9SX1VO TE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NLRUQgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GV1JJVEVfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgR0VUR1JP VVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0laRSAwCnwgI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xfSCAxCnwgI2RlZmluZSBI QVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCnwgI2RlZmlu ZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01fVEVYVCAxCnwgI2RlZmlu ZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0VYUEVDVCAxCnwgI2RlZmluZSBH TlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX0NMT1NFX1NUUkVBTSAx CnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBHTlVM SUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9GRE9QRU5ESVIgMAp8ICNkZWZpbmUg R05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmluZSBGTEVYSUJMRV9BUlJBWV9NRU1CRVIgLyoqLwp8 ICNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJwbF8KfCAjZGVmaW5lIEhBVkVfQkNSWVBUX0ggMQp8 ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIF9HTF9SRVBMQUNF X0lFRUU3NTRfSCAxCnwgI2RlZmluZSBIQVZFX19fSU5MSU5FIDEKfCAjZGVmaW5lIEhBVkVfR01Q X0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1QQ1BZIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAx CnwgI2RlZmluZSBORUVEX01LVElNRV9XSU5ET1dTIDEKfCAjZGVmaW5lIG15X3N0cmZ0aW1lIG5z dHJmdGltZQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNkZWZpbmUgX1JF R0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5 bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRfc3ludGF4Cnwg I2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVybgp8ICNkZWZp bmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAjZGVmaW5lIHJl X3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNo XzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hfMiBy cGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lz dGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVfZXhlYyBycGxf cmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUgcmVnZXhlYyBy cGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2RlZmluZSByZWdm cmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0xJQklOVExfSCAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSVNCTEFOSyAxCnwgI2RlZmluZSBfX1VTRV9NSU5HV19BTlNJX1NURElPIDEKfCAjZGVm aW5lIEdOVUxJQl9QUklOVEZfQVRUUklCVVRFX0ZMQVZPUl9HTlUgMQp8ICNkZWZpbmUgR05VTElC X0ZTQ0FORiAxCnwgI2RlZmluZSBHTlVMSUJfU0NBTkYgMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIEdOVUxJQl9URU1QTkFNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTE9DQUxUSU1F X1IgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBtaW5ndydzIDx0aW1lLmg+IHByb3Zp ZGVzIHRoZSBmdW5jdGlvbnMgYXNjdGltZV9yLCBjdGltZV9yLAp8ICAgICAgICAgICAgICAgICAg Z210aW1lX3IsIGxvY2FsdGltZV9yIG9ubHkgaWYgPHVuaXN0ZC5oPiBvciA8cHRocmVhZC5oPiBo YXMKfCAgICAgICAgICAgICAgICAgIGJlZW4gaW5jbHVkZWQgYmVmb3JlLiAgKi8KfCAgICAgICAg ICAgICAgICNpZiBkZWZpbmVkIF9fTUlOR1czMl9fCnwgICAgICAgICAgICAgICAjIGluY2x1ZGUg PHVuaXN0ZC5oPgp8ICAgICAgICAgICAgICAgI2VuZGlmCnwgICAgICAgICAgICAgICAjaW5jbHVk ZSA8dGltZS5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgdGltZV90IGE7CnwgICAgICAgICAg ICAgICBzdHJ1Y3QgdG0gcjsKfCAgICAgICAgICAgICAgIGxvY2FsdGltZV9yICgmYSwgJnIpOwp8 IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQp8IApjb25maWd1cmU6MzMyODU6IHJlc3VsdDogbm8K Y29uZmlndXJlOjMzMzI2OiBjaGVja2luZyB3aGV0aGVyIGxvY2FsdGltZSB3b3JrcyBldmVuIG5l YXIgZXh0cmVtYQpjb25maWd1cmU6MzMzNjA6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0 ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jICAg PiY1IApjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZ0ZXN0LmM6MjU4OjEzOiB3 YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnYWxhcm0nIFstV2ltcGxp Y2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIDI1OCB8ICAgICAgICAgICAgIGFsYXJtICgyKTsK ICAgICAgfCAgICAgICAgICAgICBefn5+fgpjb25maWd1cmU6MzMzNjA6ICQ/ID0gMApjb25maWd1 cmU6MzMzNjA6IC4vY29uZnRlc3QuZXhlCmNvbmZpZ3VyZTozMzM2MDogJD8gPSAwCmNvbmZpZ3Vy ZTozMzM2OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMzMzc3OiBjaGVja2luZyBmb3IgdGltZXpv bmVfdApjb25maWd1cmU6MzMzNzc6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdk d2FyZi0yIC1tdHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVu Y3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjI0OToxMzogZXJyb3I6ICd0aW1lem9uZV90JyB1bmRl Y2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiAndGltZXpv bmUnPwogIDI0OSB8IGlmIChzaXplb2YgKHRpbWV6b25lX3QpKQogICAgICB8ICAgICAgICAgICAg IF5+fn5+fn5+fn4KICAgICAgfCAgICAgICAgICAgICB0aW1lem9uZQpjb25mdGVzdC5jOjI0OTox Mzogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNl IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KY29uZmlndXJlOjMzMzc3OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0gg MQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVm aW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEK fCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFW RV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NI QVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEK fCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9D IDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JV RkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAx CnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUg SEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVT RV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFW RV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8 ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFW RV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFW RV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZF X05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2Rl ZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYg MQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8 ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhB VkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdF U0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1J VCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEK fCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFM IDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAj ZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUg SEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxM T0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBI QVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2Rl ZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEK fCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAj ZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8 ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmlu ZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZT WU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQg MQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZp bmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFW RV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJ TUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8 ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9f X05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhB VkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENI QVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUg cHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVW SUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9j XykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChf Y18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVm aW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9X T1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5l IERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05S RUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwg I2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmlu ZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fk cy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhB VkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAj ZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NB IDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZV TkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZ TUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05H X0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAj ZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZp bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVm aW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9G X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNf VU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5M T0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBp bnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxF IDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUg MQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNk ZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJ WkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJM RV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElS IDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9Q VF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1F T0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAj ZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBI QVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURf TUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmlu ZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VU UyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAj ZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBp bGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zh c3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9z ZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVf bWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwg I2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSBy ZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmlu ZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2Rl ZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUK fCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEK fCAjZGVmaW5lIF9fVVNFX01JTkdXX0FOU0lfU1RESU8gMQp8ICNkZWZpbmUgR05VTElCX1BSSU5U Rl9BVFRSSUJVVEVfRkxBVk9SX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfRlNDQU5GIDEKfCAjZGVm aW5lIEdOVUxJQl9TQ0FORiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgR05VTElC X1RFTVBOQU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9MT0NBTFRJTUVfUiAwCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDx0aW1lLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCBpZiAoc2l6ZW9mICh0aW1lem9uZV90KSkKfCAJIHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MzMzNzc6IHJlc3VsdDogbm8KY29uZmlndXJlOjMzNDY0OiBjaGVj a2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIHRpbWVyX3NldHRpbWUKY29uZmlndXJlOjMzNDk1 OiBnY2MgLUkgLi4vc3JjL250L2luYyAtbyBjb25mdGVzdC5leGUgLWczIC1PMiAtZ2R3YXJmLTIg LW10dW5lPWdlbmVyaWMgICAgY29uZnRlc3QuYyAgID4mNSAKQzovbXN5czY0L21pbmd3NjQvYmlu Ly4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEwLjIuMC8uLi8uLi8uLi8uLi94ODZfNjQt dzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogQzpcbXN5czY0XHRtcFxjY1VNaTRUTi5vOiBpbiBmdW5j dGlvbiBgbWFpbic6CkM6XG1zeXM2NFxob21lXFZXaW5Vc2VyMFxEb3dubG9hZHNcZW1hY3NcbmF0 aXZlLWNvbXBcYnVpbGQvY29uZnRlc3QuYzoyNTU6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHRp bWVyX3NldHRpbWUnCmNvbGxlY3QyLmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0 dXMKY29uZmlndXJlOjMzNDk1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAj ZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUg U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf T1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQ VVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQK fCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8 ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZp bmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVm aW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUg SEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJ TUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRf SCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQ SSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUg MQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFC TEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2Rl ZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNF X0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVm aW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQ TSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmlu ZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNf U1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9M SUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElW RV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZF X1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAj ZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZp bmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxF Q1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FM RSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAx CnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNL IDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEK fCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZp bmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2Rl ZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5f RlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwg I2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFW RV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNk ZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8 ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2Rl ZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVf RlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9G REFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2Rl ZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhB VkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9T WU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsK fCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VU IDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhB VkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RF VklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMg MQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RP UllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwg I2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAn XFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8 IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2 L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09W RVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dT TlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29w eXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5l IFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4 ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVm aXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdp dGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEK fCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJ T05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19E SVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUg cmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZp bmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU Uk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5T SUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNk ZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBN QUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVm aW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VE IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZX UklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEK fCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxF IDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhU IDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEK fCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xP U0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAj ZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAw CnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01F TUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9C Q1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUg X0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZp bmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElC X01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlf c3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwg I2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9u cyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3Nl dF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0 ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8 ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJw bF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSBy ZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9y ZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSBy ZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmlu ZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAj ZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEKfCAjZGVmaW5lIF9fVVNFX01JTkdXX0FOU0lfU1RE SU8gMQp8ICNkZWZpbmUgR05VTElCX1BSSU5URl9BVFRSSUJVVEVfRkxBVk9SX0dOVSAxCnwgI2Rl ZmluZSBHTlVMSUJfRlNDQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9TQ0FORiAxCnwgI2RlZmluZSBu bGlua190IGludAp8ICNkZWZpbmUgR05VTElCX1RFTVBOQU1FIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9MT0NBTFRJTUVfUiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRl IGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBj aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAg IGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBs eS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIg dGltZXJfc2V0dGltZSAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiB0aW1lcl9zZXR0 aW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MzM0OTU6IGdjYyAtSSAu Li9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2Vu ZXJpYyAgICBjb25mdGVzdC5jIC1scnQgICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4v bGliL2djYy94ODZfNjQtdzY0LW1pbmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQt bWluZ3czMi9iaW4vbGQuZXhlOiBjYW5ub3QgZmluZCAtbHJ0CmNvbGxlY3QyLmV4ZTogZXJyb3I6 IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjMzNDk1OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAxCnwgI2RlZmluZSBI QVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk ZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfTkVU QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZ U1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RFTV9IIDEKfCAjZGVm aW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VO SVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgSEFWRV9ESVJF TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJ TUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhBVkVfV0NIQVJfSCAx CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05UR1VJIDEKfCAjZGVm aW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1fTUFMTE9DIDEKfCAj ZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMg MQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVfUlNWRyAxCnwgI2Rl ZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNkZWZpbmUgSEFWRV9X MzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVmaW5lIFVTRV9UT09M S0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZpbmUgSEFWRV9IQVJG QlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQRUcgMQp8ICNkZWZp bmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RV TEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZpbmUgSEFWRV9MSUJH Q0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmluZSBIQVZFX05BVElW RV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4iCnwgI2RlZmluZSBI QVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFWRV9HSUYgMQp8ICNk ZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUgMQp8ICNkZWZp bmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVmaW5lIEhBVkVfVFJV TkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAx CnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dFVFJMSU1JVCAxCnwg I2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKfCAjZGVm aW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKfCAj ZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRPIDEKfCAjZGVmaW5l IEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBI QVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNkZWZpbmUgSEFWRV9Q VEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdORURfQUxMT0MgMAp8 ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2RlZmluZSBIQVZFX19f QlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAxCnwgI2RlZmluZSBI QVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVm aW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FUIDEKfCAjZGVmaW5l IEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNTQVQgMQp8ICNkZWZp bmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwgI2RlZmluZSBIQVZF X0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBIQVZFX0ZTWU5DIDEK fCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfTFNUQVQgMQp8ICNk ZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8ICNkZWZpbmUgSEFW RV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZpbmUgSEFWRV9TVFJU T0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfVVRJTUVOU0FU IDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQp8ICNkZWZp bmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fX05MX1BB UEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVmaW5lIEhBVkVfU09D S0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5lIFNFUENIQVIgJzsn CnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxMX05BTUUgcHctPnB3 X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUgSVNfREVWSUNFX1NF UChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllfU0VQKF9jXykgKChf Y18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5ZX1NFUChfY18pIChJ U19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkKfCAjZGVmaW5lIERF RkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NFVEpNUF9XT1JLUyAx CnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAjZGVmaW5lIERPU19O VCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxFX0ZJT05SRUFEIDEK fCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJtLmgiCnwgI2RlZmlu ZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwgI2RlZmluZSBFTUFD U19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFj cy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVmaW5lIEhBVkVfU1RS VUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9GIDEKfCAjZGVmaW5l IEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEKfCAj ZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEZVTkNfUkVB TFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8ICNkZWZpbmUgSEFW RV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkdf SU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hSIDAKfCAjZGVmaW5l IFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEKfCAjZGVmaW5lIEhB VkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRU9GX1VOTE9D S0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVFNfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFQURfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hBUl9VTkxPQ0tFRCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf UFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBpbnQKfCAj ZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dFVF9GSUxFIDEKfCAj ZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZSRUUgMQp8ICNk ZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wgMQp8ICNkZWZpbmUg SEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQ TCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFT SF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRPUEVORElSIDEKfCAj ZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBfX0dFVE9QVF9QUkVG SVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlf VElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9IIDEKfCAjZGVmaW5l IEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX01F TVBDUFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIE5FRURfTUtUSU1F X1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwgI2RlZmluZSBfUkVH RVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwg I2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5l IHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0 dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAg cnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gK fCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2gg cnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmlu ZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21w IHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdj b21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSBy ZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVm aW5lIEhBVkVfTElCSU5UTF9IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDEKfCAjZGVm aW5lIF9fVVNFX01JTkdXX0FOU0lfU1RESU8gMQp8ICNkZWZpbmUgR05VTElCX1BSSU5URl9BVFRS SUJVVEVfRkxBVk9SX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfRlNDQU5GIDEKfCAjZGVmaW5lIEdO VUxJQl9TQ0FORiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgR05VTElCX1RFTVBO QU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9MT0NBTFRJTUVfUiAwCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2 b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy ZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0 ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgdGltZXJfc2V0dGltZSAoKTsKfCBpbnQKfCBtYWluICgp Cnwgewp8IHJldHVybiB0aW1lcl9zZXR0aW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MzM0OTU6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1vIGNvbmZ0ZXN0LmV4ZSAtZzMg LU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVzdC5jIC1scG9zaXg0ICAgID4m NSAKQzovbXN5czY0L21pbmd3NjQvYmluLy4uL2xpYi9nY2MveDg2XzY0LXc2NC1taW5ndzMyLzEw LjIuMC8uLi8uLi8uLi8uLi94ODZfNjQtdzY0LW1pbmd3MzIvYmluL2xkLmV4ZTogY2Fubm90IGZp bmQgLWxwb3NpeDQKY29sbGVjdDIuZXhlOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1 cwpjb25maWd1cmU6MzM0OTU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNk ZWZpbmUgTUFJTF9VU0VfUE9QIDEKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBT VERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdT X0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9P UEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBV WF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8 ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgIndpbmRvd3MtbnQiCnwg I2RlZmluZSBIQVZFX01NU1lTVEVNX0ggMQp8ICNkZWZpbmUgSEFWRV9TT1VORCAxCnwgI2RlZmlu ZSBIQVZFX01BTExPQ19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQp8ICNkZWZp bmUgSEFWRV9QV0RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBI QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfUEFSQU1fSCAxCnwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X0NERUZTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElN SVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx CnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfV0FJVF9I IDEKfCAjZGVmaW5lIEhBVkVfTlRHVUkgMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfSU1BR0VfQVBJ IDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAx CnwgI2RlZmluZSBVU0VfTU1BUF9GT1JfQlVGRkVSUyAxCnwgI2RlZmluZSBUSFJFQURTX0VOQUJM RUQgMQp8ICNkZWZpbmUgSEFWRV9SU1ZHIDEKfCAjZGVmaW5lIEhBVkVfR05VVExTIDEKfCAjZGVm aW5lIEhBVkVfSlNPTiAxCnwgI2RlZmluZSBIQVZFX1czMk5PVElGWSAxCnwgI2RlZmluZSBVU0Vf RklMRV9OT1RJRlkgMQp8ICNkZWZpbmUgVVNFX1RPT0xLSVRfU0NST0xMX0JBUlMgMQp8ICNkZWZp bmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX0hBUkZCVVpaIDEKfCAjZGVmaW5lIEhBVkVfWFBN IDEKfCAjZGVmaW5lIEhBVkVfSlBFRyAxCnwgI2RlZmluZSBIQVZFX0xDTVMyIDEKfCAjZGVmaW5l IEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX01PRFVMRVMgMQp8ICNkZWZpbmUgTU9EVUxFU19T VUZGSVggIi5kbGwiCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgI2RlZmluZSBIQVZFX0xJ QkdDQ0pJVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0NPTVAgMQp8ICNkZWZpbmUgTkFUSVZF X0VMSVNQX1NVRkZJWCAiLmVsbiIKfCAjZGVmaW5lIEhBVkVfUE5HIDEKfCAjZGVmaW5lIEhBVkVf VElGRiAxCnwgI2RlZmluZSBIQVZFX0dJRiAxCnwgI2RlZmluZSBIQVZFX0xJQlhNTDIgMQp8ICNk ZWZpbmUgSEFWRV9HRVRIT1NUTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JBTkRPTSAxCnwgI2RlZmlu ZSBIQVZFX1JJTlQgMQp8ICNkZWZpbmUgSEFWRV9UUlVOQyAxCnwgI2RlZmluZSBIQVZFX1NFTEVD VCAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEKfCAjZGVmaW5lIEhBVkVfU0VUTE9DQUxF IDEKfCAjZGVmaW5lIEhBVkVfR0VUUkxJTUlUIDEKfCAjZGVmaW5lIEhBVkVfU0VUUkxJTUlUIDEK fCAjZGVmaW5lIEhBVkVfU0hVVERPV04gMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1NJR01BU0sg MQp8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQp8ICNkZWZpbmUgSEFWRV9TRVRJVElNRVIgMQp8 ICNkZWZpbmUgSEFWRV9TRU5EVE8gMQp8ICNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCnwgI2RlZmlu ZSBIQVZFX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEhBVkVfR0FJX1NUUkVSUk9SIDEKfCAjZGVm aW5lIEhBVkVfTE9HMiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxJR05FRF9BTExPQyAwCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9G UkFNRV9BRERSRVNTIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX1VOV0lORF9JTklUIDEKfCAj ZGVmaW5lIEhBVkVfRlNFRUtPIDEKfCAjZGVmaW5lIEhBVkVfU0JSSyAxCnwgI2RlZmluZSBIQVZF X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOSyAxCnwgI2Rl ZmluZSBIQVZFX1JFQURMSU5LQVQgMQp8ICNkZWZpbmUgSEFWRV9FWFBMSUNJVF9CWkVSTyAxCnwg I2RlZmluZSBIQVZFX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKfCAjZGVm aW5lIEhBVkVfTENITU9EIDEKfCAjZGVmaW5lIEhBVkVfRkNOVEwgMQp8ICNkZWZpbmUgSEFWRV9G U1RBVEFUIDEKfCAjZGVmaW5lIEhBVkVfRlNZTkMgMQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZE QVkgMQp8ICNkZWZpbmUgSEFWRV9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX1BJUEUyIDEKfCAjZGVm aW5lIEhBVkVfUFNFTEVDVCAxCnwgI2RlZmluZSBIQVZFX0lTQkxBTksgMQp8ICNkZWZpbmUgSEFW RV9JU1dDVFlQRSAxCnwgI2RlZmluZSBIQVZFX1NUUlRPSU1BWCAxCnwgI2RlZmluZSBIQVZFX1NZ TUxJTksgMQp8ICNkZWZpbmUgSEFWRV9VVElNRU5TQVQgMQp8ICNkZWZpbmUgdmZvcmsgZm9yawp8 ICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0NPREVTRVQg MQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19fTkxfUEFQRVJfV0lEVEggMQp8ICNkZWZpbmUgSEFW RV9NQlNUQVRFX1QgMQp8ICNkZWZpbmUgSEFWRV9TT0NLRVRTIDEKfCAjZGVmaW5lIE5VTExfREVW SUNFICJOVUw6Igp8ICNkZWZpbmUgU0VQQ0hBUiAnOycKfCAjZGVmaW5lIHN1YnByb2Nlc3NlcyAx CnwgI2RlZmluZSBVU0VSX0ZVTExfTkFNRSBwdy0+cHdfZ2Vjb3MKfCAjZGVmaW5lIERJUkVDVE9S WV9TRVAgJy8nCnwgI2RlZmluZSBJU19ERVZJQ0VfU0VQKF9jXykgKChfY18pID09ICc6JykKfCAj ZGVmaW5lIElTX0RJUkVDVE9SWV9TRVAoX2NfKSAoKF9jXykgPT0gJy8nIHx8IChfY18pID09ICdc XCcpCnwgI2RlZmluZSBJU19BTllfU0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwg SVNfREVWSUNFX1NFUChfY18pKQp8ICNkZWZpbmUgREVGQVVMVF9TT1VORF9ERVZJQ0UgIi9kZXYv ZHNwIgp8ICNkZWZpbmUgR0NfU0VUSk1QX1dPUktTIDEKfCAjZGVmaW5lIEhBVkVfU1RBQ0tfT1ZF UkZMT1dfSEFORExJTkcgMQp8ICNkZWZpbmUgRE9TX05UIC8qKi8KfCAjZGVmaW5lIFdJTkRPV1NO VCAxCnwgI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQp8ICNkZWZpbmUgQ09QWVJJR0hUICJDb3B5 cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIgp8ICNkZWZpbmUg VEVSTV9IRUFERVIgInczMnRlcm0uaCIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR1VSQVRJT04gIng4 Nl82NC13NjQtbWluZ3czMiIKfCAjZGVmaW5lIEVNQUNTX0NPTkZJR19PUFRJT05TICItLXByZWZp eD0vaG9tZS9WV2luVXNlcjAvRG93bmxvYWRzL2VtYWNzL25hdGl2ZS1jb21wL2J1aWx0IC0td2l0 aC1uYXRpdmVjb21wIgp8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfQVRUUklCVVRFX0FMSUdORUQgMQp8 ICNkZWZpbmUgSEFWRV9UWVBFT0YgMQp8ICNkZWZpbmUgSEFWRV9TVEFURU1FTlRfRVhQUkVTU0lP TlMgMQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJ U1RJTkNUX1JPT1QgMQp8ICNkZWZpbmUgRlVOQ19SRUFMUEFUSF9XT1JLUyAxCnwgI2RlZmluZSBy ZXN0cmljdCBfX3Jlc3RyaWN0CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmlu ZSBMU1RBVF9GT0xMT1dTX1NMQVNIRURfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS TU9ERSAwCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9VTlNJ R05FRF9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1NRU0gMAp8ICNkZWZp bmUgSEFWRV9ERUNMX01FTVJDSFIgMAp8ICNkZWZpbmUgVElNRV9UX0lTX1NJR05FRCAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCnwgI2Rl ZmluZSBIQVZFX1RaTkFNRSAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIE1B TExPQ18wX0lTX05PTk5VTEwgMQp8ICNkZWZpbmUgSEFWRV9XQ0hBUl9UIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9TVFJOTEVOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJUT0lNQVggMQp8ICNkZWZp bmUgX1VTRV9TVERfU1RBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfQ0xFQVJFUlJfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZFUlJPUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkZMVVNIX1VOTE9DS0VEIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RlBVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRTX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRldS SVRFX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9QVVRDSEFSX1VOTE9DS0VEIDAKfCAjZGVm aW5lIEdFVEdST1VQU19UIGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVERUQUJMRVNJWkUgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIGludAp8ICNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQp8 ICNkZWZpbmUgSEFWRV9BQ0xfR0VUX0ZJTEUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfU0VUX0ZJTEUg MQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJFRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUk9NX1RFWFQg MQp8ICNkZWZpbmUgVVNFX0FDTCAxCnwgI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQp8 ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9DTE9T RV9TVFJFQU0gMQp8ICNkZWZpbmUgRE9VQkxFX1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQp8ICNk ZWZpbmUgR05VTElCX0ZBQ0NFU1NBVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkRPUEVORElSIDAK fCAjZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQp8ICNkZWZpbmUgRkxFWElCTEVfQVJSQVlfTUVN QkVSIC8qKi8KfCAjZGVmaW5lIF9fR0VUT1BUX1BSRUZJWCBycGxfCnwgI2RlZmluZSBIQVZFX0JD UllQVF9IIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBf R0xfUkVQTEFDRV9JRUVFNzU0X0ggMQp8ICNkZWZpbmUgSEFWRV9fX0lOTElORSAxCnwgI2RlZmlu ZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5lIEhBVkVfTUVNUENQWSAxCnwgI2RlZmluZSBHTlVMSUJf TUtPU1RFTVAgMQp8ICNkZWZpbmUgTkVFRF9NS1RJTUVfV0lORE9XUyAxCnwgI2RlZmluZSBteV9z dHJmdGltZSBuc3RyZnRpbWUKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAj ZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25z IHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0 X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRl cm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwg I2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBs X3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJl X21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3Jl X3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJl X2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5l IHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNk ZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9MSUJJTlRMX0ggMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMQp8ICNkZWZpbmUgX19VU0VfTUlOR1dfQU5TSV9TVERJ TyAxCnwgI2RlZmluZSBHTlVMSUJfUFJJTlRGX0FUVFJJQlVURV9GTEFWT1JfR05VIDEKfCAjZGVm aW5lIEdOVUxJQl9GU0NBTkYgMQp8ICNkZWZpbmUgR05VTElCX1NDQU5GIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSBHTlVMSUJfVEVNUE5BTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0xPQ0FMVElNRV9SIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNo YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciB0 aW1lcl9zZXR0aW1lICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHRpbWVyX3NldHRp bWUgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozMzUxMjogcmVzdWx0OiBu bwpjb25maWd1cmU6MzM1MjQ6IGNoZWNraW5nIGZvciB0aW1lcl9zZXR0aW1lCmNvbmZpZ3VyZToz MzUyNDogZ2NjIC1JIC4uL3NyYy9udC9pbmMgLW8gY29uZnRlc3QuZXhlIC1nMyAtTzIgLWdkd2Fy Zi0yIC1tdHVuZT1nZW5lcmljICAgIGNvbmZ0ZXN0LmMgICA+JjUgCkM6L21zeXM2NC9taW5ndzY0 L2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC13NjQtbWluZ3czMi8xMC4yLjAvLi4vLi4vLi4vLi4veDg2 XzY0LXc2NC1taW5ndzMyL2Jpbi9sZC5leGU6IEM6XG1zeXM2NFx0bXBcY2NJSU82YVEubzogaW4g ZnVuY3Rpb24gYG1haW4nOgpDOlxtc3lzNjRcaG9tZVxWV2luVXNlcjBcRG93bmxvYWRzXGVtYWNz XG5hdGl2ZS1jb21wXGJ1aWxkL2NvbmZ0ZXN0LmM6Mjc4OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRv IGB0aW1lcl9zZXR0aW1lJwpjb2xsZWN0Mi5leGU6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQg c3RhdHVzCmNvbmZpZ3VyZTozMzUyNDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8i CnwgI2RlZmluZSBNQUlMX1VTRV9QT1AgMQp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19f IDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRT IDY0CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAid2luZG93cy1u dCIKfCAjZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCnwgI2RlZmluZSBIQVZFX1NPVU5EIDEKfCAj ZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxCnwg I2RlZmluZSBIQVZFX1BXRF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDEKfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfQ0RFRlNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFW RV9MSU1JVFNfSCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RB VF9IIDEKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19X QUlUX0ggMQp8ICNkZWZpbmUgSEFWRV9OVEdVSSAxCnwgI2RlZmluZSBIQVZFX05BVElWRV9JTUFH RV9BUEkgMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VT SVpFIDEKfCAjZGVmaW5lIFVTRV9NTUFQX0ZPUl9CVUZGRVJTIDEKfCAjZGVmaW5lIFRIUkVBRFNf RU5BQkxFRCAxCnwgI2RlZmluZSBIQVZFX1JTVkcgMQp8ICNkZWZpbmUgSEFWRV9HTlVUTFMgMQp8 ICNkZWZpbmUgSEFWRV9KU09OIDEKfCAjZGVmaW5lIEhBVkVfVzMyTk9USUZZIDEKfCAjZGVmaW5l IFVTRV9GSUxFX05PVElGWSAxCnwgI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFSUyAxCnwg I2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5lIEhBVkVfSEFSRkJVWlogMQp8ICNkZWZpbmUgSEFW RV9YUE0gMQp8ICNkZWZpbmUgSEFWRV9KUEVHIDEKfCAjZGVmaW5lIEhBVkVfTENNUzIgMQp8ICNk ZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfTU9EVUxFUyAxCnwgI2RlZmluZSBNT0RV TEVTX1NVRkZJWCAiLmRsbCIKfCAjZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKfCAjZGVmaW5lIEhB VkVfTElCR0NDSklUX0ggMQp8ICNkZWZpbmUgSEFWRV9OQVRJVkVfQ09NUCAxCnwgI2RlZmluZSBO QVRJVkVfRUxJU1BfU1VGRklYICIuZWxuIgp8ICNkZWZpbmUgSEFWRV9QTkcgMQp8ICNkZWZpbmUg SEFWRV9USUZGIDEKfCAjZGVmaW5lIEhBVkVfR0lGIDEKfCAjZGVmaW5lIEhBVkVfTElCWE1MMiAx CnwgI2RlZmluZSBIQVZFX0dFVEhPU1ROQU1FIDEKfCAjZGVmaW5lIEhBVkVfUkFORE9NIDEKfCAj ZGVmaW5lIEhBVkVfUklOVCAxCnwgI2RlZmluZSBIQVZFX1RSVU5DIDEKfCAjZGVmaW5lIEhBVkVf U0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgSEFWRV9TRVRM T0NBTEUgMQp8ICNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQp8ICNkZWZpbmUgSEFWRV9TRVRSTElN SVQgMQp8ICNkZWZpbmUgSEFWRV9TSFVURE9XTiAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfU0lH TUFTSyAxCnwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCnwgI2RlZmluZSBIQVZFX1NFVElUSU1F UiAxCnwgI2RlZmluZSBIQVZFX1NFTkRUTyAxCnwgI2RlZmluZSBIQVZFX1JFQ1ZGUk9NIDEKfCAj ZGVmaW5lIEhBVkVfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQp8 ICNkZWZpbmUgSEFWRV9MT0cyIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKfCAjZGVmaW5lIEhBVkVfX19CVUlM VElOX0ZSQU1FX0FERFJFU1MgMQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fVU5XSU5EX0lOSVQg MQp8ICNkZWZpbmUgSEFWRV9GU0VFS08gMQp8ICNkZWZpbmUgSEFWRV9TQlJLIDEKfCAjZGVmaW5l IEhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBIQVZFX1JFQURMSU5LIDEK fCAjZGVmaW5lIEhBVkVfUkVBRExJTktBVCAxCnwgI2RlZmluZSBIQVZFX0VYUExJQ0lUX0JaRVJP IDEKfCAjZGVmaW5lIEhBVkVfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfRkNITU9EQVQgMQp8 ICNkZWZpbmUgSEFWRV9MQ0hNT0QgMQp8ICNkZWZpbmUgSEFWRV9GQ05UTCAxCnwgI2RlZmluZSBI QVZFX0ZTVEFUQVQgMQp8ICNkZWZpbmUgSEFWRV9GU1lOQyAxCnwgI2RlZmluZSBIQVZFX0dFVFRJ TUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfUElQRTIgMQp8 ICNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKfCAjZGVmaW5lIEhBVkVfSVNCTEFOSyAxCnwgI2RlZmlu ZSBIQVZFX0lTV0NUWVBFIDEKfCAjZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIEhB VkVfU1lNTElOSyAxCnwgI2RlZmluZSBIQVZFX1VUSU1FTlNBVCAxCnwgI2RlZmluZSB2Zm9yayBm b3JrCnwgI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09E RVNFVCAxCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCnwgI2RlZmlu ZSBIQVZFX01CU1RBVEVfVCAxCnwgI2RlZmluZSBIQVZFX1NPQ0tFVFMgMQp8ICNkZWZpbmUgTlVM TF9ERVZJQ0UgIk5VTDoiCnwgI2RlZmluZSBTRVBDSEFSICc7Jwp8ICNkZWZpbmUgc3VicHJvY2Vz c2VzIDEKfCAjZGVmaW5lIFVTRVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwp8ICNkZWZpbmUgRElS RUNUT1JZX1NFUCAnLycKfCAjZGVmaW5lIElTX0RFVklDRV9TRVAoX2NfKSAoKF9jXykgPT0gJzon KQp8ICNkZWZpbmUgSVNfRElSRUNUT1JZX1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykg PT0gJ1xcJykKfCAjZGVmaW5lIElTX0FOWV9TRVAoX2NfKSAoSVNfRElSRUNUT1JZX1NFUCAoX2Nf KSB8fCBJU19ERVZJQ0VfU0VQKF9jXykpCnwgI2RlZmluZSBERUZBVUxUX1NPVU5EX0RFVklDRSAi L2Rldi9kc3AiCnwgI2RlZmluZSBHQ19TRVRKTVBfV09SS1MgMQp8ICNkZWZpbmUgSEFWRV9TVEFD S19PVkVSRkxPV19IQU5ETElORyAxCnwgI2RlZmluZSBET1NfTlQgLyoqLwp8ICNkZWZpbmUgV0lO RE9XU05UIDEKfCAjZGVmaW5lIFVTQUJMRV9GSU9OUkVBRCAxCnwgI2RlZmluZSBDT1BZUklHSFQg IkNvcHlyaWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4iCnwgI2Rl ZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHVVJBVElP TiAieDg2XzY0LXc2NC1taW5ndzMyIgp8ICNkZWZpbmUgRU1BQ1NfQ09ORklHX09QVElPTlMgIi0t cHJlZml4PS9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVpbHQg LS13aXRoLW5hdGl2ZWNvbXAiCnwgI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJVVEVfQUxJR05F RCAxCnwgI2RlZmluZSBIQVZFX1RZUEVPRiAxCnwgI2RlZmluZSBIQVZFX1NUQVRFTUVOVF9FWFBS RVNTSU9OUyAxCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hf SVNfRElTVElOQ1RfUk9PVCAxCnwgI2RlZmluZSBGVU5DX1JFQUxQQVRIX1dPUktTIDEKfCAjZGVm aW5lIHJlc3RyaWN0IF9fcmVzdHJpY3QKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIExTVEFUX0ZPTExPV1NfU0xBU0hFRF9TWU1MSU5LIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9TVFJNT0RFIDAKfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HX0lOVCAxCnwgI2RlZmluZSBIQVZF X1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfTUVNUkNIUiAwCnwgI2RlZmluZSBUSU1FX1RfSVNfU0lHTkVEIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDEK fCAjZGVmaW5lIEhBVkVfVFpOQU1FIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAxCnwgI2RlZmluZSBIQVZFX1dDSEFSX1QgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX1NUUk5MRU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUlRPSU1BWCAxCnwg I2RlZmluZSBfVVNFX1NURF9TVEFUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9DTEVBUkVSUl9VTkxP Q0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkVPRl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRkVSUk9SX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRkxVU0hfVU5MT0NL RUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRTX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5MT0NLRUQg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUFEX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GV1JJVEVfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENIQVJfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1BVVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgR0VUR1JPVVBTX1QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VURFRBQkxFU0la RSAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgaW50CnwgI2RlZmluZSBIQVZFX1NZU19BQ0xf SCAxCnwgI2RlZmluZSBIQVZFX0FDTF9HRVRfRklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9TRVRf RklMRSAxCnwgI2RlZmluZSBIQVZFX0FDTF9GUkVFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0ZST01f VEVYVCAxCnwgI2RlZmluZSBVU0VfQUNMIDEKfCAjZGVmaW5lIEhBVkVfX19CVUlMVElOX0VYUEVD VCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElC X0NMT1NFX1NUUkVBTSAxCnwgI2RlZmluZSBET1VCTEVfU0xBU0hfSVNfRElTVElOQ1RfUk9PVCAx CnwgI2RlZmluZSBHTlVMSUJfRkFDQ0VTU0FUIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9GRE9QRU5E SVIgMAp8ICNkZWZpbmUgR05VTElCX0ZET1BFTkRJUiAxCnwgI2RlZmluZSBGTEVYSUJMRV9BUlJB WV9NRU1CRVIgLyoqLwp8ICNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJwbF8KfCAjZGVmaW5lIEhB VkVfQkNSWVBUX0ggMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVm aW5lIF9HTF9SRVBMQUNFX0lFRUU3NTRfSCAxCnwgI2RlZmluZSBIQVZFX19fSU5MSU5FIDEKfCAj ZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1QQ1BZIDEKfCAjZGVmaW5lIEdO VUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBORUVEX01LVElNRV9XSU5ET1dTIDEKfCAjZGVmaW5l IG15X3N0cmZ0aW1lIG5zdHJmdGltZQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0gg MQp8ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29w dGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9y ZV9zZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVf cGF0dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3Rt YXAKfCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hf MiBycGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZp bmUgcmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBy cGxfcmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZp bmUgcmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNk ZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9y CnwgI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0xJQklOVExfSCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAxCnwgI2RlZmluZSBfX1VTRV9NSU5HV19BTlNJ X1NURElPIDEKfCAjZGVmaW5lIEdOVUxJQl9QUklOVEZfQVRUUklCVVRFX0ZMQVZPUl9HTlUgMQp8 ICNkZWZpbmUgR05VTElCX0ZTQ0FORiAxCnwgI2RlZmluZSBHTlVMSUJfU0NBTkYgMQp8ICNkZWZp bmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIEdOVUxJQl9URU1QTkFNRSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfTE9DQUxUSU1FX1IgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUg dGltZXJfc2V0dGltZSB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+ IGRlY2xhcmVzIHRpbWVyX3NldHRpbWUuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGlt aXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSB0aW1lcl9zZXR0aW1l IGlubm9jdW91c190aW1lcl9zZXR0aW1lCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUg X19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBj YW4gY29uZmxpY3Qgd2l0aCBjaGFyIHRpbWVyX3NldHRpbWUgKCk7IGJlbG93Lgp8ICAgICBQcmVm ZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNl CnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4g ICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8 ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIHRpbWVyX3NldHRpbWUK fCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl cnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIK fCAjZW5kaWYKfCBjaGFyIHRpbWVyX3NldHRpbWUgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkg ZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBh bHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1l ZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlz IGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfdGltZXJfc2V0dGltZSB8fCBkZWZp bmVkIF9fc3R1Yl9fX3RpbWVyX3NldHRpbWUKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8 IG1haW4gKCkKfCB7CnwgcmV0dXJuIHRpbWVyX3NldHRpbWUgKCk7CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZTozMzUyNDogcmVzdWx0OiBubwpjb25maWd1cmU6MzM2NjA6IGNoZWNr aW5nIHdoZXRoZXIgdXRpbWVuc2F0IHdvcmtzCmNvbmZpZ3VyZTozMzczMTogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjMzNzYyOiBjaGVja2luZyBmb3IgdmFyaWFibGUtbGVuZ3RoIGFycmF5cwpjb25m aWd1cmU6MzM4MTg6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1jIC1nMyAtTzIgLWdkd2FyZi0yIC1t dHVuZT1nZW5lcmljICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjMzODE4OiAkPyA9IDAKY29u ZmlndXJlOjMzODI4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzQ3MDU6IGNoZWNraW5nIGZvciBf X21rdGltZV9pbnRlcm5hbApjb25maWd1cmU6MzQ3MDU6IGdjYyAtSSAuLi9zcmMvbnQvaW5jIC1v IGNvbmZ0ZXN0LmV4ZSAtZzMgLU8yIC1nZHdhcmYtMiAtbXR1bmU9Z2VuZXJpYyAgICBjb25mdGVz dC5jICAgPiY1IApDOi9tc3lzNjQvbWluZ3c2NC9iaW4vLi4vbGliL2djYy94ODZfNjQtdzY0LW1p bmd3MzIvMTAuMi4wLy4uLy4uLy4uLy4uL3g4Nl82NC13NjQtbWluZ3czMi9iaW4vbGQuZXhlOiBD Olxtc3lzNjRcdG1wXGNjODJXVGJnLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKQzpcbXN5czY0XGhv bWVcVldpblVzZXIwXERvd25sb2Fkc1xlbWFjc1xuYXRpdmUtY29tcFxidWlsZC9jb25mdGVzdC5j OjI4MDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19ta3RpbWVfaW50ZXJuYWwnCmNvbGxlY3Qy LmV4ZTogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjM0NzA1OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw czovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIE1BSUxfVVNFX1BPUCAx CnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9B UEkgMQp8ICNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKfCAjZGVmaW5lIEdDQ19MSU5UIDEK fCAjZGVmaW5lIFNZU1RFTV9UWVBFICJ3aW5kb3dzLW50Igp8ICNkZWZpbmUgSEFWRV9NTVNZU1RF TV9IIDEKfCAjZGVmaW5lIEhBVkVfU09VTkQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFdEX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQp8ICNkZWZp bmUgSEFWRV9ESVJFTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19DREVGU19IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0xJTUlUU19IIDEKfCAjZGVmaW5lIEhB VkVfV0NIQVJfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgVElNRV9XSVRI X1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAxCnwgI2RlZmluZSBIQVZFX05U R1VJIDEKfCAjZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCnwgI2RlZmluZSBTWVNURU1f TUFMTE9DIDEKfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQp8ICNkZWZpbmUgVVNFX01NQVBf Rk9SX0JVRkZFUlMgMQp8ICNkZWZpbmUgVEhSRUFEU19FTkFCTEVEIDEKfCAjZGVmaW5lIEhBVkVf UlNWRyAxCnwgI2RlZmluZSBIQVZFX0dOVVRMUyAxCnwgI2RlZmluZSBIQVZFX0pTT04gMQp8ICNk ZWZpbmUgSEFWRV9XMzJOT1RJRlkgMQp8ICNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKfCAjZGVm aW5lIFVTRV9UT09MS0lUX1NDUk9MTF9CQVJTIDEKfCAjZGVmaW5lIFVTRV9YSU0gMQp8ICNkZWZp bmUgSEFWRV9IQVJGQlVaWiAxCnwgI2RlZmluZSBIQVZFX1hQTSAxCnwgI2RlZmluZSBIQVZFX0pQ RUcgMQp8ICNkZWZpbmUgSEFWRV9MQ01TMiAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZp bmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIuZGxsIgp8ICNkZWZp bmUgSEFWRV9MSUJHQ0NKSVQgMQp8ICNkZWZpbmUgSEFWRV9MSUJHQ0NKSVRfSCAxCnwgI2RlZmlu ZSBIQVZFX05BVElWRV9DT01QIDEKfCAjZGVmaW5lIE5BVElWRV9FTElTUF9TVUZGSVggIi5lbG4i CnwgI2RlZmluZSBIQVZFX1BORyAxCnwgI2RlZmluZSBIQVZFX1RJRkYgMQp8ICNkZWZpbmUgSEFW RV9HSUYgMQp8ICNkZWZpbmUgSEFWRV9MSUJYTUwyIDEKfCAjZGVmaW5lIEhBVkVfR0VUSE9TVE5B TUUgMQp8ICNkZWZpbmUgSEFWRV9SQU5ET00gMQp8ICNkZWZpbmUgSEFWRV9SSU5UIDEKfCAjZGVm aW5lIEhBVkVfVFJVTkMgMQp8ICNkZWZpbmUgSEFWRV9TRUxFQ1QgMQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxCnwgI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCnwgI2RlZmluZSBIQVZFX0dF VFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NFVFJMSU1JVCAxCnwgI2RlZmluZSBIQVZFX1NIVVRE T1dOIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9TSUdNQVNLIDEKfCAjZGVmaW5lIEhBVkVfU1RS U0lHTkFMIDEKfCAjZGVmaW5lIEhBVkVfU0VUSVRJTUVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORFRP IDEKfCAjZGVmaW5lIEhBVkVfUkVDVkZST00gMQp8ICNkZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAx CnwgI2RlZmluZSBIQVZFX0dBSV9TVFJFUlJPUiAxCnwgI2RlZmluZSBIQVZFX0xPRzIgMQp8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMSUdO RURfQUxMT0MgMAp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCnwgI2Rl ZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCnwgI2RlZmluZSBIQVZFX0ZTRUVLTyAx CnwgI2RlZmluZSBIQVZFX1NCUksgMQp8ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9O QU1FIDEKfCAjZGVmaW5lIEhBVkVfUkVBRExJTksgMQp8ICNkZWZpbmUgSEFWRV9SRUFETElOS0FU IDEKfCAjZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQp8ICNkZWZpbmUgSEFWRV9GQUNDRVNT QVQgMQp8ICNkZWZpbmUgSEFWRV9GQ0hNT0RBVCAxCnwgI2RlZmluZSBIQVZFX0xDSE1PRCAxCnwg I2RlZmluZSBIQVZFX0ZDTlRMIDEKfCAjZGVmaW5lIEhBVkVfRlNUQVRBVCAxCnwgI2RlZmluZSBI QVZFX0ZTWU5DIDEKfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVf TFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9QSVBFMiAxCnwgI2RlZmluZSBIQVZFX1BTRUxFQ1QgMQp8 ICNkZWZpbmUgSEFWRV9JU0JMQU5LIDEKfCAjZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQp8ICNkZWZp bmUgSEFWRV9TVFJUT0lNQVggMQp8ICNkZWZpbmUgSEFWRV9TWU1MSU5LIDEKfCAjZGVmaW5lIEhB VkVfVVRJTUVOU0FUIDEKfCAjZGVmaW5lIHZmb3JrIGZvcmsKfCAjZGVmaW5lIEhBVkVfU05QUklO VEYgMQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VUIDEKfCAjZGVmaW5lIEhBVkVfTEFO R0lORk9fX05MX1BBUEVSX1dJRFRIIDEKfCAjZGVmaW5lIEhBVkVfTUJTVEFURV9UIDEKfCAjZGVm aW5lIEhBVkVfU09DS0VUUyAxCnwgI2RlZmluZSBOVUxMX0RFVklDRSAiTlVMOiIKfCAjZGVmaW5l IFNFUENIQVIgJzsnCnwgI2RlZmluZSBzdWJwcm9jZXNzZXMgMQp8ICNkZWZpbmUgVVNFUl9GVUxM X05BTUUgcHctPnB3X2dlY29zCnwgI2RlZmluZSBESVJFQ1RPUllfU0VQICcvJwp8ICNkZWZpbmUg SVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCnwgI2RlZmluZSBJU19ESVJFQ1RPUllf U0VQKF9jXykgKChfY18pID09ICcvJyB8fCAoX2NfKSA9PSAnXFwnKQp8ICNkZWZpbmUgSVNfQU5Z X1NFUChfY18pIChJU19ESVJFQ1RPUllfU0VQIChfY18pIHx8IElTX0RFVklDRV9TRVAoX2NfKSkK fCAjZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKfCAjZGVmaW5lIEdDX1NF VEpNUF9XT1JLUyAxCnwgI2RlZmluZSBIQVZFX1NUQUNLX09WRVJGTE9XX0hBTkRMSU5HIDEKfCAj ZGVmaW5lIERPU19OVCAvKiovCnwgI2RlZmluZSBXSU5ET1dTTlQgMQp8ICNkZWZpbmUgVVNBQkxF X0ZJT05SRUFEIDEKfCAjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiIKfCAjZGVmaW5lIFRFUk1fSEVBREVSICJ3MzJ0ZXJt LmgiCnwgI2RlZmluZSBFTUFDU19DT05GSUdVUkFUSU9OICJ4ODZfNjQtdzY0LW1pbmd3MzIiCnwg I2RlZmluZSBFTUFDU19DT05GSUdfT1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rv d25sb2Fkcy9lbWFjcy9uYXRpdmUtY29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKfCAjZGVm aW5lIEhBVkVfU1RSVUNUX0FUVFJJQlVURV9BTElHTkVEIDEKfCAjZGVmaW5lIEhBVkVfVFlQRU9G IDEKfCAjZGVmaW5lIEhBVkVfU1RBVEVNRU5UX0VYUFJFU1NJT05TIDEKfCAjZGVmaW5lIEhBVkVf QUxMT0NBIDEKfCAjZGVmaW5lIERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVm aW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQp8ICNkZWZpbmUgcmVzdHJpY3QgX19yZXN0cmljdAp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgTFNUQVRfRk9MTE9XU19TTEFT SEVEX1NZTUxJTksgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUk1PREUgMAp8ICNkZWZpbmUgSEFW RV9MT05HX0xPTkdfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVCAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfTUVNTUVNIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9NRU1SQ0hS IDAKfCAjZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMQp8ICNkZWZpbmUgSEFWRV9UWk5BTUUgMQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDEK fCAjZGVmaW5lIEhBVkVfV0NIQVJfVCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSTkxFTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSVE9JTUFYIDEKfCAjZGVmaW5lIF9VU0VfU1REX1NUQVQgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0NMRUFSRVJSX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GRU9GX1VOTE9DS0VEIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZGTFVTSF9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkdFVFNfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUFVUU19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJF QURfVU5MT0NLRUQgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZXUklURV9VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ0hB Ul9VTkxPQ0tFRCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfUFVUQ19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfUFVUQ0hBUl9VTkxPQ0tFRCAwCnwgI2RlZmluZSBHRVRHUk9VUFNfVCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKfCAjZGVmaW5lIFBST01PVEVEX01P REVfVCBpbnQKfCAjZGVmaW5lIEhBVkVfU1lTX0FDTF9IIDEKfCAjZGVmaW5lIEhBVkVfQUNMX0dF VF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNMX1NFVF9GSUxFIDEKfCAjZGVmaW5lIEhBVkVfQUNM X0ZSRUUgMQp8ICNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKfCAjZGVmaW5lIFVTRV9BQ0wg MQp8ICNkZWZpbmUgSEFWRV9fX0JVSUxUSU5fRVhQRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5P TklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfQ0xPU0VfU1RSRUFNIDEKfCAjZGVmaW5l IERPVUJMRV9TTEFTSF9JU19ESVNUSU5DVF9ST09UIDEKfCAjZGVmaW5lIEdOVUxJQl9GQUNDRVNT QVQgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZET1BFTkRJUiAwCnwgI2RlZmluZSBHTlVMSUJfRkRP UEVORElSIDEKfCAjZGVmaW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCnwgI2RlZmluZSBf X0dFVE9QVF9QUkVGSVggcnBsXwp8ICNkZWZpbmUgSEFWRV9CQ1JZUFRfSCAxCnwgI2RlZmluZSBH RVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgX0dMX1JFUExBQ0VfSUVFRTc1NF9I IDEKfCAjZGVmaW5lIEhBVkVfX19JTkxJTkUgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2Rl ZmluZSBIQVZFX01FTVBDUFkgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5l IE5FRURfTUtUSU1FX1dJTkRPV1MgMQp8ICNkZWZpbmUgbXlfc3RyZnRpbWUgbnN0cmZ0aW1lCnwg I2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0Vf T0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlv bnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJl X2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21w aWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJw bF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZp bmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRj aF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2Rl ZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwg I2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVj CnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3Jl Z2ZyZWUKfCAjZGVmaW5lIEhBVkVfTElCSU5UTF9IIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JM QU5LIDEKfCAjZGVmaW5lIF9fVVNFX01JTkdXX0FOU0lfU1RESU8gMQp8ICNkZWZpbmUgR05VTElC X1BSSU5URl9BVFRSSUJVVEVfRkxBVk9SX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfRlNDQU5GIDEK fCAjZGVmaW5lIEdOVUxJQl9TQ0FORiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUg R05VTElCX1RFTVBOQU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9MT0NBTFRJTUVfUiAwCnwgI2Rl ZmluZSBVU0VfVU5MT0NLRURfSU8gMQp8ICNkZWZpbmUgSEFWRV9DX1ZBUkFSUkFZUyAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBfX21rdGltZV9pbnRlcm5hbCB0byBhbiBp bm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIF9fbWt0aW1lX2lu dGVybmFsLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBn ZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgX19ta3RpbWVfaW50ZXJuYWwgaW5ub2N1b3VzX19f bWt0aW1lX2ludGVybmFsCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1h Y3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxp Y3Qgd2l0aCBjaGFyIF9fbWt0aW1lX2ludGVybmFsICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxs aW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAg ICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8 IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGlu Y2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBfX21rdGltZV9pbnRlcm5hbAp8 IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVy cm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw ZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3 b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8 ICNlbmRpZgp8IGNoYXIgX19ta3RpbWVfaW50ZXJuYWwgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJh cnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0 byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBu YW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1l IGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfX19ta3RpbWVfaW50ZXJuYWwg fHwgZGVmaW5lZCBfX3N0dWJfX19fX21rdGltZV9pbnRlcm5hbAp8IGNob2tlIG1lCnwgI2VuZGlm CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gX19ta3RpbWVfaW50ZXJuYWwgKCk7Cnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozNDcwNTogcmVzdWx0OiBubwpjb25maWd1 cmU6MzUyMTc6IGNoZWNraW5nIGZvciBnY2MgIG9wdGlvbiB0byBkaXNhYmxlIHBvc2l0aW9uIGlu ZGVwZW5kZW50IGV4ZWN1dGFibGVzCmNvbmZpZ3VyZTozNTI1MjogcmVzdWx0OiBub3QgbmVlZGVk CmNvbmZpZ3VyZTozNTcwNDogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCgojIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCiMjIFJ1bm5pbmcgY29uZmlnLnN0YXR1cy4gIyMKIyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAjIwoKVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBHTlUgRW1hY3MgY29u ZmlnLnN0YXR1cyAyOC4wLjUwLCB3aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAy LjY5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCgogIENPTkZJR19GSUxFUyAgICA9IAog IENPTkZJR19IRUFERVJTICA9IAogIENPTkZJR19MSU5LUyAgICA9IAogIENPTkZJR19DT01NQU5E UyA9IAogICQgLi9jb25maWcuc3RhdHVzIAoKb24gVldpbjQKCmNvbmZpZy5zdGF0dXM6MjA2NTog Y3JlYXRpbmcgbnQvZW1hY3MucmMKY29uZmlnLnN0YXR1czoyMDY1OiBjcmVhdGluZyBudC9lbWFj c2NsaWVudC5yYwpjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIHNyYy9lbWFjcy1tb2R1bGUu aApjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjA2 NTogY3JlYXRpbmcgbGliL2dudWxpYi5tawpjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIC4u L3NyYy9kb2MvbWFuL2VtYWNzLjEKY29uZmlnLnN0YXR1czoyMDY1OiBjcmVhdGluZyBsaWIvTWFr ZWZpbGUKY29uZmlnLnN0YXR1czoyMDY1OiBjcmVhdGluZyBsaWItc3JjL01ha2VmaWxlCmNvbmZp Zy5zdGF0dXM6MjA2NTogY3JlYXRpbmcgb2xkWE1lbnUvTWFrZWZpbGUKY29uZmlnLnN0YXR1czoy MDY1OiBjcmVhdGluZyBkb2MvZW1hY3MvTWFrZWZpbGUKY29uZmlnLnN0YXR1czoyMDY1OiBjcmVh dGluZyBkb2MvbWlzYy9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIGRvYy9s aXNwaW50cm8vTWFrZWZpbGUKY29uZmlnLnN0YXR1czoyMDY1OiBjcmVhdGluZyBkb2MvbGlzcHJl Zi9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIHNyYy9NYWtlZmlsZQpjb25m aWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIGx3bGliL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjA2 NTogY3JlYXRpbmcgbGlzcC9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIGxl aW0vTWFrZWZpbGUKY29uZmlnLnN0YXR1czoyMDY1OiBjcmVhdGluZyBuZXh0c3RlcC9NYWtlZmls ZQpjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIG50L01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6 MjA2NTogY3JlYXRpbmcgdGVzdC9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5n IGFkbWluL2NoYXJzZXRzL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjA2NTogY3JlYXRpbmcgYWRt aW4vdW5pZGF0YS9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjIwNjU6IGNyZWF0aW5nIGFkbWluL2dy YW1tYXJzL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MjA2NTogY3JlYXRpbmcgc3JjL2NvbmZpZy5o CmNvbmZpZy5zdGF0dXM6MjI1MDogZXhlY3V0aW5nIHNyYy9lcGF0aHMuaCBjb21tYW5kcwpjb25m aWcuc3RhdHVzOjIyNTA6IGV4ZWN1dGluZyBzcmMvLmdkYmluaXQgY29tbWFuZHMKY29uZmlnLnN0 YXR1czoyMjUwOiBleGVjdXRpbmcgZG9jL2VtYWNzL2VtYWNzdmVyLnRleGkgY29tbWFuZHMKY29u ZmlnLnN0YXR1czoyMjUwOiBleGVjdXRpbmcgZXRjLXJlZmNhcmRzLWVtYWNzdmVyLnRleCBjb21t YW5kcwpjb25maWd1cmU6MzY5ODg6IFdBUk5JTkc6IFRoaXMgY29uZmlndXJhdGlvbiBpbnN0YWxs cyBhICdtb3ZlbWFpbCcgcHJvZ3JhbQp0aGF0IHJldHJpZXZlcyBQT1AzIGVtYWlsIHZpYSBvbmx5 IGluc2VjdXJlIGNoYW5uZWxzLgpUbyBvbWl0IGluc2VjdXJlIFBPUDMsIHlvdSBjYW4gdXNlICcu Li9zcmMvY29uZmlndXJlIC0td2l0aG91dC1wb3AnLgoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwoj IyBDYWNoZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2J1aWxk PXg4Nl82NC13NjQtbWluZ3czMgphY19jdl9jX2JpZ2VuZGlhbj1ubwphY19jdl9jX2NvbXBpbGVy X2dudT15ZXMKYWNfY3ZfY19mbGV4bWVtYmVyPXllcwphY19jdl9jX2lubGluZT1pbmxpbmUKYWNf Y3ZfY19yZXN0cmljdD1fX3Jlc3RyaWN0CmFjX2N2X2NfdHlwZW9mPXR5cGVvZgphY19jdl9jX3Zh cmFycmF5cz15ZXMKYWNfY3ZfZW52X0FMU0FfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0FMU0FfQ0ZM QUdTX3ZhbHVlPQphY19jdl9lbnZfQUxTQV9MSUJTX3NldD0KYWNfY3ZfZW52X0FMU0FfTElCU192 YWx1ZT0KYWNfY3ZfZW52X0NBSVJPX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9DQUlST19DRkxBR1Nf dmFsdWU9CmFjX2N2X2Vudl9DQUlST19MSUJTX3NldD0KYWNfY3ZfZW52X0NBSVJPX0xJQlNfdmFs dWU9CmFjX2N2X2Vudl9DQ19zZXQ9CmFjX2N2X2Vudl9DQ192YWx1ZT0KYWNfY3ZfZW52X0NGTEFH U19zZXQ9CmFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBGTEFHU19zZXQ9CmFj X2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NQUF9zZXQ9CmFjX2N2X2Vudl9DUFBf dmFsdWU9CmFjX2N2X2Vudl9EQlVTX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9EQlVTX0NGTEFHU192 YWx1ZT0KYWNfY3ZfZW52X0RCVVNfTElCU19zZXQ9CmFjX2N2X2Vudl9EQlVTX0xJQlNfdmFsdWU9 CmFjX2N2X2Vudl9GT05UQ09ORklHX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9GT05UQ09ORklHX0NG TEFHU192YWx1ZT0KYWNfY3ZfZW52X0ZPTlRDT05GSUdfTElCU19zZXQ9CmFjX2N2X2Vudl9GT05U Q09ORklHX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9GUkVFVFlQRV9DRkxBR1Nfc2V0PQphY19jdl9l bnZfRlJFRVRZUEVfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfRlJFRVRZUEVfTElCU19zZXQ9CmFj X2N2X2Vudl9GUkVFVFlQRV9MSUJTX3ZhbHVlPQphY19jdl9lbnZfR0NPTkZfQ0ZMQUdTX3NldD0K YWNfY3ZfZW52X0dDT05GX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dDT05GX0xJQlNfc2V0PQph Y19jdl9lbnZfR0NPTkZfTElCU192YWx1ZT0KYWNfY3ZfZW52X0dGSUxFTk9USUZZX0NGTEFHU19z ZXQ9CmFjX2N2X2Vudl9HRklMRU5PVElGWV9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9HRklMRU5P VElGWV9MSUJTX3NldD0KYWNfY3ZfZW52X0dGSUxFTk9USUZZX0xJQlNfdmFsdWU9CmFjX2N2X2Vu dl9HT0JKRUNUX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9HT0JKRUNUX0NGTEFHU192YWx1ZT0KYWNf Y3ZfZW52X0dPQkpFQ1RfTElCU19zZXQ9CmFjX2N2X2Vudl9HT0JKRUNUX0xJQlNfdmFsdWU9CmFj X2N2X2Vudl9HU0VUVElOR1NfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0dTRVRUSU5HU19DRkxBR1Nf dmFsdWU9CmFjX2N2X2Vudl9HU0VUVElOR1NfTElCU19zZXQ9CmFjX2N2X2Vudl9HU0VUVElOR1Nf TElCU192YWx1ZT0KYWNfY3ZfZW52X0dUS19DRkxBR1Nfc2V0PQphY19jdl9lbnZfR1RLX0NGTEFH U192YWx1ZT0KYWNfY3ZfZW52X0dUS19MSUJTX3NldD0KYWNfY3ZfZW52X0dUS19MSUJTX3ZhbHVl PQphY19jdl9lbnZfSEFSRkJVWlpfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0hBUkZCVVpaX0NGTEFH U192YWx1ZT0KYWNfY3ZfZW52X0hBUkZCVVpaX0xJQlNfc2V0PQphY19jdl9lbnZfSEFSRkJVWlpf TElCU192YWx1ZT0KYWNfY3ZfZW52X0lNQUdFTUFHSUNLX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9J TUFHRU1BR0lDS19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9JTUFHRU1BR0lDS19MSUJTX3NldD0K YWNfY3ZfZW52X0lNQUdFTUFHSUNLX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9KU09OX0NGTEFHU19z ZXQ9CmFjX2N2X2Vudl9KU09OX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0pTT05fTElCU19zZXQ9 CmFjX2N2X2Vudl9KU09OX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9LUVVFVUVfQ0ZMQUdTX3NldD0K YWNfY3ZfZW52X0tRVUVVRV9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9LUVVFVUVfTElCU19zZXQ9 CmFjX2N2X2Vudl9LUVVFVUVfTElCU192YWx1ZT0KYWNfY3ZfZW52X0xDTVMyX0NGTEFHU19zZXQ9 CmFjX2N2X2Vudl9MQ01TMl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MQ01TMl9MSUJTX3NldD0K YWNfY3ZfZW52X0xDTVMyX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9MREZMQUdTX3NldD0KYWNfY3Zf ZW52X0xERkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJHTlVUTFNfQ0ZMQUdTX3NldD0KYWNfY3Zf ZW52X0xJQkdOVVRMU19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJHTlVUTFNfTElCU19zZXQ9 CmFjX2N2X2Vudl9MSUJHTlVUTFNfTElCU192YWx1ZT0KYWNfY3ZfZW52X0xJQk9URl9DRkxBR1Nf c2V0PQphY19jdl9lbnZfTElCT1RGX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0xJQk9URl9MSUJT X3NldD0KYWNfY3ZfZW52X0xJQk9URl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTElCU1lTVEVNRF9D RkxBR1Nfc2V0PQphY19jdl9lbnZfTElCU1lTVEVNRF9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9M SUJTWVNURU1EX0xJQlNfc2V0PQphY19jdl9lbnZfTElCU1lTVEVNRF9MSUJTX3ZhbHVlPQphY19j dl9lbnZfTElCU19zZXQ9CmFjX2N2X2Vudl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTElCWE1MMl9D RkxBR1Nfc2V0PQphY19jdl9lbnZfTElCWE1MMl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJY TUwyX0xJQlNfc2V0PQphY19jdl9lbnZfTElCWE1MMl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTTE3 Tl9GTFRfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X00xN05fRkxUX0NGTEFHU192YWx1ZT0KYWNfY3Zf ZW52X00xN05fRkxUX0xJQlNfc2V0PQphY19jdl9lbnZfTTE3Tl9GTFRfTElCU192YWx1ZT0KYWNf Y3ZfZW52X09CSkNGTEFHU19zZXQ9CmFjX2N2X2Vudl9PQkpDRkxBR1NfdmFsdWU9CmFjX2N2X2Vu dl9PQkpDX3NldD0KYWNfY3ZfZW52X09CSkNfdmFsdWU9CmFjX2N2X2Vudl9QS0dfQ09ORklHX0xJ QkRJUl9zZXQ9CmFjX2N2X2Vudl9QS0dfQ09ORklHX0xJQkRJUl92YWx1ZT0KYWNfY3ZfZW52X1BL R19DT05GSUdfUEFUSF9zZXQ9c2V0CmFjX2N2X2Vudl9QS0dfQ09ORklHX1BBVEhfdmFsdWU9L21p bmd3NjQvbGliL3BrZ2NvbmZpZzovbWluZ3c2NC9zaGFyZS9wa2djb25maWcKYWNfY3ZfZW52X1BL R19DT05GSUdfc2V0PQphY19jdl9lbnZfUEtHX0NPTkZJR192YWx1ZT0KYWNfY3ZfZW52X1BOR19D RkxBR1Nfc2V0PQphY19jdl9lbnZfUE5HX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X1BOR19MSUJT X3NldD0KYWNfY3ZfZW52X1BOR19MSUJTX3ZhbHVlPQphY19jdl9lbnZfUlNWR19DRkxBR1Nfc2V0 PQphY19jdl9lbnZfUlNWR19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9SU1ZHX0xJQlNfc2V0PQph Y19jdl9lbnZfUlNWR19MSUJTX3ZhbHVlPQphY19jdl9lbnZfV0VCS0lUX0NGTEFHU19zZXQ9CmFj X2N2X2Vudl9XRUJLSVRfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfV0VCS0lUX0xJQlNfc2V0PQph Y19jdl9lbnZfV0VCS0lUX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9YRklYRVNfQ0ZMQUdTX3NldD0K YWNfY3ZfZW52X1hGSVhFU19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9YRklYRVNfTElCU19zZXQ9 CmFjX2N2X2Vudl9YRklYRVNfTElCU192YWx1ZT0KYWNfY3ZfZW52X1hGVF9DRkxBR1Nfc2V0PQph Y19jdl9lbnZfWEZUX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X1hGVF9MSUJTX3NldD0KYWNfY3Zf ZW52X1hGVF9MSUJTX3ZhbHVlPQphY19jdl9lbnZfWElORVJBTUFfQ0ZMQUdTX3NldD0KYWNfY3Zf ZW52X1hJTkVSQU1BX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X1hJTkVSQU1BX0xJQlNfc2V0PQph Y19jdl9lbnZfWElORVJBTUFfTElCU192YWx1ZT0KYWNfY3ZfZW52X1hNS01GX3NldD0KYWNfY3Zf ZW52X1hNS01GX3ZhbHVlPQphY19jdl9lbnZfWFJBTkRSX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9Y UkFORFJfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfWFJBTkRSX0xJQlNfc2V0PQphY19jdl9lbnZf WFJBTkRSX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9CmFjX2N2X2Vudl9i dWlsZF9hbGlhc192YWx1ZT0KYWNfY3ZfZW52X2hvc3RfYWxpYXNfc2V0PQphY19jdl9lbnZfaG9z dF9hbGlhc192YWx1ZT0KYWNfY3ZfZW52X3RhcmdldF9hbGlhc19zZXQ9CmFjX2N2X2Vudl90YXJn ZXRfYWxpYXNfdmFsdWU9CmFjX2N2X2V4ZWV4dD0uZXhlCmFjX2N2X2Z1bmNfX19leGVjdXRhYmxl X3N0YXJ0PW5vCmFjX2N2X2Z1bmNfX19sc2FuX2lnbm9yZV9vYmplY3Q9bm8KYWNfY3ZfZnVuY19f X21rdGltZV9pbnRlcm5hbD1ubwphY19jdl9mdW5jX2FjY2VwdDQ9bm8KYWNfY3ZfZnVuY19hY2xf Y29weV9leHRfbmF0aXZlPW5vCmFjX2N2X2Z1bmNfYWNsX2NyZWF0ZV9lbnRyeV9ucD1ubwphY19j dl9mdW5jX2FjbF9kZWxldGVfZGVmX2ZpbGU9bm8KYWNfY3ZfZnVuY19hY2xfZGVsZXRlX2ZkX25w PW5vCmFjX2N2X2Z1bmNfYWNsX2RlbGV0ZV9maWxlX25wPW5vCmFjX2N2X2Z1bmNfYWNsX2VudHJp ZXM9bm8KYWNfY3ZfZnVuY19hY2xfZXh0ZW5kZWRfZmlsZT1ubwphY19jdl9mdW5jX2FjbF9mcmVl PXllcwphY19jdl9mdW5jX2FjbF9mcmVlX3RleHQ9bm8KYWNfY3ZfZnVuY19hY2xfZnJvbV9tb2Rl PW5vCmFjX2N2X2Z1bmNfYWNsX2Zyb21fdGV4dD15ZXMKYWNfY3ZfZnVuY19hY2xfZ2V0X2ZkPW5v CmFjX2N2X2Z1bmNfYWNsX2dldF9maWxlPXllcwphY19jdl9mdW5jX2FjbF9zZXRfZmQ9bm8KYWNf Y3ZfZnVuY19hY2xfc2V0X2ZpbGU9eWVzCmFjX2N2X2Z1bmNfYWNsX3RvX3Nob3J0X3RleHQ9bm8K YWNfY3ZfZnVuY19hbGlnbmVkX2FsbG9jPW5vCmFjX2N2X2Z1bmNfYWxsb2NhX3dvcmtzPXllcwph Y19jdl9mdW5jX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWU9eWVzCmFjX2N2X2Z1bmNfY2ZtYWtlcmF3 PW5vCmFjX2N2X2Z1bmNfY2ZzZXRzcGVlZD1ubwphY19jdl9mdW5jX2Nsb2NrX2dldHRpbWU9bm8K YWNfY3ZfZnVuY19jbG9ja19zZXR0aW1lPW5vCmFjX2N2X2Z1bmNfZGxhZGRyPW5vCmFjX2N2X2Z1 bmNfZGxmdW5jPW5vCmFjX2N2X2Z1bmNfZW5kZ3JlbnQ9bm8KYWNfY3ZfZnVuY19lbmRwd2VudD1u bwphY19jdl9mdW5jX2V4cGxpY2l0X2J6ZXJvPXllcwphY19jdl9mdW5jX2ZhY2Nlc3NhdD15ZXMK YWNfY3ZfZnVuY19mY2hkaXI9bm8KYWNfY3ZfZnVuY19mY2htb2Q9bm8KYWNfY3ZfZnVuY19mY2ht b2RhdD15ZXMKYWNfY3ZfZnVuY19mY250bD15ZXMKYWNfY3ZfZnVuY19mZGF0YXN5bmM9eWVzCmFj X2N2X2Z1bmNfZmRvcGVuZGlyPW5vdC1uZWVkZWQKYWNfY3ZfZnVuY19mb3JrPW5vCmFjX2N2X2Z1 bmNfZm9ya193b3Jrcz1ubwphY19jdl9mdW5jX2ZyZWVpZmFkZHJzPW5vCmFjX2N2X2Z1bmNfZnN0 YXRhdD15ZXMKYWNfY3ZfZnVuY19mc3luYz15ZXMKYWNfY3ZfZnVuY19mdXRpbWVucz1ub3QtbmVl ZGVkCmFjX2N2X2Z1bmNfZnV0aW1lcz1ubwphY19jdl9mdW5jX2Z1dGltZXNhdD1ubwphY19jdl9m dW5jX2dhaV9zdHJlcnJvcj15ZXMKYWNfY3ZfZnVuY19nZXRfY3VycmVudF9kaXJfbmFtZT1ubwph Y19jdl9mdW5jX2dldGFkZHJpbmZvPXllcwphY19jdl9mdW5jX2dldGR0YWJsZXNpemU9bm8KYWNf Y3ZfZnVuY19nZXRncmVudD1ubwphY19jdl9mdW5jX2dldGhvc3RuYW1lPXllcwphY19jdl9mdW5j X2dldGlmYWRkcnM9bm8KYWNfY3ZfZnVuY19nZXRsb2FkYXZnPXllcwphY19jdl9mdW5jX2dldHBh Z2VzaXplPXllcwphY19jdl9mdW5jX2dldHBlZXJuYW1lPXllcwphY19jdl9mdW5jX2dldHB0PW5v CmFjX2N2X2Z1bmNfZ2V0cHdlbnQ9bm8KYWNfY3ZfZnVuY19nZXRyYW5kb209bm8KYWNfY3ZfZnVu Y19nZXRybGltaXQ9eWVzCmFjX2N2X2Z1bmNfZ2V0cnVzYWdlPW5vCmFjX2N2X2Z1bmNfZ2V0c29j a25hbWU9eWVzCmFjX2N2X2Z1bmNfZ2V0dGltZW9mZGF5PXllcwphY19jdl9mdW5jX2dyYW50cHQ9 bm8KYWNfY3ZfZnVuY19pc2JsYW5rPXllcwphY19jdl9mdW5jX2lzd2N0eXBlPXllcwphY19jdl9m dW5jX2xjaG1vZD15ZXMKYWNfY3ZfZnVuY19sb2NhbHRpbWVfcj1ubwphY19jdl9mdW5jX2xvZzI9 eWVzCmFjX2N2X2Z1bmNfbHJhbmQ0OD1ubwphY19jdl9mdW5jX2xzdGF0PXllcwphY19jdl9mdW5j X2x1dGltZXM9bm8KYWNfY3ZfZnVuY19tYWxsb2NfMF9ub25udWxsPXllcwphY19jdl9mdW5jX21l bW1lbT1ubwphY19jdl9mdW5jX21lbXBjcHk9eWVzCmFjX2N2X2Z1bmNfbWVtcmNocj1ubwphY19j dl9mdW5jX21lbXNldF9zPW5vCmFjX2N2X2Z1bmNfbWtvc3RlbXA9bm8KYWNfY3ZfZnVuY19tbWFw X2ZpeGVkX21hcHBlZD1ubwphY19jdl9mdW5jX25ld2xvY2FsZT1ubwphY19jdl9mdW5jX3BpcGUy PXllcwphY19jdl9mdW5jX3Bvc2l4X21hZHZpc2U9bm8KYWNfY3ZfZnVuY19wb3NpeF9tZW1hbGln bj1ubwphY19jdl9mdW5jX3Bvc2l4X29wZW5wdD1ubwphY19jdl9mdW5jX3BzZWxlY3Q9eWVzCmFj X2N2X2Z1bmNfcHRocmVhZF9zZXRfbmFtZV9ucD1ubwphY19jdl9mdW5jX3B0aHJlYWRfc2V0bmFt ZV9ucD15ZXMKYWNfY3ZfZnVuY19wdGhyZWFkX3NpZ21hc2s9eWVzCmFjX2N2X2Z1bmNfcmFuZG9t PXllcwphY19jdl9mdW5jX3JlYWRsaW5rPXllcwphY19jdl9mdW5jX3JlYWRsaW5rYXQ9eWVzCmFj X2N2X2Z1bmNfcmVhbHBhdGg9bm90LW5lZWRlZAphY19jdl9mdW5jX3JlY3Zmcm9tPXllcwphY19j dl9mdW5jX3JpbnQ9eWVzCmFjX2N2X2Z1bmNfc2Jyaz15ZXMKYWNfY3ZfZnVuY19zZWxlY3Q9eWVz CmFjX2N2X2Z1bmNfc2VuZHRvPXllcwphY19jdl9mdW5jX3NldGl0aW1lcj15ZXMKYWNfY3ZfZnVu Y19zZXRsb2NhbGU9eWVzCmFjX2N2X2Z1bmNfc2V0cmxpbWl0PXllcwphY19jdl9mdW5jX3NodXRk b3duPXllcwphY19jdl9mdW5jX3NpZzJzdHI9bm8KYWNfY3ZfZnVuY19zaWdkZXNjcl9ucD1ubwph Y19jdl9mdW5jX3NucHJpbnRmPXllcwphY19jdl9mdW5jX3NvY2tldD15ZXMKYWNfY3ZfZnVuY19z dHBjcHk9bm8KYWNfY3ZfZnVuY19zdHJubGVuX3dvcmtpbmc9eWVzCmFjX2N2X2Z1bmNfc3Ryc2ln bmFsPXllcwphY19jdl9mdW5jX3N0cnRvaW1heD15ZXMKYWNfY3ZfZnVuY19zeW1saW5rPXllcwph Y19jdl9mdW5jX3N5bmM9bm8KYWNfY3ZfZnVuY190aW1lZ209bm8KYWNfY3ZfZnVuY190aW1lcl9n ZXRvdmVycnVuPW5vCmFjX2N2X2Z1bmNfdGltZXJfc2V0dGltZT1ubwphY19jdl9mdW5jX3RydW5j PXllcwphY19jdl9mdW5jX3Vuc2V0ZW52PXllcwphY19jdl9mdW5jX3V0aW1lbnNhdD15ZXMKYWNf Y3ZfZnVuY192Zm9yaz1ubwphY19jdl9mdW5jX3Zmb3JrX3dvcmtzPW5vCmFjX2N2X2dudV9saWJy YXJ5XzJfMT1ubwphY19jdl9oYXZlX2RlY2xfYWxhcm09eWVzCmFjX2N2X2hhdmVfZGVjbF9hbGln bmVkX2FsbG9jPW5vCmFjX2N2X2hhdmVfZGVjbF9jbGVhcmVycl91bmxvY2tlZD1ubwphY19jdl9o YXZlX2RlY2xfZmRvcGVuZGlyPW5vCmFjX2N2X2hhdmVfZGVjbF9mZW9mX3VubG9ja2VkPW5vCmFj X2N2X2hhdmVfZGVjbF9mZXJyb3JfdW5sb2NrZWQ9bm8KYWNfY3ZfaGF2ZV9kZWNsX2ZmbHVzaF91 bmxvY2tlZD1ubwphY19jdl9oYXZlX2RlY2xfZmdldHNfdW5sb2NrZWQ9bm8KYWNfY3ZfaGF2ZV9k ZWNsX2ZwdXRjX3VubG9ja2VkPW5vCmFjX2N2X2hhdmVfZGVjbF9mcHV0c191bmxvY2tlZD1ubwph Y19jdl9oYXZlX2RlY2xfZnJlYWRfdW5sb2NrZWQ9bm8KYWNfY3ZfaGF2ZV9kZWNsX2Z3cml0ZV91 bmxvY2tlZD1ubwphY19jdl9oYXZlX2RlY2xfZ2V0Y191bmxvY2tlZD1ubwphY19jdl9oYXZlX2Rl Y2xfZ2V0Y2hhcl91bmxvY2tlZD1ubwphY19jdl9oYXZlX2RlY2xfZ2V0ZHRhYmxlc2l6ZT1ubwph Y19jdl9oYXZlX2RlY2xfZ2V0bG9hZGF2Zz1ubwphY19jdl9oYXZlX2RlY2xfaXNibGFuaz15ZXMK YWNfY3ZfaGF2ZV9kZWNsX2xvY2FsdGltZV9yPW5vCmFjX2N2X2hhdmVfZGVjbF9tZW1tZW09bm8K YWNfY3ZfaGF2ZV9kZWNsX21lbXJjaHI9bm8KYWNfY3ZfaGF2ZV9kZWNsX3BuZ19sb25nam1wPXll cwphY19jdl9oYXZlX2RlY2xfcHV0Y191bmxvY2tlZD1ubwphY19jdl9oYXZlX2RlY2xfcHV0Y2hh cl91bmxvY2tlZD1ubwphY19jdl9oYXZlX2RlY2xfc3RybW9kZT1ubwphY19jdl9oYXZlX2RlY2xf c3Rybmxlbj15ZXMKYWNfY3ZfaGF2ZV9kZWNsX3N0cnRvaW1heD15ZXMKYWNfY3ZfaGF2ZV9kZWNs X3R6bmFtZT15ZXMKYWNfY3ZfaGF2ZV9kZWNsX3Vuc2V0ZW52PXllcwphY19jdl9oYXZlX3g9aGF2 ZV94PW5vCmFjX2N2X2hlYWRlcl9YMTFfeHBtX2g9eWVzCmFjX2N2X2hlYWRlcl9hY2xfbGliYWNs X2g9bm8KYWNfY3ZfaGVhZGVyX2JjcnlwdF9oPXllcwphY19jdl9oZWFkZXJfYnl0ZXN3YXBfaD1u bwphY19jdl9oZWFkZXJfY29mZl9oPW5vCmFjX2N2X2hlYWRlcl9kaXJlbnRfaD15ZXMKYWNfY3Zf aGVhZGVyX2V4ZWNpbmZvX2g9bm8KYWNfY3ZfaGVhZGVyX2dldG9wdF9oPW5vCmFjX2N2X2hlYWRl cl9naWZfbGliX2g9eWVzCmFjX2N2X2hlYWRlcl9nbXBfaD15ZXMKYWNfY3ZfaGVhZGVyX2dwbV9o PW5vCmFjX2N2X2hlYWRlcl9pZWVlNzU0X2g9bm8KYWNfY3ZfaGVhZGVyX2lmYWRkcnNfaD1ubwph Y19jdl9oZWFkZXJfaW50dHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX2xpYmdjY2ppdF9oPXllcwph Y19jdl9oZWFkZXJfbGliaW50bF9oPXllcwphY19jdl9oZWFkZXJfbGltaXRzX2g9eWVzCmFjX2N2 X2hlYWRlcl9saW51eF9mc19oPW5vCmFjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oPW5v CmFjX2N2X2hlYWRlcl9tYWlsbG9ja19oPW5vCmFjX2N2X2hlYWRlcl9tYWxsb2NfaD15ZXMKYWNf Y3ZfaGVhZGVyX21hbGxvY19tYWxsb2NfaD1ubwphY19jdl9oZWFkZXJfbWVtb3J5X2g9eWVzCmFj X2N2X2hlYWRlcl9taW5peF9jb25maWdfaD1ubwphY19jdl9oZWFkZXJfbW1zeXN0ZW1faD15ZXMK YWNfY3ZfaGVhZGVyX25ldF9pZl9kbF9oPW5vCmFjX2N2X2hlYWRlcl9uZXRfaWZfaD1ubwphY19j dl9oZWFkZXJfcG5nX2g9eWVzCmFjX2N2X2hlYWRlcl9wdGhyZWFkX2g9bm8KYWNfY3ZfaGVhZGVy X3B0eV9oPW5vCmFjX2N2X2hlYWRlcl9wd2RfaD15ZXMKYWNfY3ZfaGVhZGVyX3Nhbml0aXplcl9s c2FuX2ludGVyZmFjZV9oPW5vCmFjX2N2X2hlYWRlcl9zb3VuZGNhcmRfaD1ubwphY19jdl9oZWFk ZXJfc3RhdF9icm9rZW49bm8KYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCmFjX2N2X2hlYWRlcl9zdGRp bnRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGlvX2V4dF9oPW5vCmFjX2N2X2hlYWRlcl9zdGRsaWJf aD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwphY19jdl9oZWFkZXJfc3RyaW5nc19oPXll cwphY19jdl9oZWFkZXJfc3lzX2FjbF9oPXllcwphY19jdl9oZWFkZXJfc3lzX2NkZWZzX2g9eWVz CmFjX2N2X2hlYWRlcl9zeXNfZnNfdHlwZXNfaD1ubwphY19jdl9oZWFkZXJfc3lzX2xvYWRhdmdf aD1ubwphY19jdl9oZWFkZXJfc3lzX21vdW50X2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19wYXJhbV9o PXllcwphY19jdl9oZWFkZXJfc3lzX3JhbmRvbV9oPW5vCmFjX2N2X2hlYWRlcl9zeXNfcmVzb3Vy Y2VfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19zZWxlY3RfaD1ubwphY19jdl9oZWFkZXJfc3lzX3Nv Y2tldF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9oPW5vCmFjX2N2X2hlYWRlcl9z eXNfc3RhdF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3N5c2luZm9faD1ubwphY19jdl9oZWFkZXJf c3lzX3N5c3RlbWluZm9faD1ubwphY19jdl9oZWFkZXJfc3lzX3RpbWVfaD15ZXMKYWNfY3ZfaGVh ZGVyX3N5c190eXBlc19oPXllcwphY19jdl9oZWFkZXJfc3lzX3VuX2g9bm8KYWNfY3ZfaGVhZGVy X3N5c191dHNuYW1lX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c192ZnNfaD1ubwphY19jdl9oZWFkZXJf c3lzX3dhaXRfaD15ZXMKYWNfY3ZfaGVhZGVyX3Rlcm1faD1ubwphY19jdl9oZWFkZXJfdGlmZmlv X2g9eWVzCmFjX2N2X2hlYWRlcl90aW1lPXllcwphY19jdl9oZWFkZXJfdW5pc3RkX2g9eWVzCmFj X2N2X2hlYWRlcl91dGlsX2g9bm8KYWNfY3ZfaGVhZGVyX3V0bXBfaD1ubwphY19jdl9oZWFkZXJf dmFsZ3JpbmRfdmFsZ3JpbmRfaD1ubwphY19jdl9oZWFkZXJfdmZvcmtfaD1ubwphY19jdl9oZWFk ZXJfd2NoYXJfaD15ZXMKYWNfY3ZfaGVhZGVyX3dpbmRvd3NfaD15ZXMKYWNfY3ZfaG9zdD14ODZf NjQtdzY0LW1pbmd3MzIKYWNfY3ZfbGliX1hic2RfbWFpbj1ubwphY19jdl9saWJfYW5sX2dldGFk ZHJpbmZvX2E9bm8KYWNfY3ZfbGliX2djY2ppdF9nY2Nfaml0X2NvbnRleHRfYWNxdWlyZT15ZXMK YWNfY3ZfbGliX2xvY2tmaWxlX21haWxsb2NrPW5vCmFjX2N2X2xpYl9tYWlsX21haWxsb2NrPW5v CmFjX2N2X2xpYl9vc3NhdWRpb19fb3NzX2lvY3RsPW5vCmFjX2N2X2xpYl9zZWxpbnV4X2xnZXRm aWxlY29uPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfaWZyZXFfaWZyX2FkZHI9bm8KYWNfY3ZfbWVt YmVyX3N0cnVjdF9pZnJlcV9pZnJfYWRkcl9zYV9sZW49bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF9p ZnJlcV9pZnJfYnJvYWRhZGRyPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfaWZyZXFfaWZyX2ZsYWdz PW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfaWZyZXFfaWZyX2h3YWRkcj1ubwphY19jdl9tZW1iZXJf c3RydWN0X2lmcmVxX2lmcl9uZXRtYXNrPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9h dGltX3N0X190aW1fdHZfbnNlYz1ubwphY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYXRpbV90 dl9uc2VjPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9hdGltZW5zZWM9bm8KYWNfY3Zf bWVtYmVyX3N0cnVjdF9zdGF0X3N0X2F0aW1lc3BlY190dl9uc2VjPW5vCmFjX2N2X21lbWJlcl9z dHJ1Y3Rfc3RhdF9zdF9iaXJ0aHRpbV90dl9uc2VjPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3Rh dF9zdF9iaXJ0aHRpbWVuc2VjPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9iaXJ0aHRp bWVzcGVjX3R2X25zZWM9bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF90bV90bV9nbXRvZmY9bm8KYWNf Y3ZfbWVtYmVyX3N0cnVjdF90bV90bV96b25lPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfdW5pcGFp cl91bmljb2RlPW5vCmFjX2N2X29iamV4dD1vCmFjX2N2X3BhdGhfRUdSRVA9Jy91c3IvYmluL2dy ZXAgLUUnCmFjX2N2X3BhdGhfR1JFUD0vdXNyL2Jpbi9ncmVwCmFjX2N2X3BhdGhfR1pJUF9QUk9H PS91c3IvYmluL2d6aXAKYWNfY3ZfcGF0aF9JTlNUQUxMX0lORk89L3Vzci9iaW4vaW5zdGFsbC1p bmZvCmFjX2N2X3BhdGhfTUFLRT1tYWtlCmFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRz0vbWlu Z3c2NC9iaW4vcGtnLWNvbmZpZwphY19jdl9wYXRoX2luc3RhbGw9Jy91c3IvYmluL2luc3RhbGwg LWMnCmFjX2N2X3BhdGhfbWtkaXI9L3Vzci9iaW4vbWtkaXIKYWNfY3ZfcHJvZ19BV0s9Z2F3awph Y19jdl9wcm9nX0NQUD0nZ2NjIC1JIC4uL3NyYy9udC9pbmMgLUUnCmFjX2N2X3Byb2dfYWNfY3Rf QVI9YXIKYWNfY3ZfcHJvZ19hY19jdF9DQz1nY2MKYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9cmFu bGliCmFjX2N2X3Byb2dfYWNfY3RfV0lORFJFUz13aW5kcmVzCmFjX2N2X3Byb2dfY2NfYzExPQph Y19jdl9wcm9nX2NjX2c9eWVzCmFjX2N2X3Byb2dfY2NfZ2NjX2Nfbz15ZXMKYWNfY3ZfcHJvZ19j Y19zdGRjPQphY19jdl9wcm9nX2xpYmxvY2tmaWxlPW5vCmFjX2N2X3NhZmVfdG9fZGVmaW5lX19f ZXh0ZW5zaW9uc19fPXllcwphY19jdl9zZWFyY2hfX19nbXB6X3JvaW5pdF9uPS1sZ21wCmFjX2N2 X3NlYXJjaF9hY2xfZ2V0X2ZpbGU9J25vbmUgcmVxdWlyZWQnCmFjX2N2X3NlYXJjaF9jbG9ja19n ZXR0aW1lPSdub25lIHJlcXVpcmVkJwphY19jdl9zZWFyY2hfaW5mbGF0ZUVuZD0tbHoKYWNfY3Zf c2VhcmNoX3NxcnQ9J25vbmUgcmVxdWlyZWQnCmFjX2N2X3NlYXJjaF90aW1lcl9zZXR0aW1lPW5v CmFjX2N2X3Nob3VsZF9kZWZpbmVfX3hvcGVuX3NvdXJjZT1ubwphY19jdl9zdHJ1Y3Rfc3RfZG1f bW9kZT1ubwphY19jdl9zdHJ1Y3RfdG09dGltZS5oCmFjX2N2X3N5c19maWxlX29mZnNldF9iaXRz PTY0CmFjX2N2X3N5c19sYXJnZWZpbGVfQ0M9bm8KYWNfY3Zfc3lzX2xhcmdlZmlsZV9zb3VyY2U9 bm8KYWNfY3ZfdHlwZV9nZXRncm91cHM9aW50CmFjX2N2X3R5cGVfbWJzdGF0ZV90PXllcwphY19j dl90eXBlX21vZGVfdD15ZXMKYWNfY3ZfdHlwZV9ubGlua190PW5vCmFjX2N2X3R5cGVfcGlkX3Q9 eWVzCmFjX2N2X3R5cGVfc2lnaGFuZGxlcl90PW5vCmFjX2N2X3R5cGVfc2lnc2V0X3Q9bm8KYWNf Y3ZfdHlwZV9zb2NrbGVuX3Q9eWVzCmFjX2N2X3R5cGVfdGltZXpvbmVfdD1ubwphY19jdl90eXBl X3ZvbGF0aWxlX3NpZ19hdG9taWNfdD15ZXMKYWNfY3ZfdmFyX3R6bmFtZT15ZXMKYWNfY3Zfd29y a2luZ19hbGxvY2FfaD1ubwplbWFjc19jdl9hbHRlcm5hdGVfc3RhY2s9bm8KZW1hY3NfY3ZfYXV0 b2RlcGVuZD15ZXMKZW1hY3NfY3ZfY2xhbmc9bm8KZW1hY3NfY3ZfZmluZF9kZWxldGU9LWRlbGV0 ZQplbWFjc19jdl9mdW5jX19fYnVpbHRpbl9mcmFtZV9hZGRyZXNzPXllcwplbWFjc19jdl9mdW5j X19fYnVpbHRpbl91bndpbmRfaW5pdD15ZXMKZW1hY3NfY3ZfZnVuY19fc2V0am1wPW5vCmVtYWNz X2N2X2Z1bmNfc2lnc2V0am1wPW5vCmVtYWNzX2N2X2hhdmVfdGltZXJmZD1ubwplbWFjc19jdl9q cGVnbGliPS1sanBlZwplbWFjc19jdl9sYW5naW5mb19fbmxfcGFwZXJfd2lkdGg9eWVzCmVtYWNz X2N2X2xhbmdpbmZvX2NvZGVzZXQ9eWVzCmVtYWNzX2N2X2xpbmtzX2dsaWI9bm8KZW1hY3NfY3Zf bG5fc19maWxlb25seT0vYmluL2xuCmVtYWNzX2N2X3BlcnNvbmFsaXR5X2FkZHJfbm9fcmFuZG9t aXplPW5vCmVtYWNzX2N2X3Byb2dfY2NfZzM9eWVzCmVtYWNzX2N2X3Byb2dfY2Nfbm9fcGllPSdu b3QgbmVlZGVkJwplbWFjc19jdl9wdGhyZWFkX3NldG5hbWVfbnBfMWFyZz1ubwplbWFjc19jdl9w dGhyZWFkX3NldG5hbWVfbnBfM2FyZz1ubwplbWFjc19jdl9zYW5pdGl6ZV9hZGRyZXNzPW5vCmVt YWNzX2N2X3N0YXRlbWVudF9leHByZXNzaW9ucz15ZXMKZW1hY3NfY3Zfc3RydWN0X2FsaWdubWVu dD15ZXMKZW1hY3NfY3ZfdHB1dHNfbGliPSdub25lIHJlcXVpcmVkJwplbWFjc19jdl91c2FibGVf RklPTlJFQUQ9eWVzCmVtYWNzX2N2X3VzYWJsZV9TSUdJTz1ubwplbWFjc19jdl92YXJfZG91Z19s ZWFfbWFsbG9jPW5vCmVtYWNzX2N2X3czMmFwaT15ZXMKZW1hY3NfY3Zfem5vY29tYnJlbG9jPSdu b3QgbmVlZGVkJwpmdV9jdl9zeXNfc3RhdF9zdGF0ZnMyX2JzaXplPW5vCmZ1X2N2X3N5c19zdGF0 X3N0YXRmczJfZnJzaXplPW5vCmZ1X2N2X3N5c19zdGF0X3N0YXRmczJfZnNpemU9bm8KZnVfY3Zf c3lzX3N0YXRfc3RhdGZzM19vc2YxPW5vCmZ1X2N2X3N5c19zdGF0X3N0YXRmczQ9bm8KZnVfY3Zf c3lzX3N0YXRfc3RhdHZmcz1ubwpnbF9jdl9fX2J1aWx0aW5fZXhwZWN0PXllcwpnbF9jdl9hY2xf QUNMX0ZJUlNUX0VOVFJZPW5vCmdsX2N2X2FjbF9BQ0xfVFlQRV9FWFRFTkRFRD1ubwpnbF9jdl9j X19faW5saW5lPXllcwpnbF9jdl9jX2Ftc3RlcmRhbV9jb21waWxlcj1ubwpnbF9jdl9jX211bHRp YXJjaD1ubwpnbF9jdl9jY19ub21maV9uZWVkZWQ9bm8KZ2xfY3ZfY2Nfbm9tZmlfc3VwcG9ydGVk PXllcwpnbF9jdl9jY191bmluaXRpYWxpemVkX3N1cHBvcnRlZD15ZXMKZ2xfY3ZfY29tcGlsZXJf Y2hlY2tfZGVjbF9vcHRpb249bm9uZQpnbF9jdl9jb21waWxlcl9jbGFuZz1ubwpnbF9jdl9kZWNs X251bGxfd29ya3M9eWVzCmdsX2N2X2RlY2xfcmVhZGxpbmtfd29ya3M9eWVzCmdsX2N2X2RlY2xf cmVhZGxpbmthdF93b3Jrcz15ZXMKZ2xfY3ZfZG91YmxlX3NsYXNoX3Jvb3Q9eWVzCmdsX2N2X2Zz X3NwYWNlPW5vCmdsX2N2X2Z1bmNfX19mcGVuZGluZz1ubwpnbF9jdl9mdW5jX2NvcHlfZmlsZV9y YW5nZT15ZXMKZ2xfY3ZfZnVuY19kdXAyX3dvcmtzPXllcwpnbF9jdl9mdW5jX2ZjaG1vZGF0X3dv cmtzPW5vdC1uZWVkZWQtc28teWVzCmdsX2N2X2Z1bmNfZmNudGxfZl9kdXBmZF9jbG9leGVjPXll cwpnbF9jdl9mdW5jX2ZjbnRsX2ZfZHVwZmRfd29ya3M9eWVzCmdsX2N2X2Z1bmNfZmRvcGVuZGly X3dvcmtzPW5vLWJ1dC1ub3QtbmVlZGVkLXNvLXllcwpnbF9jdl9mdW5jX2ZzdGF0YXRfemVyb19m bGFnPXllcwpnbF9jdl9mdW5jX2Z1dGltZW5zX3dvcmtzPW5vdC1uZWVkZWQtc28teWVzCmdsX2N2 X2Z1bmNfZ2V0dGltZW9mZGF5X3Bvc2l4X3NpZ25hdHVyZT15ZXMKZ2xfY3ZfZnVuY19sb2NhbHRp bWVfcl9pbmxpbmU9bm8KZ2xfY3ZfZnVuY19sb2NhbHRpbWVfd29ya3M9eWVzCmdsX2N2X2Z1bmNf bHN0YXRfZGVyZWZlcmVuY2VzX3NsYXNoZWRfc3ltbGluaz15ZXMKZ2xfY3ZfZnVuY19tYWxsb2Nf MF9ub25udWxsPTEKZ2xfY3ZfZnVuY19wcmludGZfYXR0cmlidXRlX2ZsYXZvcj1nbnUKZ2xfY3Zf ZnVuY19wc2VsZWN0X2RldGVjdHNfZWJhZGY9eWVzCmdsX2N2X2Z1bmNfcHRocmVhZF9zaWdtYXNr X2luX2xpYmNfd29ya3M9eWVzCmdsX2N2X2Z1bmNfcHRocmVhZF9zaWdtYXNrX21hY3JvPW5vCmds X2N2X2Z1bmNfcHRocmVhZF9zaWdtYXNrX3JldHVybl93b3Jrcz15ZXMKZ2xfY3ZfZnVuY19wdGhy ZWFkX3NpZ21hc2tfdW5ibG9ja193b3Jrcz0nbm90IHJlbGV2YW50JwpnbF9jdl9mdW5jX3JlX2Nv bXBpbGVfcGF0dGVybl93b3JraW5nPW5vCmdsX2N2X2Z1bmNfcmVhZGxpbmtfd29ya3M9eWVzCmds X2N2X2Z1bmNfcmVhbHBhdGhfd29ya3M9bm8tYnV0LW5vdC1uZWVkZWQtc28teWVzCmdsX2N2X2Z1 bmNfc3RhdF9kaXJfc2xhc2g9eWVzCmdsX2N2X2Z1bmNfc3RhdF9maWxlX3NsYXNoPXllcwpnbF9j dl9mdW5jX3N0cnRvaW1heD15ZXMKZ2xfY3ZfZnVuY19zdmlkX3B1dGVudj15ZXMKZ2xfY3ZfZnVu Y19zeW1saW5rX3dvcmtzPXllcwpnbF9jdl9mdW5jX3Vuc2V0ZW52X3dvcmtzPXllcwpnbF9jdl9m dW5jX3V0aW1lbnNhdF93b3Jrcz15ZXMKZ2xfY3ZfZnVuY193b3JraW5nX2FjbF9nZXRfZmlsZT15 ZXMKZ2xfY3ZfZnVuY193b3JraW5nX21rdGltZT15ZXMKZ2xfY3ZfZnVuY193b3JraW5nX3V0aW1l cz1ubwpnbF9jdl9oYXZlX2luY2x1ZGVfbmV4dD15ZXMKZ2xfY3ZfaGVhZGVyX2Vycm5vX2hfRU1V TFRJSE9QPW5vCmdsX2N2X2hlYWRlcl9lcnJub19oX0VOT0xJTks9eWVzCmdsX2N2X2hlYWRlcl9l cnJub19oX0VPVkVSRkxPVz15ZXMKZ2xfY3ZfaGVhZGVyX2Vycm5vX2hfY29tcGxldGU9bm8KZ2xf Y3ZfaGVhZGVyX2xpbWl0c193aWR0aD1ubwpnbF9jdl9oZWFkZXJfc3RkaW50X3dpZHRoPW5vCmds X2N2X2hlYWRlcl9zdGRpbnRfd2l0aG91dF9TVERDX21hY3Jvcz15ZXMKZ2xfY3ZfaGVhZGVyX3N5 c19zZWxlY3RfaF9zZWxmY29udGFpbmVkPW5vCmdsX2N2X2hlYWRlcl93b3JraW5nX3N0ZGFsaWdu X2g9eWVzCmdsX2N2X2hlYWRlcl93b3JraW5nX3N0ZGludF9oPXllcwpnbF9jdl9saWJfYXNzdW1l X2JjcnlwdD1ubwpnbF9jdl9tYWNyb19PX0NMT0VYRUM9bm8KZ2xfY3ZfbWVtYmVyX3N0X3NpemVf NjQ9bm8KZ2xfY3ZfbWlubWF4X2luX2xpbWl0c19oPW5vCmdsX2N2X21pbm1heF9pbl9zeXNfcGFy YW1faD1ubwpnbF9jdl9uZXh0X2RpcmVudF9oPSc8ZGlyZW50Lmg+JwpnbF9jdl9uZXh0X2Vycm5v X2g9JzxlcnJuby5oPicKZ2xfY3ZfbmV4dF9mY250bF9oPSc8ZmNudGwuaD4nCmdsX2N2X25leHRf Z2V0b3B0X2g9JzxnZXRvcHQuaD4nCmdsX2N2X25leHRfaW50dHlwZXNfaD0nPGludHR5cGVzLmg+ JwpnbF9jdl9uZXh0X2xpbWl0c19oPSc8bGltaXRzLmg+JwpnbF9jdl9uZXh0X3NpZ25hbF9oPSc8 c2lnbmFsLmg+JwpnbF9jdl9uZXh0X3N0ZGludF9oPSc8c3RkaW50Lmg+JwpnbF9jdl9uZXh0X3N0 ZGlvX2g9JzxzdGRpby5oPicKZ2xfY3ZfbmV4dF9zdGRsaWJfaD0nPHN0ZGxpYi5oPicKZ2xfY3Zf bmV4dF9zdHJpbmdfaD0nPHN0cmluZy5oPicKZ2xfY3ZfbmV4dF9zeXNfcmFuZG9tX2g9JzxzeXMv cmFuZG9tLmg+JwpnbF9jdl9uZXh0X3N5c19zZWxlY3RfaD0nPHN5cy9zZWxlY3QuaD4nCmdsX2N2 X25leHRfc3lzX3N0YXRfaD0nPHN5cy9zdGF0Lmg+JwpnbF9jdl9uZXh0X3N5c190aW1lX2g9Jzxz eXMvdGltZS5oPicKZ2xfY3ZfbmV4dF9zeXNfdHlwZXNfaD0nPHN5cy90eXBlcy5oPicKZ2xfY3Zf bmV4dF90aW1lX2g9Jzx0aW1lLmg+JwpnbF9jdl9uZXh0X3VuaXN0ZF9oPSc8dW5pc3RkLmg+Jwpn bF9jdl9wcm9tb3RlZF9tb2RlX3Q9aW50CmdsX2N2X3NpZ19wc2VsZWN0PXllcwpnbF9jdl9zb3Vy Y2VfbGluZV9sZW5ndGhfdW5saW1pdGVkPXllcwpnbF9jdl9zdHJ1Y3RfZGlyZW50X2RfdHlwZT1u bwpnbF9jdl9zeXNfc3RydWN0X3RpbWVzcGVjX2luX3B0aHJlYWRfaD1ubwpnbF9jdl9zeXNfc3Ry dWN0X3RpbWVzcGVjX2luX3RpbWVfaD15ZXMKZ2xfY3Zfc3lzX3N0cnVjdF90aW1ldmFsPXllcwpn bF9jdl9zeXNfc3RydWN0X3RpbWV2YWxfdHZfc2VjPXllcwpnbF9jdl90aW1lX3RfaXNfc2lnbmVk PXllcwpnbF9jdl90eXBlX21heF9hbGlnbl90PXllcwpnbF9jdl90eXBlX29mZl90XzY0PXllcwpn bF9jdl90eXBlX3NpZ3NldF90PW5vCmdsX2N2X3dhcm5fY19fV2FsbD15ZXMKZ2xfY3Zfd2Fybl9j X19XYXJpdGhfY29udmVyc2lvbj15ZXMKZ2xfY3Zfd2Fybl9jX19XYXJyYXlfYm91bmRzXzI9eWVz CmdsX2N2X3dhcm5fY19fV2F0dHJpYnV0ZV9hbGlhc18yPXllcwpnbF9jdl93YXJuX2NfX1dkYXRl X3RpbWU9eWVzCmdsX2N2X3dhcm5fY19fV2Rpc2FibGVkX29wdGltaXphdGlvbj15ZXMKZ2xfY3Zf d2Fybl9jX19XZG91YmxlX3Byb21vdGlvbj15ZXMKZ2xfY3Zfd2Fybl9jX19XZHVwbGljYXRlZF9j b25kPXllcwpnbF9jdl93YXJuX2NfX1dlcnJvcl9fV3Vua25vd25fd2FybmluZ19vcHRpb249bm8K Z2xfY3Zfd2Fybl9jX19XZXh0cmE9eWVzCmdsX2N2X3dhcm5fY19fV2Zvcm1hdF8yPXllcwpnbF9j dl93YXJuX2NfX1dmb3JtYXRfc2lnbmVkbmVzcz15ZXMKZ2xfY3Zfd2Fybl9jX19XZm9ybWF0X3Ry dW5jYXRpb25fMj15ZXMKZ2xfY3Zfd2Fybl9jX19XaW1wbGljaXRfZmFsbHRocm91Z2hfNT15ZXMK Z2xfY3Zfd2Fybl9jX19XaW5pdF9zZWxmPXllcwpnbF9jdl93YXJuX2NfX1dpbnZhbGlkX3BjaD15 ZXMKZ2xfY3Zfd2Fybl9jX19XbG9naWNhbF9vcD15ZXMKZ2xfY3Zfd2Fybl9jX19XbWlzc2luZ19k ZWNsYXJhdGlvbnM9eWVzCmdsX2N2X3dhcm5fY19fV21pc3NpbmdfaW5jbHVkZV9kaXJzPXllcwpn bF9jdl93YXJuX2NfX1dtaXNzaW5nX3Byb3RvdHlwZXM9eWVzCmdsX2N2X3dhcm5fY19fV25lc3Rl ZF9leHRlcm5zPXllcwpnbF9jdl93YXJuX2NfX1dub19mb3JtYXRfbm9ubGl0ZXJhbD15ZXMKZ2xf Y3Zfd2Fybl9jX19Xbm9fbWlzc2luZ19maWVsZF9pbml0aWFsaXplcnM9eWVzCmdsX2N2X3dhcm5f Y19fV25vX292ZXJyaWRlX2luaXQ9eWVzCmdsX2N2X3dhcm5fY19fV25vX3BvaW50ZXJfc2lnbj15 ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fc2lnbl9jb21wYXJlPXllcwpnbF9jdl93YXJuX2NfX1dub190 eXBlX2xpbWl0cz15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fdW51c2VkX3BhcmFtZXRlcj15ZXMKZ2xf Y3Zfd2Fybl9jX19XbnVsbF9kZXJlZmVyZW5jZT15ZXMKZ2xfY3Zfd2Fybl9jX19Xb2xkX3N0eWxl X2RlZmluaXRpb249eWVzCmdsX2N2X3dhcm5fY19fV29wZW5tcF9zaW1kPXllcwpnbF9jdl93YXJu X2NfX1dwYWNrZWQ9eWVzCmdsX2N2X3dhcm5fY19fV3BvaW50ZXJfYXJpdGg9eWVzCmdsX2N2X3dh cm5fY19fV3JlZHVuZGFudF9kZWNscz1ubwpnbF9jdl93YXJuX2NfX1dzaGlmdF9vdmVyZmxvd18y PXllcwpnbF9jdl93YXJuX2NfX1dzdHJpY3RfcHJvdG90eXBlcz15ZXMKZ2xfY3Zfd2Fybl9jX19X c3VnZ2VzdF9hdHRyaWJ1dGVfbm9yZXR1cm49eWVzCmdsX2N2X3dhcm5fY19fV3N1Z2dlc3RfZmlu YWxfbWV0aG9kcz15ZXMKZ2xfY3Zfd2Fybl9jX19Xc3VnZ2VzdF9maW5hbF90eXBlcz15ZXMKZ2xf Y3Zfd2Fybl9jX19XdHJhbXBvbGluZXM9eWVzCmdsX2N2X3dhcm5fY19fV3VuaW5pdGlhbGl6ZWQ9 eWVzCmdsX2N2X3dhcm5fY19fV3Vua25vd25fcHJhZ21hcz15ZXMKZ2xfY3Zfd2Fybl9jX19XdW51 c2VkX21hY3Jvcz15ZXMKZ2xfY3Zfd2Fybl9jX19XdmFyaWFkaWNfbWFjcm9zPXllcwpnbF9jdl93 YXJuX2NfX1d2ZWN0b3Jfb3BlcmF0aW9uX3BlcmZvcm1hbmNlPXllcwpnbF9jdl93YXJuX2NfX1d2 bGFfbGFyZ2VyX3RoYW5fNDAzMT15ZXMKZ2xfY3Zfd2Fybl9jX19Xd3JpdGVfc3RyaW5ncz15ZXMK Z2xfY3Zfd2Fybl9jX19mbm9fY29tbW9uPXllcwpndF9jdl9jX3djaGFyX3Q9eWVzCmd0X2N2X2Z1 bmNfdW5zZXRlbnZfcmV0PWludApndF9jdl9zc2l6ZV90PXllcwpndF9jdl92YXJfZW52aXJvbl9k ZWNsYXJhdGlvbj15ZXMKcGtnX2N2X0hBUkZCVVpaX0NGTEFHUz0nLUlDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2hhcmZidXp6IC1JQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9mcmVldHlwZTIg LUlDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1JQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9s aWJwbmcxNiAtSUM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2xpYi0yLjAgLUlDOi9tc3lzNjQv bWluZ3c2NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtbW1zLWJpdGZpZWxkcyAnCnBrZ19jdl9IQVJG QlVaWl9MSUJTPSctTEM6L21zeXM2NC9taW5ndzY0L2xpYiAtbGhhcmZidXp6ICcKcGtnX2N2X0pT T05fQ0ZMQUdTPSctSUM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgJwpwa2dfY3ZfSlNPTl9MSUJT PSctTEM6L21zeXM2NC9taW5ndzY0L2xpYiAtbGphbnNzb24gJwpwa2dfY3ZfTENNUzJfQ0ZMQUdT PSctSUM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgJwpwa2dfY3ZfTENNUzJfTElCUz0nLUxDOi9t c3lzNjQvbWluZ3c2NC9saWIgLWxsY21zMiAnCnBrZ19jdl9MSUJHTlVUTFNfQ0ZMQUdTPSctSUM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLUlDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3AxMS1r aXQtMSAnCnBrZ19jdl9MSUJHTlVUTFNfTElCUz0nLUxDOi9tc3lzNjQvbWluZ3c2NC9saWIgLWxn bnV0bHMgJwpwa2dfY3ZfTElCWE1MMl9DRkxBR1M9Jy1JQzovbXN5czY0L21pbmd3NjQvaW5jbHVk ZS9saWJ4bWwyICcKcGtnX2N2X0xJQlhNTDJfTElCUz0nLUxDOi9tc3lzNjQvbWluZ3c2NC9saWIg LWx4bWwyICcKcGtnX2N2X1JTVkdfQ0ZMQUdTPSctSUM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUv bGlicnN2Zy0yLjAgLUlDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2dsaWItMi4wIC1JQzovbXN5 czY0L21pbmd3NjQvbGliL2dsaWItMi4wL2luY2x1ZGUgLUlDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlIC1tbXMtYml0ZmllbGRzIC1JQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9nZGstcGl4YnVm LTIuMCAtSUM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicG5nMTYgLW1tcy1iaXRmaWVsZHMg LXB0aHJlYWQgLW1tcy1iaXRmaWVsZHMgLUlDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2NhaXJv IC1JQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9sem8gLUlDOi9tc3lzNjQvbWluZ3c2NC9pbmNs dWRlL2ZyZWV0eXBlMiAtSUM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1i aXRmaWVsZHMgLUlDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL3BpeG1hbi0xICcKcGtnX2N2X1JT VkdfTElCUz0nLUxDOi9tc3lzNjQvbWluZ3c2NC9saWIgLWxyc3ZnLTIgLWxtIC1sZ2lvLTIuMCAt bGdka19waXhidWYtMi4wIC1sZ29iamVjdC0yLjAgLWxnbGliLTIuMCAtbGludGwgLWxjYWlybyAn CgojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBPdXRwdXQgdmFyaWFibGVzLiAjIwojIyAtLS0t LS0tLS0tLS0tLS0tLSAjIwoKQUxMT0NBPScnCkFMTE9DQV9IPSdhbGxvY2EuaCcKQUxTQV9DRkxB R1M9JycKQUxTQV9MSUJTPScnCkFNX0RFRkFVTFRfVj0nJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkn CkFNX0RFRkFVTFRfVkVSQk9TSVRZPScwJwpBTV9WPSckKFYpJwpBUFBMRV9VTklWRVJTQUxfQlVJ TEQ9JzAnCkFSPSdhcicKQVJGTEFHUz0nY3InCkFVVE9fREVQRU5EPSd5ZXMnCkFXSz0nZ2F3aycK QklUU0laRU9GX1BUUkRJRkZfVD0nJwpCSVRTSVpFT0ZfU0lHX0FUT01JQ19UPScnCkJJVFNJWkVP Rl9TSVpFX1Q9JycKQklUU0laRU9GX1dDSEFSX1Q9JycKQklUU0laRU9GX1dJTlRfVD0nJwpCTEVT U01BSUxfVEFSR0VUPScnCkJSRVc9JycKQlVJTERfREVUQUlMUz0nJwpCWVRFU1dBUF9IPSdieXRl c3dhcC5oJwpDQUlST19DRkxBR1M9JycKQ0FJUk9fTElCUz0nJwpDQz0nZ2NjICcKQ0ZMQUdTPSct ZzMgLU8yIC1nZHdhcmYtMicKQ0ZMQUdTX1NPVU5EPScnCkNIRUNLX1NUUlVDVFM9J2ZhbHNlJwpD TElFTlRSRVM9J2VtYWNzY2xpZW50LnJlcycKQ0xJRU5UVz0nZW1hY3NjbGllbnR3JChFWEVFWFQp JwpDTV9PQko9JycKQ09NX0VSUkxJQj0nJwpDUFA9J2djYyAtSSAuLi9zcmMvbnQvaW5jIC1FJwpD UFBGTEFHUz0nLW10dW5lPWdlbmVyaWMgICAtRFVTRV9DUlRfRExMPTEgLUkgJHthYnNfdG9wX3Ny Y2Rpcn0vbnQvaW5jJwpDUllQVE9MSUI9JycKQ1lHV0lOX09CSj0nJwpDX1NXSVRDSF9NQUNISU5F PScnCkNfU1dJVENIX1NZU1RFTT0nLW10dW5lPWdlbmVyaWMnCkNfU1dJVENIX1hfU0lURT0nJwpE QlVTX0NGTEFHUz0nJwpEQlVTX0xJQlM9JycKREJVU19PQko9JycKREVGUz0nLURIQVZFX0NPTkZJ R19IJwpERVNMSUI9JycKRE9DTUlTQ19XMzI9J2VmYXEtdzMyJwpEVU1QSU5HPSdwZHVtcGVyJwpE WU5MSUJfT0JKPSdkeW5saWIubycKRUNIT19DPScnCkVDSE9fTj0nLW4nCkVDSE9fVD0nJwpFR1JF UD0nL3Vzci9iaW4vZ3JlcCAtRScKRU1BQ1NSRVM9J2VtYWNzLnJlcycKRU1BQ1NfTUFOSUZFU1Q9 J2VtYWNzLXg2NC5tYW5pZmVzdCcKRU1VTFRJSE9QX0hJRERFTj0nMCcKRU1VTFRJSE9QX1ZBTFVF PScnCkVOT0xJTktfSElEREVOPScwJwpFTk9MSU5LX1ZBTFVFPScnCkVPVkVSRkxPV19ISURERU49 JzAnCkVPVkVSRkxPV19WQUxVRT0nJwpFUlJOT19IPSdlcnJuby5oJwpFWEVDSU5GT19IPSdleGVj aW5mby5oJwpFWEVFWFQ9Jy5leGUnCkZJTkRfREVMRVRFPSctZGVsZXRlJwpGSVJTVEZJTEVfT0JK PSdmaXJzdGZpbGUubycKRk9OVENPTkZJR19DRkxBR1M9JycKRk9OVENPTkZJR19MSUJTPScnCkZP TlRfT0JKPScgaGJmb250Lm8nCkZSRUVUWVBFX0NGTEFHUz0nJwpGUkVFVFlQRV9MSUJTPScnCkdD T05GX0NGTEFHUz0nJwpHQ09ORl9MSUJTPScnCkdFVEFERFJJTkZPX0FfTElCUz0nJwpHRVRMT0FE QVZHX0xJQlM9JycKR0VUT1BUX0NERUZTX0g9J2dldG9wdC1jZGVmcy5oJwpHRVRPUFRfSD0nZ2V0 b3B0LmgnCkdGSUxFTk9USUZZX0NGTEFHUz0nJwpHRklMRU5PVElGWV9MSUJTPScnCkdMSUJDMjE9 J25vJwpHTF9DT05EX0xJQlRPT0w9JycKR0xfR0VORVJBVEVfQUxMT0NBX0g9JzEnCkdMX0dFTkVS QVRFX0JZVEVTV0FQX0g9JzEnCkdMX0dFTkVSQVRFX0VSUk5PX0g9JzEnCkdMX0dFTkVSQVRFX0VY RUNJTkZPX0g9JzEnCkdMX0dFTkVSQVRFX0dNUF9HTVBfSD0nJwpHTF9HRU5FUkFURV9JRUVFNzU0 X0g9JzEnCkdMX0dFTkVSQVRFX0xJTUlUU19IPScxJwpHTF9HRU5FUkFURV9NSU5JX0dNUF9IPScn CkdMX0dFTkVSQVRFX1NUREFMSUdOX0g9JycKR0xfR0VORVJBVEVfU1REREVGX0g9JycKR0xfR0VO RVJBVEVfU1RESU5UX0g9JzEnCkdNQUxMT0NfT0JKPScnCkdNUF9IPScnCkdOVUxJQl9BQ0NFU1M9 JzAnCkdOVUxJQl9BTFBIQVNPUlQ9JzAnCkdOVUxJQl9BVE9MTD0nMCcKR05VTElCX0NBTExPQ19Q T1NJWD0nMCcKR05VTElCX0NBTk9OSUNBTElaRV9GSUxFX05BTUU9JzEnCkdOVUxJQl9DSERJUj0n MCcKR05VTElCX0NIT1dOPScwJwpHTlVMSUJfQ0xPU0U9JzAnCkdOVUxJQl9DTE9TRURJUj0nMCcK R05VTElCX0NPUFlfRklMRV9SQU5HRT0nMScKR05VTElCX0NSRUFUPScwJwpHTlVMSUJfQ1RJTUU9 JzAnCkdOVUxJQl9ESVJGRD0nMCcKR05VTElCX0RQUklOVEY9JzAnCkdOVUxJQl9EVVAyPScxJwpH TlVMSUJfRFVQMz0nMCcKR05VTElCX0RVUD0nMCcKR05VTElCX0VOVklST049JzEnCkdOVUxJQl9F VUlEQUNDRVNTPScwJwpHTlVMSUJfRVhQTElDSVRfQlpFUk89JzEnCkdOVUxJQl9GQUNDRVNTQVQ9 JzEnCkdOVUxJQl9GQ0hESVI9JzAnCkdOVUxJQl9GQ0hNT0RBVD0nMScKR05VTElCX0ZDSE9XTkFU PScwJwpHTlVMSUJfRkNMT1NFPScwJwpHTlVMSUJfRkNOVEw9JzEnCkdOVUxJQl9GREFUQVNZTkM9 JzAnCkdOVUxJQl9GRE9QRU49JzAnCkdOVUxJQl9GRE9QRU5ESVI9JzEnCkdOVUxJQl9GRkxVU0g9 JzAnCkdOVUxJQl9GRlNMPScwJwpHTlVMSUJfRkZTTEw9JzAnCkdOVUxJQl9GR0VUQz0nMScKR05V TElCX0ZHRVRTPScxJwpHTlVMSUJfRk9QRU49JzAnCkdOVUxJQl9GUFJJTlRGPScxJwpHTlVMSUJf RlBSSU5URl9QT1NJWD0nMCcKR05VTElCX0ZQVVJHRT0nMCcKR05VTElCX0ZQVVRDPScxJwpHTlVM SUJfRlBVVFM9JzEnCkdOVUxJQl9GUkVBRD0nMScKR05VTElCX0ZSRU9QRU49JzAnCkdOVUxJQl9G U0NBTkY9JzEnCkdOVUxJQl9GU0VFSz0nMCcKR05VTElCX0ZTRUVLTz0nMCcKR05VTElCX0ZTVEFU PScwJwpHTlVMSUJfRlNUQVRBVD0nMScKR05VTElCX0ZTWU5DPScxJwpHTlVMSUJfRlRFTEw9JzAn CkdOVUxJQl9GVEVMTE89JzAnCkdOVUxJQl9GVFJVTkNBVEU9JzAnCkdOVUxJQl9GVVRJTUVOUz0n MScKR05VTElCX0ZXUklURT0nMScKR05VTElCX0dFVEM9JzEnCkdOVUxJQl9HRVRDSEFSPScxJwpH TlVMSUJfR0VUQ1dEPScwJwpHTlVMSUJfR0VUREVMSU09JzAnCkdOVUxJQl9HRVRET01BSU5OQU1F PScwJwpHTlVMSUJfR0VURFRBQkxFU0laRT0nMCcKR05VTElCX0dFVEVOVFJPUFk9JzAnCkdOVUxJ Ql9HRVRHUk9VUFM9JzAnCkdOVUxJQl9HRVRIT1NUTkFNRT0nMCcKR05VTElCX0dFVExJTkU9JzAn CkdOVUxJQl9HRVRMT0FEQVZHPScxJwpHTlVMSUJfR0VUTE9HSU49JzAnCkdOVUxJQl9HRVRMT0dJ Tl9SPScwJwpHTlVMSUJfR0VUT1BUX1BPU0lYPScxJwpHTlVMSUJfR0VUUEFHRVNJWkU9JzAnCkdO VUxJQl9HRVRQQVNTPScwJwpHTlVMSUJfR0VUUkFORE9NPScxJwpHTlVMSUJfR0VUU1VCT1BUPScw JwpHTlVMSUJfR0VUVElNRU9GREFZPScxJwpHTlVMSUJfR0VUVU1BU0s9JzAnCkdOVUxJQl9HRVRV U0VSU0hFTEw9JzAnCkdOVUxJQl9HTF9VTklTVERfSF9HRVRPUFQ9JzEnCkdOVUxJQl9HUkFOVFBU PScwJwpHTlVMSUJfR1JPVVBfTUVNQkVSPScwJwpHTlVMSUJfSU1BWEFCUz0nMCcKR05VTElCX0lN QVhESVY9JzAnCkdOVUxJQl9JU0FUVFk9JzAnCkdOVUxJQl9MQ0hNT0Q9JzAnCkdOVUxJQl9MQ0hP V049JzAnCkdOVUxJQl9MSU5LPScwJwpHTlVMSUJfTElOS0FUPScwJwpHTlVMSUJfTE9DQUxUSU1F PScwJwpHTlVMSUJfTFNFRUs9JzAnCkdOVUxJQl9MU1RBVD0nMScKR05VTElCX01BTExPQ19QT1NJ WD0nMCcKR05VTElCX01CU0NBU0VDTVA9JzAnCkdOVUxJQl9NQlNDQVNFU1RSPScwJwpHTlVMSUJf TUJTQ0hSPScwJwpHTlVMSUJfTUJTQ1NQTj0nMCcKR05VTElCX01CU0xFTj0nMCcKR05VTElCX01C U05DQVNFQ01QPScwJwpHTlVMSUJfTUJTTkxFTj0nMCcKR05VTElCX01CU1BCUks9JzAnCkdOVUxJ Ql9NQlNQQ0FTRUNNUD0nMCcKR05VTElCX01CU1JDSFI9JzAnCkdOVUxJQl9NQlNTRVA9JzAnCkdO VUxJQl9NQlNTUE49JzAnCkdOVUxJQl9NQlNTVFI9JzAnCkdOVUxJQl9NQlNUT0tfUj0nMCcKR05V TElCX01CVE9XQz0nMCcKR05VTElCX01FTUNIUj0nMCcKR05VTElCX01FTU1FTT0nMScKR05VTElC X01FTVBDUFk9JzEnCkdOVUxJQl9NRU1SQ0hSPScxJwpHTlVMSUJfTUtESVJBVD0nMCcKR05VTElC X01LRFRFTVA9JzAnCkdOVUxJQl9NS0ZJRk89JzAnCkdOVUxJQl9NS0ZJRk9BVD0nMCcKR05VTElC X01LTk9EPScwJwpHTlVMSUJfTUtOT0RBVD0nMCcKR05VTElCX01LT1NURU1QPScxJwpHTlVMSUJf TUtPU1RFTVBTPScwJwpHTlVMSUJfTUtTVEVNUD0nMCcKR05VTElCX01LU1RFTVBTPScwJwpHTlVM SUJfTUtUSU1FPScxJwpHTlVMSUJfTkFOT1NMRUVQPScwJwpHTlVMSUJfTk9OQkxPQ0tJTkc9JzAn CkdOVUxJQl9PQlNUQUNLX1BSSU5URj0nMCcKR05VTElCX09CU1RBQ0tfUFJJTlRGX1BPU0lYPScw JwpHTlVMSUJfT1BFTj0nMCcKR05VTElCX09QRU5BVD0nMCcKR05VTElCX09QRU5ESVI9JzAnCkdO VUxJQl9PVkVSUklERVNfU1RSVUNUX1NUQVQ9JzAnCkdOVUxJQl9PVkVSUklERVNfV0lOVF9UPScw JwpHTlVMSUJfUENMT1NFPScwJwpHTlVMSUJfUEVSUk9SPScwJwpHTlVMSUJfUElQRTI9JzEnCkdO VUxJQl9QSVBFPScwJwpHTlVMSUJfUE9QRU49JzAnCkdOVUxJQl9QT1NJWF9PUEVOUFQ9JzAnCkdO VUxJQl9QUkVBRD0nMCcKR05VTElCX1BSSU5URj0nMScKR05VTElCX1BSSU5URl9QT1NJWD0nMCcK R05VTElCX1BTRUxFQ1Q9JzEnCkdOVUxJQl9QVEhSRUFEX1NJR01BU0s9JzEnCkdOVUxJQl9QVFNO QU1FPScwJwpHTlVMSUJfUFRTTkFNRV9SPScwJwpHTlVMSUJfUFVUQz0nMScKR05VTElCX1BVVENI QVI9JzEnCkdOVUxJQl9QVVRFTlY9JzAnCkdOVUxJQl9QVVRTPScxJwpHTlVMSUJfUFdSSVRFPScw JwpHTlVMSUJfUVNPUlRfUj0nMCcKR05VTElCX1JBSVNFPScwJwpHTlVMSUJfUkFORE9NPScwJwpH TlVMSUJfUkFORE9NX1I9JzAnCkdOVUxJQl9SQVdNRU1DSFI9JzAnCkdOVUxJQl9SRUFEPScwJwpH TlVMSUJfUkVBRERJUj0nMCcKR05VTElCX1JFQURMSU5LPScxJwpHTlVMSUJfUkVBRExJTktBVD0n MScKR05VTElCX1JFQUxMT0NBUlJBWT0nMCcKR05VTElCX1JFQUxMT0NfUE9TSVg9JzAnCkdOVUxJ Ql9SRUFMUEFUSD0nMScKR05VTElCX1JFTU9WRT0nMCcKR05VTElCX1JFTkFNRT0nMCcKR05VTElC X1JFTkFNRUFUPScwJwpHTlVMSUJfUkVXSU5ERElSPScwJwpHTlVMSUJfUk1ESVI9JzAnCkdOVUxJ Ql9SUE1BVENIPScwJwpHTlVMSUJfU0NBTkRJUj0nMCcKR05VTElCX1NDQU5GPScxJwpHTlVMSUJf U0VDVVJFX0dFVEVOVj0nMCcKR05VTElCX1NFTEVDVD0nMCcKR05VTElCX1NFVEVOVj0nMCcKR05V TElCX1NFVEhPU1ROQU1FPScwJwpHTlVMSUJfU0lHQUJCUkVWX05QPScwJwpHTlVMSUJfU0lHQUNU SU9OPScwJwpHTlVMSUJfU0lHREVTQ1JfTlA9JzEnCkdOVUxJQl9TSUdOQUxfSF9TSUdQSVBFPScw JwpHTlVMSUJfU0lHUFJPQ01BU0s9JzAnCkdOVUxJQl9TTEVFUD0nMCcKR05VTElCX1NOUFJJTlRG PScwJwpHTlVMSUJfU1BSSU5URl9QT1NJWD0nMCcKR05VTElCX1NUQVQ9JzAnCkdOVUxJQl9TVERJ T19IX05PTkJMT0NLSU5HPScwJwpHTlVMSUJfU1RESU9fSF9TSUdQSVBFPScwJwpHTlVMSUJfU1RQ Q1BZPScxJwpHTlVMSUJfU1RQTkNQWT0nMCcKR05VTElCX1NUUkNBU0VTVFI9JzAnCkdOVUxJQl9T VFJDSFJOVUw9JzAnCkdOVUxJQl9TVFJEVVA9JzAnCkdOVUxJQl9TVFJFUlJPUj0nMCcKR05VTElC X1NUUkVSUk9STkFNRV9OUD0nMCcKR05VTElCX1NUUkVSUk9SX1I9JzAnCkdOVUxJQl9TVFJGVElN RT0nMCcKR05VTElCX1NUUk5DQVQ9JzAnCkdOVUxJQl9TVFJORFVQPScwJwpHTlVMSUJfU1RSTkxF Tj0nMScKR05VTElCX1NUUlBCUks9JzAnCkdOVUxJQl9TVFJQVElNRT0nMCcKR05VTElCX1NUUlNF UD0nMCcKR05VTElCX1NUUlNJR05BTD0nMCcKR05VTElCX1NUUlNUUj0nMCcKR05VTElCX1NUUlRP RD0nMCcKR05VTElCX1NUUlRPSU1BWD0nMScKR05VTElCX1NUUlRPS19SPScwJwpHTlVMSUJfU1RS VE9MRD0nMCcKR05VTElCX1NUUlRPTEw9JzAnCkdOVUxJQl9TVFJUT1VMTD0nMCcKR05VTElCX1NU UlRPVU1BWD0nMCcKR05VTElCX1NUUlZFUlNDTVA9JzAnCkdOVUxJQl9TWU1MSU5LPScxJwpHTlVM SUJfU1lNTElOS0FUPScwJwpHTlVMSUJfU1lTVEVNX1BPU0lYPScwJwpHTlVMSUJfVElNRUdNPScx JwpHTlVMSUJfVElNRV9SPScxJwpHTlVMSUJfVElNRV9SWj0nMScKR05VTElCX1RNUEZJTEU9JzAn CkdOVUxJQl9UUlVOQ0FURT0nMCcKR05VTElCX1RUWU5BTUVfUj0nMCcKR05VTElCX1RaU0VUPScw JwpHTlVMSUJfVU5JU1REX0hfTk9OQkxPQ0tJTkc9JzAnCkdOVUxJQl9VTklTVERfSF9TSUdQSVBF PScwJwpHTlVMSUJfVU5MSU5LPScwJwpHTlVMSUJfVU5MSU5LQVQ9JzAnCkdOVUxJQl9VTkxPQ0tQ VD0nMCcKR05VTElCX1VOU0VURU5WPScwJwpHTlVMSUJfVVNMRUVQPScwJwpHTlVMSUJfVVRJTUVO U0FUPScxJwpHTlVMSUJfVkFTUFJJTlRGPScwJwpHTlVMSUJfVkRQUklOVEY9JzAnCkdOVUxJQl9W RlBSSU5URj0nMScKR05VTElCX1ZGUFJJTlRGX1BPU0lYPScwJwpHTlVMSUJfVkZTQ0FORj0nMCcK R05VTElCX1ZQUklOVEY9JzEnCkdOVUxJQl9WUFJJTlRGX1BPU0lYPScwJwpHTlVMSUJfVlNDQU5G PScwJwpHTlVMSUJfVlNOUFJJTlRGPScwJwpHTlVMSUJfVlNQUklOVEZfUE9TSVg9JzAnCkdOVUxJ Ql9XQVJOX0NGTEFHUz0nIC1mbm8tY29tbW9uIC1XYWxsIC1XYXJpdGgtY29udmVyc2lvbiAtV2Rh dGUtdGltZSAtV2Rpc2FibGVkLW9wdGltaXphdGlvbiAtV2RvdWJsZS1wcm9tb3Rpb24gLVdkdXBs aWNhdGVkLWNvbmQgLVdleHRyYSAtV2Zvcm1hdC1zaWduZWRuZXNzIC1XaW5pdC1zZWxmIC1XaW52 YWxpZC1wY2ggLVdsb2dpY2FsLW9wIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLWlu Y2x1ZGUtZGlycyAtV21pc3NpbmctcHJvdG90eXBlcyAtV25lc3RlZC1leHRlcm5zIC1XbnVsbC1k ZXJlZmVyZW5jZSAtV29sZC1zdHlsZS1kZWZpbml0aW9uIC1Xb3Blbm1wLXNpbWQgLVdwYWNrZWQg LVdwb2ludGVyLWFyaXRoIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdzdWdnZXN0LWF0dHJpYnV0ZT1u b3JldHVybiAtV3N1Z2dlc3QtZmluYWwtbWV0aG9kcyAtV3N1Z2dlc3QtZmluYWwtdHlwZXMgLVd0 cmFtcG9saW5lcyAtV3VuaW5pdGlhbGl6ZWQgLVd1bmtub3duLXByYWdtYXMgLVd2YXJpYWRpYy1t YWNyb3MgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlIC1Xd3JpdGUtc3RyaW5ncyAtV2Fy cmF5LWJvdW5kcz0yIC1XYXR0cmlidXRlLWFsaWFzPTIgLVdmb3JtYXQ9MiAtV2Zvcm1hdC10cnVu Y2F0aW9uPTIgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaD01IC1Xc2hpZnQtb3ZlcmZsb3c9MiAtV3Zs YS1sYXJnZXItdGhhbj00MDMxIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1v dmVycmlkZS1pbml0IC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tdHlwZS1saW1pdHMgLVduby11bnVz ZWQtcGFyYW1ldGVyIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVduby1wb2ludGVyLXNpZ24nCkdO VUxJQl9XQ1RPTUI9JzAnCkdOVUxJQl9XUklURT0nMCcKR05VTElCX19FWElUPScwJwpHTlVTVEVQ X0NGTEFHUz0nJwpHTlVfT0JKQ19DRkxBR1M9JycKR09CSkVDVF9DRkxBR1M9JycKR09CSkVDVF9M SUJTPScnCkdSRVA9Jy91c3IvYmluL2dyZXAnCkdTRVRUSU5HU19DRkxBR1M9JycKR1NFVFRJTkdT X0xJQlM9JycKR1RLX0NGTEFHUz0nJwpHVEtfTElCUz0nJwpHVEtfT0JKPScnCkdaSVBfUFJPRz0n L3Vzci9iaW4vZ3ppcCcKSEFSRkJVWlpfQ0ZMQUdTPSctaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9pbmNsdWRlL2hhcmZidXp6IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJl ZXR5cGUyIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUgLWlzeXN0ZW0gQzovbXN5 czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9p bmNsdWRlL2dsaWItMi4wIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2xpYi9nbGliLTIuMC9p bmNsdWRlIC1tbXMtYml0ZmllbGRzICcKSEFSRkJVWlpfTElCUz0nJwpIQVZFX0FMTE9DQV9IPScw JwpIQVZFX0FMUEhBU09SVD0nMScKSEFWRV9BVE9MTD0nMScKSEFWRV9DOTlfU1RESU5UX0g9JzEn CkhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRT0nMScKSEFWRV9DSE9XTj0nMScKSEFWRV9DTE9T RURJUj0nMScKSEFWRV9DT1BZX0ZJTEVfUkFOR0U9JzEnCkhBVkVfREVDTF9ESVJGRD0nMScKSEFW RV9ERUNMX0VOVklST049JzEnCkhBVkVfREVDTF9GQ0hESVI9JzEnCkhBVkVfREVDTF9GREFUQVNZ TkM9JzEnCkhBVkVfREVDTF9GRE9QRU5ESVI9JzAnCkhBVkVfREVDTF9GUFVSR0U9JzEnCkhBVkVf REVDTF9GU0VFS089JzEnCkhBVkVfREVDTF9GVEVMTE89JzEnCkhBVkVfREVDTF9HRVRERUxJTT0n MScKSEFWRV9ERUNMX0dFVERPTUFJTk5BTUU9JzEnCkhBVkVfREVDTF9HRVRMSU5FPScxJwpIQVZF X0RFQ0xfR0VUTE9BREFWRz0nMCcKSEFWRV9ERUNMX0dFVExPR0lOPScxJwpIQVZFX0RFQ0xfR0VU TE9HSU5fUj0nMScKSEFWRV9ERUNMX0dFVFBBR0VTSVpFPScxJwpIQVZFX0RFQ0xfR0VUVVNFUlNI RUxMPScxJwpIQVZFX0RFQ0xfSU1BWEFCUz0nMScKSEFWRV9ERUNMX0lNQVhESVY9JzEnCkhBVkVf REVDTF9JTklUU1RBVEU9JzEnCkhBVkVfREVDTF9MT0NBTFRJTUVfUj0nMCcKSEFWRV9ERUNMX01F TU1FTT0nMCcKSEFWRV9ERUNMX01FTVJDSFI9JzAnCkhBVkVfREVDTF9PQlNUQUNLX1BSSU5URj0n MScKSEFWRV9ERUNMX1NFVEVOVj0nMScKSEFWRV9ERUNMX1NFVEhPU1ROQU1FPScxJwpIQVZFX0RF Q0xfU0VUU1RBVEU9JzEnCkhBVkVfREVDTF9TTlBSSU5URj0nMScKSEFWRV9ERUNMX1NUUkRVUD0n MScKSEFWRV9ERUNMX1NUUkVSUk9SX1I9JzEnCkhBVkVfREVDTF9TVFJORFVQPScxJwpIQVZFX0RF Q0xfU1RSTkxFTj0nMScKSEFWRV9ERUNMX1NUUlNJR05BTD0nMScKSEFWRV9ERUNMX1NUUlRPSU1B WD0nMScKSEFWRV9ERUNMX1NUUlRPS19SPScxJwpIQVZFX0RFQ0xfU1RSVE9VTUFYPScxJwpIQVZF X0RFQ0xfVFJVTkNBVEU9JzEnCkhBVkVfREVDTF9UVFlOQU1FX1I9JzEnCkhBVkVfREVDTF9VTlNF VEVOVj0nMScKSEFWRV9ERUNMX1ZTTlBSSU5URj0nMScKSEFWRV9ESVJFTlRfSD0nMScKSEFWRV9E UFJJTlRGPScxJwpIQVZFX0RVUDM9JzEnCkhBVkVfRVVJREFDQ0VTUz0nMScKSEFWRV9FWFBMSUNJ VF9CWkVSTz0nMScKSEFWRV9GQUNDRVNTQVQ9JzEnCkhBVkVfRkNIRElSPScxJwpIQVZFX0ZDSE1P REFUPScxJwpIQVZFX0ZDSE9XTkFUPScxJwpIQVZFX0ZDTlRMPScxJwpIQVZFX0ZEQVRBU1lOQz0n MScKSEFWRV9GRE9QRU5ESVI9JzEnCkhBVkVfRkZTTD0nMScKSEFWRV9GRlNMTD0nMScKSEFWRV9G U0VFS089JzEnCkhBVkVfRlNUQVRBVD0nMScKSEFWRV9GU1lOQz0nMScKSEFWRV9GVEVMTE89JzEn CkhBVkVfRlRSVU5DQVRFPScxJwpIQVZFX0ZVVElNRU5TPScxJwpIQVZFX0dFVERUQUJMRVNJWkU9 JzEnCkhBVkVfR0VURU5UUk9QWT0nMScKSEFWRV9HRVRHUk9VUFM9JzEnCkhBVkVfR0VUSE9TVE5B TUU9JzEnCkhBVkVfR0VUTE9HSU49JzEnCkhBVkVfR0VUT1BUX0g9JzAnCkhBVkVfR0VUUEFHRVNJ WkU9JzEnCkhBVkVfR0VUUEFTUz0nMScKSEFWRV9HRVRSQU5ET009JzAnCkhBVkVfR0VUU1VCT1BU PScxJwpIQVZFX0dFVFRJTUVPRkRBWT0nMScKSEFWRV9HRVRVTUFTSz0nMScKSEFWRV9HUkFOVFBU PScxJwpIQVZFX0dST1VQX01FTUJFUj0nMScKSEFWRV9JTUFYRElWX1Q9JzEnCkhBVkVfSU5JVFNU QVRFPScxJwpIQVZFX0lOVFRZUEVTX0g9JzEnCkhBVkVfTENITU9EPScxJwpIQVZFX0xDSE9XTj0n MScKSEFWRV9MSUJHTVA9J3llcycKSEFWRV9MSU5LPScxJwpIQVZFX0xJTktBVD0nMScKSEFWRV9M U1RBVD0nMScKSEFWRV9NQUtFSU5GTz0neWVzJwpIQVZFX01BWF9BTElHTl9UPScxJwpIQVZFX01C U0xFTj0nMCcKSEFWRV9NQlRPV0M9JzEnCkhBVkVfTUVNUENQWT0nMScKSEFWRV9NS0RJUkFUPScx JwpIQVZFX01LRFRFTVA9JzEnCkhBVkVfTUtGSUZPPScxJwpIQVZFX01LRklGT0FUPScxJwpIQVZF X01LTk9EPScxJwpIQVZFX01LTk9EQVQ9JzEnCkhBVkVfTUtPU1RFTVA9JzAnCkhBVkVfTUtPU1RF TVBTPScxJwpIQVZFX01LU1RFTVA9JzEnCkhBVkVfTUtTVEVNUFM9JzEnCkhBVkVfTU9EVUxFUz0n eWVzJwpIQVZFX05BTk9TTEVFUD0nMScKSEFWRV9OQVRJVkVfQ09NUD0neWVzJwpIQVZFX09QRU5B VD0nMScKSEFWRV9PUEVORElSPScxJwpIQVZFX09TX0g9JzAnCkhBVkVfUENMT1NFPScxJwpIQVZF X1BEVU1QRVI9J3llcycKSEFWRV9QSVBFMj0nMScKSEFWRV9QSVBFPScxJwpIQVZFX1BPUEVOPScx JwpIQVZFX1BPU0lYX09QRU5QVD0nMScKSEFWRV9QT1NJWF9TSUdOQUxCTE9DS0lORz0nMScKSEFW RV9QUkVBRD0nMScKSEFWRV9QU0VMRUNUPScxJwpIQVZFX1BUSFJFQURfU0lHTUFTSz0nMScKSEFW RV9QVFNOQU1FPScxJwpIQVZFX1BUU05BTUVfUj0nMScKSEFWRV9QV1JJVEU9JzEnCkhBVkVfUVNP UlRfUj0nMScKSEFWRV9SQUlTRT0nMScKSEFWRV9SQU5ET009JzEnCkhBVkVfUkFORE9NX0g9JzEn CkhBVkVfUkFORE9NX1I9JzEnCkhBVkVfUkFXTUVNQ0hSPScxJwpIQVZFX1JFQURESVI9JzEnCkhB VkVfUkVBRExJTks9JzEnCkhBVkVfUkVBRExJTktBVD0nMScKSEFWRV9SRUFMTE9DQVJSQVk9JzEn CkhBVkVfUkVBTFBBVEg9JzEnCkhBVkVfUkVOQU1FQVQ9JzEnCkhBVkVfUkVXSU5ERElSPScxJwpI QVZFX1JQTUFUQ0g9JzEnCkhBVkVfU0NBTkRJUj0nMScKSEFWRV9TRUNVUkVfR0VURU5WPScxJwpI QVZFX1NFVEVOVj0nMScKSEFWRV9TRVRIT1NUTkFNRT0nMScKSEFWRV9TRVRTVEFURT0nMScKSEFW RV9TSUdBQkJSRVZfTlA9JzEnCkhBVkVfU0lHQUNUSU9OPScxJwpIQVZFX1NJR0RFU0NSX05QPScw JwpIQVZFX1NJR0hBTkRMRVJfVD0nMCcKSEFWRV9TSUdJTkZPX1Q9JzEnCkhBVkVfU0lHTkVEX1NJ R19BVE9NSUNfVD0nJwpIQVZFX1NJR05FRF9XQ0hBUl9UPScnCkhBVkVfU0lHTkVEX1dJTlRfVD0n JwpIQVZFX1NJR1NFVF9UPScwJwpIQVZFX1NMRUVQPScxJwpIQVZFX1NURElOVF9IPScxJwpIQVZF X1NUUENQWT0nMCcKSEFWRV9TVFBOQ1BZPScxJwpIQVZFX1NUUkNBU0VTVFI9JzEnCkhBVkVfU1RS Q0hSTlVMPScxJwpIQVZFX1NUUkVSUk9STkFNRV9OUD0nMScKSEFWRV9TVFJQQlJLPScxJwpIQVZF X1NUUlBUSU1FPScxJwpIQVZFX1NUUlNFUD0nMScKSEFWRV9TVFJUT0Q9JzEnCkhBVkVfU1RSVE9M RD0nMScKSEFWRV9TVFJUT0xMPScxJwpIQVZFX1NUUlRPVUxMPScxJwpIQVZFX1NUUlVDVF9SQU5E T01fREFUQT0nMScKSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTj0nMScKSEFWRV9T VFJVQ1RfVElNRVZBTD0nMScKSEFWRV9TVFJWRVJTQ01QPScxJwpIQVZFX1NZTUxJTks9JzEnCkhB VkVfU1lNTElOS0FUPScxJwpIQVZFX1NZU19CSVRZUEVTX0g9JzAnCkhBVkVfU1lTX0NERUZTX0g9 JzEnCkhBVkVfU1lTX0lOVFRZUEVTX0g9JzAnCkhBVkVfU1lTX0xPQURBVkdfSD0nMCcKSEFWRV9T WVNfUEFSQU1fSD0nMCcKSEFWRV9TWVNfUkFORE9NX0g9JzAnCkhBVkVfU1lTX1NFTEVDVF9IPScw JwpIQVZFX1NZU19USU1FX0g9JzEnCkhBVkVfU1lTX1RZUEVTX0g9JzEnCkhBVkVfVElNRUdNPScw JwpIQVZFX1RJTUVaT05FX1Q9JzAnCkhBVkVfVFlQRV9WT0xBVElMRV9TSUdfQVRPTUlDX1Q9JzEn CkhBVkVfVU5JU1REX0g9JzEnCkhBVkVfVU5MSU5LQVQ9JzEnCkhBVkVfVU5MT0NLUFQ9JzEnCkhB VkVfVVNMRUVQPScxJwpIQVZFX1VUSU1FTlNBVD0nMScKSEFWRV9WQVNQUklOVEY9JzEnCkhBVkVf VkRQUklOVEY9JzEnCkhBVkVfV0NIQVJfSD0nMScKSEFWRV9XQ0hBUl9UPScxJwpIQVZFX1dJTlNP Q0syX0g9JzAnCkhBVkVfWFNFUlZFUj0nJwpIQVZFX19FWElUPScxJwpIWUJSSURfTUFMTE9DPScn CklFRUU3NTRfSD0naWVlZTc1NC5oJwpJTUFHRU1BR0lDS19DRkxBR1M9JycKSU1BR0VNQUdJQ0tf TElCUz0nJwpJTkNMVURFX05FWFQ9J2luY2x1ZGVfbmV4dCcKSU5DTFVERV9ORVhUX0FTX0ZJUlNU X0RJUkVDVElWRT0naW5jbHVkZV9uZXh0JwpJTlNUQUxMX0FSQ0hfSU5ERVBfRVhUUkE9J2luc3Rh bGwtZXRjJwpJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0JwpJTlNUQUxMX0lORk89Jy91 c3IvYmluL2luc3RhbGwtaW5mbycKSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwpJTlNUQUxM X1NDUklQVD0nJHtJTlNUQUxMfScKSU5UMzJfTUFYX0xUX0lOVE1BWF9NQVg9JzEnCklOVDY0X01B WF9FUV9MT05HX01BWD0nZGVmaW5lZCBfTFA2NCcKSlNPTl9DRkxBR1M9Jy1pc3lzdGVtIEM6L21z eXM2NC9taW5ndzY0L2luY2x1ZGUgJwpKU09OX0xJQlM9JycKSlNPTl9PQko9J2pzb24ubycKS1FV RVVFX0NGTEFHUz0nJwpLUVVFVUVfTElCUz0nJwpLUkI0TElCPScnCktSQjVMSUI9JycKTENNUzJf Q0ZMQUdTPSctaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlICcKTENNUzJfTElCUz0n JwpMREZMQUdTPScnCkxEX1NXSVRDSF9TWVNURU09JycKTERfU1dJVENIX1NZU1RFTV9URU1BQ1M9 JyAtV2wsLXN0YWNrLDB4MDA4MDAwMDAgLVdsLC1oZWFwLDB4MDAxMDAwMDAgLVdsLC1pbWFnZS1i YXNlLDB4NDAwMDAwMDAwIC1XbCwtZW50cnksX19zdGFydCAtV2wsLU1hcCwuL3RlbWFjcy5tYXAn CkxEX1NXSVRDSF9YX1NJVEU9JycKTERfU1dJVENIX1hfU0lURV9SUEFUSD0nJwpMSUJHQ0NKSVRf TElCPScnCkxJQkdJRj0nJwpMSUJHTVA9Jy1sZ21wJwpMSUJHTlVUTFNfQ0ZMQUdTPSctaXN5c3Rl bSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2lu Y2x1ZGUvcDExLWtpdC0xICcKTElCR05VVExTX0xJQlM9JycKTElCR05VX0xJQkRFUFM9JycKTElC R05VX0xUTElCREVQUz0nJwpMSUJHUE09JycKTElCSEVTSU9EPScnCkxJQklOVEw9JycKTElCSlBF Rz0nJwpMSUJNT0RVTEVTPScnCkxJQk9CSlM9JycKTElCT1RGX0NGTEFHUz0nJwpMSUJPVEZfTElC Uz0nJwpMSUJQTkc9JycKTElCUkVTT0xWPScnCkxJQlM9JyAnCkxJQlNFTElOVVhfTElCUz0nJwpM SUJTT1VORD0nJwpMSUJTWVNURU1EX0NGTEFHUz0nJwpMSUJTWVNURU1EX0xJQlM9JycKTElCU19F Q0xJRU5UPSctbGNvbWN0bDMyJwpMSUJTX0dOVVNURVA9JycKTElCU19NQUlMPScnCkxJQlNfU1lT VEVNPScnCkxJQlNfVEVSTUNBUD0nJwpMSUJUSUZGPScnCkxJQlhNRU5VPScnCkxJQlhNTDJfQ0ZM QUdTPSctaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRlL2xpYnhtbDIgJwpMSUJYTUwy X0xJQlM9JycKTElCWE1VPScnCkxJQlhQTT0nJwpMSUJYU009JycKTElCWFRSNj0nJwpMSUJYVF9P VEhFUj0nJwpMSUJYX09USEVSPScnCkxJQlo9JycKTElCX0FDTD0nJwpMSUJfQ0xPQ0tfR0VUVElN RT0nJwpMSUJfRUFDQ0VTUz0nJwpMSUJfRVhFQ0lORk89JycKTElCX0dFVFJBTkRPTT0nLWxhZHZh cGkzMicKTElCX01BVEg9JycKTElCX1BUSFJFQUQ9JycKTElCX1BUSFJFQURfU0lHTUFTSz0nJwpM SUJfVElNRVJfVElNRT0nJwpMSUJfV1NPQ0szMj0nLWx3c29jazMyJwpMSU1JVFNfSD0nbGltaXRz LmgnCkxOX1NfRklMRU9OTFk9Jy9iaW4vbG4nCkxUTElCR01QPSctbGdtcCcKTFRMSUJJTlRMPScn CkxUTElCT0JKUz0nJwpNMTdOX0ZMVF9DRkxBR1M9JycKTTE3Tl9GTFRfTElCUz0nJwpNQUtFSU5G Tz0nbWFrZWluZm8nCk1BS0VfUFJPRz0nJwpNS0RJUl9QPScvdXNyL2Jpbi9ta2RpciAtcCcKTU9E VUxFU19PQko9J2VtYWNzLW1vZHVsZS5vJwpNT0RVTEVTX1NFQ09OREFSWV9TVUZGSVg9JycKTU9E VUxFU19TVUZGSVg9Jy5kbGwnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0RJUkVOVF9IPSc8ZGly ZW50Lmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9FUlJOT19IPSc8ZXJybm8uaD4nCk5FWFRf QVNfRklSU1RfRElSRUNUSVZFX0ZDTlRMX0g9JzxmY250bC5oPicKTkVYVF9BU19GSVJTVF9ESVJF Q1RJVkVfR0VUT1BUX0g9JzxnZXRvcHQuaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0lOVFRZ UEVTX0g9JzxpbnR0eXBlcy5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfTElNSVRTX0g9Jzxs aW1pdHMuaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NJR05BTF9IPSc8c2lnbmFsLmg+JwpO RVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9TVERERUZfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElW RV9TVERJTlRfSD0nPHN0ZGludC5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfU1RESU9fSD0n PHN0ZGlvLmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9TVERMSUJfSD0nPHN0ZGxpYi5oPicK TkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfU1RSSU5HX0g9JzxzdHJpbmcuaD4nCk5FWFRfQVNfRklS U1RfRElSRUNUSVZFX1NZU19SQU5ET01fSD0nPHN5cy9yYW5kb20uaD4nCk5FWFRfQVNfRklSU1Rf RElSRUNUSVZFX1NZU19TRUxFQ1RfSD0nPHN5cy9zZWxlY3QuaD4nCk5FWFRfQVNfRklSU1RfRElS RUNUSVZFX1NZU19TVEFUX0g9JzxzeXMvc3RhdC5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVf U1lTX1RJTUVfSD0nPHN5cy90aW1lLmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9TWVNfVFlQ RVNfSD0nPHN5cy90eXBlcy5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfVElNRV9IPSc8dGlt ZS5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfVU5JU1REX0g9Jzx1bmlzdGQuaD4nCk5FWFRf RElSRU5UX0g9JzxkaXJlbnQuaD4nCk5FWFRfRVJSTk9fSD0nPGVycm5vLmg+JwpORVhUX0ZDTlRM X0g9JzxmY250bC5oPicKTkVYVF9HRVRPUFRfSD0nPGdldG9wdC5oPicKTkVYVF9JTlRUWVBFU19I PSc8aW50dHlwZXMuaD4nCk5FWFRfTElNSVRTX0g9JzxsaW1pdHMuaD4nCk5FWFRfU0lHTkFMX0g9 JzxzaWduYWwuaD4nCk5FWFRfU1REREVGX0g9JycKTkVYVF9TVERJTlRfSD0nPHN0ZGludC5oPicK TkVYVF9TVERJT19IPSc8c3RkaW8uaD4nCk5FWFRfU1RETElCX0g9JzxzdGRsaWIuaD4nCk5FWFRf U1RSSU5HX0g9JzxzdHJpbmcuaD4nCk5FWFRfU1lTX1JBTkRPTV9IPSc8c3lzL3JhbmRvbS5oPicK TkVYVF9TWVNfU0VMRUNUX0g9JzxzeXMvc2VsZWN0Lmg+JwpORVhUX1NZU19TVEFUX0g9JzxzeXMv c3RhdC5oPicKTkVYVF9TWVNfVElNRV9IPSc8c3lzL3RpbWUuaD4nCk5FWFRfU1lTX1RZUEVTX0g9 JzxzeXMvdHlwZXMuaD4nCk5FWFRfVElNRV9IPSc8dGltZS5oPicKTkVYVF9VTklTVERfSD0nPHVu aXN0ZC5oPicKTk9USUZZX0NGTEFHUz0nJwpOT1RJRllfTElCUz0nJwpOT1RJRllfT0JKPSd3MzJu b3RpZnkubycKTlNfT0JKPScnCk5TX09CSkNfT0JKPScnCk5URElSPSdudCcKTlRMSUI9J250bGli Lm8nCk9CSkM9JycKT0JKQ0ZMQUdTPScnCk9CSkVYVD0nbycKT1RIRVJfRklMRVM9JycKUEFDS0FH RV9CVUdSRVBPUlQ9J2J1Zy1nbnUtZW1hY3NAZ251Lm9yZycKUEFDS0FHRV9OQU1FPSdHTlUgRW1h Y3MnClBBQ0tBR0VfU1RSSU5HPSdHTlUgRW1hY3MgMjguMC41MCcKUEFDS0FHRV9UQVJOQU1FPSdl bWFjcycKUEFDS0FHRV9VUkw9J2h0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvJwpQ QUNLQUdFX1ZFUlNJT049JzI4LjAuNTAnClBBVEhfU0VQQVJBVE9SPSc6JwpQQVhDVEw9JycKUEFY Q1RMX2R1bXBlZD0nJwpQQVhDVExfbm90ZHVtcGVkPScnClBLR19DT05GSUc9Jy9taW5ndzY0L2Jp bi9wa2ctY29uZmlnJwpQS0dfQ09ORklHX0xJQkRJUj0nJwpQS0dfQ09ORklHX1BBVEg9Jy9taW5n dzY0L2xpYi9wa2djb25maWc6L21pbmd3NjQvc2hhcmUvcGtnY29uZmlnJwpQTkdfQ0ZMQUdTPScn ClBOR19MSUJTPScnClBPU1RfQUxMT0NfT0JKPSdsYXN0ZmlsZS5vJwpQUkFHTUFfQ09MVU1OUz0n JwpQUkFHTUFfU1lTVEVNX0hFQURFUj0nI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcicKUFJFX0FM TE9DX09CSj0nJwpQUklQVFJfUFJFRklYPSdfX1BSSVBUUl9QUkVGSVgnClBST0ZJTElOR19DRkxB R1M9JycKUFRIUkVBRF9IX0RFRklORVNfU1RSVUNUX1RJTUVTUEVDPScwJwpQVFJESUZGX1RfU1VG RklYPScnClJBTExPQ19PQko9JycKUkFOTElCPSdyYW5saWInClJFUExBQ0VfQUNDRVNTPScwJwpS RVBMQUNFX0NBTExPQz0nMCcKUkVQTEFDRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FPScwJwpSRVBM QUNFX0NIT1dOPScwJwpSRVBMQUNFX0NMT1NFPScwJwpSRVBMQUNFX0NMT1NFRElSPScwJwpSRVBM QUNFX0NSRUFUPScwJwpSRVBMQUNFX0NUSU1FPSdHTlVMSUJfUE9SVENIRUNLJwpSRVBMQUNFX0RJ UkZEPScwJwpSRVBMQUNFX0RQUklOVEY9JzAnClJFUExBQ0VfRFVQMj0nMCcKUkVQTEFDRV9EVVA9 JzAnClJFUExBQ0VfRkFDQ0VTU0FUPScwJwpSRVBMQUNFX0ZDSE1PREFUPScwJwpSRVBMQUNFX0ZD SE9XTkFUPScwJwpSRVBMQUNFX0ZDTE9TRT0nMCcKUkVQTEFDRV9GQ05UTD0nMCcKUkVQTEFDRV9G RE9QRU49JzAnClJFUExBQ0VfRkRPUEVORElSPScwJwpSRVBMQUNFX0ZGTFVTSD0nMCcKUkVQTEFD RV9GT1BFTj0nMCcKUkVQTEFDRV9GUFJJTlRGPScwJwpSRVBMQUNFX0ZQVVJHRT0nMCcKUkVQTEFD RV9GUkVPUEVOPScwJwpSRVBMQUNFX0ZTRUVLPScwJwpSRVBMQUNFX0ZTRUVLTz0nMCcKUkVQTEFD RV9GU1RBVD0nMCcKUkVQTEFDRV9GU1RBVEFUPScwJwpSRVBMQUNFX0ZURUxMPScwJwpSRVBMQUNF X0ZURUxMTz0nMCcKUkVQTEFDRV9GVFJVTkNBVEU9JzAnClJFUExBQ0VfRlVUSU1FTlM9JzAnClJF UExBQ0VfR0VUQ1dEPScwJwpSRVBMQUNFX0dFVERFTElNPScwJwpSRVBMQUNFX0dFVERPTUFJTk5B TUU9JzAnClJFUExBQ0VfR0VURFRBQkxFU0laRT0nMCcKUkVQTEFDRV9HRVRHUk9VUFM9JzAnClJF UExBQ0VfR0VUTElORT0nMCcKUkVQTEFDRV9HRVRMT0dJTl9SPScwJwpSRVBMQUNFX0dFVFBBR0VT SVpFPScwJwpSRVBMQUNFX0dFVFBBU1M9JzAnClJFUExBQ0VfR0VUUkFORE9NPScwJwpSRVBMQUNF X0dFVFRJTUVPRkRBWT0nMScKUkVQTEFDRV9HTVRJTUU9JzAnClJFUExBQ0VfSU5JVFNUQVRFPScw JwpSRVBMQUNFX0lTQVRUWT0nMCcKUkVQTEFDRV9MQ0hPV049JzAnClJFUExBQ0VfTElOSz0nMCcK UkVQTEFDRV9MSU5LQVQ9JzAnClJFUExBQ0VfTE9DQUxUSU1FPScwJwpSRVBMQUNFX0xPQ0FMVElN RV9SPSdHTlVMSUJfUE9SVENIRUNLJwpSRVBMQUNFX0xTRUVLPScwJwpSRVBMQUNFX0xTVEFUPScw JwpSRVBMQUNFX01BTExPQz0nMCcKUkVQTEFDRV9NQlRPV0M9JzAnClJFUExBQ0VfTUVNQ0hSPScw JwpSRVBMQUNFX01FTU1FTT0nMCcKUkVQTEFDRV9NS0RJUj0nMCcKUkVQTEFDRV9NS0ZJRk89JzAn ClJFUExBQ0VfTUtOT0Q9JzAnClJFUExBQ0VfTUtTVEVNUD0nMCcKUkVQTEFDRV9NS1RJTUU9JzEn ClJFUExBQ0VfTkFOT1NMRUVQPSdHTlVMSUJfUE9SVENIRUNLJwpSRVBMQUNFX05VTEw9JzAnClJF UExBQ0VfT0JTVEFDS19QUklOVEY9JzAnClJFUExBQ0VfT1BFTj0nMCcKUkVQTEFDRV9PUEVOQVQ9 JzAnClJFUExBQ0VfT1BFTkRJUj0nMCcKUkVQTEFDRV9QRVJST1I9JzAnClJFUExBQ0VfUE9QRU49 JzAnClJFUExBQ0VfUFJFQUQ9JzAnClJFUExBQ0VfUFJJTlRGPScwJwpSRVBMQUNFX1BTRUxFQ1Q9 JzAnClJFUExBQ0VfUFRIUkVBRF9TSUdNQVNLPScwJwpSRVBMQUNFX1BUU05BTUU9JzAnClJFUExB Q0VfUFRTTkFNRV9SPScwJwpSRVBMQUNFX1BVVEVOVj0nMCcKUkVQTEFDRV9QV1JJVEU9JzAnClJF UExBQ0VfUVNPUlRfUj0nMCcKUkVQTEFDRV9SQUlTRT0nMCcKUkVQTEFDRV9SQU5ET009JzAnClJF UExBQ0VfUkFORE9NX1I9JzAnClJFUExBQ0VfUkVBRD0nMCcKUkVQTEFDRV9SRUFETElOSz0nMCcK UkVQTEFDRV9SRUFETElOS0FUPScwJwpSRVBMQUNFX1JFQUxMT0M9JzAnClJFUExBQ0VfUkVBTFBB VEg9JzAnClJFUExBQ0VfUkVNT1ZFPScwJwpSRVBMQUNFX1JFTkFNRT0nMCcKUkVQTEFDRV9SRU5B TUVBVD0nMCcKUkVQTEFDRV9STURJUj0nMCcKUkVQTEFDRV9TRUxFQ1Q9JzAnClJFUExBQ0VfU0VU RU5WPScwJwpSRVBMQUNFX1NFVFNUQVRFPScwJwpSRVBMQUNFX1NMRUVQPScwJwpSRVBMQUNFX1NO UFJJTlRGPScwJwpSRVBMQUNFX1NQUklOVEY9JzAnClJFUExBQ0VfU1RBVD0nMCcKUkVQTEFDRV9T VERJT19SRUFEX0ZVTkNTPScwJwpSRVBMQUNFX1NURElPX1dSSVRFX0ZVTkNTPScwJwpSRVBMQUNF X1NUUE5DUFk9JzAnClJFUExBQ0VfU1RSQ0FTRVNUUj0nMCcKUkVQTEFDRV9TVFJDSFJOVUw9JzAn ClJFUExBQ0VfU1RSRFVQPScwJwpSRVBMQUNFX1NUUkVSUk9SPScwJwpSRVBMQUNFX1NUUkVSUk9S TkFNRV9OUD0nMCcKUkVQTEFDRV9TVFJFUlJPUl9SPScwJwpSRVBMQUNFX1NUUkZUSU1FPSdHTlVM SUJfUE9SVENIRUNLJwpSRVBMQUNFX1NUUk5DQVQ9JzAnClJFUExBQ0VfU1RSTkRVUD0nMCcKUkVQ TEFDRV9TVFJOTEVOPScwJwpSRVBMQUNFX1NUUlNJR05BTD0nMCcKUkVQTEFDRV9TVFJTVFI9JzAn ClJFUExBQ0VfU1RSVE9EPScwJwpSRVBMQUNFX1NUUlRPSU1BWD0nMCcKUkVQTEFDRV9TVFJUT0tf Uj0nMCcKUkVQTEFDRV9TVFJUT0xEPScwJwpSRVBMQUNFX1NUUlRPVU1BWD0nMCcKUkVQTEFDRV9T VFJVQ1RfVElNRVZBTD0nMCcKUkVQTEFDRV9TWU1MSU5LPScwJwpSRVBMQUNFX1NZTUxJTktBVD0n MCcKUkVQTEFDRV9USU1FR009JzAnClJFUExBQ0VfVE1QRklMRT0nMCcKUkVQTEFDRV9UUlVOQ0FU RT0nMCcKUkVQTEFDRV9UVFlOQU1FX1I9JzAnClJFUExBQ0VfVFpTRVQ9J0dOVUxJQl9QT1JUQ0hF Q0snClJFUExBQ0VfVU5MSU5LPScwJwpSRVBMQUNFX1VOTElOS0FUPScwJwpSRVBMQUNFX1VOU0VU RU5WPScwJwpSRVBMQUNFX1VTTEVFUD0nMCcKUkVQTEFDRV9VVElNRU5TQVQ9JzAnClJFUExBQ0Vf VkFTUFJJTlRGPScwJwpSRVBMQUNFX1ZEUFJJTlRGPScwJwpSRVBMQUNFX1ZGUFJJTlRGPScwJwpS RVBMQUNFX1ZQUklOVEY9JzAnClJFUExBQ0VfVlNOUFJJTlRGPScwJwpSRVBMQUNFX1ZTUFJJTlRG PScwJwpSRVBMQUNFX1dDVE9NQj0nMCcKUkVQTEFDRV9XUklURT0nMCcKUlNWR19DRkxBR1M9Jy1p c3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbGlicnN2Zy0yLjAgLWlzeXN0ZW0gQzov bXN5czY0L21pbmd3NjQvaW5jbHVkZS9nbGliLTIuMCAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2 NC9saWIvZ2xpYi0yLjAvaW5jbHVkZSAtaXN5c3RlbSBDOi9tc3lzNjQvbWluZ3c2NC9pbmNsdWRl IC1tbXMtYml0ZmllbGRzIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZ2RrLXBp eGJ1Zi0yLjAgLWlzeXN0ZW0gQzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9saWJwbmcxNiAtbW1z LWJpdGZpZWxkcyAtcHRocmVhZCAtbW1zLWJpdGZpZWxkcyAtaXN5c3RlbSBDOi9tc3lzNjQvbWlu Z3c2NC9pbmNsdWRlL2NhaXJvIC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvbHpv IC1pc3lzdGVtIEM6L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvZnJlZXR5cGUyIC1pc3lzdGVtIEM6 L21zeXM2NC9taW5ndzY0L2luY2x1ZGUvaGFyZmJ1enogLW1tcy1iaXRmaWVsZHMgLWlzeXN0ZW0g QzovbXN5czY0L21pbmd3NjQvaW5jbHVkZS9waXhtYW4tMSAnClJTVkdfTElCUz0nJwpTRVBDSEFS PSc7JwpTRVRGQVRUUj0nJwpTRVRUSU5HU19DRkxBR1M9JycKU0VUVElOR1NfTElCUz0nJwpTSEVM TD0nL2Jpbi9zaCcKU0lHX0FUT01JQ19UX1NVRkZJWD0nJwpTSVpFX1RfU1VGRklYPScnClNUREFM SUdOX0g9JycKU1REREVGX0g9JycKU1RESU5UX0g9J3N0ZGludC5oJwpTVUJESVJfTUFLRUZJTEVT X0lOPScgJChzcmNkaXIpL2xpYi9NYWtlZmlsZS5pbiAkKHNyY2RpcikvbGliLXNyYy9NYWtlZmls ZS5pbiAkKHNyY2Rpcikvb2xkWE1lbnUvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2RvYy9lbWFjcy9N YWtlZmlsZS5pbiAkKHNyY2RpcikvZG9jL21pc2MvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2RvYy9s aXNwaW50cm8vTWFrZWZpbGUuaW4gJChzcmNkaXIpL2RvYy9saXNwcmVmL01ha2VmaWxlLmluICQo c3JjZGlyKS9zcmMvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2x3bGliL01ha2VmaWxlLmluICQoc3Jj ZGlyKS9saXNwL01ha2VmaWxlLmluICQoc3JjZGlyKS9sZWltL01ha2VmaWxlLmluICQoc3JjZGly KS9uZXh0c3RlcC9NYWtlZmlsZS5pbiAkKHNyY2RpcikvbnQvTWFrZWZpbGUuaW4gJChzcmNkaXIp L3Rlc3QvTWFrZWZpbGUuaW4gJChzcmNkaXIpL2FkbWluL2NoYXJzZXRzL01ha2VmaWxlLmluICQo c3JjZGlyKS9hZG1pbi91bmlkYXRhL01ha2VmaWxlLmluICQoc3JjZGlyKS9hZG1pbi9ncmFtbWFy cy9NYWtlZmlsZS5pbicKU1lTVEVNX1RZUEU9J3dpbmRvd3MtbnQnClNZU19USU1FX0hfREVGSU5F U19TVFJVQ1RfVElNRVNQRUM9JzAnClRFUk1DQVBfT0JKPSd0cGFyYW0ubycKVElNRV9IX0RFRklO RVNfU1RSVUNUX1RJTUVTUEVDPScxJwpUT09MS0lUX0xJQlc9JycKVUlOVDMyX01BWF9MVF9VSU5U TUFYX01BWD0nMScKVUlOVDY0X01BWF9FUV9VTE9OR19NQVg9J2RlZmluZWQgX0xQNjQnClVOREVG SU5FX1NUUlRPS19SPScwJwpVTkVYRUNfT0JKPScnClVOSVNURF9IX0RFRklORVNfU1RSVUNUX1RJ TUVTUEVDPScwJwpVTklTVERfSF9IQVZFX1NZU19SQU5ET01fSD0nMCcKVU5JU1REX0hfSEFWRV9X SU5TT0NLMl9IPScwJwpVTklTVERfSF9IQVZFX1dJTlNPQ0syX0hfQU5EX1VTRV9TT0NLRVRTPScw JwpVU0VfQUNMPScxJwpWTUxJTUlUX09CSj0nJwpXMzJfTElCUz0nIC1sd2lubW0gLWx1c3AxMCAt bGdkaTMyIC1sY29tZGxnMzIgLWxtcHIgLWx3aW5zcG9vbCAtbG9sZTMyIC1sY29tY3RsMzInClcz Ml9PQko9J3czMmZucy5vIHczMm1lbnUubyB3MzJyZWcubyB3MzJmb250Lm8gdzMydGVybS5vIHcz MnhmbnMubyB3MzJzZWxlY3QubyB3MzJ1bmlzY3JpYmUubyB3MzJjeWd3aW54Lm8gdzMyLm8gdzMy Y29uc29sZS5vIHczMmhlYXAubyB3MzJpbmV2dC5vIHczMnByb2MubyB3MzJpbWFnZS5vJwpXMzJf UkVTX0xJTks9JyQoRU1BQ1NSRVMpJwpXQVJOX0NGTEFHUz0nIC1mbm8tY29tbW9uIC1XYWxsIC1X YXJpdGgtY29udmVyc2lvbiAtV2RhdGUtdGltZSAtV2Rpc2FibGVkLW9wdGltaXphdGlvbiAtV2Rv dWJsZS1wcm9tb3Rpb24gLVdkdXBsaWNhdGVkLWNvbmQgLVdleHRyYSAtV2Zvcm1hdC1zaWduZWRu ZXNzIC1XaW5pdC1zZWxmIC1XaW52YWxpZC1wY2ggLVdsb2dpY2FsLW9wIC1XbWlzc2luZy1kZWNs YXJhdGlvbnMgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyAtV21pc3NpbmctcHJvdG90eXBlcyAtV25l c3RlZC1leHRlcm5zIC1XbnVsbC1kZXJlZmVyZW5jZSAtV29sZC1zdHlsZS1kZWZpbml0aW9uIC1X b3Blbm1wLXNpbWQgLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1Xc3RyaWN0LXByb3RvdHlwZXMg LVdzdWdnZXN0LWF0dHJpYnV0ZT1ub3JldHVybiAtV3N1Z2dlc3QtZmluYWwtbWV0aG9kcyAtV3N1 Z2dlc3QtZmluYWwtdHlwZXMgLVd0cmFtcG9saW5lcyAtV3VuaW5pdGlhbGl6ZWQgLVd1bmtub3du LXByYWdtYXMgLVd1bnVzZWQtbWFjcm9zIC1XdmFyaWFkaWMtbWFjcm9zIC1XdmVjdG9yLW9wZXJh dGlvbi1wZXJmb3JtYW5jZSAtV3dyaXRlLXN0cmluZ3MgLVdhcnJheS1ib3VuZHM9MiAtV2F0dHJp YnV0ZS1hbGlhcz0yIC1XZm9ybWF0PTIgLVdmb3JtYXQtdHJ1bmNhdGlvbj0yIC1XaW1wbGljaXQt ZmFsbHRocm91Z2g9NSAtV3NoaWZ0LW92ZXJmbG93PTIgLVd2bGEtbGFyZ2VyLXRoYW49NDAzMSAt V25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8tb3ZlcnJpZGUtaW5pdCAtV25vLXNp Z24tY29tcGFyZSAtV25vLXR5cGUtbGltaXRzIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLWZv cm1hdC1ub25saXRlcmFsIC1Xbm8tcG9pbnRlci1zaWduJwpXQ0hBUl9UX1NVRkZJWD0nJwpXRUJL SVRfQ0ZMQUdTPScnCldFQktJVF9MSUJTPScnCldFUlJPUl9DRkxBR1M9JycKV0lER0VUX09CSj0n JwpXSU5ET1dTXzY0X0JJVF9PRkZfVD0nMCcKV0lORE9XU182NF9CSVRfU1RfU0laRT0nMScKV0lO RE9XU19TVEFUX0lOT0RFUz0nMCcKV0lORE9XU19TVEFUX1RJTUVTUEVDPScwJwpXSU5ET1dfU1lT VEVNX09CSj0nZm9udHNldC5vIGZyaW5nZS5vIGltYWdlLm8nCldJTkRSRVM9J3dpbmRyZXMnCldJ TlRfVF9TVUZGSVg9JycKWEFSR1NfTElNSVQ9Jy1zIDEwMDAwJwpYQ0JfTElCUz0nJwpYQ1JVTj0n JwpYREJFX0NGTEFHUz0nJwpYREJFX0xJQlM9JycKWEZJWEVTX0NGTEFHUz0nJwpYRklYRVNfTElC Uz0nJwpYRlRfQ0ZMQUdTPScnClhGVF9MSUJTPScnClhHU0VMT0JKPScnClhJTkVSQU1BX0NGTEFH Uz0nJwpYSU5FUkFNQV9MSUJTPScnClhNRU5VX09CSj0nJwpYTUtNRj0nJwpYT0JKPScnClhSQU5E Ul9DRkxBR1M9JycKWFJBTkRSX0xJQlM9JycKWFJFTkRFUl9MSUJTPScnClhXSURHRVRTX09CSj0n JwpYX1RPT0xLSVRfVFlQRT0nbm9uZScKYWNfY3RfQ0M9J2djYycKYWNfY3RfT0JKQz0nJwphcmNo bGliZGlyPScke2xpYmV4ZWNkaXJ9L2VtYWNzLyR7dmVyc2lvbn0vJHtjb25maWd1cmF0aW9ufScK YmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCmJpdG1hcGRpcj0nJwpidWlsZD0neDg2XzY0LXc2 NC1taW5ndzMyJwpidWlsZF9hbGlhcz0neDg2XzY0LXc2NC1taW5ndzMyJwpidWlsZF9jcHU9J3g4 Nl82NCcKYnVpbGRfb3M9J21pbmd3MzInCmJ1aWxkX3ZlbmRvcj0ndzY0JwpjYWNoZV9maWxlPScv ZGV2L251bGwnCmNhbm9uaWNhbD0neDg2XzY0LXc2NC1taW5ndzMyJwpjb21tYV9zcGFjZV92ZXJz aW9uPScyOCwgMCwgNTAsIDAnCmNvbW1hX3ZlcnNpb249JzI4LDAsNTAsMCcKY29uZmlndXJhdGlv bj0neDg2XzY0LXc2NC1taW5ndzMyJwpjb3B5cmlnaHQ9J0NvcHlyaWdodCAoQykgMjAyMCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4nCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9JwpkYXRh cm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwpkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BB Q0tBR0VfVEFSTkFNRX0nCmR2aWRpcj0nJHtkb2NkaXJ9JwplbWFjc19tYWpvcl92ZXJzaW9uPScy OCcKZXRjZGlyPScke2RhdGFkaXJ9L2VtYWNzLyR7dmVyc2lvbn0vZXRjJwpldGNkb2NkaXI9JyR7 ZGF0YWRpcn0vZW1hY3MvJHt2ZXJzaW9ufS9ldGMnCmV4ZWNfcHJlZml4PScke3ByZWZpeH0nCmdh bWVkaXI9JyR7bG9jYWxzdGF0ZWRpcn0vZ2FtZXMvZW1hY3MnCmdhbWVncm91cD0nJwpnYW1ldXNl cj0nJwpnbF9HTlVMSUJfRU5BQkxFRF8wM2UwYWFhZDRjYjg5Y2E3NTc2NTNiZDM2N2E2Y2NiNz0n JwpnbF9HTlVMSUJfRU5BQkxFRF8yNjA5NDFjMGU1ZGM2N2VjOWU4N2QxZmIzMjFjMzAwYj0nJwpn bF9HTlVMSUJfRU5BQkxFRF81MjY0Mjk0YWEwYTU1NTc1NDFiNTNjOGM3NDFmN2YzMT0nMScKZ2xf R05VTElCX0VOQUJMRURfNjA5OWU5NzM3Zjc1N2RiMzZjNDdmYTlkOWYwMmU4OGM9JycKZ2xfR05V TElCX0VOQUJMRURfNjgyZTYwOTYwNGNjYWFjNmJlMzgyZTRlZTNhNGVhZWM9JycKZ2xfR05VTElC X0VOQUJMRURfYTk3ODY4NTBlOTk5YWU2NWE4MzZhNjA0MWU4ZTVlZDE9JycKZ2xfR05VTElCX0VO QUJMRURfYmU0NTNjZWM1ZWVjZjU3MzFhMjc0ZjJkZTdmMmRiMzY9JzEnCmdsX0dOVUxJQl9FTkFC TEVEX2Nsb2V4ZWM9JycKZ2xfR05VTElCX0VOQUJMRURfZGlyZmQ9JycKZ2xfR05VTElCX0VOQUJM RURfZXVpZGFjY2Vzcz0nJwpnbF9HTlVMSUJfRU5BQkxFRF9nZXRkdGFibGVzaXplPScnCmdsX0dO VUxJQl9FTkFCTEVEX2dldGdyb3Vwcz0nJwpnbF9HTlVMSUJfRU5BQkxFRF9sY2htb2Q9JycKZ2xf R05VTElCX0VOQUJMRURfbWFsbG9jYT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9vcGVuPScnCmdsX0dO VUxJQl9FTkFCTEVEX3N0cnRvbGw9JycKZ2xfR05VTElCX0VOQUJMRURfdXRpbWVucz0nJwpnbF9M SUJPQkpTPScgYWNsX2VudHJpZXMubyBleGVjaW5mby5vIGZwZW5kaW5nLm8gZ2V0b3B0Lm8gZ2V0 b3B0MS5vIGdldHJhbmRvbS5vIGdldHRpbWVvZmRheS5vIG1lbW1lbS5vIG1lbXJjaHIubyBta29z dGVtcC5vIG1rdGltZS5vIHJlZ2V4Lm8gc2lnMnN0ci5vIHNpZ2Rlc2NyX25wLm8gc3RwY3B5Lm8g dGltZV9yLm8gdGltZV9yei5vIHRpbWVnbS5vJwpnbF9MVExJQk9CSlM9JyBhY2xfZW50cmllcy5s byBleGVjaW5mby5sbyBmcGVuZGluZy5sbyBnZXRvcHQubG8gZ2V0b3B0MS5sbyBnZXRyYW5kb20u bG8gZ2V0dGltZW9mZGF5LmxvIG1lbW1lbS5sbyBtZW1yY2hyLmxvIG1rb3N0ZW1wLmxvIG1rdGlt ZS5sbyByZWdleC5sbyBzaWcyc3RyLmxvIHNpZ2Rlc2NyX25wLmxvIHN0cGNweS5sbyB0aW1lX3Iu bG8gdGltZV9yei5sbyB0aW1lZ20ubG8nCmdsdGVzdHNfTElCT0JKUz0nJwpnbHRlc3RzX0xUTElC T0JKUz0nJwpnbHRlc3RzX1dJVE5FU1M9J0lOX0VNQUNTX0dOVUxJQl9URVNUUycKaG9zdD0neDg2 XzY0LXc2NC1taW5ndzMyJwpob3N0X2FsaWFzPScnCmhvc3RfY3B1PSd4ODZfNjQnCmhvc3Rfb3M9 J21pbmd3MzInCmhvc3RfdmVuZG9yPSd3NjQnCmh0bWxkaXI9JyR7ZG9jZGlyfScKaW5jbHVkZWRp cj0nJHtwcmVmaXh9L2luY2x1ZGUnCmluZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCmxpYmRp cj0nJHtleGVjX3ByZWZpeH0vbGliJwpsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVj JwpsaWJsb2NrZmlsZT0nbm8nCmxpc3BkaXI9JyR7ZGF0YWRpcn0vZW1hY3MvJHt2ZXJzaW9ufS9s aXNwJwpsaXNwZGlycmVsPScke3ZlcnNpb259L2xpc3AnCmxpc3BwYXRoPScke2xvY2FsbGlzcHBh dGh9OiR7c3RhbmRhcmRsaXNwcGF0aH0nCmxvY2FsZWRpcj0nJHtkYXRhcm9vdGRpcn0vbG9jYWxl Jwpsb2NhbGxpc3BwYXRoPScke2RhdGFkaXJ9L2VtYWNzLyR7dmVyc2lvbn0vc2l0ZS1saXNwOiR7 ZGF0YWRpcn0vZW1hY3Mvc2l0ZS1saXNwJwpsb2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJwpt YW5kaXI9JyR7ZGF0YXJvb3RkaXJ9L21hbicKbnNfYXBwYmluZGlyPScnCm5zX2FwcGRpcj0nJwpu c19hcHByZXNkaXI9JycKbnNfYXBwc3JjPScnCm5zX2NoZWNrX2ZpbGU9JycKbnNfc2VsZl9jb250 YWluZWQ9J25vJwpvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUnCnBkZmRpcj0nJHtkb2NkaXJ9 JwpwcmVmaXg9Jy9ob21lL1ZXaW5Vc2VyMC9Eb3dubG9hZHMvZW1hY3MvbmF0aXZlLWNvbXAvYnVp bHQnCnByb2dyYW1fdHJhbnNmb3JtX25hbWU9J3MseCx4LCcKcHNkaXI9JyR7ZG9jZGlyfScKc2Jp bmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20n CnNyY2Rpcj0nLi4vc3JjJwpzdGFuZGFyZGxpc3BwYXRoPScke2xpc3BkaXJ9JwpzeXNjb25mZGly PScke3ByZWZpeH0vZXRjJwp0YXJnZXRfYWxpYXM9JycKdmVyc2lvbj0nMjguMC41MCcKd2l0aF9t YWlsdXRpbHM9JycKeF9kZWZhdWx0X3NlYXJjaF9wYXRoPScnCgojIyAtLS0tLS0tLS0tLS0tLS0t LS0tICMjCiMjIEZpbGUgc3Vic3RpdHV0aW9ucy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAj IwoKbW9kdWxlX2Vudl9zbmlwcGV0XzI1PScuLi9zcmMvc3JjL21vZHVsZS1lbnYtMjUuaCcKbW9k dWxlX2Vudl9zbmlwcGV0XzI2PScuLi9zcmMvc3JjL21vZHVsZS1lbnYtMjYuaCcKbW9kdWxlX2Vu dl9zbmlwcGV0XzI3PScuLi9zcmMvc3JjL21vZHVsZS1lbnYtMjcuaCcKbW9kdWxlX2Vudl9zbmlw cGV0XzI4PScuLi9zcmMvc3JjL21vZHVsZS1lbnYtMjguaCcKCiMjIC0tLS0tLS0tLS0tICMjCiMj IGNvbmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0tICMjCgovKiBjb25mZGVmcy5oICovCiNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCiNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFj cyIKI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCiNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251 LWVtYWNzQGdudS5vcmciCiNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZW1hY3MvIgojZGVmaW5lIE1BSUxfVVNFX1BPUCAxCiNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKI2RlZmluZSBTVERDX0hFQURFUlMgMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQoj ZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxCiNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCiNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQojZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CiNkZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZpbmUgX19FWFRFTlNJT05TX18gMQojZGVmaW5l IF9BTExfU09VUkNFIDEKI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKI2RlZmluZSBfR05VX1NP VVJDRSAxCiNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQojZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAx CiNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCiNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQojZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQojZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCiNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQojZGVmaW5lIF9G SUxFX09GRlNFVF9CSVRTIDY0CiNkZWZpbmUgR0NDX0xJTlQgMQojZGVmaW5lIFNZU1RFTV9UWVBF ICJ3aW5kb3dzLW50IgojZGVmaW5lIEhBVkVfTU1TWVNURU1fSCAxCiNkZWZpbmUgSEFWRV9TT1VO RCAxCiNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCiNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAx CiNkZWZpbmUgSEFWRV9QV0RfSCAxCiNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQojZGVmaW5l IEhBVkVfU1RETElCX0ggMQojZGVmaW5lIEhBVkVfVU5JU1REX0ggMQojZGVmaW5lIEhBVkVfU1lT X1BBUkFNX0ggMQojZGVmaW5lIEhBVkVfRElSRU5UX0ggMQojZGVmaW5lIEhBVkVfU1lTX0NERUZT X0ggMQojZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCiNkZWZpbmUgSEFWRV9MSU1JVFNfSCAxCiNk ZWZpbmUgSEFWRV9XQ0hBUl9IIDEKI2RlZmluZSBIQVZFX1NURElOVF9IIDEKI2RlZmluZSBIQVZF X0lOVFRZUEVTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCiNkZWZpbmUgVElNRV9XSVRI X1NZU19USU1FIDEKI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQojZGVmaW5lIEhBVkVfTlRHVUkg MQojZGVmaW5lIEhBVkVfTkFUSVZFX0lNQUdFX0FQSSAxCiNkZWZpbmUgU1lTVEVNX01BTExPQyAx CiNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxCiNkZWZpbmUgVVNFX01NQVBfRk9SX0JVRkZFUlMg MQojZGVmaW5lIFRIUkVBRFNfRU5BQkxFRCAxCiNkZWZpbmUgSEFWRV9SU1ZHIDEKI2RlZmluZSBI QVZFX0dOVVRMUyAxCiNkZWZpbmUgSEFWRV9KU09OIDEKI2RlZmluZSBIQVZFX1czMk5PVElGWSAx CiNkZWZpbmUgVVNFX0ZJTEVfTk9USUZZIDEKI2RlZmluZSBVU0VfVE9PTEtJVF9TQ1JPTExfQkFS UyAxCiNkZWZpbmUgVVNFX1hJTSAxCiNkZWZpbmUgSEFWRV9IQVJGQlVaWiAxCiNkZWZpbmUgSEFW RV9YUE0gMQojZGVmaW5lIEhBVkVfSlBFRyAxCiNkZWZpbmUgSEFWRV9MQ01TMiAxCiNkZWZpbmUg SEFWRV9aTElCIDEKI2RlZmluZSBIQVZFX01PRFVMRVMgMQojZGVmaW5lIE1PRFVMRVNfU1VGRklY ICIuZGxsIgojZGVmaW5lIEhBVkVfTElCR0NDSklUIDEKI2RlZmluZSBIQVZFX0xJQkdDQ0pJVF9I IDEKI2RlZmluZSBIQVZFX05BVElWRV9DT01QIDEKI2RlZmluZSBOQVRJVkVfRUxJU1BfU1VGRklY ICIuZWxuIgojZGVmaW5lIEhBVkVfUE5HIDEKI2RlZmluZSBIQVZFX1RJRkYgMQojZGVmaW5lIEhB VkVfR0lGIDEKI2RlZmluZSBIQVZFX0xJQlhNTDIgMQojZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUg MQojZGVmaW5lIEhBVkVfUkFORE9NIDEKI2RlZmluZSBIQVZFX1JJTlQgMQojZGVmaW5lIEhBVkVf VFJVTkMgMQojZGVmaW5lIEhBVkVfU0VMRUNUIDEKI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDEK I2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCiNkZWZpbmUgSEFWRV9HRVRSTElNSVQgMQojZGVmaW5l IEhBVkVfU0VUUkxJTUlUIDEKI2RlZmluZSBIQVZFX1NIVVRET1dOIDEKI2RlZmluZSBIQVZFX1BU SFJFQURfU0lHTUFTSyAxCiNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQojZGVmaW5lIEhBVkVfU0VU SVRJTUVSIDEKI2RlZmluZSBIQVZFX1NFTkRUTyAxCiNkZWZpbmUgSEFWRV9SRUNWRlJPTSAxCiNk ZWZpbmUgSEFWRV9HRVRTT0NLTkFNRSAxCiNkZWZpbmUgSEFWRV9HQUlfU1RSRVJST1IgMQojZGVm aW5lIEhBVkVfTE9HMiAxCiNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQojZGVmaW5l IEhBVkVfREVDTF9BTElHTkVEX0FMTE9DIDAKI2RlZmluZSBIQVZFX19fQlVJTFRJTl9GUkFNRV9B RERSRVNTIDEKI2RlZmluZSBIQVZFX19fQlVJTFRJTl9VTldJTkRfSU5JVCAxCiNkZWZpbmUgSEFW RV9GU0VFS08gMQojZGVmaW5lIEhBVkVfU0JSSyAxCiNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVf RklMRV9OQU1FIDEKI2RlZmluZSBIQVZFX1JFQURMSU5LIDEKI2RlZmluZSBIQVZFX1JFQURMSU5L QVQgMQojZGVmaW5lIEhBVkVfRVhQTElDSVRfQlpFUk8gMQojZGVmaW5lIEhBVkVfRkFDQ0VTU0FU IDEKI2RlZmluZSBIQVZFX0ZDSE1PREFUIDEKI2RlZmluZSBIQVZFX0xDSE1PRCAxCiNkZWZpbmUg SEFWRV9GQ05UTCAxCiNkZWZpbmUgSEFWRV9GU1RBVEFUIDEKI2RlZmluZSBIQVZFX0ZTWU5DIDEK I2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxCiNkZWZpbmUgSEFWRV9MU1RBVCAxCiNkZWZpbmUg SEFWRV9QSVBFMiAxCiNkZWZpbmUgSEFWRV9QU0VMRUNUIDEKI2RlZmluZSBIQVZFX0lTQkxBTksg MQojZGVmaW5lIEhBVkVfSVNXQ1RZUEUgMQojZGVmaW5lIEhBVkVfU1RSVE9JTUFYIDEKI2RlZmlu ZSBIQVZFX1NZTUxJTksgMQojZGVmaW5lIEhBVkVfVVRJTUVOU0FUIDEKI2RlZmluZSB2Zm9yayBm b3JrCiNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCiNkZWZpbmUgSEFWRV9MQU5HSU5GT19DT0RFU0VU IDEKI2RlZmluZSBIQVZFX0xBTkdJTkZPX19OTF9QQVBFUl9XSURUSCAxCiNkZWZpbmUgSEFWRV9N QlNUQVRFX1QgMQojZGVmaW5lIEhBVkVfU09DS0VUUyAxCiNkZWZpbmUgTlVMTF9ERVZJQ0UgIk5V TDoiCiNkZWZpbmUgU0VQQ0hBUiAnOycKI2RlZmluZSBzdWJwcm9jZXNzZXMgMQojZGVmaW5lIFVT RVJfRlVMTF9OQU1FIHB3LT5wd19nZWNvcwojZGVmaW5lIERJUkVDVE9SWV9TRVAgJy8nCiNkZWZp bmUgSVNfREVWSUNFX1NFUChfY18pICgoX2NfKSA9PSAnOicpCiNkZWZpbmUgSVNfRElSRUNUT1JZ X1NFUChfY18pICgoX2NfKSA9PSAnLycgfHwgKF9jXykgPT0gJ1xcJykKI2RlZmluZSBJU19BTllf U0VQKF9jXykgKElTX0RJUkVDVE9SWV9TRVAgKF9jXykgfHwgSVNfREVWSUNFX1NFUChfY18pKQoj ZGVmaW5lIERFRkFVTFRfU09VTkRfREVWSUNFICIvZGV2L2RzcCIKI2RlZmluZSBHQ19TRVRKTVBf V09SS1MgMQojZGVmaW5lIEhBVkVfU1RBQ0tfT1ZFUkZMT1dfSEFORExJTkcgMQojZGVmaW5lIERP U19OVCAvKiovCiNkZWZpbmUgV0lORE9XU05UIDEKI2RlZmluZSBVU0FCTEVfRklPTlJFQUQgMQoj ZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLiIKI2RlZmluZSBURVJNX0hFQURFUiAidzMydGVybS5oIgojZGVmaW5lIEVNQUNT X0NPTkZJR1VSQVRJT04gIng4Nl82NC13NjQtbWluZ3czMiIKI2RlZmluZSBFTUFDU19DT05GSUdf T1BUSU9OUyAiLS1wcmVmaXg9L2hvbWUvVldpblVzZXIwL0Rvd25sb2Fkcy9lbWFjcy9uYXRpdmUt Y29tcC9idWlsdCAtLXdpdGgtbmF0aXZlY29tcCIKI2RlZmluZSBIQVZFX1NUUlVDVF9BVFRSSUJV VEVfQUxJR05FRCAxCiNkZWZpbmUgSEFWRV9UWVBFT0YgMQojZGVmaW5lIEhBVkVfU1RBVEVNRU5U X0VYUFJFU1NJT05TIDEKI2RlZmluZSBIQVZFX0FMTE9DQSAxCiNkZWZpbmUgRE9VQkxFX1NMQVNI X0lTX0RJU1RJTkNUX1JPT1QgMQojZGVmaW5lIEZVTkNfUkVBTFBBVEhfV09SS1MgMQojZGVmaW5l IHJlc3RyaWN0IF9fcmVzdHJpY3QKI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCiNkZWZpbmUg TFNUQVRfRk9MTE9XU19TTEFTSEVEX1NZTUxJTksgMQojZGVmaW5lIEhBVkVfREVDTF9TVFJNT0RF IDAKI2RlZmluZSBIQVZFX0xPTkdfTE9OR19JTlQgMQojZGVmaW5lIEhBVkVfVU5TSUdORURfTE9O R19MT05HX0lOVCAxCiNkZWZpbmUgSEFWRV9ERUNMX01FTU1FTSAwCiNkZWZpbmUgSEFWRV9ERUNM X01FTVJDSFIgMAojZGVmaW5lIFRJTUVfVF9JU19TSUdORUQgMQojZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAxCiNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAxCiNkZWZpbmUgSEFWRV9UWk5BTUUgMQoj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQojZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMQojZGVm aW5lIEhBVkVfV0NIQVJfVCAxCiNkZWZpbmUgSEFWRV9ERUNMX1NUUk5MRU4gMQojZGVmaW5lIEhB VkVfREVDTF9TVFJUT0lNQVggMQojZGVmaW5lIF9VU0VfU1REX1NUQVQgMQojZGVmaW5lIEhBVkVf REVDTF9DTEVBUkVSUl9VTkxPQ0tFRCAwCiNkZWZpbmUgSEFWRV9ERUNMX0ZFT0ZfVU5MT0NLRUQg MAojZGVmaW5lIEhBVkVfREVDTF9GRVJST1JfVU5MT0NLRUQgMAojZGVmaW5lIEhBVkVfREVDTF9G RkxVU0hfVU5MT0NLRUQgMAojZGVmaW5lIEhBVkVfREVDTF9GR0VUU19VTkxPQ0tFRCAwCiNkZWZp bmUgSEFWRV9ERUNMX0ZQVVRDX1VOTE9DS0VEIDAKI2RlZmluZSBIQVZFX0RFQ0xfRlBVVFNfVU5M T0NLRUQgMAojZGVmaW5lIEhBVkVfREVDTF9GUkVBRF9VTkxPQ0tFRCAwCiNkZWZpbmUgSEFWRV9E RUNMX0ZXUklURV9VTkxPQ0tFRCAwCiNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAoj ZGVmaW5lIEhBVkVfREVDTF9HRVRDSEFSX1VOTE9DS0VEIDAKI2RlZmluZSBIQVZFX0RFQ0xfUFVU Q19VTkxPQ0tFRCAwCiNkZWZpbmUgSEFWRV9ERUNMX1BVVENIQVJfVU5MT0NLRUQgMAojZGVmaW5l IEdFVEdST1VQU19UIGludAojZGVmaW5lIEhBVkVfREVDTF9HRVREVEFCTEVTSVpFIDAKI2RlZmlu ZSBQUk9NT1RFRF9NT0RFX1QgaW50CiNkZWZpbmUgSEFWRV9TWVNfQUNMX0ggMQojZGVmaW5lIEhB VkVfQUNMX0dFVF9GSUxFIDEKI2RlZmluZSBIQVZFX0FDTF9TRVRfRklMRSAxCiNkZWZpbmUgSEFW RV9BQ0xfRlJFRSAxCiNkZWZpbmUgSEFWRV9BQ0xfRlJPTV9URVhUIDEKI2RlZmluZSBVU0VfQUNM IDEKI2RlZmluZSBIQVZFX19fQlVJTFRJTl9FWFBFQ1QgMQojZGVmaW5lIEdOVUxJQl9DQU5PTklD QUxJWkVfTEdQTCAxCiNkZWZpbmUgR05VTElCX0NMT1NFX1NUUkVBTSAxCiNkZWZpbmUgRE9VQkxF X1NMQVNIX0lTX0RJU1RJTkNUX1JPT1QgMQojZGVmaW5lIEdOVUxJQl9GQUNDRVNTQVQgMQojZGVm aW5lIEhBVkVfREVDTF9GRE9QRU5ESVIgMAojZGVmaW5lIEdOVUxJQl9GRE9QRU5ESVIgMQojZGVm aW5lIEZMRVhJQkxFX0FSUkFZX01FTUJFUiAvKiovCiNkZWZpbmUgX19HRVRPUFRfUFJFRklYIHJw bF8KI2RlZmluZSBIQVZFX0JDUllQVF9IIDEKI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUg dm9pZAojZGVmaW5lIF9HTF9SRVBMQUNFX0lFRUU3NTRfSCAxCiNkZWZpbmUgSEFWRV9fX0lOTElO RSAxCiNkZWZpbmUgSEFWRV9HTVBfSCAxCiNkZWZpbmUgSEFWRV9NRU1QQ1BZIDEKI2RlZmluZSBH TlVMSUJfTUtPU1RFTVAgMQojZGVmaW5lIE5FRURfTUtUSU1FX1dJTkRPV1MgMQojZGVmaW5lIG15 X3N0cmZ0aW1lIG5zdHJmdGltZQojZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKI2Rl ZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCiNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMgcnBs X3JlX3N5bnRheF9vcHRpb25zCiNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRh eAojZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCiNkZWZp bmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKI2RlZmluZSByZV9z ZWFyY2ggcnBsX3JlX3NlYXJjaAojZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgoj ZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAojZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21h dGNoXzIKI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCiNkZWZp bmUgcmVfY29tcCBycGxfcmVfY29tcAojZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKI2RlZmlu ZSByZWdjb21wIHJwbF9yZWdjb21wCiNkZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwojZGVmaW5l IHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgojZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKI2RlZmlu ZSBIQVZFX0xJQklOVExfSCAxCiNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMQojZGVmaW5lIF9f VVNFX01JTkdXX0FOU0lfU1RESU8gMQojZGVmaW5lIEdOVUxJQl9QUklOVEZfQVRUUklCVVRFX0ZM QVZPUl9HTlUgMQojZGVmaW5lIEdOVUxJQl9GU0NBTkYgMQojZGVmaW5lIEdOVUxJQl9TQ0FORiAx CiNkZWZpbmUgbmxpbmtfdCBpbnQKI2RlZmluZSBHTlVMSUJfVEVNUE5BTUUgMQojZGVmaW5lIEhB VkVfREVDTF9MT0NBTFRJTUVfUiAwCiNkZWZpbmUgVVNFX1VOTE9DS0VEX0lPIDEKI2RlZmluZSBI QVZFX0NfVkFSQVJSQVlTIDEKI2RlZmluZSBORUVEX01LVElNRV9JTlRFUk5BTCAxCiNkZWZpbmUg SEFWRV9XSU5ET1dfU1lTVEVNIDEKI2RlZmluZSBQT0xMX0ZPUl9JTlBVVCAxCiNkZWZpbmUgRU1B Q1NfQ09ORklHX0ZFQVRVUkVTICJYUE0gSlBFRyBUSUZGIEdJRiBQTkcgUlNWRyBTT1VORCBOT1RJ RlkgVzMyTk9USUZZIEFDTCBHTlVUTFMgTElCWE1MMiBIQVJGQlVaWiBaTElCIFRPT0xLSVRfU0NS T0xMX0JBUlMgTU9EVUxFUyBOQVRJVkVfQ09NUCBUSFJFQURTIEpTT04gUERVTVBFUiBMQ01TMiIK CmNvbmZpZ3VyZTogZXhpdCAwCg== --0000000000002bd70905b6af05ab-- From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 15:57:35 2020 Received: (at 45303) by debbugs.gnu.org; 17 Dec 2020 20:57:36 +0000 Received: from localhost ([127.0.0.1]:37143 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq0L9-0006KG-LP for submit@debbugs.gnu.org; Thu, 17 Dec 2020 15:57:35 -0500 Received: from mab.sdf.org ([205.166.94.33]:52012 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq0L5-0006K1-De for 45303@debbugs.gnu.org; Thu, 17 Dec 2020 15:57:34 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kq0L3-0006E8-3E; Thu, 17 Dec 2020 20:57:29 +0000 From: Andrea Corallo To: gongyi.liao@gmail.com Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: Date: Thu, 17 Dec 2020 20:57:29 +0000 In-Reply-To: (=?utf-8?B?IkxpxIF1LCBLaW9uZy1HxJMg5buW5a6u5q+FIidz?= message of "Thu, 17 Dec 2020 14:41:34 -0600") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "Li=C4=81u, Kiong-G=C4=93 =E5=BB=96=E5=AE=AE=E6=AF=85" writes: > the attached file is the config.log file I've pushed 174f2a92eb, could you please have a try? I've no windows machi= ne on to test it myself. Thanks! Andrea PS which version of GCC are you on? PPS could you post the full log of the compilation next time? You get warnings I'dont get but the output is cutted. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 16:03:06 2020 Received: (at 45303) by debbugs.gnu.org; 17 Dec 2020 21:03:06 +0000 Received: from localhost ([127.0.0.1]:37151 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq0QU-0006Xc-IL for submit@debbugs.gnu.org; Thu, 17 Dec 2020 16:03:06 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq0QT-0006X5-UX for 45303@debbugs.gnu.org; Thu, 17 Dec 2020 16:03:06 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60162) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kq0QO-0002EW-NK; Thu, 17 Dec 2020 16:03:00 -0500 Received: from [176.228.60.248] (port=1183 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kq0QN-0000Kf-Oa; Thu, 17 Dec 2020 16:03:00 -0500 Date: Thu, 17 Dec 2020 23:02:58 +0200 Message-Id: <838s9w6t8d.fsf@gnu.org> From: Eli Zaretskii To: Andrea Corallo In-Reply-To: (bug-gnu-emacs@gnu.org) Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: gongyi.liao@gmail.com, 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 17 Dec 2020 20:57:29 +0000 > Cc: 45303@debbugs.gnu.org > From: Andrea Corallo via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > I've pushed 174f2a92eb, could you please have a try? I've no windows machine on > to test it myself. Don't you need to update also the epaths-force-w32 target in Makefile.in? From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 16:11:01 2020 Received: (at 45303) by debbugs.gnu.org; 17 Dec 2020 21:11:01 +0000 Received: from localhost ([127.0.0.1]:37160 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq0Y8-0006ne-Sp for submit@debbugs.gnu.org; Thu, 17 Dec 2020 16:11:01 -0500 Received: from mab.sdf.org ([205.166.94.33]:59190 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq0Y6-0006nU-P8 for 45303@debbugs.gnu.org; Thu, 17 Dec 2020 16:10:59 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kq0Y5-0006ta-52; Thu, 17 Dec 2020 21:10:57 +0000 From: Andrea Corallo To: Eli Zaretskii Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> Date: Thu, 17 Dec 2020 21:10:57 +0000 In-Reply-To: <838s9w6t8d.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 17 Dec 2020 23:02:58 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: gongyi.liao@gmail.com, 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Date: Thu, 17 Dec 2020 20:57:29 +0000 >> Cc: 45303@debbugs.gnu.org >> From: Andrea Corallo via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >> >> I've pushed 174f2a92eb, could you please have a try? I've no windows machine on >> to test it myself. > > Don't you need to update also the epaths-force-w32 target in > Makefile.in? Uops, pushed 87f6e93799 thanks Andrea From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 16:28:01 2020 Received: (at 45303) by debbugs.gnu.org; 17 Dec 2020 21:28:01 +0000 Received: from localhost ([127.0.0.1]:37177 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq0oa-0007M0-Tu for submit@debbugs.gnu.org; Thu, 17 Dec 2020 16:28:01 -0500 Received: from mail-ej1-f43.google.com ([209.85.218.43]:39839) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq0oX-0007Lh-V0 for 45303@debbugs.gnu.org; Thu, 17 Dec 2020 16:27:59 -0500 Received: by mail-ej1-f43.google.com with SMTP id n26so158088eju.6 for <45303@debbugs.gnu.org>; Thu, 17 Dec 2020 13:27:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=keHwuglAfDYRUmb9b0TPWPNVor/IGgCpxrvw/NTAiUk=; b=gzyODp6vZhmPBkdEXyhkZyZcxSM+H8UL8Qui7Ia7UqsHRRjPtcQQXGoy7192t2wQC+ 3dxSOqIKug32IatyA0EKx+k7xxDbp+ALl2SkmxUd8QPXob2P9WO8C4938zA5RKsjGNFW GcTm2hQSeqed+0mt3WJQLji5fPl77a+fAK3AHNRiWXjkCLAg6JscW70txmEEt412LRkw 08n8aFSFdPMEdOmd7EZWmuqKO2proMlx5hxmyWEUhR6dHUot3oAasY/oV7MCEYdXk/8r XvzvKn5o0ex2BKTCJj1pspF3F+eFGgwdD5XgYxoNzaCmB/DF1zl1JzYF1xrsZCfzKc8e R6JA== 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=keHwuglAfDYRUmb9b0TPWPNVor/IGgCpxrvw/NTAiUk=; b=JlZPczgs4AlXnv3L9rUzIeip/UjfvoGVPgI9ozxG7hnF0hmJM4yUhlZRwB1QrKsy2U awL58PmIfrgezW30pTp0KvxcMRUFInt5Y41tuFB3J4RoHiG+8kMHSTgw0batd8VIgX1K JN4IJfKx/yWsDAkjaQNJclaBc9uCVGORdc60o7Zbskue1CRn8eNHFC75x+xGh+R6iNYg wNVsbR12wcteJnLfRieKldnutjyCAOUG67v34tJJpQjAuo1g+ww26RJSaDJ35pxHHjy3 0Y50iTNO+12JJGaLIiOBMusxaZfSCiAwyl4ebEqbQ7me5KykWGL5EDYDSE0zCKsx6LDy wWQA== X-Gm-Message-State: AOAM5302t6PXpWsNmU/xcAtaywNuEv6+/fD1lVpDt9VOoFQ1heVvyzta oJUOMgy/VhmcnZ0CSCTDuVBU68hxrZYNFW3GB7s= X-Google-Smtp-Source: ABdhPJy11jwEIpm4D8qFNvwW8NgELpg5j+Gy6D2TNiVU9/R0gTUOFtykFcpvMDOgCBY9kOg/xXACV3zFRPJGQTlL2TI= X-Received: by 2002:a17:906:af79:: with SMTP id os25mr966215ejb.275.1608240472121; Thu, 17 Dec 2020 13:27:52 -0800 (PST) MIME-Version: 1.0 References: <838s9w6t8d.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Thu, 17 Dec 2020 15:27:40 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: Andrea Corallo Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: Eli Zaretskii , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) commit 87f6e93799 lead to successful compilation of comp.c, but lead to linker errors while generating temacs.exe: CCLD temacs.exe C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: comp.o: in function `md5_gz_stream': C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:713: undefined reference to `inflateInit2_' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:730: undefined reference to `inflate' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:741: undefined reference to `inflateEnd' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:741: undefined reference to `inflateEnd' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: comp.o: in function `declare_imported_func': C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:973: undefined reference to `gcc_jit_type_get_const' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: process.o: in function `status_message': C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/process.c:754: undefined reference to `strsignal' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: callproc.o: in function `call_process': C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/callproc.c:916: undefined reference to `strsignal' collect2.exe: error: ld returned 1 exit status make[1]: *** [Makefile:661: temacs.exe] Error 1 make[1]: Leaving directory '/home/VWinUser0/Downloads/emacs/native-comp/build/src' make: *** [Makefile:434: src] Error 2 On Thu, Dec 17, 2020 at 3:10 PM Andrea Corallo wrote: > > Eli Zaretskii writes: > > >> Date: Thu, 17 Dec 2020 20:57:29 +0000 > >> Cc: 45303@debbugs.gnu.org > >> From: Andrea Corallo via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" > >> > >> I've pushed 174f2a92eb, could you please have a try? I've no windows machine on > >> to test it myself. > > > > Don't you need to update also the epaths-force-w32 target in > > Makefile.in? > > Uops, pushed 87f6e93799 thanks > > Andrea > From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 16:41:49 2020 Received: (at 45303) by debbugs.gnu.org; 17 Dec 2020 21:41:49 +0000 Received: from localhost ([127.0.0.1]:37193 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq11w-0007nY-Ok for submit@debbugs.gnu.org; Thu, 17 Dec 2020 16:41:48 -0500 Received: from mab.sdf.org ([205.166.94.33]:47830 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kq11t-0007nP-Tp for 45303@debbugs.gnu.org; Thu, 17 Dec 2020 16:41:48 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kq11s-0002fC-AR; Thu, 17 Dec 2020 21:41:44 +0000 From: Andrea Corallo To: =?utf-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> Date: Thu, 17 Dec 2020 21:41:44 +0000 In-Reply-To: (=?utf-8?B?IkxpxIF1LCBLaW9uZy1HxJMg5buW5a6u5q+FIidz?= message of "Thu, 17 Dec 2020 15:27:40 -0600") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: Eli Zaretskii , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "Li=C4=81u, Kiong-G=C4=93 =E5=BB=96=E5=AE=AE=E6=AF=85" writes: > commit 87f6e93799 lead to successful compilation of comp.c, but lead > to linker errors while generating temacs.exe: > > > CCLD temacs.exe > C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x8= 6_64-w64-mingw32/bin/ld.exe: > comp.o: in function `md5_gz_stream': > C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/= src/comp.c:713: > undefined reference to `inflateInit2_' > C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x8= 6_64-w64-mingw32/bin/ld.exe: > C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/= src/comp.c:730: > undefined reference to `inflate' That's curious, looks you've not zlib but from the config.log you do... Closing the day and will think about that tomorrow, perhaps someone will suggest what I'm missing in the meanwhile. Andrea From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 08:28:25 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 13:28:25 +0000 Received: from localhost ([127.0.0.1]:38134 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqFo1-0007Ss-JM for submit@debbugs.gnu.org; Fri, 18 Dec 2020 08:28:25 -0500 Received: from mab.sdf.org ([205.166.94.33]:50286 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqFnz-0007Sk-Qx for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 08:28:24 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kqFnw-0004ab-Vk; Fri, 18 Dec 2020 13:28:21 +0000 From: Andrea Corallo To: Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> Date: Fri, 18 Dec 2020 13:28:20 +0000 In-Reply-To: (Andrea Corallo via's message of "Thu, 17 Dec 2020 21:41:44 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: =?us-ascii?Q?=3D=3FUTF-8=3FQ=3FLi=3DC4=3D81u?=@debbugs.gnu.org, _?= =?utf-8?B?S2lvbmctR8STIOW7luWuruavhQ==?= , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: > "Li=C4=81u, Kiong-G=C4=93 =E5=BB=96=E5=AE=AE=E6=AF=85" writes: > >> commit 87f6e93799 lead to successful compilation of comp.c, but lead >> to linker errors while generating temacs.exe: >> >> >> CCLD temacs.exe >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x= 86_64-w64-mingw32/bin/ld.exe: >> comp.o: in function `md5_gz_stream': >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src= /src/comp.c:713: >> undefined reference to `inflateInit2_' >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x= 86_64-w64-mingw32/bin/ld.exe: >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src= /src/comp.c:730: >> undefined reference to `inflate' > > That's curious, looks you've not zlib but from the config.log you do... I really would like to understand what's going on here. We check in configure for zlib presence, actually this is also require by --with-nativecomp but somehow the linker fails to find it. Is zlib installed in your system? If yes could you post the full output of 'make V=3D1'? Thanks Andrea From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 10:40:29 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 15:40:29 +0000 Received: from localhost ([127.0.0.1]:39677 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqHrn-0004ts-GA for submit@debbugs.gnu.org; Fri, 18 Dec 2020 10:40:29 -0500 Received: from mout.gmx.net ([212.227.15.18]:38453) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqDhi-0008Aa-SG for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 06:13:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608290020; bh=ENhY9mCGNHGsUJGhTlZUEuyoJZuzWpZgf1UZirqGAkk=; h=X-UI-Sender-Class:From:To:Subject:Date; b=LXpgTD9S6DtpE/hWTVnPzP9SdZewov7j/U6YIm1lF2cIyCifdT85035zQjwBSYuIp tdjOdRczuN12hMeDYrq74obZu2MiKSofO8AQeORuaT7LpqbXi7OHkCcGSdoP0pVxRl ABaIfT/EkPGQzMcMGQkKc4SEKPBogQfCOPhNv+5Q= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [185.84.24.1] ([185.84.24.1]) by web-mail.gmx.net (3c-app-mailcom-bs08.server.lan [172.19.170.176]) (via HTTP); Fri, 18 Dec 2020 12:13:40 +0100 MIME-Version: 1.0 Message-ID: From: Pal Gloss To: 45303@debbugs.gnu.org Subject: #45303 [feature/native-comp] building error on Windows Content-Type: text/html; charset=UTF-8 Date: Fri, 18 Dec 2020 12:13:40 +0100 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:ZFbj81L/8JM1UOMSBMuWsAKiMckOHm+rIFLmowkXK+jAiWbcbKxAwHodq/lzLogErU/dt 6Vyb55DEMki7ITY7UGdkiwYey6HQJEIvyOqtULX+RShiRpWIzyBDUoPAbdXwlfFZ9lj/oKDaFqNj +9OLunYkcVP/fmBXL3yB4u62ksaiJ22BIhTQH+VPXbZnvm5kia2srbGdX5ADIsEGg2pyjpRh4zoh oGO4SMqbm3o+72gLAogVjeW5f1eIQvTXi+Lg8aoOeAkWMkUinxMOsU9uYoM0Ph4cZrVWkCkWcpks zc= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:1oatt7T584A=:Rkp6w+gZyEVsfMUP2WG4Kk oVZ6+Iz54yfjhWWnKTKzE8DOFJYRQEMwfSsQzPj+5Fv3ec+JZ0CaKffJNLcKCctZUVW2dnQmV tOlaOlDM2O5XapO52CQ15vUPbz0w/fPk0SUJekmpVP1Ww4vTsDGj1/aHxYdPtOzlK0+y41IMO WlbVvsfop8YhWobl4yzs3eWkzxnzG9Lv+U6VQRgldGeTAU4t43y+8wYR0DCOceRLH7NpK59Vn tku4i+AGmnAgHZfJuR6ohWvxXWmsAiEuhGOHloUixxNgHObNiVXphSOtF8A0pF100vYRLUBes Fww9OYSWFEc5zXAyb4ZOYOl0iMvJbiE9LaPuF08G8VOm79PNx+WYHrgZgHSpYUW5k90mJJEsf DNbwXvL19ys3e1r5fE6mkn89Fvd5wCrN3od2myeUsL5JEJs0PlBqtEVCC+6jEVVGwePVpYWNu UVJM8Jw37gXEwpdWtjfeSgUsNhnU+SymjU/66Cu3+DBiGQ2abqSxcDrxHtqQ2cnN0yehnJ5LV KYkIjw415/qJ+4hQeNDh0Y6FYzJ2Ca9FzZJmsJsom+Tvd+qPIt1mgskjkNdDcDQDg/nwNnu1N AhrYyqkuxE9FI= X-Spam-Score: -0.3 (/) X-Debbugs-Envelope-To: 45303 X-Mailman-Approved-At: Fri, 18 Dec 2020 10:40:26 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-)
Hi,
 
Just in case this helps (sorry I did not have time to split up this into separate bug reports, but it will help [I hope] fix the problems encountered): here are the notes/hacks/command lines I used to build a recent gccemacs on my Win10 machine with mingw64:
 
#+begin_src shell :exports code
  git rev-parse HEAD feature/native-comp
#+end_src
: 682bd303470d4a0fcd2690aff6aa58fb720a8d41
: 682bd303470d4a0fcd2690aff6aa58fb720a8d41
 
#+begin_src shell :exports code
  pacman -S --needed base-devel \
    mingw-w64-x86_64-toolchain \
    mingw-w64-x86_64-xpm-nox \
    mingw-w64-x86_64-libtiff \
    mingw-w64-x86_64-giflib \
    mingw-w64-x86_64-libpng \
    mingw-w64-x86_64-libjpeg-turbo \
    mingw-w64-x86_64-librsvg \
    mingw-w64-x86_64-lcms2 \
    mingw-w64-x86_64-jansson \
    mingw-w64-x86_64-libxml2 \
    mingw-w64-x86_64-gnutls \
    mingw-w64-x86_64-zlib \
    mingw-w64-x86_64-harfbuzz \
    mingw-w64-x86_64-libgccjit
  PROCESSORS_TO_USE="3"
  EMACS_VERSION=emacs-native-comp
  ./autogen.sh
  # edit nt/epaths.nt to add PATH_REL_LOADSEARCH:
  grep -q PATH_REL_LOADSEARCH nt/epaths.nt || echo '#define PATH_REL_LOADSEARCH ""' >> nt/epaths.nt
  # patch to look for libgccjit-0.dll instead of libgcc.dll?  lisp/term/w32-win.el & src/emacs.c
  sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' lisp/term/w32-win.el
  sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' src/emacs.c
  # patch to avoid gcc_jit_global_set_initializer (crashes on my machine...; it
  # seems there is an interaction with the #pragma and the rest of the parsing
  # because the statement is incomplete?) and to adapt to (new) 5th parameter to
  # directory-files
  sed -i -e '/if (gcc_jit_global_set_initializer)/,/{/ {
               /#pragma GCC diagnostic pop/d
               /{/a #pragma GCC diagnostic pop
             }' \
         -e '/internal_condition_case_4/,/FOR_EACH/ {
               s/internal_condition_case_4/internal_condition_case_5/
               s/Qt, return_nil);/Qnil, Qt, return_nil);/
             }' \
         src/comp.c
  sed -i -e '/extern Lisp_Object internal_condition_case_4/a extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));' src/lisp.h
  sed -i -e '/Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as/ {
               s/ARG4 as/ARG4, ARG5 as/
               a    its arguments.  */
               a Lisp_Object
               a internal_condition_case_5 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object),
               a                            Lisp_Object arg1, Lisp_Object arg2,
               a                            Lisp_Object arg3, Lisp_Object arg4,
               a                            Lisp_Object arg5,
               a                            Lisp_Object handlers,
               a                            Lisp_Object (*hfun) (Lisp_Object))
               a {
               a   struct handler *c = push_handler (handlers, CONDITION_CASE);
               a   if (sys_setjmp (c->jmp))
               a     {
               a       Lisp_Object val = handlerlist->val;
               a       clobbered_eassert (handlerlist == c);
               a       handlerlist = handlerlist->next;
               a       return hfun (val);
               a     }
               a   else
               a     {
               a       Lisp_Object val = bfun (arg1, arg2, arg3, arg4, arg5);
               a       eassert (handlerlist == c);
               a       handlerlist = c->next;
               a       return val;
               a     }
               a }
               a /* Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as
             }' src/eval.c
  sed -i -e '/PATH_EXEC, 0);/ {
               s/.*/#ifdef WINDOWSNT/
               a /* On MS-Windows, PATH_EXEC normally starts with a literal
               a    "%emacs_dir%", so it will never work without some tweaking. */
               a w32_relocate (PATH_EXEC),
               a #else
               a PATH_EXEC,
               a #endif
               a 0);
             }' src/callproc.c
  mkdir -p ../build
  cd ../build
  ../emacs/configure \
        --with-xml2 \
        --without-pop \
        --prefix="/home/cramaph1/$EMACS_VERSION/dest" \
        --without-compress-install \
        --without-dbus \
        --with-nativecomp \
        --with-modules 'CFLAGS=-O2 -g3' 'LIBGCCJIT=-lz -lgccjit'
  sed -i -e 's/^LIBGCCJIT = *$/LIBGCCJIT = -lz -lgccjit/' src/Makefile
  make -j"$PROCESSORS_TO_USE"
  make install
#+end_src
 
From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 11:02:27 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 16:02:27 +0000 Received: from localhost ([127.0.0.1]:39713 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqID3-0005RX-J2 for submit@debbugs.gnu.org; Fri, 18 Dec 2020 11:02:27 -0500 Received: from mab.sdf.org ([205.166.94.33]:58404 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqID0-0005RN-DY for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 11:02:24 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kqICy-0006Z6-Da; Fri, 18 Dec 2020 16:02:20 +0000 From: Andrea Corallo To: Pal Gloss Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: Date: Fri, 18 Dec 2020 16:02:20 +0000 In-Reply-To: (Pal Gloss's message of "Fri, 18 Dec 2020 12:13:40 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Pal Gloss writes: > Hi, Hi Pal, > Just in case this helps (sorry I did not have time to split up this into separate bug reports, but it will help [I hope] > fix the problems encountered): here are the notes/hacks/command lines I used to build a recent gccemacs on my Win10 > machine with mingw64: good to know is working even if with some hacking on it ;) > #+begin_src shell :exports code > git rev-parse HEAD feature/native-comp > #+end_src > : 682bd303470d4a0fcd2690aff6aa58fb720a8d41 > : 682bd303470d4a0fcd2690aff6aa58fb720a8d41 > > #+begin_src shell :exports code > pacman -S --needed base-devel \ > mingw-w64-x86_64-toolchain \ > mingw-w64-x86_64-xpm-nox \ > mingw-w64-x86_64-libtiff \ > mingw-w64-x86_64-giflib \ > mingw-w64-x86_64-libpng \ > mingw-w64-x86_64-libjpeg-turbo \ > mingw-w64-x86_64-librsvg \ > mingw-w64-x86_64-lcms2 \ > mingw-w64-x86_64-jansson \ > mingw-w64-x86_64-libxml2 \ > mingw-w64-x86_64-gnutls \ > mingw-w64-x86_64-zlib \ > mingw-w64-x86_64-harfbuzz \ > mingw-w64-x86_64-libgccjit > PROCESSORS_TO_USE="3" > EMACS_VERSION=emacs-native-comp > ./autogen.sh > # edit nt/epaths.nt to add PATH_REL_LOADSEARCH: > grep -q PATH_REL_LOADSEARCH nt/epaths.nt || echo '#define PATH_REL_LOADSEARCH ""' >> nt/epaths.nt This should be fixed by yesterday commits > # patch to look for libgccjit-0.dll instead of libgcc.dll? lisp/term/w32-win.el & src/emacs.c > sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' lisp/term/w32-win.el > sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' src/emacs.c I've really no windows knowledge to judge that, perhaps Eli will comment. If these are correct fixes you should submit a patch for those. > # patch to avoid gcc_jit_global_set_initializer (crashes on my machine...; it > # seems there is an interaction with the #pragma and the rest of the parsing > # because the statement is incomplete?) and to adapt to (new) 5th parameter to > # directory-files > sed -i -e '/if (gcc_jit_global_set_initializer)/,/{/ { > /#pragma GCC diagnostic pop/d > /{/a #pragma GCC diagnostic pop > }' \ > -e '/internal_condition_case_4/,/FOR_EACH/ { > s/internal_condition_case_4/internal_condition_case_5/ > s/Qt, return_nil);/Qnil, Qt, return_nil);/ > }' \ > src/comp.c which gcc version are you using? > sed -i -e '/extern Lisp_Object internal_condition_case_4/a extern Lisp_Object internal_condition_case_5 (Lisp_Object > (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, > Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));' src/lisp.h > sed -i -e '/Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as/ { > s/ARG4 as/ARG4, ARG5 as/ > a its arguments. */ > a Lisp_Object > a internal_condition_case_5 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object, > a Lisp_Object, Lisp_Object, > a Lisp_Object), > a Lisp_Object arg1, Lisp_Object arg2, > a Lisp_Object arg3, Lisp_Object arg4, > a Lisp_Object arg5, > a Lisp_Object handlers, > a Lisp_Object (*hfun) (Lisp_Object)) > a { > a struct handler *c = push_handler (handlers, CONDITION_CASE); > a if (sys_setjmp (c->jmp)) > a { > a Lisp_Object val = handlerlist->val; > a clobbered_eassert (handlerlist == c); > a handlerlist = handlerlist->next; > a return hfun (val); > a } > a else > a { > a Lisp_Object val = bfun (arg1, arg2, arg3, arg4, arg5); > a eassert (handlerlist == c); > a handlerlist = c->next; > a return val; > a } > a } > a /* Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as > }' src/eval.c > sed -i -e '/PATH_EXEC, 0);/ { > s/.*/#ifdef WINDOWSNT/ > a /* On MS-Windows, PATH_EXEC normally starts with a literal > a "%emacs_dir%", so it will never work without some tweaking. */ > a w32_relocate (PATH_EXEC), > a #else > a PATH_EXEC, > a #endif > a 0); > }' src/callproc.c > mkdir -p ../build > cd ../build > ../emacs/configure \ > --with-xml2 \ > --without-pop \ > --prefix="/home/cramaph1/$EMACS_VERSION/dest" \ > --without-compress-install \ > --without-dbus \ > --with-nativecomp \ > --with-modules 'CFLAGS=-O2 -g3' 'LIBGCCJIT=-lz -lgccjit' > sed -i -e 's/^LIBGCCJIT = *$/LIBGCCJIT = -lz -lgccjit/' src/Makefile > make -j"$PROCESSORS_TO_USE" > make install > #+end_src Andrea From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 11:07:06 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 16:07:06 +0000 Received: from localhost ([127.0.0.1]:39718 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqIHZ-0005YQ-Uw for submit@debbugs.gnu.org; Fri, 18 Dec 2020 11:07:06 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46818) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqIHY-0005Xw-Be for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 11:07:04 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34773) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqIHS-0007j6-KF; Fri, 18 Dec 2020 11:06:58 -0500 Received: from [176.228.60.248] (port=3419 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqIHH-000851-8f; Fri, 18 Dec 2020 11:06:47 -0500 Date: Fri, 18 Dec 2020 18:06:48 +0200 Message-Id: <83v9cz5c9z.fsf@gnu.org> From: Eli Zaretskii To: Andrea Corallo In-Reply-To: (bug-gnu-emacs@gnu.org) Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: gongyi.liao@gmail.com, 45303@debbugs.gnu.org, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Fri, 18 Dec 2020 13:28:20 +0000 > Cc: gongyi.liao@gmail.com, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org > From: Andrea Corallo via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > >> CCLD temacs.exe > >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > >> comp.o: in function `md5_gz_stream': > >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:713: > >> undefined reference to `inflateInit2_' > >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:730: > >> undefined reference to `inflate' > > > > That's curious, looks you've not zlib but from the config.log you do... > > I really would like to understand what's going on here. > > We check in configure for zlib presence, actually this is also require > by --with-nativecomp but somehow the linker fails to find it. Why does the native-comp branch require zlib in comp.c? what does it do with zlib? On master, zlib is an optional library, and when some Emacs command is invoked that needs it, on MS-Windows we load the zlib DLL at run time when requested. See init_zlib_functions in decompress.c. This is unlike on Posix systems, where Emacs is linked with zlib at link time. Does this explain what is going on? From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 11:37:36 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 16:37:36 +0000 Received: from localhost ([127.0.0.1]:39792 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqIl6-0006Jm-Cc for submit@debbugs.gnu.org; Fri, 18 Dec 2020 11:37:36 -0500 Received: from mab.sdf.org ([205.166.94.33]:50160 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqIl4-0006Jd-1K for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 11:37:34 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kqIl1-0004aD-BL; Fri, 18 Dec 2020 16:37:31 +0000 From: Andrea Corallo To: Eli Zaretskii Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> Date: Fri, 18 Dec 2020 16:37:31 +0000 In-Reply-To: <83v9cz5c9z.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 18 Dec 2020 18:06:48 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: gongyi.liao@gmail.com, 45303@debbugs.gnu.org, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Date: Fri, 18 Dec 2020 13:28:20 +0000 >> Cc: gongyi.liao@gmail.com, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org >> From: Andrea Corallo via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >> >> >> CCLD temacs.exe >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: >> >> comp.o: in function `md5_gz_stream': >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:713: >> >> undefined reference to `inflateInit2_' >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:730: >> >> undefined reference to `inflate' >> > >> > That's curious, looks you've not zlib but from the config.log you do... >> >> I really would like to understand what's going on here. >> >> We check in configure for zlib presence, actually this is also require >> by --with-nativecomp but somehow the linker fails to find it. > > Why does the native-comp branch require zlib in comp.c? what does it > do with zlib? We hash the content of the lisp source files to obtain the correspondent eln name in the eln-cache. This machinery has to work since early bootstrap (and has to be fast since is executed at each file load), so is directly done from comp.c. When Emacs is installed the el files are compressed and so before hashing them we have to decompress therefore we use zlib. > On master, zlib is an optional library, and when some Emacs command is > invoked that needs it, on MS-Windows we load the zlib DLL at run time > when requested. See init_zlib_functions in decompress.c. This is > unlike on Posix systems, where Emacs is linked with zlib at link time. > Does this explain what is going on? I see, we should probably have comp.c use the necessary DEF_DLL_FN bloat or have these functions wrapped in decompress.c. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 14:35:26 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 19:35:26 +0000 Received: from localhost ([127.0.0.1]:39951 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqLXC-0002Ci-Ep for submit@debbugs.gnu.org; Fri, 18 Dec 2020 14:35:26 -0500 Received: from mail-ej1-f48.google.com ([209.85.218.48]:46572) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqLX6-0002CO-Fe for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 14:35:25 -0500 Received: by mail-ej1-f48.google.com with SMTP id j22so4804461eja.13; Fri, 18 Dec 2020 11:35:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7xB2QpgwLJcyaiPOLNspplGOH1mCCjx7nAayDVGEWp4=; b=cBo3zG+TBRVEwy/TmUmyR8F8i/KmozXnWGm//r5TwW41dNM2kaiJfS9i60reOhkUDp seH5foZdQKKNbKAFBch9GRIGVTyPNUzijMm5cQ0AOh4Su6mfVZ9ISl1cKdthkZBtqV9x lAmjQsceMFGVPU/mwFQMIjeLi40HIi1G/9mUJdzttqmKm2YJ203B3mhHUb6Bb/nBQMuV v3HjMD/D6zlMEhaCZSAeztqcQ+qGo3yI61aGBBMCwZk4IBQJ8WFomXEn8eJGmPXZEE81 IUEz1PlQ2xPXaQmdE6eF5GLttTq2Ij1yVo4gAIp15YofW/l8UDl0OJF2iGNCSmrSS2ZE 8bvQ== 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=7xB2QpgwLJcyaiPOLNspplGOH1mCCjx7nAayDVGEWp4=; b=l1Iq5Ha6kvl9IRYEq93hPPF+nh1ahcYzLZdbakLfma4QaVtbbl7U3Z2+Pcd8g2WVOj iVj3W3OVZ5rz4jh3WHDo7ZTFQtGcfnnU6X2gkEgKSsF/FFjP6mx7Hn3Lx4ukGp2D8bSl 7Y8d/XBpCrFQgr6RFfoMCQBeURZtv0YFpyaFyZLiF2Cow2aZ8RTFnKlbIU94xNQhIeCR L2AeXLgAi4GKk8DbcM1w3o73y7Zv4pw8BFIykNwwYowHBosGsl6Xxj3Xd4pvalVNi+Zd LPszB2xKXHcDHbmJyziNOsXoLrLb9RvMq2E3fwdzhc+FqfafCfPJlOf01BAO1T77geH3 xqDw== X-Gm-Message-State: AOAM533UC0CU/zEazuUXNUPQIbsuQ2OzqSx6fOqTB4TdNy3PWenBQ+Xp g+0kxTGshVKpxj2EmH4X/wE1JBk/uxV+ad/H7yM= X-Google-Smtp-Source: ABdhPJz6JKOSZGegF6olfhVBquzeEs6t0ZnSaGYGEQH+RXuzvT+kI43R39lkLmLJjmaDPWhORbQf97vXDVaJL2amYz0= X-Received: by 2002:a17:906:adcb:: with SMTP id lb11mr5474776ejb.346.1608320114622; Fri, 18 Dec 2020 11:35:14 -0800 (PST) MIME-Version: 1.0 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Fri, 18 Dec 2020 13:35:02 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: Andrea Corallo Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: Eli Zaretskii , 45303@debbugs.gnu.org, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) By changing src/Makefile's temacs target to: temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(EMACSRES) \ $(charsets) $(charscript) $(MAKE_PDUMPER_FINGERPRINT) $(AM_V_CCLD)$(CC) -o $@.tmp \ $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(W32_RES_LINK) $(LIBES) \ -lgccjit -lz Now the temacs is successfully generated, however, at ELC+ELN step of macroexpand.el, temacs just crashed: make[2]: Entering directory '/home/VWinUser0/Downloads/emacs/native-comp/build/lisp' ELC+ELN ../../src/lisp/emacs-lisp/macroexp.elc Backtrace: 00000004001adbe2 00000004000b40a6 00000004000ccc64 000000040020581a 00007ffeba377ff0 00007ffebb9910f7 00007ffebb93b46c 00007ffebb98fc26 make[2]: *** [Makefile:319: ../../src/lisp/emacs-lisp/macroexp.elc] Error 255 make[2]: Leaving directory '/home/VWinUser0/Downloads/emacs/native-comp/build/lisp' make[1]: *** [Makefile:833: bootstrap-emacs.pdmp] Error 2 make[1]: Leaving directory '/home/VWinUser0/Downloads/emacs/native-comp/build/src' make: *** [Makefile:434: src] Error 2 Such a problem does not occur on Linux or FreeBSD. Thanks, Kiong-Ge. On Fri, Dec 18, 2020 at 10:37 AM Andrea Corallo wrote: > > Eli Zaretskii writes: > > >> Date: Fri, 18 Dec 2020 13:28:20 +0000 > >> Cc: gongyi.liao@gmail.com, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org > >> From: Andrea Corallo via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" > >> > >> >> CCLD temacs.exe > >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > >> >> comp.o: in function `md5_gz_stream': > >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:713: > >> >> undefined reference to `inflateInit2_' > >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:730: > >> >> undefined reference to `inflate' > >> > > >> > That's curious, looks you've not zlib but from the config.log you do... > >> > >> I really would like to understand what's going on here. > >> > >> We check in configure for zlib presence, actually this is also require > >> by --with-nativecomp but somehow the linker fails to find it. > > > > Why does the native-comp branch require zlib in comp.c? what does it > > do with zlib? > > We hash the content of the lisp source files to obtain the correspondent > eln name in the eln-cache. > > This machinery has to work since early bootstrap (and has to be fast > since is executed at each file load), so is directly done from comp.c. > > When Emacs is installed the el files are compressed and so before > hashing them we have to decompress therefore we use zlib. > > > On master, zlib is an optional library, and when some Emacs command is > > invoked that needs it, on MS-Windows we load the zlib DLL at run time > > when requested. See init_zlib_functions in decompress.c. This is > > unlike on Posix systems, where Emacs is linked with zlib at link time. > > Does this explain what is going on? > > I see, we should probably have comp.c use the necessary DEF_DLL_FN bloat > or have these functions wrapped in decompress.c. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 14:40:43 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 19:40:43 +0000 Received: from localhost ([127.0.0.1]:40005 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqLcJ-0002MK-BG for submit@debbugs.gnu.org; Fri, 18 Dec 2020 14:40:43 -0500 Received: from mail-ed1-f49.google.com ([209.85.208.49]:33325) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqLcH-0002M5-SD for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 14:40:42 -0500 Received: by mail-ed1-f49.google.com with SMTP id j16so3562344edr.0 for <45303@debbugs.gnu.org>; Fri, 18 Dec 2020 11:40:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7xB2QpgwLJcyaiPOLNspplGOH1mCCjx7nAayDVGEWp4=; b=f0x3TyyC3Eg6WFfiXue+1O1mMSpYq0ItRAB0g+w9kGXhWfcbWak9LqMV8C49RAmAah wLV+jxvYR2YrOyLjUFJCw3jXznLo17qxiN1cvG89qeF1gOWcjeIcUdos5mFZHjvZ7lrE ipJlRubjLFWeGmrPq25oDTjbzWpWTgKvBd2aav1P5g20S4hGXfReW/xo21vvCAeP2NGl r44bQaQQVxe5ScK+r5kgkMPlVbLsiJVYgXB+KAotdvc26HwwNJoddTfgPhOMdx8kSPKg 9nMDNLPg9QwiS6MMMoKtcSJuk8J8uNJxCKxiFoKw9H4n70g/NTSs6CT/stJM2TFCAXlg w5Nw== 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=7xB2QpgwLJcyaiPOLNspplGOH1mCCjx7nAayDVGEWp4=; b=O8tH5qfILT+ndfDTkWRKYzJlVMFVZNPUCIrsvLpVWE2dhX9zUo6eVER0u1rjLNhKka 3VbKH4Yyf6hCnmzFE9fikvyCfHAR8Y+eHfP7YFroFLtn28gJl0/MMQ9T/68uYvAu4Bq6 BbUdT9rwPpnnCwsOQC9QioJxzSPpDLsqIN8hPPqFH49JBh72lVv3Ndna9VLhXX9nrO8s 0Z3AqAFuT1cm2+guIZrK8szdCezDtWz76tlX2VigNMreRh8aeHWD5xU3i5m3brx5e0aa G2nzmktasa/3yGDSteL8q0XgeGgUG7igGk4USjmQ59KvfeW/S6s1YCSs0mcNFP6uzVZl LaAQ== X-Gm-Message-State: AOAM531kWeGKrbfKXLVxq1fF5wwjsou2MdT6LHeZ+qvcfrlST0FnFxME PZbiViHMGWDFhhslhNhqswQxMlF2f3WU/NLPPdk= X-Google-Smtp-Source: ABdhPJyXuYKMAlTAyusr+JLGyCZqmcSLQzESImmRr4WpRLNx7llWAgw+7FX1eC+0VJCMhzd++unLlgEKroEeDczY7kM= X-Received: by 2002:a50:f61b:: with SMTP id c27mr5973735edn.61.1608320435995; Fri, 18 Dec 2020 11:40:35 -0800 (PST) MIME-Version: 1.0 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Fri, 18 Dec 2020 13:40:22 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: Andrea Corallo Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: Eli Zaretskii , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) By changing src/Makefile's temacs target to: temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(EMACSRES) \ $(charsets) $(charscript) $(MAKE_PDUMPER_FINGERPRINT) $(AM_V_CCLD)$(CC) -o $@.tmp \ $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(W32_RES_LINK) $(LIBES) \ -lgccjit -lz Now the temacs is successfully generated, however, at ELC+ELN step of macroexpand.el, temacs just crashed: make[2]: Entering directory '/home/VWinUser0/Downloads/emacs/native-comp/build/lisp' ELC+ELN ../../src/lisp/emacs-lisp/macroexp.elc Backtrace: 00000004001adbe2 00000004000b40a6 00000004000ccc64 000000040020581a 00007ffeba377ff0 00007ffebb9910f7 00007ffebb93b46c 00007ffebb98fc26 make[2]: *** [Makefile:319: ../../src/lisp/emacs-lisp/macroexp.elc] Error 255 make[2]: Leaving directory '/home/VWinUser0/Downloads/emacs/native-comp/build/lisp' make[1]: *** [Makefile:833: bootstrap-emacs.pdmp] Error 2 make[1]: Leaving directory '/home/VWinUser0/Downloads/emacs/native-comp/build/src' make: *** [Makefile:434: src] Error 2 Such a problem does not occur on Linux or FreeBSD. Thanks, Kiong-Ge. On Fri, Dec 18, 2020 at 10:37 AM Andrea Corallo wrote: > > Eli Zaretskii writes: > > >> Date: Fri, 18 Dec 2020 13:28:20 +0000 > >> Cc: gongyi.liao@gmail.com, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org > >> From: Andrea Corallo via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" > >> > >> >> CCLD temacs.exe > >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > >> >> comp.o: in function `md5_gz_stream': > >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:713: > >> >> undefined reference to `inflateInit2_' > >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:730: > >> >> undefined reference to `inflate' > >> > > >> > That's curious, looks you've not zlib but from the config.log you do... > >> > >> I really would like to understand what's going on here. > >> > >> We check in configure for zlib presence, actually this is also require > >> by --with-nativecomp but somehow the linker fails to find it. > > > > Why does the native-comp branch require zlib in comp.c? what does it > > do with zlib? > > We hash the content of the lisp source files to obtain the correspondent > eln name in the eln-cache. > > This machinery has to work since early bootstrap (and has to be fast > since is executed at each file load), so is directly done from comp.c. > > When Emacs is installed the el files are compressed and so before > hashing them we have to decompress therefore we use zlib. > > > On master, zlib is an optional library, and when some Emacs command is > > invoked that needs it, on MS-Windows we load the zlib DLL at run time > > when requested. See init_zlib_functions in decompress.c. This is > > unlike on Posix systems, where Emacs is linked with zlib at link time. > > Does this explain what is going on? > > I see, we should probably have comp.c use the necessary DEF_DLL_FN bloat > or have these functions wrapped in decompress.c. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 15:49:31 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 20:49:31 +0000 Received: from localhost ([127.0.0.1]:40124 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqMgs-0006Cy-Sp for submit@debbugs.gnu.org; Fri, 18 Dec 2020 15:49:31 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33164) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqMgq-0006Cm-SN for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 15:49:29 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40370) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqMgl-0001H9-FZ; Fri, 18 Dec 2020 15:49:23 -0500 Received: from [176.228.60.248] (port=4753 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqMgk-0003ux-Rw; Fri, 18 Dec 2020 15:49:23 -0500 Date: Fri, 18 Dec 2020 22:49:25 +0200 Message-Id: <83r1nm6dre.fsf@gnu.org> From: Eli Zaretskii To: Andrea Corallo In-Reply-To: (message from Andrea Corallo on Fri, 18 Dec 2020 16:37:31 +0000) Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: gongyi.liao@gmail.com, 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Andrea Corallo > Cc: 45303@debbugs.gnu.org, gongyi.liao@gmail.com, > =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org > Date: Fri, 18 Dec 2020 16:37:31 +0000 > > Eli Zaretskii writes: > > >> Date: Fri, 18 Dec 2020 13:28:20 +0000 > >> Cc: gongyi.liao@gmail.com, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org > >> From: Andrea Corallo via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" > >> > >> >> CCLD temacs.exe > >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > >> >> comp.o: in function `md5_gz_stream': > >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:713: > >> >> undefined reference to `inflateInit2_' > >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: > >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:730: > >> >> undefined reference to `inflate' > >> > > >> > That's curious, looks you've not zlib but from the config.log you do... > >> > >> I really would like to understand what's going on here. > >> > >> We check in configure for zlib presence, actually this is also require > >> by --with-nativecomp but somehow the linker fails to find it. > > > > Why does the native-comp branch require zlib in comp.c? what does it > > do with zlib? > > We hash the content of the lisp source files to obtain the correspondent > eln name in the eln-cache. > > This machinery has to work since early bootstrap (and has to be fast > since is executed at each file load), so is directly done from comp.c. > > When Emacs is installed the el files are compressed and so before > hashing them we have to decompress therefore we use zlib. Thanks for the explanations. > > On master, zlib is an optional library, and when some Emacs command is > > invoked that needs it, on MS-Windows we load the zlib DLL at run time > > when requested. See init_zlib_functions in decompress.c. This is > > unlike on Posix systems, where Emacs is linked with zlib at link time. > > Does this explain what is going on? > > I see, we should probably have comp.c use the necessary DEF_DLL_FN bloat > or have these functions wrapped in decompress.c. I think it's better to use functions in decompress.c or add whatever you need there, and have the new functions use the same paradigm, which on Windows loads the DLL the first time it is needed. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 16:23:02 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 21:23:02 +0000 Received: from localhost ([127.0.0.1]:40141 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqNDK-000730-6s for submit@debbugs.gnu.org; Fri, 18 Dec 2020 16:23:02 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39680) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqNDI-00072S-U5 for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 16:23:01 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:41057) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqNDD-0004ZU-Ci; Fri, 18 Dec 2020 16:22:55 -0500 Received: from [176.228.60.248] (port=2837 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqNDC-0001MW-Rn; Fri, 18 Dec 2020 16:22:55 -0500 Date: Fri, 18 Dec 2020 23:22:57 +0200 Message-Id: <83k0te6c7i.fsf@gnu.org> From: Eli Zaretskii To: Andrea Corallo In-Reply-To: (bug-gnu-emacs@gnu.org) Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: pcfeb0009@gmx.com, 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Fri, 18 Dec 2020 16:02:20 +0000 > Cc: 45303@debbugs.gnu.org > From: Andrea Corallo via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > > # patch to look for libgccjit-0.dll instead of libgcc.dll? lisp/term/w32-win.el & src/emacs.c > > sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' lisp/term/w32-win.el > > sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' src/emacs.c > > I've really no windows knowledge to judge that, perhaps Eli will > comment. If these are correct fixes you should submit a patch for > those. They are correct fixes, since DLLs on Windows usually have the API number in their names. In this case, I guess the API number is zero, so libgccjit-0.dll is correct (and libgccjit.dll probably doesn't exist in Windows installations of GCC/libgccjit). From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 16:26:25 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 21:26:25 +0000 Received: from localhost ([127.0.0.1]:40165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqNGb-00079q-Hp for submit@debbugs.gnu.org; Fri, 18 Dec 2020 16:26:25 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40438) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqNGa-00079a-63 for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 16:26:24 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:41112) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqNGU-0005ox-Vt; Fri, 18 Dec 2020 16:26:19 -0500 Received: from [176.228.60.248] (port=3046 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqNGU-0001sh-Au; Fri, 18 Dec 2020 16:26:18 -0500 Date: Fri, 18 Dec 2020 23:26:21 +0200 Message-Id: <83im8y6c1u.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?Q?Li=C4=81u=2C?= =?utf-8?B?S2lvbmctR8STIOW7luWuruavhQ==?= In-Reply-To: (message from =?utf-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= on Fri, 18 Dec 2020 13:35:02 -0600) Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org, akrl@sdf.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Liāu, Kiong-Gē 廖宮毅 > Date: Fri, 18 Dec 2020 13:35:02 -0600 > Cc: Eli Zaretskii , 45303@debbugs.gnu.org, > =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org > > make[2]: Entering directory > '/home/VWinUser0/Downloads/emacs/native-comp/build/lisp' > ELC+ELN ../../src/lisp/emacs-lisp/macroexp.elc > > Backtrace: > 00000004001adbe2 > 00000004000b40a6 > 00000004000ccc64 > 000000040020581a > 00007ffeba377ff0 > 00007ffebb9910f7 > 00007ffebb93b46c > 00007ffebb98fc26 This form of backtrace is impossible to interpret on any system but yours. Please run the failing command under GDB and post the backtrace from the crash produced by the "bt" GDB command. Or at the very least use the addr2line program to convert the addresses into a human-readable backtrace (the Emacs manual explains how in the node "Crashing"). From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 17:24:31 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 22:24:31 +0000 Received: from localhost ([127.0.0.1]:40365 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqOAn-0000OK-F4 for submit@debbugs.gnu.org; Fri, 18 Dec 2020 17:24:31 -0500 Received: from mout.gmx.net ([212.227.15.19]:48657) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqO8E-0000Ja-MD for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 17:21:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608330104; bh=dMgf+blqtYtxV6tWZMFmSLQwU/6IkDyDuzblsKtKnCw=; h=X-UI-Sender-Class:From:To:Subject:Date:In-Reply-To:References; b=Gu5mAhRHsDz3wnICE/fgGABsmrAIliySHmjSxNEiHw5IHuzAhHbWmP03+BUtsJBxC RSrT753M3SL1Wx2tPyl8c1DGwZ5gXhLwMo0BOn3udfx/iWnRZocBWXJjB0dw778zx6 Qm6olIvsw9Oo8Ei+NlmEhNgaz3LgnvwXmBA9PnII= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [217.136.108.250] ([217.136.108.250]) by web-mail.gmx.net (3c-app-mailcom-bs01.server.lan [172.19.170.58]) (via HTTP); Fri, 18 Dec 2020 23:21:44 +0100 MIME-Version: 1.0 Message-ID: From: Pal Gloss To: 45303@debbugs.gnu.org Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Content-Type: text/html; charset=UTF-8 Date: Fri, 18 Dec 2020 23:21:44 +0100 Importance: normal Sensitivity: Normal In-Reply-To: <83k0te6c7i.fsf@gnu.org> References: <83k0te6c7i.fsf@gnu.org> X-UI-Message-Type: mail X-Priority: 3 X-Provags-ID: V03:K1:nhSq4WuNBTXDHg9VHhI/WVmg6ChnwG4gQY/ZnjSAuhTGQ43nPTDwqZWxUgQqc3wPAL1r7 rPhejreXxtzTZB6p/tTikMWhCE7gL6C9k3IazqcBUeFu+f0vm0Lccyu+qrApxR26N5/ugID7DIW1 nNa2qnXYl/+X3BHqm045uuhHlHUSFK9V1q+VGQEifhI+JQnvCPXVnZhr+oqbxboom7q2/7kJMolO xc8la3d6HfGfmHPosPX0Vy2our5yiSWdWlna+0+VoHMRQbuQ+zXxKrwxG6jpYO9M2gNmN2taJGAl Fc= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:ZSRlqaXBppY=:RK077eQltZcjRkaDpny8bu SZ1HwwZ/wdl8HlN1mPnzHho1uiG0swjDMPc1u1uqljxJzZy76CpvwilBwzgty19O4CBsoZEPa LZLtpkeNhYs6zZSJR0I7L/+kOvska3j4elHvF/ZQRojgxEDp+mZy8LYiaxvX1gvudTuC4qqSW YFZOSS5oZFKuzo+9+DfF4ufSawx9NoNLkAde5rGghCO8FAHY7blppCvuod5PaVxJElgUXOgTI Tk+RL3A0OLywTdlybzEimQ1s6lxYnZmgXSQlfO8rweJIdmPL/IE8gpc/2747o6jUZtKvx6PNw W5P1g5P5CS8998OrHWqih0nV30OAbrq8IH8RDZCPDTI59upEy6DmoXC6NWI3xO/YRVAvI5xOr jBSwVb7jkVrX9bjp8AfkuKAcnrZQrkRd9jd/mGUftsedH2jrti4EUMmGamhwxTewkG37+8P1Z LjwI4m+sOmpbLJ9dF6AyCY+4UvVhLmS1a/I6U5Tzoc8B78gitnbxQSsEy3flol3gH/EzvsdLe JNXJ4gOqd9CcYtVTVwIuUBSL+5tgD7V8kHaoQ7+8W7UizPAh1eQLd26mZlKCPCaik1YDXo7/6 0B6H5jkxhdo3g= X-Spam-Score: -0.3 (/) X-Debbugs-Envelope-To: 45303 X-Mailman-Approved-At: Fri, 18 Dec 2020 17:24:28 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-)
I retried building with the most recent feature/native-comp branch and if you
skip to the last code block, you can see how I managed to build emacs with it
and use it (I've been using a similar build on Win10 for about 2 days).  I can
confirm that my previous hack for =nt/epaths.nt= is not needed anymore.
 
#+begin_src shell :exports code
  git rev-parse HEAD feature/native-comp
#+end_src
: 87f6e937995c433825173fb0473a801791d5beac
: 87f6e937995c433825173fb0473a801791d5beac
 
#+begin_src shell :exports code
  gcc --version
#+end_src
: gcc.exe (Rev6, Built by MSYS2 project) 10.2.0
: Copyright (C) 2020 Free Software Foundation, Inc.
: This is free software; see the source for copying conditions.  There is NO
: warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
First trying without any hacking:
#+begin_src shell :exports code
  pacman -S --needed base-devel \
    mingw-w64-x86_64-toolchain \
    mingw-w64-x86_64-xpm-nox \
    mingw-w64-x86_64-libtiff \
    mingw-w64-x86_64-giflib \
    mingw-w64-x86_64-libpng \
    mingw-w64-x86_64-libjpeg-turbo \
    mingw-w64-x86_64-librsvg \
    mingw-w64-x86_64-lcms2 \
    mingw-w64-x86_64-jansson \
    mingw-w64-x86_64-libxml2 \
    mingw-w64-x86_64-gnutls \
    mingw-w64-x86_64-zlib \
    mingw-w64-x86_64-harfbuzz \
    mingw-w64-x86_64-libgccjit
  PROCESSORS_TO_USE="3"
  EMACS_VERSION=emacs-native-comp
  ./autogen.sh
  mkdir -p ../build
  cd ../build
  ../emacs/configure \
        --with-xml2 \
        --without-pop \
        --prefix="/home/cramaph1/$EMACS_VERSION/dest" \
        --without-compress-install \
        --without-dbus \
        --with-nativecomp \
        --with-modules 'CFLAGS=-O2 -g3'
  make -j"$PROCESSORS_TO_USE"
#+end_src
 
Results in this output (man lines elided, some markers added for my future explanations):
#+begin_example
  # snip ... 8< ... snip ... 8< ...
    CC       comp.o
    CC       dynlib.o
  ../../emacs/src/comp.c: In function 'Fcomp__compile_ctxt_to_file':
  ../../emacs/src/comp.c:4458:12: warning: unused variable 'oldset' [-Wunused-variable]
   4458 |   sigset_t oldset;
        |            ^~~~~~
  ../../emacs/src/comp.c: In function 'eln_load_path_final_clean_up':
  ../../emacs/src/comp.c:4621:29: warning: passing argument 1 of 'internal_condition_case_4' from incompatible pointer type [-Wincompatible-pointer-types]
   4621 |  internal_condition_case_4 (Fdirectory_files,
        |                             ^~~~~~~~~~~~~~~~
        |                             |
        |                             struct Lisp_X * (*)(struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *)
  In file included from ../../emacs/src/comp.c:23:
  ../../emacs/src/lisp.h:4160:47: note: expected 'struct Lisp_X * (*)(struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *)' but argument is of type 'struct Lisp_X * (*)(struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct
  Lisp_X *, struct Lisp_X *)'
   4160 | extern Lisp_Object internal_condition_case_4 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
        |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    CC       process.o
  # snip ... 8< ... snip ... 8< ...
    CC       callproc.o
  ../../emacs/src/callproc.c: In function 'call_process':
  ../../emacs/src/callproc.c:916:17: warning: implicit declaration of function 'strsignal'; did you mean 'xsignal'? [-Wimplicit-function-declaration]
    916 |       signame = strsignal (WTERMSIG (status));
        |                 ^~~~~~~~~
        |                 xsignal
  ../../emacs/src/callproc.c:916:17: warning: nested extern declaration of 'strsignal' [-Wnested-externs]
  ../../emacs/src/callproc.c:916:15: warning: assignment to 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    916 |       signame = strsignal (WTERMSIG (status));
        |               ^
  # snip ... 8< ... snip ... 8< ...
    CC       w32menu.o
    CC       w32reg.o
  ../../emacs/src/w32menu.c: In function 'set_frame_menubar':
  ../../emacs/src/w32menu.c:326:2: warning: 'memcpy' offset [3, 10] from the object at '<unknown>' is out of the bounds of referenced subobject 'contents' with type 'struct Lisp_X *[]' at offset 3 [-Warray-bounds]
    326 |  memcpy (previous_items, XVECTOR (f->menu_bar_vector)->contents,
        |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    327 |   previous_menu_items_used * word_size);
        |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  In file included from ../../emacs/src/w32menu.c:26:
  ../../emacs/src/lisp.h:1623:17: note: subobject 'contents' declared here
   1623 |     Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER];
        |                 ^~~~~~~~
    CC       w32font.o
  # snip ... 8< ... snip ... 8< ...
    CC       w32.o
    CC       w32console.o
    CC       w32heap.o
    CC       w32inevt.o
    CC       w32proc.o
    CC       w32image.o
  ../../emacs/src/w32.c: In function '_sys_read_ahead':
  ../../emacs/src/w32.c:8790:10: warning: 'rc' may be used uninitialized in this function [-Wmaybe-uninitialized]
   8790 |   if (rc == sizeof (char))
        |       ~~~^~~~~~~~~~~~~~~~
    CC       fontset.o
  # snip ... 8< ... snip ... 8< ...
    CCLD     temacs.exe
  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: comp.o: in function `md5_gz_stream':
  C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/comp.c:713: undefined reference to `inflateInit2_'
  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/comp.c:730: undefined reference to `inflate'
  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/comp.c:741: undefined reference to `inflateEnd'
  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/comp.c:741: undefined reference to `inflateEnd'
  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: comp.o: in function `declare_imported_func':
  C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/comp.c:973: undefined reference to `gcc_jit_type_get_const'
  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: process.o: in function `status_message':
  C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/process.c:754: undefined reference to `strsignal'
  C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: callproc.o: in function `call_process':
  C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/callproc.c:916: undefined reference to `strsignal'
  collect2.exe: error: ld returned 1 exit status
  make[1]: *** [Makefile:661: temacs.exe] Error 1
  make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/src'
  make: *** [Makefile:434: src] Error 2
#+end_example
Retrying (with hacks/patches to fix "../../emacs/src/comp.c:4621:29" and
"C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/comp.c:713:
undefined reference to `inflateInit2_'" and other linker errors):
#+begin_src shell :exports code
  cd ../emacs
  rm -rf ../build
  git restore .
  # patch to adapt to (new) 5th parameter to directory-files
  sed -i -e '/internal_condition_case_4/,/FOR_EACH/ {
               s/internal_condition_case_4/internal_condition_case_5/
               s/Qt, return_nil);/Qnil, Qt, return_nil);/
             }' \
         src/comp.c
  sed -i -e '/extern Lisp_Object internal_condition_case_4/a extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));' src/lisp.h
  sed -i -e '/Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as/ {
               s/ARG4 as/ARG4, ARG5 as/
               a    its arguments.  */
               a Lisp_Object
               a internal_condition_case_5 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object),
               a                            Lisp_Object arg1, Lisp_Object arg2,
               a                            Lisp_Object arg3, Lisp_Object arg4,
               a                            Lisp_Object arg5,
               a                            Lisp_Object handlers,
               a                            Lisp_Object (*hfun) (Lisp_Object))
               a {
               a   struct handler *c = push_handler (handlers, CONDITION_CASE);
               a   if (sys_setjmp (c->jmp))
               a     {
               a       Lisp_Object val = handlerlist->val;
               a       clobbered_eassert (handlerlist == c);
               a       handlerlist = handlerlist->next;
               a       return hfun (val);
               a     }
               a   else
               a     {
               a       Lisp_Object val = bfun (arg1, arg2, arg3, arg4, arg5);
               a       eassert (handlerlist == c);
               a       handlerlist = c->next;
               a       return val;
               a     }
               a }
               a /* Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as
             }' src/eval.c
  mkdir -p ../build
  cd ../build
  ../emacs/configure \
        --with-xml2 \
        --without-pop \
        --prefix="/home/cramaph1/$EMACS_VERSION/dest" \
        --without-compress-install \
        --without-dbus \
        --with-nativecomp \
        --with-modules 'CFLAGS=-O2 -g3'
  # fix linker errors by making sure the correct libraries are added to the linker command
  sed -i -e 's/^LIBGCCJIT = *$/LIBGCCJIT = -lz -lgccjit/' src/Makefile
  make -j"$PROCESSORS_TO_USE"
#+end_src
 
This allows the build to progress much further (I still see the warnings about
strsignal during the compilation, though,
e.g. "../../emacs/src/callproc.c:916:17", but not during the linking), to
#+begin_example
  ./temacs --batch  -l loadup --temacs=pbootstrap \
          --bin-dest /home/cramaph1/emacs-native-comp/dest/bin/ --eln-dest "/home/cramaph1/emacs-native-comp/dest/lib/emacs/28.0.50/"
  Loading loadup.el (source)...
  Dump mode: pbootstrap
  # snip ... 8< ... snip ... 8< ...
  Dumping under the name bootstrap-emacs.pdmp
  Dumping fingerprint: 2c36b7fa02d1a33e038a3cd004d3be5ad3cf1286ad3174e3b48e8ebd34535a96
  Dump complete
  Byte counts: header=100 hot=8039500 discardable=166920 cold=4821304
  Reloc counts: hot=443956 discardable=5041
  make -C ../lisp compile-first EMACS="../src/bootstrap-emacs.exe"
  # snip ... 8< ... snip ... 8< ...
   ELC+ELN   ../../emacs/lisp/term/w32-win.elc
  # snip ... 8< ... snip ... 8< ...
  Debugger entered--Lisp error: (error "Cannot find libgccjit")
    signal(error ("Cannot find libgccjit"))
    error("Cannot find libgccjit")
    comp-ensure-native-compiler()
    batch-byte-native-compile-for-bootstrap()
    command-line-1(("--eval" "(setq load-prefer-newer t)" "-l" "comp" "-f" "byte-compile-refresh-preloaded" "-f" "batch-byte-native-compile-for-bootstrap" "../../emacs/lisp/term/w32-win.el"))
    command-line()
    normal-top-level()
  make[2]: *** [Makefile:297: ../../emacs/lisp/term/w32-win.elc] Error 127
  make[1]: *** [Makefile:797: ../../emacs/lisp/term/w32-win.elc] Error 2
#+end_example
 
Indeed, if I do =find /mingw64 -name libgccjit\*dll=, I only get
=/mingw64/bin/libgccjit-0.dll= as result.  That files comes from
mingw-w64-x86_64-libgccjit, as shown by =pacman -Qo /mingw64/bin/libgccjit-0.dll=.
 
So I try again, but now also patching in libgccjit-0.dll to replace libgccjit.dll.
#+begin_src shell :exports code
  cd ../emacs
  rm -rf ../build
  git restore .
  # patch to adapt to (new) 5th parameter to directory-files
  sed -i -e '/internal_condition_case_4/,/FOR_EACH/ {
               s/internal_condition_case_4/internal_condition_case_5/
               s/Qt, return_nil);/Qnil, Qt, return_nil);/
             }' \
         src/comp.c
  sed -i -e '/extern Lisp_Object internal_condition_case_4/a extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));' src/lisp.h
  sed -i -e '/Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as/ {
               s/ARG4 as/ARG4, ARG5 as/
               a    its arguments.  */
               a Lisp_Object
               a internal_condition_case_5 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object),
               a                            Lisp_Object arg1, Lisp_Object arg2,
               a                            Lisp_Object arg3, Lisp_Object arg4,
               a                            Lisp_Object arg5,
               a                            Lisp_Object handlers,
               a                            Lisp_Object (*hfun) (Lisp_Object))
               a {
               a   struct handler *c = push_handler (handlers, CONDITION_CASE);
               a   if (sys_setjmp (c->jmp))
               a     {
               a       Lisp_Object val = handlerlist->val;
               a       clobbered_eassert (handlerlist == c);
               a       handlerlist = handlerlist->next;
               a       return hfun (val);
               a     }
               a   else
               a     {
               a       Lisp_Object val = bfun (arg1, arg2, arg3, arg4, arg5);
               a       eassert (handlerlist == c);
               a       handlerlist = c->next;
               a       return val;
               a     }
               a }
               a /* Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as
             }' src/eval.c
  # patch to look for libgccjit-0.dll instead of libgcc.dll in lisp/term/w32-win.el & src/emacs.c
  sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' lisp/term/w32-win.el
  sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' src/emacs.c
  mkdir -p ../build
  cd ../build
  ../emacs/configure \
        --with-xml2 \
        --without-pop \
        --prefix="/home/cramaph1/$EMACS_VERSION/dest" \
        --without-compress-install \
        --without-dbus \
        --with-nativecomp \
        --with-modules 'CFLAGS=-O2 -g3'
  # fix linker errors by making sure the correct libraries are added to the linker command
  sed -i -e 's/^LIBGCCJIT = *$/LIBGCCJIT = -lz -lgccjit/' src/Makefile
  make -j"$PROCESSORS_TO_USE"
#+end_src
 
Now I get a crash with a backtrace:
#+begin_example
  Backtrace:
  00000004001afb22
  00000004000b40a6
  00000004000ccc64
  000000040020a4ca
  00007ff9e5f58040
  00007ff9e6181847
  00007ff9e614a881
  00007ff9e61804b6
  make[2]: *** [Makefile:297: ../../emacs/lisp/term/w32-win.elc] Error 3
  make[1]: *** [Makefile:797: ../../emacs/lisp/term/w32-win.elc] Error 2
  make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/src'
  make: *** [Makefile:434: src] Error 2
#+end_example
 
This crash is due to the =#pragma GCC diagnostic= around a =if
(gcc_jit_global_set_initializer)=: see this example program where the
=#pragma= around the =if(...)= makes it into a separate statement from the
={...}= body.  Apparently, on my machine, =gcc_jit_global_set_initializer= is
NULL but the body gets executed anyway.
#+begin_src c :exports code
  /* save as /tmp/t.c, then run (cd /tmp && gcc t.c && ./a.exe) */
  /* It should print nothing at all, but on my machine, it prints
  This should not be printed, but will be printed anyway (2).
  This is gcc.exe (Rev6, Built by MSYS2 project) 10.2.0 */
  #include <stdio.h>
  int main() {
    if (0)
      {
        printf("This will not be printed (1).\n");
      }
  #pragma GCC diagnostic ignored "-Waddress"
    if (0)
  #pragma GCC diagnostic pop
      {
        printf("This should not be printed, but will be printed anyway (2).\n");
      }
  #pragma GCC diagnostic ignored "-Waddress"
    if (0)
      {
  #pragma GCC diagnostic pop
        printf("This should not be printed (3).\n");
      }
    return 0;
  }
#+end_src
 
So I try again, this time inverting the =#pragma GCC diagnostic pop= and the ={= lines, too:
#+begin_src shell :exports code
  cd ../emacs
  rm -rf ../build
  git restore .
  # patch to avoid gcc_jit_global_set_initializer (crashes on my machine...; it
  # seems there is an interaction with the #pragma and the rest of the parsing
  # because the statement is incomplete?) and to adapt to (new) 5th parameter to
  # directory-files
  sed -i -e '/if (gcc_jit_global_set_initializer)/,/{/ {
               /#pragma GCC diagnostic pop/d
               /{/a #pragma GCC diagnostic pop
             }' \
         -e '/internal_condition_case_4/,/FOR_EACH/ {
               s/internal_condition_case_4/internal_condition_case_5/
               s/Qt, return_nil);/Qnil, Qt, return_nil);/
             }' \
         src/comp.c
  sed -i -e '/extern Lisp_Object internal_condition_case_4/a extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));' src/lisp.h
  sed -i -e '/Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as/ {
               s/ARG4 as/ARG4, ARG5 as/
               a    its arguments.  */
               a Lisp_Object
               a internal_condition_case_5 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object),
               a                            Lisp_Object arg1, Lisp_Object arg2,
               a                            Lisp_Object arg3, Lisp_Object arg4,
               a                            Lisp_Object arg5,
               a                            Lisp_Object handlers,
               a                            Lisp_Object (*hfun) (Lisp_Object))
               a {
               a   struct handler *c = push_handler (handlers, CONDITION_CASE);
               a   if (sys_setjmp (c->jmp))
               a     {
               a       Lisp_Object val = handlerlist->val;
               a       clobbered_eassert (handlerlist == c);
               a       handlerlist = handlerlist->next;
               a       return hfun (val);
               a     }
               a   else
               a     {
               a       Lisp_Object val = bfun (arg1, arg2, arg3, arg4, arg5);
               a       eassert (handlerlist == c);
               a       handlerlist = c->next;
               a       return val;
               a     }
               a }
               a /* Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as
             }' src/eval.c
  # patch to look for libgccjit-0.dll instead of libgcc.dll in lisp/term/w32-win.el & src/emacs.c
  sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' lisp/term/w32-win.el
  sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' src/emacs.c
  mkdir -p ../build
  cd ../build
  ../emacs/configure \
        --with-xml2 \
        --without-pop \
        --prefix="/home/cramaph1/$EMACS_VERSION/dest" \
        --without-compress-install \
        --without-dbus \
        --with-nativecomp \
        --with-modules 'CFLAGS=-O2 -g3'
  # fix linker errors by making sure the correct libraries are added to the linker command
  sed -i -e 's/^LIBGCCJIT = *$/LIBGCCJIT = -lz -lgccjit/' src/Makefile
  make -j"$PROCESSORS_TO_USE"
  make install
#+end_src
 
The build and =make install= succeeded, so I run the newly built emacs, but I get error messages in =*Asyng-native-compile-log*:
#+begin_example
  Warning: arch-dependent data dir '%emacs_dir%/libexec/emacs/28.0.50/x86_64-w64-mingw32/': No such file or directory
#+end_example
 
When I do <F1> v exec-directory, I see
#+begin_example
  exec-directory is a variable defined in ‘C source code’.
  Its value is "%emacs_dir%/libexec/emacs/28.0.50/x86_64-w64-mingw32/"
    This variable may be risky if used as a file-local variable.
    Probably introduced at or before Emacs version 16.
  Documentation:
  Cannot open doc string file "DOC"
#+end_example
 
So I try a last time, adding conditional code to relocate =exec-directory= on Windows:
#+begin_src shell :exports code
  cd ../emacs
  rm -rf ../build
  git restore .
  # patch to avoid gcc_jit_global_set_initializer (crashes on my machine...; it
  # seems there is an interaction with the #pragma and the rest of the parsing
  # because the statement is incomplete?) and to adapt to (new) 5th parameter to
  # directory-files
  sed -i -e '/if (gcc_jit_global_set_initializer)/,/{/ {
               /#pragma GCC diagnostic pop/d
               /{/a #pragma GCC diagnostic pop
             }' \
         -e '/internal_condition_case_4/,/FOR_EACH/ {
               s/internal_condition_case_4/internal_condition_case_5/
               s/Qt, return_nil);/Qnil, Qt, return_nil);/
             }' \
         src/comp.c
  sed -i -e '/extern Lisp_Object internal_condition_case_4/a extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));' src/lisp.h
  sed -i -e '/Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as/ {
               s/ARG4 as/ARG4, ARG5 as/
               a    its arguments.  */
               a Lisp_Object
               a internal_condition_case_5 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object, Lisp_Object,
               a                                                 Lisp_Object),
               a                            Lisp_Object arg1, Lisp_Object arg2,
               a                            Lisp_Object arg3, Lisp_Object arg4,
               a                            Lisp_Object arg5,
               a                            Lisp_Object handlers,
               a                            Lisp_Object (*hfun) (Lisp_Object))
               a {
               a   struct handler *c = push_handler (handlers, CONDITION_CASE);
               a   if (sys_setjmp (c->jmp))
               a     {
               a       Lisp_Object val = handlerlist->val;
               a       clobbered_eassert (handlerlist == c);
               a       handlerlist = handlerlist->next;
               a       return hfun (val);
               a     }
               a   else
               a     {
               a       Lisp_Object val = bfun (arg1, arg2, arg3, arg4, arg5);
               a       eassert (handlerlist == c);
               a       handlerlist = c->next;
               a       return val;
               a     }
               a }
               a /* Like internal_condition_case_1 but call BFUN with ARG1, ARG2, ARG3, ARG4 as
             }' src/eval.c
  # patch to look for libgccjit-0.dll instead of libgcc.dll in lisp/term/w32-win.el & src/emacs.c
  sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' lisp/term/w32-win.el
  sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' src/emacs.c
  # patch to fix the %emacs_dir% issue in exec-path at runtime
  sed -i -e '/PATH_EXEC, 0);/ {
               s/.*/#ifdef WINDOWSNT/
               a /* On MS-Windows, PATH_EXEC normally starts with a literal
               a    "%emacs_dir%", so it will never work without some tweaking. */
               a w32_relocate (PATH_EXEC),
               a #else
               a PATH_EXEC,
               a #endif
               a 0);
             }' src/callproc.c
  mkdir -p ../build
  cd ../build
  ../emacs/configure \
        --with-xml2 \
        --without-pop \
        --prefix="/home/cramaph1/$EMACS_VERSION/dest" \
        --without-compress-install \
        --without-dbus \
        --with-nativecomp \
        --with-modules 'CFLAGS=-O2 -g3'
  # fix linker errors by making sure the correct libraries are added to the linker command
  sed -i -e 's/^LIBGCCJIT = *$/LIBGCCJIT = -lz -lgccjit/' src/Makefile
  make -j"$PROCESSORS_TO_USE"
  make install
#+end_src
 
And now emacs 28.0.50 seems to work (there are some compilation issues with
hyperbole, but my config is usable). If I do =M-: (apropos-value
’("%emacs_dir%") nil)=, I still see these directories that look fishy, but
<F1> i works for me at the moment.
#+begin_example
  Info-default-directory-list
     ("%emacs_dir%/share/info/")
  ----------------
  configure-info-directory
     "%emacs_dir%/share/info"
#+end_example
 
Sorry for the wall of text, I am just trying to show that I built up my
hacks/patches step by step and make sure they are still needed.
 
From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 17:25:50 2020 Received: (at 45303) by debbugs.gnu.org; 18 Dec 2020 22:25:51 +0000 Received: from localhost ([127.0.0.1]:40369 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqOC6-0000Qj-MQ for submit@debbugs.gnu.org; Fri, 18 Dec 2020 17:25:50 -0500 Received: from mout.gmx.net ([212.227.15.19]:40051) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqOC5-0000QW-JD for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 17:25:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608330344; bh=6zaLJ6FD2PX4OwTfh1t9fpf0wYCSm0QGS1XHMTNkJNo=; h=X-UI-Sender-Class:From:To:Subject:Date:In-Reply-To:References; b=CxAUUJuDlFFoo7rn7ig8IfpFg61KOwBuwz1bg6yPuVOFN7+EliYr59RFRxvkkSu2j 0QMz0yN/HcXdBZt45cqqxyYE9BVA2+APlozYiCS1ccWuZ/jmACoVsq/ILvs14vGxBk EKWCjgUdaoke8VCVrape3s2vpWh3QDLNYrbdtndk= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [217.136.108.250] ([217.136.108.250]) by web-mail.gmx.net (3c-app-mailcom-bs01.server.lan [172.19.170.58]) (via HTTP); Fri, 18 Dec 2020 23:25:44 +0100 MIME-Version: 1.0 Message-ID: From: Pal Gloss To: 45303@debbugs.gnu.org Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Content-Type: text/html; charset=UTF-8 Date: Fri, 18 Dec 2020 23:25:44 +0100 Importance: normal Sensitivity: Normal In-Reply-To: <83k0te6c7i.fsf@gnu.org> References: <83k0te6c7i.fsf@gnu.org> X-UI-Message-Type: mail X-Priority: 3 X-Provags-ID: V03:K1:mBZWzScPqaoEcXBR7q17VckPbiarqS2Lc2qXcztYEr7heh+MggnIEwojK4ZgaI4BeCvrc YGBYFMBR1KA8Qm7LeewfjZzEe6CVW75TijUpEPL98ox4izM4pBMZKH2ta8lt9VRt6EytVq1npzTf aNuy/I/d74E/xvLaSgXt+m/gBS+i1E/PY4E73pprxxVYgyO6CAFVdSWAzQY68f9wUnkiWFjOJ5JT RfmLlwjr3Jx4C9F3pMPSssXz3J6mnHanFQ7pkbZ+nRe6nMzmaQSq8eKRfWf0cMkWQS9lufa6cPWK ro= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:lMvWmXjE198=:4RIxCRxSYqoolqM4y/OHQ1 rITRuC/TbzsfAXUs7fkMezqeQ6jbnQJ7q//NVyRbs6ru7hrtGx1Ejh2kQhGQETlWv068Z9QVd E//IH38EN1JS3Araut3TfPg6X7gEYETgu0Zj5PUEfTnuWrfCFuGlFz60vbE6IgEu7JafWuhhO NtiWkziAaxTHyjo1lcVGEsDhcp1hcbM6FBgwJLfb+OjQUqCZvsZj59vXBQ6We65Gspi2DawQd fi2+qlZg4MmkCKtoYh1d6dKGDLC0WSFJMeY1ImGtNSoPS0n/E+qhgrjH3yiYZ8ZZLp5v3WYXz dzco2D7DFMCc5r3v/l4h9sj8UBED532SV66ivS0Gjq0wVnP9JoiijGKIK/3+tt4sf/psgwhHj Vdkvfb1CQZ5Q8pRvQ2xpxwvDERy59h9PiSbV4A0ha6CC74rAHBMDdpz/25MygLwsxKa1m1uxt vopJCXYMdR/mv5VglXwxkfvxoWhcjTus87WUJZmrUVqMKi5tC0NoSq6cv1YADu7tNCH4Z815i m/+Qa+tjSYUqkgosqQK92jxu+jcWHmPf0rcaWs50qMz42JgZrkwmPkpK+z3GyRTsxyqIlSmo9 sUa++zjeZhLxs= X-Spam-Score: -0.3 (/) X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-)
BTW, I believe the crash seen by Liāu,Kiong-Gē 廖宮毅 <gongyi.liao <at> gmail.com> is the same as I see because the
 
  #pragma GCC diagnostic
 
stuff confuses the check for NULL pointer gcc_jit_global_set_initializer
 
See my other reply to this bug for a minimal C program that demonstrates the issue with this placement of #pragma and a sed script that fixes up the order.
From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 18 19:57:58 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 00:57:58 +0000 Received: from localhost ([127.0.0.1]:40583 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqQZJ-0002P0-L6 for submit@debbugs.gnu.org; Fri, 18 Dec 2020 19:57:58 -0500 Received: from mail-ej1-f52.google.com ([209.85.218.52]:43808) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqQZH-0002On-Im for 45303@debbugs.gnu.org; Fri, 18 Dec 2020 19:57:56 -0500 Received: by mail-ej1-f52.google.com with SMTP id jx16so5737603ejb.10 for <45303@debbugs.gnu.org>; Fri, 18 Dec 2020 16:57:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=B34pCoZCzux4WrXwzAS8ek3MdIBGj04/Gu0MnJKOK5E=; b=PIxoBW0A4LuLXHtz+o+ckmH3BIF2CKNASzQYuq0DoDg7ThuRQSepI6ZQ2w66DiSe94 +Kac+7gWr+Wt0BhR6kPmdL1iysEGv/E/bPaJpEyuWhawoBX+/2h/ooz3yhvH2FD2spN4 ItLgfJOmBy9o95DK2H4yuflxVQWVapSHUYdxcsFnK10nG3SRQAJUleIaXvAFsZVIAYrY o3dJs1vq0k/OlPzQp+fzFBfsQB28li7QcAu2hEgP32fqnhG2LyxilI50/mJJfg/D5YjJ rleR8+HqmrAtcShZp43RETY+DgWX6R0Tu7nbkSOOeIY81KAE65BX+bT1h1WDNIxEMmzi F5/A== 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:content-transfer-encoding; bh=B34pCoZCzux4WrXwzAS8ek3MdIBGj04/Gu0MnJKOK5E=; b=tUGWR6dWYIU4mdLJ6izs5IP+DOth1+k4BmFPfrA3/5mlMDXswjpgXRNW/CAGl1tW72 zJ5RIPfKb+EsY+mKhlmpUq5QWzSHDtltlnCa4gT6w9yxiPnmGpk+ppQ2WLYdcHyxvnH6 vj8+KYVvL8hwh1ayPVrg7M2Cd38EYSTHyH+QH00FFs2sTsQ3TEXt5dgew9oaK55n+uTc B14SU8uYsyGHaGdKFcio8h+JDDwXAAdbA50e0t1sMt1jvQpk+J16PI2ECn9YUi6XzDOK JeuDang5X952EprIwE5i5ZshU9/5DWWL6PWrwnSr/QfsUv5kE2Ci5lsFBivI1kEWUyM/ vKfQ== X-Gm-Message-State: AOAM531Jq1GrS0hMnihprila21CqhgbXfvLnFsB5RVx1eoHV17+A4pTC Yc0GQTsONcZrrhIMrxXVQBAwsoiGR2egYcqZrNY= X-Google-Smtp-Source: ABdhPJymFEquC4AsPRVHonr53vucUyT7gN7YAa8fCnKFCL/LJqgJluxUhI0DgJEZaFz98GC3MHqPHh0E3x6rw+mYdBw= X-Received: by 2002:a17:906:af79:: with SMTP id os25mr6528690ejb.275.1608339469487; Fri, 18 Dec 2020 16:57:49 -0800 (PST) MIME-Version: 1.0 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> <83im8y6c1u.fsf@gnu.org> In-Reply-To: <83im8y6c1u.fsf@gnu.org> From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Fri, 18 Dec 2020 18:57:37 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org, Andrea Corallo X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Here's the debug info: $ gdb --args ./src/bootstrap-emacs.exe -l comp -f byte-compile-refresh-preload -f batch-byte-native-compile-for-bootstrap ../src/lisp/macroexpand.el GNU gdb (GDB) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-msys". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Traceback (most recent call last): File "", line 3, in ModuleNotFoundError: No module named 'libstdcxx' /etc/gdbinit:6: Error in sourced command file: Error while executing Python code. Reading symbols from ./src/bootstrap-emacs.exe... (gdb) start Temporary breakpoint 1 at 0x400215320: file ../../src/src/emacs.c, line 968= . Starting program: /home/VWinUser0/Downloads/emacs/native-comp/build/src/bootstrap-emacs.exe -l comp -f byte-compile-refresh-preload -f batch-byte-native-compile-for-bootstrap ../src/lisp/macroexpand.el [New Thread 7800.0x2a24] [New Thread 7800.0x1fb8] [New Thread 7800.0x2ae4] Thread 1 hit Temporary breakpoint 1, main (argc=3D8, argv=3D0xc13240) at ../../src/src/emacs.c:968 968 { (gdb) continue Continuing. [New Thread 7800.0x7fc] [New Thread 7800.0x2abc] Thread 1 received signal SIGTRAP, Trace/breakpoint trap. 0x00007ffeb8a493e3 in KERNELBASE!DebugBreak () from /c/WINDOWS/System32/KERNELBASE.dll (gdb) bt #0 0x00007ffeb8a493e3 in KERNELBASE!DebugBreak () from /c/WINDOWS/System32/KERNELBASE.dll #1 0x00000004001adbbc in emacs_abort () at ../../src/src/w32fns.c:10847 #2 0x000000040009d7cc in bidi_initialize () at ../../src/src/bidi.c:1096 #3 0x00000004000a1285 in bidi_init_it (charpos=3Dcharpos@entry=3D1, bytepos=3D1, frame_window_p=3D, bidi_it=3Dbidi_it@entry=3D0xbfbed0) at ../../src/src/bidi.c:1138 #4 0x000000040002cd02 in init_iterator (it=3Dit@entry=3D0xbfb4e0, w=3Dw@entry=3D0x3f160e0, charpos=3D1, bytepos=3D, row=3D, row@entry=3D0x0, base_face_id=3D, base_face_id@entry=3DDEFAULT_FACE_ID) at ../../src/src/xdisp.c:3436 #5 0x00000004000360b9 in resize_mini_window (w=3D0x3f160e0, exact_p=3Dexact_p@entry=3Dtrue) at ../../src/src/xdisp.c:11784 #6 0x000000040000f460 in do_switch_frame (frame=3D0x5cb82c5, track=3D, for_deletion=3D, norecord=3D0xfffffffc03a1a2a8) at ../../src/src/lisp.h:731 #7 0x00000004001336d6 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #8 0x000000040013397d in Fprogn (body=3D0x4960b43) at ../../src/src/eval.c= :471 #9 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #10 0x0000000400134ced in Funwind_protect (args=3D0x4960943) at ../../src/src/lisp.h:1420 #11 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #12 0x0000000400134a15 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #13 Flet (args=3D0x4960913) at ../../src/src/eval.c:1055 #14 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #15 0x0000000400133e9d in Fprogn (body=3D0x4960893) at ../../src/src/eval.c= :471 #16 Fif (args=3D) at ../../src/src/eval.c:427 #17 Fif (args=3D) at ../../src/src/eval.c:413 #18 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #19 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #20 funcall_lambda (fun=3D0x4960813, fun@entry=3D0x2b, nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfcf50) at ../../src/src/eval.c:3222 #21 0x0000000400134468 in apply_lambda (fun=3D0x2b, args=3D, count=3D12570672, count@entry=3D43) at ../../src/src/eval.c:3094 #22 0x00000004001332e8 in eval_sub (form=3D) at ../../src/src/eval.c:2497 #23 0x000000040013397d in Fprogn (body=3D0x495f82b) at ../../src/src/eval.c= :471 #24 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 --Type for more, q to quit, c to continue without paging-- #25 0x0000000400134ced in Funwind_protect (args=3D0x495f78b) at ../../src/src/lisp.h:1420 #26 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #27 0x0000000400134c25 in Fprogn (body=3D0x495f76b) at ../../src/src/eval.c= :471 #28 FletX (args=3D0x495f72b) at ../../src/src/eval.c:987 #29 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #30 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #31 funcall_lambda (fun=3D0x495f6cb, fun@entry=3D0x24, nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfd510) at ../../src/src/eval.c:3222 #32 0x0000000400134468 in apply_lambda (fun=3D0x24, args=3D, count=3D12572144, count@entry=3D36) at ../../src/src/eval.c:3094 #33 0x00000004001332e8 in eval_sub (form=3D) at ../../src/src/eval.c:2497 #34 0x000000040013397d in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #35 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #36 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #37 funcall_lambda (fun=3D0x495f61b, nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfd9e8) at ../../src/src/eval.c:3222 #38 0x0000000400130c8f in Ffuncall (nargs=3Dnargs@entry=3D2, args=3Dargs@entry=3D0xbfd9e0) at ../../src/src/eval.c:2961 #39 0x0000000400132fb3 in Fapply (nargs=3D2, args=3D0xbfd9e0) at ../../src/src/eval.c:2532 #40 0x0000000400130e07 in Ffuncall (nargs=3D, args=3Dargs@entry=3D0xbfd9d8) at ../../src/src/lisp.h:2092 #41 0x000000040016dce0 in exec_byte_code (bytestr=3D, vector=3D, maxdepth=3D, args_template=3Dargs_template@entry=3D0x202, nargs=3Dnargs@entry=3D1, args=3D, args@entry=3D0xbfdbe0) at ../../src/src/bytecode.c:632 #42 0x0000000400134175 in fetch_and_exec_byte_code (args=3D0xbfdbe0, nargs=3D1, syms_left=3D0x202, fun=3D0x4152a5d) at ../../src/src/lisp.h:1838 #43 funcall_lambda (fun=3D0x4152a5d, fun@entry=3D0x1f, nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfdbe0) at ../../src/src/eval.c:3150 #44 0x0000000400134468 in apply_lambda (fun=3D0x1f, args=3D, count=3D12573888, count@entry=3D31) at ../../src/src/eval.c:3094 #45 0x00000004001332e8 in eval_sub (form=3D) at ../../src/src/eval.c:2497 #46 0x0000000400134a15 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #47 Flet (args=3D0x415293b) at ../../src/src/eval.c:1055 #48 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #49 0x00000004001339f3 in Fsetq (args=3D) at ../../src/src/eval.c:518 #50 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #51 0x0000000400134c25 in Fprogn (body=3D0x414e44b) at ../../src/src/eval.c= :471 --Type for more, q to quit, c to continue without paging-- #52 FletX (args=3D0x414e3db) at ../../src/src/eval.c:987 #53 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #54 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #55 funcall_lambda (fun=3D0x414e37b, fun@entry=3D0x18, nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfe220) at ../../src/src/eval.c:3222 #56 0x0000000400134468 in apply_lambda (fun=3D0x18, args=3D, count=3D12575488, count@entry=3D24) at ../../src/src/eval.c:3094 #57 0x00000004001332e8 in eval_sub (form=3D) at ../../src/src/eval.c:2497 #58 0x00000004001339f3 in Fsetq (args=3D) at ../../src/src/eval.c:518 #59 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #60 0x00000004001339f3 in Fsetq (args=3D) at ../../src/src/eval.c:518 #61 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #62 0x000000040013397d in Fprogn (body=3D0x490455b) at ../../src/src/eval.c= :471 #63 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #64 0x000000040013390d in For (args=3D0x0) at ../../src/src/eval.c:384 #65 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #66 0x000000040013397d in Fprogn (body=3D0x49043bb) at ../../src/src/eval.c= :471 #67 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #68 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #69 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #70 funcall_lambda (fun=3D0x490432b, fun@entry=3D0x10, nargs=3Dnargs@entry=3D0, arg_vector=3Darg_vector@entry=3D0xbfeaf0) at ../../src/src/eval.c:3222 #71 0x0000000400134468 in apply_lambda (fun=3D0x10, args=3D, count=3D12577728, count@entry=3D16) at ../../src/src/eval.c:3094 #72 0x00000004001332e8 in eval_sub (form=3D) at ../../src/src/eval.c:2497 #73 0x0000000400133e9d in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #74 Fif (args=3D) at ../../src/src/eval.c:427 #75 Fif (args=3D) at ../../src/src/eval.c:413 #76 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #77 0x0000000400134a15 in Fprogn (body=3D0x48edfc3) at ../../src/src/eval.c= :471 #78 Flet (args=3D0x48edeb3) at ../../src/src/eval.c:1055 #79 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 --Type for more, q to quit, c to continue without paging-- #80 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #81 funcall_lambda (fun=3D0x48ede63, fun@entry=3D0xb, nargs=3Dnargs@entry= =3D0, arg_vector=3Darg_vector@entry=3D0xbfefa0) at ../../src/src/eval.c:3222 #82 0x0000000400134468 in apply_lambda (fun=3D0xb, args=3D, count=3D12578928, count@entry=3D11) at ../../src/src/eval.c:3094 #83 0x00000004001332e8 in eval_sub (form=3D) at ../../src/src/eval.c:2497 #84 0x0000000400134ced in Funwind_protect (args=3D0x4c17743) at ../../src/src/lisp.h:1420 #85 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #86 0x0000000400134a15 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #87 Flet (args=3D0x4c17713) at ../../src/src/eval.c:1055 #88 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #89 0x0000000400133e9d in Fprogn (body=3D0x4c171e3) at ../../src/src/eval.c= :471 #90 Fif (args=3D) at ../../src/src/eval.c:427 #91 Fif (args=3D) at ../../src/src/eval.c:413 #92 0x0000000400133713 in eval_sub (form=3D) at ../../src/src/lisp.h:2092 #93 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 #94 funcall_lambda (fun=3D0x4c17023, fun@entry=3D0x4, nargs=3Dnargs@entry= =3D0, arg_vector=3Darg_vector@entry=3D0xbff580) at ../../src/src/eval.c:3222 #95 0x0000000400134468 in apply_lambda (fun=3D0x4, args=3D, count=3D12580432, count@entry=3D4) at ../../src/src/eval.c:3094 #96 0x00000004001332e8 in eval_sub (form=3Dform@entry=3D0x4d83093) at ../../src/src/eval.c:2497 #97 0x000000040013508d in Feval (form=3D0x4d83093, lexical=3D) at ../../src/src/eval.c:2249 #98 0x000000040012fd3d in internal_condition_case (bfun=3Dbfun@entry=3D0x4000b47f0 , handlers=3Dhandlers@entry=3D0x90, hfun=3Dhfun@entry=3D0x4000bad30 ) at ../../src/src/eval.c:14= 24 #99 0x00000004000b561d in top_level_1 (ignore=3D) at ../../src/src/lisp.h:1008 #100 0x000000040012fcab in internal_catch (tag=3Dtag@entry=3D0xec10, func=3Dfunc@entry=3D0x4000b55f0 , arg=3Darg@entry=3D0x0) at ../../src/src/eval.c:1185 #101 0x00000004000b4715 in command_loop () at ../../src/src/lisp.h:1008 #102 0x0000000000000000 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) However I cannot tell what's the major cause of the error. On Fri, Dec 18, 2020 at 3:26 PM Eli Zaretskii wrote: > > > From: Li=C4=81u, Kiong-G=C4=93 =E5=BB=96=E5=AE=AE=E6=AF=85 > > Date: Fri, 18 Dec 2020 13:35:02 -0600 > > Cc: Eli Zaretskii , 45303@debbugs.gnu.org, > > =3D?UTF-8?Q?Li=3DC4=3D81u@debbugs.gnu.org > > > > make[2]: Entering directory > > '/home/VWinUser0/Downloads/emacs/native-comp/build/lisp' > > ELC+ELN ../../src/lisp/emacs-lisp/macroexp.elc > > > > Backtrace: > > 00000004001adbe2 > > 00000004000b40a6 > > 00000004000ccc64 > > 000000040020581a > > 00007ffeba377ff0 > > 00007ffebb9910f7 > > 00007ffebb93b46c > > 00007ffebb98fc26 > > This form of backtrace is impossible to interpret on any system but > yours. Please run the failing command under GDB and post the > backtrace from the crash produced by the "bt" GDB command. Or at the > very least use the addr2line program to convert the addresses into a > human-readable backtrace (the Emacs manual explains how in the node > "Crashing"). From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 00:39:07 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 05:39:08 +0000 Received: from localhost ([127.0.0.1]:40696 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqUxP-0000ca-6L for submit@debbugs.gnu.org; Sat, 19 Dec 2020 00:39:07 -0500 Received: from mail-ed1-f42.google.com ([209.85.208.42]:45474) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqUxN-0000c4-PM for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 00:39:06 -0500 Received: by mail-ed1-f42.google.com with SMTP id r5so4488079eda.12 for <45303@debbugs.gnu.org>; Fri, 18 Dec 2020 21:39:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=/SifEYUfzdAra0j6VF/HUmthrbi6U/MljwFQ08/L3P8=; b=P0hb9JotEe7leamE31xytXpRPePjflwBkbC0FvOXKefHcAMoRpAZSJwdw99qrMifIS VFMic3OiWdmLVlb7guDhWXBtXAs6/XxHtlttmKKMb2Xcy/qRXcCP/FcSXj7j2gABKKPT YCro6MwqbiQvScetoi81B/tHpNAJpJWuLu+Vv6yFKu+edR1JdXu6q2PFJPRX7w+IXdG8 7mg1VNL+It3+5nuJphj84kRxVAXLMHAqqxbdy2HR07nFNtaGOs+jMbsXag1+Ues+24dn OxlNXLzpx8GTlVmuAB3/LTayOYbdJzyJThYqyAx80hq/07DHpltrv68nMZc/MzstBdkS WMJQ== 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:content-transfer-encoding; bh=/SifEYUfzdAra0j6VF/HUmthrbi6U/MljwFQ08/L3P8=; b=cNskX7yBvlsNfPQZI4WtgPeemoBAoqBhnQyy8Ggk0up/AEa+FGfvrsDfiftx+b3i6c PCRfqBuO+4dg8Wr6AlTottjpCi8FRdCewBRJqbAAhelsbTG3ny5T5ih9+GqpmjCbWNZ3 XStPoITK/DaeMXs6reEVCxcX8L31yelZAMsqkfjcXVAsKALT3M+dVvZni1NAgyuLLcmk 8xx84rJQImG+K60175YnQVqewz4GldSZ+qLyTdaodA3KNR4F5AjwGxVUQlFDSzW++QYI j58vktYFaSpbnX31ivCCKMD8q7A9IEYyJHamseZjsOuqm7yRgsB1wS8Nxako5/E14IQd hJ9Q== X-Gm-Message-State: AOAM531fwU6vtWzBpKHEZiAxdmmUEdNGUDZMyQgOToT31aQrrBj2mog2 EcuMoWkqFBOKWkmZSXIhcQ9NeJ+Gay4d//DL+PE= X-Google-Smtp-Source: ABdhPJxddaMsp2dW+yBXSnNiADCiDBSC0mh77BXYm+WY+Vbcu1qqRULgsukK7nc+iX0yed5ym86jDsY+Pgs9mpCBgUA= X-Received: by 2002:a50:e8c4:: with SMTP id l4mr7476808edn.337.1608356339835; Fri, 18 Dec 2020 21:38:59 -0800 (PST) MIME-Version: 1.0 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> <83im8y6c1u.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Fri, 18 Dec 2020 23:38:47 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org, Andrea Corallo X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I just tested the master branch and confirmed that master branch does not have this issue On Fri, Dec 18, 2020 at 6:57 PM Li=C4=81u, Kiong-G=C4=93 =E5=BB=96=E5=AE=AE= =E6=AF=85 wrote: > > Here's the debug info: > > $ gdb --args ./src/bootstrap-emacs.exe -l comp -f > byte-compile-refresh-preload -f > batch-byte-native-compile-for-bootstrap ../src/lisp/macroexpand.el > GNU gdb (GDB) 9.2 > Copyright (C) 2020 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > Type "show copying" and "show warranty" for details. > This GDB was configured as "x86_64-pc-msys". > Type "show configuration" for configuration details. > For bug reporting instructions, please see: > . > Find the GDB manual and other documentation resources online at: > . > > For help, type "help". > Type "apropos word" to search for commands related to "word"... > Traceback (most recent call last): > File "", line 3, in > ModuleNotFoundError: No module named 'libstdcxx' > /etc/gdbinit:6: Error in sourced command file: > Error while executing Python code. > Reading symbols from ./src/bootstrap-emacs.exe... > (gdb) start > Temporary breakpoint 1 at 0x400215320: file ../../src/src/emacs.c, line 9= 68. > Starting program: > /home/VWinUser0/Downloads/emacs/native-comp/build/src/bootstrap-emacs.exe > -l comp -f byte-compile-refresh-preload -f > batch-byte-native-compile-for-bootstrap ../src/lisp/macroexpand.el > [New Thread 7800.0x2a24] > [New Thread 7800.0x1fb8] > [New Thread 7800.0x2ae4] > > Thread 1 hit Temporary breakpoint 1, main (argc=3D8, argv=3D0xc13240) at > ../../src/src/emacs.c:968 > 968 { > (gdb) continue > Continuing. > [New Thread 7800.0x7fc] > [New Thread 7800.0x2abc] > > Thread 1 received signal SIGTRAP, Trace/breakpoint trap. > 0x00007ffeb8a493e3 in KERNELBASE!DebugBreak () from > /c/WINDOWS/System32/KERNELBASE.dll > (gdb) bt > #0 0x00007ffeb8a493e3 in KERNELBASE!DebugBreak () from > /c/WINDOWS/System32/KERNELBASE.dll > #1 0x00000004001adbbc in emacs_abort () at ../../src/src/w32fns.c:10847 > #2 0x000000040009d7cc in bidi_initialize () at ../../src/src/bidi.c:1096 > #3 0x00000004000a1285 in bidi_init_it (charpos=3Dcharpos@entry=3D1, > bytepos=3D1, frame_window_p=3D, > bidi_it=3Dbidi_it@entry=3D0xbfbed0) > at ../../src/src/bidi.c:1138 > #4 0x000000040002cd02 in init_iterator (it=3Dit@entry=3D0xbfb4e0, > w=3Dw@entry=3D0x3f160e0, charpos=3D1, bytepos=3D, > row=3D, > row@entry=3D0x0, base_face_id=3D, > base_face_id@entry=3DDEFAULT_FACE_ID) at ../../src/src/xdisp.c:3436 > #5 0x00000004000360b9 in resize_mini_window (w=3D0x3f160e0, > exact_p=3Dexact_p@entry=3Dtrue) at ../../src/src/xdisp.c:11784 > #6 0x000000040000f460 in do_switch_frame (frame=3D0x5cb82c5, > track=3D, for_deletion=3D, > norecord=3D0xfffffffc03a1a2a8) > at ../../src/src/lisp.h:731 > #7 0x00000004001336d6 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #8 0x000000040013397d in Fprogn (body=3D0x4960b43) at ../../src/src/eval= .c:471 > #9 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #10 0x0000000400134ced in Funwind_protect (args=3D0x4960943) at > ../../src/src/lisp.h:1420 > #11 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #12 0x0000000400134a15 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #13 Flet (args=3D0x4960913) at ../../src/src/eval.c:1055 > #14 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #15 0x0000000400133e9d in Fprogn (body=3D0x4960893) at ../../src/src/eval= .c:471 > #16 Fif (args=3D) at ../../src/src/eval.c:427 > #17 Fif (args=3D) at ../../src/src/eval.c:413 > #18 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #19 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #20 funcall_lambda (fun=3D0x4960813, fun@entry=3D0x2b, > nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfcf50) at > ../../src/src/eval.c:3222 > #21 0x0000000400134468 in apply_lambda (fun=3D0x2b, args=3D out>, count=3D12570672, count@entry=3D43) at ../../src/src/eval.c:3094 > #22 0x00000004001332e8 in eval_sub (form=3D) at > ../../src/src/eval.c:2497 > #23 0x000000040013397d in Fprogn (body=3D0x495f82b) at ../../src/src/eval= .c:471 > #24 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > --Type for more, q to quit, c to continue without paging-- > #25 0x0000000400134ced in Funwind_protect (args=3D0x495f78b) at > ../../src/src/lisp.h:1420 > #26 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #27 0x0000000400134c25 in Fprogn (body=3D0x495f76b) at ../../src/src/eval= .c:471 > #28 FletX (args=3D0x495f72b) at ../../src/src/eval.c:987 > #29 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #30 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #31 funcall_lambda (fun=3D0x495f6cb, fun@entry=3D0x24, > nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfd510) at > ../../src/src/eval.c:3222 > #32 0x0000000400134468 in apply_lambda (fun=3D0x24, args=3D out>, count=3D12572144, count@entry=3D36) at ../../src/src/eval.c:3094 > #33 0x00000004001332e8 in eval_sub (form=3D) at > ../../src/src/eval.c:2497 > #34 0x000000040013397d in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #35 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #36 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #37 funcall_lambda (fun=3D0x495f61b, nargs=3Dnargs@entry=3D1, > arg_vector=3Darg_vector@entry=3D0xbfd9e8) at ../../src/src/eval.c:3222 > #38 0x0000000400130c8f in Ffuncall (nargs=3Dnargs@entry=3D2, > args=3Dargs@entry=3D0xbfd9e0) at ../../src/src/eval.c:2961 > #39 0x0000000400132fb3 in Fapply (nargs=3D2, args=3D0xbfd9e0) at > ../../src/src/eval.c:2532 > #40 0x0000000400130e07 in Ffuncall (nargs=3D, > args=3Dargs@entry=3D0xbfd9d8) at ../../src/src/lisp.h:2092 > #41 0x000000040016dce0 in exec_byte_code (bytestr=3D, > vector=3D, maxdepth=3D, > args_template=3Dargs_template@entry=3D0x202, nargs=3Dnargs@entry=3D1, > args=3D, args@entry=3D0xbfdbe0) at > ../../src/src/bytecode.c:632 > #42 0x0000000400134175 in fetch_and_exec_byte_code (args=3D0xbfdbe0, > nargs=3D1, syms_left=3D0x202, fun=3D0x4152a5d) at ../../src/src/lisp.h:18= 38 > #43 funcall_lambda (fun=3D0x4152a5d, fun@entry=3D0x1f, > nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfdbe0) at > ../../src/src/eval.c:3150 > #44 0x0000000400134468 in apply_lambda (fun=3D0x1f, args=3D out>, count=3D12573888, count@entry=3D31) at ../../src/src/eval.c:3094 > #45 0x00000004001332e8 in eval_sub (form=3D) at > ../../src/src/eval.c:2497 > #46 0x0000000400134a15 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #47 Flet (args=3D0x415293b) at ../../src/src/eval.c:1055 > #48 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #49 0x00000004001339f3 in Fsetq (args=3D) at > ../../src/src/eval.c:518 > #50 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #51 0x0000000400134c25 in Fprogn (body=3D0x414e44b) at ../../src/src/eval= .c:471 > --Type for more, q to quit, c to continue without paging-- > #52 FletX (args=3D0x414e3db) at ../../src/src/eval.c:987 > #53 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #54 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #55 funcall_lambda (fun=3D0x414e37b, fun@entry=3D0x18, > nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0xbfe220) at > ../../src/src/eval.c:3222 > #56 0x0000000400134468 in apply_lambda (fun=3D0x18, args=3D out>, count=3D12575488, count@entry=3D24) at ../../src/src/eval.c:3094 > #57 0x00000004001332e8 in eval_sub (form=3D) at > ../../src/src/eval.c:2497 > #58 0x00000004001339f3 in Fsetq (args=3D) at > ../../src/src/eval.c:518 > #59 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #60 0x00000004001339f3 in Fsetq (args=3D) at > ../../src/src/eval.c:518 > #61 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #62 0x000000040013397d in Fprogn (body=3D0x490455b) at ../../src/src/eval= .c:471 > #63 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #64 0x000000040013390d in For (args=3D0x0) at ../../src/src/eval.c:384 > #65 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #66 0x000000040013397d in Fprogn (body=3D0x49043bb) at ../../src/src/eval= .c:471 > #67 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #68 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #69 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #70 funcall_lambda (fun=3D0x490432b, fun@entry=3D0x10, > nargs=3Dnargs@entry=3D0, arg_vector=3Darg_vector@entry=3D0xbfeaf0) at > ../../src/src/eval.c:3222 > #71 0x0000000400134468 in apply_lambda (fun=3D0x10, args=3D out>, count=3D12577728, count@entry=3D16) at ../../src/src/eval.c:3094 > #72 0x00000004001332e8 in eval_sub (form=3D) at > ../../src/src/eval.c:2497 > #73 0x0000000400133e9d in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #74 Fif (args=3D) at ../../src/src/eval.c:427 > #75 Fif (args=3D) at ../../src/src/eval.c:413 > #76 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #77 0x0000000400134a15 in Fprogn (body=3D0x48edfc3) at ../../src/src/eval= .c:471 > #78 Flet (args=3D0x48edeb3) at ../../src/src/eval.c:1055 > #79 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > --Type for more, q to quit, c to continue without paging-- > #80 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #81 funcall_lambda (fun=3D0x48ede63, fun@entry=3D0xb, nargs=3Dnargs@entry= =3D0, > arg_vector=3Darg_vector@entry=3D0xbfefa0) at ../../src/src/eval.c:3222 > #82 0x0000000400134468 in apply_lambda (fun=3D0xb, args=3D= , > count=3D12578928, count@entry=3D11) at ../../src/src/eval.c:3094 > #83 0x00000004001332e8 in eval_sub (form=3D) at > ../../src/src/eval.c:2497 > #84 0x0000000400134ced in Funwind_protect (args=3D0x4c17743) at > ../../src/src/lisp.h:1420 > #85 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #86 0x0000000400134a15 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #87 Flet (args=3D0x4c17713) at ../../src/src/eval.c:1055 > #88 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #89 0x0000000400133e9d in Fprogn (body=3D0x4c171e3) at ../../src/src/eval= .c:471 > #90 Fif (args=3D) at ../../src/src/eval.c:427 > #91 Fif (args=3D) at ../../src/src/eval.c:413 > #92 0x0000000400133713 in eval_sub (form=3D) at > ../../src/src/lisp.h:2092 > #93 0x0000000400134265 in Fprogn (body=3D0x0) at ../../src/src/eval.c:471 > #94 funcall_lambda (fun=3D0x4c17023, fun@entry=3D0x4, nargs=3Dnargs@entry= =3D0, > arg_vector=3Darg_vector@entry=3D0xbff580) at ../../src/src/eval.c:3222 > #95 0x0000000400134468 in apply_lambda (fun=3D0x4, args=3D= , > count=3D12580432, count@entry=3D4) at ../../src/src/eval.c:3094 > #96 0x00000004001332e8 in eval_sub (form=3Dform@entry=3D0x4d83093) at > ../../src/src/eval.c:2497 > #97 0x000000040013508d in Feval (form=3D0x4d83093, lexical=3D out>) at ../../src/src/eval.c:2249 > #98 0x000000040012fd3d in internal_condition_case > (bfun=3Dbfun@entry=3D0x4000b47f0 , > handlers=3Dhandlers@entry=3D0x90, > hfun=3Dhfun@entry=3D0x4000bad30 ) at ../../src/src/eval.c:= 1424 > #99 0x00000004000b561d in top_level_1 (ignore=3D) at > ../../src/src/lisp.h:1008 > #100 0x000000040012fcab in internal_catch (tag=3Dtag@entry=3D0xec10, > func=3Dfunc@entry=3D0x4000b55f0 , arg=3Darg@entry=3D0x0) > at ../../src/src/eval.c:1185 > #101 0x00000004000b4715 in command_loop () at ../../src/src/lisp.h:1008 > #102 0x0000000000000000 in ?? () > Backtrace stopped: previous frame inner to this frame (corrupt stack?) > (gdb) > > However I cannot tell what's the major cause of the error. > > On Fri, Dec 18, 2020 at 3:26 PM Eli Zaretskii wrote: > > > > > From: Li=C4=81u, Kiong-G=C4=93 =E5=BB=96=E5=AE=AE=E6=AF=85 > > > Date: Fri, 18 Dec 2020 13:35:02 -0600 > > > Cc: Eli Zaretskii , 45303@debbugs.gnu.org, > > > =3D?UTF-8?Q?Li=3DC4=3D81u@debbugs.gnu.org > > > > > > make[2]: Entering directory > > > '/home/VWinUser0/Downloads/emacs/native-comp/build/lisp' > > > ELC+ELN ../../src/lisp/emacs-lisp/macroexp.elc > > > > > > Backtrace: > > > 00000004001adbe2 > > > 00000004000b40a6 > > > 00000004000ccc64 > > > 000000040020581a > > > 00007ffeba377ff0 > > > 00007ffebb9910f7 > > > 00007ffebb93b46c > > > 00007ffebb98fc26 > > > > This form of backtrace is impossible to interpret on any system but > > yours. Please run the failing command under GDB and post the > > backtrace from the crash produced by the "bt" GDB command. Or at the > > very least use the addr2line program to convert the addresses into a > > human-readable backtrace (the Emacs manual explains how in the node > > "Crashing"). From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 02:57:16 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 07:57:16 +0000 Received: from localhost ([127.0.0.1]:40769 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqX75-000446-I3 for submit@debbugs.gnu.org; Sat, 19 Dec 2020 02:57:15 -0500 Received: from mab.sdf.org ([205.166.94.33]:33554 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqX72-00043s-L9 for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 02:57:13 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kqX70-0000y0-B1; Sat, 19 Dec 2020 07:57:10 +0000 From: Andrea Corallo To: Pal Gloss Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> Date: Sat, 19 Dec 2020 07:57:10 +0000 In-Reply-To: (Pal Gloss's message of "Fri, 18 Dec 2020 23:21:44 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Pal Gloss writes: > I retried building with the most recent feature/native-comp branch and if= you > skip to the last code block, you can see how I managed to build emacs wit= h it > and use it (I've been using a similar build on Win10 for about 2 days). = I can > confirm that my previous hack for =3Dnt/epaths.nt=3D is not needed anymor= e. >=20=20 > #+begin_src shell :exports code > git rev-parse HEAD feature/native-comp > #+end_src > : 87f6e937995c433825173fb0473a801791d5beac > : 87f6e937995c433825173fb0473a801791d5beac [...] > # patch to look for libgccjit-0.dll instead of libgcc.dll in lisp/term/= w32-win.el & src/emacs.c > sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' lisp/term/w32-win.el > sed -i -e 's/libgccjit.dll/libgccjit-0.dll/' src/emacs.c Okay this should be fixed by now. > mkdir -p ../build > cd ../build > ../emacs/configure \ > --with-xml2 \ > --without-pop \ > --prefix=3D"/home/cramaph1/$EMACS_VERSION/dest" \ > --without-compress-install \ > --without-dbus \ > --with-nativecomp \ > --with-modules 'CFLAGS=3D-O2 -g3' > # fix linker errors by making sure the correct libraries are added to t= he linker command > sed -i -e 's/^LIBGCCJIT =3D *$/LIBGCCJIT =3D -lz -lgccjit/' src/Makefile > make -j"$PROCESSORS_TO_USE" > #+end_src >=20=20 > Now I get a crash with a backtrace: > #+begin_example > Backtrace: > 00000004001afb22 > 00000004000b40a6 > 00000004000ccc64 > 000000040020a4ca > 00007ff9e5f58040 > 00007ff9e6181847 > 00007ff9e614a881 > 00007ff9e61804b6 > make[2]: *** [Makefile:297: ../../emacs/lisp/term/w32-win.elc] Error 3 > make[1]: *** [Makefile:797: ../../emacs/lisp/term/w32-win.elc] Error 2 > make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/src' > make: *** [Makefile:434: src] Error 2 > #+end_example >=20=20 > This crash is due to the =3D#pragma GCC diagnostic=3D around a =3Dif > (gcc_jit_global_set_initializer)=3D: see this example program where the > =3D#pragma=3D around the =3Dif(...)=3D makes it into a separate statement= from the > =3D{...}=3D body. Apparently, on my machine, =3Dgcc_jit_global_set_initi= alizer=3D is > NULL but the body gets executed anyway. > #+begin_src c :exports code > /* save as /tmp/t.c, then run (cd /tmp && gcc t.c && ./a.exe) */ > /* It should print nothing at all, but on my machine, it prints > This should not be printed, but will be printed anyway (2). > This is gcc.exe (Rev6, Built by MSYS2 project) 10.2.0 */ > #include > int main() { > if (0) > { > printf("This will not be printed (1).\n"); > } > #pragma GCC diagnostic ignored "-Waddress" > if (0) > #pragma GCC diagnostic pop > { > printf("This should not be printed, but will be printed anyway (2= ).\n"); > } > #pragma GCC diagnostic ignored "-Waddress" > if (0) > { > #pragma GCC diagnostic pop > printf("This should not be printed (3).\n"); > } > return 0; > } > #+end_src > > So I try again, this time inverting the =3D#pragma GCC diagnostic pop=3D = and the =3D{=3D lines, too: > #+begin_src shell :exports code > cd ../emacs > rm -rf ../build > git restore . > # patch to avoid gcc_jit_global_set_initializer (crashes on my machine.= ..; it > # seems there is an interaction with the #pragma and the rest of the pa= rsing > # because the statement is incomplete?) and to adapt to (new) 5th param= eter to > # directory-files Nice :) While reporting the bug in GCC I've found this previous bugzilla report. Interesting... should work now. > sed -i -e '/if (gcc_jit_global_set_initializer)/,/{/ { > /#pragma GCC diagnostic pop/d > /{/a #pragma GCC diagnostic pop > }' \ > -e '/internal_condition_case_4/,/FOR_EACH/ { > s/internal_condition_case_4/internal_condition_case_5/ > s/Qt, return_nil);/Qnil, Qt, return_nil);/ > }' \ > src/comp.c > sed -i -e '/extern Lisp_Object internal_condition_case_4/a extern Lisp_= Object internal_condition_case_5 (Lisp_Object > (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Li= sp_Object, Lisp_Object, Lisp_Object, > Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));' s= rc/lisp.h > sed -i -e '/Like internal_condition_case_1 but call BFUN with ARG1, ARG= 2, ARG3, ARG4 as/ { > s/ARG4 as/ARG4, ARG5 as/ > a its arguments. */ > a Lisp_Object > a internal_condition_case_5 (Lisp_Object (*bfun) (Lisp_Obj= ect, Lisp_Object, > a Lisp_Obj= ect, Lisp_Object, > a Lisp_Obj= ect), > a Lisp_Object arg1, Lisp_Object= arg2, > a Lisp_Object arg3, Lisp_Object= arg4, > a Lisp_Object arg5, > a Lisp_Object handlers, > a Lisp_Object (*hfun) (Lisp_Obj= ect)) > a { > a struct handler *c =3D push_handler (handlers, CONDITIO= N_CASE); > a if (sys_setjmp (c->jmp)) > a { > a Lisp_Object val =3D handlerlist->val; > a clobbered_eassert (handlerlist =3D=3D c); > a handlerlist =3D handlerlist->next; > a return hfun (val); > a } > a else > a { > a Lisp_Object val =3D bfun (arg1, arg2, arg3, arg4, = arg5); > a eassert (handlerlist =3D=3D c); > a handlerlist =3D c->next; > a return val; > a } > a } > a /* Like internal_condition_case_1 but call BFUN with ARG= 1, ARG2, ARG3, ARG4 as > }' src/eval.c Should be fixed too. [...] > And now emacs 28.0.50 seems to work (there are some compilation issues wi= th > hyperbole, but my config is usable). If I do =3DM-: (apropos-value > =E2=80=99("%emacs_dir%") nil)=3D, I still see these directories that look= fishy, but > i works for me at the moment. > #+begin_example > Info-default-directory-list > ("%emacs_dir%/share/info/") > ---------------- > configure-info-directory > "%emacs_dir%/share/info" > #+end_example Right so (unless I'm forgetting something) just the zlib linker error should be remaining, correct? I'll have a look later in the weekend or Monday. > Sorry for the wall of text, I am just trying to show that I built up my > hacks/patches step by step and make sure they are still needed. Thanks for the precise analysis this is very helpful. The Windows port is a bit rusty, I believe nobody compiled it since 6+ months, is good we resurrect it and keep it running. Andrea From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 03:05:24 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 08:05:24 +0000 Received: from localhost ([127.0.0.1]:40773 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqXEy-0004HP-JF for submit@debbugs.gnu.org; Sat, 19 Dec 2020 03:05:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36470) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqXEx-0004HA-IZ for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 03:05:23 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52938) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqXEq-0001Lu-BV; Sat, 19 Dec 2020 03:05:17 -0500 Received: from [176.228.60.248] (port=2202 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqXEp-0007oS-Ht; Sat, 19 Dec 2020 03:05:15 -0500 Date: Sat, 19 Dec 2020 10:04:59 +0200 Message-Id: <83eejm5ihg.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?Q?Li=C4=81u=2C?= =?utf-8?B?S2lvbmctR8STIOW7luWuruavhQ==?= In-Reply-To: (message from =?utf-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= on Fri, 18 Dec 2020 18:57:37 -0600) Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> <83im8y6c1u.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org, akrl@sdf.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Liāu, Kiong-Gē 廖宮毅 > Date: Fri, 18 Dec 2020 18:57:37 -0600 > Cc: Andrea Corallo , 45303@debbugs.gnu.org > > Thread 1 received signal SIGTRAP, Trace/breakpoint trap. > 0x00007ffeb8a493e3 in KERNELBASE!DebugBreak () from > /c/WINDOWS/System32/KERNELBASE.dll > (gdb) bt > #0 0x00007ffeb8a493e3 in KERNELBASE!DebugBreak () from > /c/WINDOWS/System32/KERNELBASE.dll > #1 0x00000004001adbbc in emacs_abort () at ../../src/src/w32fns.c:10847 > #2 0x000000040009d7cc in bidi_initialize () at ../../src/src/bidi.c:1096 This means Emacs was started without the uni-bidi.el file being available. Or maybe that file failed to load (because of some previous problem in the build). E.g., perhaps there's an invalid uni-bidi.eln file, and Emacs tried to load it in preference to .el/.elc file. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 09:35:58 2020 Received: (at submit) by debbugs.gnu.org; 19 Dec 2020 14:35:58 +0000 Received: from localhost ([127.0.0.1]:41093 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqdKw-0001UA-76 for submit@debbugs.gnu.org; Sat, 19 Dec 2020 09:35:58 -0500 Received: from lists.gnu.org ([209.51.188.17]:45628) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqdKt-0001U2-Es for submit@debbugs.gnu.org; Sat, 19 Dec 2020 09:35:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54314) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqdKt-000597-88 for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 09:35:55 -0500 Received: from ciao.gmane.io ([116.202.254.214]:43138) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqdKr-0004JM-QN for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 09:35:54 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kqdKo-0003kH-Kv for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 15:35:50 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Sat, 19 Dec 2020 14:35:45 +0000 Message-ID: <86pn35n9ry.fsf@gmail.com> References: <83k0te6c7i.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:SnCkxBqE0n8vp85tTOnqCXuc/jI= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 25 X-Spam_score: 2.5 X-Spam_bar: ++ X-Spam_report: (2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NML_ADSP_CUSTOM_MED=0.9, PDS_OTHER_BAD_TLD=2, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Sat 19 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > Right so (unless I'm forgetting something) just the zlib linker error > should be remaining, correct? > > I'll have a look later in the weekend or Monday. AS well as the zlib issue, there are two other problems that I found when trying to build using MSYS2 Mingw64 64bit: a) Linker error for "gcc_jit_type_get_const". It looks like this does not have a runtime import in comp.c, so is just a matter of fixing up another DLL import. b) Linker error for "strsignal" This seems to be a configure problem. On master the configure test for strsignal fails to link, and the gnulib replacement get used. On the native branch the configure test links successfully, so the gnulib replacement does not happen. The only difference in the conftest command line appears to be adding libgccjit, so somehow that library is providing a strsignal symbol. Adding "ac_cv_func_strsignal=no" in nt/mingw-cfg.site appears to suppress this problem, but I don't know if that is the right fix. HTH AndyM From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 11:15:37 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 16:15:37 +0000 Received: from localhost ([127.0.0.1]:43020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqetN-0004Mu-BX for submit@debbugs.gnu.org; Sat, 19 Dec 2020 11:15:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqetM-0004Mh-B3 for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 11:15:36 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57614) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqetH-0005Nm-01; Sat, 19 Dec 2020 11:15:31 -0500 Received: from [176.228.60.248] (port=4732 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqetG-00048t-Ev; Sat, 19 Dec 2020 11:15:30 -0500 Date: Sat, 19 Dec 2020 18:15:10 +0200 Message-Id: <83lfdtu60h.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-Reply-To: <86pn35n9ry.fsf@gmail.com> (message from Andy Moreton on Sat, 19 Dec 2020 14:35:45 +0000) Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> <86pn35n9ry.fsf@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Andy Moreton > Date: Sat, 19 Dec 2020 14:35:45 +0000 > > b) Linker error for "strsignal" > This seems to be a configure problem. On master the configure test > for strsignal fails to link, and the gnulib replacement get used. > On the native branch the configure test links successfully, so the > gnulib replacement does not happen. The only difference in the > conftest command line appears to be adding libgccjit, so somehow > that library is providing a strsignal symbol. > Adding "ac_cv_func_strsignal=no" in nt/mingw-cfg.site appears to > suppress this problem, but I don't know if that is the right fix. I must be missing something, because I don't see strsignal used on master in the MinGW build at all. Moreover, Gnulib's strsignal.c is not even in lib/. We call sigdescr_np instead. So I wonder how did you see that the Gnulib replacement for strsignal is used on master in the Windows build. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 12:15:33 2020 Received: (at submit) by debbugs.gnu.org; 19 Dec 2020 17:15:33 +0000 Received: from localhost ([127.0.0.1]:43051 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqfpM-0005tQ-O1 for submit@debbugs.gnu.org; Sat, 19 Dec 2020 12:15:33 -0500 Received: from lists.gnu.org ([209.51.188.17]:53844) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqfp6-0005sx-GZ for submit@debbugs.gnu.org; Sat, 19 Dec 2020 12:15:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47598) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqfp6-00024I-AV for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 12:15:16 -0500 Received: from ciao.gmane.io ([116.202.254.214]:50370) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqfp0-00008w-6a for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 12:15:11 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kqfoy-00017V-4t for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 18:15:08 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Sat, 19 Dec 2020 17:15:02 +0000 Message-ID: <86h7ohogyx.fsf@gmail.com> References: <83k0te6c7i.fsf@gnu.org> <86pn35n9ry.fsf@gmail.com> <83lfdtu60h.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:ZVDETQALuhRlWMO7+nGxHs4lsPY= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 25 X-Spam_score: 2.5 X-Spam_bar: ++ X-Spam_report: (2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NML_ADSP_CUSTOM_MED=0.9, PDS_OTHER_BAD_TLD=2, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Sat 19 Dec 2020, Eli Zaretskii wrote: >> From: Andy Moreton >> Date: Sat, 19 Dec 2020 14:35:45 +0000 >> >> b) Linker error for "strsignal" >> This seems to be a configure problem. On master the configure test >> for strsignal fails to l [...] Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.0 T_SPF_HELO_TEMPERROR SPF: test of HELO record failed (temperror) 0.9 SPF_FAIL SPF: sender does not match SPF record (fail) [SPF failed: Please see http://www.openspf.org/Why?s=mfrom; id=geb-bug-gnu-emacs%40m.gmane-mx.org; ip=209.51.188.17; r=debbugs.gnu.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (andrewjmoreton[at]gmail.com) 1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received' headers 0.2 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Sat 19 Dec 2020, Eli Zaretskii wrote: >> From: Andy Moreton >> Date: Sat, 19 Dec 2020 14:35:45 +0000 >> >> b) Linker error for "strsignal" >> This seems to be a configure problem. On master the configure test >> for strsignal fails to link, and the gnulib replacement get used. >> On the native branch the configure test links successfully, so the >> gnulib replacement does not happen. The only difference in the >> conftest command line appears to be adding libgccjit, so somehow >> that library is providing a strsignal symbol. >> Adding "ac_cv_func_strsignal=no" in nt/mingw-cfg.site appears to >> suppress this problem, but I don't know if that is the right fix. > > I must be missing something, because I don't see strsignal used on > master in the MinGW build at all. Moreover, Gnulib's strsignal.c is > not even in lib/. We call sigdescr_np instead. So I wonder how did > you see that the Gnulib replacement for strsignal is used on master in > the Windows build. Entirely possible that I have misunderstood something from reading sources and grepping (the gnulib gyrations are hard to follow). The emacs source calls strsignal, and something provides it (whether via a macro replacement or a linkable symbol). The only difference I could see was the configure test, as noted above. I see that src/syssignal.h has a replacement macro: #ifndef HAVE_STRSIGNAL # define strsignal(sig) safe_strsignal (sig) #endif So is the problem that on the native branch the configure test succeeds and sets HAVE_STRSIGNAL, resulting in trying to link the wrong symbol ? AndyM From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 12:38:17 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 17:38:17 +0000 Received: from localhost ([127.0.0.1]:43066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqgBM-0006Rk-U5 for submit@debbugs.gnu.org; Sat, 19 Dec 2020 12:38:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57400) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqgBL-0006RW-SW for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 12:38:16 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58750) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqgBG-0002wp-JC; Sat, 19 Dec 2020 12:38:10 -0500 Received: from [176.228.60.248] (port=2084 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqgBF-0005zw-Hs; Sat, 19 Dec 2020 12:38:09 -0500 Date: Sat, 19 Dec 2020 19:37:49 +0200 Message-Id: <83ft41u26q.fsf@gnu.org> From: Eli Zaretskii To: Andy Moreton In-Reply-To: <86h7ohogyx.fsf@gmail.com> (message from Andy Moreton on Sat, 19 Dec 2020 17:15:02 +0000) Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> <86pn35n9ry.fsf@gmail.com> <83lfdtu60h.fsf@gnu.org> <86h7ohogyx.fsf@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Andy Moreton > Date: Sat, 19 Dec 2020 17:15:02 +0000 > > > I must be missing something, because I don't see strsignal used on > > master in the MinGW build at all. Moreover, Gnulib's strsignal.c is > > not even in lib/. We call sigdescr_np instead. So I wonder how did > > you see that the Gnulib replacement for strsignal is used on master in > > the Windows build. > > Entirely possible that I have misunderstood something from reading > sources and grepping (the gnulib gyrations are hard to follow). > > The emacs source calls strsignal, and something provides it (whether via > a macro replacement or a linkable symbol). The only difference I could > see was the configure test, as noted above. The ultimate test is this: gdb ./emacs.exe GNU gdb (GDB) 10.1 Copyright (C) 2020 Free Software Foundation, Inc. ... (gdb) rbreak strsignal On my system, I see just this: Breakpoint 2 at 0x119b88b: file sysdep.c, line 2617. const char *safe_strsignal(int); > I see that src/syssignal.h has a replacement macro: > > #ifndef HAVE_STRSIGNAL > # define strsignal(sig) safe_strsignal (sig) > #endif > > So is the problem that on the native branch the configure test succeeds > and sets HAVE_STRSIGNAL, resulting in trying to link the wrong symbol ? Possibly. The question is, how come the test succeeds? Can you look in libjccjit.a with "nm -A" and see if it exports strsignal? From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 12:56:48 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 17:56:48 +0000 Received: from localhost ([127.0.0.1]:43089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqgTI-0006tT-KK for submit@debbugs.gnu.org; Sat, 19 Dec 2020 12:56:48 -0500 Received: from mail-ej1-f51.google.com ([209.85.218.51]:41009) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqgTE-0006tE-7H for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 12:56:48 -0500 Received: by mail-ej1-f51.google.com with SMTP id ce23so7841760ejb.8 for <45303@debbugs.gnu.org>; Sat, 19 Dec 2020 09:56:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=vSScgCC8fJh36Myu8uIJf6eZgfu460SyXBfj5H/+jIY=; b=PNmHsEK6nf3wy4durHu1k+FKm2CcIvyDNnN5D6C5FiX5mw3OFJN3l6Vu/Nd7Xk4qgq 69eQuoDuv4rYDTxibF9/l8IEH7Q8/neVgE+p9JAiVpfMs13Tnm8oFcdcTx9PrRUyfLJt 1U13Er2rM35ATGoKwm7tqVov4IhL9talX8AeuCXYYqKdZCy7ZFE+Y4kkCKBYNGOx5yOh b5cvY+yK6BmXVqaZXMslYwHmZMeu7TvL5mwpE+q87w1nNXF8YYswml5NrnS3FCcfBQVU oHIWO+g9OtSu4uQEmk5GCAjECYDsBwUnYxqHpgeVjjQYivcOkzXJNVX8Mlm4zUJ69rJZ 6T6g== 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=vSScgCC8fJh36Myu8uIJf6eZgfu460SyXBfj5H/+jIY=; b=LoG5uNZ2mLvUFdJYPotOO1I+GckKo8A/ACyh4Icc+igRY6oESQqWsgjQKhPUKeQaRg RVcCHalTuvuUevoGZPiKv4IBwXHEtE0ObUIcEPCZ/hzDqEyie2PGZ4gljYhlfZkfEZEi 2yK8o8KoQx1bG5zEE21IEhz4xR/EQovzundFzQqapwcAjqf4LoE7li4qA0SmYZr6D1Lj tRvqpj5EthSMT2ehEslyaONArDivdHGRjmi8CeurWlGk+tzuLxmOxethqoLEehwqbHnH 9i07QvhsP1wt/8VzqcPqBDTRFsSrtrMILLelHoj8Tm+0S2s4FmgowsjW6gRpcpJgxcSV W1BA== X-Gm-Message-State: AOAM533DavbJO0W9BaTOeroVOLEUuB/IeYE7gTATV2cfil3GnIktzyh0 2JfR7GzuJgwJPBWaVdjUaTKc7xq/FevN/wygzUI= X-Google-Smtp-Source: ABdhPJxU4+Kafm5nKI3LBjKm2/ujeZPHhvfCH6wjA4/vYosSCipCSLBM+2Rvb0YC3R+TN0SEcFqvBstRU2E2lp/pQrw= X-Received: by 2002:a17:906:f8d4:: with SMTP id lh20mr9229077ejb.442.1608400598394; Sat, 19 Dec 2020 09:56:38 -0800 (PST) MIME-Version: 1.0 References: <838s9w6t8d.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Sat, 19 Dec 2020 11:56:26 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: Andrea Corallo , pcfeb0009@gmx.com Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: Eli Zaretskii , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andrea, Pal and Eli, Scripts in Pal's org file work, the eln compilation works smoothly. If Pal is using the msys2 version same as the one I use, the GCC/GccJit version's is 10.2.0 Thanks, Kiong-Ge On Thu, Dec 17, 2020 at 3:10 PM Andrea Corallo wrote: > > Eli Zaretskii writes: > > >> Date: Thu, 17 Dec 2020 20:57:29 +0000 > >> Cc: 45303@debbugs.gnu.org > >> From: Andrea Corallo via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" > >> > >> I've pushed 174f2a92eb, could you please have a try? I've no windows machine on > >> to test it myself. > > > > Don't you need to update also the epaths-force-w32 target in > > Makefile.in? > > Uops, pushed 87f6e93799 thanks > > Andrea > From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 13:07:29 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 18:07:30 +0000 Received: from localhost ([127.0.0.1]:43108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqgdb-0007Bk-NX for submit@debbugs.gnu.org; Sat, 19 Dec 2020 13:07:29 -0500 Received: from mout.gmx.net ([212.227.17.21]:35973) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqgdX-0007BV-U2 for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 13:07:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608401237; bh=kKwGYPHU/0TeCozBRaXYqjchs9LSfY23qYnLXfg7L2I=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=YkiMyenLDjAGEB447WEgxLt1VzXigecJDhvAI42+g1gq0hFV0yQ1jza/Xpm4rZZUf nlXItoKJUlSAAytbjKO9ePPLyus+7eQXfs3LVDO0qZKZPdAxapkK15xhDU+HGf10iZ gqEf87pDAJUDqmtYNArcgDN0XZRldxSDBH1XPOEE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [217.136.108.250] ([217.136.108.250]) by web-mail.gmx.net (3c-app-mailcom-bs10.server.lan [172.19.170.178]) (via HTTP); Sat, 19 Dec 2020 19:07:17 +0100 MIME-Version: 1.0 Message-ID: From: Pal Gloss To: Andrea Corallo Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Content-Type: text/plain; charset=UTF-8 Date: Sat, 19 Dec 2020 19:07:17 +0100 Importance: normal Sensitivity: Normal In-Reply-To: References: <83k0te6c7i.fsf@gnu.org> X-UI-Message-Type: mail X-Priority: 3 X-Provags-ID: V03:K1:ZGZ5tqQjLOntHxKp3LEPeXlZTWSwqJ3GjmTreMN/NCMJ+o/+dZNsivLcnOnfxPIvtPk++ VRRpYcGSMcRfnSjUzAhG61UklQvB9Jm9GfU2glCZLrL476HZbfXYLK6smKJBjqFrXd7g8aDV+Trr uLtuQpeNJs9aZMr/rI/gz5NQtJTTBFjAXqEi5UytK0bn6eJOHII5vCIc8UuLHTEAb2xDksJYHn23 o+cKk2vYjdaPZFiKBjNLNBNj8tSKehpkXUevsz/uz15hGs8GQ5NE8rFLUO4E5xmF2d8lOAvBhgZ6 tw= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:38i656oyoig=:kOFlWDILofqFCdWwNQN08Q KHb6awDj6PLclOr0NuCYL/hy1BgekfTNBMnmnA5aB+IUTp4llytCosrIYoeKjfnb0/AEXo91x D0zysbdBppBDU85/IuByb2f6Tw5eAJPgbCdtxx1OU9uFkcgfKtibmCBbmA5FxxoK7vfTiAs81 DlohyfdqYH9SJfBUJLi62lkOJJTmiPHAu8bMC/lMA4FDoyZObeLwpKB1NbW3f/qHmG1gQ3gOm In9ay377cWx6yoohSpOR9hz17KxjWCav+clgP/DX+m4ddT5GzXOV9A5GMcFennj8eMJiH5ANE dzpA84KKS5FYsyg7TXeIh3cTqSYszKB+W1lwCC9QQloz2uIwkMqAnu9bUUyX13EGKL97hlcdV ZIqqSI9yCCc9X56UT6fT1BKvYkYlSj6on8lZEPiMa5peh6Nqeds3xxMbINyoDBeaKN0cVpsK0 AC+lj3zShmER+u2kPEun2fYOeD7b5J871+f+4AaEALsTe228zoFtIwjWfGM4+q27bhLXi/UmX LygS3wqWnGpkUn+KadvnPRMiwmJSRxWvWCmbVIgiT3gKD0fT5Yxm7G9ceLEjH0Y8mSy5akTXy GcPC+NK3T96Cc= Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) Hi, thank you for the quick fixes I do not understand 3b53a591faed03679382a601b93da7fe6ce3b4af: the way I sa= w the problem is that directory-files now takes an optional COUNT paramete= r (see thread starting with https://lists.gnu.org/archive/html/emacs-devel= /2020-10/msg00691.htmlhttps://lists.gnu.org/archive/html/emacs-devel/2020-= 10/msg00691.htm) so that the compiler rightly warned that we passed a func= tion expecting 5 parameters to internal_condition_case_4 that works with a= pointer to a function with 4 arguments. I did not see any special warnin= g anymore and haven't seen it crash yet, so the change is probably OK. > > #+begin_example > > Info-default-directory-list > > ("%emacs_dir%/share/info/") > > ---------------- > > configure-info-directory > > "%emacs_dir%/share/info" > > #+end_example I just checked and these %emacs_dir% are also present in a "normal" emacs = 27.1 (installed via msys2/mingw pacman, not self-built). > Right so (unless I'm forgetting something) just the zlib linker error > should be remaining, correct? It was not only zlib that was missing, but also gccjit (my hack sets both:= LIBGCCJIT =3D -lz -lgccjit) > The Windows port is a bit rusty, I believe nobody compiled it since 6+ > months, is good we resurrect it and keep it running. I was not able to build libgccjit before, but now it is in MSYS2/MINGW pac= man, I can build from time to time. Kind regards, =2D- Pal Gloss For reference, here are the commands I used for my latest build #+begin_src shell :exports code git rev-parse HEAD feature/native-comp ; gcc --version #+end_src : 3b53a591faed03679382a601b93da7fe6ce3b4af : 3b53a591faed03679382a601b93da7fe6ce3b4af : gcc.exe (Rev6, Built by MSYS2 project) 10.2.0 : Copyright (C) 2020 Free Software Foundation, Inc. : This is free software; see the source for copying conditions. There is = NO : warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPO= SE. * Linker errors There are 2 linker errors that prevent advancing: zlib and libgccjit. There is also an issue with strsignal which I will not care about just yet : C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x= 86_64-w64-mingw32/bin/ld.exe: comp.o: in function `md5_gz_stream': : C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/comp= .c:713: undefined reference to `inflateInit2_' : C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x= 86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\cramaph1\emacs-native-comp\bu= ild\src/../../emacs/src/comp.c:730: undefined reference to `inflate' : C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x= 86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\cramaph1\emacs-native-comp\bu= ild\src/../../emacs/src/comp.c:741: undefined reference to `inflateEnd' : C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x= 86_64-w64-mingw32/bin/ld.exe: C:\msys64\home\cramaph1\emacs-native-comp\bu= ild\src/../../emacs/src/comp.c:741: undefined reference to `inflateEnd' : C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x= 86_64-w64-mingw32/bin/ld.exe: comp.o: in function `declare_imported_func': : C:\msys64\home\cramaph1\emacs-native-comp\build\src/../../emacs/src/comp= .c:973: undefined reference to `gcc_jit_type_get_const' #+begin_src shell :exports code pacman -S --needed base-devel \ mingw-w64-x86_64-toolchain \ mingw-w64-x86_64-xpm-nox \ mingw-w64-x86_64-libtiff \ mingw-w64-x86_64-giflib \ mingw-w64-x86_64-libpng \ mingw-w64-x86_64-libjpeg-turbo \ mingw-w64-x86_64-librsvg \ mingw-w64-x86_64-lcms2 \ mingw-w64-x86_64-jansson \ mingw-w64-x86_64-libxml2 \ mingw-w64-x86_64-gnutls \ mingw-w64-x86_64-zlib \ mingw-w64-x86_64-harfbuzz \ mingw-w64-x86_64-libgccjit PROCESSORS_TO_USE=3D"3" EMACS_VERSION=3Demacs-native-comp ./autogen.sh mkdir -p ../build cd ../build ../emacs/configure \ --with-xml2 \ --without-pop \ --prefix=3D"/home/cramaph1/$EMACS_VERSION/dest" \ --without-compress-install \ --without-dbus \ --with-nativecomp \ --with-modules 'CFLAGS=3D-O2 -g3' # fix 2 linker errors by making sure the correct libraries are added to = the linker command sed -i -e 's/^LIBGCCJIT =3D *$/LIBGCCJIT =3D -lz -lgccjit/' src/Makefile make -j"$PROCESSORS_TO_USE" && make install #+end_src From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 14:08:16 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 19:08:17 +0000 Received: from localhost ([127.0.0.1]:43180 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqhaS-0002Ma-Ku for submit@debbugs.gnu.org; Sat, 19 Dec 2020 14:08:16 -0500 Received: from mout.gmx.net ([212.227.17.20]:34607) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqhaQ-0002MJ-Hb for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 14:08:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608404887; bh=nDYM6z6RQ9FCfmoV1gWJGghDM0YUuybHDh0GFMCcSsA=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=VlFQ1p9wUC7hnAZE8FlCKbsPR5tHjaeR/dIS93AKIhEqcrLcFKMoBo+8xp7dIiuAc EAereHseKCQ1sCucarzOftXnFVAjr7pwtfGXs91bjxlkUt/JCxcIA6Xq7NBM5CXt9e 3qgfqgzKdh8NI7RiWQ1nnn/v9G8iQMHhyXXhw0DM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [217.136.108.250] ([217.136.108.250]) by web-mail.gmx.net (3c-app-mailcom-bs06.server.lan [172.19.170.174]) (via HTTP); Sat, 19 Dec 2020 20:08:07 +0100 MIME-Version: 1.0 Message-ID: From: Pal Gloss To: andrewjmoreton@gmail.com, eilz@gnu.org Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows ... strsignal in msys2/mingw64 Content-Type: text/html; charset=UTF-8 Date: Sat, 19 Dec 2020 20:08:07 +0100 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:fNLlWTFNUoHlebWbQjA+SYrvkqFURreIoeohbxQg67zJEEv0vZ08etFkDDAex1QDkmdg1 MoY4cYmAzOSn8O3o0avSvluv+vmIaYTxwAWcXI/3wcxAjFGT01i7Qxgfv7YspnNzsrBn0flPx7LK bV1cqqu5cPsb5a4oaymZ53JbUZlqdMbidPSBj187VhDpZHia/dWeCBHE1gEkNvoACU/f12wj/xIZ LfuN7/BWvyUBo2LW7kY0TEQ6IwLgA8suLmuWhroIcTbCKEO6fR9Cpf2YUPx2N0qjVSXtQxnYjyXq Zw= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:AbuceIMASCs=:j339rHsu4hzOglKucml/qs /Hc1phtBS/vfCVfVOI4b2GypRgbpOPb+1KMC1V+j75OcD3juEjPSqAVmN2mumHaz5ce+kUf72 w2YybYOnVLfC9WQLRlsm5+o14XawvGAEa1uMdnFxI86LsEhyP8LrlaeR8T4i0y2w225+p7JW7 Z6AAnzUO/6ntCleewYcXo8FWRzJ5fvqKwJzwhIfcpMxSkEVZqDhI4DQeOXdQnJf+e/ONtrtJn fl1O/55sqoB6E7CtFR1QgiuYvMNqapufowfEWscp9CL+LBTkwZjqz35ztfZ4SuQCAulShv6xO MG114z5x0QpyC3eO+nIhoGrOQmAo0aAckvD8NWNiWbfq5X99vHbRW8deJR8LqEDr6PWORuf8r v0BpKTZWsW9VxBOFEHELkOLf0KqCWfPsJGTIFHusXskku/IQlLI7U3u/WrqthiI2WjGouKiIQ M6ps1l7sQFEVooDNUfyIfs4IApyIz85QNsQdukYm+oohdq1T6132uBtoRhQUgJLaftISSfPxF FpzyGQmfWrovr+UPD86P5qZa6/gcj1o9DaU5fYEHqjcLZlhrUU8XQUzwUGS0MIixX0965Kwlp +4VAaJQmWHWC8= X-Spam-Score: -0.3 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-)
strsignal is in libgccjit.dll.a but not in libgccjit-0.dll:
$ for f in /mingw64/bin/libgccjit-0.dll /mingw64/lib/libgccjit.dll.a ; do (nm -A "$f" | grep strsignal) || echo "Not found in $f" ; done
Not found in /mingw64/bin/libgccjit-0.dll
C:/msys64/mingw64/lib/libgccjit.dll.a:d025724.o:0000000000000000 I __imp_strsignal
C:/msys64/mingw64/lib/libgccjit.dll.a:d025724.o:0000000000000000 T strsignal
 
$ gdb ../dest/bin/emacs.exe
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-w64-mingw32".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ../dest/bin/emacs.exe...
(gdb) rbreak strsignal
Breakpoint 1 at 0x4000ce210: file ../../emacs/src/sysdep.c, line 2616.
const char *safe_strsignal(int);
Breakpoint 2 at 0x400209fc8
<function, no debug info> strsignal;
(gdb)
 
From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 14:30:13 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 19:30:13 +0000 Received: from localhost ([127.0.0.1]:43202 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqhvh-0002vN-Eu for submit@debbugs.gnu.org; Sat, 19 Dec 2020 14:30:13 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47088) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqhvf-0002uA-Lc for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 14:30:12 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60321) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqhva-0003B5-7o; Sat, 19 Dec 2020 14:30:06 -0500 Received: from [176.228.60.248] (port=1061 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kqhvX-0003dK-3u; Sat, 19 Dec 2020 14:30:04 -0500 Date: Sat, 19 Dec 2020 21:29:42 +0200 Message-Id: <837dpdtx09.fsf@gnu.org> From: Eli Zaretskii To: Pal Gloss In-Reply-To: (message from Pal Gloss on Sat, 19 Dec 2020 20:08:07 +0100) Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows ... strsignal in msys2/mingw64 References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: eilz@gnu.org, 45303@debbugs.gnu.org, andrewjmoreton@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Pal Gloss > Date: Sat, 19 Dec 2020 20:08:07 +0100 > Sensitivity: Normal > Cc: 45303@debbugs.gnu.org > > strsignal is in libgccjit.dll.a but not in libgccjit-0.dll: > $ for f in /mingw64/bin/libgccjit-0.dll /mingw64/lib/libgccjit.dll.a ; do (nm -A "$f" | grep strsignal) || echo "Not > found in $f" ; done > Not found in /mingw64/bin/libgccjit-0.dll Did you try to use pexports to see if the DLL exports strsignal? > C:/msys64/mingw64/lib/libgccjit.dll.a:d025724.o:0000000000000000 I __imp_strsignal > C:/msys64/mingw64/lib/libgccjit.dll.a:d025724.o:0000000000000000 T strsignal This probably means the configure-time test for strsignal should be moved to before the test for libgccjit. But in general, I'd suggest to file a bug report with MSYS2 folks: the DLL and the import library shouldn't export strsignal. > (gdb) rbreak strsignal > Breakpoint 1 at 0x4000ce210: file ../../emacs/src/sysdep.c, line 2616. > const char *safe_strsignal(int); > Breakpoint 2 at 0x400209fc8 > strsignal; And that latter function is in libgccjit DLL? From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 15:40:45 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 20:40:45 +0000 Received: from localhost ([127.0.0.1]:43262 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqj1x-0006gD-3Q for submit@debbugs.gnu.org; Sat, 19 Dec 2020 15:40:45 -0500 Received: from mab.sdf.org ([205.166.94.33]:43750 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqj1v-0006g4-6Z for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 15:40:44 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kqj1t-000425-KZ; Sat, 19 Dec 2020 20:40:41 +0000 From: Andrea Corallo To: Pal Gloss Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> Date: Sat, 19 Dec 2020 20:40:41 +0000 In-Reply-To: (Pal Gloss's message of "Sat, 19 Dec 2020 19:07:17 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Pal Gloss writes: > Hi, > > thank you for the quick fixes > > I do not understand 3b53a591faed03679382a601b93da7fe6ce3b4af: the way No you are right, this morning I was a little in a rush and I might have failed grepping, hopefully ab985f41db is better. [...] > I just checked and these %emacs_dir% are also present in a "normal" emacs 27.1 (installed via msys2/mingw pacman, not self-built). > >> Right so (unless I'm forgetting something) just the zlib linker error >> should be remaining, correct? > > It was not only zlib that was missing, but also gccjit (my hack sets both: LIBGCCJIT = -lz -lgccjit) With 407fb16583 I think '-lgccjit' should be unnecessary on Windows now, is it? Thanks! Andrea From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 16:40:10 2020 Received: (at submit) by debbugs.gnu.org; 19 Dec 2020 21:40:10 +0000 Received: from localhost ([127.0.0.1]:43321 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqjxS-00085O-7G for submit@debbugs.gnu.org; Sat, 19 Dec 2020 16:40:10 -0500 Received: from lists.gnu.org ([209.51.188.17]:46270) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqjxP-00085D-41 for submit@debbugs.gnu.org; Sat, 19 Dec 2020 16:40:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:37654) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqjxO-0001Ho-SM for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 16:40:06 -0500 Received: from ciao.gmane.io ([116.202.254.214]:42560) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqjxN-0001mW-FO for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 16:40:06 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kqjxL-00015H-0X for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2020 22:40:03 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Sat, 19 Dec 2020 21:39:58 +0000 Message-ID: <86v9cxqxu9.fsf@gmail.com> References: <83k0te6c7i.fsf@gnu.org> <86pn35n9ry.fsf@gmail.com> <83lfdtu60h.fsf@gnu.org> <86h7ohogyx.fsf@gmail.com> <83ft41u26q.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:3ezEDWrFww76JO1tDKB/ZoFZUNE= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 5 X-Spam_score: 0.5 X-Spam_bar: / X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Sat 19 Dec 2020, Eli Zaretskii wrote: >> From: Andy Moreton >> Date: Sat, 19 Dec 2020 17:15:02 +0000 >> >> > I must be missing something, because I don't see strsignal used on >> > master in the MinGW build at all. Moreover, Gnulib's strsignal.c is >> > not even in lib/. We call sigdescr_np instead. So I wonder how did >> > you see that the Gnulib replacement for strsignal is used on master in >> > the Windows build. >> >> Entirely possible that I have misunderstood something from reading >> sources and grepping (the gnulib gyrations are hard to follow). >> >> The emacs source calls strsignal, and something provides it (whether via >> a macro replacement or a linkable symbol). The only difference I could >> see was the configure test, as noted above. > > The ultimate test is this: > > gdb ./emacs.exe > GNU gdb (GDB) 10.1 > Copyright (C) 2020 Free Software Foundation, Inc. > ... > (gdb) rbreak strsignal > > On my system, I see just this: > > Breakpoint 2 at 0x119b88b: file sysdep.c, line 2617. > const char *safe_strsignal(int); Agreed, but emacs has to actually link before I can run it under GDB. >> I see that src/syssignal.h has a replacement macro: >> >> #ifndef HAVE_STRSIGNAL >> # define strsignal(sig) safe_strsignal (sig) >> #endif >> >> So is the problem that on the native branch the configure test succeeds >> and sets HAVE_STRSIGNAL, resulting in trying to link the wrong symbol ? > > Possibly. The question is, how come the test succeeds? Can you look > in libjccjit.a with "nm -A" and see if it exports strsignal? /c/home/ajm/tmp> nm -A /mingw32/lib/libgccjit.dll.a | grep strsignal C:/msys64/mingw32/lib/libgccjit.dll.a:d025440.o:00000000 I __imp__strsignal C:/msys64/mingw32/lib/libgccjit.dll.a:d025440.o:00000000 T _strsignal /c/home/ajm/tmp> nm -A /mingw64/lib/libgccjit.dll.a | grep strsignal C:/msys64/mingw64/lib/libgccjit.dll.a:d025724.o:0000000000000000 I __imp_strsignal C:/msys64/mingw64/lib/libgccjit.dll.a:d025724.o:0000000000000000 T strsignal Yes, it would appear so. AndyM From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 18:04:50 2020 Received: (at 45303) by debbugs.gnu.org; 19 Dec 2020 23:04:50 +0000 Received: from localhost ([127.0.0.1]:43374 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqlHO-0001fe-AZ for submit@debbugs.gnu.org; Sat, 19 Dec 2020 18:04:50 -0500 Received: from mail-ej1-f54.google.com ([209.85.218.54]:40437) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqlHL-0001fO-SE for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 18:04:49 -0500 Received: by mail-ej1-f54.google.com with SMTP id x16so8468741ejj.7 for <45303@debbugs.gnu.org>; Sat, 19 Dec 2020 15:04:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=B2SQJPmMyhUdA5m/t4hvfcSjdjA/rvTLmRsLhmSkOxA=; b=gmQlWNzk7iXdPQhMSay6f2hdGCEEXiSegi92+QcdbGvraXgXKjHkIG6n47SsVoQzdo +2P3efODtC1V1CHWcANwf6qQrGNTFPk+tqxOlab1BXIZOCuxvVHJd2k03l63PlcPcXoC NS9V0X1p/sMhLPuE1k9TvmB01oZl3sRuEq78TpjWrI2YQKFW63JR1l7eDLVh/5XrbSf+ RDY7fqusPjKvloW2IJ6fxWzEQVMkfBZkAixCwcY5KE0sFGLVoB2ohNMgyoiikojwbaI7 hT3oS7Si3ehMYrzGFAdNCJ80+RANfembEOSq6zOLsFmZCZLfK0pW35Y0R9Oegby4/5KR YzJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=B2SQJPmMyhUdA5m/t4hvfcSjdjA/rvTLmRsLhmSkOxA=; b=GYbxtJBGtdSdqCf6mrrL8FdKtNctlQ4oNL4BQVfMI+F6804SNfdUDEAUlIRszLDGSS PqaYIa9u43oFYsO1dFfYLEyaE4+SWZWDotAseRfSeL31knbg2h4jiQ0ZgrvINuy6zulh tdauKFeCsaUNiXpX6qbvbzmnrVRfQpugdbb4P6SZoibnTmnSQdPU/dcK11thkX0tjJCr YUZsWmRvj0gLrA8lWdZyoeH/4UPzX3T9WE8cL9xFC6KhDtcyDnDkJ0SoIQePRG0nhEYe IgjPaZy+k/xRM6iRZFYJbBkEsGrAocp0g+pm/7MRxJV7JY/pez9EgFTCbFyBfAH2+XHp WFbQ== X-Gm-Message-State: AOAM530lMZTnmlMMyOTT0buxaBMci+Y0MVRhSrCpf5tRUvumdIiszoKh GBtdK4tHTVT1pzLcWPTbUoWaeegkemweOWWWuix/GqYAOVA= X-Google-Smtp-Source: ABdhPJzQswN14GKzz05iyON4pTrU/9g9UWLUke/6H/xdq1V6HPn68YACA9iLJQFd99X7y4Iq3zi73qRZhqPPrikCj1Y= X-Received: by 2002:a17:906:af79:: with SMTP id os25mr9950020ejb.275.1608419081880; Sat, 19 Dec 2020 15:04:41 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Sat, 19 Dec 2020 17:04:30 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: 45303@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) The linker issue remains after commit .407fb16583 Also, after adding -lz -lgccjit to $LIBGCCJIT in src/Makefile there's a segmentation error at make -C src/bootstramp-emacs.exe: Loading c:/msys64/home/VWinUser0/Downloads/emacs/native-compmake[1]: *** [Makefile:830: bootstrap-emacs.pdmp] Segmentation fault make[1]: *** Deleting file 'bootstrap-emacs.pdmp' make[1]: Leaving directory '/home/VWinUser0/Downloads/emacs/native-comp/build/src' make: *** [Makefile:434: src] Error 2 From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 21:31:46 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 02:31:46 +0000 Received: from localhost ([127.0.0.1]:43527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqoVe-0006fl-6M for submit@debbugs.gnu.org; Sat, 19 Dec 2020 21:31:46 -0500 Received: from mail-ed1-f47.google.com ([209.85.208.47]:41371) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqoVb-0006fX-9n for 45303@debbugs.gnu.org; Sat, 19 Dec 2020 21:31:44 -0500 Received: by mail-ed1-f47.google.com with SMTP id i24so6312564edj.8 for <45303@debbugs.gnu.org>; Sat, 19 Dec 2020 18:31:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-transfer-encoding; bh=q6JvMQn+AbVPsBDyQ1veWkSwkaQJiR8EfPlDgPWPf68=; b=tgOeHVtGAie8IFGBYioMfbpxX2I3qvcjNawovmYeXYYuvbbZZrFbQAvGgq8IJs3Mb3 z+DsiAK1QKBv2nYo5JwtYn5EvX0z/WEayiooYDWW1GMjoVlBxyGAQhCGSmF1Bg4u7yVF NMYNjQAEVw1+mY+/o5BmoQr1lBlVY2oyNe6LnjgMT28u4qGDCas9Q342dcmG8hKtfo22 tMkOFfKKV1Yk0axP/7qz6SXrsUoSbVAido0O0B5vJxWxKM+GCuxH6uw64FRb0kxUkhYX tSv1ofYMJpFxQRgO+RGv+fw1YRP2Atadw1XALajaZYIwC5Geqel+JG30BKiG3jb3KeEY 1Q3g== 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:content-transfer-encoding; bh=q6JvMQn+AbVPsBDyQ1veWkSwkaQJiR8EfPlDgPWPf68=; b=QYS/55K4v2xTNgl3i6S0CGg/FgIu29QpNEl0/S5J05Pm8du+0T5XzZP2xna2JwdhGm WnkVHrfCvI8Ii6lT7jJU2AvMJN1MhKrjxCB4mZ9lp8oaQ8hqouzGiq2aQzv2ZiafO7eQ EAxOAdXkdqG+F/gJEqHDWhBfXEbucJwZKOmAsqzu8TpXGepG4TxsjaW25NNG5DO/Isu8 GDmOPkLOjz9yI2ex0ephH+62jRmptaOZYoRdc5zRthXQCEMcEcBjbc/AEif1dQCUVl/M hn/khlcBzBk08qQJOcVQrFaBckD5vKPFBpfQFOI+1KEX050MLmcCPwDiWLGBm7U+Vt/q kflA== X-Gm-Message-State: AOAM533JGRgd44F9+rR5bNJQZsRFn7klIa4HSbUtUQZ9JIPpuXnsHucY AcSwmHakdwdF/0Uo92ZoidBWmKOiAMPbJtaEGlk0yviHYRU= X-Google-Smtp-Source: ABdhPJxZ8sQZEmQgJKVjjHLyAE0VVzhC4XkDt8CATF2MJW+cyqHpqa/VU9zGT3aiVi/VhpBfrgWvn1eqpVR0mGKZMio= X-Received: by 2002:aa7:d846:: with SMTP id f6mr10832272eds.55.1608431497229; Sat, 19 Dec 2020 18:31:37 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Sat, 19 Dec 2020 20:31:25 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: 45303@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) By sticking with commit # 3b53a591faed03679382a601b93da7fe6ce3b4af,, it compiles, but it crashes when Iopen then close an ielm window. On Sat, Dec 19, 2020 at 5:04 PM Li=C4=81u, Kiong-G=C4=93 =E5=BB=96=E5=AE=AE= =E6=AF=85 wrote: > > The linker issue remains after commit .407fb16583 > > Also, after adding -lz -lgccjit to $LIBGCCJIT in src/Makefile there's > a segmentation error at make -C src/bootstramp-emacs.exe: > > Loading c:/msys64/home/VWinUser0/Downloads/emacs/native-compmake[1]: > *** [Makefile:830: bootstrap-emacs.pdmp] Segmentation fault > make[1]: *** Deleting file 'bootstrap-emacs.pdmp' > make[1]: Leaving directory > '/home/VWinUser0/Downloads/emacs/native-comp/build/src' > make: *** [Makefile:434: src] Error 2 From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 03:38:40 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 08:38:40 +0000 Received: from localhost ([127.0.0.1]:43658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kquEh-000370-Re for submit@debbugs.gnu.org; Sun, 20 Dec 2020 03:38:40 -0500 Received: from mout.gmx.net ([212.227.17.20]:34635) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kquEf-00036m-2g for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 03:38:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608453510; bh=CSlwP+OiEOJQcgksJhh43DSY+91D9HNgesOLDX47T0s=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=FryFjMO41e5iHkp3HFEN46OD0Cz7k4U5Nomt1uS7ySDTQcP5F4XyQE32r9J2FLLIy RuOcxCNS5tpbMcVs1XnE7bT8U8KbdyyuW6c1iPs0h2xwYoWHPnOvqfx4N7nGE7VXyP 9XRe1xyUla1PMJETPYfLck4ejQUYyYREWYw7ZRos= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([212.86.52.107]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MEm27-1ksKDt0v9f-00GElc; Sun, 20 Dec 2020 09:38:30 +0100 From: Michael Albinus To: =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: Date: Sun, 20 Dec 2020 09:38:29 +0100 In-Reply-To: (UTF's message of "Sat, 19 Dec 2020 17:04:30 -0600") Message-ID: <87o8io3m9m.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:l0g6ot5cZXbMyfBrxaSKqZbAdi+bRlbm8fRFP3cjEgTPQA20qu0 daIULuKw20fCRfompI8YdRAQZvqzFfmUAsKZgozAgnOPW0OepvuUaWUnQ76i83kTs1C9hw4 uEXFoWOhE+rIeK1ST4wJT2pgJr1aMRLUxt+eGaUx6qquMu+Iv05iAdiGxpudjN+ZZoabwiT +Rk+oxURMFlamKETv5BZw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:f5f+KzIA7fw=:0te0Oz94HXR6g3uUr8W7lt 3DnFvC/sPvK9Zbz89M6sGdQ4dRhjcz+bzq0clTYUqHVFyDJNwCbyaLKV5DrN9Xd0MjHBS2/ft Mct8nXf7PTYUoZ3/sB4S32T1G7+RlrlGiWIKwjiaGL5S6+pfSFVu+UxEI2EA9BoN+T27cVa9c TtzHbB1pgBCA4CtR8BIOfd7c6ASZsqxO8NpexDoNLXz5zcdguA36Owp+Ly+WQBJ0U5al608Bw fY+D1nP5WZQVCUF5JLFk1cf+1OtcfdeggUwIBBM2bDLOcWfnmDYj2CgWxZ3/IrhgauIzEBa42 2A4zGv6BDEMzKGWQwhW0Svea9Q6NoXHiS1eplRXguiOZqt0xfkb/Mt8fVOYn3+CWnn5Rm519Z Dn2rKXDlOX2EcqemKEAldN6kBU7dPPj2GTXQYz+BoTJ4MdQUBNM9eFjEFSyTAn+v4Yp8+J9+y 5uC9vUDSVcZyNSYkHTgumSfNkBNtWxYXqtTeM0TGQHm/f5TRJcPoS8QoAB8WDAUzKewzi2Bu4 vGzr2Qj6eRZ0WV3K0HGePfuIZXW78BhS2BZaGcQ+N4dhdXK2jB1eEPhtmUbH3/I6Z0vUKbRnM 0zdx6j/R7u+6+sKEKJX1B3FAR27Hejhlu+ODNOSBMhInGX1n5Ow/r7mtiQoTM1xO4NCSDMhd2 E617fKT6B9hG4XdPYRqRVgvi6hI4QBMcNMFCfm4TeVGsl7qeZKgf6jAz+QbITYsCtYB1LTtdN h6HTQ4JpFB8wg8fQQ0T8wlm9cv44oj+qHPgvU6+C921RpmarN6/lDoc047ZwPV8O/1LqGE+K6 Mz35bbabTYtlyYFHbLmh0RfotwZoGzhsg6K1Dr/BZceD7DKHhiIrMJa/7fPxhgCu/yhRVNj9k MTcc2h2lVrF98AFIo9Iz9GkOpy02FZnUqKxi/Yw0o= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45303 Cc: _?= =?utf-8?B?S2lvbmctR8STIOW7luWuruavhQ==?= , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) =3D?UTF-8?Q?Li=3DC4=3D81u@debbugs.gnu.org, _?=3D Kiong-G=C4=93 =E5=BB=96=E5= =AE=AE=E6=AF=85 writes: > a segmentation error at make -C src/bootstramp-emacs.exe: ^^^^^ Wow, didn't know aqbout :-) SCNR, Michael. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 04:49:51 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 09:49:51 +0000 Received: from localhost ([127.0.0.1]:43719 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqvLb-0004vO-4l for submit@debbugs.gnu.org; Sun, 20 Dec 2020 04:49:51 -0500 Received: from mail-ed1-f47.google.com ([209.85.208.47]:41933) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqvLZ-0004v4-F0 for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 04:49:49 -0500 Received: by mail-ed1-f47.google.com with SMTP id i24so6766716edj.8 for <45303@debbugs.gnu.org>; Sun, 20 Dec 2020 01:49:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pHHFOt6syJqFcMmmsn9vFdvnhzPi87uweHfl3Vlxrcg=; b=GfbZEeASJWV0eZz0oB9tpQH/tjlNyvEu6WsvdBwgeiP5XvdF4IO/sIUbIBWK1Q95OL vnWhyF96TUjhoc/OTKRf5bikCLmS8xqrXYxTGyFxH3b4xPOuysbrqn78tuyOftVCutwr o1i545OWFUEBwhBDtm239tFPMf5skMMwydHFXmYE+qZn87o6WJYrfjiyIZzwXm/RC6lC eIWp5e8DvuIUnQKoUJIg7p7b/JfNJeGeg36j2j96b6W+KNj9g96Tgy4+75n7M0ue33kt wVZX/S9+yMbWzdTgdujKfJ/1YwkUNXa1J3ANUVmKx1FHRJk87CJfNjQtk1PlK0KKj/3F nOPQ== 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=pHHFOt6syJqFcMmmsn9vFdvnhzPi87uweHfl3Vlxrcg=; b=ReXGypH1STocS06Lp2XQxvn7IAvt1U+Iq7z8Y+a67DtbC7t40A0TzHz0JDlSYjPsBw HYREr4rv32JOGDVTfI6hnHZ4L0WkI3hwSmWDj4HPwX53VKz+2BLlUc64qZcWpXb5Z4mP pyUc/SsTVRjdk8Bnr1wN0+0MZzTZFyfPObdiZBhfp/ZsvtUWHa61PV7ZD/k/VbPAr9X7 tqrU5einF7umBQO6cdwkC8G9Lm7x255zGX/yV5yK6o5U9cr9lp2HvNEaynTFY6H7pk9K dOTa132ygwL92HcnXU2RZwU8W3KezBLq82s6MFRJleRGBlKC/jR5/W6eaujALie3TGQN J8jA== X-Gm-Message-State: AOAM530d5i4AGChQnU/k4TAFEJ6clag6ID3YV1fL0xj+oOU3ocN22fCJ j1FMJwNrEWJrPiurRybPgSojmWNe3XstA3gp070= X-Google-Smtp-Source: ABdhPJxyQVWu6R0N5ph+A7qcNEWMyu7F+yq5c5SXIt0VF6u9bLkssTzmZKl5WUlTxPsLYb7Fvp4MOeOVjytgj4jGZCs= X-Received: by 2002:a50:e8c4:: with SMTP id l4mr11548864edn.337.1608457783528; Sun, 20 Dec 2020 01:49:43 -0800 (PST) MIME-Version: 1.0 References: <87o8io3m9m.fsf@gmx.de> In-Reply-To: <87o8io3m9m.fsf@gmx.de> From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Sun, 20 Dec 2020 03:49:32 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: Michael Albinus Content-Type: multipart/alternative; boundary="000000000000d2ce1a05b6e24238" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000d2ce1a05b6e24238 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable That's a typo, should be make -C src/ bootstrap-emacs.exe On Sun, Dec 20, 2020, 02:38 Michael Albinus wrote: > =3D?UTF-8?Q?Li=3DC4=3D81u@debbugs.gnu.org, _?=3D Kiong-G=C4=93 =E5=BB=96= =E5=AE=AE=E6=AF=85 > writes: > > > a segmentation error at make -C src/bootstramp-emacs.exe: > ^^^^^ > Wow, didn't know aqbout :-) > > SCNR, Michael. > --000000000000d2ce1a05b6e24238 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
That's a typo, should be make -C src/ bootstrap-emacs= .exe=C2=A0

On Sun, Dec 20, 2020, 02:38 Michael Albinus <michael.albinus@gmx.de> wrote:
=3D?UTF-8?Q?Li=3DC4=3D81u@debbugs.gnu.org,= _?=3D Kiong-G=C4=93 =E5=BB=96=E5=AE=AE=E6=AF=85
<gongyi.liao@gmail.com> writes:

> a segmentation error at make -C src/bootstramp-emacs.exe:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0^^^^^
Wow, didn't know aqbout :-)

SCNR, Michael.
--000000000000d2ce1a05b6e24238-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 06:23:10 2020 Received: (at submit) by debbugs.gnu.org; 20 Dec 2020 11:23:10 +0000 Received: from localhost ([127.0.0.1]:43793 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqwnu-0007LN-Ae for submit@debbugs.gnu.org; Sun, 20 Dec 2020 06:23:10 -0500 Received: from lists.gnu.org ([209.51.188.17]:33718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqwns-0007LF-Fd for submit@debbugs.gnu.org; Sun, 20 Dec 2020 06:23:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53978) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqwnr-0004c2-Uo for bug-gnu-emacs@gnu.org; Sun, 20 Dec 2020 06:23:08 -0500 Received: from ciao.gmane.io ([116.202.254.214]:42644) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqwnq-0003lq-Do for bug-gnu-emacs@gnu.org; Sun, 20 Dec 2020 06:23:07 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kqwno-00088T-Ff for bug-gnu-emacs@gnu.org; Sun, 20 Dec 2020 12:23:04 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Sun, 20 Dec 2020 11:22:57 +0000 Message-ID: <86im8w4t7y.fsf@gmail.com> References: <83k0te6c7i.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:AIZrsp23KTMundTHkZ7oLhiPTJE= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 5 X-Spam_score: 0.5 X-Spam_bar: / X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Sat 19 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > Pal Gloss writes: > >> Hi, >> >> thank you for the quick fixes >> >> I do not understand 3b53a591faed03679382a601b93da7fe6ce3b4af: the way > > No you are right, this morning I was a little in a rush and I might have > failed grepping, hopefully ab985f41db is better. > > [...] > >> I just checked and these %emacs_dir% are also present in a "normal" emacs >> 27.1 (installed via msys2/mingw pacman, not self-built). >> >>> Right so (unless I'm forgetting something) just the zlib linker error >>> should be remaining, correct? >> >> It was not only zlib that was missing, but also gccjit (my hack sets both: LIBGCCJIT = -lz -lgccjit) > > With 407fb16583 I think '-lgccjit' should be unnecessary on Windows now, > is it? There is one piece missing from that commit: another define around L379 to replace gcc_jit_type_get_const with fn_gcc_jit_type_get_const. AndyM From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 11:15:57 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 16:15:57 +0000 Received: from localhost ([127.0.0.1]:45411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr1NF-0008Uv-I4 for submit@debbugs.gnu.org; Sun, 20 Dec 2020 11:15:57 -0500 Received: from mout.gmx.net ([212.227.15.18]:43683) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr1ND-0008Ua-Qr for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 11:15:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608480949; bh=+hWdVbd+k+3ATC2duLrSp0mHkrVfsQdSJVzyiaWtLhg=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=TTnNLrrHl98vN4bC31Ll53gLcyFg5bcs712gytFYSG+vBBjCQVjpX+xSQ4zzBTWuV YbedQenwl+XYBHwGzOJQ1OTUX8lGaMBL/7gcXFAqgUJQEvEBqo/R6kkRQXVOB7O/QH lZzqvaIMrwQE6Vpc+1oDvbbNRLnC9fJCgVSGEJQ8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [217.136.108.250] ([217.136.108.250]) by web-mail.gmx.net (3c-app-mailcom-bs15.server.lan [172.19.170.183]) (via HTTP); Sun, 20 Dec 2020 17:15:49 +0100 MIME-Version: 1.0 Message-ID: From: Pal Gloss To: Eli Zaretskii Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows ... strsignal in msys2/mingw64 Content-Type: text/plain; charset=UTF-8 Date: Sun, 20 Dec 2020 17:15:49 +0100 Importance: normal Sensitivity: Normal In-Reply-To: <837dpdtx09.fsf@gnu.org> References: <837dpdtx09.fsf@gnu.org> X-UI-Message-Type: mail X-Priority: 3 X-Provags-ID: V03:K1:yy96Dz3SG07+NQYMkKQcQPG+843BRqODEjlkE6w3EUTJin80VhKOfGXEpY1em7fEi+98S YkJ+tqLW5XFeudH/osyzy3vs3qsRYLz3mB0guxAeCYs0P82Se37Vdr6r19nCLmwAjxTRJ3cr/pZT xV179RmXnmJ1+kkvJlpT4b9T+iF89A+sWDcYC9UNgmMIWcutYGKPR567E/igUFDwltpG7m97kMLJ mWhruIPQHWTs2jjtaB7FThNh+ulKWH3D4lhJ9NRylhp8CXDRLYV7M3kegb1ORJKrf2sVSGhWQ5zP /k= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:ecs38oUwZHY=:31G9B0lrVGYEIT+Xw+X/8l KjWfk4k6F0j9n1LlMVisqTE+GhBPDv10hMds4GqYYDkDAR+xrA7DF8bf3O6+DBsyrzKTK41ne NkWCMwSjC1/jJzGy1WwV7uJB71pkN1/ZOQAvVB6eVKi9tMwE/sxeV2iM2gLx3BqmXvjC5y2J5 fSLypSLVFmApD2PdE25gHlBA900zLQTX15iLEJeFkjZXFCqS7XXaxTMP3cdDXMgSEJ/5+AeHi BW8GdWJ6Ato3PqiiXn+H9D+ClHKjDG1mdAZtl4K6za6zmTr36Mib14nnPfmkKYmn9TCWVDmTi AHRjWvP24Q30gQlfn6CVwZLbKjJIGeHEoqULE6GQ6V/c4J/hEBfAQ/n4pFVZmK8Nf472kpNBV ZShgok5VVebllbB+dOzzjyZxqjjmhl2HwB7jlbOd5kDXVXQ6kYhiEMR+8wlXpGe5C5oEDS3sI +g2+Afp7so8JF97dadZ8Y2+pd6D1WC+wtKlP0ne7qqx8ni7xDhmdAAQ66AuaW0u9hfgULcqO4 DBEXdT5Rx05qVRhr8OvEbkR3yacGITzPBiXNua0yXHgVn++1KOtvhbjxayZteKp/Qr4ex7GJG 5vG17zWT3rrEU= X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) > But in general, I'd suggest to file a bug report with MSYS2 folks: > the DLL and the import library shouldn't export strsignal. Sorry for my previous mail, I raised the issue in the wrong repository so I closed it and re-opened it in the right (I hope) place: https://github.com/msys2/MINGW-packages/issues/7484 From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 11:23:33 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 16:23:33 +0000 Received: from localhost ([127.0.0.1]:45434 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr1Ub-0000Fs-50 for submit@debbugs.gnu.org; Sun, 20 Dec 2020 11:23:33 -0500 Received: from mout.gmx.net ([212.227.15.18]:53651) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr1Ua-0000Fd-2X for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 11:23:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608481405; bh=4tDiKtXHwIYPOc1EIIJnIO7VL4/Qpl3Ef0LnwP2J/yA=; h=X-UI-Sender-Class:From:To:Subject:Date:In-Reply-To:References; b=XcgAV3oRWNL37dirFEYfUrrT7iHF/VFxtQymMaqcGPKlHhOm2Z9+VYdLZ5FfOYSZa csJp6S1Il8jp0Tne7qcmAygb1lAULFbzxfENEHGH7edV8zwsMeE6gcGvKO/wf2/LQA CoBNcT6zo4Cv/H8SbirqwO8OH0N494NQYwm89tYo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [217.136.108.250] ([217.136.108.250]) by web-mail.gmx.net (3c-app-mailcom-bs15.server.lan [172.19.170.183]) (via HTTP); Sun, 20 Dec 2020 17:23:25 +0100 MIME-Version: 1.0 Message-ID: From: Pal Gloss To: 45303@debbugs.gnu.org Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Content-Type: multipart/mixed; boundary=rehcsed-6a0e4464-0bb2-4dc5-b8b4-d1731a6e2ca4 Date: Sun, 20 Dec 2020 17:23:25 +0100 Importance: normal Sensitivity: Normal In-Reply-To: References: <83k0te6c7i.fsf@gnu.org> X-UI-Message-Type: mail X-Priority: 3 X-Provags-ID: V03:K1:NgyIhbFttLj+GfBust4bVDwYzStz9QGzQ6ZN0IYj0YOJ+DY5tN3HTh4anYUXmwvUKlsdM KcLLkTgrNtONwaMg3oe9ugx3iLzGgnL5LvhHjOOyYs+lmYTI2PiLeeoQxiGxMckCq2D9GQU8ZCwF pHJ20zRfymM+vxchAxucfsK8Tyaq/CFp9M0xVHF1DdssDOIuYc7FHiSzDVM1GgyYfoWLduGWXyTm MMrFcvGdXbFuJNM0POloc+9MuqM/lbKlMJqPxXJxi0tdyCZ5ys5pDgRIOkgCNoUoCj5ypuPjbGoZ yk= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:a9Ym/w8zA0E=:lmTFF/8PVFqarzsaHOiD8F xOW7OWnd0NKfKO0vIDYjEfxxYjAE/2GGFPx4rT4Ai8fhhMtjENNI8Cjor84ALNR4OjseuDSOP RfgXdOkZo2ML9wRTJGkPvfGtUfariiTMxL3+KYZ2fOtVEzXaRAITQOhOIf6Kkz8Lxgv1aQBFN yT2Eo/rKJjBcnE6Z1zirptfGUgDtZNC4KZat3Qb2TmYk5elAYg2bHSUpWYR+VcooXQL0z0CCX GfVqhdl6f8hSUoNxviEuEYjknCKBE4XuN29GvMSE8TTmTon/8MEkyvKV4F89271N2Jb5XJdzq PEWc0L/U8Rommi46sEZRfdV6r20If/Y898tBDjVsa2HqkdIpRulq78ppXNO+ShA/Tf5xvIOFS s7WO9Y16YKPaBUljCaz3U4wBooSRXsDiUoggKZrums/6qOch6CSdWw+WHOPSjbu8TwmVIpS0Z k0nxRyH5E8VCLoGMQZN+xzYsPApUWMx59qnvLTiQt3K6BSUyi9Nzqaz2bBRN5mJMqfNoCgt9c YgiQNmVuzmuk7IrrfqKod0kWQxSq/3ZEkFBCV7R8xK8mDNFvgweclE6/1UcL6hC7Zkaoz8eHc 0t5ktcI2+74TE5MDqrB/0NHaXGotHaOFS5 X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --rehcsed-6a0e4464-0bb2-4dc5-b8b4-d1731a6e2ca4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Andrea, =C2=A0 Sorry for sending my previous mail to your address only and not to the bug= tracker=2E I'm not used to debbugs (as you can guess from the many HTML mails I sent,= blush)=2E I wrote=C2=A0 > > I do not understand 3b53a591faed03679382a601b93da7fe6ce3b4af: the way You answered > No you are right, this morning I was a little in a rush and I might have > failed grepping, hopefully ab985f41db is better=2E There are still problems related to the usage of Fdirectory_files and internal_condition_case_5 I think=2E At least, I get a crash after the bootstrap is dumped (? see attached build log) Debugger entered--Lisp error: (wrong-type-argument wholenump t) > With 407fb16583 I think '-lgccjit' should be unnecessary on Windows now,= is it? It is still needed, see my previous mail=2E But adding -lgccjit allows th= e build to proceed but crashes later on=2E Can I propose a patch if I have not signed the paperwork? Thank you for this great new feature=2E These are the commands I ran to produce the attached build log: #+begin_src shell :exports code ( PROCESSORS_TO_USE=3D"3" EMACS_VERSION=3D"emacs-native-comp" cd =2E=2E/emacs rm -rf =2E=2E/build git restore =2E git status git rev-parse HEAD gcc --version =2E/autogen=2Esh mkdir -p =2E=2E/build cd =2E=2E/build =2E=2E/emacs/configure \ --with-xml2 \ --without-pop \ --prefix=3D"/home/cramaph1/$EMACS_VERSION/dest" \ --without-compress-install \ --without-dbus \ --with-nativecomp \ --with-modules 'CFLAGS=3D-O2 -g3' # fix linker errors by making sure the correct libraries are added t= o the linker command sed -i -e 's/^LIBGCCJIT =3D *$/LIBGCCJIT =3D -lz -lgccjit/' src/Make= file make -j"$PROCESSORS_TO_USE" make install ) 2>&1 | tee /tmp/emacs-$(git rev-parse HEAD)-lz-lgccjit=2Elog #+end_src --rehcsed-6a0e4464-0bb2-4dc5-b8b4-d1731a6e2ca4 Content-Type: application/octet-stream Content-Disposition: attachment; filename=emacs-ab985f41db5fdaeada513d28a065332fd8838cf4-lz-lgccjit.log Content-Transfer-Encoding: base64 T24gYnJhbmNoIGZlYXR1cmUvbmF0aXZlLWNvbXAKWW91ciBicmFuY2ggaXMgdXAgdG8gZGF0ZSB3 aXRoICdvcmlnaW4vZmVhdHVyZS9uYXRpdmUtY29tcCcuCgpub3RoaW5nIHRvIGNvbW1pdCwgd29y a2luZyB0cmVlIGNsZWFuCmFiOTg1ZjQxZGI1ZmRhZWFkYTUxM2QyOGEwNjUzMzJmZDg4MzhjZjQK Z2NjLmV4ZSAoUmV2NiwgQnVpbHQgYnkgTVNZUzIgcHJvamVjdCkgMTAuMi4wDQpDb3B5cmlnaHQg KEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQpUaGlzIGlzIGZyZWUgc29m dHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBO Tw0Kd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuDQoNCkNoZWNraW5nIHdoZXRoZXIgeW91IGhhdmUgdGhlIG5l Y2Vzc2FyeSB0b29scy4uLgooUmVhZCBJTlNUQUxMLlJFUE8gZm9yIG1vcmUgZGV0YWlscyBvbiBi dWlsZGluZyBFbWFjcykKQ2hlY2tpbmcgZm9yIGF1dG9jb25mIChuZWVkIGF0IGxlYXN0IHZlcnNp b24gMi42NSkgLi4uIG9rCllvdXIgc3lzdGVtIGhhcyB0aGUgcmVxdWlyZWQgdG9vbHMuClJ1bm5p bmcgJ2F1dG9yZWNvbmYgLWZpIC1JIG00JyAuLi4KWW91IGNhbiBub3cgcnVuICcuL2NvbmZpZ3Vy ZScuCmNvbmZpZ3VyZTogbG9hZGluZyBzaXRlIHNjcmlwdCAvbWluZ3c2NC9ldGMvY29uZmlnLnNp dGUKY2hlY2tpbmcgZm9yIHhjcnVuLi4uIG5vCmNoZWNraW5nIGZvciBHTlUgTWFrZS4uLiBtYWtl CmNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uIHg4Nl82NC13NjQtbWluZ3czMgpjaGVja2lu ZyBob3N0IHN5c3RlbSB0eXBlLi4uIHg4Nl82NC13NjQtbWluZ3czMgpjaGVja2luZyB0aGUgY29t cGlsZXIncyB0YXJnZXQuLi4geDg2XzY0LXc2NC1taW5ndzMyCmNoZWNraW5nIGZvciBnY2MuLi4g Z2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5n IGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLmV4ZQpjaGVja2lu ZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIC5leGUKY2hlY2tpbmcgd2hldGhlciB3ZSBh cmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZp bGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVy Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2luZyBm b3IgZ2NjIG9wdGlvbiB0byBlbmFibGUgQzExIGZlYXR1cmVzLi4uIG5vbmUgbmVlZGVkCmNoZWNr aW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIGlzIGNsYW5nLi4uIG5vCmNoZWNraW5nIGZvciBjb21w aWxlciBvcHRpb24gbmVlZGVkIHdoZW4gY2hlY2tpbmcgZm9yIGRlY2xhcmF0aW9ucy4uLiBub25l CmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFuZCBjYyB1bmRlcnN0YW5kIC1jIGFuZCAtbyB0b2dldGhl ci4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gZ2NjIC1J IC4uL2VtYWNzL250L2luYyAtRQpjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBs aW5lcyBhbmQgLWUuLi4gL3Vzci9iaW4vZ3JlcApjaGVja2luZyBmb3IgZWdyZXAuLi4gL3Vzci9i aW4vZ3JlcCAtRQpjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiB5ZXMKY2hlY2tp bmcgZm9yIHN5cy90eXBlcy5oLi4uIHllcwpjaGVja2luZyBmb3Igc3lzL3N0YXQuaC4uLiB5ZXMK Y2hlY2tpbmcgZm9yIHN0ZGxpYi5oLi4uIHllcwpjaGVja2luZyBmb3Igc3RyaW5nLmguLi4geWVz CmNoZWNraW5nIGZvciBtZW1vcnkuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0cmluZ3MuaC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGludHR5cGVzLmguLi4geWVzCmNoZWNraW5nIGZvciBzdGRpbnQuaC4u LiB5ZXMKY2hlY2tpbmcgZm9yIHVuaXN0ZC5oLi4uIHllcwpjaGVja2luZyBtaW5peC9jb25maWcu aCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcgbWluaXgvY29uZmlnLmggcHJlc2VuY2UuLi4gbm8K Y2hlY2tpbmcgZm9yIG1pbml4L2NvbmZpZy5oLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgaXQgaXMg c2FmZSB0byBkZWZpbmUgX19FWFRFTlNJT05TX18uLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgX1hP UEVOX1NPVVJDRSBzaG91bGQgYmUgZGVmaW5lZC4uLiBubwpjaGVja2luZyBmb3IgTWluaXggQW1z dGVyZGFtIGNvbXBpbGVyLi4uIG5vCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyBmb3Ig cmFubGliLi4uIHJhbmxpYgpjaGVja2luZyBmb3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMg bmVlZGVkIGZvciBsYXJnZSBmaWxlcy4uLiBubwpjaGVja2luZyBmb3IgX0ZJTEVfT0ZGU0VUX0JJ VFMgdmFsdWUgbmVlZGVkIGZvciBsYXJnZSBmaWxlcy4uLiA2NApjaGVja2luZyB3aGV0aGVyIHRo ZSBjb21waWxlciBpcyBjbGFuZy4uLiBubwpjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFu ZGxlcyAtV2Vycm9yIC1XdW5rbm93bi13YXJuaW5nLW9wdGlvbi4uLiBubwpjaGVja2luZyB3aGV0 aGVyIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgaXMgc3VwcG9ydGVkLi4uIHllcwpj aGVja2luZyB3aGV0aGVyIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgaXMgbmVlZGVk Li4uIG5vCmNoZWNraW5nIHdoZXRoZXIgLVd1bmluaXRpYWxpemVkIGlzIHN1cHBvcnRlZC4uLiB5 ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLWZuby1jb21tb24uLi4geWVz CmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XYWxsLi4uIHllcwpjaGVja2lu ZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2FyaXRoLWNvbnZlcnNpb24uLi4geWVzCmNo ZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZGF0ZS10aW1lLi4uIHllcwpjaGVj a2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2Rpc2FibGVkLW9wdGltaXphdGlvbi4u LiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdkb3VibGUtcHJvbW90 aW9uLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2R1cGxpY2F0 ZWQtY29uZC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdleHRy YS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdmb3JtYXQtc2ln bmVkbmVzcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdpbml0 LXNlbGYuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XaW52YWxp ZC1wY2guLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XbG9naWNh bC1vcC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdtaXNzaW5n LWRlY2xhcmF0aW9ucy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMg LVdtaXNzaW5nLWluY2x1ZGUtZGlycy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVy IGhhbmRsZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBj b21waWxlciBoYW5kbGVzIC1XbmVzdGVkLWV4dGVybnMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIg QyBjb21waWxlciBoYW5kbGVzIC1XbnVsbC1kZXJlZmVyZW5jZS4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbi4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdvcGVubXAtc2ltZC4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdwYWNrZWQuLi4geWVzCmNoZWNraW5n IHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XcG9pbnRlci1hcml0aC4uLiB5ZXMKY2hlY2tp bmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdzdHJpY3QtcHJvdG90eXBlcy4uLiB5ZXMK Y2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdzdWdnZXN0LWF0dHJpYnV0ZT1u b3JldHVybi4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdzdWdn ZXN0LWZpbmFsLW1ldGhvZHMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5k bGVzIC1Xc3VnZ2VzdC1maW5hbC10eXBlcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBp bGVyIGhhbmRsZXMgLVd0cmFtcG9saW5lcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBp bGVyIGhhbmRsZXMgLVd1bmluaXRpYWxpemVkLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIEMgY29t cGlsZXIgaGFuZGxlcyAtV3Vua25vd24tcHJhZ21hcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVd1bnVzZWQtbWFjcm9zLi4uIHllcwpjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV3ZhcmlhZGljLW1hY3Jvcy4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlLi4u IHllcwpjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3dyaXRlLXN0cmluZ3Mu Li4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XYXJyYXktYm91bmRz PTIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XYXR0cmlidXRl LWFsaWFzPTIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZm9y bWF0PTIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZm9ybWF0 LXRydW5jYXRpb249Mi4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMg LVdpbXBsaWNpdC1mYWxsdGhyb3VnaD01Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtV3NoaWZ0LW92ZXJmbG93PTIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBj b21waWxlciBoYW5kbGVzIC1XdmxhLWxhcmdlci10aGFuPTQwMzEuLi4geWVzCmNoZWNraW5nIHdo ZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XcmVkdW5kYW50LWRlY2xzLi4uIChjYWNoZWQpIG5v CmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1Xbm8tbWlzc2luZy1maWVsZC1p bml0aWFsaXplcnMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1X bm8tb3ZlcnJpZGUtaW5pdC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRs ZXMgLVduby1zaWduLWNvbXBhcmUuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBo YW5kbGVzIC1Xbm8tdHlwZS1saW1pdHMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxl ciBoYW5kbGVzIC1Xbm8tdW51c2VkLXBhcmFtZXRlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVduby1mb3JtYXQtbm9ubGl0ZXJhbC4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby1wb2ludGVyLXNpZ24uLi4geWVzCmNoZWNr aW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpj aGVja2luZyBjb21tYW5kIHRvIHN5bWxpbmsgZmlsZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5Li4u IC9iaW4vbG4KY2hlY2tpbmcgZm9yIGluc3RhbGwtaW5mby4uLiAvdXNyL2Jpbi9pbnN0YWxsLWlu Zm8KY2hlY2tpbmcgZm9yIGd6aXAuLi4gL3Vzci9iaW4vZ3ppcApjaGVja2luZyBmb3IgJ2ZpbmQn IGFyZ3MgdG8gZGVsZXRlIGEgZmlsZS4uLiAtZGVsZXRlCmNoZWNraW5nIGZvciBicmV3Li4uIG5v CmNoZWNraW5nIGZvciAtem5vY29tYnJlbG9jLi4uIG5vdCBuZWVkZWQKY2hlY2tpbmcgd2hldGhl ciBhZGRyZXNzZXMgYXJlIHNhbml0aXplZC4uLiBubwpjaGVja2luZyBmb3IgbGlicmFyeSBjb250 YWluaW5nIHNxcnQuLi4gbm9uZSByZXF1aXJlZApjaGVja2luZyBmb3IgcGtnLWNvbmZpZy4uLiAv bWluZ3c2NC9iaW4vcGtnLWNvbmZpZwpjaGVja2luZyBwa2ctY29uZmlnIGlzIGF0IGxlYXN0IHZl cnNpb24gMC45LjAuLi4geWVzCmNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2FyZC5oLi4uIG5v CmNoZWNraW5nIGZvciBzeXMvc291bmRjYXJkLmguLi4gbm8KY2hlY2tpbmcgZm9yIHNvdW5kY2Fy ZC5oLi4uIG5vCmNoZWNraW5nIGZvciBtbXN5c3RlbS5oLi4uIHllcwpjaGVja2luZyBmb3IgX29z c19pb2N0bCBpbiAtbG9zc2F1ZGlvLi4uIG5vCmNoZWNraW5nIGZvciBhbHNhID49IDEuMC4wLi4u IG5vCmNoZWNraW5nIGZvciBsaW51eC9mcy5oLi4uIG5vCmNoZWNraW5nIGZvciBtYWxsb2MuaC4u LiB5ZXMKY2hlY2tpbmcgZm9yIHN5cy9zeXN0ZW1pbmZvLmguLi4gbm8KY2hlY2tpbmcgZm9yIHN5 cy9zeXNpbmZvLmguLi4gbm8KY2hlY2tpbmcgZm9yIGNvZmYuaC4uLiBubwpjaGVja2luZyBmb3Ig cHR5LmguLi4gbm8KY2hlY2tpbmcgZm9yIHN5cy9yZXNvdXJjZS5oLi4uIHllcwpjaGVja2luZyBm b3Igc3lzL3V0c25hbWUuaC4uLiBubwpjaGVja2luZyBmb3IgcHdkLmguLi4geWVzCmNoZWNraW5n IGZvciB1dG1wLmguLi4gbm8KY2hlY2tpbmcgZm9yIHV0aWwuaC4uLiBubwpjaGVja2luZyBmb3Ig c2FuaXRpemVyL2xzYW5faW50ZXJmYWNlLmguLi4gbm8KY2hlY2tpbmcgZm9yIHN5cy9zb2NrZXQu aC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHN0ZGxpYi5oLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBm b3IgdW5pc3RkLmguLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBzeXMvcGFyYW0uaC4uLiB5 ZXMKY2hlY2tpbmcgZm9yIHB0aHJlYWQuaC4uLiAoY2FjaGVkKSBubwpjaGVja2luZyBmb3IgbWFs bG9jL21hbGxvYy5oLi4uIG5vCmNoZWNraW5nIGZvciBzeXMvdW4uaC4uLiBubwpjaGVja2luZyBm b3IgZGlyZW50LmguLi4geWVzCmNoZWNraW5nIGZvciBleGVjaW5mby5oLi4uIG5vCmNoZWNraW5n IGZvciBzdGRpb19leHQuaC4uLiBubwpjaGVja2luZyBmb3Igc3lzL3Zmcy5oLi4uIG5vCmNoZWNr aW5nIGZvciBzeXMvZnNfdHlwZXMuaC4uLiBubwpjaGVja2luZyBmb3IgZ2V0b3B0LmguLi4gKGNh Y2hlZCkgbm8KY2hlY2tpbmcgZm9yIHN5cy9jZGVmcy5oLi4uIHllcwpjaGVja2luZyBmb3Igc3lz L3RpbWUuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGllZWU3NTQuaC4uLiBubwpjaGVja2luZyBmb3Ig bGltaXRzLmguLi4geWVzCmNoZWNraW5nIGZvciB3Y2hhci5oLi4uIHllcwpjaGVja2luZyBmb3Ig c3RkaW50LmguLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBpbnR0eXBlcy5oLi4uIChjYWNo ZWQpIHllcwpjaGVja2luZyBmb3Igc3lzL3NlbGVjdC5oLi4uIG5vCmNoZWNraW5nIGZvciBzeXMv cmFuZG9tLmguLi4gbm8KY2hlY2tpbmcgZm9yIHN5cy9zdGF0LmguLi4gKGNhY2hlZCkgeWVzCmNo ZWNraW5nIGZvciBBRERSX05PX1JBTkRPTUlaRS4uLiBubwpjaGVja2luZyBmb3IgdGVybS5oLi4u IG5vCmNoZWNraW5nIHdoZXRoZXIgdGltZS5oIGFuZCBzeXMvdGltZS5oIG1heSBib3RoIGJlIGlu Y2x1ZGVkLi4uIHllcwpjaGVja2luZyBmb3Igc3lzL3dhaXQuaCB0aGF0IGlzIFBPU0lYLjEgY29t cGF0aWJsZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIG5ldC9pZi5oLi4uIG5vCmNoZWNraW5nIGZvciBp ZmFkZHJzLmguLi4gbm8KY2hlY2tpbmcgZm9yIG5ldC9pZl9kbC5oLi4uIG5vCmNoZWNraW5nIGZv ciBzdHJ1Y3QgaWZyZXEuaWZyX2ZsYWdzLi4uIG5vCmNoZWNraW5nIGZvciBzdHJ1Y3QgaWZyZXEu aWZyX2h3YWRkci4uLiBubwpjaGVja2luZyBmb3Igc3RydWN0IGlmcmVxLmlmcl9uZXRtYXNrLi4u IG5vCmNoZWNraW5nIGZvciBzdHJ1Y3QgaWZyZXEuaWZyX2Jyb2FkYWRkci4uLiBubwpjaGVja2lu ZyBmb3Igc3RydWN0IGlmcmVxLmlmcl9hZGRyLi4uIG5vCmNoZWNraW5nIGZvciBzdHJ1Y3QgaWZy ZXEuaWZyX2FkZHIuc2FfbGVuLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgZ2NjIHVuZGVyc3RhbmRz IC1NTUQgLU1GLi4uIHllcwpjaGVja2luZyBmb3IgWC4uLiBubwpjaGVja2luZyB3aGV0aGVyIFdp bmRvd3MgQVBJIGhlYWRlcnMgYXJlIHJlY2VudCBlbm91Z2guLi4geWVzCmNoZWNraW5nIGZvciB3 aW5kcmVzLi4uIHdpbmRyZXMKY2hlY2tpbmcgd2hldGhlciBtYWxsb2MgaXMgRG91ZyBMZWEgc3R5 bGUuLi4gbm8KY2hlY2tpbmcgZm9yIGdldHBhZ2VzaXplLi4uIHllcwpjaGVja2luZyBmb3Igd29y a2luZyBtbWFwLi4uIG5vCmNoZWNraW5nIGZvciBtYWluIGluIC1sWGJzZC4uLiBubwpjaGVja2lu ZyBmb3IgdGhyZWFkIHN1cHBvcnQuLi4geWVzCmNoZWNraW5nIGZvciBsaWJyc3ZnLTIuMCA+PSAy LjE0LjAuLi4geWVzCmNoZWNraW5nIGZvciBnZXRhZGRyaW5mb19hIGluIC1sYW5sLi4uIG5vCmNo ZWNraW5nIGZvciBsZ2V0ZmlsZWNvbiBpbiAtbHNlbGludXguLi4gbm8KY2hlY2tpbmcgZm9yIGdu dXRscyA+PSAyLjEyLjIuLi4geWVzCmNoZWNraW5nIGZvciBsaWJzeXN0ZW1kID49IDIyMi4uLiBu bwpjaGVja2luZyBmb3IgamFuc3NvbiA+PSAyLjcuLi4geWVzCmNoZWNraW5nIHdpbmRvd3MuaCB1 c2FiaWxpdHkuLi4geWVzCmNoZWNraW5nIHdpbmRvd3MuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tp bmcgZm9yIHdpbmRvd3MuaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGhhcmZidXp6ID49IDEuMi4zLi4u IHllcwpjaGVja2luZyBmb3IgWDExL3hwbS5oLi4uIHllcwpjaGVja2luZyBmb3IganBlZ2xpYiA2 YiBvciBsYXRlci4uLiAtbGpwZWcKY2hlY2tpbmcgZm9yIGxjbXMyLi4uIHllcwpjaGVja2luZyBm b3IgbGlicmFyeSBjb250YWluaW5nIGluZmxhdGVFbmQuLi4gLWx6CmNoZWNraW5nIGZvciBkbGFk ZHIuLi4gbm8KY2hlY2tpbmcgZm9yIGRsZnVuYy4uLiBubwpjaGVja2luZyBmb3IgZ2NjX2ppdF9j b250ZXh0X2FjcXVpcmUgaW4gLWxnY2NqaXQuLi4geWVzCmNoZWNraW5nIGxpYmdjY2ppdC5oIHVz YWJpbGl0eS4uLiB5ZXMKY2hlY2tpbmcgbGliZ2Njaml0LmggcHJlc2VuY2UuLi4geWVzCmNoZWNr aW5nIGZvciBsaWJnY2NqaXQuaC4uLiB5ZXMKY2hlY2tpbmcgcG5nLmggdXNhYmlsaXR5Li4uIHll cwpjaGVja2luZyBwbmcuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIHBuZy5oLi4uIHll cwpjaGVja2luZyB3aGV0aGVyIHBuZ19sb25nam1wIGlzIGRlY2xhcmVkLi4uIHllcwpjaGVja2lu ZyB0aWZmaW8uaCB1c2FiaWxpdHkuLi4geWVzCmNoZWNraW5nIHRpZmZpby5oIHByZXNlbmNlLi4u IHllcwpjaGVja2luZyBmb3IgdGlmZmlvLmguLi4geWVzCmNoZWNraW5nIGdpZl9saWIuaCB1c2Fi aWxpdHkuLi4geWVzCmNoZWNraW5nIGdpZl9saWIuaCBwcmVzZW5jZS4uLiB5ZXMKY2hlY2tpbmcg Zm9yIGdpZl9saWIuaC4uLiB5ZXMKY2hlY2tpbmcgZ3BtLmggdXNhYmlsaXR5Li4uIG5vCmNoZWNr aW5nIGdwbS5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciBncG0uaC4uLiBubwpjaGVja2lu ZyBmb3IgbGlieG1sLTIuMCA+IDIuNi4xNy4uLiB5ZXMKY2hlY2tpbmcgZm9yIG1haWxsb2NrIGlu IC1sbWFpbC4uLiBubwpjaGVja2luZyBmb3IgbWFpbGxvY2sgaW4gLWxsb2NrZmlsZS4uLiBubwpj aGVja2luZyBmb3IgbGlibG9ja2ZpbGUuc28uLi4gbm8KY2hlY2tpbmcgbWFpbGxvY2suaCB1c2Fi aWxpdHkuLi4gbm8KY2hlY2tpbmcgbWFpbGxvY2suaCBwcmVzZW5jZS4uLiBubwpjaGVja2luZyBm b3IgbWFpbGxvY2suaC4uLiBubwpjaGVja2luZyBmb3IgYWNjZXB0NC4uLiBubwpjaGVja2luZyBm b3IgZmNoZGlyLi4uIG5vCmNoZWNraW5nIGZvciBnZXRob3N0bmFtZS4uLiAoY2FjaGVkKSB5ZXMK Y2hlY2tpbmcgZm9yIGdldHJ1c2FnZS4uLiBubwpjaGVja2luZyBmb3IgZ2V0X2N1cnJlbnRfZGly X25hbWUuLi4gbm8KY2hlY2tpbmcgZm9yIGxyYW5kNDguLi4gbm8KY2hlY2tpbmcgZm9yIHJhbmRv bS4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIHJpbnQuLi4geWVzCmNoZWNraW5nIGZvciB0 cnVuYy4uLiB5ZXMKY2hlY2tpbmcgZm9yIHNlbGVjdC4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcg Zm9yIGdldHBhZ2VzaXplLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBmb3Igc2V0bG9jYWxlLi4u IHllcwpjaGVja2luZyBmb3IgbmV3bG9jYWxlLi4uIG5vCmNoZWNraW5nIGZvciBnZXRybGltaXQu Li4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBzZXRybGltaXQuLi4gKGNhY2hlZCkgeWVzCmNo ZWNraW5nIGZvciBzaHV0ZG93bi4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIHB0aHJlYWRf c2lnbWFzay4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIHN0cnNpZ25hbC4uLiB5ZXMKY2hl Y2tpbmcgZm9yIHNldGl0aW1lci4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIHRpbWVyX2dl dG92ZXJydW4uLi4gbm8KY2hlY2tpbmcgZm9yIHNlbmR0by4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tp bmcgZm9yIHJlY3Zmcm9tLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBmb3IgZ2V0c29ja25hbWUu Li4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBnZXRpZmFkZHJzLi4uIG5vCmNoZWNraW5nIGZv ciBmcmVlaWZhZGRycy4uLiBubwpjaGVja2luZyBmb3IgZ2FpX3N0cmVycm9yLi4uIChjYWNoZWQp IHllcwpjaGVja2luZyBmb3Igc3luYy4uLiBubwpjaGVja2luZyBmb3IgZ2V0cHdlbnQuLi4gbm8K Y2hlY2tpbmcgZm9yIGVuZHB3ZW50Li4uIG5vCmNoZWNraW5nIGZvciBnZXRncmVudC4uLiBubwpj aGVja2luZyBmb3IgZW5kZ3JlbnQuLi4gbm8KY2hlY2tpbmcgZm9yIGNmbWFrZXJhdy4uLiBubwpj aGVja2luZyBmb3IgY2ZzZXRzcGVlZC4uLiBubwpjaGVja2luZyBmb3IgX19leGVjdXRhYmxlX3N0 YXJ0Li4uIG5vCmNoZWNraW5nIGZvciBsb2cyLi4uIHllcwpjaGVja2luZyBmb3IgcHRocmVhZF9z ZXRuYW1lX25wLi4uIHllcwpjaGVja2luZyBmb3IgcHRocmVhZF9zZXRfbmFtZV9ucC4uLiBubwpj aGVja2luZyB3aGV0aGVyIHB0aHJlYWRfc2V0bmFtZV9ucCB0YWtlcyBhIHNpbmdsZSBhcmd1bWVu dC4uLiBubwpjaGVja2luZyB3aGV0aGVyIHB0aHJlYWRfc2V0bmFtZV9ucCB0YWtlcyB0aHJlZSBh cmd1bWVudHMuLi4gbm8KY2hlY2tpbmcgZm9yIGFsaWduZWRfYWxsb2MuLi4gbm8KY2hlY2tpbmcg Zm9yIHBvc2l4X21lbWFsaWduLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgYWxpZ25lZF9hbGxvYyBp cyBkZWNsYXJlZC4uLiBubwpjaGVja2luZyBmb3IgcG9zaXhfbWFkdmlzZS4uLiBubwpjaGVja2lu ZyBmb3IgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MuLi4geWVzCmNoZWNraW5nIGZvciBfX2J1aWx0 aW5fdW53aW5kX2luaXQuLi4geWVzCmNoZWNraW5nIGZvciBfTEFSR0VGSUxFX1NPVVJDRSB2YWx1 ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzLi4uIG5vCmNoZWNraW5nIGZvciBncmFudHB0Li4uIG5v CmNoZWNraW5nIGZvciBnZXRwdC4uLiBubwpjaGVja2luZyBmb3IgcG9zaXhfb3BlbnB0Li4uIG5v CmNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgdHB1dHMuLi4gbm9uZSByZXF1aXJlZApj aGVja2luZyBmb3IgdGltZXJmZCBpbnRlcmZhY2UuLi4gbm8KY2hlY2tpbmcgd2hldGhlciBzaWdu YWxzIGNhbiBiZSBoYW5kbGVkIG9uIGFsdGVybmF0ZSBzdGFjay4uLiBubwpjaGVja2luZyB2YWxn cmluZC92YWxncmluZC5oIHVzYWJpbGl0eS4uLiBubwpjaGVja2luZyB2YWxncmluZC92YWxncmlu ZC5oIHByZXNlbmNlLi4uIG5vCmNoZWNraW5nIGZvciB2YWxncmluZC92YWxncmluZC5oLi4uIG5v CmNoZWNraW5nIGZvciBzdHJ1Y3QgdW5pcGFpci51bmljb2RlLi4uIG5vCmNoZWNraW5nIGZvciBf X2xzYW5faWdub3JlX29iamVjdC4uLiBubwpjaGVja2luZyBmb3Igc2Jyay4uLiAoY2FjaGVkKSB5 ZXMKY2hlY2tpbmcgZm9yIGZjaG1vZC4uLiBubwpjaGVja2luZyBmb3IgY2Fub25pY2FsaXplX2Zp bGVfbmFtZS4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIHJlYWRsaW5rLi4uIChjYWNoZWQp IHllcwpjaGVja2luZyBmb3IgcmVhbHBhdGguLi4gKGNhY2hlZCkgbm90LW5lZWRlZApjaGVja2lu ZyBmb3IgcmVhZGxpbmthdC4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIGV4cGxpY2l0X2J6 ZXJvLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBmb3IgbWVtc2V0X3MuLi4gbm8KY2hlY2tpbmcg Zm9yIGZhY2Nlc3NhdC4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIGZjaG1vZGF0Li4uIChj YWNoZWQpIHllcwpjaGVja2luZyBmb3IgbGNobW9kLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBm b3IgZmNudGwuLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBmZG9wZW5kaXIuLi4gKGNhY2hl ZCkgbm90LW5lZWRlZApjaGVja2luZyBmb3IgZnN0YXRhdC4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tp bmcgZm9yIGZzeW5jLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBmb3IgZnV0aW1lbnMuLi4gKGNh Y2hlZCkgbm90LW5lZWRlZApjaGVja2luZyBmb3IgZ2V0cmFuZG9tLi4uIG5vCmNoZWNraW5nIGZv ciBnZXR0aW1lb2ZkYXkuLi4geWVzCmNoZWNraW5nIGZvciBsc3RhdC4uLiAoY2FjaGVkKSB5ZXMK Y2hlY2tpbmcgZm9yIG1rb3N0ZW1wLi4uIG5vCmNoZWNraW5nIGZvciBwaXBlMi4uLiAoY2FjaGVk KSB5ZXMKY2hlY2tpbmcgZm9yIHBzZWxlY3QuLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBp c2JsYW5rLi4uIHllcwpjaGVja2luZyBmb3IgaXN3Y3R5cGUuLi4geWVzCmNoZWNraW5nIGZvciBz dHJ0b2ltYXguLi4geWVzCmNoZWNraW5nIGZvciBzeW1saW5rLi4uIChjYWNoZWQpIHllcwpjaGVj a2luZyBmb3IgbG9jYWx0aW1lX3IuLi4gbm8KY2hlY2tpbmcgZm9yIHRpbWVnbS4uLiBubwpjaGVj a2luZyBmb3IgdXRpbWVuc2F0Li4uIChjYWNoZWQpIHllcwpjaGVja2luZyBmb3IgZ2V0ZHRhYmxl c2l6ZS4uLiBubwpjaGVja2luZyBmb3IgZnV0aW1lcy4uLiBubwpjaGVja2luZyBmb3IgZnV0aW1l c2F0Li4uIG5vCmNoZWNraW5nIGZvciBsdXRpbWVzLi4uIG5vCmNoZWNraW5nIGZvciBwaWRfdC4u LiB5ZXMKY2hlY2tpbmcgdmZvcmsuaCB1c2FiaWxpdHkuLi4gbm8KY2hlY2tpbmcgdmZvcmsuaCBw cmVzZW5jZS4uLiBubwpjaGVja2luZyBmb3IgdmZvcmsuaC4uLiBubwpjaGVja2luZyBmb3IgZm9y ay4uLiBubwpjaGVja2luZyBmb3IgdmZvcmsuLi4gbm8KY2hlY2tpbmcgZm9yIHNucHJpbnRmLi4u IHllcwpjaGVja2luZyB3aGV0aGVyIEdMaWIgaXMgbGlua2VkIGluLi4uIG5vCmNoZWNraW5nIGZv ciBubF9sYW5naW5mbyBhbmQgQ09ERVNFVC4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIG5s X2xhbmdpbmZvIGFuZCBfTkxfUEFQRVJfV0lEVEguLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZv ciBtYnN0YXRlX3QuLi4geWVzCmNoZWNraW5nIGZvciBfc2V0am1wLi4uIG5vCmNoZWNraW5nIGZv ciBzaWdzZXRqbXAuLi4gbm8KY2hlY2tpbmcgZm9yIHVzYWJsZSBGSU9OUkVBRC4uLiB5ZXMKY2hl Y2tpbmcgZm9yIHVzYWJsZSBTSUdJTy4uLiBubwpjaGVja2luZyBmb3Igc3RydWN0IGFsaWdubWVu dC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHR5cGVvZiBzeW50YXggYW5kIGtleXdvcmQgc3BlbGxpbmcu Li4gdHlwZW9mCmNoZWNraW5nIGZvciBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMuLi4geWVzCmNoZWNr aW5nIGZvciB3b3JraW5nIGFsbG9jYS5oLi4uIG5vCmNoZWNraW5nIGZvciBhbGxvY2EuLi4geWVz CmNoZWNraW5nIHdoZXRoZXIgLy8gaXMgZGlzdGluY3QgZnJvbSAvLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIHJlYWxwYXRoIHdvcmtzLi4uIChjYWNoZWQpIG5vLWJ1dC1ub3QtbmVlZGVkLXNvLXll cwpjaGVja2luZyBmb3IgQy9DKysgcmVzdHJpY3Qga2V5d29yZC4uLiBfX3Jlc3RyaWN0CmNoZWNr aW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4uLi4gbm8KY2hlY2tpbmcgd2hl dGhlciB0aGUgcHJlcHJvY2Vzc29yIHN1cHBvcnRzIGluY2x1ZGVfbmV4dC4uLiB5ZXMKY2hlY2tp bmcgd2hldGhlciBzb3VyY2UgY29kZSBsaW5lIGxlbmd0aCBpcyB1bmxpbWl0ZWQuLi4geWVzCmNo ZWNraW5nIGlmIGVudmlyb24gaXMgcHJvcGVybHkgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5nIGZv ciBjb21wbGV0ZSBlcnJuby5oLi4uIG5vCmNoZWNraW5nIGZvciBFTVVMVElIT1AgdmFsdWUuLi4g bm8KY2hlY2tpbmcgZm9yIEVOT0xJTksgdmFsdWUuLi4geWVzCmNoZWNraW5nIGZvciBFT1ZFUkZM T1cgdmFsdWUuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbHN0YXQgY29ycmVjdGx5IGhhbmRsZXMg dHJhaWxpbmcgc2xhc2guLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBtb2RlX3QuLi4geWVz CmNoZWNraW5nIGZvciBzdF9kbV9tb2RlIGluIHN0cnVjdCBzdGF0Li4uIG5vCmNoZWNraW5nIHdo ZXRoZXIgc3RybW9kZSBpcyBkZWNsYXJlZC4uLiBubwpjaGVja2luZyBmb3IgZ2F3ay4uLiBnYXdr CmNoZWNraW5nIGZvciBnZXRvcHQuaC4uLiAoY2FjaGVkKSBubwpjaGVja2luZyBmb3Igc3RydWN0 IHRpbWV2YWwuLi4geWVzCmNoZWNraW5nIGZvciB3aWRlLWVub3VnaCBzdHJ1Y3QgdGltZXZhbC50 dl9zZWMgbWVtYmVyLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyB3aGV0aGVyIGxpbWl0cy5oIGhh cyBMTE9OR19NQVgsIFdPUkRfQklULCBVTExPTkdfV0lEVEggZXRjLi4uLiBubwpjaGVja2luZyB3 aGV0aGVyIHRoZSBjb21waWxlciBwcm9kdWNlcyBtdWx0aS1hcmNoIGJpbmFyaWVzLi4uIG5vCmNo ZWNraW5nIHdoZXRoZXIgc3RkaW50LmggY29uZm9ybXMgdG8gQzk5Li4uIHllcwpjaGVja2luZyB3 aGV0aGVyIHN0ZGludC5oIHdvcmtzIHdpdGhvdXQgSVNPIEMgcHJlZGVmaW5lcy4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBzdGRpbnQuaCBoYXMgVUlOVE1BWF9XSURUSCBldGMuLi4uIG5vCmNoZWNr aW5nIGZvciA2NC1iaXQgb2ZmX3QuLi4geWVzCmNoZWNraW5nIGZvciA2NC1iaXQgc3Rfc2l6ZS4u LiBubwpjaGVja2luZyB3aGV0aGVyIG1lbW1lbSBpcyBkZWNsYXJlZC4uLiBubwpjaGVja2luZyB3 aGV0aGVyIG1lbXJjaHIgaXMgZGVjbGFyZWQuLi4gbm8KY2hlY2tpbmcgd2hldGhlciA8bGltaXRz Lmg+IGRlZmluZXMgTUlOIGFuZCBNQVguLi4gbm8KY2hlY2tpbmcgd2hldGhlciA8c3lzL3BhcmFt Lmg+IGRlZmluZXMgTUlOIGFuZCBNQVguLi4gbm8KY2hlY2tpbmcgd2hldGhlciB0aW1lX3QgaXMg c2lnbmVkLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIGFsYXJtIGlzIGRlY2xhcmVkLi4uIChjYWNo ZWQpIHllcwpjaGVja2luZyBmb3Igd29ya2luZyBta3RpbWUuLi4gKGNhY2hlZCkgeWVzCmNoZWNr aW5nIHdoZXRoZXIgc3RydWN0IHRtIGlzIGluIHN5cy90aW1lLmggb3IgdGltZS5oLi4uIHRpbWUu aApjaGVja2luZyBmb3Igc3RydWN0IHRtLnRtX3pvbmUuLi4gbm8KY2hlY2tpbmcgd2hldGhlciB0 em5hbWUgaXMgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5nIGZvciB0em5hbWUuLi4geWVzCmNoZWNr aW5nIGZvciBzdHJ1Y3QgdG0udG1fZ210b2ZmLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgPHN5cy9z ZWxlY3QuaD4gaXMgc2VsZi1jb250YWluZWQuLi4gbm8KY2hlY2tpbmcgZm9yIGlubGluZS4uLiBp bmxpbmUKY2hlY2tpbmcgZm9yIHN0ZGxpYi5oLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBmb3Ig R05VIGxpYmMgY29tcGF0aWJsZSBtYWxsb2MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJl IHVzaW5nIHRoZSBHTlUgQyBMaWJyYXJ5ID49IDIuMSBvciB1Q2xpYmMuLi4gbm8KY2hlY2tpbmcg Zm9yIHNpZ3NldF90Li4uIG5vCmNoZWNraW5nIGZvciB3Y2hhcl90Li4uIHllcwpjaGVja2luZyB3 aGV0aGVyIHN0cm5sZW4gaXMgZGVjbGFyZWQuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgc3RydG9p bWF4IGlzIGRlY2xhcmVkLi4uIHllcwpjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAt cC4uLiAvdXNyL2Jpbi9ta2RpciAtcApjaGVja2luZyB3aGV0aGVyIHN0YXQgZmlsZS1tb2RlIG1h Y3JvcyBhcmUgYnJva2VuLi4uIG5vCmNoZWNraW5nIGZvciBzdHJ1Y3QgdGltZXNwZWMgaW4gPHRp bWUuaD4uLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgY2xlYXJlcnJfdW5sb2NrZWQgaXMgZGVjbGFy ZWQuLi4gbm8KY2hlY2tpbmcgd2hldGhlciBmZW9mX3VubG9ja2VkIGlzIGRlY2xhcmVkLi4uIG5v CmNoZWNraW5nIHdoZXRoZXIgZmVycm9yX3VubG9ja2VkIGlzIGRlY2xhcmVkLi4uIG5vCmNoZWNr aW5nIHdoZXRoZXIgZmZsdXNoX3VubG9ja2VkIGlzIGRlY2xhcmVkLi4uIG5vCmNoZWNraW5nIHdo ZXRoZXIgZmdldHNfdW5sb2NrZWQgaXMgZGVjbGFyZWQuLi4gbm8KY2hlY2tpbmcgd2hldGhlciBm cHV0Y191bmxvY2tlZCBpcyBkZWNsYXJlZC4uLiBubwpjaGVja2luZyB3aGV0aGVyIGZwdXRzX3Vu bG9ja2VkIGlzIGRlY2xhcmVkLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgZnJlYWRfdW5sb2NrZWQg aXMgZGVjbGFyZWQuLi4gbm8KY2hlY2tpbmcgd2hldGhlciBmd3JpdGVfdW5sb2NrZWQgaXMgZGVj bGFyZWQuLi4gbm8KY2hlY2tpbmcgd2hldGhlciBnZXRjX3VubG9ja2VkIGlzIGRlY2xhcmVkLi4u IG5vCmNoZWNraW5nIHdoZXRoZXIgZ2V0Y2hhcl91bmxvY2tlZCBpcyBkZWNsYXJlZC4uLiBubwpj aGVja2luZyB3aGV0aGVyIHB1dGNfdW5sb2NrZWQgaXMgZGVjbGFyZWQuLi4gbm8KY2hlY2tpbmcg d2hldGhlciBwdXRjaGFyX3VubG9ja2VkIGlzIGRlY2xhcmVkLi4uIG5vCmNoZWNraW5nIHR5cGUg b2YgYXJyYXkgYXJndW1lbnQgdG8gZ2V0Z3JvdXBzLi4uIGludApjaGVja2luZyB3aGV0aGVyIGdl dGR0YWJsZXNpemUgaXMgZGVjbGFyZWQuLi4gbm8KY2hlY2tpbmcgZm9yIE9fQ0xPRVhFQy4uLiBu bwpjaGVja2luZyBmb3IgcHJvbW90ZWQgbW9kZV90IHR5cGUuLi4gaW50CmNoZWNraW5nIHdoZXRo ZXIgdGhlIHV0aW1lcyBmdW5jdGlvbiB3b3Jrcy4uLiBubwpjaGVja2luZyBzeXMvYWNsLmggdXNh YmlsaXR5Li4uIHllcwpjaGVja2luZyBzeXMvYWNsLmggcHJlc2VuY2UuLi4geWVzCmNoZWNraW5n IGZvciBzeXMvYWNsLmguLi4geWVzCmNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgYWNs X2dldF9maWxlLi4uIChjYWNoZWQpIG5vbmUgcmVxdWlyZWQKY2hlY2tpbmcgZm9yIGFjbF9nZXRf ZmlsZS4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIGFjbF9nZXRfZmQuLi4gbm8KY2hlY2tp bmcgZm9yIGFjbF9zZXRfZmlsZS4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgZm9yIGFjbF9zZXRf ZmQuLi4gbm8KY2hlY2tpbmcgZm9yIGFjbF9mcmVlLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyBm b3IgYWNsX2Zyb21fbW9kZS4uLiBubwpjaGVja2luZyBmb3IgYWNsX2Zyb21fdGV4dC4uLiAoY2Fj aGVkKSB5ZXMKY2hlY2tpbmcgZm9yIGFjbF9kZWxldGVfZGVmX2ZpbGUuLi4gbm8KY2hlY2tpbmcg Zm9yIGFjbF9leHRlbmRlZF9maWxlLi4uIG5vCmNoZWNraW5nIGZvciBhY2xfZGVsZXRlX2ZkX25w Li4uIG5vCmNoZWNraW5nIGZvciBhY2xfZGVsZXRlX2ZpbGVfbnAuLi4gbm8KY2hlY2tpbmcgZm9y IGFjbF9jb3B5X2V4dF9uYXRpdmUuLi4gbm8KY2hlY2tpbmcgZm9yIGFjbF9jcmVhdGVfZW50cnlf bnAuLi4gbm8KY2hlY2tpbmcgZm9yIGFjbF90b19zaG9ydF90ZXh0Li4uIG5vCmNoZWNraW5nIGZv ciBhY2xfZnJlZV90ZXh0Li4uIG5vCmNoZWNraW5nIGZvciB3b3JraW5nIGFjbF9nZXRfZmlsZS4u LiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgYWNsL2xpYmFjbC5oIHVzYWJpbGl0eS4uLiBubwpjaGVj a2luZyBhY2wvbGliYWNsLmggcHJlc2VuY2UuLi4gbm8KY2hlY2tpbmcgZm9yIGFjbC9saWJhY2wu aC4uLiBubwpjaGVja2luZyBmb3IgYWNsX2VudHJpZXMuLi4gbm8KY2hlY2tpbmcgZm9yIEFDTF9G SVJTVF9FTlRSWS4uLiBubwpjaGVja2luZyBmb3IgQUNMX1RZUEVfRVhURU5ERUQuLi4gbm8KY2hl Y2tpbmcgZm9yIF9fYnVpbHRpbl9leHBlY3QuLi4geWVzCmNoZWNraW5nIGJ5dGVzd2FwLmggdXNh YmlsaXR5Li4uIG5vCmNoZWNraW5nIGJ5dGVzd2FwLmggcHJlc2VuY2UuLi4gbm8KY2hlY2tpbmcg Zm9yIGJ5dGVzd2FwLmguLi4gbm8KY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBjbG9j a19nZXR0aW1lLi4uIChjYWNoZWQpIG5vbmUgcmVxdWlyZWQKY2hlY2tpbmcgZm9yIGNsb2NrX2dl dHRpbWUuLi4gKGNhY2hlZCkgbm8KY2hlY2tpbmcgZm9yIGNsb2NrX3NldHRpbWUuLi4gKGNhY2hl ZCkgbm8KY2hlY2tpbmcgZm9yIGNvcHlfZmlsZV9yYW5nZS4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tp bmcgZm9yIGRfdHlwZSBtZW1iZXIgaW4gZGlyZWN0b3J5IHN0cnVjdC4uLiBubwpjaGVja2luZyB3 aGV0aGVyIC8vIGlzIGRpc3RpbmN0IGZyb20gLy4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgd2hl dGhlciBkdXAyIHdvcmtzLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyB3aGV0aGVyIGZjaG1vZGF0 K0FUX1NZTUxJTktfTk9GT0xMT1cgd29ya3Mgb24gbm9uLXN5bWxpbmtzLi4uIChjYWNoZWQpIG5v dC1uZWVkZWQtc28teWVzCmNoZWNraW5nIHdoZXRoZXIgZmNudGwgaGFuZGxlcyBGX0RVUEZEIGNv cnJlY3RseS4uLiAoY2FjaGVkKSB5ZXMKY2hlY2tpbmcgd2hldGhlciBmY250bCB1bmRlcnN0YW5k cyBGX0RVUEZEX0NMT0VYRUMuLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIHdoZXRoZXIgZmRvcGVu ZGlyIGlzIGRlY2xhcmVkLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgZmRvcGVuZGlyIHdvcmtzLi4u IChjYWNoZWQpIG5vLWJ1dC1ub3QtbmVlZGVkLXNvLXllcwpjaGVja2luZyBmb3IgZmxleGlibGUg YXJyYXkgbWVtYmVyLi4uIHllcwpjaGVja2luZyBmb3IgX19mcGVuZGluZy4uLiBubwpjaGVja2lu ZyB3aGV0aGVyIGZzdGF0YXQgKC4uLiwgMCkgd29ya3MuLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5n IGZvciBzeXMvbW91bnQuaC4uLiBubwpjaGVja2luZyBob3cgdG8gZ2V0IGZpbGUgc3lzdGVtIHNw YWNlIHVzYWdlLi4uIGNoZWNraW5nIGZvciBzdGF0dmZzIGZ1bmN0aW9uIChTVlI0KS4uLiBubwpj aGVja2luZyBmb3IgdHdvLWFyZ3VtZW50IHN0YXRmcyB3aXRoIHN0YXRmcy5mX2Zyc2l6ZSBtZW1i ZXIuLi4gbm8KY2hlY2tpbmcgZm9yIDMtYXJndW1lbnQgc3RhdGZzIGZ1bmN0aW9uIChERUMgT1NG LzEpLi4uIG5vCmNoZWNraW5nIGZvciB0d28tYXJndW1lbnQgc3RhdGZzIHdpdGggc3RhdGZzLmZf YnNpemUgbWVtYmVyIChBSVgsIDQuM0JTRCkuLi4gbm8KY2hlY2tpbmcgZm9yIGZvdXItYXJndW1l bnQgc3RhdGZzIChTVlIzKS4uLiBubwpjaGVja2luZyBmb3IgdHdvLWFyZ3VtZW50IHN0YXRmcyB3 aXRoIHN0YXRmcy5mX2ZzaXplIG1lbWJlciAoNC40QlNEIGFuZCBOZXRCU0QpLi4uIG5vCmNoZWNr aW5nIHdoZXRoZXIgZnV0aW1lbnMgd29ya3MuLi4gKGNhY2hlZCkgbm90LW5lZWRlZC1zby15ZXMK Y2hlY2tpbmcgZm9yIGdldGxvYWRhdmcuLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIHN5cy9sb2Fk YXZnLmggdXNhYmlsaXR5Li4uIG5vCmNoZWNraW5nIHN5cy9sb2FkYXZnLmggcHJlc2VuY2UuLi4g bm8KY2hlY2tpbmcgZm9yIHN5cy9sb2FkYXZnLmguLi4gbm8KY2hlY2tpbmcgd2hldGhlciBnZXRs b2FkYXZnIGlzIGRlY2xhcmVkLi4uIG5vCmNoZWNraW5nIGZvciBiY3J5cHQuaC4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciB0aGUgYmNyeXB0IGxpYnJhcnkgaXMgZ3VhcmFudGVlZCB0byBiZSBwcmVz ZW50Li4uIChjYWNoZWQpIG5vCmNoZWNraW5nIGZvciBnZXR0aW1lb2ZkYXkgd2l0aCBQT1NJWCBz aWduYXR1cmUuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIHRo ZSBfX2lubGluZSBrZXl3b3JkLi4uIHllcwpjaGVja2luZyBnbXAuaCB1c2FiaWxpdHkuLi4geWVz CmNoZWNraW5nIGdtcC5oIHByZXNlbmNlLi4uIHllcwpjaGVja2luZyBmb3IgZ21wLmguLi4geWVz CmNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgX19nbXB6X3JvaW5pdF9uLi4uIC1sZ21w CmNoZWNraW5nIGZvciBtZW1tZW0uLi4gbm8KY2hlY2tpbmcgZm9yIG1lbXBjcHkuLi4geWVzCmNo ZWNraW5nIGZvciBtZW1yY2hyLi4uIG5vCmNoZWNraW5nIHdoZXRoZXIgc2lnbmF0dXJlIG9mIHBz ZWxlY3QgY29uZm9ybXMgdG8gUE9TSVguLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIHdoZXRoZXIg cHNlbGVjdCBkZXRlY3RzIGludmFsaWQgZmRzLi4uIChjYWNoZWQpIHllcwpjaGVja2luZyB3aGV0 aGVyIHB0aHJlYWRfc2lnbWFzayBpcyBhIG1hY3JvLi4uIChjYWNoZWQpIG5vCmNoZWNraW5nIHdo ZXRoZXIgcHRocmVhZF9zaWdtYXNrIHdvcmtzIHdpdGhvdXQgLWxwdGhyZWFkLi4uIHllcwpjaGVj a2luZyB3aGV0aGVyIHB0aHJlYWRfc2lnbWFzayByZXR1cm5zIGVycm9yIG51bWJlcnMuLi4gKGNh Y2hlZCkgeWVzCmNoZWNraW5nIHdoZXRoZXIgcHRocmVhZF9zaWdtYXNrIHVuYmxvY2tzIHNpZ25h bHMgY29ycmVjdGx5Li4uIChjYWNoZWQpIG5vdCByZWxldmFudApjaGVja2luZyB3aGV0aGVyIHJl YWRsaW5rIHNpZ25hdHVyZSBpcyBjb3JyZWN0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIHJlYWRs aW5rIGhhbmRsZXMgdHJhaWxpbmcgc2xhc2ggY29ycmVjdGx5Li4uIChjYWNoZWQpIHllcwpjaGVj a2luZyB3aGV0aGVyIHJlYWRsaW5rYXQgc2lnbmF0dXJlIGlzIGNvcnJlY3QuLi4geWVzCmNoZWNr aW5nIGZvciB3b3JraW5nIHJlX2NvbXBpbGVfcGF0dGVybi4uLiBubwpjaGVja2luZyBsaWJpbnRs LmggdXNhYmlsaXR5Li4uIHllcwpjaGVja2luZyBsaWJpbnRsLmggcHJlc2VuY2UuLi4geWVzCmNo ZWNraW5nIGZvciBsaWJpbnRsLmguLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgaXNibGFuayBpcyBk ZWNsYXJlZC4uLiB5ZXMKY2hlY2tpbmcgZm9yIHNpZzJzdHIuLi4gbm8KY2hlY2tpbmcgZm9yIHNp Z2Rlc2NyX25wLi4uIG5vCmNoZWNraW5nIGZvciB2b2xhdGlsZSBzaWdfYXRvbWljX3QuLi4geWVz CmNoZWNraW5nIGZvciBzaWdoYW5kbGVyX3QuLi4gbm8KY2hlY2tpbmcgZm9yIHNvY2tsZW5fdC4u LiB5ZXMKY2hlY2tpbmcgZm9yIHNzaXplX3QuLi4geWVzCmNoZWNraW5nIGZvciBzdHJ1Y3Qgc3Rh dC5zdF9hdGltLnR2X25zZWMuLi4gbm8KY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2F0aW1l c3BlYy50dl9uc2VjLi4uIG5vCmNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9hdGltZW5zZWMu Li4gbm8KY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2F0aW0uc3RfX3RpbS50dl9uc2VjLi4u IG5vCmNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9iaXJ0aHRpbWVzcGVjLnR2X25zZWMuLi4g bm8KY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2JpcnRodGltZW5zZWMuLi4gbm8KY2hlY2tp bmcgZm9yIHN0cnVjdCBzdGF0LnN0X2JpcnRodGltLnR2X25zZWMuLi4gbm8KY2hlY2tpbmcgZm9y IHdvcmtpbmcgc3RkYWxpZ24uaC4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdvb2QgbWF4X2FsaWduX3Qu Li4geWVzCmNoZWNraW5nIHdoZXRoZXIgTlVMTCBjYW4gYmUgdXNlZCBpbiBhcmJpdHJhcnkgZXhw cmVzc2lvbnMuLi4geWVzCmNoZWNraW5nIHdoaWNoIGZsYXZvciBvZiBwcmludGYgYXR0cmlidXRl IG1hdGNoZXMgaW50dHlwZXMgbWFjcm9zLi4uIGdudQpjaGVja2luZyBmb3Igc3RwY3B5Li4uIG5v CmNoZWNraW5nIGZvciB3b3JraW5nIHN0cm5sZW4uLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgc3Ry dG9pbWF4IHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIHN5bWxpbmsgaGFuZGxlcyB0cmFp bGluZyBzbGFzaCBjb3JyZWN0bHkuLi4gKGNhY2hlZCkgeWVzCmNoZWNraW5nIGZvciBubGlua190 Li4uIG5vCmNoZWNraW5nIHdoZXRoZXIgbG9jYWx0aW1lX3IgaXMgZGVjbGFyZWQuLi4gbm8KY2hl Y2tpbmcgd2hldGhlciBsb2NhbHRpbWVfciBleGlzdHMgYXMgYW4gaW5saW5lIGZ1bmN0aW9uLi4u IG5vCmNoZWNraW5nIHdoZXRoZXIgbG9jYWx0aW1lIHdvcmtzIGV2ZW4gbmVhciBleHRyZW1hLi4u IHllcwpjaGVja2luZyBmb3IgdGltZXpvbmVfdC4uLiBubwpjaGVja2luZyBmb3IgbGlicmFyeSBj b250YWluaW5nIHRpbWVyX3NldHRpbWUuLi4gbm8KY2hlY2tpbmcgZm9yIHRpbWVyX3NldHRpbWUu Li4gbm8KY2hlY2tpbmcgd2hldGhlciB1dGltZW5zYXQgd29ya3MuLi4gKGNhY2hlZCkgeWVzCmNo ZWNraW5nIGZvciB2YXJpYWJsZS1sZW5ndGggYXJyYXlzLi4uIHllcwpjaGVja2luZyBmb3IgX19t a3RpbWVfaW50ZXJuYWwuLi4gbm8KY2hlY2tpbmcgZm9yIGdjYyAgb3B0aW9uIHRvIGRpc2FibGUg cG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZXMuLi4gbm90IG5lZWRlZAoKQ29uZmlndXJl ZCBmb3IgJ3g4Nl82NC13NjQtbWluZ3czMicuCgogIFdoZXJlIHNob3VsZCB0aGUgYnVpbGQgcHJv Y2VzcyBmaW5kIHRoZSBzb3VyY2UgY29kZT8gICAgLi4vZW1hY3MKICBXaGF0IGNvbXBpbGVyIHNo b3VsZCBlbWFjcyBiZSBidWlsdCB3aXRoPyAgICAgICAgICAgICAgIGdjYyAgLU8yIC1nMwogIFNo b3VsZCBFbWFjcyB1c2UgdGhlIEdOVSB2ZXJzaW9uIG9mIG1hbGxvYz8gICAgICAgICAgICAgbm8K ICAgIChUaGUgR05VIGFsbG9jYXRvcnMgZG9uJ3Qgd29yayB3aXRoIHRoaXMgc3lzdGVtIGNvbmZp Z3VyYXRpb24uKQogIFNob3VsZCBFbWFjcyB1c2UgYSByZWxvY2F0aW5nIGFsbG9jYXRvciBmb3Ig YnVmZmVycz8gICAgbm8KICBTaG91bGQgRW1hY3MgdXNlIG1tYXAoMikgZm9yIGJ1ZmZlciBhbGxv Y2F0aW9uPyAgICAgICAgIHllcwogIFdoYXQgd2luZG93IHN5c3RlbSBzaG91bGQgRW1hY3MgdXNl PyAgICAgICAgICAgICAgICAgICAgdzMyCiAgV2hhdCB0b29sa2l0IHNob3VsZCBFbWFjcyB1c2U/ ICAgICAgICAgICAgICAgICAgICAgICAgICBub25lCiAgV2hlcmUgZG8gd2UgZmluZCBYIFdpbmRv d3MgaGVhZGVyIGZpbGVzPyAgICAgICAgICAgICAgICBOT05FCiAgV2hlcmUgZG8gd2UgZmluZCBY IFdpbmRvd3MgbGlicmFyaWVzPyAgICAgICAgICAgICAgICAgICBOT05FCiAgRG9lcyBFbWFjcyB1 c2UgLWxYYXczZD8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubwogIERvZXMgRW1h Y3MgdXNlIC1sWHBtPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVzCiAgRG9l cyBFbWFjcyB1c2UgLWxqcGVnPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZXMK ICBEb2VzIEVtYWNzIHVzZSAtbHRpZmY/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHllcwogIERvZXMgRW1hY3MgdXNlIGEgZ2lmIGxpYnJhcnk/ICAgICAgICAgICAgICAgICAgICAg ICAgICAgeWVzIAogIERvZXMgRW1hY3MgdXNlIGEgcG5nIGxpYnJhcnk/ICAgICAgICAgICAgICAg ICAgICAgICAgICAgeWVzIAogIERvZXMgRW1hY3MgdXNlIC1scnN2Zy0yPyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeWVzCiAgRG9lcyBFbWFjcyB1c2UgY2Fpcm8/ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBubwogIERvZXMgRW1hY3MgdXNlIC1sbGNtczI/ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVzCiAgRG9lcyBFbWFjcyB1c2UgaW1hZ2VtYWdp Y2s/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubwogIERvZXMgRW1hY3MgdXNlIG5hdGl2 ZSBBUElzIGZvciBpbWFnZXM/ICAgICAgICAgICAgICAgICAgeWVzICh3MzIpCiAgRG9lcyBFbWFj cyBzdXBwb3J0IHNvdW5kPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZXMKICBEb2Vz IEVtYWNzIHVzZSAtbGdwbT8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vCiAg RG9lcyBFbWFjcyB1c2UgLWxkYnVzPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu bwogIERvZXMgRW1hY3MgdXNlIC1sZ2NvbmY/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbm8KICBEb2VzIEVtYWNzIHVzZSBHU2V0dGluZ3M/ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5vCiAgRG9lcyBFbWFjcyB1c2UgYSBmaWxlIG5vdGlmaWNhdGlvbiBsaWJyYXJ5PyAg ICAgICAgICAgICB5ZXMgKHczMikKICBEb2VzIEVtYWNzIHVzZSBhY2Nlc3MgY29udHJvbCBsaXN0 cz8gICAgICAgICAgICAgICAgICAgIHllcyAKICBEb2VzIEVtYWNzIHVzZSAtbHNlbGludXg/ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vCiAgRG9lcyBFbWFjcyB1c2UgLWxnbnV0bHM/ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZXMKICBEb2VzIEVtYWNzIHVzZSAtbHht bDI/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllcwogIERvZXMgRW1hY3MgdXNl IC1sZnJlZXR5cGU/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm8KICBEb2VzIEVtYWNz IHVzZSBIYXJmQnV6ej8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllcwogIERvZXMg RW1hY3MgdXNlIC1sbTE3bi1mbHQ/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm8KICBE b2VzIEVtYWNzIHVzZSAtbG90Zj8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v CiAgRG9lcyBFbWFjcyB1c2UgLWx4ZnQ/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBubwogIERvZXMgRW1hY3MgdXNlIC1sc3lzdGVtZD8gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbm8KICBEb2VzIEVtYWNzIHVzZSAtbGphbnNzb24/ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHllcwogIERvZXMgRW1hY3MgdXNlIHRoZSBHTVAgbGlicmFyeT8gICAgICAgICAg ICAgICAgICAgICAgICAgeWVzCiAgRG9lcyBFbWFjcyBkaXJlY3RseSB1c2UgemxpYj8gICAgICAg ICAgICAgICAgICAgICAgICAgICB5ZXMKICBEb2VzIEVtYWNzIGhhdmUgZHluYW1pYyBtb2R1bGVz IHN1cHBvcnQ/ICAgICAgICAgICAgICAgIHllcwogIERvZXMgRW1hY3MgdXNlIHRvb2xraXQgc2Ny b2xsIGJhcnM/ICAgICAgICAgICAgICAgICAgICAgeWVzCiAgRG9lcyBFbWFjcyBzdXBwb3J0IFh3 aWRnZXRzPyAgICAgICAgICAgICAgICAgICAgICAgICAgICBubwogIERvZXMgRW1hY3MgaGF2ZSB0 aHJlYWRpbmcgc3VwcG9ydCBpbiBsaXNwPyAgICAgICAgICAgICAgeWVzCiAgRG9lcyBFbWFjcyBz dXBwb3J0IHRoZSBwb3J0YWJsZSBkdW1wZXI/ICAgICAgICAgICAgICAgICB5ZXMKICBEb2VzIEVt YWNzIHN1cHBvcnQgbGVnYWN5IHVuZXhlYyBkdW1waW5nPyAgICAgICAgICAgICAgIG5vCiAgV2hp Y2ggZHVtcGluZyBzdHJhdGVneSBkb2VzIEVtYWNzIHVzZT8gICAgICAgICAgICAgICAgICBwZHVt cGVyCiAgRG9lcyBFbWFjcyBoYXZlIG5hdGl2ZSBsaXNwIGNvbXBpbGVyPyAgICAgICAgICAgICAg ICAgICB5ZXMKCgpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3Rh dHVzOiBjcmVhdGluZyBudC9lbWFjcy5yYwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBudC9lbWFj c2NsaWVudC5yYwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBzcmMvZW1hY3MtbW9kdWxlLmgKY29u ZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgbGli L2dudWxpYi5tawpjb25maWcuc3RhdHVzOiBjcmVhdGluZyAuLi9lbWFjcy9kb2MvbWFuL2VtYWNz LjEKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgbGliL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGNy ZWF0aW5nIGxpYi1zcmMvTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgb2xkWE1lbnUv TWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgZG9jL2VtYWNzL01ha2VmaWxlCmNvbmZp Zy5zdGF0dXM6IGNyZWF0aW5nIGRvYy9taXNjL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGNyZWF0 aW5nIGRvYy9saXNwaW50cm8vTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgZG9jL2xp c3ByZWYvTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgc3JjL01ha2VmaWxlCmNvbmZp Zy5zdGF0dXM6IGNyZWF0aW5nIGx3bGliL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5n IGxpc3AvTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgbGVpbS9NYWtlZmlsZQpjb25m aWcuc3RhdHVzOiBjcmVhdGluZyBuZXh0c3RlcC9NYWtlZmlsZQpjb25maWcuc3RhdHVzOiBjcmVh dGluZyBudC9NYWtlZmlsZQpjb25maWcuc3RhdHVzOiBjcmVhdGluZyB0ZXN0L01ha2VmaWxlCmNv bmZpZy5zdGF0dXM6IGNyZWF0aW5nIGFkbWluL2NoYXJzZXRzL01ha2VmaWxlCmNvbmZpZy5zdGF0 dXM6IGNyZWF0aW5nIGFkbWluL3VuaWRhdGEvTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRp bmcgYWRtaW4vZ3JhbW1hcnMvTWFrZWZpbGUKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgc3JjL2Nv bmZpZy5oCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBzcmMvZXBhdGhzLmggY29tbWFuZHMKY29u ZmlnLnN0YXR1czogZXhlY3V0aW5nIHNyYy8uZ2RiaW5pdCBjb21tYW5kcwpjb25maWcuc3RhdHVz OiBleGVjdXRpbmcgZG9jL2VtYWNzL2VtYWNzdmVyLnRleGkgY29tbWFuZHMKY29uZmlnLnN0YXR1 czogZXhlY3V0aW5nIGV0Yy1yZWZjYXJkcy1lbWFjc3Zlci50ZXggY29tbWFuZHMKbWFrZSAtQyBu dCBhbGwKbWFrZSAtQyBsaWIgYWxsCm1ha2UgaW5mby1yZWFsIGluZm8tZGlyCm1ha2VbMV06IEVu dGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQv bnQnCiAgUkMgICAgICAgZW1hY3MucmVzCm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hv bWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQvbGliJwptYWtlWzFdOiBFbnRlcmlu ZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2J1aWxkJwptYWtl IC1DIGRvYy9saXNwcmVmIGluZm8KICBHRU4gICAgICBhbGxvY2EuaAptYWtlWzJdOiBFbnRlcmlu ZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2J1aWxkL2RvYy9s aXNwcmVmJwptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICdpbmZvJy4KbWFrZVsyXTog TGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2J1aWxk L2RvYy9saXNwcmVmJwptYWtlIC1DIGRvYy9saXNwaW50cm8gaW5mbwptYWtlWzJdOiBFbnRlcmlu ZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2J1aWxkL2RvYy9s aXNwaW50cm8nCm1ha2VbMl06IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgJ2luZm8nLgptYWtlWzJd OiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVp bGQvZG9jL2xpc3BpbnRybycKbWFrZSAtQyBkb2MvZW1hY3MgaW5mbwogIENDTEQgICAgIGFkZHBt LmV4ZQptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5h dGl2ZS1jb21wL2J1aWxkL2RvYy9lbWFjcycKbWFrZVsyXTogTm90aGluZyB0byBiZSBkb25lIGZv ciAnaW5mbycuCm1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFj cy1uYXRpdmUtY29tcC9idWlsZC9kb2MvZW1hY3MnCm1ha2UgLUMgZG9jL21pc2MgaW5mbwptYWtl WzFdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICdpbmZvLWRpcicuCiAgR0VOICAgICAgYnl0ZXN3 YXAuaAptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5h dGl2ZS1jb21wL2J1aWxkL2RvYy9taXNjJwptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9y ICdpbmZvJy4KbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNz LW5hdGl2ZS1jb21wL2J1aWxkL2RvYy9taXNjJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAn L2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQnCiAgR0VOICAgICAgZXJybm8u aAogIEdFTiAgICAgIGV4ZWNpbmZvLmgKICBHRU4gICAgICBnZXRvcHQuaAogIEdFTiAgICAgIGdl dG9wdC1jZGVmcy5oCiAgR0VOICAgICAgaWVlZTc1NC5oCiAgR0VOICAgICAgbGltaXRzLmgKICBH RU4gICAgICBzdGRpbnQuaAogIEdFTiAgICAgIHN0cmluZy5oCiAgR0VOICAgICAgc3lzL3JhbmRv bS5oCiAgR0VOICAgICAgdGltZS5oCiAgQ0NMRCAgICAgY21kcHJveHkuZXhlCiAgQ0MgICAgICAg ZmluZ2VycHJpbnQubwogIENDICAgICAgIGFjbF9lbnRyaWVzLm8KICBDQ0xEICAgICBkZGVjbGll bnQuZXhlCiAgQ0MgICAgICAgZXhlY2luZm8ubwogIENDICAgICAgIGZwZW5kaW5nLm8KICBDQ0xE ICAgICBydW5lbWFjcy5leGUKICBDQyAgICAgICBnZXRvcHQubwogIENDICAgICAgIGdldG9wdDEu bwogIENDICAgICAgIGdldHJhbmRvbS5vCiAgQ0MgICAgICAgZ2V0dGltZW9mZGF5Lm8KbWFrZVsx XTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2J1 aWxkL250JwogIENDICAgICAgIG1lbW1lbS5vCiAgQ0MgICAgICAgbWVtcmNoci5vCiAgQ0MgICAg ICAgbWtvc3RlbXAubwogIENDICAgICAgIG1rdGltZS5vCiAgQ0MgICAgICAgcmVnZXgubwogIEND ICAgICAgIHNpZzJzdHIubwogIENDICAgICAgIHNpZ2Rlc2NyX25wLm8KICBDQyAgICAgICBzdHBj cHkubwogIENDICAgICAgIHRpbWVfci5vCiAgQ0MgICAgICAgdGltZV9yei5vCiAgQ0MgICAgICAg dGltZWdtLm8KICBDQyAgICAgICBiaW5hcnktaW8ubwogIENDICAgICAgIGMtY3R5cGUubwogIEND ICAgICAgIGMtc3RyY2FzZWNtcC5vCiAgQ0MgICAgICAgYy1zdHJuY2FzZWNtcC5vCiAgQ0MgICAg ICAgY2xvc2Utc3RyZWFtLm8KICBDQyAgICAgICBjb3VudC1sZWFkaW5nLXplcm9zLm8KICBDQyAg ICAgICBjb3VudC1vbmUtYml0cy5vCiAgQ0MgICAgICAgY291bnQtdHJhaWxpbmctemVyb3Mubwog IENDICAgICAgIG1kNS5vCiAgQ0MgICAgICAgc2hhMS5vCiAgQ0MgICAgICAgc2hhMjU2Lm8KICBD QyAgICAgICBzaGE1MTIubwogIENDICAgICAgIGR0b2FzdHIubwogIENDICAgICAgIGR0b3RpbWVz cGVjLm8KICBDQyAgICAgICBmaWxlbW9kZS5vCiAgQ0MgICAgICAgZmlsZXZlcmNtcC5vCiAgQ0Mg ICAgICAgZ2V0dGltZS5vCiAgQ0MgICAgICAgbnN0cmZ0aW1lLm8KICBDQyAgICAgICBxY29weS1h Y2wubwogIENDICAgICAgIHN0YXQtdGltZS5vCiAgQ0MgICAgICAgdGVtcG5hbWUubwogIENDICAg ICAgIHRpbWVzcGVjLm8KICBDQyAgICAgICB0aW1lc3BlYy1hZGQubwogIENDICAgICAgIHRpbWVz cGVjLXN1Yi5vCiAgQ0MgICAgICAgdTY0Lm8KICBBUiAgICAgICBsaWJnbnUuYQptYWtlWzFdOiBM ZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQv bGliJwptYWtlIC1DIGxpYi1zcmMgYWxsCm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hv bWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQvbGliLXNyYycKICBDQyAgICAgICBu dGxpYi5vCiAgUkMgICAgICAgZW1hY3NjbGllbnQucmVzCiAgQ0MgICAgICAgcG9wLm8KICBDQ0xE ICAgICBldGFncy5leGUKICBDQ0xEICAgICBjdGFncy5leGUKICBDQ0xEICAgICBlbWFjc2NsaWVu dC5leGUKICBDQ0xEICAgICBlbWFjc2NsaWVudHcuZXhlCiAgQ0NMRCAgICAgZWJyb3dzZS5leGUK ICBDQ0xEICAgICBoZXhsLmV4ZQogIENDTEQgICAgIG1vdmVtYWlsLmV4ZQogIENDTEQgICAgIG1h a2UtZG9jZmlsZS5leGUKICBDQ0xEICAgICBtYWtlLWZpbmdlcnByaW50LmV4ZQptYWtlWzFdOiBM ZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQv bGliLXNyYycKbWFrZSAtQyBzcmMgVkNTV0lUTkVTUz0nJChzcmNkaXIpLy4uLy5naXQvbG9ncy9I RUFEJyBCSU5fREVTVERJUj0nL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvZGVzdC9i aW4vJyBcCgkgRUxOX0RFU1RESVI9JyIvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9k ZXN0L2xpYi9lbWFjcy8yOC4wLjUwLyInIGFsbAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3Rvcnkg Jy9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2J1aWxkL3NyYycKICBHRU4gICAgICBs aXNwLm1rCiAgR0VOICAgICAgZ2xvYmFscy5oCm1ha2UgLUMgLi4vbnQgLi4vc3JjL2VtYWNzLnJl cwogIEdFTiAgICAgIGJ1aWxkb2JqLmgKbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9t ZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9idWlsZC9udCcKICBSQyAgICAgICAuLi9zcmMv ZW1hY3MucmVzCm1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFj cy1uYXRpdmUtY29tcC9idWlsZC9udCcKbWFrZSAtQyAuLi9hZG1pbi9jaGFyc2V0cyBhbGwKbWFr ZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29t cC9idWlsZC9hZG1pbi9jaGFyc2V0cycKbWFrZVsyXTogTm90aGluZyB0byBiZSBkb25lIGZvciAn YWxsJy4KbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5h dGl2ZS1jb21wL2J1aWxkL2FkbWluL2NoYXJzZXRzJwptYWtlIC1DIC4uL2FkbWluL3VuaWRhdGEg Y2hhcnNjcmlwdC5lbAptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgx L2VtYWNzLW5hdGl2ZS1jb21wL2J1aWxkL2FkbWluL3VuaWRhdGEnCm1ha2VbMl06IE5vdGhpbmcg dG8gYmUgZG9uZSBmb3IgJ2NoYXJzY3JpcHQuZWwnLgptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9y eSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQvYWRtaW4vdW5pZGF0YScK bWFrZSAtQyAuLi9hZG1pbi9jaGFyc2V0cyBjcDUxOTMyLmVsCm1ha2VbMl06IEVudGVyaW5nIGRp cmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQvYWRtaW4vY2hh cnNldHMnCm1ha2VbMl06IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgJ2NwNTE5MzIuZWwnLgptYWtl WzJdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAv YnVpbGQvYWRtaW4vY2hhcnNldHMnCm1ha2UgLUMgLi4vYWRtaW4vY2hhcnNldHMgZXVjanAtbXMu ZWwKbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRp dmUtY29tcC9idWlsZC9hZG1pbi9jaGFyc2V0cycKbWFrZVsyXTogTm90aGluZyB0byBiZSBkb25l IGZvciAnZXVjanAtbXMuZWwnLgptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvY3Jh bWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQvYWRtaW4vY2hhcnNldHMnCiAgQ0MgICAgICAg Zmlyc3RmaWxlLm8KICBDQyAgICAgICBkaXNwbmV3Lm8KICBDQyAgICAgICBmcmFtZS5vCiAgQ0Mg ICAgICAgc2Nyb2xsLm8KICBDQyAgICAgICB4ZGlzcC5vCiAgQ0MgICAgICAgbWVudS5vCiAgQ0Mg ICAgICAgd2luZG93Lm8KICBDQyAgICAgICBjaGFyc2V0Lm8KICBDQyAgICAgICBjb2Rpbmcubwog IENDICAgICAgIGNhdGVnb3J5Lm8KICBDQyAgICAgICBjY2wubwogIENDICAgICAgIGNoYXJhY3Rl ci5vCiAgQ0MgICAgICAgY2hhcnRhYi5vCiAgQ0MgICAgICAgYmlkaS5vCiAgQ0MgICAgICAgdGVy bS5vCiAgQ0MgICAgICAgdGVybWluYWwubwogIENDICAgICAgIHhmYWNlcy5vCiAgQ0MgICAgICAg ZW1hY3MubwogIENDICAgICAgIGtleWJvYXJkLm8KICBDQyAgICAgICBtYWNyb3MubwogIENDICAg ICAgIGtleW1hcC5vCiAgQ0MgICAgICAgc3lzZGVwLm8KICBDQyAgICAgICBiaWdudW0ubwogIEND ICAgICAgIGJ1ZmZlci5vCiAgQ0MgICAgICAgZmlsZWxvY2subwogIENDICAgICAgIGluc2RlbC5v CiAgQ0MgICAgICAgbWFya2VyLm8KICBDQyAgICAgICBtaW5pYnVmLm8KICBDQyAgICAgICBmaWxl aW8ubwogIENDICAgICAgIGRpcmVkLm8KICBDQyAgICAgICBjbWRzLm8KICBDQyAgICAgICBjYXNl dGFiLm8KICBDQyAgICAgICBjYXNlZmlkZGxlLm8KICBDQyAgICAgICBpbmRlbnQubwogIENDICAg ICAgIHNlYXJjaC5vCiAgQ0MgICAgICAgcmVnZXgtZW1hY3MubwogIENDICAgICAgIHVuZG8ubwog IENDICAgICAgIGFsbG9jLm8KICBDQyAgICAgICBwZHVtcGVyLm8KICBDQyAgICAgICBkYXRhLm8K ICBDQyAgICAgICBkb2MubwogIENDICAgICAgIGVkaXRmbnMubwogIENDICAgICAgIGNhbGxpbnQu bwogIENDICAgICAgIGV2YWwubwogIENDICAgICAgIGZsb2F0Zm5zLm8KICBDQyAgICAgICBmbnMu bwogIENDICAgICAgIGZvbnQubwogIENDICAgICAgIHByaW50Lm8KICBDQyAgICAgICBscmVhZC5v CiAgQ0MgICAgICAgZW1hY3MtbW9kdWxlLm8KICBDQyAgICAgICBzeW50YXgubwogIENDICAgICAg IGJ5dGVjb2RlLm8KICBDQyAgICAgICBjb21wLm8KICBDQyAgICAgICBkeW5saWIubwouLi8uLi9l bWFjcy9zcmMvY29tcC5jOiBJbiBmdW5jdGlvbiAnRmNvbXBfX2NvbXBpbGVfY3R4dF90b19maWxl JzoKLi4vLi4vZW1hY3Mvc3JjL2NvbXAuYzo0NDYwOjEyOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFi bGUgJ29sZHNldCcgWy1XdW51c2VkLXZhcmlhYmxlXQogNDQ2MCB8ICAgc2lnc2V0X3Qgb2xkc2V0 OwogICAgICB8ICAgICAgICAgICAgXn5+fn5+Ci4uLy4uL2VtYWNzL3NyYy9jb21wLmM6IEluIGZ1 bmN0aW9uICdlbG5fbG9hZF9wYXRoX2ZpbmFsX2NsZWFuX3VwJzoKLi4vLi4vZW1hY3Mvc3JjL2Nv bXAuYzo0NjI1OjEyOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDcgb2YgJ2ludGVybmFsX2Nv bmRpdGlvbl9jYXNlXzUnIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdpbmNvbXBh dGlibGUtcG9pbnRlci10eXBlc10KIDQ2MjUgfCAgICAgICAgUXQsIHJldHVybl9uaWwsIFFuaWwp OwogICAgICB8ICAgICAgICAgICAgXn5+fn5+fn5+fgogICAgICB8ICAgICAgICAgICAgfAogICAg ICB8ICAgICAgICAgICAgc3RydWN0IExpc3BfWCAqICgqKShzdHJ1Y3QgTGlzcF9YICopCkluIGZp bGUgaW5jbHVkZWQgZnJvbSAuLi8uLi9lbWFjcy9zcmMvY29tcC5jOjIzOgouLi8uLi9lbWFjcy9z cmMvbGlzcC5oOjQxNjE6MTk1OiBub3RlOiBleHBlY3RlZCAnTGlzcF9PYmplY3QnIHtha2EgJ3N0 cnVjdCBMaXNwX1ggKid9IGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlICdzdHJ1Y3QgTGlzcF9YICog KCopKHN0cnVjdCBMaXNwX1ggKiknCiA0MTYxIHwgZXh0ZXJuIExpc3BfT2JqZWN0IGludGVybmFs X2NvbmRpdGlvbl9jYXNlXzUgKExpc3BfT2JqZWN0ICgqKSAoTGlzcF9PYmplY3QsIExpc3BfT2Jq ZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0KSwgTGlzcF9PYmplY3Qs IExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LCBMaXNw X09iamVjdCwgTGlzcF9PYmplY3QgKCopIChMaXNwX09iamVjdCkpOwogICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uLy4uL2Vt YWNzL3NyYy9saXNwLmg6OTQ0LAogICAgICAgICAgICAgICAgIGZyb20gLi4vLi4vZW1hY3Mvc3Jj L2NvbXAuYzoyMzoKLi9nbG9iYWxzLmg6Njk3NDoxNDogd2FybmluZzogcGFzc2luZyBhcmd1bWVu dCA4IG9mICdpbnRlcm5hbF9jb25kaXRpb25fY2FzZV81JyBmcm9tIGluY29tcGF0aWJsZSBwb2lu dGVyIHR5cGUgWy1XaW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXNdCiA2OTc0IHwgI2RlZmluZSBR bmlsIGJ1aWx0aW5fbGlzcF9zeW1ib2wgKDApCiAgICAgIHwgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CiAgICAgIHwgICAgICAgICAgICAgIHwKICAgICAgfCAgICAgICAgICAg ICAgTGlzcF9PYmplY3Qge2FrYSBzdHJ1Y3QgTGlzcF9YICp9Ci4uLy4uL2VtYWNzL3NyYy9jb21w LmM6NDYyNToyNDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvICdRbmlsJwogNDYyNSB8ICAg ICAgICBRdCwgcmV0dXJuX25pbCwgUW5pbCk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICBefn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuLi8uLi9lbWFjcy9zcmMvY29tcC5jOjIzOgou Li8uLi9lbWFjcy9zcmMvbGlzcC5oOjQxNjE6MjA4OiBub3RlOiBleHBlY3RlZCAnc3RydWN0IExp c3BfWCAqICgqKShzdHJ1Y3QgTGlzcF9YICopJyBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSAnTGlz cF9PYmplY3QnIHtha2EgJ3N0cnVjdCBMaXNwX1ggKid9CiA0MTYxIHwgZXh0ZXJuIExpc3BfT2Jq ZWN0IGludGVybmFsX2NvbmRpdGlvbl9jYXNlXzUgKExpc3BfT2JqZWN0ICgqKSAoTGlzcF9PYmpl Y3QsIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0KSwg TGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3Bf T2JqZWN0LCBMaXNwX09iamVjdCwgTGlzcF9PYmplY3QgKCopIChMaXNwX09iamVjdCkpOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CiAgQ0MgICAgICAgcHJvY2Vzcy5vCiAgQ0MgICAgICAgZ251dGxzLm8KLi4v Li4vZW1hY3Mvc3JjL3Byb2Nlc3MuYzogSW4gZnVuY3Rpb24gJ3N0YXR1c19tZXNzYWdlJzoKLi4v Li4vZW1hY3Mvc3JjL3Byb2Nlc3MuYzo3NTQ6MTc6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdzdHJzaWduYWwnOyBkaWQgeW91IG1lYW4gJ3hzaWduYWwnPyBbLVdp bXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICA3NTQgfCAgICAgICBzaWduYW1lID0gc3Ry c2lnbmFsIChYRklYTkFUIChjb2RlKSk7CiAgICAgIHwgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fgogICAgICB8ICAgICAgICAgICAgICAgICB4c2lnbmFsCi4uLy4uL2VtYWNzL3NyYy9wcm9jZXNz LmM6NzU0OjE3OiB3YXJuaW5nOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mICdzdHJzaWdu YWwnIFstV25lc3RlZC1leHRlcm5zXQouLi8uLi9lbWFjcy9zcmMvcHJvY2Vzcy5jOjc1NDoxNTog d2FybmluZzogYXNzaWdubWVudCB0byAnY29uc3QgY2hhciAqJyBmcm9tICdpbnQnIG1ha2VzIHBv aW50ZXIgZnJvbSBpbnRlZ2VyIHdpdGhvdXQgYSBjYXN0IFstV2ludC1jb252ZXJzaW9uXQogIDc1 NCB8ICAgICAgIHNpZ25hbWUgPSBzdHJzaWduYWwgKFhGSVhOQVQgKGNvZGUpKTsKICAgICAgfCAg ICAgICAgICAgICAgIF4KICBDQyAgICAgICBjYWxscHJvYy5vCi4uLy4uL2VtYWNzL3NyYy9jYWxs cHJvYy5jOiBJbiBmdW5jdGlvbiAnY2FsbF9wcm9jZXNzJzoKLi4vLi4vZW1hY3Mvc3JjL2NhbGxw cm9jLmM6OTE2OjE3OiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn c3Ryc2lnbmFsJzsgZGlkIHlvdSBtZWFuICd4c2lnbmFsJz8gWy1XaW1wbGljaXQtZnVuY3Rpb24t ZGVjbGFyYXRpb25dCiAgOTE2IHwgICAgICAgc2lnbmFtZSA9IHN0cnNpZ25hbCAoV1RFUk1TSUcg KHN0YXR1cykpOwogICAgICB8ICAgICAgICAgICAgICAgICBefn5+fn5+fn4KICAgICAgfCAgICAg ICAgICAgICAgICAgeHNpZ25hbAouLi8uLi9lbWFjcy9zcmMvY2FsbHByb2MuYzo5MTY6MTc6IHdh cm5pbmc6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2YgJ3N0cnNpZ25hbCcgWy1XbmVzdGVk LWV4dGVybnNdCi4uLy4uL2VtYWNzL3NyYy9jYWxscHJvYy5jOjkxNjoxNTogd2FybmluZzogYXNz aWdubWVudCB0byAnY29uc3QgY2hhciAqJyBmcm9tICdpbnQnIG1ha2VzIHBvaW50ZXIgZnJvbSBp bnRlZ2VyIHdpdGhvdXQgYSBjYXN0IFstV2ludC1jb252ZXJzaW9uXQogIDkxNiB8ICAgICAgIHNp Z25hbWUgPSBzdHJzaWduYWwgKFdURVJNU0lHIChzdGF0dXMpKTsKICAgICAgfCAgICAgICAgICAg ICAgIF4KICBDQyAgICAgICByZWdpb24tY2FjaGUubwogIENDICAgICAgIHNvdW5kLm8KICBDQyAg ICAgICB0aW1lZm5zLm8KICBDQyAgICAgICBhdGltZXIubwogIENDICAgICAgIGRvcHJudC5vCiAg Q0MgICAgICAgaW50ZXJ2YWxzLm8KICBDQyAgICAgICB0ZXh0cHJvcC5vCiAgQ0MgICAgICAgY29t cG9zaXRlLm8KICBDQyAgICAgICB4bWwubwogIENDICAgICAgIGxjbXMubwogIENDICAgICAgIHcz Mm5vdGlmeS5vCiAgQ0MgICAgICAgcHJvZmlsZXIubwogIENDICAgICAgIGRlY29tcHJlc3Mubwog IENDICAgICAgIHRocmVhZC5vCiAgQ0MgICAgICAgc3lzdGhyZWFkLm8KICBDQyAgICAgICBoYmZv bnQubwogIENDICAgICAgIHczMmZucy5vCiAgQ0MgICAgICAgdzMybWVudS5vCiAgQ0MgICAgICAg dzMycmVnLm8KLi4vLi4vZW1hY3Mvc3JjL3czMm1lbnUuYzogSW4gZnVuY3Rpb24gJ3NldF9mcmFt ZV9tZW51YmFyJzoKLi4vLi4vZW1hY3Mvc3JjL3czMm1lbnUuYzozMjY6Mjogd2FybmluZzogJ21l bWNweScgb2Zmc2V0IFszLCAxMF0gZnJvbSB0aGUgb2JqZWN0IGF0ICc8dW5rbm93bj4nIGlzIG91 dCBvZiB0aGUgYm91bmRzIG9mIHJlZmVyZW5jZWQgc3Vib2JqZWN0ICdjb250ZW50cycgd2l0aCB0 eXBlICdzdHJ1Y3QgTGlzcF9YICpbXScgYXQgb2Zmc2V0IDMgWy1XYXJyYXktYm91bmRzXQogIDMy NiB8ICBtZW1jcHkgKHByZXZpb3VzX2l0ZW1zLCBYVkVDVE9SIChmLT5tZW51X2Jhcl92ZWN0b3Ip LT5jb250ZW50cywKICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgMzI3IHwgICBwcmV2aW91c19tZW51X2l0ZW1z X3VzZWQgKiB3b3JkX3NpemUpOwogICAgICB8ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi4vLi4vZW1hY3Mvc3JjL3czMm1lbnUu YzoyNjoKLi4vLi4vZW1hY3Mvc3JjL2xpc3AuaDoxNjIzOjE3OiBub3RlOiBzdWJvYmplY3QgJ2Nv bnRlbnRzJyBkZWNsYXJlZCBoZXJlCiAxNjIzIHwgICAgIExpc3BfT2JqZWN0IGNvbnRlbnRzW0ZM RVhJQkxFX0FSUkFZX01FTUJFUl07CiAgICAgIHwgICAgICAgICAgICAgICAgIF5+fn5+fn5+CiAg Q0MgICAgICAgdzMyZm9udC5vCiAgQ0MgICAgICAgdzMydGVybS5vCiAgQ0MgICAgICAgdzMyeGZu cy5vCiAgQ0MgICAgICAgdzMyc2VsZWN0Lm8KICBDQyAgICAgICB3MzJ1bmlzY3JpYmUubwogIEND ICAgICAgIHczMmN5Z3dpbngubwogIENDICAgICAgIHczMi5vCiAgQ0MgICAgICAgdzMyY29uc29s ZS5vCiAgQ0MgICAgICAgdzMyaGVhcC5vCiAgQ0MgICAgICAgdzMyaW5ldnQubwogIENDICAgICAg IHczMnByb2MubwogIENDICAgICAgIHczMmltYWdlLm8KLi4vLi4vZW1hY3Mvc3JjL3czMi5jOiBJ biBmdW5jdGlvbiAnX3N5c19yZWFkX2FoZWFkJzoKLi4vLi4vZW1hY3Mvc3JjL3czMi5jOjg3OTA6 MTA6IHdhcm5pbmc6ICdyYycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0 aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiA4NzkwIHwgICBpZiAocmMgPT0gc2l6ZW9mIChj aGFyKSkKICAgICAgfCAgICAgICB+fn5efn5+fn5+fn5+fn5+fn5+CiAgQ0MgICAgICAgZm9udHNl dC5vCiAgQ0MgICAgICAgZnJpbmdlLm8KICBDQyAgICAgICBpbWFnZS5vCiAgQ0MgICAgICAganNv bi5vCiAgQ0MgICAgICAgdHBhcmFtLm8KICBDQyAgICAgICBsYXN0ZmlsZS5vCiAgQ0NMRCAgICAg dGVtYWNzLmV4ZQovdXNyL2Jpbi9ta2RpciAtcCAuLi9ldGMKbWFrZSAtQyAuLi9saXNwIHVwZGF0 ZS1zdWJkaXJzCm1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1h Y3MtbmF0aXZlLWNvbXAvYnVpbGQvbGlzcCcKbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9o b21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2J1aWxkL2xpc3AnCmNwIC1mIHRlbWFjcy5l eGUgYm9vdHN0cmFwLWVtYWNzLmV4ZQpybSAtZiBib290c3RyYXAtZW1hY3MucGRtcAouL3RlbWFj cyAtLWJhdGNoICAtbCBsb2FkdXAgLS10ZW1hY3M9cGJvb3RzdHJhcCBcCgktLWJpbi1kZXN0IC9o b21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2Rlc3QvYmluLyAtLWVsbi1kZXN0ICIvaG9t ZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9kZXN0L2xpYi9lbWFjcy8yOC4wLjUwLyIKTG9h ZGluZyBsb2FkdXAuZWwgKHNvdXJjZSkuLi4NCkR1bXAgbW9kZTogcGJvb3RzdHJhcA0KVXNpbmcg bG9hZC1wYXRoIChjOi9tc3lzNjQvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9lbWFj cy9saXNwIGM6L21zeXM2NC9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2VtYWNzL2xp c3AvZW1hY3MtbGlzcCBjOi9tc3lzNjQvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9l bWFjcy9saXNwL3Byb2dtb2RlcyBjOi9tc3lzNjQvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUt Y29tcC9lbWFjcy9saXNwL2xhbmd1YWdlIGM6L21zeXM2NC9ob21lL2NyYW1hcGgxL2VtYWNzLW5h dGl2ZS1jb21wL2VtYWNzL2xpc3AvaW50ZXJuYXRpb25hbCBjOi9tc3lzNjQvaG9tZS9jcmFtYXBo MS9lbWFjcy1uYXRpdmUtY29tcC9lbWFjcy9saXNwL3RleHRtb2RlcyBjOi9tc3lzNjQvaG9tZS9j cmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9lbWFjcy9saXNwL3ZjKQ0KTG9hZGluZyBlbWFjcy1s aXNwL2J5dGUtcnVuLi4uDQpMb2FkaW5nIGVtYWNzLWxpc3AvYmFja3F1b3RlLi4uDQpMb2FkaW5n IHN1YnIuLi4NCkxvYWRpbmcgdmVyc2lvbi4uLg0KTG9hZGluZyB3aWRnZXQuLi4NCkxvYWRpbmcg Y3VzdG9tLi4uDQpMb2FkaW5nIGVtYWNzLWxpc3AvbWFwLXlucC4uLg0KTG9hZGluZyBpbnRlcm5h dGlvbmFsL211bGUuLi4NCkxvYWRpbmcgaW50ZXJuYXRpb25hbC9tdWxlLWNvbmYuLi4NCkxvYWRp bmcgZW52Li4uDQpMb2FkaW5nIGZvcm1hdC4uLg0KTG9hZGluZyBiaW5kaW5ncy4uLg0KTG9hZGlu ZyB3aW5kb3cuLi4NCkxvYWRpbmcgZmlsZXMuLi4NCkxvYWRpbmcgZW1hY3MtbGlzcC9tYWNyb2V4 cC4uLg0KTG9hZGluZyBjdXMtZmFjZS4uLg0KTG9hZGluZyBmYWNlcy4uLg0KTG9hZGluZyBjOi9t c3lzNjQvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9lbWFjcy9saXNwL2xvYWRkZWZz LmVsIChzb3VyY2UpLi4uDQpMb2FkaW5nIGJ1dHRvbi4uLg0KTG9hZGluZyBlbWFjcy1saXNwL25h ZHZpY2UuLi4NCkxvYWRpbmcgZW1hY3MtbGlzcC9jbC1wcmVsb2FkZWQuLi4NCkxvYWRpbmcgb2Jh cnJheS4uLg0KTG9hZGluZyBhYmJyZXYuLi4NCkxvYWRpbmcgc2ltcGxlLi4uDQpMb2FkaW5nIGhl bHAuLi4NCkxvYWRpbmcgamthLWNtcHItaG9vay4uLg0KTG9hZGluZyBlcGEtaG9vay4uLg0KTG9h ZGluZyBpbnRlcm5hdGlvbmFsL211bGUtY21kcy4uLg0KTG9hZGluZyBjYXNlLXRhYmxlLi4uDQpM b2FkaW5nIGM6L21zeXM2NC9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2VtYWNzL2xp c3AvaW50ZXJuYXRpb25hbC9jaGFycHJvcC5lbCAoc291cmNlKS4uLg0KTG9hZGluZyBpbnRlcm5h dGlvbmFsL2NoYXJhY3RlcnMuLi4NCkxvYWRpbmcgaW50ZXJuYXRpb25hbC9jaGFyc2NyaXB0Li4u DQpMb2FkaW5nIGNvbXBvc2l0ZS4uLg0KTG9hZGluZyBsYW5ndWFnZS9jaGluZXNlLi4uDQpMb2Fk aW5nIGxhbmd1YWdlL2N5cmlsbGljLi4uDQpMb2FkaW5nIGxhbmd1YWdlL2luZGlhbi4uLg0KTG9h ZGluZyBsYW5ndWFnZS9zaW5oYWxhLi4uDQpMb2FkaW5nIGxhbmd1YWdlL2VuZ2xpc2guLi4NCkxv YWRpbmcgbGFuZ3VhZ2UvZXRoaW9waWMuLi4NCkxvYWRpbmcgbGFuZ3VhZ2UvZXVyb3BlYW4uLi4N CkxvYWRpbmcgbGFuZ3VhZ2UvY3plY2guLi4NCkxvYWRpbmcgbGFuZ3VhZ2Uvc2xvdmFrLi4uDQpM b2FkaW5nIGxhbmd1YWdlL3JvbWFuaWFuLi4uDQpMb2FkaW5nIGxhbmd1YWdlL2dyZWVrLi4uDQpM b2FkaW5nIGxhbmd1YWdlL2hlYnJldy4uLg0KTG9hZGluZyBpbnRlcm5hdGlvbmFsL2NwNTE5MzIu Li4NCkxvYWRpbmcgaW50ZXJuYXRpb25hbC9ldWNqcC1tcy4uLg0KTG9hZGluZyBsYW5ndWFnZS9q YXBhbmVzZS4uLg0KTG9hZGluZyBsYW5ndWFnZS9rb3JlYW4uLi4NCkxvYWRpbmcgbGFuZ3VhZ2Uv bGFvLi4uDQpMb2FkaW5nIGxhbmd1YWdlL3RhaS12aWV0Li4uDQpMb2FkaW5nIGxhbmd1YWdlL3Ro YWkuLi4NCkxvYWRpbmcgbGFuZ3VhZ2UvdGliZXRhbi4uLg0KTG9hZGluZyBsYW5ndWFnZS92aWV0 bmFtZXNlLi4uDQpMb2FkaW5nIGxhbmd1YWdlL21pc2MtbGFuZy4uLg0KTG9hZGluZyBsYW5ndWFn ZS91dGYtOC1sYW5nLi4uDQpMb2FkaW5nIGxhbmd1YWdlL2dlb3JnaWFuLi4uDQpMb2FkaW5nIGxh bmd1YWdlL2tobWVyLi4uDQpMb2FkaW5nIGxhbmd1YWdlL2J1cm1lc2UuLi4NCkxvYWRpbmcgbGFu Z3VhZ2UvY2hhbS4uLg0KTG9hZGluZyBpbmRlbnQuLi4NCkxvYWRpbmcgZW1hY3MtbGlzcC9jbC1n ZW5lcmljLi4uDQpMb2FkaW5nIG1pbmlidWZmZXIuLi4NCkxvYWRpbmcgZnJhbWUuLi4NCkxvYWRp bmcgc3RhcnR1cC4uLg0KTG9hZGluZyB0ZXJtL3R0eS1jb2xvcnMuLi4NCkxvYWRpbmcgZm9udC1j b3JlLi4uDQpMb2FkaW5nIGZhY2VtZW51Li4uDQpMb2FkaW5nIGVtYWNzLWxpc3Avc3ludGF4Li4u DQpMb2FkaW5nIGZvbnQtbG9jay4uLg0KTG9hZGluZyBqaXQtbG9jay4uLg0KTG9hZGluZyBtb3Vz ZS4uLg0KTG9hZGluZyBzY3JvbGwtYmFyLi4uDQpMb2FkaW5nIHNlbGVjdC4uLg0KTG9hZGluZyBl bWFjcy1saXNwL3RpbWVyLi4uDQpMb2FkaW5nIGlzZWFyY2guLi4NCkxvYWRpbmcgcmZuLWVzaGFk b3cuLi4NCkxvYWRpbmcgbWVudS1iYXIuLi4NCkxvYWRpbmcgdGFiLWJhci4uLg0KTG9hZGluZyBl bWFjcy1saXNwL2xpc3AuLi4NCkxvYWRpbmcgdGV4dG1vZGVzL3BhZ2UuLi4NCkxvYWRpbmcgcmVn aXN0ZXIuLi4NCkxvYWRpbmcgdGV4dG1vZGVzL3BhcmFncmFwaHMuLi4NCkxvYWRpbmcgcHJvZ21v ZGVzL3Byb2ctbW9kZS4uLg0KTG9hZGluZyBlbWFjcy1saXNwL2xpc3AtbW9kZS4uLg0KTG9hZGlu ZyBwcm9nbW9kZXMvZWxpc3AtbW9kZS4uLg0KTG9hZGluZyB0ZXh0bW9kZXMvdGV4dC1tb2RlLi4u DQpMb2FkaW5nIHRleHRtb2Rlcy9maWxsLi4uDQpMb2FkaW5nIG5ld2NvbW1lbnQuLi4NCkxvYWRp bmcgcmVwbGFjZS4uLg0KTG9hZGluZyBlbWFjcy1saXNwL3RhYnVsYXRlZC1saXN0Li4uDQpMb2Fk aW5nIGJ1ZmYtbWVudS4uLg0KTG9hZGluZyBmcmluZ2UuLi4NCkxvYWRpbmcgZW1hY3MtbGlzcC9y ZWdleHAtb3B0Li4uDQpMb2FkaW5nIGltYWdlLi4uDQpMb2FkaW5nIGludGVybmF0aW9uYWwvZm9u dHNldC4uLg0KTG9hZGluZyBkbmQuLi4NCkxvYWRpbmcgdG9vbC1iYXIuLi4NCkxvYWRpbmcgdGVy bS9jb21tb24td2luLi4uDQpMb2FkaW5nIHczMi12YXJzLi4uDQpMb2FkaW5nIGM6L21zeXM2NC9o b21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2VtYWNzL2xpc3AvdGVybS93MzItd2luLmVs IChzb3VyY2UpLi4uDQpMb2FkaW5nIGRpc3AtdGFibGUuLi4NCkxvYWRpbmcgdzMyLWZucy4uLg0K TG9hZGluZyBscy1saXNwLi4uDQpMb2FkaW5nIGRvcy13MzIuLi4NCkxvYWRpbmcgbXdoZWVsLi4u DQpMb2FkaW5nIGVtYWNzLWxpc3AvZmxvYXQtc3VwLi4uDQpMb2FkaW5nIHZjL3ZjLWhvb2tzLi4u DQpMb2FkaW5nIHZjL2VkaWZmLWhvb2suLi4NCkxvYWRpbmcgdW5pcXVpZnkuLi4NCkxvYWRpbmcg ZWxlY3RyaWMuLi4NCkxvYWRpbmcgZW1hY3MtbGlzcC9lbGRvYy4uLg0KTG9hZGluZyBjdXMtc3Rh cnQuLi4NCkxvYWRpbmcgdG9vbHRpcC4uLg0KTG9hZGluZyBpbnRlcm5hdGlvbmFsL2lzby10cmFu c2wuLi4NCkxvYWRpbmcgYzovbXN5czY0L2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAv ZW1hY3MvbGlzcC9sZWltL2xlaW0tbGlzdC5lbCAoc291cmNlKS4uLg0KRmluZGluZyBwb2ludGVy cyB0byBkb2Mgc3RyaW5ncy4uLg0KRmluZGluZyBwb2ludGVycyB0byBkb2Mgc3RyaW5ncy4uLmRv bmUNCkR1bXBpbmcgdW5kZXIgdGhlIG5hbWUgYm9vdHN0cmFwLWVtYWNzLnBkbXANCkR1bXBpbmcg ZmluZ2VycHJpbnQ6IDg4ZmNkNWNhMjc3MDk4NDdmMWE3YmRhNTY3YWIzMWE1ZDUwMjdlMzUyOTNm Njk4ZTgwNDk1NWY3MmFkMzFmODINCkR1bXAgY29tcGxldGUNCkJ5dGUgY291bnRzOiBoZWFkZXI9 MTAwIGhvdD04MDM5NTgwIGRpc2NhcmRhYmxlPTE2NjkyMCBjb2xkPTQ4MjEzOTINClJlbG9jIGNv dW50czogaG90PTQ0Mzk2MSBkaXNjYXJkYWJsZT01MDQxDQpEZWJ1Z2dlciBlbnRlcmVkLS1MaXNw IGVycm9yOiAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkNCiAga2lsbC1lbWFjcygp DQogIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgImVtYWNz LnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1t b2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9kZSAicGJvb3RzdHJhcCIp ICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJvciAidW5yZWNvZ25pemVkIGR1bXAgbW9k ZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChl cXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNvbXAtZW5hYmxlLXN1YnItdHJhbXBvbGlu ZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRoZSBuYW1lICVzIiBvdXRwdXQpIChjb25k aXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxl dCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0IChsZXQgKCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9k ZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1lbWJlciB0bXAtZHVtcC1tb2RlICcoInBkdW1wIiAi cGJvb3RzdHJhcCIpKSAoZHVtcC1lbWFjcy1wb3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRw dXQgaW52b2NhdGlvbi1kaXJlY3RvcnkpKSAoZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpICht ZXNzYWdlICIlZCBwdXJlIGJ5dGVzIHVzZWQiIHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nl c3MgdCkpICh1bmxlc3Mgc3VjY2VzcyAoaWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0 KSkpKSkgKGlmIChub3QgKG9yIChlcSBzeXN0ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAt bW9kZSAnKCJwYm9vdHN0cmFwIiAiYm9vdHN0cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAi ZW1hY3MtJXMuJWQiIGVtYWNzLXZlcnNpb24gZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYg KGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmct bWF0Y2ggIlteLStfLmEtekEtWjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25j YXNlIChzdWJzdHJpbmcgbmFtZSAwIC4uLikpICItIiAoc3Vic3RyaW5nIG5hbWUgKG1hdGNoLWVu ZCAwKSkpKSkgKG1lc3NhZ2UgIkFkZGluZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgZXhlKSkgKGFk ZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52 b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSBleGUpIGlu dm9jYXRpb24tZGlyZWN0b3J5KSB0KSAod2hlbiAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpICht ZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBuYW1lICIucGRtcCIpKSAoYWRkLW5hbWUt dG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAiZW1hY3MucGRtcCIgaW52b2NhdGlvbi1kaXJlY3Rv cnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRp cmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1hY3MpKQ0KICAoaWYgZHVtcC1tb2RlIChsZXQgKChvdXRw dXQgKGNvbmQgKChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFs IGR1bXAtbW9kZSAiZHVtcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAi KSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1h Y3MucGRtcCIpICh0IChlcnJvciAidW5yZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2Rl KSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUg InBkdW1wIikpIChzZXRxIGNvbXAtZW5hYmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdl ICJEdW1waW5nIHVuZGVyIHRoZSBuYW1lICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwg KGRlbGV0ZS1maWxlIG91dHB1dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVu d2luZC1wcm90ZWN0IChsZXQgKCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBu aWwpKSAoaWYgKG1lbWJlciB0bXAtZHVtcC1tb2RlICcuLi4pIChkdW1wLWVtYWNzLXBvcnRhYmxl IChleHBhbmQtZmlsZS1uYW1lIG91dHB1dCBpbnZvY2F0aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVt YWNzIG91dHB1dCAidGVtYWNzIikgKG1lc3NhZ2UgIiVkIHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1i eXRlcy11c2VkKSkgKHNldHEgc3VjY2VzcyB0KSkgKHVubGVzcyBzdWNjZXNzIChpZ25vcmUtZXJy b3JzIChkZWxldGUtZmlsZSBvdXRwdXQpKSkpKSAoaWYgKG5vdCAob3IgKGVxIHN5c3RlbS10eXBl ICdtcy1kb3MpIChtZW1iZXIgZHVtcC1tb2RlICcoInBib290c3RyYXAiICJib290c3RyYXAiKSkp KSAobGV0ICgobmFtZSAoZm9ybWF0ICJlbWFjcy0lcy4lZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1i dWlsZC1udW1iZXIpKSAoZXhlIChpZiAoZXEgc3lzdGVtLXR5cGUgLi4uKSAiLmV4ZSIgIiIpKSkg KHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStfLmEtekEtWjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1l IChjb25jYXQgKGRvd25jYXNlIC4uLikgIi0iIChzdWJzdHJpbmcgbmFtZSAuLi4pKSkpIChtZXNz YWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxl IChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0 b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVj dG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5n IG5hbWUgJXMiIChjb25jYXQgbmFtZSAiLnBkbXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFu ZC1maWxlLW5hbWUgImVtYWNzLnBkbXAiIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZp bGUtbmFtZSAoY29uY2F0IG5hbWUgIi5wZG1wIikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkp IChraWxsLWVtYWNzKSkpDQogIGxvYWQoImxvYWR1cC5lbCIpDQoNCkRlYnVnZ2VyIGVudGVyZWQt LUxpc3AgZXJyb3I6ICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KQ0KICBraWxsLWVt YWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkp DQogIGtpbGwtZW1hY3MoKQ0KICAobGV0ICgob3V0cHV0IChjb25kICgoZXF1YWwgZHVtcC1tb2Rl ICJwZHVtcCIpICJlbWFjcy5wZG1wIikgKChlcXVhbCBkdW1wLW1vZGUgImR1bXAiKSAiZW1hY3Mi KSAoKGVxdWFsIGR1bXAtbW9kZSAiYm9vdHN0cmFwIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1v ZGUgInBib290c3RyYXAiKSAiYm9vdHN0cmFwLWVtYWNzLnBkbXAiKSAodCAoZXJyb3IgInVucmVj b2duaXplZCBkdW1wIG1vZGUgJXMiIGR1bXAtbW9kZSkpKSkpICh3aGVuIChhbmQgKGZlYXR1cmVw ICduYXRpdmVjb21wKSAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpKSAoc2V0cSBjb21wLWVuYWJs ZS1zdWJyLXRyYW1wb2xpbmVzIHQpKSAobWVzc2FnZSAiRHVtcGluZyB1bmRlciB0aGUgbmFtZSAl cyIgb3V0cHV0KSAoY29uZGl0aW9uLWNhc2UgbmlsIChkZWxldGUtZmlsZSBvdXRwdXQpIChmaWxl LWVycm9yIG5pbCkpIChsZXQgKHN1Y2Nlc3MpICh1bndpbmQtcHJvdGVjdCAobGV0ICgodG1wLWR1 bXAtbW9kZSBkdW1wLW1vZGUpIChkdW1wLW1vZGUgbmlsKSkgKGlmIChtZW1iZXIgdG1wLWR1bXAt bW9kZSAnKCJwZHVtcCIgInBib290c3RyYXAiKSkgKGR1bXAtZW1hY3MtcG9ydGFibGUgKGV4cGFu ZC1maWxlLW5hbWUgb3V0cHV0IGludm9jYXRpb24tZGlyZWN0b3J5KSkgKGR1bXAtZW1hY3Mgb3V0 cHV0ICJ0ZW1hY3MiKSAobWVzc2FnZSAiJWQgcHVyZSBieXRlcyB1c2VkIiBwdXJlLWJ5dGVzLXVz ZWQpKSAoc2V0cSBzdWNjZXNzIHQpKSAodW5sZXNzIHN1Y2Nlc3MgKGlnbm9yZS1lcnJvcnMgKGRl bGV0ZS1maWxlIG91dHB1dCkpKSkpIChpZiAobm90IChvciAoZXEgc3lzdGVtLXR5cGUgJ21zLWRv cykgKG1lbWJlciBkdW1wLW1vZGUgJygicGJvb3RzdHJhcCIgImJvb3RzdHJhcCIpKSkpIChsZXQg KChuYW1lIChmb3JtYXQgImVtYWNzLSVzLiVkIiBlbWFjcy12ZXJzaW9uIGVtYWNzLWJ1aWxkLW51 bWJlcikpIChleGUgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkgIi5leGUiICIiKSkp ICh3aGlsZSAoc3RyaW5nLW1hdGNoICJbXi0rXy5hLXpBLVowLTldKyIgbmFtZSkgKHNldHEgbmFt ZSAoY29uY2F0IChkb3duY2FzZSAoc3Vic3RyaW5nIG5hbWUgMCAuLi4pKSAiLSIgKHN1YnN0cmlu ZyBuYW1lIChtYXRjaC1lbmQgMCkpKSkpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNh dCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQg ImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29u Y2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1bXAt bW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSAiLnBk bXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzLnBkbXAiIGlu dm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgIi5wZG1w IikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkpIChraWxsLWVtYWNzKSkNCiAgKGlmIGR1bXAt bW9kZSAobGV0ICgob3V0cHV0IChjb25kICgoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpICJlbWFj cy5wZG1wIikgKChlcXVhbCBkdW1wLW1vZGUgImR1bXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAt bW9kZSAiYm9vdHN0cmFwIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgInBib290c3RyYXAi KSAiYm9vdHN0cmFwLWVtYWNzLnBkbXAiKSAodCAoZXJyb3IgInVucmVjb2duaXplZCBkdW1wIG1v ZGUgJXMiIGR1bXAtbW9kZSkpKSkpICh3aGVuIChhbmQgKGZlYXR1cmVwICduYXRpdmVjb21wKSAo ZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpKSAoc2V0cSBjb21wLWVuYWJsZS1zdWJyLXRyYW1wb2xp bmVzIHQpKSAobWVzc2FnZSAiRHVtcGluZyB1bmRlciB0aGUgbmFtZSAlcyIgb3V0cHV0KSAoY29u ZGl0aW9uLWNhc2UgbmlsIChkZWxldGUtZmlsZSBvdXRwdXQpIChmaWxlLWVycm9yIG5pbCkpIChs ZXQgKHN1Y2Nlc3MpICh1bndpbmQtcHJvdGVjdCAobGV0ICgodG1wLWR1bXAtbW9kZSBkdW1wLW1v ZGUpIChkdW1wLW1vZGUgbmlsKSkgKGlmIChtZW1iZXIgdG1wLWR1bXAtbW9kZSAnLi4uKSAoZHVt cC1lbWFjcy1wb3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRwdXQgaW52b2NhdGlvbi1kaXJl Y3RvcnkpKSAoZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpIChtZXNzYWdlICIlZCBwdXJlIGJ5 dGVzIHVzZWQiIHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mgc3Vj Y2VzcyAoaWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0KSkpKSkgKGlmIChub3QgKG9y IChlcSBzeXN0ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0cmFw IiAiYm9vdHN0cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVtYWNz LXZlcnNpb24gZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBlIC4u LikgIi5leGUiICIiKSkpICh3aGlsZSAoc3RyaW5nLW1hdGNoICJbXi0rXy5hLXpBLVowLTldKyIg bmFtZSkgKHNldHEgbmFtZSAoY29uY2F0IChkb3duY2FzZSAuLi4pICItIiAoc3Vic3RyaW5nIG5h bWUgLi4uKSkpKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSBleGUpKSAo YWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0ICJlbWFjcyIgZXhlKSBp bnZvY2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lIGV4ZSkg aW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpICh3aGVuIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikg KG1lc3NhZ2UgIkFkZGluZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgIi5wZG1wIikpIChhZGQtbmFt ZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lICJlbWFjcy5wZG1wIiBpbnZvY2F0aW9uLWRpcmVj dG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lICIucGRtcCIpIGludm9jYXRpb24t ZGlyZWN0b3J5KSB0KSkpKSAoa2lsbC1lbWFjcykpKQ0KICBsb2FkKCJsb2FkdXAuZWwiKQ0KDQpE ZWJ1Z2dlciBlbnRlcmVkLS1MaXNwIGVycm9yOiAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51 bXAgdCkNCiAga2lsbC1lbWFjcygtMSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1l bnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3Jvbmct dHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoKQ0KICAobGV0ICgob3V0 cHV0IChjb25kICgoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpICJlbWFjcy5wZG1wIikgKChlcXVh bCBkdW1wLW1vZGUgImR1bXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9kZSAiYm9vdHN0cmFw IikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgInBib290c3RyYXAiKSAiYm9vdHN0cmFwLWVt YWNzLnBkbXAiKSAodCAoZXJyb3IgInVucmVjb2duaXplZCBkdW1wIG1vZGUgJXMiIGR1bXAtbW9k ZSkpKSkpICh3aGVuIChhbmQgKGZlYXR1cmVwICduYXRpdmVjb21wKSAoZXF1YWwgZHVtcC1tb2Rl ICJwZHVtcCIpKSAoc2V0cSBjb21wLWVuYWJsZS1zdWJyLXRyYW1wb2xpbmVzIHQpKSAobWVzc2Fn ZSAiRHVtcGluZyB1bmRlciB0aGUgbmFtZSAlcyIgb3V0cHV0KSAoY29uZGl0aW9uLWNhc2Ugbmls IChkZWxldGUtZmlsZSBvdXRwdXQpIChmaWxlLWVycm9yIG5pbCkpIChsZXQgKHN1Y2Nlc3MpICh1 bndpbmQtcHJvdGVjdCAobGV0ICgodG1wLWR1bXAtbW9kZSBkdW1wLW1vZGUpIChkdW1wLW1vZGUg bmlsKSkgKGlmIChtZW1iZXIgdG1wLWR1bXAtbW9kZSAnKCJwZHVtcCIgInBib290c3RyYXAiKSkg KGR1bXAtZW1hY3MtcG9ydGFibGUgKGV4cGFuZC1maWxlLW5hbWUgb3V0cHV0IGludm9jYXRpb24t ZGlyZWN0b3J5KSkgKGR1bXAtZW1hY3Mgb3V0cHV0ICJ0ZW1hY3MiKSAobWVzc2FnZSAiJWQgcHVy ZSBieXRlcyB1c2VkIiBwdXJlLWJ5dGVzLXVzZWQpKSAoc2V0cSBzdWNjZXNzIHQpKSAodW5sZXNz IHN1Y2Nlc3MgKGlnbm9yZS1lcnJvcnMgKGRlbGV0ZS1maWxlIG91dHB1dCkpKSkpIChpZiAobm90 IChvciAoZXEgc3lzdGVtLXR5cGUgJ21zLWRvcykgKG1lbWJlciBkdW1wLW1vZGUgJygicGJvb3Rz dHJhcCIgImJvb3RzdHJhcCIpKSkpIChsZXQgKChuYW1lIChmb3JtYXQgImVtYWNzLSVzLiVkIiBl bWFjcy12ZXJzaW9uIGVtYWNzLWJ1aWxkLW51bWJlcikpIChleGUgKGlmIChlcSBzeXN0ZW0tdHlw ZSAnd2luZG93cy1udCkgIi5leGUiICIiKSkpICh3aGlsZSAoc3RyaW5nLW1hdGNoICJbXi0rXy5h LXpBLVowLTldKyIgbmFtZSkgKHNldHEgbmFtZSAoY29uY2F0IChkb3duY2FzZSAoc3Vic3RyaW5n IG5hbWUgMCAuLi4pKSAiLSIgKHN1YnN0cmluZyBuYW1lIChtYXRjaC1lbmQgMCkpKSkpIChtZXNz YWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxl IChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0 b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVj dG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5n IG5hbWUgJXMiIChjb25jYXQgbmFtZSAiLnBkbXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFu ZC1maWxlLW5hbWUgImVtYWNzLnBkbXAiIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZp bGUtbmFtZSAoY29uY2F0IG5hbWUgIi5wZG1wIikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkp IChraWxsLWVtYWNzKSkNCiAgKGlmIGR1bXAtbW9kZSAobGV0ICgob3V0cHV0IChjb25kICgoZXF1 YWwgZHVtcC1tb2RlICJwZHVtcCIpICJlbWFjcy5wZG1wIikgKChlcXVhbCBkdW1wLW1vZGUgImR1 bXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9kZSAiYm9vdHN0cmFwIikgImVtYWNzIikgKChl cXVhbCBkdW1wLW1vZGUgInBib290c3RyYXAiKSAiYm9vdHN0cmFwLWVtYWNzLnBkbXAiKSAodCAo ZXJyb3IgInVucmVjb2duaXplZCBkdW1wIG1vZGUgJXMiIGR1bXAtbW9kZSkpKSkpICh3aGVuIChh bmQgKGZlYXR1cmVwICduYXRpdmVjb21wKSAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpKSAoc2V0 cSBjb21wLWVuYWJsZS1zdWJyLXRyYW1wb2xpbmVzIHQpKSAobWVzc2FnZSAiRHVtcGluZyB1bmRl ciB0aGUgbmFtZSAlcyIgb3V0cHV0KSAoY29uZGl0aW9uLWNhc2UgbmlsIChkZWxldGUtZmlsZSBv dXRwdXQpIChmaWxlLWVycm9yIG5pbCkpIChsZXQgKHN1Y2Nlc3MpICh1bndpbmQtcHJvdGVjdCAo bGV0ICgodG1wLWR1bXAtbW9kZSBkdW1wLW1vZGUpIChkdW1wLW1vZGUgbmlsKSkgKGlmIChtZW1i ZXIgdG1wLWR1bXAtbW9kZSAnLi4uKSAoZHVtcC1lbWFjcy1wb3J0YWJsZSAoZXhwYW5kLWZpbGUt bmFtZSBvdXRwdXQgaW52b2NhdGlvbi1kaXJlY3RvcnkpKSAoZHVtcC1lbWFjcyBvdXRwdXQgInRl bWFjcyIpIChtZXNzYWdlICIlZCBwdXJlIGJ5dGVzIHVzZWQiIHB1cmUtYnl0ZXMtdXNlZCkpIChz ZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mgc3VjY2VzcyAoaWdub3JlLWVycm9ycyAoZGVsZXRlLWZp bGUgb3V0cHV0KSkpKSkgKGlmIChub3QgKG9yIChlcSBzeXN0ZW0tdHlwZSAnbXMtZG9zKSAobWVt YmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0cmFwIiAiYm9vdHN0cmFwIikpKSkgKGxldCAoKG5hbWUg KGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVtYWNzLXZlcnNpb24gZW1hY3MtYnVpbGQtbnVtYmVyKSkg KGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBlIC4uLikgIi5leGUiICIiKSkpICh3aGlsZSAoc3RyaW5n LW1hdGNoICJbXi0rXy5hLXpBLVowLTldKyIgbmFtZSkgKHNldHEgbmFtZSAoY29uY2F0IChkb3du Y2FzZSAuLi4pICItIiAoc3Vic3RyaW5nIG5hbWUgLi4uKSkpKSAobWVzc2FnZSAiQWRkaW5nIG5h bWUgJXMiIChjb25jYXQgbmFtZSBleGUpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUt bmFtZSAoY29uY2F0ICJlbWFjcyIgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFuZC1m aWxlLW5hbWUgKGNvbmNhdCBuYW1lIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpICh3aGVu IChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgKG1lc3NhZ2UgIkFkZGluZyBuYW1lICVzIiAoY29u Y2F0IG5hbWUgIi5wZG1wIikpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lICJl bWFjcy5wZG1wIiBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNh dCBuYW1lICIucGRtcCIpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSkpKSAoa2lsbC1lbWFjcykp KQ0KICBsb2FkKCJsb2FkdXAuZWwiKQ0KDQpEZWJ1Z2dlciBlbnRlcmVkLS1MaXNwIGVycm9yOiAo d3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkNCiAga2lsbC1lbWFjcygtMSkNCiAgZGVi dWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVtYWNz KC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQog IGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xl bnVtcCB0KSkNCiAga2lsbC1lbWFjcygpDQogIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBk dW1wLW1vZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIp ICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFs IGR1bXAtbW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJv ciAidW5yZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAo ZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNv bXAtZW5hYmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRo ZSBuYW1lICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1 dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0IChsZXQg KCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1lbWJlciB0 bXAtZHVtcC1tb2RlICcoInBkdW1wIiAicGJvb3RzdHJhcCIpKSAoZHVtcC1lbWFjcy1wb3J0YWJs ZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRwdXQgaW52b2NhdGlvbi1kaXJlY3RvcnkpKSAoZHVtcC1l bWFjcyBvdXRwdXQgInRlbWFjcyIpIChtZXNzYWdlICIlZCBwdXJlIGJ5dGVzIHVzZWQiIHB1cmUt Ynl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mgc3VjY2VzcyAoaWdub3JlLWVy cm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0KSkpKSkgKGlmIChub3QgKG9yIChlcSBzeXN0ZW0tdHlw ZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0cmFwIiAiYm9vdHN0cmFwIikp KSkgKGxldCAoKG5hbWUgKGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVtYWNzLXZlcnNpb24gZW1hY3Mt YnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KSAiLmV4 ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStfLmEtekEtWjAtOV0rIiBuYW1lKSAo c2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIChzdWJzdHJpbmcgbmFtZSAwIC4uLikpICItIiAo c3Vic3RyaW5nIG5hbWUgKG1hdGNoLWVuZCAwKSkpKSkgKG1lc3NhZ2UgIkFkZGluZyBuYW1lICVz IiAoY29uY2F0IG5hbWUgZXhlKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUg KGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1u YW1lIChjb25jYXQgbmFtZSBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSAod2hlbiAoZXF1 YWwgZHVtcC1tb2RlICJwZHVtcCIpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBu YW1lICIucGRtcCIpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAiZW1hY3Mu cGRtcCIgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgbmFt ZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1hY3MpKQ0KICAo aWYgZHVtcC1tb2RlIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBkdW1wLW1vZGUgInBkdW1w IikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIpICJlbWFjcyIpICgoZXF1 YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9kZSAicGJv b3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJvciAidW5yZWNvZ25pemVk IGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVyZXAgJ25hdGl2 ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNvbXAtZW5hYmxlLXN1YnIt dHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRoZSBuYW1lICVzIiBvdXRw dXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1dCkgKGZpbGUtZXJyb3Ig bmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0IChsZXQgKCh0bXAtZHVtcC1tb2Rl IGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1lbWJlciB0bXAtZHVtcC1tb2RlICcu Li4pIChkdW1wLWVtYWNzLXBvcnRhYmxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dCBpbnZvY2F0 aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVtYWNzIG91dHB1dCAidGVtYWNzIikgKG1lc3NhZ2UgIiVk IHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1ieXRlcy11c2VkKSkgKHNldHEgc3VjY2VzcyB0KSkgKHVu bGVzcyBzdWNjZXNzIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSBvdXRwdXQpKSkpKSAoaWYg KG5vdCAob3IgKGVxIHN5c3RlbS10eXBlICdtcy1kb3MpIChtZW1iZXIgZHVtcC1tb2RlICcoInBi b290c3RyYXAiICJib290c3RyYXAiKSkpKSAobGV0ICgobmFtZSAoZm9ybWF0ICJlbWFjcy0lcy4l ZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1idWlsZC1udW1iZXIpKSAoZXhlIChpZiAoZXEgc3lzdGVt LXR5cGUgLi4uKSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStfLmEtekEt WjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIC4uLikgIi0iIChzdWJz dHJpbmcgbmFtZSAuLi4pKSkpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBuYW1l IGV4ZSkpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgImVtYWNz IiBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5h bWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1bXAtbW9kZSAi cGR1bXAiKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSAiLnBkbXAiKSkg KGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzLnBkbXAiIGludm9jYXRp b24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgIi5wZG1wIikgaW52 b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkpIChraWxsLWVtYWNzKSkpDQogIGxvYWQoImxvYWR1cC5l bCIpDQoNCkRlYnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6ICh3cm9uZy10eXBlLWFyZ3VtZW50 IHdob2xlbnVtcCB0KQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlw ZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9y ICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygtMSkNCiAg ZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVt YWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkp DQogIGtpbGwtZW1hY3MoKQ0KICAobGV0ICgob3V0cHV0IChjb25kICgoZXF1YWwgZHVtcC1tb2Rl ICJwZHVtcCIpICJlbWFjcy5wZG1wIikgKChlcXVhbCBkdW1wLW1vZGUgImR1bXAiKSAiZW1hY3Mi KSAoKGVxdWFsIGR1bXAtbW9kZSAiYm9vdHN0cmFwIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1v ZGUgInBib290c3RyYXAiKSAiYm9vdHN0cmFwLWVtYWNzLnBkbXAiKSAodCAoZXJyb3IgInVucmVj b2duaXplZCBkdW1wIG1vZGUgJXMiIGR1bXAtbW9kZSkpKSkpICh3aGVuIChhbmQgKGZlYXR1cmVw ICduYXRpdmVjb21wKSAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpKSAoc2V0cSBjb21wLWVuYWJs ZS1zdWJyLXRyYW1wb2xpbmVzIHQpKSAobWVzc2FnZSAiRHVtcGluZyB1bmRlciB0aGUgbmFtZSAl cyIgb3V0cHV0KSAoY29uZGl0aW9uLWNhc2UgbmlsIChkZWxldGUtZmlsZSBvdXRwdXQpIChmaWxl LWVycm9yIG5pbCkpIChsZXQgKHN1Y2Nlc3MpICh1bndpbmQtcHJvdGVjdCAobGV0ICgodG1wLWR1 bXAtbW9kZSBkdW1wLW1vZGUpIChkdW1wLW1vZGUgbmlsKSkgKGlmIChtZW1iZXIgdG1wLWR1bXAt bW9kZSAnKCJwZHVtcCIgInBib290c3RyYXAiKSkgKGR1bXAtZW1hY3MtcG9ydGFibGUgKGV4cGFu ZC1maWxlLW5hbWUgb3V0cHV0IGludm9jYXRpb24tZGlyZWN0b3J5KSkgKGR1bXAtZW1hY3Mgb3V0 cHV0ICJ0ZW1hY3MiKSAobWVzc2FnZSAiJWQgcHVyZSBieXRlcyB1c2VkIiBwdXJlLWJ5dGVzLXVz ZWQpKSAoc2V0cSBzdWNjZXNzIHQpKSAodW5sZXNzIHN1Y2Nlc3MgKGlnbm9yZS1lcnJvcnMgKGRl bGV0ZS1maWxlIG91dHB1dCkpKSkpIChpZiAobm90IChvciAoZXEgc3lzdGVtLXR5cGUgJ21zLWRv cykgKG1lbWJlciBkdW1wLW1vZGUgJygicGJvb3RzdHJhcCIgImJvb3RzdHJhcCIpKSkpIChsZXQg KChuYW1lIChmb3JtYXQgImVtYWNzLSVzLiVkIiBlbWFjcy12ZXJzaW9uIGVtYWNzLWJ1aWxkLW51 bWJlcikpIChleGUgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkgIi5leGUiICIiKSkp ICh3aGlsZSAoc3RyaW5nLW1hdGNoICJbXi0rXy5hLXpBLVowLTldKyIgbmFtZSkgKHNldHEgbmFt ZSAoY29uY2F0IChkb3duY2FzZSAoc3Vic3RyaW5nIG5hbWUgMCAuLi4pKSAiLSIgKHN1YnN0cmlu ZyBuYW1lIChtYXRjaC1lbmQgMCkpKSkpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNh dCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQg ImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29u Y2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1bXAt bW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSAiLnBk bXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzLnBkbXAiIGlu dm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgIi5wZG1w IikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkpIChraWxsLWVtYWNzKSkNCiAgKGlmIGR1bXAt bW9kZSAobGV0ICgob3V0cHV0IChjb25kICgoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpICJlbWFj cy5wZG1wIikgKChlcXVhbCBkdW1wLW1vZGUgImR1bXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAt bW9kZSAiYm9vdHN0cmFwIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgInBib290c3RyYXAi KSAiYm9vdHN0cmFwLWVtYWNzLnBkbXAiKSAodCAoZXJyb3IgInVucmVjb2duaXplZCBkdW1wIG1v ZGUgJXMiIGR1bXAtbW9kZSkpKSkpICh3aGVuIChhbmQgKGZlYXR1cmVwICduYXRpdmVjb21wKSAo ZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpKSAoc2V0cSBjb21wLWVuYWJsZS1zdWJyLXRyYW1wb2xp bmVzIHQpKSAobWVzc2FnZSAiRHVtcGluZyB1bmRlciB0aGUgbmFtZSAlcyIgb3V0cHV0KSAoY29u ZGl0aW9uLWNhc2UgbmlsIChkZWxldGUtZmlsZSBvdXRwdXQpIChmaWxlLWVycm9yIG5pbCkpIChs ZXQgKHN1Y2Nlc3MpICh1bndpbmQtcHJvdGVjdCAobGV0ICgodG1wLWR1bXAtbW9kZSBkdW1wLW1v ZGUpIChkdW1wLW1vZGUgbmlsKSkgKGlmIChtZW1iZXIgdG1wLWR1bXAtbW9kZSAnLi4uKSAoZHVt cC1lbWFjcy1wb3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRwdXQgaW52b2NhdGlvbi1kaXJl Y3RvcnkpKSAoZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpIChtZXNzYWdlICIlZCBwdXJlIGJ5 dGVzIHVzZWQiIHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mgc3Vj Y2VzcyAoaWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0KSkpKSkgKGlmIChub3QgKG9y IChlcSBzeXN0ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0cmFw IiAiYm9vdHN0cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVtYWNz LXZlcnNpb24gZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBlIC4u LikgIi5leGUiICIiKSkpICh3aGlsZSAoc3RyaW5nLW1hdGNoICJbXi0rXy5hLXpBLVowLTldKyIg bmFtZSkgKHNldHEgbmFtZSAoY29uY2F0IChkb3duY2FzZSAuLi4pICItIiAoc3Vic3RyaW5nIG5h bWUgLi4uKSkpKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSBleGUpKSAo YWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0ICJlbWFjcyIgZXhlKSBp bnZvY2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lIGV4ZSkg aW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpICh3aGVuIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikg KG1lc3NhZ2UgIkFkZGluZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgIi5wZG1wIikpIChhZGQtbmFt ZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lICJlbWFjcy5wZG1wIiBpbnZvY2F0aW9uLWRpcmVj dG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lICIucGRtcCIpIGludm9jYXRpb24t ZGlyZWN0b3J5KSB0KSkpKSAoa2lsbC1lbWFjcykpKQ0KICBsb2FkKCJsb2FkdXAuZWwiKQ0KDQpE ZWJ1Z2dlciBlbnRlcmVkLS1MaXNwIGVycm9yOiAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51 bXAgdCkNCiAga2lsbC1lbWFjcygtMSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1l bnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3Jvbmct dHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVy cm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygtMSkN CiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxs LWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAg dCkpDQogIGtpbGwtZW1hY3MoKQ0KICAobGV0ICgob3V0cHV0IChjb25kICgoZXF1YWwgZHVtcC1t b2RlICJwZHVtcCIpICJlbWFjcy5wZG1wIikgKChlcXVhbCBkdW1wLW1vZGUgImR1bXAiKSAiZW1h Y3MiKSAoKGVxdWFsIGR1bXAtbW9kZSAiYm9vdHN0cmFwIikgImVtYWNzIikgKChlcXVhbCBkdW1w LW1vZGUgInBib290c3RyYXAiKSAiYm9vdHN0cmFwLWVtYWNzLnBkbXAiKSAodCAoZXJyb3IgInVu cmVjb2duaXplZCBkdW1wIG1vZGUgJXMiIGR1bXAtbW9kZSkpKSkpICh3aGVuIChhbmQgKGZlYXR1 cmVwICduYXRpdmVjb21wKSAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpKSAoc2V0cSBjb21wLWVu YWJsZS1zdWJyLXRyYW1wb2xpbmVzIHQpKSAobWVzc2FnZSAiRHVtcGluZyB1bmRlciB0aGUgbmFt ZSAlcyIgb3V0cHV0KSAoY29uZGl0aW9uLWNhc2UgbmlsIChkZWxldGUtZmlsZSBvdXRwdXQpIChm aWxlLWVycm9yIG5pbCkpIChsZXQgKHN1Y2Nlc3MpICh1bndpbmQtcHJvdGVjdCAobGV0ICgodG1w LWR1bXAtbW9kZSBkdW1wLW1vZGUpIChkdW1wLW1vZGUgbmlsKSkgKGlmIChtZW1iZXIgdG1wLWR1 bXAtbW9kZSAnKCJwZHVtcCIgInBib290c3RyYXAiKSkgKGR1bXAtZW1hY3MtcG9ydGFibGUgKGV4 cGFuZC1maWxlLW5hbWUgb3V0cHV0IGludm9jYXRpb24tZGlyZWN0b3J5KSkgKGR1bXAtZW1hY3Mg b3V0cHV0ICJ0ZW1hY3MiKSAobWVzc2FnZSAiJWQgcHVyZSBieXRlcyB1c2VkIiBwdXJlLWJ5dGVz LXVzZWQpKSAoc2V0cSBzdWNjZXNzIHQpKSAodW5sZXNzIHN1Y2Nlc3MgKGlnbm9yZS1lcnJvcnMg KGRlbGV0ZS1maWxlIG91dHB1dCkpKSkpIChpZiAobm90IChvciAoZXEgc3lzdGVtLXR5cGUgJ21z LWRvcykgKG1lbWJlciBkdW1wLW1vZGUgJygicGJvb3RzdHJhcCIgImJvb3RzdHJhcCIpKSkpIChs ZXQgKChuYW1lIChmb3JtYXQgImVtYWNzLSVzLiVkIiBlbWFjcy12ZXJzaW9uIGVtYWNzLWJ1aWxk LW51bWJlcikpIChleGUgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkgIi5leGUiICIi KSkpICh3aGlsZSAoc3RyaW5nLW1hdGNoICJbXi0rXy5hLXpBLVowLTldKyIgbmFtZSkgKHNldHEg bmFtZSAoY29uY2F0IChkb3duY2FzZSAoc3Vic3RyaW5nIG5hbWUgMCAuLi4pKSAiLSIgKHN1YnN0 cmluZyBuYW1lIChtYXRjaC1lbmQgMCkpKSkpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNv bmNhdCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lIChjb25j YXQgImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAo Y29uY2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1 bXAtbW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSAi LnBkbXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzLnBkbXAi IGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgIi5w ZG1wIikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkpIChraWxsLWVtYWNzKSkNCiAgKGlmIGR1 bXAtbW9kZSAobGV0ICgob3V0cHV0IChjb25kICgoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpICJl bWFjcy5wZG1wIikgKChlcXVhbCBkdW1wLW1vZGUgImR1bXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1 bXAtbW9kZSAiYm9vdHN0cmFwIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgInBib290c3Ry YXAiKSAiYm9vdHN0cmFwLWVtYWNzLnBkbXAiKSAodCAoZXJyb3IgInVucmVjb2duaXplZCBkdW1w IG1vZGUgJXMiIGR1bXAtbW9kZSkpKSkpICh3aGVuIChhbmQgKGZlYXR1cmVwICduYXRpdmVjb21w KSAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpKSAoc2V0cSBjb21wLWVuYWJsZS1zdWJyLXRyYW1w b2xpbmVzIHQpKSAobWVzc2FnZSAiRHVtcGluZyB1bmRlciB0aGUgbmFtZSAlcyIgb3V0cHV0KSAo Y29uZGl0aW9uLWNhc2UgbmlsIChkZWxldGUtZmlsZSBvdXRwdXQpIChmaWxlLWVycm9yIG5pbCkp IChsZXQgKHN1Y2Nlc3MpICh1bndpbmQtcHJvdGVjdCAobGV0ICgodG1wLWR1bXAtbW9kZSBkdW1w LW1vZGUpIChkdW1wLW1vZGUgbmlsKSkgKGlmIChtZW1iZXIgdG1wLWR1bXAtbW9kZSAnLi4uKSAo ZHVtcC1lbWFjcy1wb3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRwdXQgaW52b2NhdGlvbi1k aXJlY3RvcnkpKSAoZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpIChtZXNzYWdlICIlZCBwdXJl IGJ5dGVzIHVzZWQiIHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mg c3VjY2VzcyAoaWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0KSkpKSkgKGlmIChub3Qg KG9yIChlcSBzeXN0ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0 cmFwIiAiYm9vdHN0cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVt YWNzLXZlcnNpb24gZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBl IC4uLikgIi5leGUiICIiKSkpICh3aGlsZSAoc3RyaW5nLW1hdGNoICJbXi0rXy5hLXpBLVowLTld KyIgbmFtZSkgKHNldHEgbmFtZSAoY29uY2F0IChkb3duY2FzZSAuLi4pICItIiAoc3Vic3RyaW5n IG5hbWUgLi4uKSkpKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSBleGUp KSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0ICJlbWFjcyIgZXhl KSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lIGV4 ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpICh3aGVuIChlcXVhbCBkdW1wLW1vZGUgInBkdW1w IikgKG1lc3NhZ2UgIkFkZGluZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgIi5wZG1wIikpIChhZGQt bmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lICJlbWFjcy5wZG1wIiBpbnZvY2F0aW9uLWRp cmVjdG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lICIucGRtcCIpIGludm9jYXRp b24tZGlyZWN0b3J5KSB0KSkpKSAoa2lsbC1lbWFjcykpKQ0KICBsb2FkKCJsb2FkdXAuZWwiKQ0K DQpEZWJ1Z2dlciBlbnRlcmVkLS1MaXNwIGVycm9yOiAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9s ZW51bXAgdCkNCiAga2lsbC1lbWFjcygtMSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJn dW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3Jv bmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVn KGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygt MSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBr aWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51 bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3Vt ZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygpDQogIChsZXQgKChvdXRwdXQgKGNvbmQg KChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9k ZSAiZHVtcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3Mi KSAoKGVxdWFsIGR1bXAtbW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIp ICh0IChlcnJvciAidW5yZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdo ZW4gKGFuZCAoZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikp IChzZXRxIGNvbXAtZW5hYmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5n IHVuZGVyIHRoZSBuYW1lICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1m aWxlIG91dHB1dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90 ZWN0IChsZXQgKCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYg KG1lbWJlciB0bXAtZHVtcC1tb2RlICcoInBkdW1wIiAicGJvb3RzdHJhcCIpKSAoZHVtcC1lbWFj cy1wb3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRwdXQgaW52b2NhdGlvbi1kaXJlY3Rvcnkp KSAoZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpIChtZXNzYWdlICIlZCBwdXJlIGJ5dGVzIHVz ZWQiIHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mgc3VjY2VzcyAo aWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0KSkpKSkgKGlmIChub3QgKG9yIChlcSBz eXN0ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0cmFwIiAiYm9v dHN0cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVtYWNzLXZlcnNp b24gZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dz LW50KSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStfLmEtekEtWjAtOV0r IiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIChzdWJzdHJpbmcgbmFtZSAwIC4u LikpICItIiAoc3Vic3RyaW5nIG5hbWUgKG1hdGNoLWVuZCAwKSkpKSkgKG1lc3NhZ2UgIkFkZGlu ZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgZXhlKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1m aWxlLW5hbWUgKGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBh bmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSAo d2hlbiAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIg KGNvbmNhdCBuYW1lICIucGRtcCIpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFt ZSAiZW1hY3MucGRtcCIgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChj b25jYXQgbmFtZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1h Y3MpKQ0KICAoaWYgZHVtcC1tb2RlIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBkdW1wLW1v ZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIpICJlbWFj cyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAt bW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJvciAidW5y ZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVy ZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNvbXAtZW5h YmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRoZSBuYW1l ICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1dCkgKGZp bGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0IChsZXQgKCh0bXAt ZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1lbWJlciB0bXAtZHVt cC1tb2RlICcuLi4pIChkdW1wLWVtYWNzLXBvcnRhYmxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1 dCBpbnZvY2F0aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVtYWNzIG91dHB1dCAidGVtYWNzIikgKG1l c3NhZ2UgIiVkIHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1ieXRlcy11c2VkKSkgKHNldHEgc3VjY2Vz cyB0KSkgKHVubGVzcyBzdWNjZXNzIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSBvdXRwdXQp KSkpKSAoaWYgKG5vdCAob3IgKGVxIHN5c3RlbS10eXBlICdtcy1kb3MpIChtZW1iZXIgZHVtcC1t b2RlICcoInBib290c3RyYXAiICJib290c3RyYXAiKSkpKSAobGV0ICgobmFtZSAoZm9ybWF0ICJl bWFjcy0lcy4lZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1idWlsZC1udW1iZXIpKSAoZXhlIChpZiAo ZXEgc3lzdGVtLXR5cGUgLi4uKSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlte LStfLmEtekEtWjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIC4uLikg Ii0iIChzdWJzdHJpbmcgbmFtZSAuLi4pKSkpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNv bmNhdCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lIChjb25j YXQgImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAo Y29uY2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1 bXAtbW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSAi LnBkbXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzLnBkbXAi IGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgIi5w ZG1wIikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkpIChraWxsLWVtYWNzKSkpDQogIGxvYWQo ImxvYWR1cC5lbCIpDQoNCkRlYnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6ICh3cm9uZy10eXBl LWFyZ3VtZW50IHdob2xlbnVtcCB0KQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAo d3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRl YnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFj cygtMSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0K ICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9s ZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFy Z3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygtMSkNCiAgZGVidWcoZXJyb3IgKHdy b25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1 ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3Mo KQ0KICAobGV0ICgob3V0cHV0IChjb25kICgoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpICJlbWFj cy5wZG1wIikgKChlcXVhbCBkdW1wLW1vZGUgImR1bXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAt bW9kZSAiYm9vdHN0cmFwIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgInBib290c3RyYXAi KSAiYm9vdHN0cmFwLWVtYWNzLnBkbXAiKSAodCAoZXJyb3IgInVucmVjb2duaXplZCBkdW1wIG1v ZGUgJXMiIGR1bXAtbW9kZSkpKSkpICh3aGVuIChhbmQgKGZlYXR1cmVwICduYXRpdmVjb21wKSAo ZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpKSAoc2V0cSBjb21wLWVuYWJsZS1zdWJyLXRyYW1wb2xp bmVzIHQpKSAobWVzc2FnZSAiRHVtcGluZyB1bmRlciB0aGUgbmFtZSAlcyIgb3V0cHV0KSAoY29u ZGl0aW9uLWNhc2UgbmlsIChkZWxldGUtZmlsZSBvdXRwdXQpIChmaWxlLWVycm9yIG5pbCltYWtl WzFdOiAqKiogW01ha2VmaWxlOjgzMDogYm9vdHN0cmFwLWVtYWNzLnBkbXBdIFNlZ21lbnRhdGlv biBmYXVsdAptYWtlWzFdOiAqKiogRGVsZXRpbmcgZmlsZSAnYm9vdHN0cmFwLWVtYWNzLnBkbXAn Cm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUt Y29tcC9idWlsZC9zcmMnCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDM0OiBzcmNdIEVycm9yIDIKbWFr ZSAtQyBudCBhbGwKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9l bWFjcy1uYXRpdmUtY29tcC9idWlsZC9udCcKbWFrZVsxXTogTm90aGluZyB0byBiZSBkb25lIGZv ciAnYWxsJy4KbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNz LW5hdGl2ZS1jb21wL2J1aWxkL250JwptYWtlIC1DIGxpYiBhbGwKbWFrZVsxXTogRW50ZXJpbmcg ZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9idWlsZC9saWInCm1h a2VbMV06IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgJ2FsbCcuCm1ha2VbMV06IExlYXZpbmcgZGly ZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9idWlsZC9saWInCm1ha2Ug LUMgbGliLXNyYyBhbGwKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBo MS9lbWFjcy1uYXRpdmUtY29tcC9idWlsZC9saWItc3JjJwptYWtlWzFdOiBOb3RoaW5nIHRvIGJl IGRvbmUgZm9yICdhbGwnLgptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFw aDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQvbGliLXNyYycKbWFrZSAtQyBzcmMgVkNTV0lUTkVT Uz0nJChzcmNkaXIpLy4uLy5naXQvbG9ncy9IRUFEJyBCSU5fREVTVERJUj0nL2hvbWUvY3JhbWFw aDEvZW1hY3MtbmF0aXZlLWNvbXAvZGVzdC9iaW4vJyBcCgkgRUxOX0RFU1RESVI9JyIvaG9tZS9j cmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9kZXN0L2xpYi9lbWFjcy8yOC4wLjUwLyInIGFsbApt YWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1j b21wL2J1aWxkL3NyYycKbWFrZSAtQyAuLi9udCAuLi9zcmMvZW1hY3MucmVzCm1ha2VbMl06IEVu dGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQv bnQnCm1ha2VbMl06ICcuLi9zcmMvZW1hY3MucmVzJyBpcyB1cCB0byBkYXRlLgptYWtlWzJdOiBM ZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQv bnQnCm1ha2UgLUMgLi4vYWRtaW4vY2hhcnNldHMgYWxsCm1ha2VbMl06IEVudGVyaW5nIGRpcmVj dG9yeSAnL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvYnVpbGQvYWRtaW4vY2hhcnNl dHMnCm1ha2VbMl06IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgJ2FsbCcuCm1ha2VbMl06IExlYXZp bmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9idWlsZC9hZG1p bi9jaGFyc2V0cycKbWFrZSAtQyAuLi9hZG1pbi91bmlkYXRhIGNoYXJzY3JpcHQuZWwKbWFrZVsy XTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmFtYXBoMS9lbWFjcy1uYXRpdmUtY29tcC9i dWlsZC9hZG1pbi91bmlkYXRhJwptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICdjaGFy c2NyaXB0LmVsJy4KbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgxL2Vt YWNzLW5hdGl2ZS1jb21wL2J1aWxkL2FkbWluL3VuaWRhdGEnCnJtIC1mIGJvb3RzdHJhcC1lbWFj cy5wZG1wCi4vdGVtYWNzIC0tYmF0Y2ggIC1sIGxvYWR1cCAtLXRlbWFjcz1wYm9vdHN0cmFwIFwK CS0tYmluLWRlc3QgL2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvZGVzdC9iaW4vIC0t ZWxuLWRlc3QgIi9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2Rlc3QvbGliL2VtYWNz LzI4LjAuNTAvIgpMb2FkaW5nIGxvYWR1cC5lbCAoc291cmNlKS4uLg0KRHVtcCBtb2RlOiBwYm9v dHN0cmFwDQpVc2luZyBsb2FkLXBhdGggKGM6L21zeXM2NC9ob21lL2NyYW1hcGgxL2VtYWNzLW5h dGl2ZS1jb21wL2VtYWNzL2xpc3AgYzovbXN5czY0L2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZl LWNvbXAvZW1hY3MvbGlzcC9lbWFjcy1saXNwIGM6L21zeXM2NC9ob21lL2NyYW1hcGgxL2VtYWNz LW5hdGl2ZS1jb21wL2VtYWNzL2xpc3AvcHJvZ21vZGVzIGM6L21zeXM2NC9ob21lL2NyYW1hcGgx L2VtYWNzLW5hdGl2ZS1jb21wL2VtYWNzL2xpc3AvbGFuZ3VhZ2UgYzovbXN5czY0L2hvbWUvY3Jh bWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvZW1hY3MvbGlzcC9pbnRlcm5hdGlvbmFsIGM6L21zeXM2 NC9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2VtYWNzL2xpc3AvdGV4dG1vZGVzIGM6 L21zeXM2NC9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2VtYWNzL2xpc3AvdmMpDQpM b2FkaW5nIGVtYWNzLWxpc3AvYnl0ZS1ydW4uLi4NCkxvYWRpbmcgZW1hY3MtbGlzcC9iYWNrcXVv dGUuLi4NCkxvYWRpbmcgc3Vici4uLg0KTG9hZGluZyB2ZXJzaW9uLi4uDQpMb2FkaW5nIHdpZGdl dC4uLg0KTG9hZGluZyBjdXN0b20uLi4NCkxvYWRpbmcgZW1hY3MtbGlzcC9tYXAteW5wLi4uDQpM b2FkaW5nIGludGVybmF0aW9uYWwvbXVsZS4uLg0KTG9hZGluZyBpbnRlcm5hdGlvbmFsL211bGUt Y29uZi4uLg0KTG9hZGluZyBlbnYuLi4NCkxvYWRpbmcgZm9ybWF0Li4uDQpMb2FkaW5nIGJpbmRp bmdzLi4uDQpMb2FkaW5nIHdpbmRvdy4uLg0KTG9hZGluZyBmaWxlcy4uLg0KTG9hZGluZyBlbWFj cy1saXNwL21hY3JvZXhwLi4uDQpMb2FkaW5nIGN1cy1mYWNlLi4uDQpMb2FkaW5nIGZhY2VzLi4u DQpMb2FkaW5nIGM6L21zeXM2NC9ob21lL2NyYW1hcGgxL2VtYWNzLW5hdGl2ZS1jb21wL2VtYWNz L2xpc3AvbG9hZGRlZnMuZWwgKHNvdXJjZSkuLi4NCkxvYWRpbmcgYnV0dG9uLi4uDQpMb2FkaW5n IGVtYWNzLWxpc3AvbmFkdmljZS4uLg0KTG9hZGluZyBlbWFjcy1saXNwL2NsLXByZWxvYWRlZC4u Lg0KTG9hZGluZyBvYmFycmF5Li4uDQpMb2FkaW5nIGFiYnJldi4uLg0KTG9hZGluZyBzaW1wbGUu Li4NCkxvYWRpbmcgaGVscC4uLg0KTG9hZGluZyBqa2EtY21wci1ob29rLi4uDQpMb2FkaW5nIGVw YS1ob29rLi4uDQpMb2FkaW5nIGludGVybmF0aW9uYWwvbXVsZS1jbWRzLi4uDQpMb2FkaW5nIGNh c2UtdGFibGUuLi4NCkxvYWRpbmcgYzovbXN5czY0L2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZl LWNvbXAvZW1hY3MvbGlzcC9pbnRlcm5hdGlvbmFsL2NoYXJwcm9wLmVsIChzb3VyY2UpLi4uDQpM b2FkaW5nIGludGVybmF0aW9uYWwvY2hhcmFjdGVycy4uLg0KTG9hZGluZyBpbnRlcm5hdGlvbmFs L2NoYXJzY3JpcHQuLi4NCkxvYWRpbmcgY29tcG9zaXRlLi4uDQpMb2FkaW5nIGxhbmd1YWdlL2No aW5lc2UuLi4NCkxvYWRpbmcgbGFuZ3VhZ2UvY3lyaWxsaWMuLi4NCkxvYWRpbmcgbGFuZ3VhZ2Uv aW5kaWFuLi4uDQpMb2FkaW5nIGxhbmd1YWdlL3NpbmhhbGEuLi4NCkxvYWRpbmcgbGFuZ3VhZ2Uv ZW5nbGlzaC4uLg0KTG9hZGluZyBsYW5ndWFnZS9ldGhpb3BpYy4uLg0KTG9hZGluZyBsYW5ndWFn ZS9ldXJvcGVhbi4uLg0KTG9hZGluZyBsYW5ndWFnZS9jemVjaC4uLg0KTG9hZGluZyBsYW5ndWFn ZS9zbG92YWsuLi4NCkxvYWRpbmcgbGFuZ3VhZ2Uvcm9tYW5pYW4uLi4NCkxvYWRpbmcgbGFuZ3Vh Z2UvZ3JlZWsuLi4NCkxvYWRpbmcgbGFuZ3VhZ2UvaGVicmV3Li4uDQpMb2FkaW5nIGludGVybmF0 aW9uYWwvY3A1MTkzMi4uLg0KTG9hZGluZyBpbnRlcm5hdGlvbmFsL2V1Y2pwLW1zLi4uDQpMb2Fk aW5nIGxhbmd1YWdlL2phcGFuZXNlLi4uDQpMb2FkaW5nIGxhbmd1YWdlL2tvcmVhbi4uLg0KTG9h ZGluZyBsYW5ndWFnZS9sYW8uLi4NCkxvYWRpbmcgbGFuZ3VhZ2UvdGFpLXZpZXQuLi4NCkxvYWRp bmcgbGFuZ3VhZ2UvdGhhaS4uLg0KTG9hZGluZyBsYW5ndWFnZS90aWJldGFuLi4uDQpMb2FkaW5n IGxhbmd1YWdlL3ZpZXRuYW1lc2UuLi4NCkxvYWRpbmcgbGFuZ3VhZ2UvbWlzYy1sYW5nLi4uDQpM b2FkaW5nIGxhbmd1YWdlL3V0Zi04LWxhbmcuLi4NCkxvYWRpbmcgbGFuZ3VhZ2UvZ2VvcmdpYW4u Li4NCkxvYWRpbmcgbGFuZ3VhZ2Uva2htZXIuLi4NCkxvYWRpbmcgbGFuZ3VhZ2UvYnVybWVzZS4u Lg0KTG9hZGluZyBsYW5ndWFnZS9jaGFtLi4uDQpMb2FkaW5nIGluZGVudC4uLg0KTG9hZGluZyBl bWFjcy1saXNwL2NsLWdlbmVyaWMuLi4NCkxvYWRpbmcgbWluaWJ1ZmZlci4uLg0KTG9hZGluZyBm cmFtZS4uLg0KTG9hZGluZyBzdGFydHVwLi4uDQpMb2FkaW5nIHRlcm0vdHR5LWNvbG9ycy4uLg0K TG9hZGluZyBmb250LWNvcmUuLi4NCkxvYWRpbmcgZmFjZW1lbnUuLi4NCkxvYWRpbmcgZW1hY3Mt bGlzcC9zeW50YXguLi4NCkxvYWRpbmcgZm9udC1sb2NrLi4uDQpMb2FkaW5nIGppdC1sb2NrLi4u DQpMb2FkaW5nIG1vdXNlLi4uDQpMb2FkaW5nIHNjcm9sbC1iYXIuLi4NCkxvYWRpbmcgc2VsZWN0 Li4uDQpMb2FkaW5nIGVtYWNzLWxpc3AvdGltZXIuLi4NCkxvYWRpbmcgaXNlYXJjaC4uLg0KTG9h ZGluZyByZm4tZXNoYWRvdy4uLg0KTG9hZGluZyBtZW51LWJhci4uLg0KTG9hZGluZyB0YWItYmFy Li4uDQpMb2FkaW5nIGVtYWNzLWxpc3AvbGlzcC4uLg0KTG9hZGluZyB0ZXh0bW9kZXMvcGFnZS4u Lg0KTG9hZGluZyByZWdpc3Rlci4uLg0KTG9hZGluZyB0ZXh0bW9kZXMvcGFyYWdyYXBocy4uLg0K TG9hZGluZyBwcm9nbW9kZXMvcHJvZy1tb2RlLi4uDQpMb2FkaW5nIGVtYWNzLWxpc3AvbGlzcC1t b2RlLi4uDQpMb2FkaW5nIHByb2dtb2Rlcy9lbGlzcC1tb2RlLi4uDQpMb2FkaW5nIHRleHRtb2Rl cy90ZXh0LW1vZGUuLi4NCkxvYWRpbmcgdGV4dG1vZGVzL2ZpbGwuLi4NCkxvYWRpbmcgbmV3Y29t bWVudC4uLg0KTG9hZGluZyByZXBsYWNlLi4uDQpMb2FkaW5nIGVtYWNzLWxpc3AvdGFidWxhdGVk LWxpc3QuLi4NCkxvYWRpbmcgYnVmZi1tZW51Li4uDQpMb2FkaW5nIGZyaW5nZS4uLg0KTG9hZGlu ZyBlbWFjcy1saXNwL3JlZ2V4cC1vcHQuLi4NCkxvYWRpbmcgaW1hZ2UuLi4NCkxvYWRpbmcgaW50 ZXJuYXRpb25hbC9mb250c2V0Li4uDQpMb2FkaW5nIGRuZC4uLg0KTG9hZGluZyB0b29sLWJhci4u Lg0KTG9hZGluZyB0ZXJtL2NvbW1vbi13aW4uLi4NCkxvYWRpbmcgdzMyLXZhcnMuLi4NCkxvYWRp bmcgYzovbXN5czY0L2hvbWUvY3JhbWFwaDEvZW1hY3MtbmF0aXZlLWNvbXAvZW1hY3MvbGlzcC90 ZXJtL3czMi13aW4uZWwgKHNvdXJjZSkuLi4NCkxvYWRpbmcgZGlzcC10YWJsZS4uLg0KTG9hZGlu ZyB3MzItZm5zLi4uDQpMb2FkaW5nIGxzLWxpc3AuLi4NCkxvYWRpbmcgZG9zLXczMi4uLg0KTG9h ZGluZyBtd2hlZWwuLi4NCkxvYWRpbmcgZW1hY3MtbGlzcC9mbG9hdC1zdXAuLi4NCkxvYWRpbmcg dmMvdmMtaG9va3MuLi4NCkxvYWRpbmcgdmMvZWRpZmYtaG9vay4uLg0KTG9hZGluZyB1bmlxdWlm eS4uLg0KTG9hZGluZyBlbGVjdHJpYy4uLg0KTG9hZGluZyBlbWFjcy1saXNwL2VsZG9jLi4uDQpM b2FkaW5nIGN1cy1zdGFydC4uLg0KTG9hZGluZyB0b29sdGlwLi4uDQpMb2FkaW5nIGludGVybmF0 aW9uYWwvaXNvLXRyYW5zbC4uLg0KTG9hZGluZyBjOi9tc3lzNjQvaG9tZS9jcmFtYXBoMS9lbWFj cy1uYXRpdmUtY29tcC9lbWFjcy9saXNwL2xlaW0vbGVpbS1saXN0LmVsIChzb3VyY2UpLi4uDQpG aW5kaW5nIHBvaW50ZXJzIHRvIGRvYyBzdHJpbmdzLi4uDQpGaW5kaW5nIHBvaW50ZXJzIHRvIGRv YyBzdHJpbmdzLi4uZG9uZQ0KRHVtcGluZyB1bmRlciB0aGUgbmFtZSBib290c3RyYXAtZW1hY3Mu cGRtcA0KRHVtcGluZyBmaW5nZXJwcmludDogODhmY2Q1Y2EyNzcwOTg0N2YxYTdiZGE1NjdhYjMx YTVkNTAyN2UzNTI5M2Y2OThlODA0OTU1ZjcyYWQzMWY4Mg0KRHVtcCBjb21wbGV0ZQ0KQnl0ZSBj b3VudHM6IGhlYWRlcj0xMDAgaG90PTgwMzk1ODAgZGlzY2FyZGFibGU9MTY2OTIwIGNvbGQ9NDgy MTM5Mg0KUmVsb2MgY291bnRzOiBob3Q9NDQzOTYxIGRpc2NhcmRhYmxlPTUwNDENCkRlYnVnZ2Vy IGVudGVyZWQtLUxpc3AgZXJyb3I6ICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KQ0K ICBraWxsLWVtYWNzKCkNCiAgKGxldCAoKG91dHB1dCAoY29uZCAoKGVxdWFsIGR1bXAtbW9kZSAi cGR1bXAiKSAiZW1hY3MucGRtcCIpICgoZXF1YWwgZHVtcC1tb2RlICJkdW1wIikgImVtYWNzIikg KChlcXVhbCBkdW1wLW1vZGUgImJvb3RzdHJhcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2Rl ICJwYm9vdHN0cmFwIikgImJvb3RzdHJhcC1lbWFjcy5wZG1wIikgKHQgKGVycm9yICJ1bnJlY29n bml6ZWQgZHVtcCBtb2RlICVzIiBkdW1wLW1vZGUpKSkpKSAod2hlbiAoYW5kIChmZWF0dXJlcCAn bmF0aXZlY29tcCkgKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSkgKHNldHEgY29tcC1lbmFibGUt c3Vici10cmFtcG9saW5lcyB0KSkgKG1lc3NhZ2UgIkR1bXBpbmcgdW5kZXIgdGhlIG5hbWUgJXMi IG91dHB1dCkgKGNvbmRpdGlvbi1jYXNlIG5pbCAoZGVsZXRlLWZpbGUgb3V0cHV0KSAoZmlsZS1l cnJvciBuaWwpKSAobGV0IChzdWNjZXNzKSAodW53aW5kLXByb3RlY3QgKGxldCAoKHRtcC1kdW1w LW1vZGUgZHVtcC1tb2RlKSAoZHVtcC1tb2RlIG5pbCkpIChpZiAobWVtYmVyIHRtcC1kdW1wLW1v ZGUgJygicGR1bXAiICJwYm9vdHN0cmFwIikpIChkdW1wLWVtYWNzLXBvcnRhYmxlIChleHBhbmQt ZmlsZS1uYW1lIG91dHB1dCBpbnZvY2F0aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVtYWNzIG91dHB1 dCAidGVtYWNzIikgKG1lc3NhZ2UgIiVkIHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1ieXRlcy11c2Vk KSkgKHNldHEgc3VjY2VzcyB0KSkgKHVubGVzcyBzdWNjZXNzIChpZ25vcmUtZXJyb3JzIChkZWxl dGUtZmlsZSBvdXRwdXQpKSkpKSAoaWYgKG5vdCAob3IgKGVxIHN5c3RlbS10eXBlICdtcy1kb3Mp IChtZW1iZXIgZHVtcC1tb2RlICcoInBib290c3RyYXAiICJib290c3RyYXAiKSkpKSAobGV0ICgo bmFtZSAoZm9ybWF0ICJlbWFjcy0lcy4lZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1idWlsZC1udW1i ZXIpKSAoZXhlIChpZiAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpICIuZXhlIiAiIikpKSAo d2hpbGUgKHN0cmluZy1tYXRjaCAiW14tK18uYS16QS1aMC05XSsiIG5hbWUpIChzZXRxIG5hbWUg KGNvbmNhdCAoZG93bmNhc2UgKHN1YnN0cmluZyBuYW1lIDAgLi4uKSkgIi0iIChzdWJzdHJpbmcg bmFtZSAobWF0Y2gtZW5kIDApKSkpKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQg bmFtZSBleGUpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0ICJl bWFjcyIgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNh dCBuYW1lIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpICh3aGVuIChlcXVhbCBkdW1wLW1v ZGUgInBkdW1wIikgKG1lc3NhZ2UgIkFkZGluZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgIi5wZG1w IikpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lICJlbWFjcy5wZG1wIiBpbnZv Y2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lICIucGRtcCIp IGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSkpKSAoa2lsbC1lbWFjcykpDQogIChpZiBkdW1wLW1v ZGUgKGxldCAoKG91dHB1dCAoY29uZCAoKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSAiZW1hY3Mu cGRtcCIpICgoZXF1YWwgZHVtcC1tb2RlICJkdW1wIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1v ZGUgImJvb3RzdHJhcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJwYm9vdHN0cmFwIikg ImJvb3RzdHJhcC1lbWFjcy5wZG1wIikgKHQgKGVycm9yICJ1bnJlY29nbml6ZWQgZHVtcCBtb2Rl ICVzIiBkdW1wLW1vZGUpKSkpKSAod2hlbiAoYW5kIChmZWF0dXJlcCAnbmF0aXZlY29tcCkgKGVx dWFsIGR1bXAtbW9kZSAicGR1bXAiKSkgKHNldHEgY29tcC1lbmFibGUtc3Vici10cmFtcG9saW5l cyB0KSkgKG1lc3NhZ2UgIkR1bXBpbmcgdW5kZXIgdGhlIG5hbWUgJXMiIG91dHB1dCkgKGNvbmRp dGlvbi1jYXNlIG5pbCAoZGVsZXRlLWZpbGUgb3V0cHV0KSAoZmlsZS1lcnJvciBuaWwpKSAobGV0 IChzdWNjZXNzKSAodW53aW5kLXByb3RlY3QgKGxldCAoKHRtcC1kdW1wLW1vZGUgZHVtcC1tb2Rl KSAoZHVtcC1tb2RlIG5pbCkpIChpZiAobWVtYmVyIHRtcC1kdW1wLW1vZGUgJy4uLikgKGR1bXAt ZW1hY3MtcG9ydGFibGUgKGV4cGFuZC1maWxlLW5hbWUgb3V0cHV0IGludm9jYXRpb24tZGlyZWN0 b3J5KSkgKGR1bXAtZW1hY3Mgb3V0cHV0ICJ0ZW1hY3MiKSAobWVzc2FnZSAiJWQgcHVyZSBieXRl cyB1c2VkIiBwdXJlLWJ5dGVzLXVzZWQpKSAoc2V0cSBzdWNjZXNzIHQpKSAodW5sZXNzIHN1Y2Nl c3MgKGlnbm9yZS1lcnJvcnMgKGRlbGV0ZS1maWxlIG91dHB1dCkpKSkpIChpZiAobm90IChvciAo ZXEgc3lzdGVtLXR5cGUgJ21zLWRvcykgKG1lbWJlciBkdW1wLW1vZGUgJygicGJvb3RzdHJhcCIg ImJvb3RzdHJhcCIpKSkpIChsZXQgKChuYW1lIChmb3JtYXQgImVtYWNzLSVzLiVkIiBlbWFjcy12 ZXJzaW9uIGVtYWNzLWJ1aWxkLW51bWJlcikpIChleGUgKGlmIChlcSBzeXN0ZW0tdHlwZSAuLi4p ICIuZXhlIiAiIikpKSAod2hpbGUgKHN0cmluZy1tYXRjaCAiW14tK18uYS16QS1aMC05XSsiIG5h bWUpIChzZXRxIG5hbWUgKGNvbmNhdCAoZG93bmNhc2UgLi4uKSAiLSIgKHN1YnN0cmluZyBuYW1l IC4uLikpKSkgKG1lc3NhZ2UgIkFkZGluZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgZXhlKSkgKGFk ZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52 b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSBleGUpIGlu dm9jYXRpb24tZGlyZWN0b3J5KSB0KSAod2hlbiAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpICht ZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBuYW1lICIucGRtcCIpKSAoYWRkLW5hbWUt dG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAiZW1hY3MucGRtcCIgaW52b2NhdGlvbi1kaXJlY3Rv cnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRp cmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1hY3MpKSkNCiAgbG9hZCgibG9hZHVwLmVsIikNCg0KRGVi dWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1w IHQpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50 IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygpDQogIChsZXQgKChvdXRwdXQgKGNvbmQgKChl cXVhbCBkdW1wLW1vZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAi ZHVtcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAo KGVxdWFsIGR1bXAtbW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0 IChlcnJvciAidW5yZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4g KGFuZCAoZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChz ZXRxIGNvbXAtZW5hYmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVu ZGVyIHRoZSBuYW1lICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxl IG91dHB1dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0 IChsZXQgKCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1l bWJlciB0bXAtZHVtcC1tb2RlICcoInBkdW1wIiAicGJvb3RzdHJhcCIpKSAoZHVtcC1lbWFjcy1w b3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRwdXQgaW52b2NhdGlvbi1kaXJlY3RvcnkpKSAo ZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpIChtZXNzYWdlICIlZCBwdXJlIGJ5dGVzIHVzZWQi IHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mgc3VjY2VzcyAoaWdu b3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0KSkpKSkgKGlmIChub3QgKG9yIChlcSBzeXN0 ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0cmFwIiAiYm9vdHN0 cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVtYWNzLXZlcnNpb24g ZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50 KSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStfLmEtekEtWjAtOV0rIiBu YW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIChzdWJzdHJpbmcgbmFtZSAwIC4uLikp ICItIiAoc3Vic3RyaW5nIG5hbWUgKG1hdGNoLWVuZCAwKSkpKSkgKG1lc3NhZ2UgIkFkZGluZyBu YW1lICVzIiAoY29uY2F0IG5hbWUgZXhlKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxl LW5hbWUgKGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQt ZmlsZS1uYW1lIChjb25jYXQgbmFtZSBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSAod2hl biAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNv bmNhdCBuYW1lICIucGRtcCIpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAi ZW1hY3MucGRtcCIgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25j YXQgbmFtZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1hY3Mp KQ0KICAoaWYgZHVtcC1tb2RlIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBkdW1wLW1vZGUg InBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIpICJlbWFjcyIp ICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9k ZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJvciAidW5yZWNv Z25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVyZXAg J25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNvbXAtZW5hYmxl LXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRoZSBuYW1lICVz IiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1dCkgKGZpbGUt ZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0IChsZXQgKCh0bXAtZHVt cC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1lbWJlciB0bXAtZHVtcC1t b2RlICcuLi4pIChkdW1wLWVtYWNzLXBvcnRhYmxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dCBp bnZvY2F0aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVtYWNzIG91dHB1dCAidGVtYWNzIikgKG1lc3Nh Z2UgIiVkIHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1ieXRlcy11c2VkKSkgKHNldHEgc3VjY2VzcyB0 KSkgKHVubGVzcyBzdWNjZXNzIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSBvdXRwdXQpKSkp KSAoaWYgKG5vdCAob3IgKGVxIHN5c3RlbS10eXBlICdtcy1kb3MpIChtZW1iZXIgZHVtcC1tb2Rl ICcoInBib290c3RyYXAiICJib290c3RyYXAiKSkpKSAobGV0ICgobmFtZSAoZm9ybWF0ICJlbWFj cy0lcy4lZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1idWlsZC1udW1iZXIpKSAoZXhlIChpZiAoZXEg c3lzdGVtLXR5cGUgLi4uKSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStf LmEtekEtWjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIC4uLikgIi0i IChzdWJzdHJpbmcgbmFtZSAuLi4pKSkpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNh dCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQg ImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29u Y2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1bXAt bW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSAiLnBk bXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzLnBkbXAiIGlu dm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgIi5wZG1w IikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkpIChraWxsLWVtYWNzKSkpDQogIGxvYWQoImxv YWR1cC5lbCIpDQoNCkRlYnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6ICh3cm9uZy10eXBlLWFy Z3VtZW50IHdob2xlbnVtcCB0KQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3Jv bmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVn KGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygp DQogIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgImVtYWNz LnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1t b2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9kZSAicGJvb3RzdHJhcCIp ICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJvciAidW5yZWNvZ25pemVkIGR1bXAgbW9k ZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChl cXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNvbXAtZW5hYmxlLXN1YnItdHJhbXBvbGlu ZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRoZSBuYW1lICVzIiBvdXRwdXQpIChjb25k aXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxl dCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0IChsZXQgKCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9k ZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1lbWJlciB0bXAtZHVtcC1tb2RlICcoInBkdW1wIiAi cGJvb3RzdHJhcCIpKSAoZHVtcC1lbWFjcy1wb3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRw dXQgaW52b2NhdGlvbi1kaXJlY3RvcnkpKSAoZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpICht ZXNzYWdlICIlZCBwdXJlIGJ5dGVzIHVzZWQiIHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nl c3MgdCkpICh1bmxlc3Mgc3VjY2VzcyAoaWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0 KSkpKSkgKGlmIChub3QgKG9yIChlcSBzeXN0ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAt bW9kZSAnKCJwYm9vdHN0cmFwIiAiYm9vdHN0cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAi ZW1hY3MtJXMuJWQiIGVtYWNzLXZlcnNpb24gZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYg KGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmct bWF0Y2ggIlteLStfLmEtekEtWjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25j YXNlIChzdWJzdHJpbmcgbmFtZSAwIC4uLikpICItIiAoc3Vic3RyaW5nIG5hbWUgKG1hdGNoLWVu ZCAwKSkpKSkgKG1lc3NhZ2UgIkFkZGluZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgZXhlKSkgKGFk ZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52 b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSBleGUpIGlu dm9jYXRpb24tZGlyZWN0b3J5KSB0KSAod2hlbiAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpICht ZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBuYW1lICIucGRtcCIpKSAoYWRkLW5hbWUt dG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAiZW1hY3MucGRtcCIgaW52b2NhdGlvbi1kaXJlY3Rv cnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRp cmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1hY3MpKQ0KICAoaWYgZHVtcC1tb2RlIChsZXQgKChvdXRw dXQgKGNvbmQgKChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFs IGR1bXAtbW9kZSAiZHVtcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAi KSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1h Y3MucGRtcCIpICh0IChlcnJvciAidW5yZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2Rl KSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUg InBkdW1wIikpIChzZXRxIGNvbXAtZW5hYmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdl ICJEdW1waW5nIHVuZGVyIHRoZSBuYW1lICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwg KGRlbGV0ZS1maWxlIG91dHB1dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVu d2luZC1wcm90ZWN0IChsZXQgKCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBu aWwpKSAoaWYgKG1lbWJlciB0bXAtZHVtcC1tb2RlICcuLi4pIChkdW1wLWVtYWNzLXBvcnRhYmxl IChleHBhbmQtZmlsZS1uYW1lIG91dHB1dCBpbnZvY2F0aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVt YWNzIG91dHB1dCAidGVtYWNzIikgKG1lc3NhZ2UgIiVkIHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1i eXRlcy11c2VkKSkgKHNldHEgc3VjY2VzcyB0KSkgKHVubGVzcyBzdWNjZXNzIChpZ25vcmUtZXJy b3JzIChkZWxldGUtZmlsZSBvdXRwdXQpKSkpKSAoaWYgKG5vdCAob3IgKGVxIHN5c3RlbS10eXBl ICdtcy1kb3MpIChtZW1iZXIgZHVtcC1tb2RlICcoInBib290c3RyYXAiICJib290c3RyYXAiKSkp KSAobGV0ICgobmFtZSAoZm9ybWF0ICJlbWFjcy0lcy4lZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1i dWlsZC1udW1iZXIpKSAoZXhlIChpZiAoZXEgc3lzdGVtLXR5cGUgLi4uKSAiLmV4ZSIgIiIpKSkg KHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStfLmEtekEtWjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1l IChjb25jYXQgKGRvd25jYXNlIC4uLikgIi0iIChzdWJzdHJpbmcgbmFtZSAuLi4pKSkpIChtZXNz YWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxl IChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0 b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVj dG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5n IG5hbWUgJXMiIChjb25jYXQgbmFtZSAiLnBkbXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFu ZC1maWxlLW5hbWUgImVtYWNzLnBkbXAiIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZp bGUtbmFtZSAoY29uY2F0IG5hbWUgIi5wZG1wIikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkp IChraWxsLWVtYWNzKSkpDQogIGxvYWQoImxvYWR1cC5lbCIpDQoNCkRlYnVnZ2VyIGVudGVyZWQt LUxpc3AgZXJyb3I6ICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KQ0KICBraWxsLWVt YWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkp DQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdo b2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygtMSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUt YXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVtYWNzKCkNCiAgKGxldCAoKG91dHB1dCAo Y29uZCAoKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSAiZW1hY3MucGRtcCIpICgoZXF1YWwgZHVt cC1tb2RlICJkdW1wIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgImJvb3RzdHJhcCIpICJl bWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJwYm9vdHN0cmFwIikgImJvb3RzdHJhcC1lbWFjcy5w ZG1wIikgKHQgKGVycm9yICJ1bnJlY29nbml6ZWQgZHVtcCBtb2RlICVzIiBkdW1wLW1vZGUpKSkp KSAod2hlbiAoYW5kIChmZWF0dXJlcCAnbmF0aXZlY29tcCkgKGVxdWFsIGR1bXAtbW9kZSAicGR1 bXAiKSkgKHNldHEgY29tcC1lbmFibGUtc3Vici10cmFtcG9saW5lcyB0KSkgKG1lc3NhZ2UgIkR1 bXBpbmcgdW5kZXIgdGhlIG5hbWUgJXMiIG91dHB1dCkgKGNvbmRpdGlvbi1jYXNlIG5pbCAoZGVs ZXRlLWZpbGUgb3V0cHV0KSAoZmlsZS1lcnJvciBuaWwpKSAobGV0IChzdWNjZXNzKSAodW53aW5k LXByb3RlY3QgKGxldCAoKHRtcC1kdW1wLW1vZGUgZHVtcC1tb2RlKSAoZHVtcC1tb2RlIG5pbCkp IChpZiAobWVtYmVyIHRtcC1kdW1wLW1vZGUgJygicGR1bXAiICJwYm9vdHN0cmFwIikpIChkdW1w LWVtYWNzLXBvcnRhYmxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dCBpbnZvY2F0aW9uLWRpcmVj dG9yeSkpIChkdW1wLWVtYWNzIG91dHB1dCAidGVtYWNzIikgKG1lc3NhZ2UgIiVkIHB1cmUgYnl0 ZXMgdXNlZCIgcHVyZS1ieXRlcy11c2VkKSkgKHNldHEgc3VjY2VzcyB0KSkgKHVubGVzcyBzdWNj ZXNzIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSBvdXRwdXQpKSkpKSAoaWYgKG5vdCAob3Ig KGVxIHN5c3RlbS10eXBlICdtcy1kb3MpIChtZW1iZXIgZHVtcC1tb2RlICcoInBib290c3RyYXAi ICJib290c3RyYXAiKSkpKSAobGV0ICgobmFtZSAoZm9ybWF0ICJlbWFjcy0lcy4lZCIgZW1hY3Mt dmVyc2lvbiBlbWFjcy1idWlsZC1udW1iZXIpKSAoZXhlIChpZiAoZXEgc3lzdGVtLXR5cGUgJ3dp bmRvd3MtbnQpICIuZXhlIiAiIikpKSAod2hpbGUgKHN0cmluZy1tYXRjaCAiW14tK18uYS16QS1a MC05XSsiIG5hbWUpIChzZXRxIG5hbWUgKGNvbmNhdCAoZG93bmNhc2UgKHN1YnN0cmluZyBuYW1l IDAgLi4uKSkgIi0iIChzdWJzdHJpbmcgbmFtZSAobWF0Y2gtZW5kIDApKSkpKSAobWVzc2FnZSAi QWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSBleGUpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhw YW5kLWZpbGUtbmFtZSAoY29uY2F0ICJlbWFjcyIgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkg KGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3Rvcnkp IHQpICh3aGVuIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgKG1lc3NhZ2UgIkFkZGluZyBuYW1l ICVzIiAoY29uY2F0IG5hbWUgIi5wZG1wIikpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmls ZS1uYW1lICJlbWFjcy5wZG1wIiBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFuZC1maWxlLW5h bWUgKGNvbmNhdCBuYW1lICIucGRtcCIpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSkpKSAoa2ls bC1lbWFjcykpDQogIChpZiBkdW1wLW1vZGUgKGxldCAoKG91dHB1dCAoY29uZCAoKGVxdWFsIGR1 bXAtbW9kZSAicGR1bXAiKSAiZW1hY3MucGRtcCIpICgoZXF1YWwgZHVtcC1tb2RlICJkdW1wIikg ImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgImJvb3RzdHJhcCIpICJlbWFjcyIpICgoZXF1YWwg ZHVtcC1tb2RlICJwYm9vdHN0cmFwIikgImJvb3RzdHJhcC1lbWFjcy5wZG1wIikgKHQgKGVycm9y ICJ1bnJlY29nbml6ZWQgZHVtcCBtb2RlICVzIiBkdW1wLW1vZGUpKSkpKSAod2hlbiAoYW5kIChm ZWF0dXJlcCAnbmF0aXZlY29tcCkgKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSkgKHNldHEgY29t cC1lbmFibGUtc3Vici10cmFtcG9saW5lcyB0KSkgKG1lc3NhZ2UgIkR1bXBpbmcgdW5kZXIgdGhl IG5hbWUgJXMiIG91dHB1dCkgKGNvbmRpdGlvbi1jYXNlIG5pbCAoZGVsZXRlLWZpbGUgb3V0cHV0 KSAoZmlsZS1lcnJvciBuaWwpKSAobGV0IChzdWNjZXNzKSAodW53aW5kLXByb3RlY3QgKGxldCAo KHRtcC1kdW1wLW1vZGUgZHVtcC1tb2RlKSAoZHVtcC1tb2RlIG5pbCkpIChpZiAobWVtYmVyIHRt cC1kdW1wLW1vZGUgJy4uLikgKGR1bXAtZW1hY3MtcG9ydGFibGUgKGV4cGFuZC1maWxlLW5hbWUg b3V0cHV0IGludm9jYXRpb24tZGlyZWN0b3J5KSkgKGR1bXAtZW1hY3Mgb3V0cHV0ICJ0ZW1hY3Mi KSAobWVzc2FnZSAiJWQgcHVyZSBieXRlcyB1c2VkIiBwdXJlLWJ5dGVzLXVzZWQpKSAoc2V0cSBz dWNjZXNzIHQpKSAodW5sZXNzIHN1Y2Nlc3MgKGlnbm9yZS1lcnJvcnMgKGRlbGV0ZS1maWxlIG91 dHB1dCkpKSkpIChpZiAobm90IChvciAoZXEgc3lzdGVtLXR5cGUgJ21zLWRvcykgKG1lbWJlciBk dW1wLW1vZGUgJygicGJvb3RzdHJhcCIgImJvb3RzdHJhcCIpKSkpIChsZXQgKChuYW1lIChmb3Jt YXQgImVtYWNzLSVzLiVkIiBlbWFjcy12ZXJzaW9uIGVtYWNzLWJ1aWxkLW51bWJlcikpIChleGUg KGlmIChlcSBzeXN0ZW0tdHlwZSAuLi4pICIuZXhlIiAiIikpKSAod2hpbGUgKHN0cmluZy1tYXRj aCAiW14tK18uYS16QS1aMC05XSsiIG5hbWUpIChzZXRxIG5hbWUgKGNvbmNhdCAoZG93bmNhc2Ug Li4uKSAiLSIgKHN1YnN0cmluZyBuYW1lIC4uLikpKSkgKG1lc3NhZ2UgIkFkZGluZyBuYW1lICVz IiAoY29uY2F0IG5hbWUgZXhlKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUg KGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1u YW1lIChjb25jYXQgbmFtZSBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSAod2hlbiAoZXF1 YWwgZHVtcC1tb2RlICJwZHVtcCIpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNhdCBu YW1lICIucGRtcCIpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAiZW1hY3Mu cGRtcCIgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgbmFt ZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1hY3MpKSkNCiAg bG9hZCgibG9hZHVwLmVsIikNCg0KRGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKHdyb25n LXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVy cm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygtMSkN CiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxs LWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAg dCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50 IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygpDQogIChsZXQgKChvdXRwdXQgKGNvbmQgKChl cXVhbCBkdW1wLW1vZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAi ZHVtcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAo KGVxdWFsIGR1bXAtbW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0 IChlcnJvciAidW5yZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4g KGFuZCAoZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChz ZXRxIGNvbXAtZW5hYmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVu ZGVyIHRoZSBuYW1lICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxl IG91dHB1dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0 IChsZXQgKCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1l bWJlciB0bXAtZHVtcC1tb2RlICcoInBkdW1wIiAicGJvb3RzdHJhcCIpKSAoZHVtcC1lbWFjcy1w b3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRwdXQgaW52b2NhdGlvbi1kaXJlY3RvcnkpKSAo ZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpIChtZXNzYWdlICIlZCBwdXJlIGJ5dGVzIHVzZWQi IHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mgc3VjY2VzcyAoaWdu b3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0KSkpKSkgKGlmIChub3QgKG9yIChlcSBzeXN0 ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0cmFwIiAiYm9vdHN0 cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVtYWNzLXZlcnNpb24g ZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50 KSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStfLmEtekEtWjAtOV0rIiBu YW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIChzdWJzdHJpbmcgbmFtZSAwIC4uLikp ICItIiAoc3Vic3RyaW5nIG5hbWUgKG1hdGNoLWVuZCAwKSkpKSkgKG1lc3NhZ2UgIkFkZGluZyBu YW1lICVzIiAoY29uY2F0IG5hbWUgZXhlKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxl LW5hbWUgKGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQt ZmlsZS1uYW1lIChjb25jYXQgbmFtZSBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSAod2hl biAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNv bmNhdCBuYW1lICIucGRtcCIpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAi ZW1hY3MucGRtcCIgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChjb25j YXQgbmFtZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1hY3Mp KQ0KICAoaWYgZHVtcC1tb2RlIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBkdW1wLW1vZGUg InBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIpICJlbWFjcyIp ICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9k ZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJvciAidW5yZWNv Z25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVyZXAg J25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNvbXAtZW5hYmxl LXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRoZSBuYW1lICVz IiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1dCkgKGZpbGUt ZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0IChsZXQgKCh0bXAtZHVt cC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1lbWJlciB0bXAtZHVtcC1t b2RlICcuLi4pIChkdW1wLWVtYWNzLXBvcnRhYmxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dCBp bnZvY2F0aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVtYWNzIG91dHB1dCAidGVtYWNzIikgKG1lc3Nh Z2UgIiVkIHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1ieXRlcy11c2VkKSkgKHNldHEgc3VjY2VzcyB0 KSkgKHVubGVzcyBzdWNjZXNzIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSBvdXRwdXQpKSkp KSAoaWYgKG5vdCAob3IgKGVxIHN5c3RlbS10eXBlICdtcy1kb3MpIChtZW1iZXIgZHVtcC1tb2Rl ICcoInBib290c3RyYXAiICJib290c3RyYXAiKSkpKSAobGV0ICgobmFtZSAoZm9ybWF0ICJlbWFj cy0lcy4lZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1idWlsZC1udW1iZXIpKSAoZXhlIChpZiAoZXEg c3lzdGVtLXR5cGUgLi4uKSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStf LmEtekEtWjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIC4uLikgIi0i IChzdWJzdHJpbmcgbmFtZSAuLi4pKSkpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNvbmNh dCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQg ImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29u Y2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1bXAt bW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSAiLnBk bXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzLnBkbXAiIGlu dm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgIi5wZG1w IikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkpIChraWxsLWVtYWNzKSkpDQogIGxvYWQoImxv YWR1cC5lbCIpDQoNCkRlYnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6ICh3cm9uZy10eXBlLWFy Z3VtZW50IHdob2xlbnVtcCB0KQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3Jv bmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVn KGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygt MSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBr aWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51 bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3Vt ZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygpDQogIChsZXQgKChvdXRwdXQgKGNvbmQg KChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9k ZSAiZHVtcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3Mi KSAoKGVxdWFsIGR1bXAtbW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIp ICh0IChlcnJvciAidW5yZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdo ZW4gKGFuZCAoZmVhdHVyZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikp IChzZXRxIGNvbXAtZW5hYmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5n IHVuZGVyIHRoZSBuYW1lICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1m aWxlIG91dHB1dCkgKGZpbGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90 ZWN0IChsZXQgKCh0bXAtZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYg KG1lbWJlciB0bXAtZHVtcC1tb2RlICcoInBkdW1wIiAicGJvb3RzdHJhcCIpKSAoZHVtcC1lbWFj cy1wb3J0YWJsZSAoZXhwYW5kLWZpbGUtbmFtZSBvdXRwdXQgaW52b2NhdGlvbi1kaXJlY3Rvcnkp KSAoZHVtcC1lbWFjcyBvdXRwdXQgInRlbWFjcyIpIChtZXNzYWdlICIlZCBwdXJlIGJ5dGVzIHVz ZWQiIHB1cmUtYnl0ZXMtdXNlZCkpIChzZXRxIHN1Y2Nlc3MgdCkpICh1bmxlc3Mgc3VjY2VzcyAo aWdub3JlLWVycm9ycyAoZGVsZXRlLWZpbGUgb3V0cHV0KSkpKSkgKGlmIChub3QgKG9yIChlcSBz eXN0ZW0tdHlwZSAnbXMtZG9zKSAobWVtYmVyIGR1bXAtbW9kZSAnKCJwYm9vdHN0cmFwIiAiYm9v dHN0cmFwIikpKSkgKGxldCAoKG5hbWUgKGZvcm1hdCAiZW1hY3MtJXMuJWQiIGVtYWNzLXZlcnNp b24gZW1hY3MtYnVpbGQtbnVtYmVyKSkgKGV4ZSAoaWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dz LW50KSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlteLStfLmEtekEtWjAtOV0r IiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIChzdWJzdHJpbmcgbmFtZSAwIC4u LikpICItIiAoc3Vic3RyaW5nIG5hbWUgKG1hdGNoLWVuZCAwKSkpKSkgKG1lc3NhZ2UgIkFkZGlu ZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgZXhlKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1m aWxlLW5hbWUgKGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBh bmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSAo d2hlbiAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIg KGNvbmNhdCBuYW1lICIucGRtcCIpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFt ZSAiZW1hY3MucGRtcCIgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChj b25jYXQgbmFtZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1h Y3MpKQ0KICAoaWYgZHVtcC1tb2RlIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBkdW1wLW1v ZGUgInBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIpICJlbWFj cyIpICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAt bW9kZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJvciAidW5y ZWNvZ25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVy ZXAgJ25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNvbXAtZW5h YmxlLXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRoZSBuYW1l ICVzIiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1dCkgKGZp bGUtZXJyb3IgbmlsKSkgKGxldCAoc3VjY2VzcykgKHVud2luZC1wcm90ZWN0IChsZXQgKCh0bXAt ZHVtcC1tb2RlIGR1bXAtbW9kZSkgKGR1bXAtbW9kZSBuaWwpKSAoaWYgKG1lbWJlciB0bXAtZHVt cC1tb2RlICcuLi4pIChkdW1wLWVtYWNzLXBvcnRhYmxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1 dCBpbnZvY2F0aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVtYWNzIG91dHB1dCAidGVtYWNzIikgKG1l c3NhZ2UgIiVkIHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1ieXRlcy11c2VkKSkgKHNldHEgc3VjY2Vz cyB0KSkgKHVubGVzcyBzdWNjZXNzIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSBvdXRwdXQp KSkpKSAoaWYgKG5vdCAob3IgKGVxIHN5c3RlbS10eXBlICdtcy1kb3MpIChtZW1iZXIgZHVtcC1t b2RlICcoInBib290c3RyYXAiICJib290c3RyYXAiKSkpKSAobGV0ICgobmFtZSAoZm9ybWF0ICJl bWFjcy0lcy4lZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1idWlsZC1udW1iZXIpKSAoZXhlIChpZiAo ZXEgc3lzdGVtLXR5cGUgLi4uKSAiLmV4ZSIgIiIpKSkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlte LStfLmEtekEtWjAtOV0rIiBuYW1lKSAoc2V0cSBuYW1lIChjb25jYXQgKGRvd25jYXNlIC4uLikg Ii0iIChzdWJzdHJpbmcgbmFtZSAuLi4pKSkpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIgKGNv bmNhdCBuYW1lIGV4ZSkpIChhZGQtbmFtZS10by1maWxlIChleHBhbmQtZmlsZS1uYW1lIChjb25j YXQgImVtYWNzIiBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAo Y29uY2F0IG5hbWUgZXhlKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkgKHdoZW4gKGVxdWFsIGR1 bXAtbW9kZSAicGR1bXAiKSAobWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSAi LnBkbXAiKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImVtYWNzLnBkbXAi IGludm9jYXRpb24tZGlyZWN0b3J5KSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0IG5hbWUgIi5w ZG1wIikgaW52b2NhdGlvbi1kaXJlY3RvcnkpIHQpKSkpIChraWxsLWVtYWNzKSkpDQogIGxvYWQo ImxvYWR1cC5lbCIpDQoNCkRlYnVnZ2VyIGVudGVyZWQtLUxpc3AgZXJyb3I6ICh3cm9uZy10eXBl LWFyZ3VtZW50IHdob2xlbnVtcCB0KQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAo d3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRl YnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFj cygtMSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0K ICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9s ZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFy Z3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygtMSkNCiAgZGVidWcoZXJyb3IgKHdy b25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVtYWNzKCkNCiAgKGxldCAo KG91dHB1dCAoY29uZCAoKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSAiZW1hY3MucGRtcCIpICgo ZXF1YWwgZHVtcC1tb2RlICJkdW1wIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgImJvb3Rz dHJhcCIpICJlbWFjcyIpICgoZXF1YWwgZHVtcC1tb2RlICJwYm9vdHN0cmFwIikgImJvb3RzdHJh cC1lbWFjcy5wZG1wIikgKHQgKGVycm9yICJ1bnJlY29nbml6ZWQgZHVtcCBtb2RlICVzIiBkdW1w LW1vZGUpKSkpKSAod2hlbiAoYW5kIChmZWF0dXJlcCAnbmF0aXZlY29tcCkgKGVxdWFsIGR1bXAt bW9kZSAicGR1bXAiKSkgKHNldHEgY29tcC1lbmFibGUtc3Vici10cmFtcG9saW5lcyB0KSkgKG1l c3NhZ2UgIkR1bXBpbmcgdW5kZXIgdGhlIG5hbWUgJXMiIG91dHB1dCkgKGNvbmRpdGlvbi1jYXNl IG5pbCAoZGVsZXRlLWZpbGUgb3V0cHV0KSAoZmlsZS1lcnJvciBuaWwpKSAobGV0IChzdWNjZXNz KSAodW53aW5kLXByb3RlY3QgKGxldCAoKHRtcC1kdW1wLW1vZGUgZHVtcC1tb2RlKSAoZHVtcC1t b2RlIG5pbCkpIChpZiAobWVtYmVyIHRtcC1kdW1wLW1vZGUgJygicGR1bXAiICJwYm9vdHN0cmFw IikpIChkdW1wLWVtYWNzLXBvcnRhYmxlIChleHBhbmQtZmlsZS1uYW1lIG91dHB1dCBpbnZvY2F0 aW9uLWRpcmVjdG9yeSkpIChkdW1wLWVtYWNzIG91dHB1dCAidGVtYWNzIikgKG1lc3NhZ2UgIiVk IHB1cmUgYnl0ZXMgdXNlZCIgcHVyZS1ieXRlcy11c2VkKSkgKHNldHEgc3VjY2VzcyB0KSkgKHVu bGVzcyBzdWNjZXNzIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSBvdXRwdXQpKSkpKSAoaWYg KG5vdCAob3IgKGVxIHN5c3RlbS10eXBlICdtcy1kb3MpIChtZW1iZXIgZHVtcC1tb2RlICcoInBi b290c3RyYXAiICJib290c3RyYXAiKSkpKSAobGV0ICgobmFtZSAoZm9ybWF0ICJlbWFjcy0lcy4l ZCIgZW1hY3MtdmVyc2lvbiBlbWFjcy1idWlsZC1udW1iZXIpKSAoZXhlIChpZiAoZXEgc3lzdGVt LXR5cGUgJ3dpbmRvd3MtbnQpICIuZXhlIiAiIikpKSAod2hpbGUgKHN0cmluZy1tYXRjaCAiW14t K18uYS16QS1aMC05XSsiIG5hbWUpIChzZXRxIG5hbWUgKGNvbmNhdCAoZG93bmNhc2UgKHN1YnN0 cmluZyBuYW1lIDAgLi4uKSkgIi0iIChzdWJzdHJpbmcgbmFtZSAobWF0Y2gtZW5kIDApKSkpKSAo bWVzc2FnZSAiQWRkaW5nIG5hbWUgJXMiIChjb25jYXQgbmFtZSBleGUpKSAoYWRkLW5hbWUtdG8t ZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSAoY29uY2F0ICJlbWFjcyIgZXhlKSBpbnZvY2F0aW9uLWRp cmVjdG9yeSkgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lIGV4ZSkgaW52b2NhdGlvbi1k aXJlY3RvcnkpIHQpICh3aGVuIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikgKG1lc3NhZ2UgIkFk ZGluZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgIi5wZG1wIikpIChhZGQtbmFtZS10by1maWxlIChl eHBhbmQtZmlsZS1uYW1lICJlbWFjcy5wZG1wIiBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgKGV4cGFu ZC1maWxlLW5hbWUgKGNvbmNhdCBuYW1lICIucGRtcCIpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0 KSkpKSAoa2lsbC1lbWFjcykpDQogIChpZiBkdW1wLW1vZGUgKGxldCAoKG91dHB1dCAoY29uZCAo KGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSAiZW1hY3MucGRtcCIpICgoZXF1YWwgZHVtcC1tb2Rl ICJkdW1wIikgImVtYWNzIikgKChlcXVhbCBkdW1wLW1vZGUgImJvb3RzdHJhcCIpICJlbWFjcyIp ICgoZXF1YWwgZHVtcC1tb2RlICJwYm9vdHN0cmFwIikgImJvb3RzdHJhcC1lbWFjcy5wZG1wIikg KHQgKGVycm9yICJ1bnJlY29nbml6ZWQgZHVtcCBtb2RlICVzIiBkdW1wLW1vZGUpKSkpKSAod2hl biAoYW5kIChmZWF0dXJlcCAnbmF0aXZlY29tcCkgKGVxdWFsIGR1bXAtbW9kZSAicGR1bXAiKSkg KHNldHEgY29tcC1lbmFibGUtc3Vici10cmFtcG9saW5lcyB0KSkgKG1lc3NhZ2UgIkR1bXBpbmcg dW5kZXIgdGhlIG5hbWUgJXMiIG91dHB1dCkgKGNvbmRpdGlvbi1jYXNlIG5pbCAoZGVsZXRlLWZp bGUgb3V0cHV0KSAoZmlsZS1lcnJvciBuaWwpKSAobGV0IChzdWNjZXNzKSAodW53aW5kLXByb3Rl Y3QgKGxldCAoKHRtcC1kdW1wLW1vZGUgZHVtcC1tb2RlKSAoZHVtcC1tb2RlIG5pbCkpIChpZiAo bWVtYmVyIHRtcC1kdW1wLW1vZGUgJy4uLikgKGR1bXAtZW1hY3MtcG9ydGFibGUgKGV4cGFuZC1m aWxlLW5hbWUgb3V0cHV0IGludm9jYXRpb24tZGlyZWN0b3J5KSkgKGR1bXAtZW1hY3Mgb3V0cHV0 ICJ0ZW1hY3MiKSAobWVzc2FnZSAiJWQgcHVyZSBieXRlcyB1c2VkIiBwdXJlLWJ5dGVzLXVzZWQp KSAoc2V0cSBzdWNjZXNzIHQpKSAodW5sZXNzIHN1Y2Nlc3MgKGlnbm9yZS1lcnJvcnMgKGRlbGV0 ZS1maWxlIG91dHB1dCkpKSkpIChpZiAobm90IChvciAoZXEgc3lzdGVtLXR5cGUgJ21zLWRvcykg KG1lbWJlciBkdW1wLW1vZGUgJygicGJvb3RzdHJhcCIgImJvb3RzdHJhcCIpKSkpIChsZXQgKChu YW1lIChmb3JtYXQgImVtYWNzLSVzLiVkIiBlbWFjcy12ZXJzaW9uIGVtYWNzLWJ1aWxkLW51bWJl cikpIChleGUgKGlmIChlcSBzeXN0ZW0tdHlwZSAuLi4pICIuZXhlIiAiIikpKSAod2hpbGUgKHN0 cmluZy1tYXRjaCAiW14tK18uYS16QS1aMC05XSsiIG5hbWUpIChzZXRxIG5hbWUgKGNvbmNhdCAo ZG93bmNhc2UgLi4uKSAiLSIgKHN1YnN0cmluZyBuYW1lIC4uLikpKSkgKG1lc3NhZ2UgIkFkZGlu ZyBuYW1lICVzIiAoY29uY2F0IG5hbWUgZXhlKSkgKGFkZC1uYW1lLXRvLWZpbGUgKGV4cGFuZC1m aWxlLW5hbWUgKGNvbmNhdCAiZW1hY3MiIGV4ZSkgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBh bmQtZmlsZS1uYW1lIChjb25jYXQgbmFtZSBleGUpIGludm9jYXRpb24tZGlyZWN0b3J5KSB0KSAo d2hlbiAoZXF1YWwgZHVtcC1tb2RlICJwZHVtcCIpIChtZXNzYWdlICJBZGRpbmcgbmFtZSAlcyIg KGNvbmNhdCBuYW1lICIucGRtcCIpKSAoYWRkLW5hbWUtdG8tZmlsZSAoZXhwYW5kLWZpbGUtbmFt ZSAiZW1hY3MucGRtcCIgaW52b2NhdGlvbi1kaXJlY3RvcnkpIChleHBhbmQtZmlsZS1uYW1lIChj b25jYXQgbmFtZSAiLnBkbXAiKSBpbnZvY2F0aW9uLWRpcmVjdG9yeSkgdCkpKSkgKGtpbGwtZW1h Y3MpKSkNCiAgbG9hZCgibG9hZHVwLmVsIikNCg0KRGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJv cjogKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpDQogIGtpbGwtZW1hY3MoLTEpDQog IGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1l bWFjcygtMSkNCiAgZGVidWcoZXJyb3IgKHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQp KQ0KICBraWxsLWVtYWNzKC0xKQ0KICBkZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3 aG9sZW51bXAgdCkpDQogIGtpbGwtZW1hY3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBl LWFyZ3VtZW50IHdob2xlbnVtcCB0KSkNCiAga2lsbC1lbWFjcygtMSkNCiAgZGVidWcoZXJyb3Ig KHdyb25nLXR5cGUtYXJndW1lbnQgd2hvbGVudW1wIHQpKQ0KICBraWxsLWVtYWNzKC0xKQ0KICBk ZWJ1ZyhlcnJvciAod3JvbmctdHlwZS1hcmd1bWVudCB3aG9sZW51bXAgdCkpDQogIGtpbGwtZW1h Y3MoLTEpDQogIGRlYnVnKGVycm9yICh3cm9uZy10eXBlLWFyZ3VtZW50IHdob2xlbnVtcCB0KSkN CiAga2lsbC1lbWFjcygpDQogIChsZXQgKChvdXRwdXQgKGNvbmQgKChlcXVhbCBkdW1wLW1vZGUg InBkdW1wIikgImVtYWNzLnBkbXAiKSAoKGVxdWFsIGR1bXAtbW9kZSAiZHVtcCIpICJlbWFjcyIp ICgoZXF1YWwgZHVtcC1tb2RlICJib290c3RyYXAiKSAiZW1hY3MiKSAoKGVxdWFsIGR1bXAtbW9k ZSAicGJvb3RzdHJhcCIpICJib290c3RyYXAtZW1hY3MucGRtcCIpICh0IChlcnJvciAidW5yZWNv Z25pemVkIGR1bXAgbW9kZSAlcyIgZHVtcC1tb2RlKSkpKSkgKHdoZW4gKGFuZCAoZmVhdHVyZXAg J25hdGl2ZWNvbXApIChlcXVhbCBkdW1wLW1vZGUgInBkdW1wIikpIChzZXRxIGNvbXAtZW5hYmxl LXN1YnItdHJhbXBvbGluZXMgdCkpIChtZXNzYWdlICJEdW1waW5nIHVuZGVyIHRoZSBuYW1lICVz IiBvdXRwdXQpIChjb25kaXRpb24tY2FzZSBuaWwgKGRlbGV0ZS1maWxlIG91dHB1dCkgKGZpbGUt ZXJyb3IgbmlsKW1ha2VbMV06ICoqKiBbTWFrZWZpbGU6ODMwOiBib290c3RyYXAtZW1hY3MucGRt cF0gU2VnbWVudGF0aW9uIGZhdWx0Cm1ha2VbMV06ICoqKiBEZWxldGluZyBmaWxlICdib290c3Ry YXAtZW1hY3MucGRtcCcKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2NyYW1hcGgx L2VtYWNzLW5hdGl2ZS1jb21wL2J1aWxkL3NyYycKbWFrZTogKioqIFtNYWtlZmlsZTo0MzQ6IHNy Y10gRXJyb3IgMgo= --rehcsed-6a0e4464-0bb2-4dc5-b8b4-d1731a6e2ca4-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 11:32:21 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 16:32:21 +0000 Received: from localhost ([127.0.0.1]:45449 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr1d7-0000VF-Jz for submit@debbugs.gnu.org; Sun, 20 Dec 2020 11:32:21 -0500 Received: from mail-ed1-f54.google.com ([209.85.208.54]:42420) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr1d5-0000Uv-BW for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 11:32:19 -0500 Received: by mail-ed1-f54.google.com with SMTP id g24so7327489edw.9 for <45303@debbugs.gnu.org>; Sun, 20 Dec 2020 08:32:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=9YQfegoGhl9OyfTkBCA0hTgFiohQSsCXFT1mZuCPiIs=; b=BTXVswOa7U8D5OZ3S/cIckDTuQGTO94SIHk4Ip54MZvKSWQpJLwNEZUOUhJZKr1te8 Z1iuH3MArKNkPLE4eG1RRn/nvBcW+ZTgQ/cimHu0WNzrsPp+iC4dGYzIQMoX3bn8Uezn d6Kfft8DnDZM2qdumK/gBhBx2Du4L3j9GNPzw/OfEAB39iSxo8Zq2y4KFrx99V8bqBoj XnmGA53kZ7K4TsoBM1Ub37oIEXEBF4mJm2lJUVS6YSyWguVyw6KwUeQKH5yY4G7E5pn0 vgdorfEdCC+ERG7/Uw2i9pJ4h99RSzro+U0bRYvea5C3Ndf2duvI9HeGt4ztp/1z6sov Ke/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=9YQfegoGhl9OyfTkBCA0hTgFiohQSsCXFT1mZuCPiIs=; b=Zdma6048zc4r5Zo4305YlFSw/j9MprhFhe5l/rhZWu/8gdQU/TWW0I5IykmgPt15aF Oe9NMYnnJEXikWWfbXTCgbaUZZRwyrc4zyil0+bSMrIKHdetvZxPs0HbSgVv2oKsRGyY wr0tN/ZH+fTqIAMTzoHDuzkvszuQek+YJMEMYTscXxOoygdK085Lstwp6JGxZoNXeA/j E2uyNmLDZUch3mwQ8xC7gEjDMjYDj+xhW2ym5iwNuE3gxJ3qO2ABIn5kOLONry7rWAeC JyRV6lE1eG84rXXknYeFKW5uyQC2twqCX61UdXVv/XrPM3Ed+Ey7mAiPcKAM6W0IFsc3 t41w== X-Gm-Message-State: AOAM533c/9NAwHvvGEgoeIZfniihuFCCXqwJg/fAL4XTV64AvmHxq4Sk grw4rZtrg9JpipS3PZ1cXstfoQnYQEDlVrl6AGTqavsbnCk= X-Google-Smtp-Source: ABdhPJwNPFFUWX47bs22p3LF+ySCS/jAP8FxMhPKpaMXw6kPLokviEwDl3Y2HZkib0VGU9Xpu43T+TtWsQ1xuTS6SIw= X-Received: by 2002:a50:f61b:: with SMTP id c27mr12776941edn.61.1608481933253; Sun, 20 Dec 2020 08:32:13 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Sun, 20 Dec 2020 10:32:01 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: 45303@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) For comparison, on linux (Debian Bullseye), we got: ~ $ nm -D /usr/lib/x86_64-linux-gnu/libgccjit.so.0.0.1 | grep strs U strsignal@@GLIBC_2.2.5 U strspn@@GLIBC_2.2.5 U strstr@@GLIBC_2.2.5 exported from Glibc, not libgccjit. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 13:58:12 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 18:58:13 +0000 Received: from localhost ([127.0.0.1]:45632 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr3uG-0001rc-MH for submit@debbugs.gnu.org; Sun, 20 Dec 2020 13:58:12 -0500 Received: from mab.sdf.org ([205.166.94.33]:52624 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr3uF-0001rS-9J for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 13:58:11 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kr3uD-00034a-5I; Sun, 20 Dec 2020 18:58:09 +0000 From: Andrea Corallo To: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> <86im8w4t7y.fsf@gmail.com> Date: Sun, 20 Dec 2020 18:58:09 +0000 In-Reply-To: <86im8w4t7y.fsf@gmail.com> (Andy Moreton's message of "Sun, 20 Dec 2020 11:22:57 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andy Moreton writes: > On Sat 19 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > >> Pal Gloss writes: >> >>> Hi, >>> >>> thank you for the quick fixes >>> >>> I do not understand 3b53a591faed03679382a601b93da7fe6ce3b4af: the way >> >> No you are right, this morning I was a little in a rush and I might have >> failed grepping, hopefully ab985f41db is better. >> >> [...] >> >>> I just checked and these %emacs_dir% are also present in a "normal" emacs >>> 27.1 (installed via msys2/mingw pacman, not self-built). >>> >>>> Right so (unless I'm forgetting something) just the zlib linker error >>>> should be remaining, correct? >>> >>> It was not only zlib that was missing, but also gccjit (my hack sets both: LIBGCCJIT = -lz -lgccjit) >> >> With 407fb16583 I think '-lgccjit' should be unnecessary on Windows now, >> is it? > > There is one piece missing from that commit: another define around > L379 to replace gcc_jit_type_get_const with fn_gcc_jit_type_get_const. > > AndyM Thanks, hope 18ca9ea08a fix it. Is no easy to write code without being able to test it (read patches are very welcome). Thx! Andrea From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 14:07:50 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 19:07:50 +0000 Received: from localhost ([127.0.0.1]:45636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr43Z-00026G-ON for submit@debbugs.gnu.org; Sun, 20 Dec 2020 14:07:50 -0500 Received: from mab.sdf.org ([205.166.94.33]:59564 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr43Y-000268-8A for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 14:07:48 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kr43X-000358-5h; Sun, 20 Dec 2020 19:07:47 +0000 From: Andrea Corallo To: Pal Gloss Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> Date: Sun, 20 Dec 2020 19:07:46 +0000 In-Reply-To: (Pal Gloss's message of "Sun, 20 Dec 2020 17:23:25 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Pal Gloss writes: > Hi Andrea, > =C2=A0 > Sorry for sending my previous mail to your address only and not to the bu= g tracker. > I'm not used to debbugs (as you can guess from the many HTML mails I sent= , blush). No issue :) > I wrote=C2=A0 >> > I do not understand 3b53a591faed03679382a601b93da7fe6ce3b4af: the way > You answered >> No you are right, this morning I was a little in a rush and I might have >> failed grepping, hopefully ab985f41db is better. > > There are still problems related to the usage of Fdirectory_files and > internal_condition_case_5 I think. At least, I get a crash after the > bootstrap is dumped (? see attached build log) > > Debugger entered--Lisp error: (wrong-type-argument wholenump t) Not too surprised, this code is not leveraged since a while :/ >> With 407fb16583 I think '-lgccjit' should be unnecessary on Windows now,= is it? > > It is still needed, see my previous mail. But adding -lgccjit allows the= build > to proceed but crashes later on. Hopefully this is fixed now by 3bb2fd0c58? > Can I propose a patch if I have not signed the paperwork? IIRC there is a cumulative limit of like 10 lines for patches to be accepted with no assignment. The right fix for this is to take action *now* and ask maintainers for your paperworks :) It would be great to have a contributor regularly compiling this build. Yes I will break it again... > Thank you for this great new feature. Thank you for the help. Andrea From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 14:10:14 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 19:10:14 +0000 Received: from localhost ([127.0.0.1]:45640 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr45u-0002A3-JE for submit@debbugs.gnu.org; Sun, 20 Dec 2020 14:10:14 -0500 Received: from mab.sdf.org ([205.166.94.33]:32988 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr45t-00029w-4m for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 14:10:13 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kr45r-0003jJ-GI; Sun, 20 Dec 2020 19:10:11 +0000 From: Andrea Corallo To: Michael Albinus Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <87o8io3m9m.fsf@gmx.de> Date: Sun, 20 Dec 2020 19:10:11 +0000 In-Reply-To: <87o8io3m9m.fsf@gmx.de> (Michael Albinus's message of "Sun, 20 Dec 2020 09:38:29 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: =?us-ascii?Q?=3D=3FUTF-8=3FQ=3FLi=3DC4=3D81u?=@debbugs.gnu.org, =?utf-8?B?ICBfPz1LaW9uZy1HxJMg5buW5a6u5q+F?= , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Michael Albinus writes: > =3D?UTF-8?Q?Li=3DC4=3D81u@debbugs.gnu.org, _?=3D Kiong-G=C4=93 =E5=BB=96= =E5=AE=AE=E6=AF=85 > writes: > >> a segmentation error at make -C src/bootstramp-emacs.exe: > ^^^^^ > Wow, didn't know aqbout :-) That's one of the easter eggs of the branch :D From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 14:11:50 2020 Received: (at submit) by debbugs.gnu.org; 20 Dec 2020 19:11:50 +0000 Received: from localhost ([127.0.0.1]:45647 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr47S-0002CU-5W for submit@debbugs.gnu.org; Sun, 20 Dec 2020 14:11:50 -0500 Received: from lists.gnu.org ([209.51.188.17]:44926) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr47Q-0002CM-CC for submit@debbugs.gnu.org; Sun, 20 Dec 2020 14:11:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42510) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kr47N-0000Jn-4q for bug-gnu-emacs@gnu.org; Sun, 20 Dec 2020 14:11:48 -0500 Received: from mab.sdf.org ([205.166.94.33]:55870 helo=ma.sdf.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kr47K-0001h2-4g for bug-gnu-emacs@gnu.org; Sun, 20 Dec 2020 14:11:44 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kr47I-0003vl-W5; Sun, 20 Dec 2020 19:11:41 +0000 From: Andrea Corallo To: Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> <86im8w4t7y.fsf@gmail.com> Date: Sun, 20 Dec 2020 19:11:40 +0000 In-Reply-To: (Andrea Corallo via's message of "Sun, 20 Dec 2020 18:58:09 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=205.166.94.33; envelope-from=akrl@sdf.org; helo=ma.sdf.org X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit Cc: 45303@debbugs.gnu.org, Andy Moreton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: [...] > Thanks, hope 18ca9ea08a fix it. ^^^^^ 3bb2fd0c58 From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 14:46:43 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 19:46:43 +0000 Received: from localhost ([127.0.0.1]:45658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr4fC-00034Y-Uh for submit@debbugs.gnu.org; Sun, 20 Dec 2020 14:46:43 -0500 Received: from mail-ej1-f48.google.com ([209.85.218.48]:45700) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr4f9-00034F-5L for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 14:46:41 -0500 Received: by mail-ej1-f48.google.com with SMTP id qw4so10558386ejb.12 for <45303@debbugs.gnu.org>; Sun, 20 Dec 2020 11:46:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-transfer-encoding; bh=0srvMO2S0+b6wXTp8T9hURJcjy/k9QAxu5ICVUtKlyQ=; b=o4PAq3ytbEqSU7Tdq6AfjF2rQrKj/AkhULubnK9e4rXaRzfbsu8qBepXvhFvwr2j7w lGR+KKR63L3eQAzUwAFvrj0ayPb2OqAWDIBBnA6sAUjluxVh6KwpUDQteomGYpysGdri B4S7JT/jmyt72WZ5jfUVxedrsf0vO7vKBnsV46LO5E5QDNkIfA3LgM+CiglMWUMa2EXS 9nQX1y7/UbqbdXyDWUs46x4k0ucqIFqwTpHPYUSd2ShG3ol22WaD5CYr7AF2yna7g7M+ IfKD4WbgV/Q8TU3nbHRwPAv1ZyRO036IVzqFAX8JKl5c9d3FLtZMoOCG1fvmgTfoNmAw eliQ== 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:content-transfer-encoding; bh=0srvMO2S0+b6wXTp8T9hURJcjy/k9QAxu5ICVUtKlyQ=; b=ppenDxN+cBCTeFtC3UxpdMMDpyBAUvsGVMv57XskwVIsNCd83bBD5AYHbEsT2hf/xn 2QFLftR+Ae3tyHhN2NAetYbVnfJUcz8fxUoNm6Ojp20PjXNCEKNvJ6RXY/z7W1mfiEIp EhmDokGJkjJizwSx6iNhZZTS4UUBxo8SOqZmQBWur0e+Rmbdqaqfw/Hmum+zaHjNrGd8 4RdyLUeg4ByoBbjl9e0E9W3eQQL+0V1wJxj6ntKYmIIgeFFh+GgHWjZ82UpitvnMMrwH Tp1tQYwdx8pkW9z2hFNK0WVHwYGgtayOfjMl2OdRI5jyJ2biDefpskg6cu7E08uFfdKH 7SPQ== X-Gm-Message-State: AOAM532lk0bB40vGhNfQ3TziDWXU8PSQ2CIZ8pKVStCBi/kC5e/PNyKr jN/9AT2pxVbJnUX7GU9xBlCHmb9+yLJzVAYvzF+zZK7O76A= X-Google-Smtp-Source: ABdhPJyfZtLtmDCBICb91L6JVF6V0J2M+IRdHfSsTn5dsLu7gPMPchHaaZYKY25rY79m9wHrS2GyCF+/O57utxvMs/Y= X-Received: by 2002:a17:906:af79:: with SMTP id os25mr12738933ejb.275.1608493593034; Sun, 20 Dec 2020 11:46:33 -0800 (PST) MIME-Version: 1.0 References: <87o8io3m9m.fsf@gmx.de> In-Reply-To: From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Sun, 20 Dec 2020 13:46:21 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: 45303@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) The last commit still has the linker issue, and this time we have "strsignal" pops up CCLD temacs.exe C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_= 64-w64-mingw32/bin/ld.exe: comp.o: in function `md5_gz_stream': C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/sr= c/comp.c:717: undefined reference to `inflateInit2_' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_= 64-w64-mingw32/bin/ld.exe: C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/sr= c/comp.c:734: undefined reference to `inflate' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_= 64-w64-mingw32/bin/ld.exe: C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/sr= c/comp.c:745: undefined reference to `inflateEnd' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_= 64-w64-mingw32/bin/ld.exe: C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/sr= c/comp.c:745: undefined reference to `inflateEnd' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_= 64-w64-mingw32/bin/ld.exe: process.o: in function `status_message': C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/sr= c/process.c:754: undefined reference to `strsignal' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_= 64-w64-mingw32/bin/ld.exe: callproc.o: in function `call_process': C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/sr= c/callproc.c:916: undefined reference to `strsignal' collect2.exe: error: ld returned 1 exit status make[1]: *** [Makefile:661: temacs.exe] Error 1 make[1]: Leaving directory '/home/VWinUser0/Downloads/emacs/native-comp/build/src' make: *** [Makefile:434: src] Error 2 On Sun, Dec 20, 2020 at 1:10 PM Andrea Corallo wrote: > > Michael Albinus writes: > > > =3D?UTF-8?Q?Li=3DC4=3D81u@debbugs.gnu.org, _?=3D Kiong-G=C4=93 =E5=BB= =96=E5=AE=AE=E6=AF=85 > > writes: > > > >> a segmentation error at make -C src/bootstramp-emacs.exe: > > ^^^^^ > > Wow, didn't know aqbout :-) > > That's one of the easter eggs of the branch :D From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 15:04:34 2020 Received: (at 45303) by debbugs.gnu.org; 20 Dec 2020 20:04:34 +0000 Received: from localhost ([127.0.0.1]:45662 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr4wU-0003U4-HF for submit@debbugs.gnu.org; Sun, 20 Dec 2020 15:04:34 -0500 Received: from mab.sdf.org ([205.166.94.33]:43308 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr4wT-0003Tx-LB for 45303@debbugs.gnu.org; Sun, 20 Dec 2020 15:04:34 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kr4wS-00038Y-Fy; Sun, 20 Dec 2020 20:04:32 +0000 From: Andrea Corallo To: =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <87o8io3m9m.fsf@gmx.de> Date: Sun, 20 Dec 2020 20:04:32 +0000 In-Reply-To: (UTF's message of "Sun, 20 Dec 2020 13:46:21 -0600") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: _?= =?utf-8?B?S2lvbmctR8STIOW7luWuruavhQ==?= , 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) =3D?UTF-8?Q?Li=3DC4=3D81u@debbugs.gnu.org, _?=3D Kiong-G=C4=93 =E5=BB=96=E5= =AE=AE=E6=AF=85 writes: > The last commit still has the linker issue, and this time we have > "strsignal" pops up Yep that's expected, this commit was just for libgccjit. Tomorrow I'll rework the zlib dependent code to address that too. Andrea From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 19:53:52 2020 Received: (at submit) by debbugs.gnu.org; 21 Dec 2020 00:53:52 +0000 Received: from localhost ([127.0.0.1]:45830 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr9SS-0001i4-IN for submit@debbugs.gnu.org; Sun, 20 Dec 2020 19:53:52 -0500 Received: from lists.gnu.org ([209.51.188.17]:42324) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr9SR-0001hv-Bj for submit@debbugs.gnu.org; Sun, 20 Dec 2020 19:53:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41654) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kr9SR-0006nU-2p for bug-gnu-emacs@gnu.org; Sun, 20 Dec 2020 19:53:51 -0500 Received: from ciao.gmane.io ([116.202.254.214]:40030) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kr9SP-0005Lv-KN for bug-gnu-emacs@gnu.org; Sun, 20 Dec 2020 19:53:50 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kr9SM-0007eT-9y for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 01:53:46 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Mon, 21 Dec 2020 00:53:40 +0000 Message-ID: <86v9cw5697.fsf@gmail.com> References: <83k0te6c7i.fsf@gnu.org> <86im8w4t7y.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:dTDMxsvV1AWF2ZZR4IFZ165Ws0c= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 5 X-Spam_score: 0.5 X-Spam_bar: / X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Sun 20 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of > text editors" writes: > > [...] > >> Thanks, hope 18ca9ea08a fix it. > ^^^^^ > 3bb2fd0c58 Thanks Andrea, that problem is fixed. There are still some warnings from comp.c that indicate other troubles: C:/emacs/git/emacs/native/src/comp.c: In function 'Fcomp__compile_ctxt_to_file': C:/emacs/git/emacs/native/src/comp.c:4461:12: warning: unused variable 'oldset' [-Wunused-variable] 4461 | sigset_t oldset; | ^~~~~~ C:/emacs/git/emacs/native/src/comp.c: In function 'eln_load_path_final_clean_up': C:/emacs/git/emacs/native/src/comp.c:4626:12: warning: passing argument 7 of 'internal_condition_case_5' from incompatible pointer type [-Wincompatible-pointer-types] 4626 | Qt, return_nil, Qnil); | ^~~~~~~~~~ | | | struct Lisp_X * (*)(struct Lisp_X *) In file included from C:/emacs/git/emacs/native/src/comp.c:23: C:/emacs/git/emacs/native/src/lisp.h:4161:195: note: expected 'Lisp_Object' {aka 'struct Lisp_X *'} but argument is of type 'struct Lisp_X * (*)(struct Lisp_X *)' 4161 | extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)); | ^~~~~~~~~~~ In file included from C:/emacs/git/emacs/native/src/lisp.h:944, from C:/emacs/git/emacs/native/src/comp.c:23: ./globals.h:6980:14: warning: passing argument 8 of 'internal_condition_case_5' from incompatible pointer type [-Wincompatible-pointer-types] 6980 | #define Qnil builtin_lisp_symbol (0) | ^~~~~~~~~~~~~~~~~~~~~~~ | | | Lisp_Object {aka struct Lisp_X *} C:/emacs/git/emacs/native/src/comp.c:4626:24: note: in expansion of macro 'Qnil' 4626 | Qt, return_nil, Qnil); | ^~~~ In file included from C:/emacs/git/emacs/native/src/comp.c:23: C:/emacs/git/emacs/native/src/lisp.h:4161:208: note: expected 'struct Lisp_X * (*)(struct Lisp_X *)' but argument is of type 'Lisp_Object' {aka 'struct Lisp_X *'} 4161 | extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The internal_condition_case_5 usage looks like the last two arguments might be swapped. The return_nil function is also declared as a nested function: that is a gcc extension, so it is more portable to define it as an ordinary static function. AndyM From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 03:02:39 2020 Received: (at 45303) by debbugs.gnu.org; 21 Dec 2020 08:02:39 +0000 Received: from localhost ([127.0.0.1]:46124 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krG9O-0000E6-VU for submit@debbugs.gnu.org; Mon, 21 Dec 2020 03:02:39 -0500 Received: from mab.sdf.org ([205.166.94.33]:37752 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krG9M-0000Dx-Mg for 45303@debbugs.gnu.org; Mon, 21 Dec 2020 03:02:37 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1krG9L-0007rq-LJ; Mon, 21 Dec 2020 08:02:35 +0000 From: Andrea Corallo To: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> <86im8w4t7y.fsf@gmail.com> <86v9cw5697.fsf@gmail.com> Date: Mon, 21 Dec 2020 08:02:35 +0000 In-Reply-To: <86v9cw5697.fsf@gmail.com> (Andy Moreton's message of "Mon, 21 Dec 2020 00:53:40 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andy Moreton writes: > On Sun 20 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > >> Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of >> text editors" writes: >> >> [...] >> >>> Thanks, hope 18ca9ea08a fix it. >> ^^^^^ >> 3bb2fd0c58 > > Thanks Andrea, that problem is fixed. There are still some warnings from > comp.c that indicate other troubles: > > C:/emacs/git/emacs/native/src/comp.c: In function 'Fcomp__compile_ctxt_to_file': > C:/emacs/git/emacs/native/src/comp.c:4461:12: warning: unused variable 'oldset' [-Wunused-variable] > 4461 | sigset_t oldset; > | ^~~~~~ > C:/emacs/git/emacs/native/src/comp.c: In function 'eln_load_path_final_clean_up': > C:/emacs/git/emacs/native/src/comp.c:4626:12: warning: passing argument 7 of 'internal_condition_case_5' from incompatible pointer type [-Wincompatible-pointer-types] > 4626 | Qt, return_nil, Qnil); > | ^~~~~~~~~~ > | | > | struct Lisp_X * (*)(struct Lisp_X *) > In file included from C:/emacs/git/emacs/native/src/comp.c:23: > C:/emacs/git/emacs/native/src/lisp.h:4161:195: note: expected 'Lisp_Object' {aka 'struct Lisp_X *'} but argument is of type 'struct Lisp_X * (*)(struct Lisp_X *)' > 4161 | extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) > (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), > Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, > Lisp_Object, Lisp_Object (*) (Lisp_Object)); > | ^~~~~~~~~~~ > In file included from C:/emacs/git/emacs/native/src/lisp.h:944, > from C:/emacs/git/emacs/native/src/comp.c:23: > ./globals.h:6980:14: warning: passing argument 8 of 'internal_condition_case_5' from incompatible pointer type [-Wincompatible-pointer-types] > 6980 | #define Qnil builtin_lisp_symbol (0) > | ^~~~~~~~~~~~~~~~~~~~~~~ > | | > | Lisp_Object {aka struct Lisp_X *} > C:/emacs/git/emacs/native/src/comp.c:4626:24: note: in expansion of macro 'Qnil' > 4626 | Qt, return_nil, Qnil); > | ^~~~ > In file included from C:/emacs/git/emacs/native/src/comp.c:23: > C:/emacs/git/emacs/native/src/lisp.h:4161:208: note: expected 'struct Lisp_X * (*)(struct Lisp_X *)' but argument is of type 'Lisp_Object' {aka 'struct Lisp_X *'} > 4161 | extern Lisp_Object internal_condition_case_5 (Lisp_Object (*) > (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object), > Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, > Lisp_Object, Lisp_Object (*) (Lisp_Object)); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > The internal_condition_case_5 usage looks like the last two arguments > might be swapped. Right, f4153cac3e and 2526032ea9 should fix those two issues. IIUC compilation-wise we are left only with the zlib issue now. Andrea From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 03:09:36 2020 Received: (at submit) by debbugs.gnu.org; 21 Dec 2020 08:09:36 +0000 Received: from localhost ([127.0.0.1]:46131 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krGG7-0000Ng-UB for submit@debbugs.gnu.org; Mon, 21 Dec 2020 03:09:36 -0500 Received: from lists.gnu.org ([209.51.188.17]:53394) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krGG6-0000NZ-PH for submit@debbugs.gnu.org; Mon, 21 Dec 2020 03:09:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47118) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krGG6-00015E-Jj for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 03:09:34 -0500 Received: from mab.sdf.org ([205.166.94.33]:35750 helo=ma.sdf.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krGG4-0006cg-VC for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 03:09:34 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1krGFx-0000vE-Hk; Mon, 21 Dec 2020 08:09:25 +0000 From: Andrea Corallo To: Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> <86im8w4t7y.fsf@gmail.com> <86v9cw5697.fsf@gmail.com> Date: Mon, 21 Dec 2020 08:09:25 +0000 In-Reply-To: (Andrea Corallo via's message of "Mon, 21 Dec 2020 08:02:35 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=205.166.94.33; envelope-from=akrl@sdf.org; helo=ma.sdf.org X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit Cc: 45303@debbugs.gnu.org, Andy Moreton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: [...] > IIUC compilation-wise we are left only with the zlib issue now. Ah yeah and the `strsignal' issue too, but ATM that's not clear if this is something we want to workaround in our code or not. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 04:48:04 2020 Received: (at 45303) by debbugs.gnu.org; 21 Dec 2020 09:48:05 +0000 Received: from localhost ([127.0.0.1]:46348 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krHnQ-000775-Jv for submit@debbugs.gnu.org; Mon, 21 Dec 2020 04:48:04 -0500 Received: from mab.sdf.org ([205.166.94.33]:38500 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krHnO-00076m-Uh for 45303@debbugs.gnu.org; Mon, 21 Dec 2020 04:48:03 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1krHnN-00052M-Ad; Mon, 21 Dec 2020 09:48:01 +0000 From: Andrea Corallo To: Eli Zaretskii Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 References: <838s9w6t8d.fsf@gnu.org> <83v9cz5c9z.fsf@gnu.org> <83r1nm6dre.fsf@gnu.org> Date: Mon, 21 Dec 2020 09:48:01 +0000 In-Reply-To: <83r1nm6dre.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 18 Dec 2020 22:49:25 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: gongyi.liao@gmail.com, 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: Andrea Corallo >> Cc: 45303@debbugs.gnu.org, gongyi.liao@gmail.com, >> =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org >> Date: Fri, 18 Dec 2020 16:37:31 +0000 >> >> Eli Zaretskii writes: >> >> >> Date: Fri, 18 Dec 2020 13:28:20 +0000 >> >> Cc: gongyi.liao@gmail.com, =?UTF-8?Q?Li=C4=81u@debbugs.gnu.org >> >> From: Andrea Corallo via "Bug reports for GNU Emacs, >> >> the Swiss army knife of text editors" >> >> >> >> >> CCLD temacs.exe >> >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: >> >> >> comp.o: in function `md5_gz_stream': >> >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:713: >> >> >> undefined reference to `inflateInit2_' >> >> >> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: >> >> >> C:\msys64\home\VWinUser0\Downloads\emacs\native-comp\build\src/../../src/src/comp.c:730: >> >> >> undefined reference to `inflate' >> >> > >> >> > That's curious, looks you've not zlib but from the config.log you do... >> >> >> >> I really would like to understand what's going on here. >> >> >> >> We check in configure for zlib presence, actually this is also require >> >> by --with-nativecomp but somehow the linker fails to find it. >> > >> > Why does the native-comp branch require zlib in comp.c? what does it >> > do with zlib? >> >> We hash the content of the lisp source files to obtain the correspondent >> eln name in the eln-cache. >> >> This machinery has to work since early bootstrap (and has to be fast >> since is executed at each file load), so is directly done from comp.c. >> >> When Emacs is installed the el files are compressed and so before >> hashing them we have to decompress therefore we use zlib. > > Thanks for the explanations. > >> > On master, zlib is an optional library, and when some Emacs command is >> > invoked that needs it, on MS-Windows we load the zlib DLL at run time >> > when requested. See init_zlib_functions in decompress.c. This is >> > unlike on Posix systems, where Emacs is linked with zlib at link time. >> > Does this explain what is going on? >> >> I see, we should probably have comp.c use the necessary DEF_DLL_FN bloat >> or have these functions wrapped in decompress.c. > > I think it's better to use functions in decompress.c or add whatever > you need there, and have the new functions use the same paradigm, > which on Windows loads the DLL the first time it is needed. Hi Eli, so I did, with 5b10a0324d I moved 'md5_gz_stream' to decompress.c, before running it we load zlib if necessary. Hopefully this solves this part of the issue. Thanks Andrea From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 05:10:23 2020 Received: (at 45303) by debbugs.gnu.org; 21 Dec 2020 10:10:24 +0000 Received: from localhost ([127.0.0.1]:46361 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krI91-0007di-SG for submit@debbugs.gnu.org; Mon, 21 Dec 2020 05:10:23 -0500 Received: from mout.gmx.net ([212.227.17.21]:34667) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krI8z-0007dS-SX for 45303@debbugs.gnu.org; Mon, 21 Dec 2020 05:10:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1608545415; bh=EWPOhePRij5NMT3IVshv6D40GzwULfDYvfjCf/6xiJM=; h=X-UI-Sender-Class:From:To:Subject:Date:In-Reply-To:References; b=US5Cokk8yUyz3b2WYkSq9GyXPGUw5ARFlzkO4U44MAp61tLGu/T/B8Mg4NECv/naK c+kYXKVzRJTXj2xIwpggqqFUC8W+hMuHCOItl8+wPqNLLysjLEbCdsoQYZEUPSCuwI wxWXgFWNRYWK9jabApe8gg+JzrrKESa8gS5ByDog= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [217.136.108.250] ([217.136.108.250]) by web-mail.gmx.net (3c-app-mailcom-bs02.server.lan [172.19.170.129]) (via HTTP); Mon, 21 Dec 2020 11:10:15 +0100 MIME-Version: 1.0 Message-ID: From: Pal Gloss To: 45303@debbugs.gnu.org Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Content-Type: multipart/mixed; boundary=abmob-0914ffa9-917a-4174-8ff6-a63a6d8b7d7e Date: Mon, 21 Dec 2020 11:10:15 +0100 Importance: normal Sensitivity: Normal In-Reply-To: References: <83k0te6c7i.fsf@gnu.org> X-UI-Message-Type: mail X-Priority: 3 X-Provags-ID: V03:K1:HWGnU7RQ8N5rtro4FA4ALuit3IllmpOSserLeremvx8ghzgHuNv3NCZfZQhhfK5QODLZB QJOuhHN5lEeISq1GROl4d9RI2FGNdziucIbMqIbYIWo/omUjVg7HpPAy+1kcyX2FonllWAFWt51K dC9wCHzqxpei5NoEUJjuplXmXLEscLBMTWFvnO63bI/FIlCzyS/5zXxh+wgZCHNzZIstcjvjofZp WwDx85CggQCBcnhFK/Lowb45JbduiHYzOjxy1TnAftItwJ4F4PazpK1NFmI6/2I5GzmHCvs5qjsc Ts= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:M02RgG+E6fY=:5sJ7MSb1SA6TazmeSPWJTm AhmCtw8MDVVYVRoHk+gr8IWfBYp0FQ7ddLf2yhHLZXXdodgfnVy/j4niKVhJxr9HkikQvs0Y4 RJewIasN2WeZX7seBELr8gbmmdHn2+x5eXxFZo4L+LAe52JJQ1zSpRY9l0Zzqqj7vkkkDAYWh djEFMIi2IrdScjmiQoNI3aQSjmuevUcNXlM1RC+D06mxlVQyqhMyqxvzSb0zI6weAVSOfIHlc RSdOfxEx2Y8klq3TfENLm+sai/RLw6SBliUTdwTzKjj36HNo62vjU0QKDOsMk4ZdiWRkIT2nl ZjL91q5NUbaGyAYQZOxHRzNWZxNXkCDaWjRME9/BiHTpo4QPjK4+IdLi3g+tJVuTHVwZRJI+t owdjMiYcnGxrjYZVq8lXoXyN0wOuMuCBaITOPQNFFvQH7U/s6BAnWVZ4s/zN3x0+cY6ul+gpf fGPCNloVo6mVkYrdvm71oDUGgGAYspqoV1hqMWmj4pKRfGwPYXv4YKJSbgoImNdlMYKrNO3DS en88BTHtV1c69FCAICKGGAygKkOuvLIeASGyHhYZf5EQZ8ej4LMWXL4wEFLpjv1LqomsaQ/gF iT/vyNaolAxklbJEgqHzj1ElJV9BtMvyeC X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --abmob-0914ffa9-917a-4174-8ff6-a63a6d8b7d7e Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable > There are still problems related to the usage of Fdirectory_files and > internal_condition_case_5 I think. At least, I get a crash after the > bootstrap is dumped (? see attached build log) > > Debugger entered--Lisp error: (wrong-type-argument wholenump t) Despite 2526032ea954671aa48a6ad6d924df2941a8364a, this error still happens= : Qt and Qnil should be swapped (see sed script at the bottom of the mail inside my build commands or the git diff in the build log). > >> With 407fb16583 I think '-lgccjit' should be unnecessary on Windows n= ow, is it? > > > > It is still needed, see my previous mail. But adding -lgccjit allows t= he build > > to proceed but crashes later on. > > Hopefully this is fixed now by 3bb2fd0c58? Not quite: -lgccjit was still needed for strsignal. Note that the strsign= al is a double problem: 1. Because configure can link the test program with the call to strsignal = because libgccjit exports it (though Eli argues it shouldn't and I've reported = an issue to the mingw64-packages repository), no special provision is made to in= clude a header defining the function. Hence, during compilation, there are sev= eral warnings that gcc assumes that strsignal returns an int and has to cast= it to const char*. 2. Because -lgccjit is not added to LIBGCCJIT (it is supposed to be loaded dynamically, if I understood it right), strsignal is not found at linki= ng time. So, even when hacking the LIBGCCJIT to contain -lgccjit in src/Makefile, I= 'm just allowing the linking to succeed, but probably risk a crash because the lin= ked function strsignal does not match the implicit definition assumed by gcc (= ?). In the end, I've applied (see sed script at the bottom of the mail inside my build commands or the git diff in the build log) AndyM's suggest= ion (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D45303#83) to nt/mingw-cfg= .site. After this change, there are no nativecomp related warnings nor errors dur= ing the build if I still include -lz in LIBGCCJIT in src/Makefile. Regarding = my change to nt/mingw-cfg.sites, be aware that I know even less about the configuration process than AndyM (I would not have known about nt/mingw-cfg.sites) and he says: > Adding "ac_cv_func_strsignal=3Dno" in nt/mingw-cfg.site appears to > suppress this problem, but I don't know if that is the right fix. TLDR for 2526032ea954671aa48a6ad6d924df2941a8364a: - swap Qt and Qnil in src/comp.c - fix the strsignal problem, then only -lz is needed Kind regards, =2D- Pal Gloss #+begin_src shell :exports code ( PROCESSORS_TO_USE=3D"3" EMACS_VERSION=3D"emacs-native-comp" cd ../emacs rm -rf ../build gcc --version git restore . sed -i -e '${ a # force strsignal from gnulib to be used (cf https:/= /debbugs.gnu.org/cgi/bugreport.cgi?bug=3D45303#83) a ac_cv_func_strsignal=3Dno }' \ nt/mingw-cfg.site sed -i -e '/^[^a-z]* *Qt, Qnil, return_nil);$/ { s;.*;/* Fix argument order to avoid "error (wrong-type-= argument wholenump t)" */; a Qnil, Qt, return_nil); }' \ src/comp.c echo "Starting point is $(git rev-parse HEAD) with the following cha= nges:" git status git diff ./autogen.sh mkdir -p ../build cd ../build ../emacs/configure \ --with-xml2 \ --without-pop \ --prefix=3D"/home/cramaph1/$EMACS_VERSION/dest" \ --without-compress-install \ --without-dbus \ --with-nativecomp \ --with-modules 'CFLAGS=3D-O2 -g3' # fix # (1) linker errors by tuning LIBGCCJIT making sure the correct libr= aries are added to the linker command sed -i -e 's/^LIBGCCJIT =3D *$/LIBGCCJIT =3D -lz/' \ src/Makefile make -j"$PROCESSORS_TO_USE" make install ) 2>&1 | tee /tmp/emacs-$(git rev-parse HEAD)-patch_mingw.site-patch_com= p.c-lz.log --abmob-0914ffa9-917a-4174-8ff6-a63a6d8b7d7e Content-Type: application/octet-stream Content-Disposition: attachment; filename=emacs-2526032ea954671aa48a6ad6d924df2941a8364a-patch_mingw.site-patch_comp.c-lz.log Content-Transfer-Encoding: quoted-printable gcc.exe (Rev6, Built by MSYS2 project) 10.2.0 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE= . Starting point is 2526032ea954671aa48a6ad6d924df2941a8364a with the follow= ing changes: On branch feature/native-comp Your branch is up to date with 'origin/feature/native-comp'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: nt/mingw-cfg.site modified: src/comp.c no changes added to commit (use "git add" and/or "git commit -a") diff --git a/nt/mingw-cfg.site b/nt/mingw-cfg.site index 4a77cc20b4..8f9df5e7b4 100644 =2D-- a/nt/mingw-cfg.site +++ b/nt/mingw-cfg.site @@ -156,3 +156,5 @@ gl_cv_func_copy_file_range=3Dyes # We don't want to build Emacs so it depends on bcrypt.dll, since then # it will refuse to start on systems where that DLL is absent. gl_cv_lib_assume_bcrypt=3Dno +# force strsignal from gnulib to be used (cf https://debbugs.gnu.org/cgi/= bugreport.cgi?bug=3D45303#83) +ac_cv_func_strsignal=3Dno diff --git a/src/comp.c b/src/comp.c index 8907993dc5..763f7f7b3b 100644 =2D-- a/src/comp.c +++ b/src/comp.c @@ -4622,7 +4622,8 @@ eln_load_path_final_clean_up (void) concat2 (XCAR (dir_tail), Vcomp_native_version_dir), Qt, build_string ("\\.eln\\.old\\'"), Qnil, - Qt, Qnil, return_nil); +/* Fix argument order to avoid "error (wrong-type-argument wholenump t)" = */ +Qnil, Qt, return_nil); FOR_EACH_TAIL (files_in_dir) Fdelete_file (XCAR (files_in_dir), Qnil); } Checking whether you have the necessary tools... (Read INSTALL.REPO for more details on building Emacs) Checking for autoconf (need at least version 2.65) ... ok Your system has the required tools. Running 'autoreconf -fi -I m4' ... You can now run './configure'. configure: loading site script /mingw64/etc/config.site checking for xcrun... no checking for GNU Make... make checking build system type... x86_64-w64-mingw32 checking host system type... x86_64-w64-mingw32 checking the compiler's target... x86_64-w64-mingw32 checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.exe checking for suffix of executables... .exe checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether the compiler is clang... no checking for compiler option needed when checking for declarations... none checking whether gcc and cc understand -c and -o together... yes checking how to run the C preprocessor... gcc -I ../emacs/nt/inc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking whether _XOPEN_SOURCE should be defined... no checking for Minix Amsterdam compiler... no checking for ar... ar checking for ranlib... ranlib checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking whether the compiler is clang... no checking whether C compiler handles -Werror -Wunknown-warning-option... no checking whether -Wno-missing-field-initializers is supported... yes checking whether -Wno-missing-field-initializers is needed... no checking whether -Wuninitialized is supported... yes checking whether C compiler handles -fno-common... yes checking whether C compiler handles -Wall... yes checking whether C compiler handles -Warith-conversion... yes checking whether C compiler handles -Wdate-time... yes checking whether C compiler handles -Wdisabled-optimization... yes checking whether C compiler handles -Wdouble-promotion... yes checking whether C compiler handles -Wduplicated-cond... yes checking whether C compiler handles -Wextra... yes checking whether C compiler handles -Wformat-signedness... yes checking whether C compiler handles -Winit-self... yes checking whether C compiler handles -Winvalid-pch... yes checking whether C compiler handles -Wlogical-op... yes checking whether C compiler handles -Wmissing-declarations... yes checking whether C compiler handles -Wmissing-include-dirs... yes checking whether C compiler handles -Wmissing-prototypes... yes checking whether C compiler handles -Wnested-externs... yes checking whether C compiler handles -Wnull-dereference... yes checking whether C compiler handles -Wold-style-definition... yes checking whether C compiler handles -Wopenmp-simd... yes checking whether C compiler handles -Wpacked... yes checking whether C compiler handles -Wpointer-arith... yes checking whether C compiler handles -Wstrict-prototypes... yes checking whether C compiler handles -Wsuggest-attribute=3Dnoreturn... yes checking whether C compiler handles -Wsuggest-final-methods... yes checking whether C compiler handles -Wsuggest-final-types... yes checking whether C compiler handles -Wtrampolines... yes checking whether C compiler handles -Wuninitialized... yes checking whether C compiler handles -Wunknown-pragmas... yes checking whether C compiler handles -Wunused-macros... yes checking whether C compiler handles -Wvariadic-macros... yes checking whether C compiler handles -Wvector-operation-performance... yes checking whether C compiler handles -Wwrite-strings... yes checking whether C compiler handles -Warray-bounds=3D2... yes checking whether C compiler handles -Wattribute-alias=3D2... yes checking whether C compiler handles -Wformat=3D2... yes checking whether C compiler handles -Wformat-truncation=3D2... yes checking whether C compiler handles -Wimplicit-fallthrough=3D5... yes checking whether C compiler handles -Wshift-overflow=3D2... yes checking whether C compiler handles -Wvla-larger-than=3D4031... yes checking whether C compiler handles -Wredundant-decls... (cached) no checking whether C compiler handles -Wno-missing-field-initializers... yes checking whether C compiler handles -Wno-override-init... yes checking whether C compiler handles -Wno-sign-compare... yes checking whether C compiler handles -Wno-type-limits... yes checking whether C compiler handles -Wno-unused-parameter... yes checking whether C compiler handles -Wno-format-nonliteral... yes checking whether C compiler handles -Wno-pointer-sign... yes checking for a BSD-compatible install... /usr/bin/install -c checking command to symlink files in the same directory... /bin/ln checking for install-info... /usr/bin/install-info checking for gzip... /usr/bin/gzip checking for 'find' args to delete a file... -delete checking for brew... no checking for -znocombreloc... not needed checking whether addresses are sanitized... no checking for library containing sqrt... none required checking for pkg-config... /mingw64/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for machine/soundcard.h... no checking for sys/soundcard.h... no checking for soundcard.h... no checking for mmsystem.h... yes checking for _oss_ioctl in -lossaudio... no checking for alsa >=3D 1.0.0... no checking for linux/fs.h... no checking for malloc.h... yes checking for sys/systeminfo.h... no checking for sys/sysinfo.h... no checking for coff.h... no checking for pty.h... no checking for sys/resource.h... yes checking for sys/utsname.h... no checking for pwd.h... yes checking for utmp.h... no checking for util.h... no checking for sanitizer/lsan_interface.h... no checking for sys/socket.h... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/param.h... yes checking for pthread.h... (cached) no checking for malloc/malloc.h... no checking for sys/un.h... no checking for dirent.h... yes checking for execinfo.h... no checking for stdio_ext.h... no checking for sys/vfs.h... no checking for sys/fs_types.h... no checking for getopt.h... (cached) no checking for sys/cdefs.h... yes checking for sys/time.h... yes checking for ieee754.h... no checking for limits.h... yes checking for wchar.h... yes checking for stdint.h... (cached) yes checking for inttypes.h... (cached) yes checking for sys/select.h... no checking for sys/random.h... no checking for sys/stat.h... (cached) yes checking for ADDR_NO_RANDOMIZE... no checking for term.h... no checking whether time.h and sys/time.h may both be included... yes checking for sys/wait.h that is POSIX.1 compatible... yes checking for net/if.h... no checking for ifaddrs.h... no checking for net/if_dl.h... no checking for struct ifreq.ifr_flags... no checking for struct ifreq.ifr_hwaddr... no checking for struct ifreq.ifr_netmask... no checking for struct ifreq.ifr_broadaddr... no checking for struct ifreq.ifr_addr... no checking for struct ifreq.ifr_addr.sa_len... no checking whether gcc understands -MMD -MF... yes checking for X... no checking whether Windows API headers are recent enough... yes checking for windres... windres checking whether malloc is Doug Lea style... no checking for getpagesize... yes checking for working mmap... no checking for main in -lXbsd... no checking for thread support... yes checking for librsvg-2.0 >=3D 2.14.0... yes checking for getaddrinfo_a in -lanl... no checking for lgetfilecon in -lselinux... no checking for gnutls >=3D 2.12.2... yes checking for libsystemd >=3D 222... no checking for jansson >=3D 2.7... yes checking windows.h usability... yes checking windows.h presence... yes checking for windows.h... yes checking for harfbuzz >=3D 1.2.3... yes checking for X11/xpm.h... yes checking for jpeglib 6b or later... -ljpeg checking for lcms2... yes checking for library containing inflateEnd... -lz checking for dladdr... no checking for dlfunc... no checking for gcc_jit_context_acquire in -lgccjit... yes checking libgccjit.h usability... yes checking libgccjit.h presence... yes checking for libgccjit.h... yes checking png.h usability... yes checking png.h presence... yes checking for png.h... yes checking whether png_longjmp is declared... yes checking tiffio.h usability... yes checking tiffio.h presence... yes checking for tiffio.h... yes checking gif_lib.h usability... yes checking gif_lib.h presence... yes checking for gif_lib.h... yes checking gpm.h usability... no checking gpm.h presence... no checking for gpm.h... no checking for libxml-2.0 > 2.6.17... yes checking for maillock in -lmail... no checking for maillock in -llockfile... no checking for liblockfile.so... no checking maillock.h usability... no checking maillock.h presence... no checking for maillock.h... no checking for accept4... no checking for fchdir... no checking for gethostname... (cached) yes checking for getrusage... no checking for get_current_dir_name... no checking for lrand48... no checking for random... (cached) yes checking for rint... yes checking for trunc... yes checking for select... (cached) yes checking for getpagesize... (cached) yes checking for setlocale... yes checking for newlocale... no checking for getrlimit... (cached) yes checking for setrlimit... (cached) yes checking for shutdown... (cached) yes checking for pthread_sigmask... (cached) yes checking for strsignal... (cached) no checking for setitimer... (cached) yes checking for timer_getoverrun... no checking for sendto... (cached) yes checking for recvfrom... (cached) yes checking for getsockname... (cached) yes checking for getifaddrs... no checking for freeifaddrs... no checking for gai_strerror... (cached) yes checking for sync... no checking for getpwent... no checking for endpwent... no checking for getgrent... no checking for endgrent... no checking for cfmakeraw... no checking for cfsetspeed... no checking for __executable_start... no checking for log2... yes checking for pthread_setname_np... yes checking for pthread_set_name_np... no checking whether pthread_setname_np takes a single argument... no checking whether pthread_setname_np takes three arguments... no checking for aligned_alloc... no checking for posix_memalign... no checking whether aligned_alloc is declared... no checking for posix_madvise... no checking for __builtin_frame_address... yes checking for __builtin_unwind_init... yes checking for _LARGEFILE_SOURCE value needed for large files... no checking for grantpt... no checking for getpt... no checking for posix_openpt... no checking for library containing tputs... none required checking for timerfd interface... no checking whether signals can be handled on alternate stack... no checking valgrind/valgrind.h usability... no checking valgrind/valgrind.h presence... no checking for valgrind/valgrind.h... no checking for struct unipair.unicode... no checking for __lsan_ignore_object... no checking for sbrk... (cached) yes checking for fchmod... no checking for canonicalize_file_name... (cached) yes checking for readlink... (cached) yes checking for realpath... (cached) not-needed checking for readlinkat... (cached) yes checking for explicit_bzero... (cached) yes checking for memset_s... no checking for faccessat... (cached) yes checking for fchmodat... (cached) yes checking for lchmod... (cached) yes checking for fcntl... (cached) yes checking for fdopendir... (cached) not-needed checking for fstatat... (cached) yes checking for fsync... (cached) yes checking for futimens... (cached) not-needed checking for getrandom... no checking for gettimeofday... yes checking for lstat... (cached) yes checking for mkostemp... no checking for pipe2... (cached) yes checking for pselect... (cached) yes checking for isblank... yes checking for iswctype... yes checking for strtoimax... yes checking for symlink... (cached) yes checking for localtime_r... no checking for timegm... no checking for utimensat... (cached) yes checking for getdtablesize... no checking for futimes... no checking for futimesat... no checking for lutimes... no checking for pid_t... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... no checking for vfork... no checking for snprintf... yes checking whether GLib is linked in... no checking for nl_langinfo and CODESET... (cached) yes checking for nl_langinfo and _NL_PAPER_WIDTH... (cached) yes checking for mbstate_t... yes checking for _setjmp... no checking for sigsetjmp... no checking for usable FIONREAD... yes checking for usable SIGIO... no checking for struct alignment... yes checking for typeof syntax and keyword spelling... typeof checking for statement expressions... yes checking for working alloca.h... no checking for alloca... yes checking whether // is distinct from /... yes checking whether realpath works... (cached) no-but-not-needed-so-yes checking for C/C++ restrict keyword... __restrict checking whether byte ordering is bigendian... no checking whether the preprocessor supports include_next... yes checking whether source code line length is unlimited... yes checking if environ is properly declared... yes checking for complete errno.h... no checking for EMULTIHOP value... no checking for ENOLINK value... yes checking for EOVERFLOW value... yes checking whether lstat correctly handles trailing slash... (cached) yes checking for mode_t... yes checking for st_dm_mode in struct stat... no checking whether strmode is declared... no checking for gawk... gawk checking for getopt.h... (cached) no checking for struct timeval... yes checking for wide-enough struct timeval.tv_sec member... (cached) yes checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.... no checking whether the compiler produces multi-arch binaries... no checking whether stdint.h conforms to C99... yes checking whether stdint.h works without ISO C predefines... yes checking whether stdint.h has UINTMAX_WIDTH etc.... no checking for 64-bit off_t... yes checking for 64-bit st_size... no checking whether memmem is declared... no checking whether memrchr is declared... no checking whether defines MIN and MAX... no checking whether defines MIN and MAX... no checking whether time_t is signed... yes checking whether alarm is declared... (cached) yes checking for working mktime... (cached) yes checking whether struct tm is in sys/time.h or time.h... time.h checking for struct tm.tm_zone... no checking whether tzname is declared... yes checking for tzname... yes checking for struct tm.tm_gmtoff... no checking whether is self-contained... no checking for inline... inline checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking whether we are using the GNU C Library >=3D 2.1 or uClibc... no checking for sigset_t... no checking for wchar_t... yes checking whether strnlen is declared... yes checking whether strtoimax is declared... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking whether stat file-mode macros are broken... no checking for struct timespec in ... yes checking whether clearerr_unlocked is declared... no checking whether feof_unlocked is declared... no checking whether ferror_unlocked is declared... no checking whether fflush_unlocked is declared... no checking whether fgets_unlocked is declared... no checking whether fputc_unlocked is declared... no checking whether fputs_unlocked is declared... no checking whether fread_unlocked is declared... no checking whether fwrite_unlocked is declared... no checking whether getc_unlocked is declared... no checking whether getchar_unlocked is declared... no checking whether putc_unlocked is declared... no checking whether putchar_unlocked is declared... no checking type of array argument to getgroups... int checking whether getdtablesize is declared... no checking for O_CLOEXEC... no checking for promoted mode_t type... int checking whether the utimes function works... no checking sys/acl.h usability... yes checking sys/acl.h presence... yes checking for sys/acl.h... yes checking for library containing acl_get_file... (cached) none required checking for acl_get_file... (cached) yes checking for acl_get_fd... no checking for acl_set_file... (cached) yes checking for acl_set_fd... no checking for acl_free... (cached) yes checking for acl_from_mode... no checking for acl_from_text... (cached) yes checking for acl_delete_def_file... no checking for acl_extended_file... no checking for acl_delete_fd_np... no checking for acl_delete_file_np... no checking for acl_copy_ext_native... no checking for acl_create_entry_np... no checking for acl_to_short_text... no checking for acl_free_text... no checking for working acl_get_file... (cached) yes checking acl/libacl.h usability... no checking acl/libacl.h presence... no checking for acl/libacl.h... no checking for acl_entries... no checking for ACL_FIRST_ENTRY... no checking for ACL_TYPE_EXTENDED... no checking for __builtin_expect... yes checking byteswap.h usability... no checking byteswap.h presence... no checking for byteswap.h... no checking for library containing clock_gettime... (cached) none required checking for clock_gettime... (cached) no checking for clock_settime... (cached) no checking for copy_file_range... (cached) yes checking for d_type member in directory struct... no checking whether // is distinct from /... (cached) yes checking whether dup2 works... (cached) yes checking whether fchmodat+AT_SYMLINK_NOFOLLOW works on non-symlinks... (ca= ched) not-needed-so-yes checking whether fcntl handles F_DUPFD correctly... (cached) yes checking whether fcntl understands F_DUPFD_CLOEXEC... (cached) yes checking whether fdopendir is declared... no checking whether fdopendir works... (cached) no-but-not-needed-so-yes checking for flexible array member... yes checking for __fpending... no checking whether fstatat (..., 0) works... (cached) yes checking for sys/mount.h... no checking how to get file system space usage... checking for statvfs functi= on (SVR4)... no checking for two-argument statfs with statfs.f_frsize member... no checking for 3-argument statfs function (DEC OSF/1)... no checking for two-argument statfs with statfs.f_bsize member (AIX, 4.3BSD).= .. no checking for four-argument statfs (SVR3)... no checking for two-argument statfs with statfs.f_fsize member (4.4BSD and Ne= tBSD)... no checking whether futimens works... (cached) not-needed-so-yes checking for getloadavg... (cached) yes checking sys/loadavg.h usability... no checking sys/loadavg.h presence... no checking for sys/loadavg.h... no checking whether getloadavg is declared... no checking for bcrypt.h... yes checking whether the bcrypt library is guaranteed to be present... (cached= ) no checking for gettimeofday with POSIX signature... yes checking whether the compiler supports the __inline keyword... yes checking gmp.h usability... yes checking gmp.h presence... yes checking for gmp.h... yes checking for library containing __gmpz_roinit_n... -lgmp checking for memmem... no checking for mempcpy... yes checking for memrchr... no checking whether signature of pselect conforms to POSIX... (cached) yes checking whether pselect detects invalid fds... (cached) yes checking whether pthread_sigmask is a macro... (cached) no checking whether pthread_sigmask works without -lpthread... yes checking whether pthread_sigmask returns error numbers... (cached) yes checking whether pthread_sigmask unblocks signals correctly... (cached) no= t relevant checking whether readlink signature is correct... yes checking whether readlink handles trailing slash correctly... (cached) yes checking whether readlinkat signature is correct... yes checking for working re_compile_pattern... no checking libintl.h usability... yes checking libintl.h presence... yes checking for libintl.h... yes checking whether isblank is declared... yes checking for sig2str... no checking for sigdescr_np... no checking for volatile sig_atomic_t... yes checking for sighandler_t... no checking for socklen_t... yes checking for ssize_t... yes checking for struct stat.st_atim.tv_nsec... no checking for struct stat.st_atimespec.tv_nsec... no checking for struct stat.st_atimensec... no checking for struct stat.st_atim.st__tim.tv_nsec... no checking for struct stat.st_birthtimespec.tv_nsec... no checking for struct stat.st_birthtimensec... no checking for struct stat.st_birthtim.tv_nsec... no checking for working stdalign.h... yes checking for good max_align_t... yes checking whether NULL can be used in arbitrary expressions... yes checking which flavor of printf attribute matches inttypes macros... gnu checking for stpcpy... no checking for working strnlen... yes checking whether strtoimax works... yes checking whether symlink handles trailing slash correctly... (cached) yes checking for nlink_t... no checking whether localtime_r is declared... no checking whether localtime_r exists as an inline function... no checking whether localtime works even near extrema... yes checking for timezone_t... no checking for library containing timer_settime... no checking for timer_settime... no checking whether utimensat works... (cached) yes checking for variable-length arrays... yes checking for __mktime_internal... no checking for gcc option to disable position independent executables... no= t needed Configured for 'x86_64-w64-mingw32'. Where should the build process find the source code? ../emacs What compiler should emacs be built with? gcc -O2 -g3 Should Emacs use the GNU version of malloc? no (The GNU allocators don't work with this system configuration.) Should Emacs use a relocating allocator for buffers? no Should Emacs use mmap(2) for buffer allocation? yes What window system should Emacs use? w32 What toolkit should Emacs use? none Where do we find X Windows header files? NONE Where do we find X Windows libraries? NONE Does Emacs use -lXaw3d? no Does Emacs use -lXpm? yes Does Emacs use -ljpeg? yes Does Emacs use -ltiff? yes Does Emacs use a gif library? yes Does Emacs use a png library? yes Does Emacs use -lrsvg-2? yes Does Emacs use cairo? no Does Emacs use -llcms2? yes Does Emacs use imagemagick? no Does Emacs use native APIs for images? yes (w32) Does Emacs support sound? yes Does Emacs use -lgpm? no Does Emacs use -ldbus? no Does Emacs use -lgconf? no Does Emacs use GSettings? no Does Emacs use a file notification library? yes (w32) Does Emacs use access control lists? yes Does Emacs use -lselinux? no Does Emacs use -lgnutls? yes Does Emacs use -lxml2? yes Does Emacs use -lfreetype? no Does Emacs use HarfBuzz? yes Does Emacs use -lm17n-flt? no Does Emacs use -lotf? no Does Emacs use -lxft? no Does Emacs use -lsystemd? no Does Emacs use -ljansson? yes Does Emacs use the GMP library? yes Does Emacs directly use zlib? yes Does Emacs have dynamic modules support? yes Does Emacs use toolkit scroll bars? yes Does Emacs support Xwidgets? no Does Emacs have threading support in lisp? yes Does Emacs support the portable dumper? yes Does Emacs support legacy unexec dumping? no Which dumping strategy does Emacs use? pdumper Does Emacs have native lisp compiler? yes configure: creating ./config.status config.status: creating nt/emacs.rc config.status: creating nt/emacsclient.rc config.status: creating src/emacs-module.h config.status: creating Makefile config.status: creating lib/gnulib.mk config.status: creating ../emacs/doc/man/emacs.1 config.status: creating lib/Makefile config.status: creating lib-src/Makefile config.status: creating oldXMenu/Makefile config.status: creating doc/emacs/Makefile config.status: creating doc/misc/Makefile config.status: creating doc/lispintro/Makefile config.status: creating doc/lispref/Makefile config.status: creating src/Makefile config.status: creating lwlib/Makefile config.status: creating lisp/Makefile config.status: creating leim/Makefile config.status: creating nextstep/Makefile config.status: creating nt/Makefile config.status: creating test/Makefile config.status: creating admin/charsets/Makefile config.status: creating admin/unidata/Makefile config.status: creating admin/grammars/Makefile config.status: creating src/config.h config.status: executing src/epaths.h commands config.status: executing src/.gdbinit commands config.status: executing doc/emacs/emacsver.texi commands config.status: executing etc-refcards-emacsver.tex commands make -C nt all make -C lib all make info-real info-dir make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/nt' RC emacs.res make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/lib' make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build' make -C doc/lispref info GEN alloca.h make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/doc/li= spref' make[2]: Nothing to be done for 'info'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/doc/lis= pref' make -C doc/lispintro info make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/doc/li= spintro' make[2]: Nothing to be done for 'info'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/doc/lis= pintro' make -C doc/emacs info CCLD addpm.exe make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/doc/em= acs' make[2]: Nothing to be done for 'info'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/doc/ema= cs' make -C doc/misc info make[1]: Nothing to be done for 'info-dir'. make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/doc/mi= sc' make[2]: Nothing to be done for 'info'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/doc/mis= c' make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build' GEN byteswap.h GEN errno.h GEN execinfo.h GEN getopt.h GEN getopt-cdefs.h GEN ieee754.h GEN limits.h GEN stdint.h GEN string.h GEN sys/random.h GEN time.h CCLD cmdproxy.exe CC fingerprint.o CC acl_entries.o CCLD ddeclient.exe CC execinfo.o CC fpending.o CC getopt.o CC getopt1.o CC getrandom.o CC gettimeofday.o CCLD runemacs.exe CC memmem.o CC memrchr.o CC mkostemp.o CC mktime.o CC regex.o CC sig2str.o make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/nt' CC sigdescr_np.o CC stpcpy.o CC time_r.o CC time_rz.o CC timegm.o CC binary-io.o CC c-ctype.o CC c-strcasecmp.o CC c-strncasecmp.o CC close-stream.o CC count-leading-zeros.o CC count-one-bits.o CC count-trailing-zeros.o CC md5.o CC sha1.o CC sha256.o CC sha512.o CC dtoastr.o CC dtotimespec.o CC filemode.o CC filevercmp.o CC gettime.o CC nstrftime.o CC qcopy-acl.o CC stat-time.o CC tempname.o CC timespec.o CC timespec-add.o CC timespec-sub.o CC u64.o AR libgnu.a make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lib' make -C lib-src all make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/lib-sr= c' CC ntlib.o RC emacsclient.res CC pop.o CCLD etags.exe CCLD ctags.exe CCLD emacsclient.exe CCLD emacsclientw.exe CCLD ebrowse.exe CCLD hexl.exe CCLD movemail.exe CCLD make-docfile.exe CCLD make-fingerprint.exe make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lib-src= ' make -C src VCSWITNESS=3D'$(srcdir)/../.git/logs/HEAD' BIN_DESTDIR=3D'/hom= e/cramaph1/emacs-native-comp/dest/bin/' \ ELN_DESTDIR=3D'"/home/cramaph1/emacs-native-comp/dest/lib/emacs/28.0.50/= "' all make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/src' GEN lisp.mk GEN globals.h make -C ../nt ../src/emacs.res GEN buildobj.h make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/nt' RC ../src/emacs.res make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/nt' make -C ../admin/charsets all make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= charsets' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/c= harsets' make -C ../admin/unidata charscript.el make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= unidata' make[2]: Nothing to be done for 'charscript.el'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/u= nidata' make -C ../admin/charsets cp51932.el make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= charsets' make[2]: Nothing to be done for 'cp51932.el'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/c= harsets' make -C ../admin/charsets eucjp-ms.el make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= charsets' make[2]: Nothing to be done for 'eucjp-ms.el'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/c= harsets' CC firstfile.o CC dispnew.o CC frame.o CC scroll.o CC xdisp.o CC menu.o CC window.o CC charset.o CC coding.o CC category.o CC ccl.o CC character.o CC chartab.o CC bidi.o CC term.o CC terminal.o CC xfaces.o CC emacs.o CC keyboard.o CC macros.o CC keymap.o CC sysdep.o CC bignum.o CC buffer.o CC filelock.o CC insdel.o CC marker.o CC minibuf.o CC fileio.o CC dired.o CC cmds.o CC casetab.o CC casefiddle.o CC indent.o CC search.o CC regex-emacs.o CC undo.o CC alloc.o CC pdumper.o CC data.o CC doc.o CC editfns.o CC callint.o CC eval.o CC floatfns.o CC fns.o CC font.o CC print.o CC lread.o CC emacs-module.o CC syntax.o CC bytecode.o CC comp.o CC dynlib.o CC process.o CC gnutls.o CC callproc.o CC region-cache.o CC sound.o CC timefns.o CC atimer.o CC doprnt.o CC intervals.o CC textprop.o CC composite.o CC xml.o CC lcms.o CC w32notify.o CC profiler.o CC decompress.o CC thread.o CC systhread.o CC hbfont.o CC w32fns.o CC w32menu.o CC w32reg.o ../../emacs/src/w32menu.c: In function 'set_frame_menubar': ../../emacs/src/w32menu.c:326:2: warning: 'memcpy' offset [3, 10] from the= object at '' is out of the bounds of referenced subobject 'conte= nts' with type 'struct Lisp_X *[]' at offset 3 [-Warray-bounds] 326 | memcpy (previous_items, XVECTOR (f->menu_bar_vector)->contents, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | previous_menu_items_used * word_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../emacs/src/w32menu.c:26: ../../emacs/src/lisp.h:1623:17: note: subobject 'contents' declared here 1623 | Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER]; | ^~~~~~~~ CC w32font.o CC w32term.o CC w32xfns.o CC w32select.o CC w32uniscribe.o CC w32cygwinx.o CC w32.o CC w32console.o CC w32heap.o CC w32inevt.o CC w32proc.o CC w32image.o ../../emacs/src/w32.c: In function '_sys_read_ahead': ../../emacs/src/w32.c:8790:10: warning: 'rc' may be used uninitialized in = this function [-Wmaybe-uninitialized] 8790 | if (rc =3D=3D sizeof (char)) | ~~~^~~~~~~~~~~~~~~~ CC fontset.o CC fringe.o CC image.o CC json.o CC tparam.o CC lastfile.o CCLD temacs.exe /usr/bin/mkdir -p ../etc make -C ../lisp update-subdirs make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' cp -f temacs.exe bootstrap-emacs.exe rm -f bootstrap-emacs.pdmp ./temacs --batch -l loadup --temacs=3Dpbootstrap \ --bin-dest /home/cramaph1/emacs-native-comp/dest/bin/ --eln-dest "/home/c= ramaph1/emacs-native-comp/dest/lib/emacs/28.0.50/" Loading loadup.el (source)... Dump mode: pbootstrap Using load-path (c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp c:/m= sys64/home/cramaph1/emacs-native-comp/emacs/lisp/emacs-lisp c:/msys64/home= /cramaph1/emacs-native-comp/emacs/lisp/progmodes c:/msys64/home/cramaph1/e= macs-native-comp/emacs/lisp/language c:/msys64/home/cramaph1/emacs-native-= comp/emacs/lisp/international c:/msys64/home/cramaph1/emacs-native-comp/em= acs/lisp/textmodes c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/vc= ) Loading emacs-lisp/byte-run... Loading emacs-lisp/backquote... Loading subr (source)... Loading version... Loading widget... Loading custom... Loading emacs-lisp/map-ynp... Loading international/mule (source)... Loading international/mule-conf... Loading env... Loading format... Loading bindings... Loading window... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/files.el (sou= rce)... Loading emacs-lisp/macroexp... Loading cus-face... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/faces.el (sou= rce)... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... Loading button... Loading emacs-lisp/nadvice... Loading emacs-lisp/cl-preloaded... Loading obarray... Loading abbrev... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/simple.el (so= urce)... Loading help... Loading jka-cmpr-hook... Loading epa-hook... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/international= /mule-cmds.el (source)... Loading case-table... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/international= /charprop.el (source)... Loading international/characters... Loading international/charscript... Loading composite... Loading language/chinese... Loading language/cyrillic... Loading language/indian... Loading language/sinhala... Loading language/english... Loading language/ethiopic... Loading language/european... Loading language/czech... Loading language/slovak... Loading language/romanian... Loading language/greek... Loading language/hebrew... Loading international/cp51932... Loading international/eucjp-ms... Loading language/japanese... Loading language/korean... Loading language/lao... Loading language/tai-viet... Loading language/thai... Loading language/tibetan... Loading language/vietnamese... Loading language/misc-lang... Loading language/utf-8-lang... Loading language/georgian... Loading language/khmer... Loading language/burmese... Loading language/cham... Loading indent... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/emacs-lisp/cl= -generic.el (source)... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/minibuffer.el= (source)... Loading frame... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/startup.el (s= ource)... Loading term/tty-colors... Loading font-core... Loading facemenu... Loading emacs-lisp/syntax... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/font-lock.el = (source)... Loading jit-lock... Loading mouse... Loading scroll-bar... Loading select... Loading emacs-lisp/timer... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/isearch.el (s= ource)... Loading rfn-eshadow... Loading menu-bar... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/tab-bar.el (s= ource)... Loading emacs-lisp/lisp... Loading textmodes/page... Loading register... Loading textmodes/paragraphs... Loading progmodes/prog-mode... Loading emacs-lisp/lisp-mode... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/progmodes/eli= sp-mode.el (source)... Loading textmodes/text-mode... Loading textmodes/fill... Loading newcomment... Loading replace... Loading emacs-lisp/tabulated-list... Loading buff-menu... Loading fringe... Loading emacs-lisp/regexp-opt... Loading image... Loading international/fontset... Loading dnd... Loading tool-bar... Loading term/common-win... Loading w32-vars... Loading term/w32-win... Loading disp-table... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/w32-fns.el (s= ource)... Loading ls-lisp... Loading dos-w32... Loading mwheel... Loading emacs-lisp/float-sup... Loading vc/vc-hooks... Loading vc/ediff-hook... Loading uniquify... Loading electric... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/emacs-lisp/el= doc.el (source)... Loading cus-start... Loading tooltip... Loading international/iso-transl... Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/leim/leim-lis= t.el (source)... Finding pointers to doc strings... Finding pointers to doc strings...done Dumping under the name bootstrap-emacs.pdmp Dumping fingerprint: 6bb003838ab0e4294f190d4cf3dcd2831726c58139a7ccf76a6b1= 0ea3409a011 Dump complete Byte counts: header=3D100 hot=3D11315980 discardable=3D166896 cold=3D72921= 20 Reloc counts: hot=3D708355 discardable=3D5094 make -C ../lisp compile-first EMACS=3D"../src/bootstrap-emacs.exe" make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' ELC+ELN ../../emacs/lisp/emacs-lisp/bytecomp.elc ELC+ELN ../../emacs/lisp/emacs-lisp/comp.elc make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make -C ../lisp autoloads EMACS=3D"../src/bootstrap-emacs.exe" make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' make -C ../leim all EMACS=3D"../src/bootstrap-emacs.exe" ELC+ELN ../../emacs/lisp/emacs-lisp/cl-generic.elc ELC+ELN ../../emacs/lisp/emacs-lisp/eldoc.elc make[3]: Entering directory '/home/cramaph1/emacs-native-comp/build/leim' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/cramaph1/emacs-native-comp/build/leim' make -C ../admin/grammars all EMACS=3D"../../src/bootstrap-emacs.exe" make[3]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= grammars' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/g= rammars' GEN ../../emacs/lisp/mh-e/mh-loaddefs.el SCRAPE ../../emacs/lisp/mh-e INFO Scraping files for mh-loaddefs.el... INFO Scraping files for mh-loaddefs.el...done GEN ../../emacs/lisp/net/tramp-loaddefs.el SCRAPE ../../emacs/lisp/net INFO Scraping files for tramp-loaddefs.el... INFO Scraping files for tramp-loaddefs.el...done GEN ../../emacs/lisp/loaddefs.el ELC+ELN ../../emacs/lisp/faces.elc ELC+ELN ../../emacs/lisp/files.elc SCRAPE ../../emacs/lisp ../../emacs/lisp/calc ../../emacs/lisp/calenda= r ... SCRAPE ../../emacs/lisp/cedet ../../emacs/lisp/cedet/ede ... SCRAPE ../../emacs/lisp/cedet/semantic ... SCRAPE ../../emacs/lisp/cedet/semantic/analyze ... SCRAPE ../../emacs/lisp/cedet/semantic/bovine ... SCRAPE ../../emacs/lisp/cedet/semantic/decorate ... SCRAPE ../../emacs/lisp/cedet/semantic/symref ... SCRAPE ../../emacs/lisp/cedet/semantic/wisent ... SCRAPE ../../emacs/lisp/cedet/srecode ../../emacs/lisp/emacs-lisp ... SCRAPE ../../emacs/lisp/emulation ../../emacs/lisp/erc ... SCRAPE ../../emacs/lisp/eshell ../../emacs/lisp/gnus ... SCRAPE ../../emacs/lisp/image ../../emacs/lisp/international ... SCRAPE ../../emacs/lisp/language ../../emacs/lisp/leim ... SCRAPE ../../emacs/lisp/leim/ja-dic ../../emacs/lisp/leim/quail ... SCRAPE ../../emacs/lisp/mail ../../emacs/lisp/mh-e ../../emacs/lisp/ne= t ... SCRAPE ../../emacs/lisp/nxml ../../emacs/lisp/org ../../emacs/lisp/pla= y ... SCRAPE ../../emacs/lisp/progmodes ../../emacs/lisp/textmodes ... SCRAPE ../../emacs/lisp/url ../../emacs/lisp/vc INFO Scraping files for loaddefs.el... INFO Scraping files for loaddefs.el...21% INFO Scraping files for loaddefs.el...31% INFO Scraping files for loaddefs.el...41% INFO Scraping files for loaddefs.el...63% INFO Scraping files for loaddefs.el...73% INFO Scraping files for loaddefs.el...83% INFO Scraping files for loaddefs.el...93% INFO Scraping files for loaddefs.el...100% INFO Scraping files for loaddefs.el...done make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' ELC+ELN ../../emacs/lisp/font-lock.elc make -C ../admin/unidata all EMACS=3D"../../src/bootstrap-emacs.exe" make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= unidata' GEN unidata.txt make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/u= nidata' ELC+ELN ../../emacs/lisp/international/mule-cmds.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... ELC+ELN ../../emacs/lisp/international/mule.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... ELC+ELN ../../emacs/lisp/isearch.elc ELC+ELN ../../emacs/lisp/minibuffer.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... ELC+ELN ../../emacs/lisp/progmodes/elisp-mode.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... ELC+ELN ../../emacs/lisp/simple.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... ELC+ELN ../../emacs/lisp/startup.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... ELC+ELN ../../emacs/lisp/subr.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... ELC+ELN ../../emacs/lisp/tab-bar.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... ELC+ELN ../../emacs/lisp/w32-fns.elc Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... Reloading stale loaddefs.el Loading c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp/loaddefs.el (= source)... GEN ../etc/DOC rm -f emacs.exe && cp -f temacs.exe emacs.exe LC_ALL=3DC ./temacs -batch -l loadup --temacs=3Dpdump \ --bin-dest /home/cramaph1/emacs-native-comp/dest/bin/ --eln-dest "/home/c= ramaph1/emacs-native-comp/dest/lib/emacs/28.0.50/" Loading loadup.el (source)... Dump mode: pdump Using load-path (c:/msys64/home/cramaph1/emacs-native-comp/emacs/lisp) Loading emacs-lisp/byte-run... Loading emacs-lisp/backquote... Loading subr (native compiled elisp)... Loading version... Loading widget... Loading custom... Loading emacs-lisp/map-ynp... Loading international/mule (native compiled elisp)... Loading international/mule-conf... Loading env... Loading format... Loading bindings... Loading window... Loading files (native compiled elisp)... Loading emacs-lisp/macroexp... Loading cus-face... Loading faces (native compiled elisp)... Loading loaddefs.el (source)... Loading button... Loading emacs-lisp/nadvice... Loading emacs-lisp/cl-preloaded... Loading obarray... Loading abbrev... Loading simple (native compiled elisp)... Loading help... Loading jka-cmpr-hook... Loading epa-hook... Loading international/mule-cmds (native compiled elisp)... Loading case-table... Loading international/charprop.el (source)... Loading international/characters... Loading international/charscript... Loading composite... Loading language/chinese... Loading language/cyrillic... Loading language/indian... Loading language/sinhala... Loading language/english... Loading language/ethiopic... Loading language/european... Loading language/czech... Loading language/slovak... Loading language/romanian... Loading language/greek... Loading language/hebrew... Loading international/cp51932... Loading international/eucjp-ms... Loading language/japanese... Loading language/korean... Loading language/lao... Loading language/tai-viet... Loading language/thai... Loading language/tibetan... Loading language/vietnamese... Loading language/misc-lang... Loading language/utf-8-lang... Loading language/georgian... Loading language/khmer... Loading language/burmese... Loading language/cham... Loading indent... Loading emacs-lisp/cl-generic (native compiled elisp)... Loading minibuffer (native compiled elisp)... Loading frame... Loading startup (native compiled elisp)... Loading term/tty-colors... Loading font-core... Loading facemenu... Loading emacs-lisp/syntax... Loading font-lock (native compiled elisp)... Loading jit-lock... Loading mouse... Loading scroll-bar... Loading select... Loading emacs-lisp/timer... Loading isearch (native compiled elisp)... Loading rfn-eshadow... Loading menu-bar... Loading tab-bar (native compiled elisp)... Loading emacs-lisp/lisp... Loading textmodes/page... Loading register... Loading textmodes/paragraphs... Loading progmodes/prog-mode... Loading emacs-lisp/lisp-mode... Loading progmodes/elisp-mode (native compiled elisp)... Loading textmodes/text-mode... Loading textmodes/fill... Loading newcomment... Loading replace... Loading emacs-lisp/tabulated-list... Loading buff-menu... Loading fringe... Loading emacs-lisp/regexp-opt... Loading image... Loading international/fontset... Loading dnd... Loading tool-bar... Loading term/common-win... Loading w32-vars... Loading term/w32-win... Loading disp-table... Loading w32-fns (native compiled elisp)... Loading ls-lisp... Loading dos-w32... Loading mwheel... Loading emacs-lisp/float-sup... Loading vc/vc-hooks... Loading vc/ediff-hook... Loading uniquify... Loading electric... Loading emacs-lisp/eldoc (native compiled elisp)... Loading cus-start... Loading tooltip... Loading international/iso-transl... Loading leim/leim-list.el (source)... Waiting for git... Waiting for git... Finding pointers to doc strings... Finding pointers to doc strings...done Pure-hashed: 15274 strings, 3137 vectors, 40839 conses, 2393 bytecodes, 25= 4 others Dumping under the name emacs.pdmp Dumping fingerprint: 6bb003838ab0e4294f190d4cf3dcd2831726c58139a7ccf76a6b1= 0ea3409a011 Dump complete Byte counts: header=3D100 hot=3D7667228 discardable=3D166896 cold=3D397304= 0 Reloc counts: hot=3D432717 discardable=3D5072 Adding name emacs-28.0.50.1.exe Adding name emacs-28.0.50.1.pdmp cp -f emacs.pdmp bootstrap-emacs.pdmp make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/src' make -C lisp all make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' make -C ../leim all EMACS=3D"../src/emacs.exe" make -C ../admin/grammars all EMACS=3D"../../src/emacs.exe" make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/leim' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/leim' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= grammars' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/g= rammars' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' ELC allout-widgets.elc ELC array.elc ELC bookmark.elc ELC cus-edit.elc ELC dired.elc ELC doc-view.elc ELC expand.elc ELC help-fns.elc ELC icomplete.elc ELC ido.elc ELC image-mode.elc ELC info.elc ELC json.elc ELC kmacro.elc ELC server.elc ELC ses.elc ELC term.elc ELC view.elc ELC calc/calc.elc ELC calc/calc-units.elc ELC cedet/ede/generic.elc ELC cedet/semantic/analyze.elc ELC cedet/semantic/db-typecache.elc ELC cedet/semantic/doc.elc ELC cedet/semantic/imenu.elc ELC cedet/semantic/senator.elc ELC cedet/semantic/tag-ls.elc ELC cedet/semantic/util-modes.elc ELC cedet/semantic/bovine/c.elc ELC cedet/semantic/bovine/make.elc ELC emacs-lisp/advice.elc make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' ELC emacs-lisp/elint.elc ELC emacs-lisp/find-func.elc ELC emacs-lisp/gv.elc ELC emacs-lisp/memory-report.elc ELC emacs-lisp/package.elc ELC emacs-lisp/seq.elc ELC emacs-lisp/warnings.elc In toplevel form: ../../emacs/lisp/emacs-lisp/seq.el:395:16: Warning: `seq-contains' is an obsolete generic function (as of 27.1); use `seq-contains-p' instead. ELC emulation/cua-base.elc ELC emulation/edt.elc ELC emulation/viper-init.elc ELC emulation/viper-keym.elc ELC erc/erc-button.elc ELC erc/erc-dcc.elc ELC eshell/em-ls.elc ELC gnus/deuglify.elc ELC gnus/gnus.elc ELC gnus/gnus-art.elc ELC gnus/gnus-group.elc ELC gnus/gnus-registry.elc ELC gnus/gnus-score.elc ELC gnus/gnus-search.elc ELC gnus/gnus-sum.elc ELC gnus/gnus-uu.elc ELC gnus/message.elc ELC gnus/nnmail.elc ELC gnus/nnmh.elc ELC gnus/nntp.elc ELC gnus/nnvirtual.elc ELC international/isearch-x.elc ELC language/ethio-util.elc ELC mail/feedmail.elc ELC mail/rmail.elc make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' ELC mail/rmailsum.elc ELC mh-e/mh-e.elc ELC mh-e/mh-xface.elc ELC net/ange-ftp.elc ELC net/dictionary.elc ELC net/dictionary-connection.elc ELC net/imap.elc ELC net/mailcap.elc ELC net/rcirc.elc ELC net/tramp.elc ELC net/tramp-adb.elc ELC net/tramp-cmds.elc ELC net/tramp-sh.elc ELC nxml/nxml-mode.elc ELC obsolete/landmark.elc ELC obsolete/tls.elc ELC org/ob-abc.elc ELC org/ob-asymptote.elc ELC org/ob-awk.elc ELC org/ob-C.elc ELC org/ob-calc.elc ELC org/ob-clojure.elc ELC org/ob-comint.elc ELC org/ob-coq.elc ELC org/ob-core.elc ELC org/ob-css.elc ELC org/ob-ditaa.elc ELC org/ob-dot.elc ELC org/ob-ebnf.elc ELC org/ob-emacs-lisp.elc ELC org/ob-eval.elc ELC org/ob-exp.elc ELC org/ob-forth.elc ELC org/ob-fortran.elc ELC org/ob-gnuplot.elc ELC org/ob-groovy.elc ELC org/ob-haskell.elc ELC org/ob-hledger.elc ELC org/ob-io.elc ELC org/ob-J.elc ELC org/ob-java.elc ELC org/ob-js.elc ELC org/ob-latex.elc ELC org/ob-ledger.elc ELC org/ob-lilypond.elc ELC org/ob-lisp.elc ELC org/ob-lua.elc ELC org/ob-makefile.elc ELC org/ob-matlab.elc ELC org/ob-maxima.elc ELC org/ob-mscgen.elc ELC org/ob-ocaml.elc ELC org/ob-octave.elc ELC org/ob-org.elc ELC org/ob-perl.elc ELC org/ob-picolisp.elc ELC org/ob-plantuml.elc ELC org/ob-python.elc ELC org/ob-R.elc ELC org/ob-ref.elc ELC org/ob-ruby.elc ELC org/ob-sass.elc ELC org/ob-scheme.elc ELC org/ob-screen.elc ELC org/ob-sed.elc ELC org/ob-shell.elc ELC org/ob-shen.elc ELC org/ob-sql.elc ELC org/ob-sqlite.elc ELC org/ob-stan.elc ELC org/ob-table.elc ELC org/ob-tangle.elc ELC org/ol.elc ELC org/ol-bbdb.elc ELC org/ol-bibtex.elc ELC org/ol-docview.elc ELC org/ol-eshell.elc ELC org/ol-eww.elc ELC org/ol-gnus.elc ELC org/ol-info.elc ELC org/ol-irc.elc ELC org/ol-mhe.elc ELC org/ol-rmail.elc ELC org/org.elc ELC org/org-agenda.elc ELC org/org-archive.elc ELC org/org-attach.elc ELC org/org-capture.elc ELC org/org-clock.elc ELC org/org-colview.elc ELC org/org-compat.elc ELC org/org-crypt.elc ELC org/org-ctags.elc ELC org/org-datetree.elc ELC org/org-duration.elc ELC org/org-element.elc ELC org/org-entities.elc ELC org/org-faces.elc ELC org/org-goto.elc ELC org/org-habit.elc ELC org/org-id.elc ELC org/org-indent.elc ELC org/org-keys.elc ELC org/org-lint.elc ELC org/org-list.elc ELC org/org-macro.elc ELC org/org-macs.elc ELC org/org-mobile.elc ELC org/org-mouse.elc ELC org/org-num.elc ELC org/org-pcomplete.elc ELC org/org-plot.elc ELC org/org-protocol.elc ELC org/org-refile.elc ELC org/org-src.elc ELC org/org-table.elc ELC org/org-tempo.elc ELC org/org-timer.elc ELC org/ox.elc ELC org/ox-ascii.elc ELC org/ox-beamer.elc ELC org/ox-html.elc ELC org/ox-icalendar.elc ELC org/ox-latex.elc ELC org/ox-man.elc ELC org/ox-md.elc ELC org/ox-odt.elc ELC org/ox-org.elc ELC org/ox-publish.elc ELC org/ox-texinfo.elc ELC play/5x5.elc ELC ../../emacs/lisp/progmodes/cc-vars.elc ELC progmodes/cperl-mode.elc ELC progmodes/flymake.elc ELC progmodes/flymake-proc.elc ELC progmodes/gdb-mi.elc ELC progmodes/hideif.elc ELC progmodes/make-mode.elc ELC progmodes/octave.elc ELC progmodes/project.elc ELC progmodes/python.elc ELC progmodes/ruby-mode.elc ELC progmodes/verilog-mode.elc ELC progmodes/which-func.elc ELC textmodes/bibtex.elc ELC ../../emacs/lisp/progmodes/cc-langs.elc ELC ../../emacs/lisp/progmodes/cc-engine.elc In c-add-syntax: ../../emacs/lisp/progmodes/cc-engine.el:12307:35: Warning: reference to fr= ee variable `c-syntactic-context' ../../emacs/lisp/progmodes/cc-engine.el:12307:35: Warning: assignment to f= ree variable `c-syntactic-context' In c-append-syntax: ../../emacs/lisp/progmodes/cc-engine.el:12312:9: Warning: reference to fre= e variable `c-syntactic-context' ../../emacs/lisp/progmodes/cc-engine.el:12312:36: Warning: assignment to f= ree variable `c-syntactic-context' In c-add-stmt-syntax: ../../emacs/lisp/progmodes/cc-engine.el:12542:16: Warning: reference to fr= ee variable `c-syntactic-context' ELC ../../emacs/lisp/progmodes/cc-align.elc ELC ../../emacs/lisp/progmodes/cc-cmds.elc ELC ../../emacs/lisp/progmodes/cc-fonts.elc In c-block-in-arglist-dwim: ../../emacs/lisp/progmodes/cc-align.el:126:24: Warning: reference to free variable `c-syntactic-context' In c-lineup-arglist: ../../emacs/lisp/progmodes/cc-align.el:184:56: Warning: reference to free variable `c-syntactic-element' In c-lineup-argcont: ../../emacs/lisp/progmodes/cc-align.el:226:45: Warning: reference to free variable `c-syntactic-element' In c-lineup-arglist-close-under-paren: ../../emacs/lisp/progmodes/cc-align.el:297:40: Warning: reference to free variable `c-syntactic-element' In c-lineup-close-paren: ../../emacs/lisp/progmodes/cc-align.el:358:40: Warning: reference to free variable `c-syntactic-element' In c-lineup-knr-region-comment: ../../emacs/lisp/progmodes/cc-align.el:685:39: Warning: reference to free variable `c-syntactic-context' In c-lineup-assignments: ../../emacs/lisp/progmodes/cc-align.el:733:46: Warning: reference to free variable `c-syntactic-element' In c-lineup-cascaded-calls: ../../emacs/lisp/progmodes/cc-align.el:842:41: Warning: reference to free variable `c-syntactic-element' In c-lineup-2nd-brace-entry-in-arglist: ../../emacs/lisp/progmodes/cc-align.el:1142:32: Warning: reference to free variable `c-syntactic-context' In c-lineup-class-decl-init-+: ../../emacs/lisp/progmodes/cc-align.el:1185:32: Warning: reference to free variable `c-syntactic-context' In c-lineup-class-decl-init-after-brace: ../../emacs/lisp/progmodes/cc-align.el:1227:32: Warning: reference to free variable `c-syntactic-context' In c-lineup-gcc-asm-reg: ../../emacs/lisp/progmodes/cc-align.el:1358:36: Warning: reference to free variable `c-syntactic-element' In c-snug-do-while: ../../emacs/lisp/progmodes/cc-align.el:1422:50: Warning: reference to free variable `c-syntactic-context' In c-gnu-impose-minimum: ../../emacs/lisp/progmodes/cc-align.el:1448:36: Warning: reference to free variable `c-syntactic-context' ELC ../../emacs/lisp/progmodes/cc-styles.elc ELC ../../emacs/lisp/progmodes/cc-mode.elc ELC ../../emacs/lisp/progmodes/js.elc make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' ELC textmodes/reftex-vars.elc ELC textmodes/rst.elc ELC textmodes/table.elc ELC url/url-proxy.elc ELC vc/ediff-diff.elc ELC vc/ediff-init.elc ELC vc/ediff-merg.elc ELC vc/ediff-mult.elc ELC vc/ediff-wind.elc ELC vc/log-edit.elc ELC vc/smerge-mode.elc ELC vc/vc.elc make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make -C nt all make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/nt' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/nt' make -C lib all make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/lib' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lib' make -C lib-src all make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/lib-sr= c' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lib-src= ' make -C src VCSWITNESS=3D'$(srcdir)/../.git/logs/HEAD' BIN_DESTDIR=3D'/hom= e/cramaph1/emacs-native-comp/dest/bin/' \ ELN_DESTDIR=3D'"/home/cramaph1/emacs-native-comp/dest/lib/emacs/28.0.50/= "' all make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/src' make -C ../nt ../src/emacs.res make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/nt' make[2]: '../src/emacs.res' is up to date. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/nt' make -C ../admin/charsets all make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= charsets' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/c= harsets' make -C ../admin/unidata charscript.el make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= unidata' make[2]: Nothing to be done for 'charscript.el'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/u= nidata' make -C ../admin/unidata all EMACS=3D"../../src/bootstrap-emacs.exe" make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= unidata' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/u= nidata' make -C ../admin/charsets cp51932.el make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= charsets' make[2]: Nothing to be done for 'cp51932.el'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/c= harsets' make -C ../admin/charsets eucjp-ms.el make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= charsets' make[2]: Nothing to be done for 'eucjp-ms.el'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/c= harsets' make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/src' make -C lisp all make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' make -C ../leim all EMACS=3D"../src/emacs.exe" make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/leim' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/leim' make -C ../admin/grammars all EMACS=3D"../../src/emacs.exe" make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/admin/= grammars' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/admin/g= rammars' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Nothing to be done for 'compile-targets'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Nothing to be done for 'compile-targets'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Nothing to be done for 'compile-targets'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/lisp' make[2]: Nothing to be done for 'compile-targets'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lisp' make info-real info-dir make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build' make -C doc/lispref info make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/doc/li= spref' make[2]: Nothing to be done for 'info'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/doc/lis= pref' make -C doc/lispintro info make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/doc/li= spintro' make[2]: Nothing to be done for 'info'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/doc/lis= pintro' make -C doc/emacs info make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/doc/em= acs' make[2]: Nothing to be done for 'info'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/doc/ema= cs' make -C doc/misc info make[2]: Entering directory '/home/cramaph1/emacs-native-comp/build/doc/mi= sc' make[2]: Nothing to be done for 'info'. make[2]: Leaving directory '/home/cramaph1/emacs-native-comp/build/doc/mis= c' make[1]: Nothing to be done for 'info-dir'. make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build' umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/share/= info" unset CDPATH; \ thisdir=3D`/bin/pwd`; \ exp_infodir=3D`cd "/home/cramaph1/emacs-native-comp/dest/share/info" && /b= in/pwd`; \ if [ "`cd ../emacs/info && /bin/pwd`" =3D "$exp_infodir" ]; then \ true; \ else \ [ -f "/home/cramaph1/emacs-native-comp/dest/share/info/dir" ] || \ [ ! -f ../emacs/info/dir ] || \ /usr/bin/install -c -m 644 ../emacs/info/dir "/home/cramaph1/emacs-n= ative-comp/dest/share/info/dir"; \ info_misc=3D`make --no-print-directory -s -C doc/misc echo-info`; \ cd ../emacs/info ; \ for elt in emacs.info eintr.info elisp.info ${info_misc}; do \ test "yes" =3D "no" && test ! -f $elt && continue; \ for f in `ls $elt $elt-[1-9] $elt-[1-9][0-9] 2>/dev/null`; do \ (cd "${thisdir}"; \ /usr/bin/install -c -m 644 ../emacs/info/$f "/home/cramaph1/emacs-= native-comp/dest/share/info/$f"); \ [ -n "" ] || continue ; \ rm -f "/home/cramaph1/emacs-native-comp/dest/share/info/$f.gz"; \ -9n "/home/cramaph1/emacs-native-comp/dest/share/info/$f"; \ done; \ (cd "${thisdir}"; \ /usr/bin/install-info --info-dir=3D"/home/cramaph1/emacs-native-comp= /dest/share/info" "/home/cramaph1/emacs-native-comp/dest/share/info/$elt")= ; \ done; \ fi umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/share/= man/man1" thisdir=3D`/bin/pwd`; \ cd ../emacs/doc/man; \ for page in *.1; do \ test "$page" =3D ChangeLog.1 && continue; \ dest=3D`echo "${page}" | sed -e 's/\.1$//' -e 's,x,x,'`.1; \ (cd "${thisdir}"; \ /usr/bin/install -c -m 644 ../emacs/doc/man/${page} "/home/cramaph1/ema= cs-native-comp/dest/share/man/man1/${dest}"); \ [ -n "" ] || continue ; \ rm -f "/home/cramaph1/emacs-native-comp/dest/share/man/man1/${dest}.gz";= \ -9n "/home/cramaph1/emacs-native-comp/dest/share/man/man1/${dest}" || t= rue; \ done umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/share/= applications" tmp=3Detc/emacs.tmpdesktop; rm -f ${tmp}; \ sed -e "/^Exec=3Demacs/ s/emacs/`echo emacs | sed 's,x,x,'`/" \ -e "/^Icon=3Demacs/ s/emacs/`echo emacs | sed 's,x,x,'`/" \ ../emacs/etc/emacs.desktop > ${tmp}; \ /usr/bin/install -c -m 644 ${tmp} "/home/cramaph1/emacs-native-comp/dest/s= hare/applications/`echo emacs | sed 's,x,x,'`.desktop"; \ rm -f ${tmp} tmp=3Detc/emacsclient.tmpdesktop; rm -f ${tmp}; \ client_name=3D`echo emacsclient | sed 's,x,x,'`.exe; \ sed -e "/^Exec=3Demacsclient/ s|emacsclient|/home/cramaph1/emacs-native-co= mp/dest/bin/${client_name}|" \ -e "/^Icon=3Demacs/ s/emacs/`echo emacs | sed 's,x,x,'`/" \ ../emacs/etc/emacsclient.desktop > ${tmp}; \ /usr/bin/install -c -m 644 ${tmp} "/home/cramaph1/emacs-native-comp/dest/s= hare/applications/${client_name}.desktop"; \ rm -f ${tmp} umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/share/= metainfo" tmp=3Detc/emacs.tmpappdata; rm -f ${tmp}; \ sed -e "s/emacs\.desktop/`echo emacs | sed 's,x,x,'`.desktop/" \ ../emacs/etc/emacs.appdata.xml > ${tmp}; \ /usr/bin/install -c -m 644 ${tmp} "/home/cramaph1/emacs-native-comp/dest/s= hare/metainfo/`echo emacs | sed 's,x,x,'`.appdata.xml"; \ rm -f ${tmp} umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/lib/sy= stemd/user" tmp=3Detc/emacs.tmpservice; rm -f ${tmp}; \ client_name=3D`echo emacsclient | sed 's,x,x,'`.exe; \ sed -e '/^##/d' \ -e "/^Documentation/ s/emacs(1)/`echo emacs | sed 's,x,x,'`(1)/" \ -e "/^ExecStart/ s|emacs|/home/cramaph1/emacs-native-comp/dest/bin/`echo= emacs | sed 's,x,x,'`.exe|" \ -e "/^ExecStop/ s|emacsclient|/home/cramaph1/emacs-native-comp/dest/bin/= ${client_name}|" \ ../emacs/etc/emacs.service > ${tmp}; \ /usr/bin/install -c -m 644 ${tmp} "/home/cramaph1/emacs-native-comp/dest/l= ib/systemd/user/`echo emacs | sed 's,x,x,'`.service"; \ rm -f ${tmp} thisdir=3D`/bin/pwd`; \ cd ../emacs/etc/images/icons || exit 1; umask 022 ; \ for dir in */*/apps */*/mimetypes; do \ [ -d ${dir} ] || continue ; \ ( cd "${thisdir}"; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/d= est/share/icons/${dir}" ) ; \ for icon in ${dir}/emacs[.-]*; do \ [ -r ${icon} ] || continue ; \ ext=3D`echo "${icon}" | sed -e 's|.*\.||'`; \ dest=3D`echo "${icon}" | sed -e 's|.*/||' -e "s|\\.${ext}\$||" -e 's/e= macs/emacs/' -e 's,x,x,'`.${ext} ; \ ( cd "${thisdir}"; \ /usr/bin/install -c -m 644 ../emacs/etc/images/icons/${icon} "/home/= cramaph1/emacs-native-comp/dest/share/icons/${dir}/${dest}" ) \ || exit 1; \ done ; \ done umask 022 && /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/incl= ude" /usr/bin/install -c -m 644 src/emacs-module.h "/home/cramaph1/emacs-native= -comp/dest/include/emacs-module.h" set "/home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.50/etc" "/home= /cramaph1/emacs-native-comp/dest/share/emacs/28.0.50/lisp" ; \ unset CDPATH; \ for installuser in ${LOGNAME} ${USERNAME} ${USER} `(id -u) 2> /dev/null`; = do [ -n "${installuser}" ] && break ; done; installgroup=3D`(id -g) 2>/dev= /null` && [ -n "$installgroup" ] && installuser=3D$installuser:$installgro= up; \ for dir in ../emacs/etc ../emacs/lisp ; do \ [ -d ${dir} ] || exit 1 ; \ dest=3D"$1" ; shift ; \ if [ -d "${dest}" ]; then \ exp_dest=3D`cd "${dest}" && /bin/pwd`; \ [ "$exp_dest" =3D "`cd ${dir} && /bin/pwd`" ] && continue ; \ else true; \ fi; \ rm -rf "${dest}" ; \ umask 022; /usr/bin/mkdir -p "${dest}" ; \ printf 'Copying %s to %s...\n' "$dir" "$dest" ; \ (cd ${dir}; tar -chf - . ) \ | (cd "${dest}"; umask 022; \ tar -xvf - && cat > /dev/null) || exit 1; \ if [ "${dir}" =3D "../emacs/etc" ]; then \ rm -f "${dest}/DOC"* ; \ rm -f "${dest}/refcards"/*.aux "${dest}/refcards"/*.dvi; \ rm -f "${dest}/refcards"/*.log "${dest}/refcards"/*.in; \ else true; \ fi; \ (cd "${dest}" || exit 1; \ for subdir in `find . -type d -print` ; do \ chmod a+rx ${subdir} ; \ rm -f ${subdir}/.gitignore ; \ rm -f ${subdir}/.arch-inventory ; \ rm -f ${subdir}/.DS_Store ; \ rm -f ${subdir}/#* ; \ rm -f ${subdir}/.#* ; \ rm -f ${subdir}/*~ ; \ rm -f ${subdir}/*.orig ; \ rm -f ${subdir}/ChangeLog* ; \ [ "${dir}" !=3D "../emacs/etc" ] && \ rm -f ${subdir}/[mM]akefile*[.-]in ${subdir}/[mM]akefile ; \ done ); \ find "${dest}" -exec chown ${installuser} {} ';' ;\ done Copying ../emacs/etc to /home/cramaph1/emacs-native-comp/dest/share/emacs/= 28.0.50/etc... ./ ./AUTHORS ./CALC-NEWS ./ChangeLog.1 ./charsets/ ./charsets/8859-10.map ./charsets/8859-11.map ./charsets/8859-13.map ./charsets/8859-14.map ./charsets/8859-15.map ./charsets/8859-16.map ./charsets/8859-2.map ./charsets/8859-3.map ./charsets/8859-4.map ./charsets/8859-5.map ./charsets/8859-6.map ./charsets/8859-7.map ./charsets/8859-8.map ./charsets/8859-9.map ./charsets/ALTERNATIVNYJ.map ./charsets/BIG5-1.map ./charsets/BIG5-2.map ./charsets/BIG5-HKSCS.map ./charsets/BIG5.map ./charsets/CNS-1.map ./charsets/CNS-2.map ./charsets/CNS-3.map ./charsets/CNS-4.map ./charsets/CNS-5.map ./charsets/CNS-6.map ./charsets/CNS-7.map ./charsets/CNS-F.map ./charsets/CP10007.map ./charsets/CP1125.map ./charsets/CP1250.map ./charsets/CP1251.map ./charsets/CP1252.map ./charsets/CP1253.map ./charsets/CP1254.map ./charsets/CP1255.map ./charsets/CP1256.map ./charsets/CP1257.map ./charsets/CP1258.map ./charsets/CP720.map ./charsets/CP737.map ./charsets/CP775.map ./charsets/CP858.map ./charsets/CP932-2BYTE.map ./charsets/CP949-2BYTE.map ./charsets/EBCDICUK.map ./charsets/EBCDICUS.map ./charsets/GB180302.map ./charsets/GB180304.map ./charsets/GB2312.map ./charsets/GBK.map ./charsets/HP-ROMAN8.map ./charsets/IBM037.map ./charsets/IBM038.map ./charsets/IBM1004.map ./charsets/IBM1026.map ./charsets/IBM1047.map ./charsets/IBM256.map ./charsets/IBM273.map ./charsets/IBM274.map ./charsets/IBM275.map ./charsets/IBM277.map ./charsets/IBM278.map ./charsets/IBM280.map ./charsets/IBM281.map ./charsets/IBM284.map ./charsets/IBM285.map ./charsets/IBM290.map ./charsets/IBM297.map ./charsets/IBM420.map ./charsets/IBM423.map ./charsets/IBM424.map ./charsets/IBM437.map ./charsets/IBM500.map ./charsets/IBM850.map ./charsets/IBM851.map ./charsets/IBM852.map ./charsets/IBM855.map ./charsets/IBM856.map ./charsets/IBM857.map ./charsets/IBM860.map ./charsets/IBM861.map ./charsets/IBM862.map ./charsets/IBM863.map ./charsets/IBM864.map ./charsets/IBM865.map ./charsets/IBM866.map ./charsets/IBM868.map ./charsets/IBM869.map ./charsets/IBM870.map ./charsets/IBM871.map ./charsets/IBM874.map ./charsets/IBM875.map ./charsets/IBM880.map ./charsets/IBM891.map ./charsets/IBM903.map ./charsets/IBM904.map ./charsets/IBM905.map ./charsets/IBM918.map ./charsets/JISC6226.map ./charsets/JISX0201.map ./charsets/JISX0208.map ./charsets/JISX0212.map ./charsets/JISX2131.map ./charsets/JISX2132.map ./charsets/JISX213A.map ./charsets/JOHAB.map ./charsets/KA-ACADEMY.map ./charsets/KA-PS.map ./charsets/KOI-8.map ./charsets/KOI8-R.map ./charsets/KOI8-T.map ./charsets/KOI8-U.map ./charsets/KSC5601.map ./charsets/KSC5636.map ./charsets/MACINTOSH.map ./charsets/MIK.map ./charsets/MULE-ethiopic.map ./charsets/MULE-ipa.map ./charsets/MULE-is13194.map ./charsets/MULE-lviscii.map ./charsets/MULE-sisheng.map ./charsets/MULE-tibetan.map ./charsets/MULE-uviscii.map ./charsets/NEXTSTEP.map ./charsets/PTCP154.map ./charsets/README ./charsets/stdenc.map ./charsets/symbol.map ./charsets/TIS-620.map ./charsets/VISCII.map ./charsets/VSCII-2.map ./charsets/VSCII.map ./compilation.txt ./COPYING ./DEBUG ./DEVEL.HUMOR ./DISTRIB ./e/ ./e/eterm-color ./e/eterm-color.ti ./e/README ./edt-user.el ./emacs-buffer.gdb ./emacs-mail.desktop ./emacs.appdata.xml ./emacs.desktop ./emacs.icon ./emacs.service ./emacsclient.desktop ./enriched.txt ./ERC-NEWS ./ETAGS.EBNF ./ETAGS.README ./forms/ ./forms/forms-d2.dat ./forms/forms-d2.el ./forms/forms-pass.el ./forms/README ./future-bug ./gnus/ ./gnus/gnus-setup.ast ./gnus/news-server.ast ./gnus-tut.txt ./grep.txt ./HELLO ./HISTORY ./images/ ./images/attach.pbm ./images/attach.xpm ./images/back-arrow.pbm ./images/back-arrow.xpm ./images/bookmark_add.pbm ./images/bookmark_add.xpm ./images/cancel.pbm ./images/cancel.xpm ./images/checked.xpm ./images/close.pbm ./images/close.xpm ./images/connect.pbm ./images/connect.xpm ./images/contact.pbm ./images/contact.xpm ./images/copy.pbm ./images/copy.xpm ./images/custom/ ./images/custom/down-pushed.pbm ./images/custom/down-pushed.xpm ./images/custom/down.pbm ./images/custom/down.xpm ./images/custom/README ./images/custom/right-pushed.pbm ./images/custom/right-pushed.xpm ./images/custom/right.pbm ./images/custom/right.xpm ./images/cut.pbm ./images/cut.xpm ./images/data-save.pbm ./images/data-save.xpm ./images/delete.pbm ./images/delete.xpm ./images/describe.pbm ./images/describe.xpm ./images/diropen.pbm ./images/diropen.xpm ./images/disconnect.pbm ./images/disconnect.xpm ./images/exit.pbm ./images/exit.xpm ./images/ezimage/ ./images/ezimage/bits.pbm ./images/ezimage/bits.xpm ./images/ezimage/bitsbang.pbm ./images/ezimage/bitsbang.xpm ./images/ezimage/box-minus.pbm ./images/ezimage/box-minus.xpm ./images/ezimage/box-plus.pbm ./images/ezimage/box-plus.xpm ./images/ezimage/box.pbm ./images/ezimage/box.xpm ./images/ezimage/checkmark.pbm ./images/ezimage/checkmark.xpm ./images/ezimage/dir-minus.pbm ./images/ezimage/dir-minus.xpm ./images/ezimage/dir-plus.pbm ./images/ezimage/dir-plus.xpm ./images/ezimage/dir.pbm ./images/ezimage/dir.xpm ./images/ezimage/doc-minus.pbm ./images/ezimage/doc-minus.xpm ./images/ezimage/doc-plus.pbm ./images/ezimage/doc-plus.xpm ./images/ezimage/doc.pbm ./images/ezimage/doc.xpm ./images/ezimage/info.pbm ./images/ezimage/info.xpm ./images/ezimage/key.pbm ./images/ezimage/key.xpm ./images/ezimage/label.pbm ./images/ezimage/label.xpm ./images/ezimage/lock.pbm ./images/ezimage/lock.xpm ./images/ezimage/mail.pbm ./images/ezimage/mail.xpm ./images/ezimage/page-minus.pbm ./images/ezimage/page-minus.xpm ./images/ezimage/page-plus.pbm ./images/ezimage/page-plus.xpm ./images/ezimage/page.pbm ./images/ezimage/page.xpm ./images/ezimage/README ./images/ezimage/tag-gt.pbm ./images/ezimage/tag-gt.xpm ./images/ezimage/tag-minus.pbm ./images/ezimage/tag-minus.xpm ./images/ezimage/tag-plus.pbm ./images/ezimage/tag-plus.xpm ./images/ezimage/tag-type.pbm ./images/ezimage/tag-type.xpm ./images/ezimage/tag-v.pbm ./images/ezimage/tag-v.xpm ./images/ezimage/tag.pbm ./images/ezimage/tag.xpm ./images/ezimage/unlock.pbm ./images/ezimage/unlock.xpm ./images/fwd-arrow.pbm ./images/fwd-arrow.xpm ./images/gnus/ ./images/gnus/catchup.pbm ./images/gnus/catchup.xpm ./images/gnus/cu-exit.pbm ./images/gnus/cu-exit.xpm ./images/gnus/describe-group.pbm ./images/gnus/describe-group.xpm ./images/gnus/exit-gnus.pbm ./images/gnus/exit-gnus.xpm ./images/gnus/exit-summ.pbm ./images/gnus/exit-summ.xpm ./images/gnus/followup.pbm ./images/gnus/followup.xpm ./images/gnus/fuwo.pbm ./images/gnus/fuwo.xpm ./images/gnus/get-news.pbm ./images/gnus/get-news.xpm ./images/gnus/gnntg.pbm ./images/gnus/gnntg.xpm ./images/gnus/gnus-pointer.xbm ./images/gnus/gnus-pointer.xpm ./images/gnus/gnus.png ./images/gnus/gnus.svg ./images/gnus/gnus.xbm ./images/gnus/gnus.xpm ./images/gnus/important.pbm ./images/gnus/important.xpm ./images/gnus/kill-group.pbm ./images/gnus/kill-group.xpm ./images/gnus/mail-reply.pbm ./images/gnus/mail-reply.xpm ./images/gnus/mail-send.pbm ./images/gnus/mail-send.xpm ./images/gnus/next-ur.pbm ./images/gnus/next-ur.xpm ./images/gnus/post.pbm ./images/gnus/post.xpm ./images/gnus/prev-ur.pbm ./images/gnus/prev-ur.xpm ./images/gnus/preview.xbm ./images/gnus/preview.xpm ./images/gnus/README ./images/gnus/receipt.pbm ./images/gnus/receipt.xpm ./images/gnus/reply-wo.pbm ./images/gnus/reply-wo.xpm ./images/gnus/reply.pbm ./images/gnus/reply.xpm ./images/gnus/rot13.pbm ./images/gnus/rot13.xpm ./images/gnus/save-aif.pbm ./images/gnus/save-aif.xpm ./images/gnus/save-art.pbm ./images/gnus/save-art.xpm ./images/gnus/subscribe.pbm ./images/gnus/subscribe.xpm ./images/gnus/toggle-subscription.pbm ./images/gnus/toggle-subscription.xpm ./images/gnus/unimportant.pbm ./images/gnus/unimportant.xpm ./images/gnus/unsubscribe.pbm ./images/gnus/unsubscribe.xpm ./images/gnus/uu-decode.pbm ./images/gnus/uu-decode.xpm ./images/gnus/uu-post.pbm ./images/gnus/uu-post.xpm ./images/gnus.pbm ./images/gud/ ./images/gud/all.pbm ./images/gud/all.xpm ./images/gud/break.pbm ./images/gud/break.xpm ./images/gud/cont.pbm ./images/gud/cont.xpm ./images/gud/down.pbm ./images/gud/down.xpm ./images/gud/finish.pbm ./images/gud/finish.xpm ./images/gud/go.pbm ./images/gud/go.xpm ./images/gud/next.pbm ./images/gud/next.xpm ./images/gud/nexti.pbm ./images/gud/nexti.xpm ./images/gud/pp.pbm ./images/gud/pp.xpm ./images/gud/print.pbm ./images/gud/print.xpm ./images/gud/pstar.pbm ./images/gud/pstar.xpm ./images/gud/rcont.pbm ./images/gud/rcont.xpm ./images/gud/README ./images/gud/recstart.pbm ./images/gud/recstart.xpm ./images/gud/recstop.pbm ./images/gud/recstop.xpm ./images/gud/remove.pbm ./images/gud/remove.xpm ./images/gud/rfinish.pbm ./images/gud/rfinish.xpm ./images/gud/rnext.pbm ./images/gud/rnext.xpm ./images/gud/rnexti.pbm ./images/gud/rnexti.xpm ./images/gud/rstep.pbm ./images/gud/rstep.xpm ./images/gud/rstepi.pbm ./images/gud/rstepi.xpm ./images/gud/run.pbm ./images/gud/run.xpm ./images/gud/step.pbm ./images/gud/step.xpm ./images/gud/stepi.pbm ./images/gud/stepi.xpm ./images/gud/stop.pbm ./images/gud/stop.xpm ./images/gud/thread.pbm ./images/gud/thread.xpm ./images/gud/until.pbm ./images/gud/until.xpm ./images/gud/up.pbm ./images/gud/up.xpm ./images/gud/watch.pbm ./images/gud/watch.xpm ./images/help.pbm ./images/help.xpm ./images/home.pbm ./images/home.xpm ./images/icons/ ./images/icons/allout-widgets/ ./images/icons/allout-widgets/dark-bg/ ./images/icons/allout-widgets/dark-bg/closed.png ./images/icons/allout-widgets/dark-bg/closed.xpm ./images/icons/allout-widgets/dark-bg/empty.png ./images/icons/allout-widgets/dark-bg/empty.xpm ./images/icons/allout-widgets/dark-bg/end-connector.png ./images/icons/allout-widgets/dark-bg/end-connector.xpm ./images/icons/allout-widgets/dark-bg/extender-connector.png ./images/icons/allout-widgets/dark-bg/extender-connector.xpm ./images/icons/allout-widgets/dark-bg/leaf.png ./images/icons/allout-widgets/dark-bg/leaf.xpm ./images/icons/allout-widgets/dark-bg/locked-encrypted.png ./images/icons/allout-widgets/dark-bg/locked-encrypted.xpm ./images/icons/allout-widgets/dark-bg/mid-connector.png ./images/icons/allout-widgets/dark-bg/mid-connector.xpm ./images/icons/allout-widgets/dark-bg/opened.png ./images/icons/allout-widgets/dark-bg/opened.xpm ./images/icons/allout-widgets/dark-bg/skip-descender.png ./images/icons/allout-widgets/dark-bg/skip-descender.xpm ./images/icons/allout-widgets/dark-bg/through-descender.png ./images/icons/allout-widgets/dark-bg/through-descender.xpm ./images/icons/allout-widgets/dark-bg/unlocked-encrypted.png ./images/icons/allout-widgets/dark-bg/unlocked-encrypted.xpm ./images/icons/allout-widgets/light-bg/ ./images/icons/allout-widgets/light-bg/closed.png ./images/icons/allout-widgets/light-bg/closed.xpm ./images/icons/allout-widgets/light-bg/empty.png ./images/icons/allout-widgets/light-bg/empty.xpm ./images/icons/allout-widgets/light-bg/end-connector.png ./images/icons/allout-widgets/light-bg/end-connector.xpm ./images/icons/allout-widgets/light-bg/extender-connector.png ./images/icons/allout-widgets/light-bg/extender-connector.xpm ./images/icons/allout-widgets/light-bg/leaf.png ./images/icons/allout-widgets/light-bg/leaf.xpm ./images/icons/allout-widgets/light-bg/locked-encrypted.png ./images/icons/allout-widgets/light-bg/locked-encrypted.xpm ./images/icons/allout-widgets/light-bg/mid-connector.png ./images/icons/allout-widgets/light-bg/mid-connector.xpm ./images/icons/allout-widgets/light-bg/opened.png ./images/icons/allout-widgets/light-bg/opened.xpm ./images/icons/allout-widgets/light-bg/skip-descender.png ./images/icons/allout-widgets/light-bg/skip-descender.xpm ./images/icons/allout-widgets/light-bg/through-descender.png ./images/icons/allout-widgets/light-bg/through-descender.xpm ./images/icons/allout-widgets/light-bg/unlocked-encrypted.png ./images/icons/allout-widgets/light-bg/unlocked-encrypted.xpm ./images/icons/hicolor/ ./images/icons/hicolor/128x128/ ./images/icons/hicolor/128x128/apps/ ./images/icons/hicolor/128x128/apps/emacs.png ./images/icons/hicolor/128x128/apps/emacs23.png ./images/icons/hicolor/16x16/ ./images/icons/hicolor/16x16/apps/ ./images/icons/hicolor/16x16/apps/emacs.png ./images/icons/hicolor/16x16/apps/emacs22.png ./images/icons/hicolor/16x16/apps/emacs23.png ./images/icons/hicolor/24x24/ ./images/icons/hicolor/24x24/apps/ ./images/icons/hicolor/24x24/apps/emacs.png ./images/icons/hicolor/24x24/apps/emacs22.png ./images/icons/hicolor/24x24/apps/emacs23.png ./images/icons/hicolor/32x32/ ./images/icons/hicolor/32x32/apps/ ./images/icons/hicolor/32x32/apps/emacs.png ./images/icons/hicolor/32x32/apps/emacs22.png ./images/icons/hicolor/32x32/apps/emacs23.png ./images/icons/hicolor/48x48/ ./images/icons/hicolor/48x48/apps/ ./images/icons/hicolor/48x48/apps/emacs.png ./images/icons/hicolor/48x48/apps/emacs22.png ./images/icons/hicolor/48x48/apps/emacs23.png ./images/icons/hicolor/scalable/ ./images/icons/hicolor/scalable/apps/ ./images/icons/hicolor/scalable/apps/emacs.ico ./images/icons/hicolor/scalable/apps/emacs.svg ./images/icons/hicolor/scalable/apps/emacs23.svg ./images/icons/hicolor/scalable/mimetypes/ ./images/icons/hicolor/scalable/mimetypes/emacs-document.svg ./images/icons/hicolor/scalable/mimetypes/emacs-document23.svg ./images/icons/README ./images/index.pbm ./images/index.xpm ./images/info.pbm ./images/info.xpm ./images/jump-to.pbm ./images/jump-to.xpm ./images/left-arrow.pbm ./images/left-arrow.xpm ./images/letter.pbm ./images/letter.xpm ./images/lock-broken.pbm ./images/lock-broken.xpm ./images/lock-ok.pbm ./images/lock-ok.xpm ./images/lock.pbm ./images/lock.xpm ./images/low-color/ ./images/low-color/back-arrow.xpm ./images/low-color/copy.xpm ./images/low-color/cut.xpm ./images/low-color/fwd-arrow.xpm ./images/low-color/help.xpm ./images/low-color/home.xpm ./images/low-color/index.xpm ./images/low-color/jump-to.xpm ./images/low-color/left-arrow.xpm ./images/low-color/new.xpm ./images/low-color/next-node.xpm ./images/low-color/open.xpm ./images/low-color/paste.xpm ./images/low-color/preferences.xpm ./images/low-color/prev-node.xpm ./images/low-color/print.xpm ./images/low-color/README ./images/low-color/right-arrow.xpm ./images/low-color/save.xpm ./images/low-color/saveas.xpm ./images/low-color/search.xpm ./images/low-color/spell.xpm ./images/low-color/undo.xpm ./images/low-color/up-arrow.xpm ./images/low-color/up-node.xpm ./images/mail/ ./images/mail/compose.pbm ./images/mail/compose.xpm ./images/mail/copy.pbm ./images/mail/copy.xpm ./images/mail/flag-for-followup.pbm ./images/mail/flag-for-followup.xpm ./images/mail/forward.pbm ./images/mail/forward.xpm ./images/mail/inbox.pbm ./images/mail/inbox.xpm ./images/mail/move.pbm ./images/mail/move.xpm ./images/mail/not-spam.pbm ./images/mail/not-spam.xpm ./images/mail/outbox.pbm ./images/mail/outbox.xpm ./images/mail/preview.pbm ./images/mail/preview.xpm ./images/mail/README ./images/mail/repack.pbm ./images/mail/repack.xpm ./images/mail/reply-all.pbm ./images/mail/reply-all.xpm ./images/mail/reply-from.pbm ./images/mail/reply-from.xpm ./images/mail/reply-to.pbm ./images/mail/reply-to.xpm ./images/mail/reply.pbm ./images/mail/reply.xpm ./images/mail/save-draft.pbm ./images/mail/save-draft.xpm ./images/mail/save.xpm ./images/mail/send.pbm ./images/mail/send.xpm ./images/mail/spam.xpm ./images/mh-logo.pbm ./images/mh-logo.xpm ./images/mpc/ ./images/mpc/add.pbm ./images/mpc/add.xpm ./images/mpc/ffwd.pbm ./images/mpc/ffwd.xpm ./images/mpc/next.pbm ./images/mpc/next.xpm ./images/mpc/pause.pbm ./images/mpc/pause.xpm ./images/mpc/play.pbm ./images/mpc/play.xpm ./images/mpc/prev.pbm ./images/mpc/prev.xpm ./images/mpc/README ./images/mpc/rewind.pbm ./images/mpc/rewind.xpm ./images/mpc/stop.pbm ./images/mpc/stop.xpm ./images/new.pbm ./images/new.xpm ./images/newsticker/ ./images/newsticker/browse-url.xpm ./images/newsticker/get-all.xpm ./images/newsticker/mark-immortal.xpm ./images/newsticker/mark-read.xpm ./images/newsticker/narrow.xpm ./images/newsticker/next-feed.xpm ./images/newsticker/next-item.xpm ./images/newsticker/prev-feed.xpm ./images/newsticker/prev-item.xpm ./images/newsticker/README ./images/newsticker/rss-feed.png ./images/newsticker/rss-feed.svg ./images/newsticker/update.xpm ./images/next-node.pbm ./images/next-node.xpm ./images/next-page.pbm ./images/next-page.xpm ./images/open.pbm ./images/open.xpm ./images/paste.pbm ./images/paste.xpm ./images/preferences.pbm ./images/preferences.xpm ./images/prev-node.pbm ./images/prev-node.xpm ./images/print.pbm ./images/print.xpm ./images/README ./images/redo.pbm ./images/redo.xpm ./images/refresh.pbm ./images/refresh.xpm ./images/right-arrow.pbm ./images/right-arrow.xpm ./images/save.pbm ./images/save.xpm ./images/saveas.pbm ./images/saveas.xpm ./images/search-replace.pbm ./images/search-replace.xpm ./images/search.pbm ./images/search.xpm ./images/separator.pbm ./images/separator.xpm ./images/show.pbm ./images/show.xpm ./images/smilies/ ./images/smilies/blink.pbm ./images/smilies/blink.xpm ./images/smilies/braindamaged.pbm ./images/smilies/braindamaged.xpm ./images/smilies/cry.pbm ./images/smilies/cry.xpm ./images/smilies/dead.pbm ./images/smilies/dead.xpm ./images/smilies/evil.pbm ./images/smilies/evil.xpm ./images/smilies/forced.pbm ./images/smilies/forced.xpm ./images/smilies/frown.pbm ./images/smilies/frown.xpm ./images/smilies/grayscale/ ./images/smilies/grayscale/blink.xpm ./images/smilies/grayscale/braindamaged.xpm ./images/smilies/grayscale/cry.xpm ./images/smilies/grayscale/dead.xpm ./images/smilies/grayscale/evil.xpm ./images/smilies/grayscale/forced.xpm ./images/smilies/grayscale/frown.xpm ./images/smilies/grayscale/grin.xpm ./images/smilies/grayscale/indifferent.xpm ./images/smilies/grayscale/README ./images/smilies/grayscale/reverse-smile.xpm ./images/smilies/grayscale/sad.xpm ./images/smilies/grayscale/smile.xpm ./images/smilies/grayscale/wry.xpm ./images/smilies/grin.pbm ./images/smilies/grin.xpm ./images/smilies/indifferent.pbm ./images/smilies/indifferent.xpm ./images/smilies/medium/ ./images/smilies/medium/blink.xpm ./images/smilies/medium/braindamaged.xpm ./images/smilies/medium/cry.xpm ./images/smilies/medium/dead.xpm ./images/smilies/medium/evil.xpm ./images/smilies/medium/forced.xpm ./images/smilies/medium/frown.xpm ./images/smilies/medium/grin.xpm ./images/smilies/medium/indifferent.xpm ./images/smilies/medium/README ./images/smilies/medium/reverse-smile.xpm ./images/smilies/medium/sad.xpm ./images/smilies/medium/smile.xpm ./images/smilies/medium/wry.xpm ./images/smilies/README ./images/smilies/sad.pbm ./images/smilies/sad.xpm ./images/smilies/smile.pbm ./images/smilies/smile.xpm ./images/smilies/wry.pbm ./images/smilies/wry.xpm ./images/sort-ascending.pbm ./images/sort-ascending.xpm ./images/sort-column-ascending.pbm ./images/sort-column-ascending.xpm ./images/sort-criteria.pbm ./images/sort-criteria.xpm ./images/sort-descending.pbm ./images/sort-descending.xpm ./images/sort-row-ascending.pbm ./images/sort-row-ascending.xpm ./images/spell.pbm ./images/spell.xpm ./images/splash.bmp ./images/splash.pbm ./images/splash.png ./images/splash.svg ./images/splash.xpm ./images/tabs/ ./images/tabs/close.xpm ./images/tabs/left-arrow.xpm ./images/tabs/new.xpm ./images/tabs/README ./images/tabs/right-arrow.xpm ./images/tree-widget/ ./images/tree-widget/default/ ./images/tree-widget/default/close.png ./images/tree-widget/default/close.xpm ./images/tree-widget/default/empty.png ./images/tree-widget/default/empty.xpm ./images/tree-widget/default/end-guide.png ./images/tree-widget/default/end-guide.xpm ./images/tree-widget/default/guide.png ./images/tree-widget/default/guide.xpm ./images/tree-widget/default/handle.png ./images/tree-widget/default/handle.xpm ./images/tree-widget/default/leaf.png ./images/tree-widget/default/leaf.xpm ./images/tree-widget/default/no-guide.png ./images/tree-widget/default/no-guide.xpm ./images/tree-widget/default/no-handle.png ./images/tree-widget/default/no-handle.xpm ./images/tree-widget/default/open.png ./images/tree-widget/default/open.xpm ./images/tree-widget/default/README ./images/tree-widget/folder/ ./images/tree-widget/folder/close.png ./images/tree-widget/folder/close.xpm ./images/tree-widget/folder/empty.png ./images/tree-widget/folder/empty.xpm ./images/tree-widget/folder/end-guide.png ./images/tree-widget/folder/end-guide.xpm ./images/tree-widget/folder/guide.png ./images/tree-widget/folder/guide.xpm ./images/tree-widget/folder/handle.png ./images/tree-widget/folder/handle.xpm ./images/tree-widget/folder/leaf.png ./images/tree-widget/folder/leaf.xpm ./images/tree-widget/folder/no-guide.png ./images/tree-widget/folder/no-guide.xpm ./images/tree-widget/folder/no-handle.png ./images/tree-widget/folder/no-handle.xpm ./images/tree-widget/folder/open.png ./images/tree-widget/folder/open.xpm ./images/tree-widget/folder/README ./images/unchecked.pbm ./images/unchecked.xpm ./images/undo.pbm ./images/undo.xpm ./images/up-arrow.pbm ./images/up-arrow.xpm ./images/up-node.pbm ./images/up-node.xpm ./images/zoom-in.pbm ./images/zoom-in.xpm ./images/zoom-out.pbm ./images/zoom-out.xpm ./JOKES ./MACHINES ./MH-E-NEWS ./NEWS ./NEWS.1-17 ./NEWS.18 ./NEWS.19 ./NEWS.20 ./NEWS.21 ./NEWS.22 ./NEWS.23 ./NEWS.24 ./NEWS.25 ./NEWS.26 ./NEWS.27 ./NEXTSTEP ./nxml/ ./nxml/README ./nxml/test-invalid.xml ./nxml/test-valid.xml ./NXML-NEWS ./org/ ./org/OrgOdtContentTemplate.xml ./org/OrgOdtStyles.xml ./org/README ./ORG-NEWS ./package-keyring.gpg ./PROBLEMS ./ps-prin0.ps ./ps-prin1.ps ./publicsuffix.txt ./README ./refcards/ ./refcards/calccard.tex ./refcards/cs-dired-ref.tex ./refcards/cs-refcard.tex ./refcards/cs-survival.tex ./refcards/de-refcard.tex ./refcards/dired-ref.tex ./refcards/emacsver.tex ./refcards/emacsver.tex.in ./refcards/fr-dired-ref.tex ./refcards/fr-refcard.tex ./refcards/fr-survival.tex ./refcards/gnus-logo.eps ./refcards/gnus-logo.pdf ./refcards/gnus-refcard.tex ./refcards/Makefile ./refcards/orgcard.tex ./refcards/pdflayout.sty ./refcards/pl-refcard.tex ./refcards/pt-br-refcard.tex ./refcards/README ./refcards/refcard.tex ./refcards/ru-refcard.tex ./refcards/sk-dired-ref.tex ./refcards/sk-refcard.tex ./refcards/sk-survival.tex ./refcards/survival.tex ./refcards/vipcard.tex ./refcards/viperCard.tex ./rgb.txt ./schema/ ./schema/calstbl.rnc ./schema/dbcalstbl.rnc ./schema/dbhier.rnc ./schema/dbnotn.rnc ./schema/dbpool.rnc ./schema/dbstart.rnc ./schema/docbook.rnc ./schema/locate.rnc ./schema/od-manifest-schema-v1.2-os.rnc ./schema/od-schema-v1.2-os.rnc ./schema/rdfxml.rnc ./schema/README ./schema/relaxng.rnc ./schema/schemas.xml ./schema/xhtml-applet.rnc ./schema/xhtml-attribs.rnc ./schema/xhtml-base.rnc ./schema/xhtml-bdo.rnc ./schema/xhtml-bform.rnc ./schema/xhtml-btable.rnc ./schema/xhtml-csismap.rnc ./schema/xhtml-datatypes.rnc ./schema/xhtml-edit.rnc ./schema/xhtml-events.rnc ./schema/xhtml-form.rnc ./schema/xhtml-frames.rnc ./schema/xhtml-hypertext.rnc ./schema/xhtml-iframe.rnc ./schema/xhtml-image.rnc ./schema/xhtml-inlstyle.rnc ./schema/xhtml-legacy.rnc ./schema/xhtml-link.rnc ./schema/xhtml-lst.rnc ./schema/xhtml-meta.rnc ./schema/xhtml-nameident.rnc ./schema/xhtml-object.rnc ./schema/xhtml-param.rnc ./schema/xhtml-pres.rnc ./schema/xhtml-ruby.rnc ./schema/xhtml-script.rnc ./schema/xhtml-ssismap.rnc ./schema/xhtml-struct.rnc ./schema/xhtml-table.rnc ./schema/xhtml-text.rnc ./schema/xhtml-tgt.rnc ./schema/xhtml-xstyle.rnc ./schema/xhtml.rnc ./schema/xslt.rnc ./ses-example.ses ./spook.lines ./srecode/ ./srecode/c.srt ./srecode/cpp.srt ./srecode/default.srt ./srecode/doc-cpp.srt ./srecode/doc-default.srt ./srecode/doc-java.srt ./srecode/ede-autoconf.srt ./srecode/ede-make.srt ./srecode/el.srt ./srecode/getset-cpp.srt ./srecode/java.srt ./srecode/make.srt ./srecode/proj-test.srt ./srecode/template.srt ./srecode/test.srt ./srecode/texi.srt ./srecode/wisent.srt ./TERMS ./themes/ ./themes/adwaita-theme.el ./themes/deeper-blue-theme.el ./themes/dichromacy-theme.el ./themes/leuven-theme.el ./themes/light-blue-theme.el ./themes/manoj-dark-theme.el ./themes/misterioso-theme.el ./themes/modus-operandi-theme.el ./themes/modus-vivendi-theme.el ./themes/tango-dark-theme.el ./themes/tango-theme.el ./themes/tsdh-dark-theme.el ./themes/tsdh-light-theme.el ./themes/wheatgrass-theme.el ./themes/whiteboard-theme.el ./themes/wombat-theme.el ./TODO ./tutorials/ ./tutorials/TUTORIAL ./tutorials/TUTORIAL.bg ./tutorials/TUTORIAL.cn ./tutorials/TUTORIAL.cs ./tutorials/TUTORIAL.de ./tutorials/TUTORIAL.eo ./tutorials/TUTORIAL.es ./tutorials/TUTORIAL.fr ./tutorials/TUTORIAL.he ./tutorials/TUTORIAL.it ./tutorials/TUTORIAL.ja ./tutorials/TUTORIAL.ko ./tutorials/TUTORIAL.nl ./tutorials/TUTORIAL.pl ./tutorials/TUTORIAL.pt_BR ./tutorials/TUTORIAL.ro ./tutorials/TUTORIAL.ru ./tutorials/TUTORIAL.sk ./tutorials/TUTORIAL.sl ./tutorials/TUTORIAL.sv ./tutorials/TUTORIAL.th ./tutorials/TUTORIAL.translators ./tutorials/TUTORIAL.zh ./w32-feature.el ./yow.lines Copying ../emacs/lisp to /home/cramaph1/emacs-native-comp/dest/share/emacs= /28.0.50/lisp... ./ ./abbrev.el ./abbrev.elc ./align.el ./align.elc ./allout-widgets.el ./allout-widgets.elc ./allout.el ./allout.elc ./ansi-color.el ./ansi-color.elc ./apropos.el ./apropos.elc ./arc-mode.el ./arc-mode.elc ./array.el ./array.elc ./auth-source-pass.el ./auth-source-pass.elc ./auth-source.el ./auth-source.elc ./autoarg.el ./autoarg.elc ./autoinsert.el ./autoinsert.elc ./autorevert.el ./autorevert.elc ./avoid.el ./avoid.elc ./battery.el ./battery.elc ./bindings.el ./bindings.elc ./bookmark.el ./bookmark.elc ./bs.el ./bs.elc ./buff-menu.el ./buff-menu.elc ./button.el ./button.elc ./calc/ ./calc/calc-aent.el ./calc/calc-aent.elc ./calc/calc-alg.el ./calc/calc-alg.elc ./calc/calc-arith.el ./calc/calc-arith.elc ./calc/calc-bin.el ./calc/calc-bin.elc ./calc/calc-comb.el ./calc/calc-comb.elc ./calc/calc-cplx.el ./calc/calc-cplx.elc ./calc/calc-embed.el ./calc/calc-embed.elc ./calc/calc-ext.el ./calc/calc-ext.elc ./calc/calc-fin.el ./calc/calc-fin.elc ./calc/calc-forms.el ./calc/calc-forms.elc ./calc/calc-frac.el ./calc/calc-frac.elc ./calc/calc-funcs.el ./calc/calc-funcs.elc ./calc/calc-graph.el ./calc/calc-graph.elc ./calc/calc-help.el ./calc/calc-help.elc ./calc/calc-incom.el ./calc/calc-incom.elc ./calc/calc-keypd.el ./calc/calc-keypd.elc ./calc/calc-lang.el ./calc/calc-lang.elc ./calc/calc-loaddefs.el ./calc/calc-macs.el ./calc/calc-macs.elc ./calc/calc-map.el ./calc/calc-map.elc ./calc/calc-math.el ./calc/calc-math.elc ./calc/calc-menu.el ./calc/calc-menu.elc ./calc/calc-misc.el ./calc/calc-misc.elc ./calc/calc-mode.el ./calc/calc-mode.elc ./calc/calc-mtx.el ./calc/calc-mtx.elc ./calc/calc-nlfit.el ./calc/calc-nlfit.elc ./calc/calc-poly.el ./calc/calc-poly.elc ./calc/calc-prog.el ./calc/calc-prog.elc ./calc/calc-rewr.el ./calc/calc-rewr.elc ./calc/calc-rules.el ./calc/calc-rules.elc ./calc/calc-sel.el ./calc/calc-sel.elc ./calc/calc-stat.el ./calc/calc-stat.elc ./calc/calc-store.el ./calc/calc-store.elc ./calc/calc-stuff.el ./calc/calc-stuff.elc ./calc/calc-trail.el ./calc/calc-trail.elc ./calc/calc-undo.el ./calc/calc-undo.elc ./calc/calc-units.el ./calc/calc-units.elc ./calc/calc-vec.el ./calc/calc-vec.elc ./calc/calc-yank.el ./calc/calc-yank.elc ./calc/calc.el ./calc/calc.elc ./calc/calcalg2.el ./calc/calcalg2.elc ./calc/calcalg3.el ./calc/calcalg3.elc ./calc/calccomp.el ./calc/calccomp.elc ./calc/calcsel2.el ./calc/calcsel2.elc ./calculator.el ./calculator.elc ./calendar/ ./calendar/appt.el ./calendar/appt.elc ./calendar/cal-bahai.el ./calendar/cal-bahai.elc ./calendar/cal-china.el ./calendar/cal-china.elc ./calendar/cal-coptic.el ./calendar/cal-coptic.elc ./calendar/cal-dst.el ./calendar/cal-dst.elc ./calendar/cal-french.el ./calendar/cal-french.elc ./calendar/cal-hebrew.el ./calendar/cal-hebrew.elc ./calendar/cal-html.el ./calendar/cal-html.elc ./calendar/cal-islam.el ./calendar/cal-islam.elc ./calendar/cal-iso.el ./calendar/cal-iso.elc ./calendar/cal-julian.el ./calendar/cal-julian.elc ./calendar/cal-loaddefs.el ./calendar/cal-loaddefs.el~ ./calendar/cal-mayan.el ./calendar/cal-mayan.elc ./calendar/cal-menu.el ./calendar/cal-menu.elc ./calendar/cal-move.el ./calendar/cal-move.elc ./calendar/cal-persia.el ./calendar/cal-persia.elc ./calendar/cal-tex.el ./calendar/cal-tex.elc ./calendar/cal-x.el ./calendar/cal-x.elc ./calendar/calendar.el ./calendar/calendar.elc ./calendar/diary-lib.el ./calendar/diary-lib.elc ./calendar/diary-loaddefs.el ./calendar/diary-loaddefs.el~ ./calendar/hol-loaddefs.el ./calendar/hol-loaddefs.el~ ./calendar/holidays.el ./calendar/holidays.elc ./calendar/icalendar.el ./calendar/icalendar.elc ./calendar/iso8601.el ./calendar/iso8601.elc ./calendar/lunar.el ./calendar/lunar.elc ./calendar/parse-time.el ./calendar/parse-time.elc ./calendar/solar.el ./calendar/solar.elc ./calendar/time-date.el ./calendar/time-date.elc ./calendar/timeclock.el ./calendar/timeclock.elc ./calendar/todo-mode.el ./calendar/todo-mode.elc ./case-table.el ./case-table.elc ./cdl.el ./cdl.elc ./cedet/ ./cedet/cedet-cscope.el ./cedet/cedet-cscope.elc ./cedet/cedet-files.el ./cedet/cedet-files.elc ./cedet/cedet-global.el ./cedet/cedet-global.elc ./cedet/cedet-idutils.el ./cedet/cedet-idutils.elc ./cedet/cedet.el ./cedet/cedet.elc ./cedet/ChangeLog.1 ./cedet/data-debug.el ./cedet/data-debug.elc ./cedet/ede/ ./cedet/ede/auto.el ./cedet/ede/auto.elc ./cedet/ede/autoconf-edit.el ./cedet/ede/autoconf-edit.elc ./cedet/ede/base.el ./cedet/ede/base.elc ./cedet/ede/config.el ./cedet/ede/config.elc ./cedet/ede/cpp-root.el ./cedet/ede/cpp-root.elc ./cedet/ede/custom.el ./cedet/ede/custom.elc ./cedet/ede/detect.el ./cedet/ede/detect.elc ./cedet/ede/dired.el ./cedet/ede/dired.elc ./cedet/ede/emacs.el ./cedet/ede/emacs.elc ./cedet/ede/files.el ./cedet/ede/files.elc ./cedet/ede/generic.el ./cedet/ede/generic.elc ./cedet/ede/linux.el ./cedet/ede/linux.elc ./cedet/ede/loaddefs.el ./cedet/ede/loaddefs.el~ ./cedet/ede/locate.el ./cedet/ede/locate.elc ./cedet/ede/make.el ./cedet/ede/make.elc ./cedet/ede/makefile-edit.el ./cedet/ede/makefile-edit.elc ./cedet/ede/pconf.el ./cedet/ede/pconf.elc ./cedet/ede/pmake.el ./cedet/ede/pmake.elc ./cedet/ede/proj-archive.el ./cedet/ede/proj-archive.elc ./cedet/ede/proj-aux.el ./cedet/ede/proj-aux.elc ./cedet/ede/proj-comp.el ./cedet/ede/proj-comp.elc ./cedet/ede/proj-elisp.el ./cedet/ede/proj-elisp.elc ./cedet/ede/proj-info.el ./cedet/ede/proj-info.elc ./cedet/ede/proj-misc.el ./cedet/ede/proj-misc.elc ./cedet/ede/proj-obj.el ./cedet/ede/proj-obj.elc ./cedet/ede/proj-prog.el ./cedet/ede/proj-prog.elc ./cedet/ede/proj-scheme.el ./cedet/ede/proj-scheme.elc ./cedet/ede/proj-shared.el ./cedet/ede/proj-shared.elc ./cedet/ede/proj.el ./cedet/ede/proj.elc ./cedet/ede/project-am.el ./cedet/ede/project-am.elc ./cedet/ede/shell.el ./cedet/ede/shell.elc ./cedet/ede/simple.el ./cedet/ede/simple.elc ./cedet/ede/source.el ./cedet/ede/source.elc ./cedet/ede/speedbar.el ./cedet/ede/speedbar.elc ./cedet/ede/srecode.el ./cedet/ede/srecode.elc ./cedet/ede/system.el ./cedet/ede/system.elc ./cedet/ede/util.el ./cedet/ede/util.elc ./cedet/ede.el ./cedet/ede.elc ./cedet/inversion.el ./cedet/inversion.elc ./cedet/mode-local.el ./cedet/mode-local.elc ./cedet/pulse.el ./cedet/pulse.elc ./cedet/semantic/ ./cedet/semantic/analyze/ ./cedet/semantic/analyze/complete.el ./cedet/semantic/analyze/complete.elc ./cedet/semantic/analyze/debug.el ./cedet/semantic/analyze/debug.elc ./cedet/semantic/analyze/fcn.el ./cedet/semantic/analyze/fcn.elc ./cedet/semantic/analyze/refs.el ./cedet/semantic/analyze/refs.elc ./cedet/semantic/analyze.el ./cedet/semantic/analyze.elc ./cedet/semantic/bovine/ ./cedet/semantic/bovine/c-by.el ./cedet/semantic/bovine/c-by.elc ./cedet/semantic/bovine/c.el ./cedet/semantic/bovine/c.elc ./cedet/semantic/bovine/debug.el ./cedet/semantic/bovine/debug.elc ./cedet/semantic/bovine/el.el ./cedet/semantic/bovine/el.elc ./cedet/semantic/bovine/gcc.el ./cedet/semantic/bovine/gcc.elc ./cedet/semantic/bovine/grammar.el ./cedet/semantic/bovine/grammar.elc ./cedet/semantic/bovine/make-by.el ./cedet/semantic/bovine/make-by.elc ./cedet/semantic/bovine/make.el ./cedet/semantic/bovine/make.elc ./cedet/semantic/bovine/scm-by.el ./cedet/semantic/bovine/scm-by.elc ./cedet/semantic/bovine/scm.el ./cedet/semantic/bovine/scm.elc ./cedet/semantic/bovine.el ./cedet/semantic/bovine.elc ./cedet/semantic/chart.el ./cedet/semantic/chart.elc ./cedet/semantic/complete.el ./cedet/semantic/complete.elc ./cedet/semantic/ctxt.el ./cedet/semantic/ctxt.elc ./cedet/semantic/db-debug.el ./cedet/semantic/db-debug.elc ./cedet/semantic/db-ebrowse.el ./cedet/semantic/db-ebrowse.elc ./cedet/semantic/db-el.el ./cedet/semantic/db-el.elc ./cedet/semantic/db-file.el ./cedet/semantic/db-file.elc ./cedet/semantic/db-find.el ./cedet/semantic/db-find.elc ./cedet/semantic/db-global.el ./cedet/semantic/db-global.elc ./cedet/semantic/db-javascript.el ./cedet/semantic/db-javascript.elc ./cedet/semantic/db-mode.el ./cedet/semantic/db-mode.elc ./cedet/semantic/db-ref.el ./cedet/semantic/db-ref.elc ./cedet/semantic/db-typecache.el ./cedet/semantic/db-typecache.elc ./cedet/semantic/db.el ./cedet/semantic/db.elc ./cedet/semantic/debug.el ./cedet/semantic/debug.elc ./cedet/semantic/decorate/ ./cedet/semantic/decorate/include.el ./cedet/semantic/decorate/include.elc ./cedet/semantic/decorate/mode.el ./cedet/semantic/decorate/mode.elc ./cedet/semantic/decorate.el ./cedet/semantic/decorate.elc ./cedet/semantic/dep.el ./cedet/semantic/dep.elc ./cedet/semantic/doc.el ./cedet/semantic/doc.elc ./cedet/semantic/ede-grammar.el ./cedet/semantic/ede-grammar.elc ./cedet/semantic/edit.el ./cedet/semantic/edit.elc ./cedet/semantic/find.el ./cedet/semantic/find.elc ./cedet/semantic/format.el ./cedet/semantic/format.elc ./cedet/semantic/fw.el ./cedet/semantic/fw.elc ./cedet/semantic/grammar-wy.el ./cedet/semantic/grammar-wy.elc ./cedet/semantic/grammar.el ./cedet/semantic/grammar.elc ./cedet/semantic/html.el ./cedet/semantic/html.elc ./cedet/semantic/ia-sb.el ./cedet/semantic/ia-sb.elc ./cedet/semantic/ia.el ./cedet/semantic/ia.elc ./cedet/semantic/idle.el ./cedet/semantic/idle.elc ./cedet/semantic/imenu.el ./cedet/semantic/imenu.elc ./cedet/semantic/java.el ./cedet/semantic/java.elc ./cedet/semantic/lex-spp.el ./cedet/semantic/lex-spp.elc ./cedet/semantic/lex.el ./cedet/semantic/lex.elc ./cedet/semantic/loaddefs.el ./cedet/semantic/loaddefs.el~ ./cedet/semantic/mru-bookmark.el ./cedet/semantic/mru-bookmark.elc ./cedet/semantic/sb.el ./cedet/semantic/sb.elc ./cedet/semantic/scope.el ./cedet/semantic/scope.elc ./cedet/semantic/senator.el ./cedet/semantic/senator.elc ./cedet/semantic/sort.el ./cedet/semantic/sort.elc ./cedet/semantic/symref/ ./cedet/semantic/symref/cscope.el ./cedet/semantic/symref/cscope.elc ./cedet/semantic/symref/filter.el ./cedet/semantic/symref/filter.elc ./cedet/semantic/symref/global.el ./cedet/semantic/symref/global.elc ./cedet/semantic/symref/grep.el ./cedet/semantic/symref/grep.elc ./cedet/semantic/symref/idutils.el ./cedet/semantic/symref/idutils.elc ./cedet/semantic/symref/list.el ./cedet/semantic/symref/list.elc ./cedet/semantic/symref.el ./cedet/semantic/symref.elc ./cedet/semantic/tag-file.el ./cedet/semantic/tag-file.elc ./cedet/semantic/tag-ls.el ./cedet/semantic/tag-ls.elc ./cedet/semantic/tag-write.el ./cedet/semantic/tag-write.elc ./cedet/semantic/tag.el ./cedet/semantic/tag.elc ./cedet/semantic/texi.el ./cedet/semantic/texi.elc ./cedet/semantic/util-modes.el ./cedet/semantic/util-modes.elc ./cedet/semantic/util.el ./cedet/semantic/util.elc ./cedet/semantic/wisent/ ./cedet/semantic/wisent/comp.el ./cedet/semantic/wisent/comp.elc ./cedet/semantic/wisent/grammar.el ./cedet/semantic/wisent/grammar.elc ./cedet/semantic/wisent/java-tags.el ./cedet/semantic/wisent/java-tags.elc ./cedet/semantic/wisent/javascript.el ./cedet/semantic/wisent/javascript.elc ./cedet/semantic/wisent/javat-wy.el ./cedet/semantic/wisent/javat-wy.elc ./cedet/semantic/wisent/js-wy.el ./cedet/semantic/wisent/js-wy.elc ./cedet/semantic/wisent/python-wy.el ./cedet/semantic/wisent/python-wy.elc ./cedet/semantic/wisent/python.el ./cedet/semantic/wisent/python.elc ./cedet/semantic/wisent/wisent.el ./cedet/semantic/wisent/wisent.elc ./cedet/semantic/wisent.el ./cedet/semantic/wisent.elc ./cedet/semantic.el ./cedet/semantic.elc ./cedet/srecode/ ./cedet/srecode/args.el ./cedet/srecode/args.elc ./cedet/srecode/compile.el ./cedet/srecode/compile.elc ./cedet/srecode/cpp.el ./cedet/srecode/cpp.elc ./cedet/srecode/ctxt.el ./cedet/srecode/ctxt.elc ./cedet/srecode/dictionary.el ./cedet/srecode/dictionary.elc ./cedet/srecode/document.el ./cedet/srecode/document.elc ./cedet/srecode/el.el ./cedet/srecode/el.elc ./cedet/srecode/expandproto.el ./cedet/srecode/expandproto.elc ./cedet/srecode/extract.el ./cedet/srecode/extract.elc ./cedet/srecode/fields.el ./cedet/srecode/fields.elc ./cedet/srecode/filters.el ./cedet/srecode/filters.elc ./cedet/srecode/find.el ./cedet/srecode/find.elc ./cedet/srecode/getset.el ./cedet/srecode/getset.elc ./cedet/srecode/insert.el ./cedet/srecode/insert.elc ./cedet/srecode/java.el ./cedet/srecode/java.elc ./cedet/srecode/loaddefs.el ./cedet/srecode/map.el ./cedet/srecode/map.elc ./cedet/srecode/mode.el ./cedet/srecode/mode.elc ./cedet/srecode/semantic.el ./cedet/srecode/semantic.elc ./cedet/srecode/srt-mode.el ./cedet/srecode/srt-mode.elc ./cedet/srecode/srt-wy.el ./cedet/srecode/srt-wy.elc ./cedet/srecode/srt.el ./cedet/srecode/srt.elc ./cedet/srecode/table.el ./cedet/srecode/table.elc ./cedet/srecode/template.el ./cedet/srecode/template.elc ./cedet/srecode/texi.el ./cedet/srecode/texi.elc ./cedet/srecode.el ./cedet/srecode.elc ./ChangeLog.1 ./ChangeLog.10 ./ChangeLog.11 ./ChangeLog.12 ./ChangeLog.13 ./ChangeLog.14 ./ChangeLog.15 ./ChangeLog.16 ./ChangeLog.17 ./ChangeLog.2 ./ChangeLog.3 ./ChangeLog.4 ./ChangeLog.5 ./ChangeLog.6 ./ChangeLog.7 ./ChangeLog.8 ./ChangeLog.9 ./char-fold.el ./char-fold.elc ./chistory.el ./chistory.elc ./cmuscheme.el ./cmuscheme.elc ./color.el ./color.elc ./comint.el ./comint.elc ./completion.el ./completion.elc ./composite.el ./composite.elc ./COPYING ./cus-dep.el ./cus-dep.elc ./cus-edit.el ./cus-edit.elc ./cus-face.el ./cus-face.elc ./cus-load.el ./cus-start.el ./cus-start.elc ./cus-theme.el ./cus-theme.elc ./custom.el ./custom.elc ./dabbrev.el ./dabbrev.elc ./delim-col.el ./delim-col.elc ./delsel.el ./delsel.elc ./descr-text.el ./descr-text.elc ./desktop.el ./desktop.elc ./dframe.el ./dframe.elc ./dired-aux.el ./dired-aux.elc ./dired-loaddefs.el ./dired-x.el ./dired-x.elc ./dired.el ./dired.elc ./dirtrack.el ./dirtrack.elc ./disp-table.el ./disp-table.elc ./display-fill-column-indicator.el ./display-fill-column-indicator.elc ./display-line-numbers.el ./display-line-numbers.elc ./dnd.el ./dnd.elc ./doc-view.el ./doc-view.elc ./dom.el ./dom.elc ./dos-fns.el ./dos-fns.elc ./dos-vars.el ./dos-vars.elc ./dos-w32.el ./dos-w32.elc ./double.el ./double.elc ./dynamic-setting.el ./dynamic-setting.elc ./ebuff-menu.el ./ebuff-menu.elc ./echistory.el ./echistory.elc ./ecomplete.el ./ecomplete.elc ./edmacro.el ./edmacro.elc ./ehelp.el ./ehelp.elc ./elec-pair.el ./elec-pair.elc ./electric.el ./electric.elc ./elide-head.el ./elide-head.elc ./emacs-lisp/ ./emacs-lisp/advice.el ./emacs-lisp/advice.elc ./emacs-lisp/autoload.el ./emacs-lisp/autoload.elc ./emacs-lisp/avl-tree.el ./emacs-lisp/avl-tree.elc ./emacs-lisp/backquote.el ./emacs-lisp/backquote.elc ./emacs-lisp/backtrace.el ./emacs-lisp/backtrace.elc ./emacs-lisp/benchmark.el ./emacs-lisp/benchmark.elc ./emacs-lisp/bindat.el ./emacs-lisp/bindat.elc ./emacs-lisp/byte-opt.el ./emacs-lisp/byte-opt.elc ./emacs-lisp/byte-run.el ./emacs-lisp/byte-run.elc ./emacs-lisp/bytecomp.el ./emacs-lisp/bytecomp.elc ./emacs-lisp/cconv.el ./emacs-lisp/cconv.elc ./emacs-lisp/chart.el ./emacs-lisp/chart.elc ./emacs-lisp/check-declare.el ./emacs-lisp/check-declare.elc ./emacs-lisp/checkdoc.el ./emacs-lisp/checkdoc.elc ./emacs-lisp/cl-extra.el ./emacs-lisp/cl-extra.elc ./emacs-lisp/cl-generic.el ./emacs-lisp/cl-generic.elc ./emacs-lisp/cl-indent.el ./emacs-lisp/cl-indent.elc ./emacs-lisp/cl-lib.el ./emacs-lisp/cl-lib.elc ./emacs-lisp/cl-loaddefs.el ./emacs-lisp/cl-macs.el ./emacs-lisp/cl-macs.elc ./emacs-lisp/cl-preloaded.el ./emacs-lisp/cl-preloaded.elc ./emacs-lisp/cl-print.el ./emacs-lisp/cl-print.elc ./emacs-lisp/cl-seq.el ./emacs-lisp/cl-seq.elc ./emacs-lisp/comp-cstr.el ./emacs-lisp/comp-cstr.elc ./emacs-lisp/comp.el ./emacs-lisp/comp.elc ./emacs-lisp/copyright.el ./emacs-lisp/copyright.elc ./emacs-lisp/crm.el ./emacs-lisp/crm.elc ./emacs-lisp/cursor-sensor.el ./emacs-lisp/cursor-sensor.elc ./emacs-lisp/debug.el ./emacs-lisp/debug.elc ./emacs-lisp/derived.el ./emacs-lisp/derived.elc ./emacs-lisp/disass.el ./emacs-lisp/disass.elc ./emacs-lisp/easy-mmode.el ./emacs-lisp/easy-mmode.elc ./emacs-lisp/easymenu.el ./emacs-lisp/easymenu.elc ./emacs-lisp/edebug.el ./emacs-lisp/edebug.elc ./emacs-lisp/eieio-base.el ./emacs-lisp/eieio-base.elc ./emacs-lisp/eieio-compat.el ./emacs-lisp/eieio-compat.elc ./emacs-lisp/eieio-core.el ./emacs-lisp/eieio-core.elc ./emacs-lisp/eieio-custom.el ./emacs-lisp/eieio-custom.elc ./emacs-lisp/eieio-datadebug.el ./emacs-lisp/eieio-datadebug.elc ./emacs-lisp/eieio-loaddefs.el ./emacs-lisp/eieio-opt.el ./emacs-lisp/eieio-opt.elc ./emacs-lisp/eieio-speedbar.el ./emacs-lisp/eieio-speedbar.elc ./emacs-lisp/eieio.el ./emacs-lisp/eieio.elc ./emacs-lisp/eldoc.el ./emacs-lisp/eldoc.elc ./emacs-lisp/elint.el ./emacs-lisp/elint.elc ./emacs-lisp/elp.el ./emacs-lisp/elp.elc ./emacs-lisp/ert-x.el ./emacs-lisp/ert-x.elc ./emacs-lisp/ert.el ./emacs-lisp/ert.elc ./emacs-lisp/ewoc.el ./emacs-lisp/ewoc.elc ./emacs-lisp/faceup.el ./emacs-lisp/faceup.elc ./emacs-lisp/find-func.el ./emacs-lisp/find-func.elc ./emacs-lisp/float-sup.el ./emacs-lisp/float-sup.elc ./emacs-lisp/generator.el ./emacs-lisp/generator.elc ./emacs-lisp/generic.el ./emacs-lisp/generic.elc ./emacs-lisp/gv.el ./emacs-lisp/gv.elc ./emacs-lisp/helper.el ./emacs-lisp/helper.elc ./emacs-lisp/hierarchy.el ./emacs-lisp/hierarchy.elc ./emacs-lisp/inline.el ./emacs-lisp/inline.elc ./emacs-lisp/let-alist.el ./emacs-lisp/let-alist.elc ./emacs-lisp/lisp-mnt.el ./emacs-lisp/lisp-mnt.elc ./emacs-lisp/lisp-mode.el ./emacs-lisp/lisp-mode.elc ./emacs-lisp/lisp.el ./emacs-lisp/lisp.elc ./emacs-lisp/macroexp.el ./emacs-lisp/macroexp.elc ./emacs-lisp/map-ynp.el ./emacs-lisp/map-ynp.elc ./emacs-lisp/map.el ./emacs-lisp/map.elc ./emacs-lisp/memory-report.el ./emacs-lisp/memory-report.elc ./emacs-lisp/nadvice.el ./emacs-lisp/nadvice.elc ./emacs-lisp/package-x.el ./emacs-lisp/package-x.elc ./emacs-lisp/package.el ./emacs-lisp/package.elc ./emacs-lisp/pcase.el ./emacs-lisp/pcase.elc ./emacs-lisp/pp.el ./emacs-lisp/pp.elc ./emacs-lisp/radix-tree.el ./emacs-lisp/radix-tree.elc ./emacs-lisp/re-builder.el ./emacs-lisp/re-builder.elc ./emacs-lisp/regexp-opt.el ./emacs-lisp/regexp-opt.elc ./emacs-lisp/regi.el ./emacs-lisp/regi.elc ./emacs-lisp/ring.el ./emacs-lisp/ring.elc ./emacs-lisp/rmc.el ./emacs-lisp/rmc.elc ./emacs-lisp/rx.el ./emacs-lisp/rx.elc ./emacs-lisp/seq.el ./emacs-lisp/seq.elc ./emacs-lisp/shadow.el ./emacs-lisp/shadow.elc ./emacs-lisp/shortdoc.el ./emacs-lisp/shortdoc.elc ./emacs-lisp/smie.el ./emacs-lisp/smie.elc ./emacs-lisp/subr-x.el ./emacs-lisp/subr-x.elc ./emacs-lisp/syntax.el ./emacs-lisp/syntax.elc ./emacs-lisp/tabulated-list.el ./emacs-lisp/tabulated-list.elc ./emacs-lisp/tcover-ses.el ./emacs-lisp/tcover-ses.elc ./emacs-lisp/testcover.el ./emacs-lisp/testcover.elc ./emacs-lisp/text-property-search.el ./emacs-lisp/text-property-search.elc ./emacs-lisp/thunk.el ./emacs-lisp/thunk.elc ./emacs-lisp/timer-list.el ./emacs-lisp/timer-list.elc ./emacs-lisp/timer.el ./emacs-lisp/timer.elc ./emacs-lisp/tq.el ./emacs-lisp/tq.elc ./emacs-lisp/trace.el ./emacs-lisp/trace.elc ./emacs-lisp/unsafep.el ./emacs-lisp/unsafep.elc ./emacs-lisp/warnings.el ./emacs-lisp/warnings.elc ./emacs-lock.el ./emacs-lock.elc ./emulation/ ./emulation/cua-base.el ./emulation/cua-base.elc ./emulation/cua-gmrk.el ./emulation/cua-gmrk.elc ./emulation/cua-rect.el ./emulation/cua-rect.elc ./emulation/edt-lk201.el ./emulation/edt-lk201.elc ./emulation/edt-mapper.el ./emulation/edt-mapper.elc ./emulation/edt-pc.el ./emulation/edt-pc.elc ./emulation/edt-vt100.el ./emulation/edt-vt100.elc ./emulation/edt.el ./emulation/edt.elc ./emulation/keypad.el ./emulation/keypad.elc ./emulation/viper-cmd.el ./emulation/viper-cmd.elc ./emulation/viper-ex.el ./emulation/viper-ex.elc ./emulation/viper-init.el ./emulation/viper-init.elc ./emulation/viper-keym.el ./emulation/viper-keym.elc ./emulation/viper-macs.el ./emulation/viper-macs.elc ./emulation/viper-mous.el ./emulation/viper-mous.elc ./emulation/viper-util.el ./emulation/viper-util.elc ./emulation/viper.el ./emulation/viper.elc ./env.el ./env.elc ./epa-dired.el ./epa-dired.elc ./epa-file.el ./epa-file.elc ./epa-hook.el ./epa-hook.elc ./epa-mail.el ./epa-mail.elc ./epa.el ./epa.elc ./epg-config.el ./epg-config.elc ./epg.el ./epg.elc ./erc/ ./erc/ChangeLog.1 ./erc/ChangeLog.2 ./erc/erc-autoaway.el ./erc/erc-autoaway.elc ./erc/erc-backend.el ./erc/erc-backend.elc ./erc/erc-button.el ./erc/erc-button.elc ./erc/erc-capab.el ./erc/erc-capab.elc ./erc/erc-dcc.el ./erc/erc-dcc.elc ./erc/erc-desktop-notifications.el ./erc/erc-desktop-notifications.elc ./erc/erc-ezbounce.el ./erc/erc-ezbounce.elc ./erc/erc-fill.el ./erc/erc-fill.elc ./erc/erc-goodies.el ./erc/erc-goodies.elc ./erc/erc-ibuffer.el ./erc/erc-ibuffer.elc ./erc/erc-identd.el ./erc/erc-identd.elc ./erc/erc-imenu.el ./erc/erc-imenu.elc ./erc/erc-join.el ./erc/erc-join.elc ./erc/erc-lang.el ./erc/erc-lang.elc ./erc/erc-list.el ./erc/erc-list.elc ./erc/erc-loaddefs.el ./erc/erc-loaddefs.el~ ./erc/erc-log.el ./erc/erc-log.elc ./erc/erc-match.el ./erc/erc-match.elc ./erc/erc-menu.el ./erc/erc-menu.elc ./erc/erc-netsplit.el ./erc/erc-netsplit.elc ./erc/erc-networks.el ./erc/erc-networks.elc ./erc/erc-notify.el ./erc/erc-notify.elc ./erc/erc-page.el ./erc/erc-page.elc ./erc/erc-pcomplete.el ./erc/erc-pcomplete.elc ./erc/erc-replace.el ./erc/erc-replace.elc ./erc/erc-ring.el ./erc/erc-ring.elc ./erc/erc-services.el ./erc/erc-services.elc ./erc/erc-sound.el ./erc/erc-sound.elc ./erc/erc-speedbar.el ./erc/erc-speedbar.elc ./erc/erc-spelling.el ./erc/erc-spelling.elc ./erc/erc-stamp.el ./erc/erc-stamp.elc ./erc/erc-status-sidebar.el ./erc/erc-status-sidebar.elc ./erc/erc-track.el ./erc/erc-track.elc ./erc/erc-truncate.el ./erc/erc-truncate.elc ./erc/erc-xdcc.el ./erc/erc-xdcc.elc ./erc/erc.el ./erc/erc.elc ./eshell/ ./eshell/em-alias.el ./eshell/em-alias.elc ./eshell/em-banner.el ./eshell/em-banner.elc ./eshell/em-basic.el ./eshell/em-basic.elc ./eshell/em-cmpl.el ./eshell/em-cmpl.elc ./eshell/em-dirs.el ./eshell/em-dirs.elc ./eshell/em-glob.el ./eshell/em-glob.elc ./eshell/em-hist.el ./eshell/em-hist.elc ./eshell/em-ls.el ./eshell/em-ls.elc ./eshell/em-pred.el ./eshell/em-pred.elc ./eshell/em-prompt.el ./eshell/em-prompt.elc ./eshell/em-rebind.el ./eshell/em-rebind.elc ./eshell/em-script.el ./eshell/em-script.elc ./eshell/em-smart.el ./eshell/em-smart.elc ./eshell/em-term.el ./eshell/em-term.elc ./eshell/em-tramp.el ./eshell/em-tramp.elc ./eshell/em-unix.el ./eshell/em-unix.elc ./eshell/em-xtra.el ./eshell/em-xtra.elc ./eshell/esh-arg.el ./eshell/esh-arg.elc ./eshell/esh-cmd.el ./eshell/esh-cmd.elc ./eshell/esh-ext.el ./eshell/esh-ext.elc ./eshell/esh-groups.el ./eshell/esh-groups.el~ ./eshell/esh-io.el ./eshell/esh-io.elc ./eshell/esh-mode.el ./eshell/esh-mode.elc ./eshell/esh-module.el ./eshell/esh-module.elc ./eshell/esh-opt.el ./eshell/esh-opt.elc ./eshell/esh-proc.el ./eshell/esh-proc.elc ./eshell/esh-util.el ./eshell/esh-util.elc ./eshell/esh-var.el ./eshell/esh-var.elc ./eshell/eshell.el ./eshell/eshell.elc ./expand.el ./expand.elc ./ezimage.el ./ezimage.elc ./face-remap.el ./face-remap.elc ./facemenu.el ./facemenu.elc ./faces.el ./faces.elc ./ffap.el ./ffap.elc ./filecache.el ./filecache.elc ./fileloop.el ./fileloop.elc ./filenotify.el ./filenotify.elc ./files-x.el ./files-x.elc ./files.el ./files.elc ./filesets.el ./filesets.elc ./find-cmd.el ./find-cmd.elc ./find-dired.el ./find-dired.elc ./find-file.el ./find-file.elc ./find-lisp.el ./find-lisp.elc ./finder-inf.el ./finder.el ./finder.elc ./flow-ctrl.el ./flow-ctrl.elc ./foldout.el ./foldout.elc ./follow.el ./follow.elc ./font-core.el ./font-core.elc ./font-lock.el ./font-lock.elc ./format-spec.el ./format-spec.elc ./format.el ./format.elc ./forms.el ./forms.elc ./frame.el ./frame.elc ./frameset.el ./frameset.elc ./fringe.el ./fringe.elc ./generic-x.el ./generic-x.elc ./gnus/ ./gnus/.dir-locals.el ./gnus/canlock.el ./gnus/canlock.elc ./gnus/ChangeLog.1 ./gnus/ChangeLog.2 ./gnus/ChangeLog.3 ./gnus/deuglify.el ./gnus/deuglify.elc ./gnus/gmm-utils.el ./gnus/gmm-utils.elc ./gnus/gnus-agent.el ./gnus/gnus-agent.elc ./gnus/gnus-art.el ./gnus/gnus-art.elc ./gnus/gnus-async.el ./gnus/gnus-async.elc ./gnus/gnus-bcklg.el ./gnus/gnus-bcklg.elc ./gnus/gnus-bookmark.el ./gnus/gnus-bookmark.elc ./gnus/gnus-cache.el ./gnus/gnus-cache.elc ./gnus/gnus-cite.el ./gnus/gnus-cite.elc ./gnus/gnus-cloud.el ./gnus/gnus-cloud.elc ./gnus/gnus-cus.el ./gnus/gnus-cus.elc ./gnus/gnus-dbus.el ./gnus/gnus-dbus.elc ./gnus/gnus-delay.el ./gnus/gnus-delay.elc ./gnus/gnus-demon.el ./gnus/gnus-demon.elc ./gnus/gnus-diary.el ./gnus/gnus-diary.elc ./gnus/gnus-dired.el ./gnus/gnus-dired.elc ./gnus/gnus-draft.el ./gnus/gnus-draft.elc ./gnus/gnus-dup.el ./gnus/gnus-dup.elc ./gnus/gnus-eform.el ./gnus/gnus-eform.elc ./gnus/gnus-fun.el ./gnus/gnus-fun.elc ./gnus/gnus-gravatar.el ./gnus/gnus-gravatar.elc ./gnus/gnus-group.el ./gnus/gnus-group.elc ./gnus/gnus-html.el ./gnus/gnus-html.elc ./gnus/gnus-icalendar.el ./gnus/gnus-icalendar.elc ./gnus/gnus-int.el ./gnus/gnus-int.elc ./gnus/gnus-kill.el ./gnus/gnus-kill.elc ./gnus/gnus-logic.el ./gnus/gnus-logic.elc ./gnus/gnus-mh.el ./gnus/gnus-mh.elc ./gnus/gnus-ml.el ./gnus/gnus-ml.elc ./gnus/gnus-mlspl.el ./gnus/gnus-mlspl.elc ./gnus/gnus-msg.el ./gnus/gnus-msg.elc ./gnus/gnus-notifications.el ./gnus/gnus-notifications.elc ./gnus/gnus-picon.el ./gnus/gnus-picon.elc ./gnus/gnus-range.el ./gnus/gnus-range.elc ./gnus/gnus-registry.el ./gnus/gnus-registry.elc ./gnus/gnus-rfc1843.el ./gnus/gnus-rfc1843.elc ./gnus/gnus-salt.el ./gnus/gnus-salt.elc ./gnus/gnus-score.el ./gnus/gnus-score.elc ./gnus/gnus-search.el ./gnus/gnus-search.elc ./gnus/gnus-sieve.el ./gnus/gnus-sieve.elc ./gnus/gnus-spec.el ./gnus/gnus-spec.elc ./gnus/gnus-srvr.el ./gnus/gnus-srvr.elc ./gnus/gnus-start.el ./gnus/gnus-start.elc ./gnus/gnus-sum.el ./gnus/gnus-sum.elc ./gnus/gnus-topic.el ./gnus/gnus-topic.elc ./gnus/gnus-undo.el ./gnus/gnus-undo.elc ./gnus/gnus-util.el ./gnus/gnus-util.elc ./gnus/gnus-uu.el ./gnus/gnus-uu.elc ./gnus/gnus-vm.el ./gnus/gnus-vm.elc ./gnus/gnus-win.el ./gnus/gnus-win.elc ./gnus/gnus.el ./gnus/gnus.elc ./gnus/gssapi.el ./gnus/gssapi.elc ./gnus/legacy-gnus-agent.el ./gnus/legacy-gnus-agent.elc ./gnus/mail-source.el ./gnus/mail-source.elc ./gnus/message.el ./gnus/message.elc ./gnus/mm-archive.el ./gnus/mm-archive.elc ./gnus/mm-bodies.el ./gnus/mm-bodies.elc ./gnus/mm-decode.el ./gnus/mm-decode.elc ./gnus/mm-encode.el ./gnus/mm-encode.elc ./gnus/mm-extern.el ./gnus/mm-extern.elc ./gnus/mm-partial.el ./gnus/mm-partial.elc ./gnus/mm-url.el ./gnus/mm-url.elc ./gnus/mm-util.el ./gnus/mm-util.elc ./gnus/mm-uu.el ./gnus/mm-uu.elc ./gnus/mm-view.el ./gnus/mm-view.elc ./gnus/mml-sec.el ./gnus/mml-sec.elc ./gnus/mml-smime.el ./gnus/mml-smime.elc ./gnus/mml.el ./gnus/mml.elc ./gnus/mml1991.el ./gnus/mml1991.elc ./gnus/mml2015.el ./gnus/mml2015.elc ./gnus/nnagent.el ./gnus/nnagent.elc ./gnus/nnbabyl.el ./gnus/nnbabyl.elc ./gnus/nndiary.el ./gnus/nndiary.elc ./gnus/nndir.el ./gnus/nndir.elc ./gnus/nndoc.el ./gnus/nndoc.elc ./gnus/nndraft.el ./gnus/nndraft.elc ./gnus/nneething.el ./gnus/nneething.elc ./gnus/nnfolder.el ./gnus/nnfolder.elc ./gnus/nngateway.el ./gnus/nngateway.elc ./gnus/nnheader.el ./gnus/nnheader.elc ./gnus/nnimap.el ./gnus/nnimap.elc ./gnus/nnmail.el ./gnus/nnmail.elc ./gnus/nnmaildir.el ./gnus/nnmaildir.elc ./gnus/nnmairix.el ./gnus/nnmairix.elc ./gnus/nnmbox.el ./gnus/nnmbox.elc ./gnus/nnmh.el ./gnus/nnmh.elc ./gnus/nnml.el ./gnus/nnml.elc ./gnus/nnnil.el ./gnus/nnnil.elc ./gnus/nnoo.el ./gnus/nnoo.elc ./gnus/nnregistry.el ./gnus/nnregistry.elc ./gnus/nnrss.el ./gnus/nnrss.elc ./gnus/nnselect.el ./gnus/nnselect.elc ./gnus/nnspool.el ./gnus/nnspool.elc ./gnus/nntp.el ./gnus/nntp.elc ./gnus/nnvirtual.el ./gnus/nnvirtual.elc ./gnus/nnweb.el ./gnus/nnweb.elc ./gnus/score-mode.el ./gnus/score-mode.elc ./gnus/smiley.el ./gnus/smiley.elc ./gnus/smime.el ./gnus/smime.elc ./gnus/spam-report.el ./gnus/spam-report.elc ./gnus/spam-stat.el ./gnus/spam-stat.elc ./gnus/spam-wash.el ./gnus/spam-wash.elc ./gnus/spam.el ./gnus/spam.elc ./help-at-pt.el ./help-at-pt.elc ./help-fns.el ./help-fns.elc ./help-macro.el ./help-macro.elc ./help-mode.el ./help-mode.elc ./help.el ./help.elc ./hex-util.el ./hex-util.elc ./hexl.el ./hexl.elc ./hfy-cmap.el ./hfy-cmap.elc ./hi-lock.el ./hi-lock.elc ./hilit-chg.el ./hilit-chg.elc ./hippie-exp.el ./hippie-exp.elc ./hl-line.el ./hl-line.elc ./htmlfontify-loaddefs.el ./htmlfontify.el ./htmlfontify.elc ./ibuf-ext.el ./ibuf-ext.elc ./ibuf-macs.el ./ibuf-macs.elc ./ibuffer-loaddefs.el ./ibuffer.el ./ibuffer.elc ./icomplete.el ./icomplete.elc ./ido.el ./ido.elc ./ielm.el ./ielm.elc ./iimage.el ./iimage.elc ./image/ ./image/compface.el ./image/compface.elc ./image/exif.el ./image/exif.elc ./image/gravatar.el ./image/gravatar.elc ./image/image-converter.el ./image/image-converter.elc ./image-dired.el ./image-dired.elc ./image-file.el ./image-file.elc ./image-mode.el ./image-mode.elc ./image.el ./image.elc ./imenu.el ./imenu.elc ./indent.el ./indent.elc ./info-look.el ./info-look.elc ./info-xref.el ./info-xref.elc ./info.el ./info.elc ./informat.el ./informat.elc ./international/ ./international/ccl.el ./international/ccl.elc ./international/characters.el ./international/characters.elc ./international/charprop.el ./international/charscript.el ./international/charscript.elc ./international/cp51932.el ./international/cp51932.elc ./international/eucjp-ms.el ./international/eucjp-ms.elc ./international/fontset.el ./international/fontset.elc ./international/isearch-x.el ./international/isearch-x.elc ./international/iso-ascii.el ./international/iso-ascii.elc ./international/iso-cvt.el ./international/iso-cvt.elc ./international/iso-transl.el ./international/iso-transl.elc ./international/ja-dic-cnv.el ./international/ja-dic-cnv.elc ./international/ja-dic-utl.el ./international/ja-dic-utl.elc ./international/kinsoku.el ./international/kinsoku.elc ./international/kkc.el ./international/kkc.elc ./international/latexenc.el ./international/latexenc.elc ./international/latin1-disp.el ./international/latin1-disp.elc ./international/mule-cmds.el ./international/mule-cmds.elc ./international/mule-conf.el ./international/mule-conf.elc ./international/mule-diag.el ./international/mule-diag.elc ./international/mule-util.el ./international/mule-util.elc ./international/mule.el ./international/mule.elc ./international/ogonek.el ./international/ogonek.elc ./international/quail.el ./international/quail.elc ./international/rfc1843.el ./international/rfc1843.elc ./international/robin.el ./international/robin.elc ./international/titdic-cnv.el ./international/titdic-cnv.elc ./international/ucs-normalize.el ./international/ucs-normalize.elc ./international/uni-bidi.el ./international/uni-brackets.el ./international/uni-category.el ./international/uni-combining.el ./international/uni-comment.el ./international/uni-decimal.el ./international/uni-decomposition.el ./international/uni-digit.el ./international/uni-lowercase.el ./international/uni-mirrored.el ./international/uni-name.el ./international/uni-numeric.el ./international/uni-old-name.el ./international/uni-special-lowercase.el ./international/uni-special-titlecase.el ./international/uni-special-uppercase.el ./international/uni-titlecase.el ./international/uni-uppercase.el ./international/utf-7.el ./international/utf-7.elc ./international/utf7.el ./international/utf7.elc ./isearch.el ./isearch.elc ./isearchb.el ./isearchb.elc ./jit-lock.el ./jit-lock.elc ./jka-cmpr-hook.el ./jka-cmpr-hook.elc ./jka-compr.el ./jka-compr.elc ./json.el ./json.elc ./jsonrpc.el ./jsonrpc.elc ./kermit.el ./kermit.elc ./kmacro.el ./kmacro.elc ./language/ ./language/burmese.el ./language/burmese.elc ./language/cham.el ./language/cham.elc ./language/china-util.el ./language/china-util.elc ./language/chinese.el ./language/chinese.elc ./language/cyril-util.el ./language/cyril-util.elc ./language/cyrillic.el ./language/cyrillic.elc ./language/czech.el ./language/czech.elc ./language/english.el ./language/english.elc ./language/ethio-util.el ./language/ethio-util.elc ./language/ethiopic.el ./language/ethiopic.elc ./language/european.el ./language/european.elc ./language/georgian.el ./language/georgian.elc ./language/greek.el ./language/greek.elc ./language/hanja-util.el ./language/hanja-util.elc ./language/hebrew.el ./language/hebrew.elc ./language/ind-util.el ./language/ind-util.elc ./language/indian.el ./language/indian.elc ./language/japan-util.el ./language/japan-util.elc ./language/japanese.el ./language/japanese.elc ./language/khmer.el ./language/khmer.elc ./language/korea-util.el ./language/korea-util.elc ./language/korean.el ./language/korean.elc ./language/lao-util.el ./language/lao-util.elc ./language/lao.el ./language/lao.elc ./language/misc-lang.el ./language/misc-lang.elc ./language/pinyin.el ./language/pinyin.elc ./language/romanian.el ./language/romanian.elc ./language/sinhala.el ./language/sinhala.elc ./language/slovak.el ./language/slovak.elc ./language/tai-viet.el ./language/tai-viet.elc ./language/thai-util.el ./language/thai-util.elc ./language/thai-word.el ./language/thai-word.elc ./language/thai.el ./language/thai.elc ./language/tibet-util.el ./language/tibet-util.elc ./language/tibetan.el ./language/tibetan.elc ./language/tv-util.el ./language/tv-util.elc ./language/utf-8-lang.el ./language/utf-8-lang.elc ./language/viet-util.el ./language/viet-util.elc ./language/vietnamese.el ./language/vietnamese.elc ./ldefs-boot.el ./leim/ ./leim/ja-dic/ ./leim/ja-dic/ja-dic.el ./leim/ja-dic/ja-dic.elc ./leim/leim-list.el ./leim/quail/ ./leim/quail/4Corner.el ./leim/quail/4Corner.elc ./leim/quail/arabic.el ./leim/quail/arabic.elc ./leim/quail/ARRAY30.el ./leim/quail/ARRAY30.elc ./leim/quail/CCDOSPY.el ./leim/quail/CCDOSPY.elc ./leim/quail/compose.el ./leim/quail/compose.elc ./leim/quail/croatian.el ./leim/quail/croatian.elc ./leim/quail/CTLau-b5.el ./leim/quail/CTLau-b5.elc ./leim/quail/CTLau.el ./leim/quail/CTLau.elc ./leim/quail/cyril-jis.el ./leim/quail/cyril-jis.elc ./leim/quail/cyrillic.el ./leim/quail/cyrillic.elc ./leim/quail/czech.el ./leim/quail/czech.elc ./leim/quail/ECDICT.el ./leim/quail/ECDICT.elc ./leim/quail/ethiopic.el ./leim/quail/ethiopic.elc ./leim/quail/ETZY.el ./leim/quail/ETZY.elc ./leim/quail/georgian.el ./leim/quail/georgian.elc ./leim/quail/greek.el ./leim/quail/greek.elc ./leim/quail/hangul.el ./leim/quail/hangul.elc ./leim/quail/hanja-jis.el ./leim/quail/hanja-jis.elc ./leim/quail/hanja.el ./leim/quail/hanja.elc ./leim/quail/hanja3.el ./leim/quail/hanja3.elc ./leim/quail/hebrew.el ./leim/quail/hebrew.elc ./leim/quail/indian.el ./leim/quail/indian.elc ./leim/quail/ipa-praat.el ./leim/quail/ipa-praat.elc ./leim/quail/ipa.el ./leim/quail/ipa.elc ./leim/quail/japanese.el ./leim/quail/japanese.elc ./leim/quail/lao.el ./leim/quail/lao.elc ./leim/quail/latin-alt.el ./leim/quail/latin-alt.elc ./leim/quail/latin-ltx.el ./leim/quail/latin-ltx.elc ./leim/quail/latin-post.el ./leim/quail/latin-post.elc ./leim/quail/latin-pre.el ./leim/quail/latin-pre.elc ./leim/quail/lrt.el ./leim/quail/lrt.elc ./leim/quail/persian.el ./leim/quail/persian.elc ./leim/quail/programmer-dvorak.el ./leim/quail/programmer-dvorak.elc ./leim/quail/Punct-b5.el ./leim/quail/Punct-b5.elc ./leim/quail/Punct.el ./leim/quail/Punct.elc ./leim/quail/PY-b5.el ./leim/quail/PY-b5.elc ./leim/quail/py-punct.el ./leim/quail/py-punct.elc ./leim/quail/PY.el ./leim/quail/PY.elc ./leim/quail/pypunct-b5.el ./leim/quail/pypunct-b5.elc ./leim/quail/QJ-b5.el ./leim/quail/QJ-b5.elc ./leim/quail/QJ.el ./leim/quail/QJ.elc ./leim/quail/quick-b5.el ./leim/quail/quick-b5.elc ./leim/quail/quick-cns.el ./leim/quail/quick-cns.elc ./leim/quail/rfc1345.el ./leim/quail/rfc1345.elc ./leim/quail/sami.el ./leim/quail/sami.elc ./leim/quail/sgml-input.el ./leim/quail/sgml-input.elc ./leim/quail/sisheng.el ./leim/quail/sisheng.elc ./leim/quail/slovak.el ./leim/quail/slovak.elc ./leim/quail/SW.el ./leim/quail/SW.elc ./leim/quail/symbol-ksc.el ./leim/quail/symbol-ksc.elc ./leim/quail/tamil-dvorak.el ./leim/quail/tamil-dvorak.elc ./leim/quail/thai.el ./leim/quail/thai.elc ./leim/quail/tibetan.el ./leim/quail/tibetan.elc ./leim/quail/TONEPY.el ./leim/quail/TONEPY.elc ./leim/quail/tsang-b5.el ./leim/quail/tsang-b5.elc ./leim/quail/tsang-cns.el ./leim/quail/tsang-cns.elc ./leim/quail/uni-input.el ./leim/quail/uni-input.elc ./leim/quail/viqr.el ./leim/quail/viqr.elc ./leim/quail/vntelex.el ./leim/quail/vntelex.elc ./leim/quail/vnvni.el ./leim/quail/vnvni.elc ./leim/quail/welsh.el ./leim/quail/welsh.elc ./leim/quail/ZIRANMA.el ./leim/quail/ZIRANMA.elc ./leim/quail/ZOZY.el ./leim/quail/ZOZY.elc ./linum.el ./linum.elc ./loaddefs.el ./loaddefs.el~ ./loadhist.el ./loadhist.elc ./loadup.el ./locate.el ./locate.elc ./lpr.el ./lpr.elc ./ls-lisp.el ./ls-lisp.elc ./macros.el ./macros.elc ./mail/ ./mail/binhex.el ./mail/binhex.elc ./mail/blessmail.el ./mail/emacsbug.el ./mail/emacsbug.elc ./mail/feedmail.el ./mail/feedmail.elc ./mail/flow-fill.el ./mail/flow-fill.elc ./mail/footnote.el ./mail/footnote.elc ./mail/hashcash.el ./mail/hashcash.elc ./mail/ietf-drums.el ./mail/ietf-drums.elc ./mail/mail-extr.el ./mail/mail-extr.elc ./mail/mail-hist.el ./mail/mail-hist.elc ./mail/mail-parse.el ./mail/mail-parse.elc ./mail/mail-prsvr.el ./mail/mail-prsvr.elc ./mail/mail-utils.el ./mail/mail-utils.elc ./mail/mailabbrev.el ./mail/mailabbrev.elc ./mail/mailalias.el ./mail/mailalias.elc ./mail/mailclient.el ./mail/mailclient.elc ./mail/mailheader.el ./mail/mailheader.elc ./mail/mspools.el ./mail/mspools.elc ./mail/qp.el ./mail/qp.elc ./mail/reporter.el ./mail/reporter.elc ./mail/rfc2045.el ./mail/rfc2045.elc ./mail/rfc2047.el ./mail/rfc2047.elc ./mail/rfc2231.el ./mail/rfc2231.elc ./mail/rfc2368.el ./mail/rfc2368.elc ./mail/rfc822.el ./mail/rfc822.elc ./mail/rmail-loaddefs.el ./mail/rmail-loaddefs.el~ ./mail/rmail-spam-filter.el ./mail/rmail-spam-filter.elc ./mail/rmail.el ./mail/rmail.elc ./mail/rmailedit.el ./mail/rmailedit.elc ./mail/rmailkwd.el ./mail/rmailkwd.elc ./mail/rmailmm.el ./mail/rmailmm.elc ./mail/rmailmsc.el ./mail/rmailmsc.elc ./mail/rmailout.el ./mail/rmailout.elc ./mail/rmailsort.el ./mail/rmailsort.elc ./mail/rmailsum.el ./mail/rmailsum.elc ./mail/sendmail.el ./mail/sendmail.elc ./mail/smtpmail.el ./mail/smtpmail.elc ./mail/supercite.el ./mail/supercite.elc ./mail/uce.el ./mail/uce.elc ./mail/undigest.el ./mail/undigest.elc ./mail/unrmail.el ./mail/unrmail.elc ./mail/uudecode.el ./mail/uudecode.elc ./mail/yenc.el ./mail/yenc.elc ./Makefile.in ./makesum.el ./makesum.elc ./man.el ./man.elc ./master.el ./master.elc ./mb-depth.el ./mb-depth.elc ./md4.el ./md4.elc ./menu-bar.el ./menu-bar.elc ./mh-e/ ./mh-e/ChangeLog.1 ./mh-e/ChangeLog.2 ./mh-e/mh-acros.el ./mh-e/mh-alias.el ./mh-e/mh-alias.elc ./mh-e/mh-buffers.el ./mh-e/mh-buffers.elc ./mh-e/mh-comp.el ./mh-e/mh-comp.elc ./mh-e/mh-compat.el ./mh-e/mh-compat.elc ./mh-e/mh-e.el ./mh-e/mh-e.elc ./mh-e/mh-folder.el ./mh-e/mh-folder.elc ./mh-e/mh-funcs.el ./mh-e/mh-funcs.elc ./mh-e/mh-gnus.el ./mh-e/mh-gnus.elc ./mh-e/mh-identity.el ./mh-e/mh-identity.elc ./mh-e/mh-inc.el ./mh-e/mh-inc.elc ./mh-e/mh-junk.el ./mh-e/mh-junk.elc ./mh-e/mh-letter.el ./mh-e/mh-letter.elc ./mh-e/mh-limit.el ./mh-e/mh-limit.elc ./mh-e/mh-loaddefs.el ./mh-e/mh-loaddefs.el~ ./mh-e/mh-mime.el ./mh-e/mh-mime.elc ./mh-e/mh-print.el ./mh-e/mh-print.elc ./mh-e/mh-scan.el ./mh-e/mh-scan.elc ./mh-e/mh-search.el ./mh-e/mh-search.elc ./mh-e/mh-seq.el ./mh-e/mh-seq.elc ./mh-e/mh-show.el ./mh-e/mh-show.elc ./mh-e/mh-speed.el ./mh-e/mh-speed.elc ./mh-e/mh-thread.el ./mh-e/mh-thread.elc ./mh-e/mh-tool-bar.el ./mh-e/mh-tool-bar.elc ./mh-e/mh-utils.el ./mh-e/mh-utils.elc ./mh-e/mh-xface.el ./mh-e/mh-xface.elc ./midnight.el ./midnight.elc ./minibuf-eldef.el ./minibuf-eldef.elc ./minibuffer.el ./minibuffer.elc ./misc.el ./misc.elc ./misearch.el ./misearch.elc ./mouse-copy.el ./mouse-copy.elc ./mouse-drag.el ./mouse-drag.elc ./mouse.el ./mouse.elc ./mpc.el ./mpc.elc ./msb.el ./msb.elc ./mwheel.el ./mwheel.elc ./net/ ./net/ange-ftp.el ./net/ange-ftp.elc ./net/browse-url.el ./net/browse-url.elc ./net/dbus.el ./net/dbus.elc ./net/dictionary-connection.el ./net/dictionary-connection.elc ./net/dictionary.el ./net/dictionary.elc ./net/dig.el ./net/dig.elc ./net/dns.el ./net/dns.elc ./net/eudc-bob.el ./net/eudc-bob.elc ./net/eudc-export.el ./net/eudc-export.elc ./net/eudc-hotlist.el ./net/eudc-hotlist.elc ./net/eudc-vars.el ./net/eudc-vars.elc ./net/eudc.el ./net/eudc.elc ./net/eudcb-bbdb.el ./net/eudcb-bbdb.elc ./net/eudcb-ldap.el ./net/eudcb-ldap.elc ./net/eudcb-mab.el ./net/eudcb-mab.elc ./net/eudcb-macos-contacts.el ./net/eudcb-macos-contacts.elc ./net/eww.el ./net/eww.elc ./net/gnutls.el ./net/gnutls.elc ./net/goto-addr.el ./net/goto-addr.elc ./net/hmac-def.el ./net/hmac-def.elc ./net/hmac-md5.el ./net/hmac-md5.elc ./net/imap.el ./net/imap.elc ./net/ldap.el ./net/ldap.elc ./net/mailcap.el ./net/mailcap.elc ./net/mairix.el ./net/mairix.elc ./net/net-utils.el ./net/net-utils.elc ./net/netrc.el ./net/netrc.elc ./net/network-stream.el ./net/network-stream.elc ./net/newst-backend.el ./net/newst-backend.elc ./net/newst-plainview.el ./net/newst-plainview.elc ./net/newst-reader.el ./net/newst-reader.elc ./net/newst-ticker.el ./net/newst-ticker.elc ./net/newst-treeview.el ./net/newst-treeview.elc ./net/newsticker.el ./net/newsticker.elc ./net/nsm.el ./net/nsm.elc ./net/ntlm.el ./net/ntlm.elc ./net/pop3.el ./net/pop3.elc ./net/puny.el ./net/puny.elc ./net/quickurl.el ./net/quickurl.elc ./net/rcirc.el ./net/rcirc.elc ./net/rfc2104.el ./net/rfc2104.elc ./net/rlogin.el ./net/rlogin.elc ./net/sasl-cram.el ./net/sasl-cram.elc ./net/sasl-digest.el ./net/sasl-digest.elc ./net/sasl-ntlm.el ./net/sasl-ntlm.elc ./net/sasl-scram-rfc.el ./net/sasl-scram-rfc.elc ./net/sasl-scram-sha256.el ./net/sasl-scram-sha256.elc ./net/sasl.el ./net/sasl.elc ./net/secrets.el ./net/secrets.elc ./net/shr-color.el ./net/shr-color.elc ./net/shr.el ./net/shr.elc ./net/sieve-manage.el ./net/sieve-manage.elc ./net/sieve-mode.el ./net/sieve-mode.elc ./net/sieve.el ./net/sieve.elc ./net/snmp-mode.el ./net/snmp-mode.elc ./net/soap-client.el ./net/soap-client.elc ./net/soap-inspect.el ./net/soap-inspect.elc ./net/socks.el ./net/socks.elc ./net/telnet.el ./net/telnet.elc ./net/tramp-adb.el ./net/tramp-adb.elc ./net/tramp-archive.el ./net/tramp-archive.elc ./net/tramp-cache.el ./net/tramp-cache.elc ./net/tramp-cmds.el ./net/tramp-cmds.elc ./net/tramp-compat.el ./net/tramp-compat.elc ./net/tramp-crypt.el ./net/tramp-crypt.elc ./net/tramp-ftp.el ./net/tramp-ftp.elc ./net/tramp-gvfs.el ./net/tramp-gvfs.elc ./net/tramp-integration.el ./net/tramp-integration.elc ./net/tramp-loaddefs.el ./net/tramp-loaddefs.el~ ./net/tramp-rclone.el ./net/tramp-rclone.elc ./net/tramp-sh.el ./net/tramp-sh.elc ./net/tramp-smb.el ./net/tramp-smb.elc ./net/tramp-sudoedit.el ./net/tramp-sudoedit.elc ./net/tramp-uu.el ./net/tramp-uu.elc ./net/tramp.el ./net/tramp.elc ./net/trampver.el ./net/trampver.elc ./net/webjump.el ./net/webjump.elc ./net/zeroconf.el ./net/zeroconf.elc ./newcomment.el ./newcomment.elc ./notifications.el ./notifications.elc ./novice.el ./novice.elc ./nxml/ ./nxml/nxml-enc.el ./nxml/nxml-enc.elc ./nxml/nxml-maint.el ./nxml/nxml-maint.elc ./nxml/nxml-mode.el ./nxml/nxml-mode.elc ./nxml/nxml-ns.el ./nxml/nxml-ns.elc ./nxml/nxml-outln.el ./nxml/nxml-outln.elc ./nxml/nxml-parse.el ./nxml/nxml-parse.elc ./nxml/nxml-rap.el ./nxml/nxml-rap.elc ./nxml/nxml-util.el ./nxml/nxml-util.elc ./nxml/rng-cmpct.el ./nxml/rng-cmpct.elc ./nxml/rng-dt.el ./nxml/rng-dt.elc ./nxml/rng-loc.el ./nxml/rng-loc.elc ./nxml/rng-maint.el ./nxml/rng-maint.elc ./nxml/rng-match.el ./nxml/rng-match.elc ./nxml/rng-nxml.el ./nxml/rng-nxml.elc ./nxml/rng-parse.el ./nxml/rng-parse.elc ./nxml/rng-pttrn.el ./nxml/rng-pttrn.elc ./nxml/rng-uri.el ./nxml/rng-uri.elc ./nxml/rng-util.el ./nxml/rng-util.elc ./nxml/rng-valid.el ./nxml/rng-valid.elc ./nxml/rng-xsd.el ./nxml/rng-xsd.elc ./nxml/xmltok.el ./nxml/xmltok.elc ./nxml/xsd-regexp.el ./nxml/xsd-regexp.elc ./obarray.el ./obarray.elc ./obsolete/ ./obsolete/abbrevlist.el ./obsolete/abbrevlist.elc ./obsolete/assoc.el ./obsolete/assoc.elc ./obsolete/bruce.el ./obsolete/bruce.elc ./obsolete/cc-compat.el ./obsolete/cc-compat.elc ./obsolete/cl-compat.el ./obsolete/cl-compat.elc ./obsolete/cl.el ./obsolete/cl.elc ./obsolete/complete.el ./obsolete/complete.elc ./obsolete/crisp.el ./obsolete/crisp.elc ./obsolete/cust-print.el ./obsolete/cust-print.elc ./obsolete/erc-compat.el ./obsolete/erc-compat.elc ./obsolete/erc-hecomplete.el ./obsolete/erc-hecomplete.elc ./obsolete/eudcb-ph.el ./obsolete/eudcb-ph.elc ./obsolete/fast-lock.el ./obsolete/fast-lock.elc ./obsolete/gs.el ./obsolete/gs.elc ./obsolete/gulp.el ./obsolete/gulp.elc ./obsolete/html2text.el ./obsolete/html2text.elc ./obsolete/info-edit.el ./obsolete/info-edit.elc ./obsolete/iswitchb.el ./obsolete/iswitchb.elc ./obsolete/landmark.el ./obsolete/landmark.elc ./obsolete/lazy-lock.el ./obsolete/lazy-lock.elc ./obsolete/longlines.el ./obsolete/longlines.elc ./obsolete/mailpost.el ./obsolete/mailpost.elc ./obsolete/mantemp.el ./obsolete/mantemp.elc ./obsolete/meese.el ./obsolete/meese.elc ./obsolete/messcompat.el ./obsolete/metamail.el ./obsolete/metamail.elc ./obsolete/mouse-sel.el ./obsolete/mouse-sel.elc ./obsolete/nnir.el ./obsolete/nnir.elc ./obsolete/old-emacs-lock.el ./obsolete/old-emacs-lock.elc ./obsolete/otodo-mode.el ./obsolete/otodo-mode.elc ./obsolete/patcomp.el ./obsolete/patcomp.elc ./obsolete/pc-mode.el ./obsolete/pc-mode.elc ./obsolete/pc-select.el ./obsolete/pc-select.elc ./obsolete/pgg-def.el ./obsolete/pgg-def.elc ./obsolete/pgg-gpg.el ./obsolete/pgg-gpg.elc ./obsolete/pgg-parse.el ./obsolete/pgg-parse.elc ./obsolete/pgg-pgp.el ./obsolete/pgg-pgp.elc ./obsolete/pgg-pgp5.el ./obsolete/pgg-pgp5.elc ./obsolete/pgg.el ./obsolete/pgg.elc ./obsolete/rcompile.el ./obsolete/rcompile.elc ./obsolete/s-region.el ./obsolete/s-region.elc ./obsolete/sb-image.el ./obsolete/sb-image.elc ./obsolete/sregex.el ./obsolete/sregex.elc ./obsolete/starttls.el ./obsolete/starttls.elc ./obsolete/sup-mouse.el ./obsolete/sup-mouse.elc ./obsolete/terminal.el ./obsolete/terminal.elc ./obsolete/tls.el ./obsolete/tls.elc ./obsolete/tpu-edt.el ./obsolete/tpu-edt.elc ./obsolete/tpu-extras.el ./obsolete/tpu-extras.elc ./obsolete/tpu-mapper.el ./obsolete/tpu-mapper.elc ./obsolete/url-ns.el ./obsolete/url-ns.elc ./obsolete/vc-arch.el ./obsolete/vc-arch.elc ./obsolete/vi.el ./obsolete/vi.elc ./obsolete/vip.el ./obsolete/vip.elc ./obsolete/ws-mode.el ./obsolete/ws-mode.elc ./obsolete/yow.el ./obsolete/yow.elc ./org/ ./org/ChangeLog.1 ./org/ob-abc.el ./org/ob-abc.elc ./org/ob-asymptote.el ./org/ob-asymptote.elc ./org/ob-awk.el ./org/ob-awk.elc ./org/ob-C.el ./org/ob-C.elc ./org/ob-calc.el ./org/ob-calc.elc ./org/ob-clojure.el ./org/ob-clojure.elc ./org/ob-comint.el ./org/ob-comint.elc ./org/ob-coq.el ./org/ob-coq.elc ./org/ob-core.el ./org/ob-core.elc ./org/ob-css.el ./org/ob-css.elc ./org/ob-ditaa.el ./org/ob-ditaa.elc ./org/ob-dot.el ./org/ob-dot.elc ./org/ob-ebnf.el ./org/ob-ebnf.elc ./org/ob-emacs-lisp.el ./org/ob-emacs-lisp.elc ./org/ob-eshell.el ./org/ob-eshell.elc ./org/ob-eval.el ./org/ob-eval.elc ./org/ob-exp.el ./org/ob-exp.elc ./org/ob-forth.el ./org/ob-forth.elc ./org/ob-fortran.el ./org/ob-fortran.elc ./org/ob-gnuplot.el ./org/ob-gnuplot.elc ./org/ob-groovy.el ./org/ob-groovy.elc ./org/ob-haskell.el ./org/ob-haskell.elc ./org/ob-hledger.el ./org/ob-hledger.elc ./org/ob-io.el ./org/ob-io.elc ./org/ob-J.el ./org/ob-J.elc ./org/ob-java.el ./org/ob-java.elc ./org/ob-js.el ./org/ob-js.elc ./org/ob-latex.el ./org/ob-latex.elc ./org/ob-ledger.el ./org/ob-ledger.elc ./org/ob-lilypond.el ./org/ob-lilypond.elc ./org/ob-lisp.el ./org/ob-lisp.elc ./org/ob-lob.el ./org/ob-lob.elc ./org/ob-lua.el ./org/ob-lua.elc ./org/ob-makefile.el ./org/ob-makefile.elc ./org/ob-matlab.el ./org/ob-matlab.elc ./org/ob-maxima.el ./org/ob-maxima.elc ./org/ob-mscgen.el ./org/ob-mscgen.elc ./org/ob-ocaml.el ./org/ob-ocaml.elc ./org/ob-octave.el ./org/ob-octave.elc ./org/ob-org.el ./org/ob-org.elc ./org/ob-perl.el ./org/ob-perl.elc ./org/ob-picolisp.el ./org/ob-picolisp.elc ./org/ob-plantuml.el ./org/ob-plantuml.elc ./org/ob-processing.el ./org/ob-processing.elc ./org/ob-python.el ./org/ob-python.elc ./org/ob-R.el ./org/ob-R.elc ./org/ob-ref.el ./org/ob-ref.elc ./org/ob-ruby.el ./org/ob-ruby.elc ./org/ob-sass.el ./org/ob-sass.elc ./org/ob-scheme.el ./org/ob-scheme.elc ./org/ob-screen.el ./org/ob-screen.elc ./org/ob-sed.el ./org/ob-sed.elc ./org/ob-shell.el ./org/ob-shell.elc ./org/ob-shen.el ./org/ob-shen.elc ./org/ob-sql.el ./org/ob-sql.elc ./org/ob-sqlite.el ./org/ob-sqlite.elc ./org/ob-stan.el ./org/ob-stan.elc ./org/ob-table.el ./org/ob-table.elc ./org/ob-tangle.el ./org/ob-tangle.elc ./org/ob-vala.el ./org/ob-vala.elc ./org/ob.el ./org/ob.elc ./org/ol-bbdb.el ./org/ol-bbdb.elc ./org/ol-bibtex.el ./org/ol-bibtex.elc ./org/ol-docview.el ./org/ol-docview.elc ./org/ol-eshell.el ./org/ol-eshell.elc ./org/ol-eww.el ./org/ol-eww.elc ./org/ol-gnus.el ./org/ol-gnus.elc ./org/ol-info.el ./org/ol-info.elc ./org/ol-irc.el ./org/ol-irc.elc ./org/ol-mhe.el ./org/ol-mhe.elc ./org/ol-rmail.el ./org/ol-rmail.elc ./org/ol-w3m.el ./org/ol-w3m.elc ./org/ol.el ./org/ol.elc ./org/org-agenda.el ./org/org-agenda.elc ./org/org-archive.el ./org/org-archive.elc ./org/org-attach-git.el ./org/org-attach-git.elc ./org/org-attach.el ./org/org-attach.elc ./org/org-capture.el ./org/org-capture.elc ./org/org-clock.el ./org/org-clock.elc ./org/org-colview.el ./org/org-colview.elc ./org/org-compat.el ./org/org-compat.elc ./org/org-crypt.el ./org/org-crypt.elc ./org/org-ctags.el ./org/org-ctags.elc ./org/org-datetree.el ./org/org-datetree.elc ./org/org-duration.el ./org/org-duration.elc ./org/org-element.el ./org/org-element.elc ./org/org-entities.el ./org/org-entities.elc ./org/org-faces.el ./org/org-faces.elc ./org/org-feed.el ./org/org-feed.elc ./org/org-footnote.el ./org/org-footnote.elc ./org/org-goto.el ./org/org-goto.elc ./org/org-habit.el ./org/org-habit.elc ./org/org-id.el ./org/org-id.elc ./org/org-indent.el ./org/org-indent.elc ./org/org-inlinetask.el ./org/org-inlinetask.elc ./org/org-install.el ./org/org-keys.el ./org/org-keys.elc ./org/org-lint.el ./org/org-lint.elc ./org/org-list.el ./org/org-list.elc ./org/org-loaddefs.el ./org/org-loaddefs.el~ ./org/org-macro.el ./org/org-macro.elc ./org/org-macs.el ./org/org-macs.elc ./org/org-mobile.el ./org/org-mobile.elc ./org/org-mouse.el ./org/org-mouse.elc ./org/org-num.el ./org/org-num.elc ./org/org-pcomplete.el ./org/org-pcomplete.elc ./org/org-plot.el ./org/org-plot.elc ./org/org-protocol.el ./org/org-protocol.elc ./org/org-refile.el ./org/org-refile.elc ./org/org-src.el ./org/org-src.elc ./org/org-table.el ./org/org-table.elc ./org/org-tempo.el ./org/org-tempo.elc ./org/org-timer.el ./org/org-timer.elc ./org/org-version.el ./org/org.el ./org/org.elc ./org/ox-ascii.el ./org/ox-ascii.elc ./org/ox-beamer.el ./org/ox-beamer.elc ./org/ox-html.el ./org/ox-html.elc ./org/ox-icalendar.el ./org/ox-icalendar.elc ./org/ox-latex.el ./org/ox-latex.elc ./org/ox-man.el ./org/ox-man.elc ./org/ox-md.el ./org/ox-md.elc ./org/ox-odt.el ./org/ox-odt.elc ./org/ox-org.el ./org/ox-org.elc ./org/ox-publish.el ./org/ox-publish.elc ./org/ox-texinfo.el ./org/ox-texinfo.elc ./org/ox.el ./org/ox.elc ./outline.el ./outline.elc ./paren.el ./paren.elc ./password-cache.el ./password-cache.elc ./pcmpl-cvs.el ./pcmpl-cvs.elc ./pcmpl-gnu.el ./pcmpl-gnu.elc ./pcmpl-linux.el ./pcmpl-linux.elc ./pcmpl-rpm.el ./pcmpl-rpm.elc ./pcmpl-unix.el ./pcmpl-unix.elc ./pcmpl-x.el ./pcmpl-x.elc ./pcomplete.el ./pcomplete.elc ./pixel-scroll.el ./pixel-scroll.elc ./play/ ./play/5x5.el ./play/5x5.elc ./play/animate.el ./play/animate.elc ./play/blackbox.el ./play/blackbox.elc ./play/bubbles.el ./play/bubbles.elc ./play/cookie1.el ./play/cookie1.elc ./play/decipher.el ./play/decipher.elc ./play/dissociate.el ./play/dissociate.elc ./play/doctor.el ./play/doctor.elc ./play/dunnet.el ./play/dunnet.elc ./play/fortune.el ./play/fortune.elc ./play/gamegrid.el ./play/gamegrid.elc ./play/gametree.el ./play/gametree.elc ./play/gomoku.el ./play/gomoku.elc ./play/handwrite.el ./play/handwrite.elc ./play/hanoi.el ./play/hanoi.elc ./play/life.el ./play/life.elc ./play/morse.el ./play/morse.elc ./play/mpuz.el ./play/mpuz.elc ./play/pong.el ./play/pong.elc ./play/snake.el ./play/snake.elc ./play/solitaire.el ./play/solitaire.elc ./play/spook.el ./play/spook.elc ./play/studly.el ./play/studly.elc ./play/tetris.el ./play/tetris.elc ./play/zone.el ./play/zone.elc ./plstore.el ./plstore.elc ./printing.el ./printing.elc ./proced.el ./proced.elc ./profiler.el ./profiler.elc ./progmodes/ ./progmodes/antlr-mode.el ./progmodes/antlr-mode.elc ./progmodes/asm-mode.el ./progmodes/asm-mode.elc ./progmodes/autoconf.el ./progmodes/autoconf.elc ./progmodes/bat-mode.el ./progmodes/bat-mode.elc ./progmodes/bug-reference.el ./progmodes/bug-reference.elc ./progmodes/cc-align.el ./progmodes/cc-align.elc ./progmodes/cc-awk.el ./progmodes/cc-awk.elc ./progmodes/cc-bytecomp.el ./progmodes/cc-bytecomp.elc ./progmodes/cc-cmds.el ./progmodes/cc-cmds.elc ./progmodes/cc-defs.el ./progmodes/cc-defs.elc ./progmodes/cc-engine.el ./progmodes/cc-engine.elc ./progmodes/cc-fonts.el ./progmodes/cc-fonts.elc ./progmodes/cc-guess.el ./progmodes/cc-guess.elc ./progmodes/cc-langs.el ./progmodes/cc-langs.elc ./progmodes/cc-menus.el ./progmodes/cc-menus.elc ./progmodes/cc-mode.el ./progmodes/cc-mode.elc ./progmodes/cc-styles.el ./progmodes/cc-styles.elc ./progmodes/cc-vars.el ./progmodes/cc-vars.elc ./progmodes/cfengine.el ./progmodes/cfengine.elc ./progmodes/cl-font-lock.el ./progmodes/cl-font-lock.elc ./progmodes/cmacexp.el ./progmodes/cmacexp.elc ./progmodes/compile.el ./progmodes/compile.elc ./progmodes/cperl-mode.el ./progmodes/cperl-mode.elc ./progmodes/cpp.el ./progmodes/cpp.elc ./progmodes/cwarn.el ./progmodes/cwarn.elc ./progmodes/dcl-mode.el ./progmodes/dcl-mode.elc ./progmodes/ebnf-abn.el ./progmodes/ebnf-abn.elc ./progmodes/ebnf-bnf.el ./progmodes/ebnf-bnf.elc ./progmodes/ebnf-dtd.el ./progmodes/ebnf-dtd.elc ./progmodes/ebnf-ebx.el ./progmodes/ebnf-ebx.elc ./progmodes/ebnf-iso.el ./progmodes/ebnf-iso.elc ./progmodes/ebnf-otz.el ./progmodes/ebnf-otz.elc ./progmodes/ebnf-yac.el ./progmodes/ebnf-yac.elc ./progmodes/ebnf2ps.el ./progmodes/ebnf2ps.elc ./progmodes/ebrowse.el ./progmodes/ebrowse.elc ./progmodes/elisp-mode.el ./progmodes/elisp-mode.elc ./progmodes/etags.el ./progmodes/etags.elc ./progmodes/executable.el ./progmodes/executable.elc ./progmodes/f90.el ./progmodes/f90.elc ./progmodes/flymake-cc.el ./progmodes/flymake-cc.elc ./progmodes/flymake-proc.el ./progmodes/flymake-proc.elc ./progmodes/flymake.el ./progmodes/flymake.elc ./progmodes/fortran.el ./progmodes/fortran.elc ./progmodes/gdb-mi.el ./progmodes/gdb-mi.elc ./progmodes/glasses.el ./progmodes/glasses.elc ./progmodes/grep.el ./progmodes/grep.elc ./progmodes/gud.el ./progmodes/gud.elc ./progmodes/hideif.el ./progmodes/hideif.elc ./progmodes/hideshow.el ./progmodes/hideshow.elc ./progmodes/icon.el ./progmodes/icon.elc ./progmodes/idlw-complete-structtag.el ./progmodes/idlw-complete-structtag.elc ./progmodes/idlw-help.el ./progmodes/idlw-help.elc ./progmodes/idlw-shell.el ./progmodes/idlw-shell.elc ./progmodes/idlw-toolbar.el ./progmodes/idlw-toolbar.elc ./progmodes/idlwave.el ./progmodes/idlwave.elc ./progmodes/inf-lisp.el ./progmodes/inf-lisp.elc ./progmodes/js.el ./progmodes/js.elc ./progmodes/ld-script.el ./progmodes/ld-script.elc ./progmodes/m4-mode.el ./progmodes/m4-mode.elc ./progmodes/make-mode.el ./progmodes/make-mode.elc ./progmodes/meta-mode.el ./progmodes/meta-mode.elc ./progmodes/mixal-mode.el ./progmodes/mixal-mode.elc ./progmodes/modula2.el ./progmodes/modula2.elc ./progmodes/octave.el ./progmodes/octave.elc ./progmodes/opascal.el ./progmodes/opascal.elc ./progmodes/pascal.el ./progmodes/pascal.elc ./progmodes/perl-mode.el ./progmodes/perl-mode.elc ./progmodes/prog-mode.el ./progmodes/prog-mode.elc ./progmodes/project.el ./progmodes/project.elc ./progmodes/prolog.el ./progmodes/prolog.elc ./progmodes/ps-mode.el ./progmodes/ps-mode.elc ./progmodes/python.el ./progmodes/python.elc ./progmodes/ruby-mode.el ./progmodes/ruby-mode.elc ./progmodes/scheme.el ./progmodes/scheme.elc ./progmodes/sh-script.el ./progmodes/sh-script.elc ./progmodes/simula.el ./progmodes/simula.elc ./progmodes/sql.el ./progmodes/sql.elc ./progmodes/subword.el ./progmodes/subword.elc ./progmodes/tcl.el ./progmodes/tcl.elc ./progmodes/vera-mode.el ./progmodes/vera-mode.elc ./progmodes/verilog-mode.el ./progmodes/verilog-mode.elc ./progmodes/vhdl-mode.el ./progmodes/vhdl-mode.elc ./progmodes/which-func.el ./progmodes/which-func.elc ./progmodes/xref.el ./progmodes/xref.elc ./progmodes/xscheme.el ./progmodes/xscheme.elc ./ps-bdf.el ./ps-bdf.elc ./ps-def.el ./ps-def.elc ./ps-mule.el ./ps-mule.elc ./ps-print-loaddefs.el ./ps-print.el ./ps-print.elc ./ps-samp.el ./ps-samp.elc ./README ./recentf.el ./recentf.elc ./rect.el ./rect.elc ./register.el ./register.elc ./registry.el ./registry.elc ./repeat.el ./repeat.elc ./replace.el ./replace.elc ./reposition.el ./reposition.elc ./reveal.el ./reveal.elc ./rfn-eshadow.el ./rfn-eshadow.elc ./rot13.el ./rot13.elc ./rtree.el ./rtree.elc ./ruler-mode.el ./ruler-mode.elc ./savehist.el ./savehist.elc ./saveplace.el ./saveplace.elc ./scroll-all.el ./scroll-all.elc ./scroll-bar.el ./scroll-bar.elc ./scroll-lock.el ./scroll-lock.elc ./select.el ./select.elc ./server.el ./server.elc ./ses.el ./ses.elc ./shadowfile.el ./shadowfile.elc ./shell.el ./shell.elc ./simple.el ./simple.elc ./skeleton.el ./skeleton.elc ./so-long.el ./so-long.elc ./sort.el ./sort.elc ./soundex.el ./soundex.elc ./speedbar.el ./speedbar.elc ./startup.el ./startup.elc ./strokes.el ./strokes.elc ./subdirs.el ./subr.el ./subr.elc ./svg.el ./svg.elc ./t-mouse.el ./t-mouse.elc ./tab-bar.el ./tab-bar.elc ./tab-line.el ./tab-line.elc ./tabify.el ./tabify.elc ./talk.el ./talk.elc ./tar-mode.el ./tar-mode.elc ./tempo.el ./tempo.elc ./term/ ./term/AT386.el ./term/AT386.elc ./term/bobcat.el ./term/bobcat.elc ./term/common-win.el ./term/common-win.elc ./term/cygwin.el ./term/cygwin.elc ./term/internal.el ./term/internal.elc ./term/iris-ansi.el ./term/iris-ansi.elc ./term/konsole.el ./term/konsole.elc ./term/linux.el ./term/linux.elc ./term/lk201.el ./term/lk201.elc ./term/news.el ./term/news.elc ./term/ns-win.el ./term/ns-win.elc ./term/pc-win.el ./term/pc-win.elc ./term/README ./term/rxvt.el ./term/rxvt.elc ./term/screen.el ./term/screen.elc ./term/st.el ./term/st.elc ./term/sun.el ./term/sun.elc ./term/tmux.el ./term/tmux.elc ./term/tty-colors.el ./term/tty-colors.elc ./term/tvi970.el ./term/tvi970.elc ./term/vt100.el ./term/vt100.elc ./term/vt200.el ./term/vt200.elc ./term/w32-win.el ./term/w32-win.elc ./term/w32console.el ./term/w32console.elc ./term/wyse50.el ./term/wyse50.elc ./term/x-win.el ./term/x-win.elc ./term/xterm.el ./term/xterm.elc ./term.el ./term.elc ./textmodes/ ./textmodes/artist.el ./textmodes/artist.elc ./textmodes/bib-mode.el ./textmodes/bib-mode.elc ./textmodes/bibtex-style.el ./textmodes/bibtex-style.elc ./textmodes/bibtex.el ./textmodes/bibtex.elc ./textmodes/conf-mode.el ./textmodes/conf-mode.elc ./textmodes/css-mode.el ./textmodes/css-mode.elc ./textmodes/dns-mode.el ./textmodes/dns-mode.elc ./textmodes/enriched.el ./textmodes/enriched.elc ./textmodes/fill.el ./textmodes/fill.elc ./textmodes/flyspell.el ./textmodes/flyspell.elc ./textmodes/ispell.el ./textmodes/ispell.elc ./textmodes/less-css-mode.el ./textmodes/less-css-mode.elc ./textmodes/makeinfo.el ./textmodes/makeinfo.elc ./textmodes/mhtml-mode.el ./textmodes/mhtml-mode.elc ./textmodes/nroff-mode.el ./textmodes/nroff-mode.elc ./textmodes/page-ext.el ./textmodes/page-ext.elc ./textmodes/page.el ./textmodes/page.elc ./textmodes/paragraphs.el ./textmodes/paragraphs.elc ./textmodes/picture.el ./textmodes/picture.elc ./textmodes/po.el ./textmodes/po.elc ./textmodes/refbib.el ./textmodes/refbib.elc ./textmodes/refer.el ./textmodes/refer.elc ./textmodes/refill.el ./textmodes/refill.elc ./textmodes/reftex-auc.el ./textmodes/reftex-auc.elc ./textmodes/reftex-cite.el ./textmodes/reftex-cite.elc ./textmodes/reftex-dcr.el ./textmodes/reftex-dcr.elc ./textmodes/reftex-global.el ./textmodes/reftex-global.elc ./textmodes/reftex-index.el ./textmodes/reftex-index.elc ./textmodes/reftex-loaddefs.el ./textmodes/reftex-parse.el ./textmodes/reftex-parse.elc ./textmodes/reftex-ref.el ./textmodes/reftex-ref.elc ./textmodes/reftex-sel.el ./textmodes/reftex-sel.elc ./textmodes/reftex-toc.el ./textmodes/reftex-toc.elc ./textmodes/reftex-vars.el ./textmodes/reftex-vars.elc ./textmodes/reftex.el ./textmodes/reftex.elc ./textmodes/remember.el ./textmodes/remember.elc ./textmodes/rst.el ./textmodes/rst.elc ./textmodes/sgml-mode.el ./textmodes/sgml-mode.elc ./textmodes/table.el ./textmodes/table.elc ./textmodes/tex-mode.el ./textmodes/tex-mode.elc ./textmodes/texinfmt.el ./textmodes/texinfmt.elc ./textmodes/texinfo.el ./textmodes/texinfo.elc ./textmodes/texnfo-upd.el ./textmodes/texnfo-upd.elc ./textmodes/text-mode.el ./textmodes/text-mode.elc ./textmodes/tildify.el ./textmodes/tildify.elc ./textmodes/two-column.el ./textmodes/two-column.elc ./textmodes/underline.el ./textmodes/underline.elc ./thingatpt.el ./thingatpt.elc ./thread.el ./thread.elc ./thumbs.el ./thumbs.elc ./time-stamp.el ./time-stamp.elc ./time.el ./time.elc ./timezone.el ./timezone.elc ./tmm.el ./tmm.elc ./tool-bar.el ./tool-bar.elc ./tooltip.el ./tooltip.elc ./tree-widget.el ./tree-widget.elc ./tutorial.el ./tutorial.elc ./type-break.el ./type-break.elc ./uniquify.el ./uniquify.elc ./url/ ./url/ChangeLog.1 ./url/url-about.el ./url/url-about.elc ./url/url-auth.el ./url/url-auth.elc ./url/url-cache.el ./url/url-cache.elc ./url/url-cid.el ./url/url-cid.elc ./url/url-cookie.el ./url/url-cookie.elc ./url/url-dav.el ./url/url-dav.elc ./url/url-dired.el ./url/url-dired.elc ./url/url-domsuf.el ./url/url-domsuf.elc ./url/url-expand.el ./url/url-expand.elc ./url/url-file.el ./url/url-file.elc ./url/url-ftp.el ./url/url-ftp.elc ./url/url-future.el ./url/url-future.elc ./url/url-gw.el ./url/url-gw.elc ./url/url-handlers.el ./url/url-handlers.elc ./url/url-history.el ./url/url-history.elc ./url/url-http.el ./url/url-http.elc ./url/url-imap.el ./url/url-imap.elc ./url/url-irc.el ./url/url-irc.elc ./url/url-ldap.el ./url/url-ldap.elc ./url/url-mailto.el ./url/url-mailto.elc ./url/url-methods.el ./url/url-methods.elc ./url/url-misc.el ./url/url-misc.elc ./url/url-news.el ./url/url-news.elc ./url/url-nfs.el ./url/url-nfs.elc ./url/url-parse.el ./url/url-parse.elc ./url/url-privacy.el ./url/url-privacy.elc ./url/url-proxy.el ./url/url-proxy.elc ./url/url-queue.el ./url/url-queue.elc ./url/url-tramp.el ./url/url-tramp.elc ./url/url-util.el ./url/url-util.elc ./url/url-vars.el ./url/url-vars.elc ./url/url.el ./url/url.elc ./userlock.el ./userlock.elc ./vc/ ./vc/add-log.el ./vc/add-log.elc ./vc/compare-w.el ./vc/compare-w.elc ./vc/cvs-status.el ./vc/cvs-status.elc ./vc/diff-mode.el ./vc/diff-mode.elc ./vc/diff.el ./vc/diff.elc ./vc/ediff-diff.el ./vc/ediff-diff.elc ./vc/ediff-help.el ./vc/ediff-help.elc ./vc/ediff-hook.el ./vc/ediff-hook.elc ./vc/ediff-init.el ./vc/ediff-init.elc ./vc/ediff-merg.el ./vc/ediff-merg.elc ./vc/ediff-mult.el ./vc/ediff-mult.elc ./vc/ediff-ptch.el ./vc/ediff-ptch.elc ./vc/ediff-util.el ./vc/ediff-util.elc ./vc/ediff-vers.el ./vc/ediff-vers.elc ./vc/ediff-wind.el ./vc/ediff-wind.elc ./vc/ediff.el ./vc/ediff.elc ./vc/emerge.el ./vc/emerge.elc ./vc/log-edit.el ./vc/log-edit.elc ./vc/log-view.el ./vc/log-view.elc ./vc/pcvs-defs.el ./vc/pcvs-defs.elc ./vc/pcvs-info.el ./vc/pcvs-info.elc ./vc/pcvs-parse.el ./vc/pcvs-parse.elc ./vc/pcvs-util.el ./vc/pcvs-util.elc ./vc/pcvs.el ./vc/pcvs.elc ./vc/smerge-mode.el ./vc/smerge-mode.elc ./vc/vc-annotate.el ./vc/vc-annotate.elc ./vc/vc-bzr.el ./vc/vc-bzr.elc ./vc/vc-cvs.el ./vc/vc-cvs.elc ./vc/vc-dav.el ./vc/vc-dav.elc ./vc/vc-dir.el ./vc/vc-dir.elc ./vc/vc-dispatcher.el ./vc/vc-dispatcher.elc ./vc/vc-filewise.el ./vc/vc-filewise.elc ./vc/vc-git.el ./vc/vc-git.elc ./vc/vc-hg.el ./vc/vc-hg.elc ./vc/vc-hooks.el ./vc/vc-hooks.elc ./vc/vc-mtn.el ./vc/vc-mtn.elc ./vc/vc-rcs.el ./vc/vc-rcs.elc ./vc/vc-sccs.el ./vc/vc-sccs.elc ./vc/vc-src.el ./vc/vc-src.elc ./vc/vc-svn.el ./vc/vc-svn.elc ./vc/vc.el ./vc/vc.elc ./vcursor.el ./vcursor.elc ./version.el ./version.elc ./view.el ./view.elc ./vt-control.el ./vt-control.elc ./vt100-led.el ./vt100-led.elc ./w32-fns.el ./w32-fns.elc ./w32-vars.el ./w32-vars.elc ./wdired.el ./wdired.elc ./whitespace.el ./whitespace.elc ./wid-browse.el ./wid-browse.elc ./wid-edit.el ./wid-edit.elc ./widget.el ./widget.elc ./windmove.el ./windmove.elc ./window.el ./window.elc ./winner.el ./winner.elc ./woman.el ./woman.elc ./x-dnd.el ./x-dnd.elc ./xdg.el ./xdg.elc ./xml.el ./xml.elc ./xt-mouse.el ./xt-mouse.elc ./xwidget.el ./xwidget.elc rm -f "/home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.50/lisp/subd= irs.el" umask 022; ../emacs/build-aux/update-subdirs "/home/cramaph1/emacs-native-= comp/dest/share/emacs/28.0.50/lisp" subdir=3D"/home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.50/site-l= isp" ; \ if [ -f "${subdir}/subdirs.el" ]; then true; else umask 022; /usr/bin/mk= dir -p "${subdir}"; (echo "(if (fboundp 'normal-top-level-add-subdirs-to-l= oad-path)"; echo " (normal-top-level-add-subdirs-to-load-path))") > "${= subdir}/subdirs.el"; fi subdir=3D"/home/cramaph1/emacs-native-comp/dest/share/emacs/site-lisp" ; \ if [ -f "${subdir}/subdirs.el" ]; then true; else umask 022; /usr/bin/mk= dir -p "${subdir}"; (echo "(if (fboundp 'normal-top-level-add-subdirs-to-l= oad-path)"; echo " (normal-top-level-add-subdirs-to-load-path))") > "${= subdir}/subdirs.el"; fi || true [ -z "" ] || { \ echo "Compressing *.el etc. ..." && \ cd "/home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.50/lisp" && \ for f in `find . -name "*.elc" -print | sed 's/.elc$/.el/'`; do \ -9n "$f"; \ done; \ -9n "../etc/publicsuffix.txt"; \ } chmod -R a+r "/home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.50" "= /home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.50/etc" "/home/cram= aph1/emacs-native-comp/dest/share/emacs/28.0.50/lisp" unset CDPATH; \ umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/share/= emacs/28.0.50/etc" ; \ exp_etcdocdir=3D`cd "/home/cramaph1/emacs-native-comp/dest/share/emacs/28.= 0.50/etc"; /bin/pwd`; \ if [ "`cd ./etc; /bin/pwd`" !=3D "$exp_etcdocdir" ]; \ then \ docfile=3D"DOC"; \ printf 'Copying %s to %s ...\n' "etc/$docfile" \ "/home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.50/etc"; \ /usr/bin/install -c -m 644 etc/${docfile} "/home/cramaph1/emacs-native-= comp/dest/share/emacs/28.0.50/etc/${docfile}"; \ for installuser in ${LOGNAME} ${USERNAME} ${USER} `(id -u) 2> /dev/null= `; do [ -n "${installuser}" ] && break ; done; installgroup=3D`(id -g) 2>/= dev/null` && [ -n "$installgroup" ] && installuser=3D$installuser:$install= group; \ chown ${installuser} "/home/cramaph1/emacs-native-comp/dest/share/ema= cs/28.0.50/etc/${docfile}" || true ; \ else true; fi Copying etc/DOC to /home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.= 50/etc ... make -C nt install make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/nt' Installing utilities run internally by Emacs. umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/libexe= c/emacs/28.0.50/x86_64-w64-mingw32" exp_archlibdir=3D`cd "/home/cramaph1/emacs-native-comp/dest/libexec/emacs/= 28.0.50/x86_64-w64-mingw32" && /bin/pwd`; \ if [ "$exp_archlibdir" !=3D "`/bin/pwd`" ]; then \ for file in cmdproxy.exe ddeclient.exe; do \ /usr/bin/install -c $file "/home/cramaph1/emacs-native-comp/dest/libe= xec/emacs/28.0.50/x86_64-w64-mingw32/$file" ; \ done ; \ fi Installing utilities for users to run. umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/bin" for file in runemacs.exe addpm.exe ; do \ /usr/bin/install -c ${file} "/home/cramaph1/emacs-native-comp/dest/bin"= /`echo ${file} | sed -e 's/.exe$//' -e 's,x,x,'`.exe ; \ done /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/share/emacs/28.0.= 50" /usr/bin/install -c -m 644 ../../emacs/nt/README.W32 "/home/cramaph1/emacs= -native-comp/dest/share/emacs/28.0.50" make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/nt' umask 022; /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/bin" make -C lib-src install make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/lib-sr= c' Installing utilities run internally by Emacs. umask 022 && /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/libe= xec/emacs/28.0.50/x86_64-w64-mingw32" exp_archlibdir=3D`cd "/home/cramaph1/emacs-native-comp/dest/libexec/emacs/= 28.0.50/x86_64-w64-mingw32" && /bin/pwd` && \ if [ "$exp_archlibdir" !=3D "`/bin/pwd`" ]; then \ for file in hexl.exe movemail.exe ; do \ /usr/bin/install -c $file \ "/home/cramaph1/emacs-native-comp/dest/libexec/emacs/28.0.50/x86_64-= w64-mingw32/$file" || exit; \ done ; \ fi exp_archlibdir=3D`cd "/home/cramaph1/emacs-native-comp/dest/libexec/emacs/= 28.0.50/x86_64-w64-mingw32" && /bin/pwd` && \ if [ "$exp_archlibdir" !=3D "`cd ../../emacs/lib-src && /bin/pwd`" ]; then= \ for file in rcs2log; do \ /usr/bin/install -c ../../emacs/lib-src/$file \ "/home/cramaph1/emacs-native-comp/dest/libexec/emacs/28.0.50/x86_64-= w64-mingw32/$file" || exit; \ done ; \ fi Installing utilities for users to run. umask 022 && /usr/bin/mkdir -p "/home/cramaph1/emacs-native-comp/dest/bin" for file in etags.exe ctags.exe emacsclient.exe emacsclientw.exe ebrowse.e= xe ; do \ /usr/bin/install -c ${file} \ "/home/cramaph1/emacs-native-comp/dest/bin"/` \ echo ${file} | sed -e 's/.exe$//' -e 's,x,x,' \ `.exe || exit; \ done make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lib-src= ' /usr/bin/install -c src/emacs.exe "/home/cramaph1/emacs-native-comp/dest/= bin/`echo emacs-28.0.50 | sed 's,x,x,'`.exe" /usr/bin/install -c -m 644 src/emacs.pdmp "/home/cramaph1/emacs-native-com= p/dest/libexec/emacs/28.0.50/x86_64-w64-mingw32"/emacs.pdmp chmod 755 "/home/cramaph1/emacs-native-comp/dest/bin/`echo emacs-28.0.50 |= sed 's,x,x,'`.exe" rm -f "/home/cramaph1/emacs-native-comp/dest/bin/`echo emacs | sed 's,x,x,= '`.exe" cd "/home/cramaph1/emacs-native-comp/dest/bin" && /bin/ln "`echo emacs-28.= 0.50 | sed 's,x,x,'`.exe" "`echo emacs | sed 's,x,x,'`.exe" make -C lib-src maybe-blessmail make[1]: Entering directory '/home/cramaph1/emacs-native-comp/build/lib-sr= c' make[1]: Nothing to be done for 'maybe-blessmail'. make[1]: Leaving directory '/home/cramaph1/emacs-native-comp/build/lib-src= ' find native-lisp -type f -exec /usr/bin/install -c -m 644 -D "{}" ""/home/= cramaph1/emacs-native-comp/dest/lib/emacs/28.0.50/"{}" \; --abmob-0914ffa9-917a-4174-8ff6-a63a6d8b7d7e-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 07:08:20 2020 Received: (at 45303) by debbugs.gnu.org; 21 Dec 2020 12:08:20 +0000 Received: from localhost ([127.0.0.1]:46460 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krJzA-0006No-AO for submit@debbugs.gnu.org; Mon, 21 Dec 2020 07:08:20 -0500 Received: from mab.sdf.org ([205.166.94.33]:37354 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krJz7-0006NM-DX for 45303@debbugs.gnu.org; Mon, 21 Dec 2020 07:08:19 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1krJz4-0007SD-Ky; Mon, 21 Dec 2020 12:08:14 +0000 From: Andrea Corallo To: Pal Gloss Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> Date: Mon, 21 Dec 2020 12:08:14 +0000 In-Reply-To: (Pal Gloss's message of "Mon, 21 Dec 2020 11:10:15 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Pal Gloss writes: >> There are still problems related to the usage of Fdirectory_files and >> internal_condition_case_5 I think. At least, I get a crash after the >> bootstrap is dumped (? see attached build log) >> >> Debugger entered--Lisp error: (wrong-type-argument wholenump t) > > Despite 2526032ea954671aa48a6ad6d924df2941a8364a, this error still happens: > Qt and Qnil should be swapped (see sed script at the bottom of the mail > inside my build commands or the git diff in the build log). Hi Pal thanks for trying. I don't like to run or decript scripts, I like to review and apply patches from contributors, why don't you submit one for this? :) >> >> With 407fb16583 I think '-lgccjit' should be unnecessary on Windows now, is it? >> > >> > It is still needed, see my previous mail. But adding -lgccjit allows the build >> > to proceed but crashes later on. >> >> Hopefully this is fixed now by 3bb2fd0c58? > > Not quite: -lgccjit was still needed for strsignal. Note that the strsignal is a > double problem: > 1. Because configure can link the test program with the call to strsignal because > libgccjit exports it (though Eli argues it shouldn't and I've reported an issue > to the mingw64-packages repository), no special provision is made to include a > header defining the function. Hence, during compilation, there are several > warnings that gcc assumes that strsignal returns an int and has to cast it to > const char*. Eli is right, mingw64 should fix this. We might provide the prototype ourselfs but I don't think is a good idea. I think is probably better not to define HAVE_STRSIGNAL depending on libgccjit. Andrea From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 11:21:50 2020 Received: (at 45303) by debbugs.gnu.org; 21 Dec 2020 16:21:50 +0000 Received: from localhost ([127.0.0.1]:48106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krNwU-00064N-F1 for submit@debbugs.gnu.org; Mon, 21 Dec 2020 11:21:50 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43844) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krNwS-000647-Gi for 45303@debbugs.gnu.org; Mon, 21 Dec 2020 11:21:49 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40103) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1krNwN-0006uQ-5v; Mon, 21 Dec 2020 11:21:43 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3885 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1krNwM-0008GH-Bc; Mon, 21 Dec 2020 11:21:42 -0500 Date: Mon, 21 Dec 2020 18:21:28 +0200 Message-Id: <83h7ofruyf.fsf@gnu.org> From: Eli Zaretskii To: Pal Gloss In-Reply-To: (message from Pal Gloss on Mon, 21 Dec 2020 11:10:15 +0100) Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Pal Gloss > Date: Mon, 21 Dec 2020 11:10:15 +0100 > > Not quite: -lgccjit was still needed for strsignal. Note that the strsignal is a > double problem: > 1. Because configure can link the test program with the call to strsignal because > libgccjit exports it (though Eli argues it shouldn't and I've reported an issue > to the mingw64-packages repository), no special provision is made to include a > header defining the function. Hence, during compilation, there are several > warnings that gcc assumes that strsignal returns an int and has to cast it to > const char*. > 2. Because -lgccjit is not added to LIBGCCJIT (it is supposed to be loaded > dynamically, if I understood it right), strsignal is not found at linking time. > > So, even when hacking the LIBGCCJIT to contain -lgccjit in src/Makefile, I'm just > allowing the linking to succeed, but probably risk a crash because the linked > function strsignal does not match the implicit definition assumed by gcc (?). > > In the end, I've applied (see sed script at the bottom of the mail > inside my build commands or the git diff in the build log) AndyM's suggestion > (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45303#83) to nt/mingw-cfg.site. I think this is the correct solution in this case. No matter what the MSYS2 folks do with the original problem, MinGW doesn't have strsignal and won't have it any time soon, so telling this to configure in mingw.site cannot possibly do any harm. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 12:41:34 2020 Received: (at submit) by debbugs.gnu.org; 21 Dec 2020 17:41:34 +0000 Received: from localhost ([127.0.0.1]:48224 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krPBe-0008Ki-8n for submit@debbugs.gnu.org; Mon, 21 Dec 2020 12:41:34 -0500 Received: from lists.gnu.org ([209.51.188.17]:58366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krPBc-0008Ka-QN for submit@debbugs.gnu.org; Mon, 21 Dec 2020 12:41:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krPBc-0003Qe-HQ for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 12:41:32 -0500 Received: from ciao.gmane.io ([116.202.254.214]:59604) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krPBb-000130-9f for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 12:41:32 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1krPBZ-0000FG-5u for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 18:41:29 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Mon, 21 Dec 2020 17:41:24 +0000 Message-ID: <86zh27cb0b.fsf@gmail.com> References: <83k0te6c7i.fsf@gnu.org> <86im8w4t7y.fsf@gmail.com> <86v9cw5697.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:IQhRVvYkmZYpz7kqLkL6gnFZo24= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 25 X-Spam_score: 2.5 X-Spam_bar: ++ X-Spam_report: (2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9, PDS_OTHER_BAD_TLD=1.999, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Mon 21 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of > text editors" writes: > > [...] > >> IIUC compilation-wise we are left only with the zlib issue now. > > Ah yeah and the `strsignal' issue too, but ATM that's not clear if this > is something we want to workaround in our code or not. Yes. If the distro libgccjit packages are updated to avoid exporting strsignal then this problem should go away: otherwise, a workaround is to add ac_cv_func_strsignal=no in nt/mingw-cfg.site. AndyM From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 13:03:15 2020 Received: (at 45303) by debbugs.gnu.org; 21 Dec 2020 18:03:15 +0000 Received: from localhost ([127.0.0.1]:48264 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krPWc-0000Pw-4i for submit@debbugs.gnu.org; Mon, 21 Dec 2020 13:03:14 -0500 Received: from mail-ej1-f42.google.com ([209.85.218.42]:37154) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krPWa-0000Pg-4Y for 45303@debbugs.gnu.org; Mon, 21 Dec 2020 13:03:13 -0500 Received: by mail-ej1-f42.google.com with SMTP id ga15so14694045ejb.4 for <45303@debbugs.gnu.org>; Mon, 21 Dec 2020 10:03:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=gcWUdnXX0ybwBYUtaFxdBtpW4potzaU3zPmTMDcIgZU=; b=OKigJav7jkA+L0b0NJJY/I/n/yB7k8id60rQA9blS/WMi7EtAy3cs5JvZ5EbrU3F+s trKGfwiukYiw69anf4hcDaIykDAUVrExvXxnaLXrw8OOexWkj7+wg6V2qokIOSjan4QE WkSlZUiVAefbNdeWeG+Xscn5SEgJEQ5erBl0YqBmenolI484JbTMICRwoP7qNvPo27Ih +57ix5BpJ0VCQtP1Kq2/84V0z7SlSHmAD2CIapSjaDD5+6KfXjKB1X3SGnVNVQ5GiMNb oXvdCjtuz+mBji4WRhicbtWdesDGr2hjFL35kJpNL29/92JQA6xXeg3vwB/qpL8UrSrT dNTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=gcWUdnXX0ybwBYUtaFxdBtpW4potzaU3zPmTMDcIgZU=; b=pXiwkLR4ZUHi6mObFlTgb8knzWqNfd4TlBMdwIyiG/CHv6s3JacuJ5uUNFXrpBTy+l 6qO8b+mW2GGZozSxPTG9Xcs+h+7ZEvY3nlGq4/N2tyL2KAUkpTVYoo4RyyWjzCX4I9ix Uclh8DsLkc2SJ4ZW8ZN7j+C4WzHwoi0yiaXl8WToZQqgmfYnk4jvFjOJZSgO+oC+v+7p TDqQmv3bUhzFk/LXutsp0ybUl/EeaMdXA/7hH6NOn3MkyOI2kH7ivfP/Gpwg6/YERIH8 4EiHiO3N/SGeBwusEVaOUGcXW+IOaYXRw/af7WQe/CVqs+ut9Ym03upRTy7i+yitVsvq MtRQ== X-Gm-Message-State: AOAM530CeqvwsoKD0egfCQ+M9nBcPlxcS6bekB5IjbGNOoNkxAe2K2hX u4MS5dP+yztqi9bH1j99UOj6bz7mOIXRy64FZZNaT9r8VcE= X-Google-Smtp-Source: ABdhPJxM/la4FkbeCGduG7s4tx3DtxXRdCbviYMN4JRxnz3MLgexLLP+JAcf7VCj0B5af8M8IxbxrOzbUDH3WbKilZg= X-Received: by 2002:a17:906:f894:: with SMTP id lg20mr16404142ejb.348.1608573785639; Mon, 21 Dec 2020 10:03:05 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?B?TGnEgXUsIEtpb25nLUfEkyDlu5blrq7mr4U=?= Date: Mon, 21 Dec 2020 12:02:53 -0600 Message-ID: Subject: Re: bug#45303: 28.0.50; [feature/native-comp] comp.c compilation error on Windows 10 To: 45303@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Following Pal's script in #173, I can compile emacs native-comp without out problems, however, when I try to run native-compile function at a IELM prompt, I got the following error message: comp--native-compile: Native compiler error: (lambda (arg0 &optional arg1) (let ((f #'delete-char)) (funcall f arg0 arg1))), ""Invalid face attribute :background nil Not sure if it's caused by some patches to comp.c Thanks, Kiong-Ge. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 17:47:11 2020 Received: (at submit) by debbugs.gnu.org; 21 Dec 2020 22:47:11 +0000 Received: from localhost ([127.0.0.1]:48508 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krTxP-0007Dp-BE for submit@debbugs.gnu.org; Mon, 21 Dec 2020 17:47:11 -0500 Received: from lists.gnu.org ([209.51.188.17]:43708) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krTxM-0007Dh-GO for submit@debbugs.gnu.org; Mon, 21 Dec 2020 17:47:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:51480) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krTxL-0005Vo-NU for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 17:47:07 -0500 Received: from ciao.gmane.io ([116.202.254.214]:51902) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krTxK-0007IV-7j for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 17:47:07 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1krTxI-0006z2-NP for bug-gnu-emacs@gnu.org; Mon, 21 Dec 2020 23:47:04 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Mon, 21 Dec 2020 22:46:58 +0000 Message-ID: <86y2hqzsil.fsf@gmail.com> References: <83k0te6c7i.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:C+o8Ll8OMDs6b2FEbEyeQYkwwhk= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 5 X-Spam_score: 0.5 X-Spam_bar: / X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Mon 21 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > Pal Gloss writes: > >>> There are still problems related to the usage of Fdirectory_files and >>> internal_condition_case_5 I think. At least, I get a crash after the >>> bootstrap is dumped (? see attached build log) >>> >>> Debugger entered--Lisp error: (wrong-type-argument wholenump t) >> >> Despite 2526032ea954671aa48a6ad6d924df2941a8364a, this error still happens: >> Qt and Qnil should be swapped (see sed script at the bottom of the mail >> inside my build commands or the git diff in the build log). > > Hi Pal thanks for trying. > > I don't like to run or decript scripts, I like to review and apply > patches from contributors, why don't you submit one for this? :) The fix needed here is another tweak to eln_load_path_final_clean_up: the arguments for internal_condition_case_5 should end "Qnil, Qt, return_nil". After fixing that then a bootstrap build completes without crashes. Other issues noted when running the uninstalled emacs from build dir: a) The ELN compile step is very slow during bootstrap. b) The built emacs will run uninstalled (i.e. directly from the build tree), but is almost unusable as the async ELN compile make emacs very unresponsive to input. c) The .eln files for a few core .el files are built in: /native-lisp/--/*.eln The async compile puts .eln files in: $HOME/.emacs.d/eln-cache/--/*.eln Q1: Why are the compiled files not added to builddir/lisp-native ? Q2: Why are the directory and filenames so long ? Q3: Why are the directory names different ? This needs a heirarchy of files named after a hash of their content. This problem has been solved by git, mercurial etc, and it would be better to use a similar layout, and learn lessons from those tools for how to do so efficiently. Q4: Why are the lisp files not *all* precompiled as part of the build ? Q5: What can be done to improve the slow compile time ? Q6: Why are the built files so large ? For example: 47609 abbrev.el 40298 abbrev.elc 174799 abbrev-2af30c9ac0795d54ce43b6286aa259ff-a03852565cd14ed2eaa6f4159b530c2e.eln Thanks for working on this, AndyM From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 03:47:29 2020 Received: (at 45303) by debbugs.gnu.org; 22 Dec 2020 08:47:29 +0000 Received: from localhost ([127.0.0.1]:48903 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krdKK-0001x9-MQ for submit@debbugs.gnu.org; Tue, 22 Dec 2020 03:47:29 -0500 Received: from mx.sdf.org ([205.166.94.24]:52837) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krdKG-0001wq-63 for 45303@debbugs.gnu.org; Tue, 22 Dec 2020 03:47:27 -0500 Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTP id 0BM8lKft011184; Tue, 22 Dec 2020 08:47:20 GMT From: Andrea Corallo To: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <83k0te6c7i.fsf@gnu.org> <86y2hqzsil.fsf@gmail.com> Date: Tue, 22 Dec 2020 08:47:20 +0000 In-Reply-To: <86y2hqzsil.fsf@gmail.com> (Andy Moreton's message of "Mon, 21 Dec 2020 22:46:58 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andy Moreton writes: > On Mon 21 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > >> Pal Gloss writes: >> >>>> There are still problems related to the usage of Fdirectory_files and >>>> internal_condition_case_5 I think. At least, I get a crash after the >>>> bootstrap is dumped (? see attached build log) >>>> >>>> Debugger entered--Lisp error: (wrong-type-argument wholenump t) >>> >>> Despite 2526032ea954671aa48a6ad6d924df2941a8364a, this error still happens: >>> Qt and Qnil should be swapped (see sed script at the bottom of the mail >>> inside my build commands or the git diff in the build log). >> >> Hi Pal thanks for trying. >> >> I don't like to run or decript scripts, I like to review and apply >> patches from contributors, why don't you submit one for this? :) > > The fix needed here is another tweak to eln_load_path_final_clean_up: > the arguments for internal_condition_case_5 should end "Qnil, Qt, > return_nil". After fixing that then a bootstrap build completes without > crashes. I'm sorry this week I'm rather busy progressing on new features plus I cannot test Windows patches and this makes it very time consuming. As I've said more then once on this thread: patches are welcome. > Other issues noted when running the uninstalled emacs from build dir: I think these are off topic for this thread but quickly: > a) The ELN compile step is very slow during bootstrap. On my machine make bootstrap is ~2.5x slower than vanilla build. > b) The built emacs will run uninstalled (i.e. directly from the build > tree), but is almost unusable as the async ELN compile make emacs > very unresponsive to input. You can customize `comp-async-jobs-number'. The default works well on most systems but probably is not optimal for your machine. > c) The .eln files for a few core .el files are built in: > /native-lisp/--/*.eln > > The async compile puts .eln files in: > $HOME/.emacs.d/eln-cache/--/*.eln > > Q1: Why are the compiled files not added to builddir/lisp-native ? > Q2: Why are the directory and filenames so long ? > Q3: Why are the directory names different ? > This needs a heirarchy of files named after a hash of their content. > This problem has been solved by git, mercurial etc, and it would be > better to use a similar layout, and learn lessons from those tools > for how to do so efficiently. Are you asking at the same time how the current system works and suggesting how it should? > Q4: Why are the lisp files not *all* precompiled as part of the > build ? make bootstrap NATIVE_FULL_AOT=1 > Q5: What can be done to improve the slow compile time ? I've never had the time to optimize the Lisp side of the compiler, last week I did some profiling and made an idea on where and how to take action. I'll be on that in the new year, the current one has been mostly on debug and integration. > Q6: Why are the built files so large ? If you want a more compact representation of the code byte-code is probably a better format than native code. Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 10:47:41 2020 Received: (at 45303) by debbugs.gnu.org; 22 Dec 2020 15:47:41 +0000 Received: from localhost ([127.0.0.1]:50764 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krjsz-0002J4-D6 for submit@debbugs.gnu.org; Tue, 22 Dec 2020 10:47:41 -0500 Received: from mail2.protonmail.ch ([185.70.40.22]:48953) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krjsw-0002In-EV for 45303@debbugs.gnu.org; Tue, 22 Dec 2020 10:47:40 -0500 Date: Tue, 22 Dec 2020 15:47:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1608652051; bh=f61GsYo7po9Mw8sdXceU4/xc5OQ6/N2JEAzqi0/HJ4g=; h=Date:To:From:Reply-To:Subject:From; b=pTTJ+5zcd1i+FH7KDfssGwGYXdxNkcCt3Fu9M9iobs6gAcpNheC4B4rRd+XAvVJ1x ymODToIvDAyHAzxxFL+ne3jY0P4w8FRpxeuoCEKjrQLkpvHH5gRKtqiaNML389CGOe aK9ceBKY3bz8g0HrY54LZSJ9IOHPnONWc2EfEbUuwWQ9Qn7k/j8pfs1+0Vu3CVRlpF 8h956lswqq0toXLzYOmKdXhS7I4TyZUN0fqx1pZuzBp7o+x6+B7JBtKK7qhjIN1Ebl 57LAJ9U3uvgu0e8K5QerI+Mn9RjvHWf29Is177+fSW/uihd64elWYzdnwZXJqGHB3E 7yr2AZKxn8hyw== To: "45303@debbugs.gnu.org" <45303@debbugs.gnu.org>, "akrl@sdf.org" , "pcfeb0009@gmx.com" From: "gliao.tw@pm.me" Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Message-ID: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_7ZXKdgcpIzflHmTzbXRe8rjaQfEoJ6qk9AHB1Q7Ra4c" X-Spam-Status: No, score=0.8 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,PDS_OTHER_BAD_TLD shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45303 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: "gliao.tw@pm.me" Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --b1_7ZXKdgcpIzflHmTzbXRe8rjaQfEoJ6qk9AHB1Q7Ra4c Content-Type: multipart/alternative; boundary="b2_7ZXKdgcpIzflHmTzbXRe8rjaQfEoJ6qk9AHB1Q7Ra4c" --b2_7ZXKdgcpIzflHmTzbXRe8rjaQfEoJ6qk9AHB1Q7Ra4c Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGkgQW5kcmVhIGFuZCBQYWwsCgp0aGUgYXR0YWNoZWQgZmlsZSBpcyB0aGUgcGF0Y2ggYXBwbGlj YWJsZSB0byBzbmFwc2hvdCBhZnRlciBjb21taXQgWzk2NzZlNGQ3NzY2Y2VhNjQ3YTRlMmI5ZTI3 ZmFkOTc0NzliNDE4ZGVdKGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9jZ2l0L2VtYWNzLmdp dC9jb21taXQvP2g9ZmVhdHVyZS9uYXRpdmUtY29tcCZpZD05Njc2ZTRkNzc2NmNlYTY0N2E0ZTJi OWUyN2ZhZDk3NDc5YjQxOGRlKQoKS2lvbmctR2Uu --b2_7ZXKdgcpIzflHmTzbXRe8rjaQfEoJ6qk9AHB1Q7Ra4c Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGRpdj5IaSBBbmRyZWEgYW5kIFBhbCwmbmJzcDs8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRp dj50aGUgYXR0YWNoZWQgZmlsZSBpcyB0aGUgcGF0Y2ggYXBwbGljYWJsZSB0byBzbmFwc2hvdCBh ZnRlciBjb21taXQmbmJzcDs8YSBocmVmPSJodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvY2dp dC9lbWFjcy5naXQvY29tbWl0Lz9oPWZlYXR1cmUvbmF0aXZlLWNvbXAmYW1wO2lkPTk2NzZlNGQ3 NzY2Y2VhNjQ3YTRlMmI5ZTI3ZmFkOTc0NzliNDE4ZGUiIHN0eWxlPSJjb2xvcjogYmx1ZTsgdGV4 dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ij48YnI+OTY3NmU0ZDc3NjZjZWE2NDdhNGUyYjllMjdm YWQ5NzQ3OWI0MThkZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9i bG9jayBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1lbXB0eSI+PGRpdiBjbGFzcz0icHJvdG9u bWFpbF9zaWduYXR1cmVfYmxvY2stdXNlciBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1lbXB0 eSI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLXByb3Rv biBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1lbXB0eSI+PGJyPjwvZGl2PjwvZGl2PjxkaXY+ PGJyPjwvZGl2PjxkaXY+S2lvbmctR2UuJm5ic3A7PC9kaXY+ --b2_7ZXKdgcpIzflHmTzbXRe8rjaQfEoJ6qk9AHB1Q7Ra4c-- --b1_7ZXKdgcpIzflHmTzbXRe8rjaQfEoJ6qk9AHB1Q7Ra4c Content-Type: text/x-patch; name=patch_for_9676e4d7766cea647a4e2b9e27fad97479b418de.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=patch_for_9676e4d7766cea647a4e2b9e27fad97479b418de.patch ZGlmZiAtcnVOIHNyYy1vcmlnL250L21pbmd3LWNmZy5zaXRlIHNyYy9udC9taW5ndy1jZmcuc2l0 ZQotLS0gc3JjLW9yaWcvbnQvbWluZ3ctY2ZnLnNpdGUJMjAyMC0xMi0yMiAxNTozNjoxOC40Mjkx MDg0NDMgKzAwMDAKKysrIHNyYy9udC9taW5ndy1jZmcuc2l0ZQkyMDIwLTEyLTIyIDE1OjM3OjE4 LjA5OTk1MzQ1NyArMDAwMApAQCAtMTU2LDMgKzE1Niw1IEBACiAjIFdlIGRvbid0IHdhbnQgdG8g YnVpbGQgRW1hY3Mgc28gaXQgZGVwZW5kcyBvbiBiY3J5cHQuZGxsLCBzaW5jZSB0aGVuCiAjIGl0 IHdpbGwgcmVmdXNlIHRvIHN0YXJ0IG9uIHN5c3RlbXMgd2hlcmUgdGhhdCBETEwgaXMgYWJzZW50 LgogZ2xfY3ZfbGliX2Fzc3VtZV9iY3J5cHQ9bm8KKyMgZm9yY2Ugc3Ryc2lnbmFsIGZyb20gZ251 bGliIHRvIGJlIHVzZWQgKGNmIGh0dHBzOi8vZGViYnVncy5nbnUub3JnL2NnaS9idWdyZXBvcnQu Y2dpP2J1Zz00NTMwMyM4MykKK2FjX2N2X2Z1bmNfc3Ryc2lnbmFsPW5vCmRpZmYgLXJ1TiBzcmMt b3JpZy9zcmMvY29tcC5jIHNyYy9zcmMvY29tcC5jCi0tLSBzcmMtb3JpZy9zcmMvY29tcC5jCTIw MjAtMTItMjIgMTU6MzY6MTguNDM3MTA4Mjg5ICswMDAwCisrKyBzcmMvc3JjL2NvbXAuYwkyMDIw LTEyLTIyIDE1OjM3OjU5LjQxMTE1MjM1OCArMDAwMApAQCAtNDUzNCw3ICs0NTM0LDcgQEAKIAkJ CQkgICBjb25jYXQyIChYQ0FSIChkaXJfdGFpbCksCiAJCQkJCSAgICBWY29tcF9uYXRpdmVfdmVy c2lvbl9kaXIpLAogCQkJCSAgIFF0LCBidWlsZF9zdHJpbmcgKCJcXC5lbG5cXC5vbGRcXCciKSwg UW5pbCwKLQkJCQkgICBRdCwgUW5pbCwgcmV0dXJuX25pbCk7CisJCQkJICAgUW5pbCwgUXQsIHJl dHVybl9uaWwpOwogICAgICAgRk9SX0VBQ0hfVEFJTCAoZmlsZXNfaW5fZGlyKQogCUZkZWxldGVf ZmlsZSAoWENBUiAoZmlsZXNfaW5fZGlyKSwgUW5pbCk7CiAgICAgfQo= --b1_7ZXKdgcpIzflHmTzbXRe8rjaQfEoJ6qk9AHB1Q7Ra4c-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 14:15:07 2020 Received: (at 45303) by debbugs.gnu.org; 22 Dec 2020 19:15:07 +0000 Received: from localhost ([127.0.0.1]:50937 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krn7j-0007iI-Bg for submit@debbugs.gnu.org; Tue, 22 Dec 2020 14:15:07 -0500 Received: from mx.sdf.org ([205.166.94.24]:60236) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krn7g-0007eW-KE for 45303@debbugs.gnu.org; Tue, 22 Dec 2020 14:15:05 -0500 Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTP id 0BMJF27n008713; Tue, 22 Dec 2020 19:15:03 GMT From: Andrea Corallo To: gliao.tw@pm.me Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> Date: Tue, 22 Dec 2020 19:15:02 +0000 In-Reply-To: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> (gliao's message of "Tue, 22 Dec 2020 15:47:24 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: "pcfeb0009@gmx.com" , "45303@debbugs.gnu.org" <45303@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "gliao.tw@pm.me" writes: > Hi Andrea and Pal, > > the attached file is the patch applicable to snapshot after commit > 9676e4d7766cea647a4e2b9e27fad97479b418de > > Kiong-Ge. Hi Kiong-Ge, thanks for taking the time. Do you have copyright assignment or this goes under the copyright-paperwork-exempt? Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 14:41:44 2020 Received: (at submit) by debbugs.gnu.org; 22 Dec 2020 19:41:44 +0000 Received: from localhost ([127.0.0.1]:50958 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krnXU-00020D-2P for submit@debbugs.gnu.org; Tue, 22 Dec 2020 14:41:44 -0500 Received: from lists.gnu.org ([209.51.188.17]:35450) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krnXQ-000204-SJ for submit@debbugs.gnu.org; Tue, 22 Dec 2020 14:41:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35636) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krnXQ-0006bs-Kw for bug-gnu-emacs@gnu.org; Tue, 22 Dec 2020 14:41:40 -0500 Received: from ciao.gmane.io ([116.202.254.214]:49498) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krnXP-0007kz-9x for bug-gnu-emacs@gnu.org; Tue, 22 Dec 2020 14:41:40 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1krnXM-0000MA-1Y for bug-gnu-emacs@gnu.org; Tue, 22 Dec 2020 20:41:36 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Tue, 22 Dec 2020 19:41:29 +0000 Message-ID: <86lfdpfx1y.fsf@gmail.com> References: <83k0te6c7i.fsf@gnu.org> <86y2hqzsil.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:w97daOTZQ+b3/MVByq2x+AaH3/Y= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 5 X-Spam_score: 0.5 X-Spam_bar: / X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Tue 22 Dec 2020, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: > Andy Moreton writes: [snipped] >> Other issues noted when running the uninstalled emacs from build dir: > > I think these are off topic for this thread but quickly: Agreed, but thanks for giving links to relevant info. I'll read up some more and ask any further questions on emacs-devel. AndyM From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 14:48:52 2020 Received: (at 45303) by debbugs.gnu.org; 22 Dec 2020 19:48:52 +0000 Received: from localhost ([127.0.0.1]:50963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krneN-0002CJ-SL for submit@debbugs.gnu.org; Tue, 22 Dec 2020 14:48:52 -0500 Received: from mail1.protonmail.ch ([185.70.40.18]:59005) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krneI-0002Bv-1v for 45303@debbugs.gnu.org; Tue, 22 Dec 2020 14:48:50 -0500 Date: Tue, 22 Dec 2020 19:48:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1608666519; bh=hp+9jMwoQpH7Iwg7Qm5IoMNY0HEyLO0qPWwwXrUmaIw=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=XmAXD6WDZ3ButR0VemIUn9ryxWJkXWtb88EHJYovpvgs895IMRGtet1iyThl7D1lG 9pQU2jp4mNRpsrWY11natW6b8UK7MFELUzm198Y822yBVFSF96hddRQLB2NAtnaYkT 2wNU8T4xnyYdi4ulGMURw4VmjZwXdVljSaHSSqSTZXrXj6ThO0seRilLkFi4/myoWu wUSHWyKF/sQ8hDYbD5nvB3QDUXRtZZ3AIvhy08Wnm8YQObLF/GFA/HwzOIst3QZSkA 5nw+nMQXQFapQdRWAuIIO/4q1e9Sx1pqPI4LmiBkjQsXT0st4DyUSs2z+hncQfW1/r jXmkMd7+IPwVw== To: Andrea Corallo From: "gliao.tw@pm.me" Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Message-ID: In-Reply-To: References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: "pcfeb0009@gmx.com" , "45303@debbugs.gnu.org" <45303@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: "gliao.tw@pm.me" Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Andrea and Pal, I haven't provide any copyright assignment and I am not sure copyright-pape= rwork exempt is applicable to this patch, as this patch is derived from the= script provided by Pal. I would like to ask Pal if it's okay to Pal that I provide the copyright as= signment. If Pal want to provide the copyright assignment that will be grea= t, if Pal doesn't want to provide copyright assignment and grant me to do s= o, I am glad to provide copyright assignment if needed. Thanks, Kiong-Ge. =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 Original Me= ssage =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 On Tuesday, December 22, 2020 1:15 PM, Andrea Corallo wrote: > %22gliao.tw@pm.me">--protonSignature--"gliao.tw@pm.me" gliao.tw@pm.me wri= tes: > > > Hi Andrea and Pal, > > the attached file is the patch applicable to snapshot after commit > > 9676e4d7766cea647a4e2b9e27fad97479b418de > > Kiong-Ge. > > Hi Kiong-Ge, > > thanks for taking the time. > > Do you have copyright assignment or this goes under the > copyright-paperwork-exempt? > > Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 14:50:07 2020 Received: (at submit) by debbugs.gnu.org; 22 Dec 2020 19:50:07 +0000 Received: from localhost ([127.0.0.1]:50975 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krnfb-0002FV-JC for submit@debbugs.gnu.org; Tue, 22 Dec 2020 14:50:07 -0500 Received: from lists.gnu.org ([209.51.188.17]:43798) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krnfa-0002FN-D9 for submit@debbugs.gnu.org; Tue, 22 Dec 2020 14:50:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39790) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krnfa-0002NV-52 for bug-gnu-emacs@gnu.org; Tue, 22 Dec 2020 14:50:06 -0500 Received: from ciao.gmane.io ([116.202.254.214]:54246) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1krnfY-0002V9-Bg for bug-gnu-emacs@gnu.org; Tue, 22 Dec 2020 14:50:05 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1krnfV-000A6e-Mt for bug-gnu-emacs@gnu.org; Tue, 22 Dec 2020 20:50:01 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Date: Tue, 22 Dec 2020 19:46:19 +0000 Message-ID: <86ft3xfwtw.fsf@gmail.com> References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt) Cancel-Lock: sha1:K0wz5yzr4mos/sAEpc6UpFL3bkg= Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 25 X-Spam_score: 2.5 X-Spam_bar: ++ X-Spam_report: (2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9, PDS_OTHER_BAD_TLD=1.999, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.9 (/) On Tue 22 Dec 2020, gliao.tw--- via "Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > Hi Andrea and Pal, > > the attached file is the patch applicable to snapshot after commit > [9676e4d7766cea647a4e2b9e27fad97479b418de](http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=feature/native-comp&id=9676e4d7766cea647a4e2b9e27fad97479b418de) > > Kiong-Ge. > diff -ruN src-orig/nt/mingw-cfg.site src/nt/mingw-cfg.site > --- src-orig/nt/mingw-cfg.site 2020-12-22 15:36:18.429108443 +0000 > +++ src/nt/mingw-cfg.site 2020-12-22 15:37:18.099953457 +0000 > @@ -156,3 +156,5 @@ > # We don't want to build Emacs so it depends on bcrypt.dll, since then > # it will refuse to start on systems where that DLL is absent. > gl_cv_lib_assume_bcrypt=no > +# force strsignal from gnulib to be used (cf https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45303#83) > +ac_cv_func_strsignal=no This comment is not quite right: Eli pointed out that emacs does not use the gnulib replacement function on Windows. Adding this line to mingw.site ensures that HAVE_STRSIGNAL is not defined in config.h, so the strsignal macro in src/syssignal.h gets used. AndyM From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 15:09:13 2020 Received: (at 45303) by debbugs.gnu.org; 22 Dec 2020 20:09:13 +0000 Received: from localhost ([127.0.0.1]:50995 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krny5-0002lv-11 for submit@debbugs.gnu.org; Tue, 22 Dec 2020 15:09:13 -0500 Received: from mx.sdf.org ([205.166.94.24]:57528) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krny3-0002lm-Cn for 45303@debbugs.gnu.org; Tue, 22 Dec 2020 15:09:12 -0500 Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTP id 0BMK99hh021342; Tue, 22 Dec 2020 20:09:09 GMT From: Andrea Corallo To: gliao.tw@pm.me Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> Date: Tue, 22 Dec 2020 20:09:09 +0000 In-Reply-To: (gliao's message of "Tue, 22 Dec 2020 19:48:34 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: "pcfeb0009@gmx.com" , "45303@debbugs.gnu.org" <45303@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "gliao.tw@pm.me" writes: > Hi Andrea and Pal, > > I haven't provide any copyright assignment and I am not sure > copyright-paperwork exempt is applicable to this patch, as this patch > is derived from the script provided by Pal. Hi Kiong-Ge, the copyright assignment is between you and the fsf, you can see the CONTRIBUTE file under 'Getting involved with development' and 'Commit messages'. This change is sufficently small and simple to go in with the paperwork-exempt. I added a changelog for you tweaked one comment and pushed it as 433ae7b0a5. Are we fine now with the compilation process? Regards Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 15:15:56 2020 Received: (at 45303) by debbugs.gnu.org; 22 Dec 2020 20:15:56 +0000 Received: from localhost ([127.0.0.1]:51008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kro4a-0002xN-CH for submit@debbugs.gnu.org; Tue, 22 Dec 2020 15:15:56 -0500 Received: from mail-40134.protonmail.ch ([185.70.40.134]:12710) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kro4X-0002x2-Kv for 45303@debbugs.gnu.org; Tue, 22 Dec 2020 15:15:55 -0500 Date: Tue, 22 Dec 2020 20:15:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1608668146; bh=6gcGpSP0W594IjIRHLwdZWMhs/URJcQyIBbpgaBmw/k=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=bT65zpAwPQtiRPCCE4hQ4tj4aiwDBYb+O9SK4iYN/1eAmd5epzrWqkaMS1a5moOGz O0wGKftCVLCJOmGVO9v09+Q/k96dTrjRzLL4wbpY2SQvFxL+72x3p3mq3zABo8p9jg VvXG/9dC3j7Nsg0szVlhHxNlPomo1ME4rvwFQp7Msxg2BtdSnaUCXZaDAKmEtGzfqt x5snyBazAIEt3iuOHIgjlxGuVxMh4MzG2cpZHIfOXeW0NruPgZPkZdAhkzKan6lDLB QGZDbCCXl1LKlnxExORl4lc72gOxiC6ZABT8CrxqOVma5pGjhp5Lui4mN3Yf7auPwA muc7kx8e+mf1Q== To: Andrea Corallo From: "gliao.tw@pm.me" Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows Message-ID: In-Reply-To: References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: "pcfeb0009@gmx.com" , "45303@debbugs.gnu.org" <45303@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: "gliao.tw@pm.me" Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andrea, The native-comp branch compiles smoothly with generated executable working = flawlessly under my Msys2 environment on Windows 10. I don't have anything to report now, if no objection from other people, I t= hink we can close this bug. Kiong-Ge. =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 Original Me= ssage =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 On Tuesday, December 22, 2020 2:09 PM, Andrea Corallo wrote: > %22gliao.tw@pm.me">--protonSignature--"gliao.tw@pm.me" gliao.tw@pm.me wri= tes: > > > Hi Andrea and Pal, > > I haven't provide any copyright assignment and I am not sure > > copyright-paperwork exempt is applicable to this patch, as this patch > > is derived from the script provided by Pal. > > Hi Kiong-Ge, > > the copyright assignment is between you and the fsf, you can see the > CONTRIBUTE file under 'Getting involved with development' and 'Commit > messages'. > > This change is sufficently small and simple to go in with the > paperwork-exempt. > > I added a changelog for you tweaked one comment and pushed it as > 433ae7b0a5. > > Are we fine now with the compilation process? > > Regards > > Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 15:22:00 2020 Received: (at 45303) by debbugs.gnu.org; 22 Dec 2020 20:22:00 +0000 Received: from localhost ([127.0.0.1]:51013 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kroAS-00037j-1s for submit@debbugs.gnu.org; Tue, 22 Dec 2020 15:22:00 -0500 Received: from mx.sdf.org ([205.166.94.24]:56849) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kroAP-00037Y-T4 for 45303@debbugs.gnu.org; Tue, 22 Dec 2020 15:21:58 -0500 Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTP id 0BMKLstK018626; Tue, 22 Dec 2020 20:21:55 GMT From: Andrea Corallo To: gliao.tw@pm.me Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> Date: Tue, 22 Dec 2020 20:21:54 +0000 In-Reply-To: (gliao's message of "Tue, 22 Dec 2020 20:15:45 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: "pcfeb0009@gmx.com" , "45303-done@debbugs.gnu.org" <45303@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "gliao.tw@pm.me" writes: > Andrea, > > The native-comp branch compiles smoothly with generated executable working flawlessly under my Msys2 environment on Windows 10. > > I don't have anything to report now, if no objection from other people, I think we can close this bug. Sounds like music to my ears :) Closing, we can always reopen in case. Thanks Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 15:39:41 2020 Received: (at 45303) by debbugs.gnu.org; 22 Dec 2020 20:39:41 +0000 Received: from localhost ([127.0.0.1]:51033 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kroRZ-0003ax-Hm for submit@debbugs.gnu.org; Tue, 22 Dec 2020 15:39:41 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59412) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kroRW-0003ag-Fn for 45303@debbugs.gnu.org; Tue, 22 Dec 2020 15:39:39 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36626) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kroRQ-0003Gn-3T; Tue, 22 Dec 2020 15:39:32 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1120 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kroRP-00020v-Da; Tue, 22 Dec 2020 15:39:31 -0500 Date: Tue, 22 Dec 2020 22:39:18 +0200 Message-Id: <838s9pr2x5.fsf@gnu.org> From: Eli Zaretskii To: Andrea Corallo In-Reply-To: (bug-gnu-emacs@gnu.org) Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: gliao.tw@pm.me, pcfeb0009@gmx.com, 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 22 Dec 2020 20:21:54 +0000 > Cc: "pcfeb0009@gmx.com" , > "45303-done@debbugs.gnu.org" <45303@debbugs.gnu.org> > From: Andrea Corallo via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > "gliao.tw@pm.me" writes: > > > Andrea, > > > > The native-comp branch compiles smoothly with generated executable working flawlessly under my Msys2 environment on Windows 10. > > > > I don't have anything to report now, if no objection from other people, I think we can close this bug. > > Sounds like music to my ears :) Thanks for a job well done, Andrea. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 23 02:02:03 2020 Received: (at 45303) by debbugs.gnu.org; 23 Dec 2020 07:02:03 +0000 Received: from localhost ([127.0.0.1]:51588 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kry9q-0004LM-QW for submit@debbugs.gnu.org; Wed, 23 Dec 2020 02:02:03 -0500 Received: from mx.sdf.org ([205.166.94.24]:53173) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kry9o-0004Kw-9S for 45303@debbugs.gnu.org; Wed, 23 Dec 2020 02:02:01 -0500 Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTP id 0BN71vEc015577; Wed, 23 Dec 2020 07:01:57 GMT From: Andrea Corallo To: Eli Zaretskii Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> <838s9pr2x5.fsf@gnu.org> Date: Wed, 23 Dec 2020 07:01:57 +0000 In-Reply-To: <838s9pr2x5.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 22 Dec 2020 22:39:18 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45303 Cc: gliao.tw@pm.me, pcfeb0009@gmx.com, 45303@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Date: Tue, 22 Dec 2020 20:21:54 +0000 >> Cc: "pcfeb0009@gmx.com" , >> "45303-done@debbugs.gnu.org" <45303@debbugs.gnu.org> >> From: Andrea Corallo via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >> >> "gliao.tw@pm.me" writes: >> >> > Andrea, >> > >> > The native-comp branch compiles smoothly with generated executable working flawlessly under my Msys2 environment on Windows 10. >> > >> > I don't have anything to report now, if no objection from other people, I think we can close this bug. >> >> Sounds like music to my ears :) > > Thanks for a job well done, Andrea. Was good team work, thank you & all. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 26 09:24:31 2020 Received: (at 45303) by debbugs.gnu.org; 26 Dec 2020 14:24:31 +0000 Received: from localhost ([127.0.0.1]:58872 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktAUh-0003tv-C2 for submit@debbugs.gnu.org; Sat, 26 Dec 2020 09:24:31 -0500 Received: from eggs.gnu.org ([209.51.188.92]:32854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktAUf-0003ti-W0 for 45303@debbugs.gnu.org; Sat, 26 Dec 2020 09:24:30 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34898) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ktAUZ-0005BS-B4; Sat, 26 Dec 2020 09:24:23 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2586 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ktAUY-0007iP-QM; Sat, 26 Dec 2020 09:24:23 -0500 Date: Sat, 26 Dec 2020 16:24:05 +0200 Message-Id: <83v9colk6y.fsf@gnu.org> From: Eli Zaretskii To: edouard debry In-Reply-To: (message from edouard debry on Sat, 26 Dec 2020 15:02:54 +0100) Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> <838s9pr2x5.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: gliao.tw@pm.me, pcfeb0009@gmx.com, 45303@debbugs.gnu.org, akrl@sdf.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: edouard debry > Date: Sat, 26 Dec 2020 15:02:54 +0100 > Cc: Eli Zaretskii , gliao.tw@pm.me, pcfeb0009@gmx.com, 45303@debbugs.gnu.org > > and added the absolute path of "/mingw64/bin" to the emacs exec-path. What does this mean, exactly? IOW, how did you add this directory to exec-path, and why did you need to do it? First, "/mingw64/bin" is not a valid Windows absolute file name, since it lacks the drive letter. And second, Emacs's startup code expects the directories where Emacs should look for programs to be mentioned in the system-wide PATH variable. If your PATH doesn't include /mingw64/bin, then you should add it (assuming that there are program files there that Emacs is supposed to find and use). > Outside of mingw64, If I just click on bin/emacs.exe I get a console message : > > Warning: arch-dependent data dir '%emacs_dir%/libexec/emacs/28.0.50/x86_64-w64-mingw32/': No such > file or directory > > and an emacs abort dialog. > > If I launch emacs on the command line from within a mingw64 shell, it runs well. Is this specific to the native-comp branch, or does it also happen if you build and install the master branch? From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 26 10:13:02 2020 Received: (at 45303) by debbugs.gnu.org; 26 Dec 2020 15:13:02 +0000 Received: from localhost ([127.0.0.1]:59730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktBFd-0005CL-S8 for submit@debbugs.gnu.org; Sat, 26 Dec 2020 10:13:02 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38634) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktBFc-0005C8-Lu for 45303@debbugs.gnu.org; Sat, 26 Dec 2020 10:13:01 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35462) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ktBFX-0004gJ-4k; Sat, 26 Dec 2020 10:12:55 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1712 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ktBFW-0004Sj-Gp; Sat, 26 Dec 2020 10:12:54 -0500 Date: Sat, 26 Dec 2020 17:12:37 +0200 Message-Id: <83tus8lhy2.fsf@gnu.org> From: Eli Zaretskii To: edouard debry In-Reply-To: (message from edouard debry on Sat, 26 Dec 2020 15:58:30 +0100) Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> <838s9pr2x5.fsf@gnu.org> <83v9colk6y.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 45303 Cc: gliao.tw@pm.me, pcfeb0009@gmx.com, 45303@debbugs.gnu.org, akrl@sdf.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: edouard debry > Date: Sat, 26 Dec 2020 15:58:30 +0100 > Cc: Andrea Corallo , gliao.tw@pm.me, pcfeb0009@gmx.com, 45303@debbugs.gnu.org > > However, you were right. Adding : > SET PATH=D:\xxxx\Documents\utils\msys64\mingw64\bin;%PATH% > in the batch file ahead of emacs invocation makes it work as normal. OK. > Are there some other paths from msys or mingw I should add for emacs startup ? No, I don't think so. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 26 11:15:50 2020 Received: (at 45303) by debbugs.gnu.org; 26 Dec 2020 16:15:50 +0000 Received: from localhost ([127.0.0.1]:59810 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktCEQ-0006i1-4C for submit@debbugs.gnu.org; Sat, 26 Dec 2020 11:15:50 -0500 Received: from mail-ed1-f52.google.com ([209.85.208.52]:36648) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktAA3-0003Pf-VS for 45303@debbugs.gnu.org; Sat, 26 Dec 2020 09:03:13 -0500 Received: by mail-ed1-f52.google.com with SMTP id b2so5949177edm.3 for <45303@debbugs.gnu.org>; Sat, 26 Dec 2020 06:03:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=fnTib3dOyLkHsrT3W9h4Clgq/pKAYW13gg7/QSl7Cj8=; b=vEy6loRRunVzDQ0e0OMelFrW+Mdt3Qc1jOHED//dJLsT3vaKbq37wYxDeJoypSJfne hlxLL2wkAz+MlcH1o+s9Yovh7Ety51Tld/MMBnOERw30qZKxOIs84EuU3wp+UFmEetA4 /ec9zTrWMmNPFNtRITpxKZa87VDxY1D6jbAF3RX+GezaoZXrHPfYYYak1q8DY/cGgZ1w QCBgmNvq3CokItu6+4x1bdgFELiIEkGPZpaHHfIomwT50EUYFhuGGE1QHkXpCH59ETUU jSpCcVpOnDQz2Wa2b1rxHljXD62S3AqMWuhqtGTJoQUAENzxYoLAnCcmEvgbjAGjMAI/ bF6A== 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=fnTib3dOyLkHsrT3W9h4Clgq/pKAYW13gg7/QSl7Cj8=; b=o/fHb55KsiJHR3wFfJyUjq72k8WVCZoIkK18KVZNmXkT+coZywDwT7bnocvB29iWhg q+tgEUR4axMDL83yyDpjll/eWRzCDwojJuj/DlAM0HlsIYdx/gxP9AvJoDulotpMQq5s 7M0IFZOpDwMUS/hcuTyt6tKh+mQATHqeDEJewCug9NJy3lwsalyCVr7y5CNpHmENxAho GOScsByTLge/TauLcuTMSEShb0Nu4f8DTgUkgG2OMLoe9jwz3tpMik01OjYbb57/08jZ H3akHYntpTfRtVMkXFv0odc6A0RVAJImTSIv7PBcHT/Sfs2PJWyzU5I+BRTHLKx5GEVY uD1A== X-Gm-Message-State: AOAM533v2mZf/TX8bx3canL+AiTuLYup6s+tPfvcfansj6aDlwOY7i6n 2n0Na4zM9uT0XC0sin3hBEHMYnJQHFJPzzLU5ss= X-Google-Smtp-Source: ABdhPJxy0VjOuuVnxdq3vYeCISEIr/bicdiKTMZLkNsyi9lXzsIZAHicQA1FpRJOd62MFTnesBw5Di6RLBRAYocvGKw= X-Received: by 2002:a05:6402:1816:: with SMTP id g22mr35755590edy.80.1608991385942; Sat, 26 Dec 2020 06:03:05 -0800 (PST) MIME-Version: 1.0 References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> <838s9pr2x5.fsf@gnu.org> In-Reply-To: From: edouard debry Date: Sat, 26 Dec 2020 15:02:54 +0100 Message-ID: Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows To: Andrea Corallo Content-Type: multipart/alternative; boundary="000000000000017dd205b75e801a" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45303 X-Mailman-Approved-At: Sat, 26 Dec 2020 11:15:48 -0500 Cc: Eli Zaretskii , pcfeb0009@gmx.com, 45303@debbugs.gnu.org, gliao.tw@pm.me X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000017dd205b75e801a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I was able to compile and install. However, I cannot launch emacs outside of mingw64. I installed emacs-nativecomp outside of mingw64 in order not to mess with the mingw emacs package. I copied libgmp*dll in the installdir/bin and added the absolute path of "/mingw64/bin" to the emacs exec-path. Outside of mingw64, If I just click on bin/emacs.exe I get a console message : Warning: arch-dependent data dir '%emacs_dir%/libexec/emacs/28.0.50/x86_64-w64-mingw32/': No such file or directory and an emacs abort dialog. If I launch emacs on the command line from within a mingw64 shell, it runs well. But it is not desirable because window environment variables like %VAR% are not expanded correctly. I can launch the mingw64 emacs package from outside mingw without this problem. So, most probably, I must have missed something during the install. Do you also have this issue ? Regards Le mer. 23 d=C3=A9c. 2020 =C3=A0 08:03, Andrea Corallo via Bug reports for = GNU Emacs, the Swiss army knife of text editors a =C3=A9crit : > Eli Zaretskii writes: > > >> Date: Tue, 22 Dec 2020 20:21:54 +0000 > >> Cc: "pcfeb0009@gmx.com" , > >> "45303-done@debbugs.gnu.org" <45303@debbugs.gnu.org> > >> From: Andrea Corallo via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" > >> > >> "gliao.tw@pm.me" writes: > >> > >> > Andrea, > >> > > >> > The native-comp branch compiles smoothly with generated executable > working flawlessly under my Msys2 environment on Windows 10. > >> > > >> > I don't have anything to report now, if no objection from other > people, I think we can close this bug. > >> > >> Sounds like music to my ears :) > > > > Thanks for a job well done, Andrea. > > Was good team work, thank you & all. > > > > --000000000000017dd205b75e801a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I was able to compile and install.

However, I cannot launch emacs outside of mingw64.

I installed emacs-nativecomp outside of mingw64 in order not to mes= s with the mingw emacs package.

I copied libgmp*dl= l in the installdir/bin and added the absolute path of "/mingw64/bin&q= uot; to the emacs exec-path.

Outside of mingw64, I= f I just click on bin/emacs.exe I get a console message :

Warning: arch-dependent data dir '%emacs_dir%/libexec/emacs/28.= 0.50/x86_64-w64-mingw32/': No such file or directory

and an emacs abort dialog.

If I launch emac= s on the command line from within a mingw64 shell, it runs well. But it is = not desirable because window
environment variables like %VAR% are= not expanded correctly.

I can launch the mingw64 = emacs package from outside mingw without this problem.

=
So, most probably, I must have missed something during the install.

Do you also have this issue ?

Regards


Le=C2=A0mer. 23 d=C3=A9c. 2020 =C3=A0=C2= =A008:03, Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knif= e of text editors <bug-gnu-emac= s@gnu.org> a =C3=A9crit=C2=A0:
Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Tue, 22 Dec 2020 20:21:54 +0000
>> Cc: "p= cfeb0009@gmx.com" <pcfeb0009@gmx.com>,
>>=C2=A0 "45303-done@debbugs.gnu.org" <45303@debbugs.gnu.org>
>> From: Andrea Corallo via "Bug reports for GNU Emacs,
>>=C2=A0 the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>=
>>
>> "gliao.tw= @pm.me" <gl= iao.tw@pm.me> writes:
>>
>> > Andrea,
>> >
>> > The native-comp branch compiles smoothly with generated execu= table working flawlessly under my Msys2 environment on Windows 10.
>> >
>> > I don't have anything to report now, if no objection from= other people, I think we can close this bug.
>>
>> Sounds like music to my ears :)
>
> Thanks for a job well done, Andrea.

Was good team work, thank you & all.



--000000000000017dd205b75e801a-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 26 11:15:51 2020 Received: (at 45303) by debbugs.gnu.org; 26 Dec 2020 16:15:51 +0000 Received: from localhost ([127.0.0.1]:59812 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktCEQ-0006i4-Ll for submit@debbugs.gnu.org; Sat, 26 Dec 2020 11:15:51 -0500 Received: from mail-ej1-f41.google.com ([209.85.218.41]:38110) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktB1s-0004rE-6L for 45303@debbugs.gnu.org; Sat, 26 Dec 2020 09:58:48 -0500 Received: by mail-ej1-f41.google.com with SMTP id 6so8935675ejz.5 for <45303@debbugs.gnu.org>; Sat, 26 Dec 2020 06:58:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Dn3+NqQlkpZMoVqMOgqfXjc7d+3yRjCLRLA9DN5EcQw=; b=SHzc9G/x/9uIXJQ/xTpjogOKO+u2DMokE770uZU0sBlQXMZCyvsluwt5TsmfnoJYC6 a8FOSDXx221LaJeLmgEuW0FFkgQTlI6pL/u9g8z+RBp+18ootl62xscSo2ZeZ2gszBEr lvaWaBDuV8/YGBTRorfXXXbRlRNoZM4I60EHsJT/Wb4/UDx5OnwsMWE7MYTaRaw0tLsh v/coDam9/N6R23lF7wntIqfMtYB/kZ2Ttxt8Hefpa/TM8KXhZ+TXXHVqaSUS2TqPyiVc stY+By1YYDiIHFZGXU03i33RIbon2gvqqtEOoJRt21IYjlQFBS/oVoxlXiqiKHPNdwlb LObQ== 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=Dn3+NqQlkpZMoVqMOgqfXjc7d+3yRjCLRLA9DN5EcQw=; b=Kg6oHGbu25hD65Mi0Co8LaudAXT3kJ7Gl2/KGQm6HnYFyXca1D0eP4MQsUSDO2YiZt ubVdBNZitoMcAtNTpf9zqwuFpnJ3rZtx82CrWwtM+4cwDb72ZRh55gsqQ4ppkgMYvwnE DF7IB/cS6TCUVbSDRUZlFjCk8o0eL4xMChY4ljuiHN7I177YoQmAZm61EF8oyUiIIvwI mCNRXrY3MHxP1rc2UZuq/Fin6H75XiwBh7wVd0r/YLWWzuryg/oVnOIINlQotL1l29E2 HMa6oUNDMMum7d3+CkZde6fuW6Iz7R5n3Llqnc4uS0Eg0UeheA4YPv+7jD9RjqUll0p0 PxYg== X-Gm-Message-State: AOAM532Ic2ytDqh5V4ri526Mi4IvCd2q6HtJe3Z+kQPueaSn0bNxa1gp 9TMrBjG+1xe1+uBQzOtKJiNbpicGimN6HG8KxRU= X-Google-Smtp-Source: ABdhPJyWmB0gpvcR7yddtm1DUF75EbXSfRqwceHjNZMaCysp5z7wpY/TIlwaaYJQqTNRI0BuV6lqHImqykiZ6DJAvhk= X-Received: by 2002:a17:906:4985:: with SMTP id p5mr26167259eju.513.1608994722168; Sat, 26 Dec 2020 06:58:42 -0800 (PST) MIME-Version: 1.0 References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> <838s9pr2x5.fsf@gnu.org> <83v9colk6y.fsf@gnu.org> In-Reply-To: <83v9colk6y.fsf@gnu.org> From: edouard debry Date: Sat, 26 Dec 2020 15:58:30 +0100 Message-ID: Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows To: Eli Zaretskii Content-Type: multipart/alternative; boundary="000000000000dc433e05b75f46ec" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 45303 X-Mailman-Approved-At: Sat, 26 Dec 2020 11:15:48 -0500 Cc: gliao.tw@pm.me, pcfeb0009@gmx.com, 45303@debbugs.gnu.org, Andrea Corallo X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000dc433e05b75f46ec Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Within emacs I do this : (add-to-list 'exec-path "D:/xxxx/Documents/utils/msys64/mingw64/bin") However, you were right. Adding : SET PATH=3DD:\xxxx\Documents\utils\msys64\mingw64\bin;%PATH% in the batch file ahead of emacs invocation makes it work as normal. Are there some other paths from msys or mingw I should add for emacs startup ? Regards Le sam. 26 d=C3=A9c. 2020 =C3=A0 15:24, Eli Zaretskii a =C3= =A9crit : > > From: edouard debry > > Date: Sat, 26 Dec 2020 15:02:54 +0100 > > Cc: Eli Zaretskii , gliao.tw@pm.me, pcfeb0009@gmx.com, > 45303@debbugs.gnu.org > > > > and added the absolute path of "/mingw64/bin" to the emacs exec-path. > > What does this mean, exactly? IOW, how did you add this directory to > exec-path, and why did you need to do it? > > First, "/mingw64/bin" is not a valid Windows absolute file name, since > it lacks the drive letter. > > And second, Emacs's startup code expects the directories where Emacs > should look for programs to be mentioned in the system-wide PATH > variable. If your PATH doesn't include /mingw64/bin, then you should > add it (assuming that there are program files there that Emacs is > supposed to find and use). > > > Outside of mingw64, If I just click on bin/emacs.exe I get a console > message : > > > > Warning: arch-dependent data dir > '%emacs_dir%/libexec/emacs/28.0.50/x86_64-w64-mingw32/': No such > > file or directory > > > > and an emacs abort dialog. > > > > If I launch emacs on the command line from within a mingw64 shell, it > runs well. > > Is this specific to the native-comp branch, or does it also happen if > you build and install the master branch? > --000000000000dc433e05b75f46ec Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Within emacs I do this :
(add-to-list '= exec-path "D:/xxxx/Documents/utils/msys64/mingw64/bin")

However, you were right. Adding :
SET PATH=3D= D:\xxxx\Documents\utils\msys64\mingw64\bin;%PATH%
=C2=A0in th= e batch file ahead of emacs invocation makes it work as normal.
<= br>
Are there some other paths from msys or mingw I should add fo= r emacs startup ?

Regards

=

Le=C2=A0sam. 26 d=C3=A9c. 2020 =C3=A0=C2=A015:24, Eli Zaretskii <eliz@gnu.org> a =C3=A9crit=C2=A0:
<= /div>
> From: edouard d= ebry <edoua= rd.debry@gmail.com>
> Date: Sat, 26 Dec 2020 15:02:54 +0100
> Cc: Eli Zaretskii <eliz@gnu.org>, gliao.tw@pm.me, pcfeb0009@gmx.com, 45303@debbugs.gnu.org
>
> and added the absolute path of "/mingw64/bin" to the emacs e= xec-path.

What does this mean, exactly?=C2=A0 IOW, how did you add this directory to<= br> exec-path, and why did you need to do it?

First, "/mingw64/bin" is not a valid Windows absolute file name, = since
it lacks the drive letter.

And second, Emacs's startup code expects the directories where Emacs should look for programs to be mentioned in the system-wide PATH
variable.=C2=A0 If your PATH doesn't include /mingw64/bin, then you sho= uld
add it (assuming that there are program files there that Emacs is
supposed to find and use).

> Outside of mingw64, If I just click on bin/emacs.exe I get a console m= essage :
>
> Warning: arch-dependent data dir '%emacs_dir%/libexec/emacs/28.0.5= 0/x86_64-w64-mingw32/': No such
> file or directory
>
> and an emacs abort dialog.
>
> If I launch emacs on the command line from within a mingw64 shell, it = runs well.

Is this specific to the native-comp branch, or does it also happen if
you build and install the master branch?
--000000000000dc433e05b75f46ec-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 06 15:37:54 2021 Received: (at 45303-done) by debbugs.gnu.org; 6 Jan 2021 20:37:54 +0000 Received: from localhost ([127.0.0.1]:45686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kxFZ4-0002eu-5t for submit@debbugs.gnu.org; Wed, 06 Jan 2021 15:37:54 -0500 Received: from mx.sdf.org ([205.166.94.24]:62410) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kxFZ3-0002em-2y for 45303-done@debbugs.gnu.org; Wed, 06 Jan 2021 15:37:53 -0500 Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTP id 106KboU2027886; Wed, 6 Jan 2021 20:37:50 GMT From: Andrea Corallo To: Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Subject: Re: bug#45303: #45303 [feature/native-comp] building error on Windows References: <6HNZxbkVfqHfTgtuHlg6wDQ-5-IO2RJ3Gfl2yB1EDgMj9jxk1OXCDkH3C39wGF6on6DXntrjHR2xJ0IxI0WaYCeuwqOXGz_rztdgkalA3Z8=@pm.me> Date: Wed, 06 Jan 2021 20:37:50 +0000 In-Reply-To: (Andrea Corallo via's message of "Tue, 22 Dec 2020 20:21:54 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45303-done Cc: gliao.tw@pm.me, "pcfeb0009@gmx.com" , 45303-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: > "gliao.tw@pm.me" writes: > >> Andrea, >> >> The native-comp branch compiles smoothly with generated executable working flawlessly under my Msys2 environment on Windows 10. >> >> I don't have anything to report now, if no objection from other people, I think we can close this bug. > > Sounds like music to my ears :) > > Closing, we can always reopen in case. Ops, I failed closing this. Doing it now. Andrea From unknown Sun Jun 15 09:00:37 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 04 Feb 2021 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator