From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: An Liu Newsgroups: gmane.lisp.guile.user Subject: Re: Problem when compile guile-2.2.4 on CentOS 6.10/6.8 Date: Tue, 4 Sep 2018 21:07:17 -0600 Message-ID: References: <87d0tt9h3z.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000001b381c0575171327" X-Trace: blaine.gmane.org 1536238268 30516 195.159.176.226 (6 Sep 2018 12:51:08 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 6 Sep 2018 12:51:08 +0000 (UTC) Cc: guile-user@gnu.org To: alexvong1995@gmail.com Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Thu Sep 06 14:48:03 2018 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fxthW-00032I-9e for guile-user@m.gmane.org; Thu, 06 Sep 2018 14:48:02 +0200 Original-Received: from localhost ([::1]:33105 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxtjc-0000IT-1C for guile-user@m.gmane.org; Thu, 06 Sep 2018 08:50:08 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49766) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxtgr-0007b9-Iy for guile-user@gnu.org; Thu, 06 Sep 2018 08:48:55 -0400 Original-Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:42726) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fxOAE-0008Jj-Gt for guile-user@gnu.org; Tue, 04 Sep 2018 23:07:36 -0400 Original-Received: by mail-wr1-x42c.google.com with SMTP id v17-v6so5925776wrr.9 for ; Tue, 04 Sep 2018 20:07:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=iNUzdJqrZYEQ2YLxXfMVaLNPnMX2lV+hsa7Nr9DLwwY=; b=djXbSAyKCih3RYEoCG80eU1EXi0TQDzdF7rBB06NBMaDUna7ZsWxAhwQhd5ic2q+x0 jEM2X2XG768HVcZnHfteUZuSHu+aKYU5DHXFvwf39izbBszHW/x4eqQol26usM9mC+UH b+yDMqbt05KSbPSxTNq/mffKd+IQhgZ/L9XktQ1KwbLaBBw99TDVR9hwZEkRsMeiT0X+ F5twCgdn/0lk7UYQx+7VfW0Z0dQw9jxvA2oE8tQPItlj3u6j4IL4nETZSkBJWjEbI9mG xcMlfKZx/kWowuQTqVexO25bTRUg8X7utZ1A5WW+kKa/odeXjBpSu+VgXsYIQPJclRYY 4PhQ== 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=iNUzdJqrZYEQ2YLxXfMVaLNPnMX2lV+hsa7Nr9DLwwY=; b=O09hBfIM+lXM4hcTXOjmnuQFNYCQS+8ZhDLMfQOP0zv1npN7t7Kmb1UL4si1OCj0JD QBGZRxCqFRoGcHD8IuBXKxVPFT3KNMwZfsPFK+wgRZuNR5yXBaj4q3npeJ9tEtmyhGKF qimcCVrMsRGTem1pGRIn6gJpRiMGmddVqg+iueBdntZ/zxuejLyVOl/CpFyw5cWSLia8 K/uMdsZxgVzcJP7lITj1iJTbMK3glRwEc5Nzw04x9lPm1IQOFO43/w+YeLdNQzLNu8d7 Ii+RnBAOKpTX8KAPDb3Fu70Vxwz66gzEVzUHXiw/NUMnpwnHRLFjd0v8lQCL4ztFl6ak cHTQ== X-Gm-Message-State: APzg51CcaHal5M/DL/bdcxroG/Wc5e4CvKN8W416x/7s8ABYC7ZoPbTi zRIr7YcwEb2lDDc7rb+Ky8mHq1YBXFLqQsYqoVE= X-Google-Smtp-Source: ANB0VdbFftgH2G1lJhMxRa8pNPW87bG/VgNLzQouratwoePq1TMy7Y0+mWAhXfZrCR+prUw5nkA9vuXSnLxEq5dZfgI= X-Received: by 2002:adf:808f:: with SMTP id 15-v6mr25322618wrl.204.1536116848780; Tue, 04 Sep 2018 20:07:28 -0700 (PDT) In-Reply-To: <87d0tt9h3z.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:14865 Archived-At: --0000000000001b381c0575171327 Content-Type: text/plain; charset="UTF-8" Hi, Alex Thank you for the hint attached is the config.log after run ./configure --prefix=/opt/guile-2.2.4 It seems the version of gcc is too old to use --std=c11 # gcc -v Using built-in specs. Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) i would like to test a higher version gcc , and get back if i have any updates On Tue, Sep 4, 2018 at 1:51 PM Alex Vong wrote: > > Hello An, > > Can you also upload the 'config.log' file? As it may contain some hints > on why it is failing. > > Cheers, > Alex > > An Liu writes: > > > Hi, List > > > > I'm trying to compile guile-2.2.4 on CentOS 6.10, but failed > > > > - why guile-2.2.4? > > I want to try artanis which requires guile-2.2+, and yum repos only > > have guile-1.8, so i decide to compile install myself > > > > - CentOS release > > # cat /etc/centos-release > > CentOS release 6.10 (Final) > > # uname -a > > Linux test 2.6.32-754.3.5.el6.x86_64 #1 SMP Tue Aug 14 20:46:41 UTC > > 2018 x86_64 x86_64 x86_64 GNU/Linux > > > > - guile release > > # curl -O https://ftp.gnu.org/gnu/guile/guile-2.2.4.tar.xz > > > > - configure error > > # ./configure --prefix=/opt/guile-2.2.4 > > ... > > checking whether sigpending is declared without a macro... no > > checking whether sigprocmask is declared without a macro... no > > checking for socklen_t... no > > checking for socklen_t equivalent... configure: error: Cannot find a > > type to use in place of socklen_t > > > > > > it stops at socklen_t, as config_log attached > > > > I've no idea of this as /usr/include/sys/socket.h exists there and > > socklen_t should have be defined. > > > > I've google for this error but hardly got any solutions. > > Any suggestion on this? I don't think trying to modify the > > "sys/socket.h" is a good idea. > > > > or is there guile-2.2+ rpm release for centos 6 > > > > BTW, how long would it take for me to build guile from source code (i7 > > 6500Ux4, with 8GB RAM, laptop) , the manual of artanis says it would > > take quite a long time even seem like halt. > > > > Thank you in advance. -- Liu An --0000000000001b381c0575171327 Content-Type: text/x-log; charset="US-ASCII"; name="config.log" Content-Disposition: attachment; filename="config.log" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jlokakx30 VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IEdOVSBHdWlsZSBjb25maWd1cmUgMi4yLjQs IHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjkuICBJbnZvY2F0aW9uIGNv bW1hbmQgbGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSAtLXByZWZpeD0vb3B0L2d1aWxlLTIuMi40 CgojIyAtLS0tLS0tLS0gIyMKIyMgUGxhdGZvcm0uICMjCiMjIC0tLS0tLS0tLSAjIwoKaG9zdG5h bWUgPSBwc24wMDgKdW5hbWUgLW0gPSB4ODZfNjQKdW5hbWUgLXIgPSAyLjYuMzItNzU0LjMuNS5l bDYueDg2XzY0CnVuYW1lIC1zID0gTGludXgKdW5hbWUgLXYgPSAjMSBTTVAgVHVlIEF1ZyAxNCAy MDo0Njo0MSBVVEMgMjAxOAoKL3Vzci9iaW4vdW5hbWUgLXAgPSB1bmtub3duCi9iaW4vdW5hbWUg LVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9IHg4Nl82NAovdXNyL2Jp bi9hcmNoIC1rICAgICAgID0gdW5rbm93bgovdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93 bgovdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gdW5rbm93bgovYmluL21hY2hpbmUgICAgICAgICAg ID0gdW5rbm93bgovdXNyL2Jpbi9vc2xldmVsICAgICAgID0gdW5rbm93bgovYmluL3VuaXZlcnNl ICAgICAgICAgID0gdW5rbm93bgoKUEFUSDogL3Vzci9sb2NhbC9zYmluClBBVEg6IC91c3IvbG9j YWwvYmluClBBVEg6IC9zYmluClBBVEg6IC9iaW4KUEFUSDogL3Vzci9zYmluClBBVEg6IC91c3Iv YmluClBBVEg6IC9yb290L2JpbgoKCiMjIC0tLS0tLS0tLS0tICMjCiMjIENvcmUgdGVzdHMuICMj CiMjIC0tLS0tLS0tLS0tICMjCgpjb25maWd1cmU6NDE0NzogY2hlY2tpbmcgZm9yIGEgQlNELWNv bXBhdGlibGUgaW5zdGFsbApjb25maWd1cmU6NDIxNTogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxs IC1jCmNvbmZpZ3VyZTo0MjI2OiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlz IHNhbmUKY29uZmlndXJlOjQyODE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDMyOiBjaGVja2lu ZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcApjb25maWd1cmU6NDQ3MTogcmVzdWx0OiAvYmlu L21rZGlyIC1wCmNvbmZpZ3VyZTo0NDc4OiBjaGVja2luZyBmb3IgZ2F3awpjb25maWd1cmU6NDQ5 NDogZm91bmQgL2Jpbi9nYXdrCmNvbmZpZ3VyZTo0NTA1OiByZXN1bHQ6IGdhd2sKY29uZmlndXJl OjQ1MTY6IGNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkKY29uZmlndXJlOjQ1Mzg6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NTY3OiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9y dHMgbmVzdGVkIHZhcmlhYmxlcwpjb25maWd1cmU6NDU4NDogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjQ3MTI6IGNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFyaWFibGVzCmNv bmZpZ3VyZTo0NzI5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDc2NjogY2hlY2tpbmcgYnVpbGQg c3lzdGVtIHR5cGUKY29uZmlndXJlOjQ3ODA6IHJlc3VsdDogeDg2XzY0LXBjLWxpbnV4LWdudQpj b25maWd1cmU6NDgwMDogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6NDgxMzog cmVzdWx0OiB4ODZfNjQtcGMtbGludXgtZ251CmNvbmZpZ3VyZTo1MTg3OiBjaGVja2luZyBmb3Ig Z2NjCmNvbmZpZ3VyZTo1MjAzOiBmb3VuZCAvdXNyL2Jpbi9nY2MKY29uZmlndXJlOjUyMTQ6IHJl c3VsdDogZ2NjCmNvbmZpZ3VyZTo1NDQzOiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9u CmNvbmZpZ3VyZTo1NDUyOiBnY2MgLS12ZXJzaW9uID4mNQpnY2MgKEdDQykgNC40LjcgMjAxMjAz MTMgKFJlZCBIYXQgNC40LjctMjMpCkNvcHlyaWdodCAoQykgMjAxMCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3Ig Y29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8Kd2FycmFudHk7IG5vdCBldmVuIGZvciBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCgpjb25m aWd1cmU6NTQ2MzogJD8gPSAwCmNvbmZpZ3VyZTo1NDUyOiBnY2MgLXYgPiY1ClVzaW5nIGJ1aWx0 LWluIHNwZWNzLgpUYXJnZXQ6IHg4Nl82NC1yZWRoYXQtbGludXgKQ29uZmlndXJlZCB3aXRoOiAu Li9jb25maWd1cmUgLS1wcmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9k aXI9L3Vzci9zaGFyZS9pbmZvIC0td2l0aC1idWd1cmw9aHR0cDovL2J1Z3ppbGxhLnJlZGhhdC5j b20vYnVnemlsbGEgLS1lbmFibGUtYm9vdHN0cmFwIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10 aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgLS13aXRoLXN5c3RlbS16bGli IC0tZW5hYmxlLV9fY3hhX2F0ZXhpdCAtLWRpc2FibGUtbGlidW53aW5kLWV4Y2VwdGlvbnMgLS1l bmFibGUtZ251LXVuaXF1ZS1vYmplY3QgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrLG9iamMsb2Jq LWMrKyxqYXZhLGZvcnRyYW4sYWRhIC0tZW5hYmxlLWphdmEtYXd0PWd0ayAtLWRpc2FibGUtZHNz aSAtLXdpdGgtamF2YS1ob21lPS91c3IvbGliL2p2bS9qYXZhLTEuNS4wLWdjai0xLjUuMC4wL2py ZSAtLWVuYWJsZS1saWJnY2otbXVsdGlmaWxlIC0tZW5hYmxlLWphdmEtbWFpbnRhaW5lci1tb2Rl IC0td2l0aC1lY2otamFyPS91c3Ivc2hhcmUvamF2YS9lY2xpcHNlLWVjai5qYXIgLS1kaXNhYmxl LWxpYmphdmEtbXVsdGlsaWIgLS13aXRoLXBwbCAtLXdpdGgtY2xvb2cgLS13aXRoLXR1bmU9Z2Vu ZXJpYyAtLXdpdGgtYXJjaF8zMj1pNjg2IC0tYnVpbGQ9eDg2XzY0LXJlZGhhdC1saW51eApUaHJl YWQgbW9kZWw6IHBvc2l4CmdjYyB2ZXJzaW9uIDQuNC43IDIwMTIwMzEzIChSZWQgSGF0IDQuNC43 LTIzKSAoR0NDKSAKY29uZmlndXJlOjU0NjM6ICQ/ID0gMApjb25maWd1cmU6NTQ1MjogZ2NjIC1W ID4mNQpnY2M6ICctVicgb3B0aW9uIG11c3QgaGF2ZSBhcmd1bWVudApjb25maWd1cmU6NTQ2Mzog JD8gPSAxCmNvbmZpZ3VyZTo1NDUyOiBnY2MgLXF2ZXJzaW9uID4mNQpnY2M6IHVucmVjb2duaXpl ZCBvcHRpb24gJy1xdmVyc2lvbicKZ2NjOiBubyBpbnB1dCBmaWxlcwpjb25maWd1cmU6NTQ2Mzog JD8gPSAxCmNvbmZpZ3VyZTo1NDgzOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdv cmtzCmNvbmZpZ3VyZTo1NTA1OiBnY2MgICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo1NTA5 OiAkPyA9IDAKY29uZmlndXJlOjU1NTc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NTYwOiBjaGVj a2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUKY29uZmlndXJlOjU1 NjI6IHJlc3VsdDogYS5vdXQKY29uZmlndXJlOjU1Njg6IGNoZWNraW5nIGZvciBzdWZmaXggb2Yg ZXhlY3V0YWJsZXMKY29uZmlndXJlOjU1NzU6IGdjYyAtbyBjb25mdGVzdCAgICBjb25mdGVzdC5j ICA+JjUKY29uZmlndXJlOjU1Nzk6ICQ/ID0gMApjb25maWd1cmU6NTYwMTogcmVzdWx0OiAKY29u ZmlndXJlOjU2MjM6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZwpjb25m aWd1cmU6NTYzMTogZ2NjIC1vIGNvbmZ0ZXN0ICAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6 NTYzNTogJD8gPSAwCmNvbmZpZ3VyZTo1NjQyOiAuL2NvbmZ0ZXN0CmNvbmZpZ3VyZTo1NjQ2OiAk PyA9IDAKY29uZmlndXJlOjU2NjE6IHJlc3VsdDogbm8KY29uZmlndXJlOjU2NjY6IGNoZWNraW5n IGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTo1Njg4OiBnY2MgLWMgICBjb25m dGVzdC5jID4mNQpjb25maWd1cmU6NTY5MjogJD8gPSAwCmNvbmZpZ3VyZTo1NzEzOiByZXN1bHQ6 IG8KY29uZmlndXJlOjU3MTc6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUg QyBjb21waWxlcgpjb25maWd1cmU6NTczNjogZ2NjIC1jICAgY29uZnRlc3QuYyA+JjUKY29uZmln dXJlOjU3MzY6ICQ/ID0gMApjb25maWd1cmU6NTc0NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU3 NTQ6IGNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcKY29uZmlndXJlOjU3NzQ6IGdjYyAt YyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjU3NzQ6ICQ/ID0gMApjb25maWd1cmU6NTgx NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU4MzI6IGNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRv IGFjY2VwdCBJU08gQzg5CmNvbmZpZ3VyZTo1ODk1OiBnY2MgIC1jIC1nIC1PMiAgY29uZnRlc3Qu YyA+JjUKY29uZmlndXJlOjU4OTU6ICQ/ID0gMApjb25maWd1cmU6NTkwODogcmVzdWx0OiBub25l IG5lZWRlZApjb25maWd1cmU6NTkzMzogY2hlY2tpbmcgd2hldGhlciBnY2MgdW5kZXJzdGFuZHMg LWMgYW5kIC1vIHRvZ2V0aGVyCmNvbmZpZ3VyZTo1OTU1OiBnY2MgLWMgY29uZnRlc3QuYyAtbyBj b25mdGVzdDIubwpjb25maWd1cmU6NTk1ODogJD8gPSAwCmNvbmZpZ3VyZTo1OTU1OiBnY2MgLWMg Y29uZnRlc3QuYyAtbyBjb25mdGVzdDIubwpjb25maWd1cmU6NTk1ODogJD8gPSAwCmNvbmZpZ3Vy ZTo1OTcwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTk5MDogY2hlY2tpbmcgd2hldGhlciBtYWtl IHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZQpjb25maWd1cmU6NjAwNTogbWFrZSAtZiBj b25mbWYuR05VICYmIGNhdCBjb25maW5jLm91dAp0aGlzIGlzIHRoZSBhbV9fZG9pdCB0YXJnZXQK Y29uZmlndXJlOjYwMDg6ICQ/ID0gMApjb25maWd1cmU6NjAyNzogcmVzdWx0OiB5ZXMgKEdOVSBz dHlsZSkKY29uZmlndXJlOjYwNTI6IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjCmNv bmZpZ3VyZTo2MTYzOiByZXN1bHQ6IGdjYzMKY29uZmlndXJlOjYxODI6IGNoZWNraW5nIGhvdyB0 byBlbmFibGUgQzExIHN1cHBvcnQKY29uZmlndXJlOjYxODU6IHJlc3VsdDogLXN0ZD1nbnUxMQpj b25maWd1cmU6NjE5OTogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKY29u ZmlndXJlOjYyMzA6IGdjYyAtc3RkPWdudTExIC1FICBjb25mdGVzdC5jCmNjMTogZXJyb3I6IHVu cmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6NjIz MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp ZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUg PGFzc2VydC5oPgp8ICNlbmRpZgp8IAkJICAgICBTeW50YXggZXJyb3IKY29uZmlndXJlOjYyMzA6 IGdjYyAtc3RkPWdudTExIC1FICBjb25mdGVzdC5jCmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6NjIzMDogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n dWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9ndWlsZS8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZmRlZiBfX1NURENf Xwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8 ICNlbmRpZgp8IAkJICAgICBTeW50YXggZXJyb3IKY29uZmlndXJlOjYyMzA6IGdjYyAtc3RkPWdu dTExIC1FIC10cmFkaXRpb25hbC1jcHAgIGNvbmZ0ZXN0LmMKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo2MjMwOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lmZGVmIF9f U1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0 Lmg+CnwgI2VuZGlmCnwgCQkgICAgIFN5bnRheCBlcnJvcgpjb25maWd1cmU6NjIzMDogZ2NjIC1z dGQ9Z251MTEgLUUgLXRyYWRpdGlvbmFsLWNwcCAgY29uZnRlc3QuYwpjYzE6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjYyMzA6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ T1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZk ZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxh c3NlcnQuaD4KfCAjZW5kaWYKfCAJCSAgICAgU3ludGF4IGVycm9yCmNvbmZpZ3VyZTo2MjMwOiAv bGliL2NwcCAgY29uZnRlc3QuYwpjb25maWd1cmU6NjIzMDogJD8gPSAwCmNvbmZpZ3VyZTo2MjQ0 OiAvbGliL2NwcCAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjk6Mjg6IGVycm9yOiBhY19ub25leGlz dGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTo2MjQ0OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFj X25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZTo2MjY5OiByZXN1bHQ6IC9saWIvY3BwCmNvbmZpZ3Vy ZTo2Mjg5OiAvbGliL2NwcCAgY29uZnRlc3QuYwpjb25maWd1cmU6NjI4OTogJD8gPSAwCmNvbmZp Z3VyZTo2MzAzOiAvbGliL2NwcCAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjk6Mjg6IGVycm9yOiBh Y19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTo2MzAz OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZTo2MzMyOiBjaGVja2luZyBmb3IgZ3Jl cCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUKY29uZmlndXJlOjYzOTA6IHJlc3VsdDog L2Jpbi9ncmVwCmNvbmZpZ3VyZTo2Mzk1OiBjaGVja2luZyBmb3IgZWdyZXAKY29uZmlndXJlOjY0 NTc6IHJlc3VsdDogL2Jpbi9ncmVwIC1FCmNvbmZpZ3VyZTo2NDYyOiBjaGVja2luZyBmb3IgQU5T SSBDIGhlYWRlciBmaWxlcwpjb25maWd1cmU6NjQ4MjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjY0ODI6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWls ZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUv Igp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1 ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAjaW5jbHVkZSA8ZmxvYXQuaD4K fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6NjU2NjogcmVzdWx0OiBubwpjb25maWd1cmU6NjU3OTogY2hlY2tpbmcgZm9yIHN5cy90eXBl cy5oCmNvbmZpZ3VyZTo2NTc5OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6NjU3OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBF U19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNf U1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hF QURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vs c2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVu ZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENf SEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K fCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9J TlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9V TklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5 cy90eXBlcy5oPgpjb25maWd1cmU6NjU3OTogcmVzdWx0OiBubwpjb25maWd1cmU6NjU3OTogY2hl Y2tpbmcgZm9yIHN5cy9zdGF0LmgKY29uZmlndXJlOjY1Nzk6IGdjYyAtc3RkPWdudTExIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGlu ZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo2NTc5OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lm ZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRl IDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUg PHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMg aWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGlu Y2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYK fCAKfCAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KY29uZmlndXJlOjY1Nzk6IHJlc3VsdDogbm8KY29u ZmlndXJlOjY1Nzk6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6NjU3OTogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjY1Nzk6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KY29uZmlndXJlOjY1Nzk6IHJl c3VsdDogbm8KY29uZmlndXJlOjY1Nzk6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25maWd1cmU6 NjU3OTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjY1Nzk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5j bHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBI QVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVm aW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMg aW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBp bmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMg aW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMg aW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGlu Y2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KY29uZmln dXJlOjY1Nzk6IHJlc3VsdDogbm8KY29uZmlndXJlOjY1Nzk6IGNoZWNraW5nIGZvciBtZW1vcnku aApjb25maWd1cmU6NjU3OTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjY1Nzk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNf SAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NU QVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFE RVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNl CnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRp Zgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hF QURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cnwg IyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RS SU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5U VFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5J U1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxtZW1v cnkuaD4KY29uZmlndXJlOjY1Nzk6IHJlc3VsdDogbm8KY29uZmlndXJlOjY1Nzk6IGNoZWNraW5n IGZvciBzdHJpbmdzLmgKY29uZmlndXJlOjY1Nzk6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAg Y29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRp b24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo2NTc5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRk ZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAj aW5jbHVkZSA8c3RyaW5ncy5oPgpjb25maWd1cmU6NjU3OTogcmVzdWx0OiBubwpjb25maWd1cmU6 NjU3OTogY2hlY2tpbmcgZm9yIGludHR5cGVzLmgKY29uZmlndXJlOjY1Nzk6IGdjYyAtc3RkPWdu dTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo2NTc5OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cnwg IyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMg IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllf SAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4K fCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8aW50dHlwZXMuaD4KY29uZmlndXJlOjY1Nzk6IHJlc3Vs dDogbm8KY29uZmlndXJlOjY1Nzk6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6NjU3 OTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1 bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjY1 Nzk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVk ZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZF X1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5l ZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5j bHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNs dWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5j bHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5j bHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1 ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzdGRpbnQuaD4KY29uZmlndXJl OjY1Nzk6IHJlc3VsdDogbm8KY29uZmlndXJlOjY1Nzk6IGNoZWNraW5nIGZvciB1bmlzdGQuaApj b25maWd1cmU6NjU3OTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpj YzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIK Y29uZmlndXJlOjY1Nzk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8 ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRf SAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJT CnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwg IyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURF UlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBl bmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H U19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQ RVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJ TlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1RE X0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDx1bmlzdGQu aD4KY29uZmlndXJlOjY1Nzk6IHJlc3VsdDogbm8KY29uZmlndXJlOjY1OTI6IGNoZWNraW5nIG1p bml4L2NvbmZpZy5oIHVzYWJpbGl0eQpjb25maWd1cmU6NjU5MjogZ2NjIC1zdGQ9Z251MTEgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBs aW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjY1OTI6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv Z3VpbGUvIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAj aWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1 ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwg IyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAg aW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRp Zgp8ICNpbmNsdWRlIDxtaW5peC9jb25maWcuaD4KY29uZmlndXJlOjY1OTI6IHJlc3VsdDogbm8K Y29uZmlndXJlOjY1OTI6IGNoZWNraW5nIG1pbml4L2NvbmZpZy5oIHByZXNlbmNlCmNvbmZpZ3Vy ZTo2NTkyOiAvbGliL2NwcCAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjk6MjY6IGVycm9yOiBtaW5p eC9jb25maWcuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6NjU5MjogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDxtaW5peC9jb25maWcuaD4KY29uZmlndXJlOjY1OTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjY1 OTI6IGNoZWNraW5nIGZvciBtaW5peC9jb25maWcuaApjb25maWd1cmU6NjU5MjogcmVzdWx0OiBu bwpjb25maWd1cmU6NjYxNjogY2hlY2tpbmcgd2hldGhlciBpdCBpcyBzYWZlIHRvIGRlZmluZSBf X0VYVEVOU0lPTlNfXwpjb25maWd1cmU6NjYzNDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjY2MzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjICAgICAgICAgZGVmaW5lIF9fRVhURU5TSU9O U19fIDEKfCAgICAgICAgICAgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZ UEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZ U19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENf SEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAj ZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg ZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1RE Q19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5o Pgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgp Cnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NjY0MTogcmVzdWx0OiBu bwpjb25maWd1cmU6NjY3MDogY2hlY2tpbmcgd2hldGhlciBfWE9QRU5fU09VUkNFIHNob3VsZCBi ZSBkZWZpbmVkCmNvbmZpZ3VyZTo2Njg5OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICIt c3RkPWdudTExIgpjb25maWd1cmU6NjY4OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgCnwgICAgICAgICAgICNpbmNsdWRlIDx3Y2hhci5oPgp8ICAgICAgICAgICBt YnN0YXRlX3QgeDsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6NjcwNjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjY3MDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8IAp8ICAgICAgICAgICAgICAjZGVmaW5lIF9YT1BFTl9TT1VSQ0UgNTAwCnwgICAgICAgICAg ICAgICNpbmNsdWRlIDx3Y2hhci5oPgp8ICAgICAgICAgICAgICBtYnN0YXRlX3QgeDsKfCBpbnQK fCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NjcxMzog cmVzdWx0OiBubwpjb25maWd1cmU6NjcyODogY2hlY2tpbmcgZm9yIE1pbml4IEFtc3RlcmRhbSBj b21waWxlcgpjb25maWd1cmU6Njc1MjogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMjogY2hlY2tp bmcgZm9yIGFyCmNvbmZpZ3VyZTo2ODI4OiBmb3VuZCAvdXNyL2Jpbi9hcgpjb25maWd1cmU6Njgz OTogcmVzdWx0OiBhcgpjb25maWd1cmU6Njg2NTogY2hlY2tpbmcgdGhlIGFyY2hpdmVyIChhcikg aW50ZXJmYWNlCmNvbmZpZ3VyZTo2ODgxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICIt c3RkPWdudTExIgpjb25maWd1cmU6Njg4MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgaW50IHNvbWVfdmFyaWFibGUgPSAwOwpjb25maWd1cmU6NjkxNDogcmVzdWx0 OiBhcgpjb25maWd1cmU6Njk3OTogY2hlY2tpbmcgZm9yIGFyCmNvbmZpZ3VyZTo3MDA2OiByZXN1 bHQ6IGFyCmNvbmZpZ3VyZTo3MDgxOiBjaGVja2luZyBmb3IgcmFubGliCmNvbmZpZ3VyZTo3MDk3 OiBmb3VuZCAvdXNyL2Jpbi9yYW5saWIKY29uZmlndXJlOjcxMDg6IHJlc3VsdDogcmFubGliCmNv bmZpZ3VyZTo3MTcwOiBjaGVja2luZyBmb3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVl ZGVkIGZvciBsYXJnZSBmaWxlcwpjb25maWd1cmU6NzIxNTogcmVzdWx0OiBubwpjb25maWd1cmU6 NzIyMTogY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNFVF9CSVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFy Z2UgZmlsZXMKY29uZmlndXJlOjcyNDY6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZTo3MjQ2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgIC8qIENoZWNrIHRoYXQgb2ZmX3Qg Y2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5Lgp8ICAgICBXZSBjYW4ndCBzaW1wbHkg ZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcsCnwgICAgIHNpbmNl IHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMKfCAgICAgaW5j b3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAqLwp8ICNkZWZpbmUgTEFSR0Vf T0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgob2ZmX3QpIDEgPDwgNjIpKQp8ICAgaW50 IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0ODM2MjkgPT0gNzIxCnwgICAgICAg ICAgICAgICAgICAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkKfCAgICAg ICAgICAgICAgICAgICAgICAgPyAxIDogLTFdOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo3MjcwOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6NzI3MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1 aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWls ZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2RlZmluZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNpbmNs dWRlIDxzeXMvdHlwZXMuaD4KfCAgLyogQ2hlY2sgdGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIq KjYzIC0gMSBjb3JyZWN0bHkuCnwgICAgIFdlIGNhbid0IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZG X1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgwNywKfCAgICAgc2luY2Ugc29tZSBDKysgY29tcGls ZXJzIG1hc3F1ZXJhZGluZyBhcyBDIGNvbXBpbGVycwp8ICAgICBpbmNvcnJlY3RseSByZWplY3Qg OTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCnwgI2RlZmluZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkg MSA8PCA2MikgLSAxICsgKChvZmZfdCkgMSA8PCA2MikpCnwgICBpbnQgb2ZmX3RfaXNfbGFyZ2Vb KExBUkdFX09GRl9UICUgMjE0NzQ4MzYyOSA9PSA3MjEKfCAgICAgICAgICAgICAgICAgICAgICAg ICYmIExBUkdFX09GRl9UICUgMjE0NzQ4MzY0NyA9PSAxKQp8ICAgICAgICAgICAgICAgICAgICAg ICA/IDEgOiAtMV07CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjcyNzg6IHJlc3VsdDogdW5rbm93bgpjb25maWd1cmU6NzI5MDogY2hlY2tp bmcgZm9yIF9MQVJHRV9GSUxFUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCmNvbmZpZ3Vy ZTo3MzE1OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6NzMxNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN5cy90eXBlcy5oPgp8ICAvKiBDaGVjayB0aGF0IG9mZl90IGNhbiByZXByZXNlbnQgMioq NjMgLSAxIGNvcnJlY3RseS4KfCAgICAgV2UgY2FuJ3Qgc2ltcGx5IGRlZmluZSBMQVJHRV9PRkZf VCB0byBiZSA5MjIzMzcyMDM2ODU0Nzc1ODA3LAp8ICAgICBzaW5jZSBzb21lIEMrKyBjb21waWxl cnMgbWFzcXVlcmFkaW5nIGFzIEMgY29tcGlsZXJzCnwgICAgIGluY29ycmVjdGx5IHJlamVjdCA5 MjIzMzcyMDM2ODU0Nzc1ODA3LiAgKi8KfCAjZGVmaW5lIExBUkdFX09GRl9UICgoKG9mZl90KSAx IDw8IDYyKSAtIDEgKyAoKG9mZl90KSAxIDw8IDYyKSkKfCAgIGludCBvZmZfdF9pc19sYXJnZVso TEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQp8ICAgICAgICAgICAgICAgICAgICAgICAg JiYgTEFSR0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3ID09IDEpCnwgICAgICAgICAgICAgICAgICAgICAg ID8gMSA6IC0xXTsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6NzMzOTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjczMzk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNkZWZpbmUgX0xBUkdFX0ZJTEVTIDEKfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgIC8q IENoZWNrIHRoYXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5Lgp8ICAg ICBXZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3 NzU4MDcsCnwgICAgIHNpbmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBj b21waWxlcnMKfCAgICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAq Lwp8ICNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgNjIpIC0gMSArICgob2ZmX3Qp IDEgPDwgNjIpKQp8ICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0ODM2 MjkgPT0gNzIxCnwgICAgICAgICAgICAgICAgICAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIxNDc0 ODM2NDcgPT0gMSkKfCAgICAgICAgICAgICAgICAgICAgICAgPyAxIDogLTFdOwp8IGludAp8IG1h aW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo3MzQ3OiByZXN1 bHQ6IHVua25vd24KY29uZmlndXJlOjczODg6IGF1dG9idWlsZCBwcm9qZWN0Li4uIEdOVSBHdWls ZQpjb25maWd1cmU6NzM5NDogYXV0b2J1aWxkIHJldmlzaW9uLi4uIDIuMi40CmNvbmZpZ3VyZTo3 Mzk5OiBhdXRvYnVpbGQgaG9zdG5hbWUuLi4gcHNuMDA4CmNvbmZpZ3VyZTo3NDEwOiBhdXRvYnVp bGQgdGltZXN0YW1wLi4uIDIwMTgwOTA1VDAyNTkzMloKY29uZmlndXJlOjc2MTQ6IGNoZWNraW5n IGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTo3Njg0OiByZXN1bHQ6IC9s aWIvY3BwCmNvbmZpZ3VyZTo3NzA0OiAvbGliL2NwcCAgY29uZnRlc3QuYwpjb25maWd1cmU6Nzcw NDogJD8gPSAwCmNvbmZpZ3VyZTo3NzE4OiAvbGliL2NwcCAgY29uZnRlc3QuYwpjb25mdGVzdC5j OjIyOjI4OiBlcnJvcjogYWNfbm9uZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQpjb25maWd1cmU6NzcxODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25l eGlzdGVudC5oPgpjb25maWd1cmU6Nzc0NjogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBu b3QgdHJ1bmNhdGUgb3V0cHV0CmNvbmZpZ3VyZTo3ODEwOiByZXN1bHQ6IC9iaW4vc2VkCmNvbmZp Z3VyZTo3ODE5OiBjaGVja2luZyBmb3IgZ2F3awpjb25maWd1cmU6Nzg0NjogcmVzdWx0OiBnYXdr CmNvbmZpZ3VyZTo3ODU3OiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzCmNvbmZpZ3VyZTo3 ODYxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6Nzk3MDogY2hlY2tpbmcgdGhlIGFyY2hpdmVyIChh cikgaW50ZXJmYWNlCmNvbmZpZ3VyZTo4MDE5OiByZXN1bHQ6IGFyCmNvbmZpZ3VyZTo4MDc2OiBj aGVja2luZyBmb3Igc3lzL3NvY2tldC5oCmNvbmZpZ3VyZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwg IyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAj IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlm ZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAm JiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlm CnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gK fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19I CnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9I CnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8 ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQu aD4KY29uZmlndXJlOjgwNzY6IHJlc3VsdDogbm8KY29uZmlndXJlOjgwNzY6IGNoZWNraW5nIGZv ciBhcnBhL2luZXQuaApjb25maWd1cmU6ODA3NjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjgwNzY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lz L3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8 c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxz dGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NU RExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBI QVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVk ZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRl IDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVk ZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVk ZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUg PHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KY29uZmlndXJl OjgwNzY6IHJlc3VsdDogbm8KY29uZmlndXJlOjgwNzY6IGNoZWNraW5nIGZvciBmZWF0dXJlcy5o CmNvbmZpZ3VyZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTEx Igpjb25maWd1cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgCnwgI2luY2x1ZGUgPGZlYXR1cmVzLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZTo4MDc2OiBjaGVja2luZyBmb3Igc3lzL3BhcmFtLmgKY29uZmlndXJlOjgw NzY6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4 MDc2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRk ZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAj aW5jbHVkZSA8c3lzL3BhcmFtLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo4MDc2OiBjaGVja2luZyBmb3IgZGlyZW50LmgKY29uZmlndXJlOjgwNzY6IGdjYyAtc3RkPWdu dTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4MDc2OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8ZGlyZW50 Lmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDc2OiBjaGVja2luZyBm b3IgeGxvY2FsZS5oCmNvbmZpZ3VyZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHhsb2NhbGUuaD4KY29uZmlndXJlOjgw NzY6IHJlc3VsdDogbm8KY29uZmlndXJlOjgwNzY6IGNoZWNraW5nIGZvciB1bmlzdGQuaApjb25m aWd1cmU6ODA3NjogcmVzdWx0OiBubwpjb25maWd1cmU6ODA3NjogY2hlY2tpbmcgZm9yIHN5cy9z dGF0LmgKY29uZmlndXJlOjgwNzY6IHJlc3VsdDogbm8KY29uZmlndXJlOjgwNzY6IGNoZWNraW5n IGZvciBuZXRkYi5oCmNvbmZpZ3VyZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPG5ldGRiLmg+CmNvbmZpZ3VyZTo4MDc2 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDc2OiBjaGVja2luZyBmb3IgbmV0aW5ldC9pbi5oCmNv bmZpZ3VyZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8 ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNl bmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5j bHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gK fCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAj ICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2Vu ZGlmCnwgCnwgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KY29uZmlndXJlOjgwNzY6IHJlc3VsdDog bm8KY29uZmlndXJlOjgwNzY6IGNoZWNraW5nIGZvciBzeXMvdGltZS5oCmNvbmZpZ3VyZTo4MDc2 OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVu cmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODA3 NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZF X1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVm Lmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZp bmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxt ZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2lu Y2x1ZGUgPHN5cy90aW1lLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4 MDc2OiBjaGVja2luZyBmb3IgaWNvbnYuaApjb25maWd1cmU6ODA3NjogZ2NjIC1zdGQ9Z251MTEg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjgwNzY6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMg aW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8 ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwg IyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBp ZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMg JiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRp Zgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19I CnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNf SAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRf SAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gK fCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxpY29udi5oPgpj b25maWd1cmU6ODA3NjogcmVzdWx0OiBubwpjb25maWd1cmU6ODA3NjogY2hlY2tpbmcgZm9yIGxh bmdpbmZvLmgKY29uZmlndXJlOjgwNzY6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZTo4MDc2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBl cy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9z dGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGli Lmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJf SAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9N RU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0 cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3Ry aW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGlu dHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0 ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlz dGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bGFuZ2luZm8uaD4KY29uZmlndXJlOjgwNzY6 IHJlc3VsdDogbm8KY29uZmlndXJlOjgwNzY6IGNoZWNraW5nIGZvciBsaW1pdHMuaApjb25maWd1 cmU6ODA3NjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVy cm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmln dXJlOjgwNzY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 IAp8ICNpbmNsdWRlIDxsaW1pdHMuaD4KY29uZmlndXJlOjgwNzY6IHJlc3VsdDogbm8KY29uZmln dXJlOjgwNzY6IGNoZWNraW5nIGZvciBtYXRoLmgKY29uZmlndXJlOjgwNzY6IGdjYyAtc3RkPWdu dTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4MDc2OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bWF0aC5o Pgpjb25maWd1cmU6ODA3NjogcmVzdWx0OiBubwpjb25maWd1cmU6ODA3NjogY2hlY2tpbmcgZm9y IHBvbGwuaApjb25maWd1cmU6ODA3NjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjgwNzY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxwb2xsLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo4MDc2OiBjaGVja2luZyBmb3Igc3lzL2lvY3RsLmgKY29uZmlndXJl OjgwNzY6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZTo4MDc2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVm IEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxz dGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYg IWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1 ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAK fCAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo4MDc2OiBjaGVja2luZyBmb3Igc3lzL2ZpbGlvLmgKY29uZmlndXJlOjgwNzY6IGdjYyAt c3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4MDc2OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZ UEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZ U19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENf SEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAj ZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg ZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1RE Q19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5o Pgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8 c3lzL2ZpbGlvLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDc2OiBj aGVja2luZyBmb3IgbWFsbG9jLmgKY29uZmlndXJlOjgwNzY6IGdjYyAtc3RkPWdudTExIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGlu ZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4MDc2OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1 ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGlu Y2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5j bHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYg SEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRl ZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAj IGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMg aW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAj IGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAj IGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBp bmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bWFsbG9jLmg+CmNvbmZp Z3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDc2OiBjaGVja2luZyBmb3Igc3lzL3Nl bGVjdC5oCmNvbmZpZ3VyZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmlu ZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9H TlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f VVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz dGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3Rh dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5o Pgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gK fCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVN T1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJp bmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmlu Z3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRp bnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3Rk Lmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KY29uZmlndXJlOjgwNzY6 IHJlc3VsdDogbm8KY29uZmlndXJlOjgwNzY6IGNoZWNraW5nIGZvciB3Y2hhci5oCmNvbmZpZ3Vy ZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRl ZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8 c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxz dGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlm ICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNs dWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwg CnwgI2luY2x1ZGUgPHdjaGFyLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo4MDc2OiBjaGVja2luZyBmb3Igc3RkaW50LmgKY29uZmlndXJlOjgwNzY6IHJlc3VsdDogbm8K Y29uZmlndXJlOjgwNzY6IGNoZWNraW5nIGZvciBzeXMvZmlsZS5oCmNvbmZpZ3VyZTo4MDc2OiBn Y2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVj b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODA3Njog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZ U19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBT VERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+ CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVk IFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1v cnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1 ZGUgPHN5cy9maWxlLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDc2 OiBjaGVja2luZyBmb3Igc3lzL3RpbWVzLmgKY29uZmlndXJlOjgwNzY6IGdjYyAtc3RkPWdudTEx IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1h bmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4MDc2OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAj IGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gK fCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8 ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMg aWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJT ICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5k aWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1Nf SAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVT X0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5U X0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9I CnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3RpbWVz Lmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDc2OiBjaGVja2luZyBm b3Igc3lzL3Vpby5oCmNvbmZpZ3VyZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy91aW8uaD4KY29uZmlndXJlOjgw NzY6IHJlc3VsdDogbm8KY29uZmlndXJlOjgwNzY6IGNoZWNraW5nIGZvciBzeXMvbW1hbi5oCmNv bmZpZ3VyZTo4MDc2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6ODA3NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8 ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNl bmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5j bHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gK fCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAj ICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2Vu ZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9tbWFuLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo4MDc2OiBjaGVja2luZyBmb3Igd2N0eXBlLmgKY29uZmlndXJlOjgwNzY6IGdj YyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4MDc2OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lT X1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNU RENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4K fCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8 ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQg U1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9y eS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVk ZSA8d2N0eXBlLmg+CmNvbmZpZ3VyZTo4MDc2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDkzOiBj aGVja2luZyB3czJ0Y3BpcC5oIHVzYWJpbGl0eQpjb25maWd1cmU6ODA5MzogZ2NjIC1zdGQ9Z251 MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjgwOTM6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8 ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRf SAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJT CnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwg IyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURF UlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBl bmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H U19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQ RVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJ TlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1RE X0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx3czJ0Y3BpcC5o Pgpjb25maWd1cmU6ODA5MzogcmVzdWx0OiBubwpjb25maWd1cmU6ODA5MzogY2hlY2tpbmcgd3My dGNwaXAuaCBwcmVzZW5jZQpjb25maWd1cmU6ODA5MzogL2xpYi9jcHAgIGNvbmZ0ZXN0LmMKY29u ZnRlc3QuYzoyMjoyMjogZXJyb3I6IHdzMnRjcGlwLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKY29uZmlndXJlOjgwOTM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82 NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8d3MydGNw aXAuaD4KY29uZmlndXJlOjgwOTM6IHJlc3VsdDogbm8KY29uZmlndXJlOjgwOTM6IGNoZWNraW5n IGZvciB3czJ0Y3BpcC5oCmNvbmZpZ3VyZTo4MDkzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MTA3 OiBjaGVja2luZyB3aGV0aGVyIHRoZSBwcmVwcm9jZXNzb3Igc3VwcG9ydHMgaW5jbHVkZV9uZXh0 CmNvbmZpZ3VyZTo4MTQ1OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIC1JY29uZnRlc3RkMWIg LUljb25mdGVzdGQyIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODE0NTogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxjb25mdGVzdC5oPgpjb25maWd1cmU6ODE1MzogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICAtSWNvbmZ0ZXN0ZDFhIC1JY29uZnRlc3RkMiBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjgxNTM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82 NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8Y29uZnRl c3QuaD4KY29uZmlndXJlOjgxNjY6IHJlc3VsdDogbm8KY29uZmlndXJlOjgxODc6IGNoZWNraW5n IHdoZXRoZXIgc3lzdGVtIGhlYWRlciBmaWxlcyBsaW1pdCB0aGUgbGluZSBsZW5ndGgKY29uZmln dXJlOjgyMTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjgzNTg6IGNoZWNraW5nIHdoZXRoZXIgPHN5 cy9zb2NrZXQuaD4gaXMgc2VsZi1jb250YWluZWQKY29uZmlndXJlOjgzNzU6IGdjYyAtc3RkPWdu dTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Mzc1OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCBpbnQKfCBtYWluICgpCnwgewp8 IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODM4MzogcmVzdWx0OiBubwpjb25m aWd1cmU6ODQ0NTogY2hlY2tpbmcgYWJzb2x1dGUgbmFtZSBvZiA8c3lzL3NvY2tldC5oPgpjb25m aWd1cmU6ODQ5NDogcmVzdWx0OiA8c3lzL3NvY2tldC5oPgpjb25maWd1cmU6ODUyNTogY2hlY2tp bmcgZm9yIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlCmNvbmZpZ3VyZTo4NTI1OiBnY2MgLXN0ZD1n bnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODUyNTogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n dWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8IAp8ICAgLyogc3lzL3R5cGVzLmggaXMgbm90IG5lZWRlZCBhY2NvcmRpbmcg dG8gUE9TSVgsIGJ1dCB0aGUKfCAgICAgIHN5cy9zb2NrZXQuaCBpbiBpMzg2LXVua25vd24tZnJl ZWJzZDQuMTAgYW5kCnwgICAgICBwb3dlcnBjLWFwcGxlLWRhcndpbjUuNSByZXF1aXJlZCBpdC4g Ki8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICnwg I2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9XUzJUQ1BJUF9I CnwgI2luY2x1ZGUgPHdzMnRjcGlwLmg+CnwgI2VuZGlmCnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8 IHsKfCBpZiAoc2l6ZW9mIChzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSkpCnwgCSByZXR1cm4gMDsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg1MjU6IHJlc3VsdDogbm8KY29uZmln dXJlOjg1NDY6IGNoZWNraW5nIGZvciBzYV9mYW1pbHlfdApjb25maWd1cmU6ODU0NjogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjg1NDY6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAKfCAgIC8qIHN5cy90eXBlcy5oIGlzIG5vdCBuZWVkZWQgYWNjb3Jk aW5nIHRvIFBPU0lYLCBidXQgdGhlCnwgICAgICBzeXMvc29ja2V0LmggaW4gaTM4Ni11bmtub3du LWZyZWVic2Q0LjEwIGFuZAp8ICAgICAgcG93ZXJwYy1hcHBsZS1kYXJ3aW41LjUgcmVxdWlyZWQg aXQuICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpZmRlZiBIQVZFX1NZU19TT0NLRVRf SAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfV1MyVENQ SVBfSAp8ICNpbmNsdWRlIDx3czJ0Y3BpcC5oPgp8ICNlbmRpZgp8IAp8IAp8IGludAp8IG1haW4g KCkKfCB7CnwgaWYgKHNpemVvZiAoc2FfZmFtaWx5X3QpKQp8IAkgcmV0dXJuIDA7CnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4NTQ2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4NjA3 OiBjaGVja2luZyB3aW5zb2NrMi5oIHVzYWJpbGl0eQpjb25maWd1cmU6ODYwNzogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjg2MDc6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNf SAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NU QVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFE RVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNl CnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRp Zgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hF QURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cnwg IyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RS SU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5U VFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5J U1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx3aW5zb2Nr Mi5oPgpjb25maWd1cmU6ODYwNzogcmVzdWx0OiBubwpjb25maWd1cmU6ODYwNzogY2hlY2tpbmcg d2luc29jazIuaCBwcmVzZW5jZQpjb25maWd1cmU6ODYwNzogL2xpYi9jcHAgIGNvbmZ0ZXN0LmMK Y29uZnRlc3QuYzoyMjoyMjogZXJyb3I6IHdpbnNvY2syLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkKY29uZmlndXJlOjg2MDc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8d2lu c29jazIuaD4KY29uZmlndXJlOjg2MDc6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2MDc6IGNoZWNr aW5nIGZvciB3aW5zb2NrMi5oCmNvbmZpZ3VyZTo4NjA3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4 NjMxOiBjaGVja2luZyB3aGV0aGVyIHNvY2tldCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8K Y29uZmlndXJlOjg2NTI6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK Y2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEi CmNvbmZpZ3VyZTo4NjUyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRf QklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogU29tZSBzeXN0ZW1z IHJlcXVpcmUgcHJlcmVxdWlzaXRlIGhlYWRlcnMuICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3Vu ZGVmIHNvY2tldAp8ICAgKHZvaWQpIHNvY2tldDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjg2NjA6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2MzE6IGNoZWNraW5nIHdoZXRoZXIg Y29ubmVjdCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjg2NTI6IGdjYyAt c3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4NjUyOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgCnwgLyogU29tZSBzeXN0ZW1zIHJlcXVpcmUgcHJlcmVxdWlzaXRl IGhlYWRlcnMuICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8c3lzL3Nv Y2tldC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGNvbm5lY3QKfCAgICh2b2lk KSBjb25uZWN0Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY2MDogcmVzdWx0 OiBubwpjb25maWd1cmU6ODYzMTogY2hlY2tpbmcgd2hldGhlciBhY2NlcHQgaXMgZGVjbGFyZWQg d2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTo4NjUyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIg IGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY1MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxl IDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8i CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8 IC8qIFNvbWUgc3lzdGVtcyByZXF1aXJlIHByZXJlcXVpc2l0ZSBoZWFkZXJzLiAgKi8KfCAjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCBpbnQKfCBt YWluICgpCnwgewp8ICN1bmRlZiBhY2NlcHQKfCAgICh2b2lkKSBhY2NlcHQ7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4NjYwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4NjMxOiBj aGVja2luZyB3aGV0aGVyIGJpbmQgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3Vy ZTo4NjUyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6ODY1MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIFNvbWUgc3lzdGVtcyByZXF1aXJl IHByZXJlcXVpc2l0ZSBoZWFkZXJzLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2lu Y2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBiaW5k CnwgICAodm9pZCkgYmluZDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2NjA6 IHJlc3VsdDogbm8KY29uZmlndXJlOjg2MzE6IGNoZWNraW5nIHdoZXRoZXIgZ2V0cGVlcm5hbWUg aXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTo4NjUyOiBnY2MgLXN0ZD1nbnUx MSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY1MjogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IAp8IC8qIFNvbWUgc3lzdGVtcyByZXF1aXJlIHByZXJlcXVpc2l0ZSBoZWFkZXJz LiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4K fCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBnZXRwZWVybmFtZQp8ICAgKHZvaWQpIGdl dHBlZXJuYW1lOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY2MDogcmVzdWx0 OiBubwpjb25maWd1cmU6ODYzMTogY2hlY2tpbmcgd2hldGhlciBnZXRzb2NrbmFtZSBpcyBkZWNs YXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjg2NTI6IGdjYyAtc3RkPWdudTExIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGlu ZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4NjUyOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgCnwgLyogU29tZSBzeXN0ZW1zIHJlcXVpcmUgcHJlcmVxdWlzaXRlIGhlYWRlcnMuICAqLwp8 ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8IAp8IGlu dAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGdldHNvY2tuYW1lCnwgICAodm9pZCkgZ2V0c29ja25h bWU7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4NjYwOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo4NjMxOiBjaGVja2luZyB3aGV0aGVyIGdldHNvY2tvcHQgaXMgZGVjbGFyZWQgd2l0 aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTo4NjUyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6ODY1MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8q IFNvbWUgc3lzdGVtcyByZXF1aXJlIHByZXJlcXVpc2l0ZSBoZWFkZXJzLiAgKi8KfCAjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCBpbnQKfCBtYWlu ICgpCnwgewp8ICN1bmRlZiBnZXRzb2Nrb3B0CnwgICAodm9pZCkgZ2V0c29ja29wdDsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2NjA6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2 MzE6IGNoZWNraW5nIHdoZXRoZXIgbGlzdGVuIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpj b25maWd1cmU6ODY1MjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpj YzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIK Y29uZmlndXJlOjg2NTI6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBTb21lIHN5c3RlbXMg cmVxdWlyZSBwcmVyZXF1aXNpdGUgaGVhZGVycy4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5o Pgp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5k ZWYgbGlzdGVuCnwgICAodm9pZCkgbGlzdGVuOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6ODY2MDogcmVzdWx0OiBubwpjb25maWd1cmU6ODYzMTogY2hlY2tpbmcgd2hldGhlciBy ZWN2IGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6ODY1MjogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjg2NTI6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAKfCAvKiBTb21lIHN5c3RlbXMgcmVxdWlyZSBwcmVyZXF1aXNpdGUgaGVh ZGVycy4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxzeXMvc29ja2V0 Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgcmVjdgp8ICAgKHZvaWQpIHJlY3Y7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4NjYwOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo4NjMxOiBjaGVja2luZyB3aGV0aGVyIHNlbmQgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1h Y3JvCmNvbmZpZ3VyZTo4NjUyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6ODY1MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIFNvbWUgc3lz dGVtcyByZXF1aXJlIHByZXJlcXVpc2l0ZSBoZWFkZXJzLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 ICN1bmRlZiBzZW5kCnwgICAodm9pZCkgc2VuZDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjg2NjA6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2MzE6IGNoZWNraW5nIHdoZXRoZXIg cmVjdmZyb20gaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTo4NjUyOiBnY2Mg LXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2du aXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY1MjogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIFNvbWUgc3lzdGVtcyByZXF1aXJlIHByZXJlcXVpc2l0 ZSBoZWFkZXJzLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9z b2NrZXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiByZWN2ZnJvbQp8ICAgKHZv aWQpIHJlY3Zmcm9tOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY2MDogcmVz dWx0OiBubwpjb25maWd1cmU6ODYzMTogY2hlY2tpbmcgd2hldGhlciBzZW5kdG8gaXMgZGVjbGFy ZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTo4NjUyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY1MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1 aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWls ZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 IAp8IC8qIFNvbWUgc3lzdGVtcyByZXF1aXJlIHByZXJlcXVpc2l0ZSBoZWFkZXJzLiAgKi8KfCAj aW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCBpbnQK fCBtYWluICgpCnwgewp8ICN1bmRlZiBzZW5kdG8KfCAgICh2b2lkKSBzZW5kdG87CnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4NjYwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4NjMx OiBjaGVja2luZyB3aGV0aGVyIHNldHNvY2tvcHQgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3Jv CmNvbmZpZ3VyZTo4NjUyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTEx Igpjb25maWd1cmU6ODY1MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIFNvbWUgc3lzdGVt cyByZXF1aXJlIHByZXJlcXVpc2l0ZSBoZWFkZXJzLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1 bmRlZiBzZXRzb2Nrb3B0CnwgICAodm9pZCkgc2V0c29ja29wdDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjg2NjA6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2MzE6IGNoZWNraW5n IHdoZXRoZXIgc2h1dGRvd24gaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTo4 NjUyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 ODY1MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIFNvbWUgc3lzdGVtcyByZXF1aXJlIHBy ZXJlcXVpc2l0ZSBoZWFkZXJzLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1 ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBzaHV0ZG93 bgp8ICAgKHZvaWQpIHNodXRkb3duOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 ODY2MDogcmVzdWx0OiBubwpjb25maWd1cmU6ODYzMTogY2hlY2tpbmcgd2hldGhlciBhY2NlcHQ0 IGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6ODY1MjogZ2NjIC1zdGQ9Z251 MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjg2NTI6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAKfCAvKiBTb21lIHN5c3RlbXMgcmVxdWlyZSBwcmVyZXF1aXNpdGUgaGVhZGVy cy4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgYWNjZXB0NAp8ICAgKHZvaWQpIGFjY2Vw dDQ7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4NjYwOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgYWNjZXB0NApjb25maWd1cmU6ODY3ODogZ2NjIC1z dGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBhY2NlcHQ0IHRvIGFuIGlubm9j dW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgYWNjZXB0NC4KfCAgICBG b3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAg Ki8KfCAjZGVmaW5lIGFjY2VwdDQgaW5ub2N1b3VzX2FjY2VwdDQKfCAKfCAvKiBTeXN0ZW0gaGVh ZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMs CnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgYWNjZXB0NCAoKTsgYmVsb3cuCnwg ICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5l ZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29t cGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8 ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgYWNjZXB0 NAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFu IGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g dHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJD Igp8ICNlbmRpZgp8IGNoYXIgYWNjZXB0NCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZp bmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5 cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwg ICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4g YWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9hY2NlcHQ0IHx8IGRlZmluZWQgX19zdHVi X19fYWNjZXB0NAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBy ZXR1cm4gYWNjZXB0NCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2Nzg6 IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciBjYW5vbmljYWxpemVfZmls ZV9uYW1lCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIg ICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBv cHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg LyogRGVmaW5lIGNhbm9uaWNhbGl6ZV9maWxlX25hbWUgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQs IGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBjYW5vbmljYWxpemVfZmlsZV9uYW1lLgp8ICAg IEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXku ICAqLwp8ICNkZWZpbmUgY2Fub25pY2FsaXplX2ZpbGVfbmFtZSBpbm5vY3VvdXNfY2Fub25pY2Fs aXplX2ZpbGVfbmFtZQp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNy b3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0 IHdpdGggY2hhciBjYW5vbmljYWxpemVfZmlsZV9uYW1lICgpOyBiZWxvdy4KfCAgICAgUHJlZmVy IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8 ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAq Lwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAj IGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBjYW5vbmljYWxpemVfZmls ZV9uYW1lCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv aWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRl cm4gIkMiCnwgI2VuZGlmCnwgY2hhciBjYW5vbmljYWxpemVfZmlsZV9uYW1lICgpOwp8IC8qIFRo ZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxl bWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBh cmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRo ZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2Nhbm9u aWNhbGl6ZV9maWxlX25hbWUgfHwgZGVmaW5lZCBfX3N0dWJfX19jYW5vbmljYWxpemVfZmlsZV9u YW1lCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBj YW5vbmljYWxpemVfZmlsZV9uYW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODY3ODogY2hlY2tpbmcgZm9yIGdldGN3ZApj b25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRl c3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICIt c3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmlu ZSBnZXRjd2QgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNs YXJlcyBnZXRjd2QuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xh cmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBnZXRjd2QgaW5ub2N1b3VzX2dldGN3ZAp8 IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs eSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBnZXRj d2QgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9f U1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24g ZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNs dWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwg CnwgI3VuZGVmIGdldGN3ZAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90 eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNw bHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZ2V0Y3dkICgpOwp8IC8qIFRoZSBHTlUg QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMK fCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0 dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3Jt YWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2dldGN3ZCB8fCBk ZWZpbmVkIF9fc3R1Yl9fX2dldGN3ZAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFp biAoKQp8IHsKfCByZXR1cm4gZ2V0Y3dkICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODY3ODogY2hlY2tpbmcgZm9yIHJlYWRs aW5rCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBj b25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRp b24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyog RGVmaW5lIHJlYWRsaW5rIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMu aD4gZGVjbGFyZXMgcmVhZGxpbmsuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRz Lmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSByZWFkbGluayBpbm5vY3Vv dXNfcmVhZGxpbmsKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9z IGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3 aXRoIGNoYXIgcmVhZGxpbmsgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8 YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4g ZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9f U1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0 Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIHJlYWRsaW5rCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciByZWFkbGlu ayAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3 aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29t ZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3 aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVk IF9fc3R1Yl9yZWFkbGluayB8fCBkZWZpbmVkIF9fc3R1Yl9fX3JlYWRsaW5rCnwgY2hva2UgbWUK fCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiByZWFkbGluayAoKTsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJl Ojg2Nzg6IGNoZWNraW5nIGZvciByZWFscGF0aApjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251 MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVj b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSByZWFscGF0aCB0byBhbiBpbm5vY3VvdXMg dmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHJlYWxwYXRoLgp8ICAgIEZvciBl eGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8 ICNkZWZpbmUgcmVhbHBhdGggaW5ub2N1b3VzX3JlYWxwYXRoCnwgCnwgLyogU3lzdGVtIGhlYWRl ciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8 ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHJlYWxwYXRoICgpOyBiZWxvdy4KfCAg ICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21w aWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+Cnwg I2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiByZWFscGF0 aAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFu IGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g dHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJD Igp8ICNlbmRpZgp8IGNoYXIgcmVhbHBhdGggKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVm aW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdh eXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8 ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFu IGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfcmVhbHBhdGggfHwgZGVmaW5lZCBfX3N0 dWJfX19yZWFscGF0aAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCByZXR1cm4gcmVhbHBhdGggKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4 Njc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgX3NldF9pbnZhbGlk X3BhcmFtZXRlcl9oYW5kbGVyCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25m dGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgLyogRGVmaW5lIF9zZXRfaW52YWxpZF9wYXJhbWV0ZXJfaGFuZGxlciB0byBh biBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIF9zZXRfaW52 YWxpZF9wYXJhbWV0ZXJfaGFuZGxlci4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1p dHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIF9zZXRfaW52YWxpZF9w YXJhbWV0ZXJfaGFuZGxlciBpbm5vY3VvdXNfX3NldF9pbnZhbGlkX3BhcmFtZXRlcl9oYW5kbGVy CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIF9z ZXRfaW52YWxpZF9wYXJhbWV0ZXJfaGFuZGxlciAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGlt aXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAg PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAK fCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNs dWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgX3NldF9pbnZhbGlkX3BhcmFtZXRl cl9oYW5kbGVyCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8g YXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhl IHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQg cHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBl eHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBfc2V0X2ludmFsaWRfcGFyYW1ldGVyX2hhbmRsZXIg KCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp Y2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0 aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBf X3N0dWJfX3NldF9pbnZhbGlkX3BhcmFtZXRlcl9oYW5kbGVyIHx8IGRlZmluZWQgX19zdHViX19f X3NldF9pbnZhbGlkX3BhcmFtZXRlcl9oYW5kbGVyCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBp bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBfc2V0X2ludmFsaWRfcGFyYW1ldGVyX2hhbmRsZXIg KCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgZHVwbG9jYWxlCmNvbmZpZ3VyZTo4Njc4OiBnY2Mg LXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGR1cGxvY2FsZSB0byBhbiBp bm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGR1cGxvY2FsZS4K fCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9m ZGF5LiAgKi8KfCAjZGVmaW5lIGR1cGxvY2FsZSBpbm5vY3VvdXNfZHVwbG9jYWxlCnwgCnwgLyog U3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBw cm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGR1cGxvY2FsZSAo KTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERD X18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVl c3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUg PGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAj dW5kZWYgZHVwbG9jYWxlCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBkdXBsb2NhbGUgKCk7CnwgLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBh Y3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZHVwbG9jYWxl IHx8IGRlZmluZWQgX19zdHViX19fZHVwbG9jYWxlCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBp bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBkdXBsb2NhbGUgKCk7CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4Njc4OiBjaGVja2lu ZyBmb3Igc3ltbGluawpjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3Qg LWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IC8qIERlZmluZSBzeW1saW5rIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNl IDxsaW1pdHMuaD4gZGVjbGFyZXMgc3ltbGluay4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFp IDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHN5bWxpbmsg aW5ub2N1b3VzX3N5bWxpbmsKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25m bGljdCB3aXRoIGNoYXIgc3ltbGluayAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+ IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0 cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZk ZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxh c3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgc3ltbGluawp8IAp8IC8qIE92ZXJyaWRlIGFu eSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1 aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgc3lt bGluayAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u cyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGlu ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZp bmVkIF9fc3R1Yl9zeW1saW5rIHx8IGRlZmluZWQgX19zdHViX19fc3ltbGluawp8IGNob2tlIG1l CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gc3ltbGluayAoKTsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJl Ojg2Nzg6IGNoZWNraW5nIGZvciBmbG9jawpjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEg LW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2du aXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBmbG9jayB0byBhbiBpbm5vY3VvdXMgdmFyaWFu dCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGZsb2NrLgp8ICAgIEZvciBleGFtcGxlLCBI UC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUg ZmxvY2sgaW5ub2N1b3VzX2Zsb2NrCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4g Y29uZmxpY3Qgd2l0aCBjaGFyIGZsb2NrICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNp ZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUg PGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBmbG9jawp8IAp8IC8qIE92ZXJyaWRlIGFu eSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1 aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZmxv Y2sgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMg d2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNv bWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcg d2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5l ZCBfX3N0dWJfZmxvY2sgfHwgZGVmaW5lZCBfX3N0dWJfX19mbG9jawp8IGNob2tlIG1lCnwgI2Vu ZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZmxvY2sgKCk7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4Njc4OiBj aGVja2luZyBmb3IgZmNudGwKY29uZmlndXJlOjg2Nzg6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0 ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjg2Nzg6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAvKiBEZWZpbmUgZmNudGwgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNh c2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBmY250bC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFp IDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGZjbnRsIGlu bm9jdW91c19mY250bAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNy b3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0 IHdpdGggY2hhciBmY250bCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxh c3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBl eGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19T VERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQu aD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgZmNudGwKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGlu dGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNl IGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFu ZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNp ZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGZjbnRsICgpOwp8 IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0 IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0 aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18g YW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHVi X2ZjbnRsIHx8IGRlZmluZWQgX19zdHViX19fZmNudGwKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8 IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGZjbnRsICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODY3ODogY2hlY2tpbmcg Zm9yIGZzeW5jCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAt TzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGlu ZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgLyogRGVmaW5lIGZzeW5jIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1p dHMuaD4gZGVjbGFyZXMgZnN5bmMuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRz Lmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBmc3luYyBpbm5vY3VvdXNf ZnN5bmMKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBo b3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNo YXIgZnN5bmMgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+ IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2 ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwg IyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2Vu ZGlmCnwgCnwgI3VuZGVmIGZzeW5jCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBw cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWln aHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBp dHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19j cGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBmc3luYyAoKTsKfCAvKiBUaGUg R05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1l bnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJl IGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUg bm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9mc3luYyB8 fCBkZWZpbmVkIF9fc3R1Yl9fX2ZzeW5jCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IHJldHVybiBmc3luYyAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciBnZXRs b2dpbgpjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAg Y29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxl IDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8i CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8q IERlZmluZSBnZXRsb2dpbiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRz Lmg+IGRlY2xhcmVzIGdldGxvZ2luLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0 cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgZ2V0bG9naW4gaW5ub2N1 b3VzX2dldGxvZ2luCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3Jv cyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qg d2l0aCBjaGFyIGdldGxvZ2luICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+ IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBf X1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2Vy dC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBnZXRsb2dpbgp8IAp8IC8qIE92ZXJyaWRlIGFueSBH Q0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJl Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0 aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov CnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZ2V0bG9n aW4gKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMg d2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNv bWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcg d2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5l ZCBfX3N0dWJfZ2V0bG9naW4gfHwgZGVmaW5lZCBfX3N0dWJfX19nZXRsb2dpbgp8IGNob2tlIG1l CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0bG9naW4gKCk7Cnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo4Njc4OiBjaGVja2luZyBmb3IgZ2V0dGltZW9mZGF5CmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0 ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4 Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdldHRpbWVvZmRheSB0byBhbiBp bm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh eS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGlt ZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGdldHRpbWVvZmRheSBpbm5vY3VvdXNfZ2V0dGltZW9mZGF5 CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdl dHRpbWVvZmRheSAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQu aD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMg ZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18K fCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAj ZW5kaWYKfCAKfCAjdW5kZWYgZ2V0dGltZW9mZGF5CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVz ZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBh bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAj aWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBnZXR0aW1lb2Zk YXkgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMg d2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNv bWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcg d2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5l ZCBfX3N0dWJfZ2V0dGltZW9mZGF5IHx8IGRlZmluZWQgX19zdHViX19fZ2V0dGltZW9mZGF5Cnwg Y2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBnZXR0aW1l b2ZkYXkgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgbGluawpjb25maWd1cmU6ODY3ODogZ2Nj IC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBsaW5rIHRvIGFuIGlubm9j dW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgbGluay4KfCAgICBGb3Ig ZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8K fCAjZGVmaW5lIGxpbmsgaW5ub2N1b3VzX2xpbmsKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRl ZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdo aWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbGluayAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8 bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAg ICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8K fCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBp bmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgbGluawp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgbGluayAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0 aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lT LiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFy dGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBk ZWZpbmVkIF9fc3R1Yl9saW5rIHx8IGRlZmluZWQgX19zdHViX19fbGluawp8IGNob2tlIG1lCnwg I2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gbGluayAoKTsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6 IGNoZWNraW5nIGZvciBsc3RhdApjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29u ZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n dWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8IC8qIERlZmluZSBsc3RhdCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4g Y2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGxzdGF0Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAx MWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgbHN0YXQg aW5ub2N1b3VzX2xzdGF0CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1h Y3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxp Y3Qgd2l0aCBjaGFyIGxzdGF0ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8g PGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+ IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBf X1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2Vy dC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBsc3RhdAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0Mg aW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1 c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4g YW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwg I2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgbHN0YXQgKCk7 CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2gg aXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVu Y3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0 dWJfbHN0YXQgfHwgZGVmaW5lZCBfX3N0dWJfX19sc3RhdAp8IGNob2tlIG1lCnwgI2VuZGlmCnwg CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gbHN0YXQgKCk7CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4Njc4OiBjaGVja2lu ZyBmb3IgbWtvc3RlbXAKY29uZmlndXJlOjg2Nzg6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0 IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjg2Nzg6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAvKiBEZWZpbmUgbWtvc3RlbXAgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNh c2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBta29zdGVtcC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVgg MTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIG1rb3N0 ZW1wIGlubm9jdW91c19ta29zdGVtcAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9f c3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2Fu IGNvbmZsaWN0IHdpdGggY2hhciBta29zdGVtcCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGlt aXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAg PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAK fCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNs dWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgbWtvc3RlbXAKfCAKfCAvKiBPdmVy cmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBV c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MK fCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg YXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBj aGFyIG1rb3N0ZW1wICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3Ig ZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBF Tk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5n IHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwg I2lmIGRlZmluZWQgX19zdHViX21rb3N0ZW1wIHx8IGRlZmluZWQgX19zdHViX19fbWtvc3RlbXAK fCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIG1rb3N0 ZW1wICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY3ODogcmVzdWx0OiBu bwpjb25maWd1cmU6ODY3ODogY2hlY2tpbmcgZm9yIG5sX2xhbmdpbmZvCmNvbmZpZ3VyZTo4Njc4 OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIu NCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18g MQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklU X0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIG5sX2xhbmdpbmZv IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgbmxf bGFuZ2luZm8uCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBubF9sYW5naW5mbyBpbm5vY3VvdXNfbmxfbGFu Z2luZm8KfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBo b3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNo YXIgbmxfbGFuZ2luZm8gKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNz ZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhp c3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1RE Q19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+ CnwgI2VuZGlmCnwgCnwgI3VuZGVmIG5sX2xhbmdpbmZvCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBubF9sYW5n aW5mbyAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u cyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGlu ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZp bmVkIF9fc3R1Yl9ubF9sYW5naW5mbyB8fCBkZWZpbmVkIF9fc3R1Yl9fX25sX2xhbmdpbmZvCnwg Y2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBubF9sYW5n aW5mbyAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2Nzg6IHJlc3VsdDog bm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciBwaXBlCmNvbmZpZ3VyZTo4Njc4OiBnY2Mg LXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHBpcGUgdG8gYW4gaW5ub2N1 b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBwaXBlLgp8ICAgIEZvciBl eGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8 ICNkZWZpbmUgcGlwZSBpbm5vY3VvdXNfcGlwZQp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hp Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBwaXBlICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxs aW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAg ICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8 IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGlu Y2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBwaXBlCnwgCnwgLyogT3ZlcnJp ZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwg ICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw cGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hh ciBwaXBlICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rp b25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0 aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRl ZmluZWQgX19zdHViX3BpcGUgfHwgZGVmaW5lZCBfX3N0dWJfX19waXBlCnwgY2hva2UgbWUKfCAj ZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBwaXBlICgpOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODY3ODog Y2hlY2tpbmcgZm9yIHBpcGUyCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25m dGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgLyogRGVmaW5lIHBpcGUyIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBj YXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgcGlwZTIuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDEx aSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBwaXBlMiBp bm5vY3VvdXNfcGlwZTIKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFj cm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGlj dCB3aXRoIGNoYXIgcGlwZTIgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8 YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4g ZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9f U1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0 Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIHBpcGUyCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVz ZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBh bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAj aWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBwaXBlMiAoKTsK fCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp dCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9f IGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1 Yl9waXBlMiB8fCBkZWZpbmVkIF9fc3R1Yl9fX3BpcGUyCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAK fCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBwaXBlMiAoKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5n IGZvciBpc2JsYW5rCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAt ZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQg bGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgLyogRGVmaW5lIGlzYmxhbmsgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2Ug PGxpbWl0cy5oPiBkZWNsYXJlcyBpc2JsYW5rLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkg PGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgaXNibGFuayBp bm5vY3VvdXNfaXNibGFuawp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZs aWN0IHdpdGggY2hhciBpc2JsYW5rICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4g dG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRz Lmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRl ZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFz c2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBpc2JsYW5rCnwgCnwgLyogT3ZlcnJpZGUgYW55 IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIg YmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg Ki8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBpc2Js YW5rICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z IHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBT b21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5n IHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmlu ZWQgX19zdHViX2lzYmxhbmsgfHwgZGVmaW5lZCBfX3N0dWJfX19pc2JsYW5rCnwgY2hva2UgbWUK fCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBpc2JsYW5rICgpOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6 ODY3ODogY2hlY2tpbmcgZm9yIGlzd2N0eXBlCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUx MSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGlzd2N0eXBlIHRvIGFuIGlubm9jdW91cyB2 YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgaXN3Y3R5cGUuCnwgICAgRm9yIGV4 YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwg I2RlZmluZSBpc3djdHlwZSBpbm5vY3VvdXNfaXN3Y3R5cGUKfCAKfCAvKiBTeXN0ZW0gaGVhZGVy IHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwg ICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgaXN3Y3R5cGUgKCk7IGJlbG93Lgp8ICAg ICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQs IHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBp bGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAj ZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGlzd2N0eXBl CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g ZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMi CnwgI2VuZGlmCnwgY2hhciBpc3djdHlwZSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZp bmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5 cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwg ICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4g YWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9pc3djdHlwZSB8fCBkZWZpbmVkIF9fc3R1 Yl9fX2lzd2N0eXBlCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiBpc3djdHlwZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2 Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciBzZXRlbnYKY29uZmln dXJlOjg2Nzg6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMg ID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1n bnUxMSIKY29uZmlndXJlOjg2Nzg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgc2V0 ZW52IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMg c2V0ZW52Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBn ZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc2V0ZW52IGlubm9jdW91c19zZXRlbnYKfCAKfCAv KiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3 IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc2V0ZW52ICgp OyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENf XyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVz dGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8 bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1 bmRlZiBzZXRlbnYKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHNldGVudiAoKTsKfCAvKiBUaGUgR05VIEMgbGli cmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAg IHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5 IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5h bWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9zZXRlbnYgfHwgZGVmaW5l ZCBfX3N0dWJfX19zZXRlbnYKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgcmV0dXJuIHNldGVudiAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl Ojg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciB0enNldApjb25m aWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3Qu YyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmlu ZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9H TlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f VVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSB0 enNldCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVz IHR6c2V0Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBn ZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgdHpzZXQgaW5ub2N1b3VzX3R6c2V0CnwgCnwgLyog U3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBw cm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHR6c2V0ICgpOyBi ZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBp cyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFu ZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGlt aXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRl ZiB0enNldAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2 b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy ZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0 ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgdHpzZXQgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkg ZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBh bHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1l ZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlz IGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfdHpzZXQgfHwgZGVmaW5lZCBfX3N0 dWJfX190enNldAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBy ZXR1cm4gdHpzZXQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgdGltZXMKY29uZmlndXJlOjg2 Nzg6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpj YzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIK Y29uZmlndXJlOjg2Nzg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgdGltZXMgdG8g YW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyB0aW1lcy4K fCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9m ZGF5LiAgKi8KfCAjZGVmaW5lIHRpbWVzIGlubm9jdW91c190aW1lcwp8IAp8IC8qIFN5c3RlbSBo ZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBl cywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciB0aW1lcyAoKTsgYmVsb3cuCnwg ICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5l ZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29t cGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8 ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgdGltZXMK fCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl cnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIK fCAjZW5kaWYKfCBjaGFyIHRpbWVzICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAg c29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlh cy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3RpbWVzIHx8IGRlZmluZWQgX19zdHViX19fdGlt ZXMKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHRp bWVzICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY3ODogcmVzdWx0OiBu bwpjb25maWd1cmU6ODY3ODogY2hlY2tpbmcgZm9yIHNucHJpbnRmCmNvbmZpZ3VyZTo4Njc4OiBn Y2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBl cnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZp Z3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lO T0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHNucHJpbnRmIHRvIGFu IGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgc25wcmludGYu CnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVv ZmRheS4gICovCnwgI2RlZmluZSBzbnByaW50ZiBpbm5vY3VvdXNfc25wcmludGYKfCAKfCAvKiBT eXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHBy b3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc25wcmludGYgKCk7 IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxs aW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3Vu ZGVmIHNucHJpbnRmCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUg dG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg dGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMK fCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBzbnByaW50ZiAoKTsKfCAvKiBUaGUgR05VIEMg bGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwg ICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVh bGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFs IG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9zbnByaW50ZiB8fCBk ZWZpbmVkIF9fc3R1Yl9fX3NucHJpbnRmCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IHJldHVybiBzbnByaW50ZiAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciBi dG93Ywpjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAg Y29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxl IDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8i CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8q IERlZmluZSBidG93YyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+ IGRlY2xhcmVzIGJ0b3djLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBk ZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgYnRvd2MgaW5ub2N1b3VzX2J0b3dj CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGJ0 b3djICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBf X1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9u IGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5j bHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8 IAp8ICN1bmRlZiBidG93Ywp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90 eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFy Z3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNw bHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgYnRvd2MgKCk7CnwgLyogVGhlIEdOVSBD IGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8 ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1 YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1h bCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfYnRvd2MgfHwgZGVm aW5lZCBfX3N0dWJfX19idG93Ywp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCByZXR1cm4gYnRvd2MgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZTo4Njc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgbWJzaW5pdApj b25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRl c3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICIt c3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmlu ZSBtYnNpbml0IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVj bGFyZXMgbWJzaW5pdC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVj bGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIG1ic2luaXQgaW5ub2N1b3VzX21ic2lu aXQKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3Bl ZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIg bWJzaW5pdCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4g aWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZl biBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAj IGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5k aWYKfCAKfCAjdW5kZWYgbWJzaW5pdAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwg cHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1p Z2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4g aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9f Y3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgbWJzaW5pdCAoKTsKfCAvKiBU aGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBs ZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMg YXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0 aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9tYnNp bml0IHx8IGRlZmluZWQgX19zdHViX19fbWJzaW5pdAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gbWJzaW5pdCAoKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5n IGZvciBtYnJ0b3djCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAt ZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQg bGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgLyogRGVmaW5lIG1icnRvd2MgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2Ug PGxpbWl0cy5oPiBkZWNsYXJlcyBtYnJ0b3djLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkg PGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgbWJydG93YyBp bm5vY3VvdXNfbWJydG93Ywp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZs aWN0IHdpdGggY2hhciBtYnJ0b3djICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4g dG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRz Lmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRl ZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFz c2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBtYnJ0b3djCnwgCnwgLyogT3ZlcnJpZGUgYW55 IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIg YmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg Ki8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBtYnJ0 b3djICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25z IHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBT b21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5n IHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmlu ZWQgX19zdHViX21icnRvd2MgfHwgZGVmaW5lZCBfX3N0dWJfX19tYnJ0b3djCnwgY2hva2UgbWUK fCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBtYnJ0b3djICgpOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6 ODY3ODogY2hlY2tpbmcgZm9yIG1wcm90ZWN0CmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUx MSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIG1wcm90ZWN0IHRvIGFuIGlubm9jdW91cyB2 YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgbXByb3RlY3QuCnwgICAgRm9yIGV4 YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwg I2RlZmluZSBtcHJvdGVjdCBpbm5vY3VvdXNfbXByb3RlY3QKfCAKfCAvKiBTeXN0ZW0gaGVhZGVy IHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwg ICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbXByb3RlY3QgKCk7IGJlbG93Lgp8ICAg ICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQs IHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBp bGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAj ZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIG1wcm90ZWN0 CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g ZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMi CnwgI2VuZGlmCnwgY2hhciBtcHJvdGVjdCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZp bmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5 cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwg ICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4g YWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9tcHJvdGVjdCB8fCBkZWZpbmVkIF9fc3R1 Yl9fX21wcm90ZWN0CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiBtcHJvdGVjdCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2 Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciBzZWN1cmVfZ2V0ZW52 CmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25m dGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24g Ii1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg R3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVm aW5lIHNlY3VyZV9nZXRlbnYgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0 cy5oPiBkZWNsYXJlcyBzZWN1cmVfZ2V0ZW52Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkg PGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc2VjdXJlX2dl dGVudiBpbm5vY3VvdXNfc2VjdXJlX2dldGVudgp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hp Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzZWN1cmVfZ2V0ZW52ICgpOyBiZWxvdy4KfCAgICAg UHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBz aW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxl cnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vs c2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzZWN1cmVfZ2V0 ZW52CnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg YW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy biB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90 eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4g IkMiCnwgI2VuZGlmCnwgY2hhciBzZWN1cmVfZ2V0ZW52ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJy YXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAg dG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkg bmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFt ZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3NlY3VyZV9nZXRlbnYgfHwg ZGVmaW5lZCBfX3N0dWJfX19zZWN1cmVfZ2V0ZW52CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBp bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBzZWN1cmVfZ2V0ZW52ICgpOwp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODY3ODogY2hl Y2tpbmcgZm9yIGdldHVpZApjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRl c3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IC8qIERlZmluZSBnZXR1aWQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNh c2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR1aWQuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDEx aSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBnZXR1aWQg aW5ub2N1b3VzX2dldHVpZAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZs aWN0IHdpdGggY2hhciBnZXR1aWQgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0 byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMu aD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVm IF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNz ZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGdldHVpZAp8IAp8IC8qIE92ZXJyaWRlIGFueSBH Q0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJl Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0 aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov CnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZ2V0dWlk ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdo aWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21l IGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdp dGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQg X19zdHViX2dldHVpZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2dldHVpZAp8IGNob2tlIG1lCnwgI2Vu ZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0dWlkICgpOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODY3ODog Y2hlY2tpbmcgZm9yIGdldGV1aWQKY29uZmlndXJlOjg2Nzg6IGdjYyAtc3RkPWdudTExIC1vIGNv bmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjg2Nzg6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZ2V0ZXVpZCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwg aW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldGV1aWQuCnwgICAgRm9yIGV4YW1wbGUsIEhQ LVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBn ZXRldWlkIGlubm9jdW91c19nZXRldWlkCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUg X19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBj YW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdldGV1aWQgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxp bWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAg IDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwg CnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5j bHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGdldGV1aWQKfCAKfCAvKiBPdmVy cmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBV c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MK fCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg YXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBj aGFyIGdldGV1aWQgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBm dW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVO T1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcg c3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAj aWYgZGVmaW5lZCBfX3N0dWJfZ2V0ZXVpZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2dldGV1aWQKfCBj aG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGdldGV1aWQg KCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgZ2V0Z2lkCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0 ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4 Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdldGdpZCB0byBhbiBpbm5vY3Vv dXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldGdpZC4KfCAgICBGb3Ig ZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8K fCAjZGVmaW5lIGdldGdpZCBpbm5vY3VvdXNfZ2V0Z2lkCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0 byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAg ICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdldGdpZCAoKTsgYmVsb3cuCnwgICAgIFBy ZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2lu Y2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJz LiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNl CnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgZ2V0Z2lkCnwgCnwg LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2Vu ZGlmCnwgY2hhciBnZXRnaWQgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlz IGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3 aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21l dGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAg Ki8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfZ2V0Z2lkIHx8IGRlZmluZWQgX19zdHViX19fZ2V0Z2lk CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBnZXRn aWQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo4Njc4OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgZ2V0ZWdpZApjb25maWd1cmU6ODY3ODogZ2Nj IC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBnZXRlZ2lkIHRvIGFuIGlu bm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0ZWdpZC4KfCAg ICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5 LiAgKi8KfCAjZGVmaW5lIGdldGVnaWQgaW5ub2N1b3VzX2dldGVnaWQKfCAKfCAvKiBTeXN0ZW0g aGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlw ZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ2V0ZWdpZCAoKTsgYmVsb3cu CnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVm aW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcg Y29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5o Pgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgZ2V0 ZWdpZAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk IGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJu ICJDIgp8ICNlbmRpZgp8IGNoYXIgZ2V0ZWdpZCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBk ZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFs d2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVk CnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMg YW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9nZXRlZ2lkIHx8IGRlZmluZWQgX19z dHViX19fZ2V0ZWdpZAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCByZXR1cm4gZ2V0ZWdpZCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2 Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciBzdHJkdXAKY29uZmln dXJlOjg2Nzg6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMg ID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1n bnUxMSIKY29uZmlndXJlOjg2Nzg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgc3Ry ZHVwIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMg c3RyZHVwLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBn ZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc3RyZHVwIGlubm9jdW91c19zdHJkdXAKfCAKfCAv KiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3 IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc3RyZHVwICgp OyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENf XyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVz dGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8 bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1 bmRlZiBzdHJkdXAKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHN0cmR1cCAoKTsKfCAvKiBUaGUgR05VIEMgbGli cmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAg IHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5 IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5h bWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9zdHJkdXAgfHwgZGVmaW5l ZCBfX3N0dWJfX19zdHJkdXAKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgcmV0dXJuIHN0cmR1cCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl Ojg2Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciBsb2NhbHRpbWVf cgpjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29u ZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERl ZmluZSBsb2NhbHRpbWVfciB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRz Lmg+IGRlY2xhcmVzIGxvY2FsdGltZV9yLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxp bWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgbG9jYWx0aW1lX3Ig aW5ub2N1b3VzX2xvY2FsdGltZV9yCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19z dHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4g Y29uZmxpY3Qgd2l0aCBjaGFyIGxvY2FsdGltZV9yICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxs aW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAg ICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8 IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGlu Y2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBsb2NhbHRpbWVfcgp8IAp8IC8q IE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8 ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh IEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz dGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRp Zgp8IGNoYXIgbG9jYWx0aW1lX3IgKCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0 aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFp bCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBz b21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFz LiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfbG9jYWx0aW1lX3IgfHwgZGVmaW5lZCBfX3N0dWJf X19sb2NhbHRpbWVfcgp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCByZXR1cm4gbG9jYWx0aW1lX3IgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZTo4Njc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgdGltZWdtCmNv bmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVz dC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5l IHRpbWVnbSB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xh cmVzIHRpbWVnbS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFy ZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHRpbWVnbSBpbm5vY3VvdXNfdGltZWdtCnwg CnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5 IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHRpbWVn bSAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19T VERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBm cmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1 ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAK fCAjdW5kZWYgdGltZWdtCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciB0aW1lZ20gKCk7CnwgLyogVGhlIEdOVSBD IGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8 ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1 YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1h bCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfdGltZWdtIHx8IGRl ZmluZWQgX19zdHViX19fdGltZWdtCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWlu ICgpCnwgewp8IHJldHVybiB0aW1lZ20gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZTo4Njc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4Njc4OiBjaGVja2luZyBmb3IgdmFzbnBy aW50Zgpjb25maWd1cmU6ODY3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAg Y29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6ODY3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxl IDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8i CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8q IERlZmluZSB2YXNucHJpbnRmIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1p dHMuaD4gZGVjbGFyZXMgdmFzbnByaW50Zi4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxs aW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHZhc25wcmludGYg aW5ub2N1b3VzX3Zhc25wcmludGYKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0 dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBj b25mbGljdCB3aXRoIGNoYXIgdmFzbnByaW50ZiAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGlt aXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAg PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAK fCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNs dWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgdmFzbnByaW50Zgp8IAp8IC8qIE92 ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAg IFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdD Qwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8 IGNoYXIgdmFzbnByaW50ZiAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMg Zm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdp dGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0 aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAq Lwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl92YXNucHJpbnRmIHx8IGRlZmluZWQgX19zdHViX19fdmFz bnByaW50Zgp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1 cm4gdmFzbnByaW50ZiAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2Nzg6 IHJlc3VsdDogbm8KY29uZmlndXJlOjg2Nzg6IGNoZWNraW5nIGZvciB3Y3J0b21iCmNvbmZpZ3Vy ZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHdjcnRv bWIgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyB3 Y3J0b21iLgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBn ZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgd2NydG9tYiBpbm5vY3VvdXNfd2NydG9tYgp8IAp8 IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBm ZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciB3Y3J0b21i ICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NU RENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZy ZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVk ZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8 ICN1bmRlZiB3Y3J0b21iCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciB3Y3J0b21iICgpOwp8IC8qIFRoZSBHTlUg QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMK fCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0 dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3Jt YWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3djcnRvbWIgfHwg ZGVmaW5lZCBfX3N0dWJfX193Y3J0b21iCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IHJldHVybiB3Y3J0b21iICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6ODY3ODogcmVzdWx0OiBubwpjb25maWd1cmU6ODY3ODogY2hlY2tpbmcgZm9yIGlz d2NudHJsCmNvbmZpZ3VyZTo4Njc4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIg ICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBv cHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njc4OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg LyogRGVmaW5lIGlzd2NudHJsIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1p dHMuaD4gZGVjbGFyZXMgaXN3Y250cmwuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGlt aXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBpc3djbnRybCBpbm5v Y3VvdXNfaXN3Y250cmwKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFj cm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGlj dCB3aXRoIGNoYXIgaXN3Y250cmwgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0 byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMu aD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVm IF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNz ZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGlzd2NudHJsCnwgCnwgLyogT3ZlcnJpZGUgYW55 IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIg YmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg Ki8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBpc3dj bnRybCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u cyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGlu ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZp bmVkIF9fc3R1Yl9pc3djbnRybCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2lzd2NudHJsCnwgY2hva2Ug bWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBpc3djbnRybCAoKTsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjg2Nzg6IHJlc3VsdDogbm8KY29uZmln dXJlOjg2ODk6IGNoZWNraW5nIGZvciBzaXplX3QKY29uZmlndXJlOjg2ODk6IGdjYyAtc3RkPWdu dTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4Njg5OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8 IGlmIChzaXplb2YgKHNpemVfdCkpCnwgCSByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjg2ODk6IHJlc3VsdDogbm8KY29uZmlndXJlOjg3MDI6IGNoZWNraW5nIGZv ciB3b3JraW5nIGFsbG9jYS5oCmNvbmZpZ3VyZTo4NzE5OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25m dGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4NzE5OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVf dCB1bnNpZ25lZCBpbnQKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFsbG9j YS5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgY2hhciAqcCA9IChjaGFyICopIGFsbG9jYSAoMiAq IHNpemVvZiAoaW50KSk7CnwgCQkJICBpZiAocCkgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZTo4NzI3OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4NzM1OiBjaGVja2lu ZyBmb3IgYWxsb2NhCmNvbmZpZ3VyZTo4NzcyOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAt ZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQg bGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4NzcyOiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lmZGVmIF9fR05VQ19fCnwgIyBk ZWZpbmUgYWxsb2NhIF9fYnVpbHRpbl9hbGxvY2EKfCAjZWxzZQp8ICMgaWZkZWYgX01TQ19WRVIK fCAjICBpbmNsdWRlIDxtYWxsb2MuaD4KfCAjICBkZWZpbmUgYWxsb2NhIF9hbGxvY2EKfCAjIGVs c2UKfCAjICBpZmRlZiBIQVZFX0FMTE9DQV9ICnwgIyAgIGluY2x1ZGUgPGFsbG9jYS5oPgp8ICMg IGVsc2UKfCAjICAgaWZkZWYgX0FJWAp8ICAjcHJhZ21hIGFsbG9jYQp8ICMgICBlbHNlCnwgIyAg ICBpZm5kZWYgYWxsb2NhIC8qIHByZWRlZmluZWQgYnkgSFAgY2MgK09saWJjYWxscyAqLwp8IHZv aWQgKmFsbG9jYSAoc2l6ZV90KTsKfCAjICAgIGVuZGlmCnwgIyAgIGVuZGlmCnwgIyAgZW5kaWYK fCAjIGVuZGlmCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBjaGFyICpwID0gKGNo YXIgKikgYWxsb2NhICgxKTsKfCAJCQkJICAgIGlmIChwKSByZXR1cm4gMDsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjg3ODA6IHJlc3VsdDogbm8KY29uZmlndXJlOjg4MDI6IGNo ZWNraW5nIHdoZXRoZXIgYGFsbG9jYS5jJyBuZWVkcyBDcmF5IGhvb2tzCmNvbmZpZ3VyZTo4ODI1 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4ODQzOiBjaGVja2luZyBzdGFjayBkaXJlY3Rpb24gZm9y IEMgYWxsb2NhCmNvbmZpZ3VyZTo4ODcxOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAt TzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGlu ZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo4ODcxOiAkPyA9IDEKY29uZmlndXJlOiBw cm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8 ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNl bmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5j bHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gK fCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAj ICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2Vu ZGlmCnwgaW50CnwgZmluZF9zdGFja19kaXJlY3Rpb24gKGludCAqYWRkciwgaW50IGRlcHRoKQp8 IHsKfCAgIGludCBkaXIsIGR1bW15ID0gMDsKfCAgIGlmICghIGFkZHIpCnwgICAgIGFkZHIgPSAm ZHVtbXk7CnwgICAqYWRkciA9IGFkZHIgPCAmZHVtbXkgPyAxIDogYWRkciA9PSAmZHVtbXkgPyAw IDogLTE7CnwgICBkaXIgPSBkZXB0aCA/IGZpbmRfc3RhY2tfZGlyZWN0aW9uIChhZGRyLCBkZXB0 aCAtIDEpIDogMDsKfCAgIHJldHVybiBkaXIgKyBkdW1teTsKfCB9CnwgCnwgaW50CnwgbWFpbiAo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQp8IHsKfCAgIHJldHVybiBmaW5kX3N0YWNrX2RpcmVjdGlv biAoMCwgYXJnYyArICFhcmd2ICsgMjApIDwgMDsKfCB9CmNvbmZpZ3VyZTo4ODgxOiByZXN1bHQ6 IC0xCmNvbmZpZ3VyZTo5MDAwOiBjaGVja2luZyB3aGV0aGVyIC8vIGlzIGRpc3RpbmN0IGZyb20g Lwpjb25maWd1cmU6OTAyOTogcmVzdWx0OiBubwpjb25maWd1cmU6OTA0MTogY2hlY2tpbmcgd2hl dGhlciByZWFscGF0aCB3b3Jrcwpjb25maWd1cmU6OTIxNzogZ2NjIC1zdGQ9Z251MTEgLW8gY29u ZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6OTIxNzogJD8gPSAxCmNv bmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8 ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8IAp8IAp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAjaWYgZGVm aW5lZCBfX01BQ0hfXyAmJiBkZWZpbmVkIF9fQVBQTEVfXwp8IC8qIEF2b2lkIGEgY3Jhc2ggb24g TWFjIE9TIFguICAqLwp8ICNpbmNsdWRlIDxtYWNoL21hY2guaD4KfCAjaW5jbHVkZSA8bWFjaC9t YWNoX2Vycm9yLmg+CnwgI2luY2x1ZGUgPG1hY2gvdGhyZWFkX3N0YXR1cy5oPgp8ICNpbmNsdWRl IDxtYWNoL2V4Y2VwdGlvbi5oPgp8ICNpbmNsdWRlIDxtYWNoL3Rhc2suaD4KfCAjaW5jbHVkZSA8 cHRocmVhZC5oPgp8IC8qIFRoZSBleGNlcHRpb24gcG9ydCBvbiB3aGljaCBvdXIgdGhyZWFkIGxp c3RlbnMuICAqLwp8IHN0YXRpYyBtYWNoX3BvcnRfdCBvdXJfZXhjZXB0aW9uX3BvcnQ7CnwgLyog VGhlIG1haW4gZnVuY3Rpb24gb2YgdGhlIHRocmVhZCBsaXN0ZW5pbmcgZm9yIGV4Y2VwdGlvbnMg b2YgdHlwZQp8ICAgIEVYQ19CQURfQUNDRVNTLiAgKi8KfCBzdGF0aWMgdm9pZCAqCnwgbWFjaF9l eGNlcHRpb25fdGhyZWFkICh2b2lkICphcmcpCnwgewp8ICAgLyogQnVmZmVyIGZvciBhIG1lc3Nh Z2UgdG8gYmUgcmVjZWl2ZWQuICAqLwp8ICAgc3RydWN0IHsKfCAgICAgbWFjaF9tc2dfaGVhZGVy X3QgaGVhZDsKfCAgICAgbWFjaF9tc2dfYm9keV90IG1zZ2hfYm9keTsKfCAgICAgY2hhciBkYXRh WzEwMjRdOwp8ICAgfSBtc2c7CnwgICBtYWNoX21zZ19yZXR1cm5fdCByZXR2YWw7CnwgICAvKiBX YWl0IGZvciBhIG1lc3NhZ2Ugb24gdGhlIGV4Y2VwdGlvbiBwb3J0LiAgKi8KfCAgIHJldHZhbCA9 IG1hY2hfbXNnICgmbXNnLmhlYWQsIE1BQ0hfUkNWX01TRyB8IE1BQ0hfUkNWX0xBUkdFLCAwLCBz aXplb2YgKG1zZyksCnwgICAgICAgICAgICAgICAgICAgICAgb3VyX2V4Y2VwdGlvbl9wb3J0LCBN QUNIX01TR19USU1FT1VUX05PTkUsIE1BQ0hfUE9SVF9OVUxMKTsKfCAgIGlmIChyZXR2YWwgIT0g TUFDSF9NU0dfU1VDQ0VTUykKfCAgICAgYWJvcnQgKCk7CnwgICBleGl0ICgxKTsKfCB9Cnwgc3Rh dGljIHZvaWQKfCBub2NyYXNoX2luaXQgKHZvaWQpCnwgewp8ICAgbWFjaF9wb3J0X3Qgc2VsZiA9 IG1hY2hfdGFza19zZWxmICgpOwp8ICAgLyogQWxsb2NhdGUgYSBwb3J0IG9uIHdoaWNoIHRoZSB0 aHJlYWQgc2hhbGwgbGlzdGVuIGZvciBleGNlcHRpb25zLiAgKi8KfCAgIGlmIChtYWNoX3BvcnRf YWxsb2NhdGUgKHNlbGYsIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmb3VyX2V4Y2VwdGlvbl9w b3J0KQp8ICAgICAgID09IEtFUk5fU1VDQ0VTUykgewp8ICAgICAvKiBTZWUgaHR0cDovL3dlYi5t aXQuZWR1L2Rhcndpbi9zcmMvbW9kdWxlcy94bnUvb3NmbWsvbWFuL21hY2hfcG9ydF9pbnNlcnRf cmlnaHQuaHRtbC4gICovCnwgICAgIGlmIChtYWNoX3BvcnRfaW5zZXJ0X3JpZ2h0IChzZWxmLCBv dXJfZXhjZXB0aW9uX3BvcnQsIG91cl9leGNlcHRpb25fcG9ydCwKfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKQp8ICAgICAgICAgPT0gS0VS Tl9TVUNDRVNTKSB7CnwgICAgICAgLyogVGhlIGV4Y2VwdGlvbnMgd2Ugd2FudCB0byBjYXRjaC4g IE9ubHkgRVhDX0JBRF9BQ0NFU1MgaXMgaW50ZXJlc3RpbmcKfCAgICAgICAgICBmb3IgdXMuICAq Lwp8ICAgICAgIGV4Y2VwdGlvbl9tYXNrX3QgbWFzayA9IEVYQ19NQVNLX0JBRF9BQ0NFU1M7Cnwg ICAgICAgLyogQ3JlYXRlIHRoZSB0aHJlYWQgbGlzdGVuaW5nIG9uIHRoZSBleGNlcHRpb24gcG9y dC4gICovCnwgICAgICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKfCAgICAgICBwdGhyZWFkX3QgdGhy ZWFkOwp8ICAgICAgIGlmIChwdGhyZWFkX2F0dHJfaW5pdCAoJmF0dHIpID09IDAKfCAgICAgICAg ICAgJiYgcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlICgmYXR0ciwgUFRIUkVBRF9DUkVBVEVf REVUQUNIRUQpID09IDAKfCAgICAgICAgICAgJiYgcHRocmVhZF9jcmVhdGUgKCZ0aHJlYWQsICZh dHRyLCBtYWNoX2V4Y2VwdGlvbl90aHJlYWQsIE5VTEwpID09IDApIHsKfCAgICAgICAgIHB0aHJl YWRfYXR0cl9kZXN0cm95ICgmYXR0cik7CnwgICAgICAgICAvKiBSZXBsYWNlIHRoZSBleGNlcHRp b24gcG9ydCBpbmZvIGZvciB0aGVzZSBleGNlcHRpb25zIHdpdGggb3VyIG93bi4KfCAgICAgICAg ICAgIE5vdGUgdGhhdCB3ZSByZXBsYWNlIHRoZSBleGNlcHRpb24gcG9ydCBmb3IgdGhlIGVudGly ZSB0YXNrLCBub3Qgb25seQp8ICAgICAgICAgICAgZm9yIGEgcGFydGljdWxhciB0aHJlYWQuICBU aGlzIGhhcyB0aGUgZWZmZWN0IHRoYXQgd2hlbiBvdXIgZXhjZXB0aW9uCnwgICAgICAgICAgICBw b3J0IGdldHMgdGhlIG1lc3NhZ2UsIHRoZSB0aHJlYWQgc3BlY2lmaWMgZXhjZXB0aW9uIHBvcnQg aGFzIGFscmVhZHkKfCAgICAgICAgICAgIGJlZW4gYXNrZWQsIGFuZCB3ZSBkb24ndCBuZWVkIHRv IGJvdGhlciBhYm91dCBpdC4KfCAgICAgICAgICAgIFNlZSBodHRwOi8vd2ViLm1pdC5lZHUvZGFy d2luL3NyYy9tb2R1bGVzL3hudS9vc2Ztay9tYW4vdGFza19zZXRfZXhjZXB0aW9uX3BvcnRzLmh0 bWwuICAqLwp8ICAgICAgICAgdGFza19zZXRfZXhjZXB0aW9uX3BvcnRzIChzZWxmLCBtYXNrLCBv dXJfZXhjZXB0aW9uX3BvcnQsCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVY Q0VQVElPTl9ERUZBVUxULCBNQUNISU5FX1RIUkVBRF9TVEFURSk7CnwgICAgICAgfQp8ICAgICB9 CnwgICB9CnwgfQp8ICNlbGlmIChkZWZpbmVkIF9XSU4zMiB8fCBkZWZpbmVkIF9fV0lOMzJfXykg JiYgISBkZWZpbmVkIF9fQ1lHV0lOX18KfCAvKiBBdm9pZCBhIGNyYXNoIG9uIG5hdGl2ZSBXaW5k b3dzLiAgKi8KfCAjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KfCAjaW5jbHVkZSA8d2luZG93 cy5oPgp8ICNpbmNsdWRlIDx3aW5lcnJvci5oPgp8IHN0YXRpYyBMT05HIFdJTkFQSQp8IGV4Y2Vw dGlvbl9maWx0ZXIgKEVYQ0VQVElPTl9QT0lOVEVSUyAqRXhjZXB0aW9uSW5mbykKfCB7CnwgICBz d2l0Y2ggKEV4Y2VwdGlvbkluZm8tPkV4Y2VwdGlvblJlY29yZC0+RXhjZXB0aW9uQ29kZSkKfCAg ICAgewp8ICAgICBjYXNlIEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OOgp8ICAgICBjYXNlIEVY Q0VQVElPTl9JTl9QQUdFX0VSUk9SOgp8ICAgICBjYXNlIEVYQ0VQVElPTl9TVEFDS19PVkVSRkxP VzoKfCAgICAgY2FzZSBFWENFUFRJT05fR1VBUkRfUEFHRToKfCAgICAgY2FzZSBFWENFUFRJT05f UFJJVl9JTlNUUlVDVElPTjoKfCAgICAgY2FzZSBFWENFUFRJT05fSUxMRUdBTF9JTlNUUlVDVElP TjoKfCAgICAgY2FzZSBFWENFUFRJT05fREFUQVRZUEVfTUlTQUxJR05NRU5UOgp8ICAgICBjYXNl IEVYQ0VQVElPTl9BUlJBWV9CT1VORFNfRVhDRUVERUQ6CnwgICAgIGNhc2UgRVhDRVBUSU9OX05P TkNPTlRJTlVBQkxFX0VYQ0VQVElPTjoKfCAgICAgICBleGl0ICgxKTsKfCAgICAgfQp8ICAgcmV0 dXJuIEVYQ0VQVElPTl9DT05USU5VRV9TRUFSQ0g7CnwgfQp8IHN0YXRpYyB2b2lkCnwgbm9jcmFz aF9pbml0ICh2b2lkKQp8IHsKfCAgIFNldFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlciAoKExQVE9Q X0xFVkVMX0VYQ0VQVElPTl9GSUxURVIpIGV4Y2VwdGlvbl9maWx0ZXIpOwp8IH0KfCAjZWxzZQp8 IC8qIEF2b2lkIGEgY3Jhc2ggb24gUE9TSVggc3lzdGVtcy4gICovCnwgI2luY2x1ZGUgPHNpZ25h bC5oPgp8ICNpbmNsdWRlIDx1bmlzdGQuaD4KfCAvKiBBIFBPU0lYIHNpZ25hbCBoYW5kbGVyLiAg Ki8KfCBzdGF0aWMgdm9pZAp8IGV4Y2VwdGlvbl9oYW5kbGVyIChpbnQgc2lnKQp8IHsKfCAgIF9l eGl0ICgxKTsKfCB9Cnwgc3RhdGljIHZvaWQKfCBub2NyYXNoX2luaXQgKHZvaWQpCnwgewp8ICNp ZmRlZiBTSUdTRUdWCnwgICBzaWduYWwgKFNJR1NFR1YsIGV4Y2VwdGlvbl9oYW5kbGVyKTsKfCAj ZW5kaWYKfCAjaWZkZWYgU0lHQlVTCnwgICBzaWduYWwgKFNJR0JVUywgZXhjZXB0aW9uX2hhbmRs ZXIpOwp8ICNlbmRpZgp8IH0KfCAjZW5kaWYKfCAKfCAgICAgICAgICNpbmNsdWRlIDxzdGRsaWIu aD4KfCAgICAgICAgICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 IAp8ICAgICAgICAgaW50IHJlc3VsdCA9IDA7CnwgICAgICAgICB7CnwgICAgICAgICAgIGNoYXIg Km5hbWUgPSByZWFscGF0aCAoImNvbmZ0ZXN0LmEiLCBOVUxMKTsKfCAgICAgICAgICAgaWYgKCEo bmFtZSAmJiAqbmFtZSA9PSAnLycpKQp8ICAgICAgICAgICAgIHJlc3VsdCB8PSAxOwp8ICAgICAg ICAgICBmcmVlIChuYW1lKTsKfCAgICAgICAgIH0KfCAgICAgICAgIHsKfCAgICAgICAgICAgY2hh ciAqbmFtZSA9IHJlYWxwYXRoICgiY29uZnRlc3QuYi8uLi9jb25mdGVzdC5hIiwgTlVMTCk7Cnwg ICAgICAgICAgIGlmIChuYW1lICE9IE5VTEwpCnwgICAgICAgICAgICAgcmVzdWx0IHw9IDI7Cnwg ICAgICAgICAgIGZyZWUgKG5hbWUpOwp8ICAgICAgICAgfQp8ICAgICAgICAgewp8ICAgICAgICAg ICBjaGFyICpuYW1lID0gcmVhbHBhdGggKCJjb25mdGVzdC5hLyIsIE5VTEwpOwp8ICAgICAgICAg ICBpZiAobmFtZSAhPSBOVUxMKQp8ICAgICAgICAgICAgIHJlc3VsdCB8PSA0Owp8ICAgICAgICAg ICBmcmVlIChuYW1lKTsKfCAgICAgICAgIH0KfCAgICAgICAgIHsKfCAgICAgICAgICAgY2hhciAq bmFtZTEgPSByZWFscGF0aCAoIi4iLCBOVUxMKTsKfCAgICAgICAgICAgY2hhciAqbmFtZTIgPSBy ZWFscGF0aCAoImNvbmZ0ZXN0LmQvLy4vLi4iLCBOVUxMKTsKfCAgICAgICAgICAgaWYgKCEgbmFt ZTEgfHwgISBuYW1lMiB8fCBzdHJjbXAgKG5hbWUxLCBuYW1lMikpCnwgICAgICAgICAgICAgcmVz dWx0IHw9IDg7CnwgICAgICAgICAgIGZyZWUgKG5hbWUxKTsKfCAgICAgICAgICAgZnJlZSAobmFt ZTIpOwp8ICAgICAgICAgfQp8ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKfCAKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KfCAKY29uZmlndXJlOjkyMjk6IHJlc3VsdDogbm8KY29uZmlndXJlOjk1NzM6 IGNoZWNraW5nIGZvciB3Y2hhcl90CmNvbmZpZ3VyZTo5NTkwOiBnY2MgLXN0ZD1nbnUxMSAtYyAt ZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6OTU5MDogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9n dWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWdu ZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAgICAgICAg ICAgIHdjaGFyX3QgZm9vID0gKHdjaGFyX3QpJ1wwJzsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6OTU5NzogcmVzdWx0OiBubwpjb25maWd1 cmU6OTYwOTogY2hlY2tpbmcgZm9yIG1heF9hbGlnbl90CmNvbmZpZ3VyZTo5NjA5OiBnY2MgLXN0 ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6OTYwOTogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGRlZi5o Pgp8IAp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgaWYgKHNpemVvZiAobWF4X2FsaWduX3QpKQp8 IAkgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo5NjA5OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo5NjIyOiBjaGVja2luZyB3aGV0aGVyIE5VTEwgY2FuIGJlIHVzZWQg aW4gYXJiaXRyYXJ5IGV4cHJlc3Npb25zCmNvbmZpZ3VyZTo5NjQwOiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6OTY0MDogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5z aWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04g LTEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAgICAg IGludCB0ZXN0WzIgKiAoc2l6ZW9mIE5VTEwgPT0gc2l6ZW9mICh2b2lkICopKSAtMV07CnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjk2 NDc6IHJlc3VsdDogbm8KY29uZmlndXJlOjk2NzQ6IGNoZWNraW5nIGFic29sdXRlIG5hbWUgb2Yg PHN0ZGRlZi5oPgpjb25maWd1cmU6OTcxNzogcmVzdWx0OiAiLy8vdXNyL2xpYi9nY2MveDg2XzY0 LXJlZGhhdC1saW51eC80LjQuNy9pbmNsdWRlL3N0ZGRlZi5oIgpjb25maWd1cmU6OTc1NDogY2hl Y2tpbmcgd2hldGhlciBsb2NhbGUuaCBjb25mb3JtcyB0byBQT1NJWDoyMDAxCmNvbmZpZ3VyZTo5 NzcyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 OTc3MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2Rl ZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPGxvY2FsZS5oPgp8ICAgICAgICAgICAgIGludCB4ID0gTENfTUVTU0FHRVM7CnwgICAgICAg ICAgICAgaW50IHkgPSBzaXplb2YgKCgoc3RydWN0IGxjb252ICopIDApLT5kZWNpbWFsX3BvaW50 KTsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6OTc3OTogcmVzdWx0OiBubwpjb25maWd1cmU6OTgyMzogY2hlY2tpbmcgd2hldGhlciBzdHJ1 Y3QgbGNvbnYgaXMgcHJvcGVybHkgZGVmaW5lZApjb25maWd1cmU6OTg0MjogZ2NjIC1zdGQ9Z251 MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjk4NDI6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90 IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNU SU9OIC0xCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxsb2NhbGUuaD4KfCAg ICAgICAgICAgICBzdHJ1Y3QgbGNvbnYgbDsKfCAgICAgICAgICAgICBpbnQgeCA9IHNpemVvZiAo bC5kZWNpbWFsX3BvaW50KTsKfCAgICAgICAgICAgICBpbnQgeSA9IHNpemVvZiAobC5pbnRfcF9j c19wcmVjZWRlcyk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjk4NTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjk4Njc6IGNoZWNraW5nIGFi c29sdXRlIG5hbWUgb2YgPGxvY2FsZS5oPgpjb25maWd1cmU6OTkxMDogcmVzdWx0OiAiLy8vdXNy L2luY2x1ZGUvbG9jYWxlLmgiCmNvbmZpZ3VyZTo5OTMxOiBjaGVja2luZyB3aGV0aGVyIHNldGxv Y2FsZSBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjk5NTM6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTo5OTUzOiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bG9jYWxlLmg+ CnwgLyogU29tZSBzeXN0ZW1zIHByb3ZpZGUgZGVjbGFyYXRpb25zIGluIGEgbm9uLXN0YW5kYXJk IGhlYWRlci4gICovCnwgI2lmIEhBVkVfWExPQ0FMRV9ICnwgIyBpbmNsdWRlIDx4bG9jYWxlLmg+ CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgc2V0bG9jYWxlCnwgICAo dm9pZCkgc2V0bG9jYWxlOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6OTk2MTog cmVzdWx0OiBubwpjb25maWd1cmU6OTkzMTogY2hlY2tpbmcgd2hldGhlciBkdXBsb2NhbGUgaXMg ZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTo5OTUzOiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6OTk1MzogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5z aWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04g LTEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGxvY2FsZS5oPgp8IC8qIFNv bWUgc3lzdGVtcyBwcm92aWRlIGRlY2xhcmF0aW9ucyBpbiBhIG5vbi1zdGFuZGFyZCBoZWFkZXIu ICAqLwp8ICNpZiBIQVZFX1hMT0NBTEVfSAp8ICMgaW5jbHVkZSA8eGxvY2FsZS5oPgp8ICNlbmRp Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGR1cGxvY2FsZQp8ICAgKHZvaWQpIGR1 cGxvY2FsZTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjk5NjE6IHJlc3VsdDog bm8KY29uZmlndXJlOjk5ODI6IGNoZWNraW5nIGlmIGVudmlyb24gaXMgcHJvcGVybHkgZGVjbGFy ZWQKY29uZmlndXJlOjEwMDA1OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MTAwMDU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpZiBIQVZFX1VOSVNURF9ICnwgICAgICAjaW5jbHVkZSA8dW5pc3RkLmg+Cnwg ICAgICAjZW5kaWYKfCAgICAgIC8qIG1pbmd3LCBCZU9TLCBIYWlrdSBkZWNsYXJlIGVudmlyb24g aW4gPHN0ZGxpYi5oPiwgbm90IGluIDx1bmlzdGQuaD4uICAqLwp8ICAgICAgI2luY2x1ZGUgPHN0 ZGxpYi5oPgp8IAp8ICAgICAgICAgICAgZXh0ZXJuIHN0cnVjdCB7IGludCBmb287IH0gZW52aXJv bjsKfCBpbnQKfCBtYWluICgpCnwgewp8IGVudmlyb24uZm9vID0gMTsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjEwMDEzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTAwMjg6IGNo ZWNraW5nIGZvciBjb21wbGV0ZSBlcnJuby5oCmNvbmZpZ3VyZToxMDEwMTogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjEwNDIzOiBjaGVja2luZyBmb3Igd29ya2luZyBmY250bC5oCmNvbmZpZ3VyZTox MDUyNjogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1 CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTEx Igpjb25maWd1cmU6MTA1MjY6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGgg c3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAj ZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5l IFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgICAgICAgICAgICAj aW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAgICAgICAgICAgICNpZiBIQVZFX1VOSVNURF9ICnwgICAg ICAgICAgICAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICAgICAgICAgICAgI2Vsc2UgLyogb24gV2lu ZG93cyB3aXRoIE1TVkMgKi8KfCAgICAgICAgICAgICMgaW5jbHVkZSA8aW8uaD4KfCAgICAgICAg ICAgICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgICAgICAgICAgICAjIGRlZmluZWQgc2xlZXAobikg X3NsZWVwICgobikgKiAxMDAwKQp8ICAgICAgICAgICAgI2VuZGlmCnwgICAgICAgICAgICAjaW5j bHVkZSA8ZmNudGwuaD4KfCAgICAgICAgICAgICNpZm5kZWYgT19OT0FUSU1FCnwgICAgICAgICAg ICAgI2RlZmluZSBPX05PQVRJTUUgMAp8ICAgICAgICAgICAgI2VuZGlmCnwgICAgICAgICAgICAj aWZuZGVmIE9fTk9GT0xMT1cKfCAgICAgICAgICAgICAjZGVmaW5lIE9fTk9GT0xMT1cgMAp8ICAg ICAgICAgICAgI2VuZGlmCnwgICAgICAgICAgICBzdGF0aWMgaW50IGNvbnN0IGNvbnN0YW50c1td ID0KfCAgICAgICAgICAgICB7CnwgICAgICAgICAgICAgICBPX0NSRUFULCBPX0VYQ0wsIE9fTk9D VFRZLCBPX1RSVU5DLCBPX0FQUEVORCwKfCAgICAgICAgICAgICAgIE9fTk9OQkxPQ0ssIE9fU1lO QywgT19BQ0NNT0RFLCBPX1JET05MWSwgT19SRFdSLCBPX1dST05MWQp8ICAgICAgICAgICAgIH07 CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gIWNv bnN0YW50czsKfCAgICAgICAgICAgICAjaWYgSEFWRV9TWU1MSU5LCnwgICAgICAgICAgICAgewp8 ICAgICAgICAgICAgICAgc3RhdGljIGNoYXIgY29uc3Qgc3ltW10gPSAiY29uZnRlc3Quc3ltIjsK fCAgICAgICAgICAgICAgIGlmIChzeW1saW5rICgiL2Rldi9udWxsIiwgc3ltKSAhPSAwKQp8ICAg ICAgICAgICAgICAgICByZXN1bHQgfD0gMjsKfCAgICAgICAgICAgICAgIGVsc2UKfCAgICAgICAg ICAgICAgICAgewp8ICAgICAgICAgICAgICAgICAgIGludCBmZCA9IG9wZW4gKHN5bSwgT19XUk9O TFkgfCBPX05PRk9MTE9XIHwgT19DUkVBVCwgMCk7CnwgICAgICAgICAgICAgICAgICAgaWYgKGZk ID49IDApCnwgICAgICAgICAgICAgICAgICAgICB7CnwgICAgICAgICAgICAgICAgICAgICAgIGNs b3NlIChmZCk7CnwgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSA0Owp8ICAgICAgICAg ICAgICAgICAgICAgfQp8ICAgICAgICAgICAgICAgICB9CnwgICAgICAgICAgICAgICBpZiAodW5s aW5rIChzeW0pICE9IDAgfHwgc3ltbGluayAoIi4iLCBzeW0pICE9IDApCnwgICAgICAgICAgICAg ICAgIHJlc3VsdCB8PSAyOwp8ICAgICAgICAgICAgICAgZWxzZQp8ICAgICAgICAgICAgICAgICB7 CnwgICAgICAgICAgICAgICAgICAgaW50IGZkID0gb3BlbiAoc3ltLCBPX1JET05MWSB8IE9fTk9G T0xMT1cpOwp8ICAgICAgICAgICAgICAgICAgIGlmIChmZCA+PSAwKQp8ICAgICAgICAgICAgICAg ICAgICAgewp8ICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSAoZmQpOwp8ICAgICAgICAgICAg ICAgICAgICAgICByZXN1bHQgfD0gNDsKfCAgICAgICAgICAgICAgICAgICAgIH0KfCAgICAgICAg ICAgICAgICAgfQp8ICAgICAgICAgICAgICAgdW5saW5rIChzeW0pOwp8ICAgICAgICAgICAgIH0K fCAgICAgICAgICAgICAjZW5kaWYKfCAgICAgICAgICAgICB7CnwgICAgICAgICAgICAgICBzdGF0 aWMgY2hhciBjb25zdCBmaWxlW10gPSAiY29uZmRlZnMuaCI7CnwgICAgICAgICAgICAgICBpbnQg ZmQgPSBvcGVuIChmaWxlLCBPX1JET05MWSB8IE9fTk9BVElNRSk7CnwgICAgICAgICAgICAgICBp ZiAoZmQgPCAwKQp8ICAgICAgICAgICAgICAgICByZXN1bHQgfD0gODsKfCAgICAgICAgICAgICAg IGVsc2UKfCAgICAgICAgICAgICAgICAgewp8ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzdGF0 IHN0MDsKfCAgICAgICAgICAgICAgICAgICBpZiAoZnN0YXQgKGZkLCAmc3QwKSAhPSAwKQp8ICAg ICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IDE2Owp8ICAgICAgICAgICAgICAgICAgIGVsc2UK fCAgICAgICAgICAgICAgICAgICAgIHsKfCAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjOwp8 ICAgICAgICAgICAgICAgICAgICAgICBzbGVlcCAoMSk7CnwgICAgICAgICAgICAgICAgICAgICAg IGlmIChyZWFkIChmZCwgJmMsIDEpICE9IDEpCnwgICAgICAgICAgICAgICAgICAgICAgICAgcmVz dWx0IHw9IDI0Owp8ICAgICAgICAgICAgICAgICAgICAgICBlbHNlCnwgICAgICAgICAgICAgICAg ICAgICAgICAgewp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsb3NlIChmZCkgIT0g MCkKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IDMyOwp8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgZWxzZQp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Cnwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHN0YXQgc3QxOwp8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0IChmaWxlLCAmc3QxKSAhPSAwKQp8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IDQwOwp8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsc2UKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChzdDAuc3RfYXRpbWUgIT0gc3QxLnN0X2F0aW1lKQp8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXN1bHQgfD0gNjQ7CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K fCAgICAgICAgICAgICAgICAgICAgICAgICB9CnwgICAgICAgICAgICAgICAgICAgICB9CnwgICAg ICAgICAgICAgICAgIH0KfCAgICAgICAgICAgICB9CnwgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs dDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwNTQxOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToxMDU2NDogY2hlY2tpbmcgZm9yIHBpZF90CmNvbmZpZ3VyZToxMDU2NDogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEwNTY0OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBI QVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3Rk ZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFk ZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRl IDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCBpZiAoc2l6ZW9mIChwaWRfdCkpCnwgCSByZXR1cm4gMDsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwNTY0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox MDU3NTogY2hlY2tpbmcgZm9yIG1vZGVfdApjb25maWd1cmU6MTA1NzU6IGdjYyAtc3RkPWdudTEx IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1h bmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMDU3NTogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3Qg dW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJ T04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZp bmUgcGlkX3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBpZiAoc2l6ZW9mIChtb2RlX3QpKQp8IAkgcmV0 dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDU3NTogcmVzdWx0OiBu bwpjb25maWd1cmU6MTA1OTU6IGNoZWNraW5nIHdoZXRoZXIgZnJleHAoKSBjYW4gYmUgdXNlZCB3 aXRob3V0IGxpbmtpbmcgd2l0aCBsaWJtCmNvbmZpZ3VyZToxMDYxMzogZ2NjIC1zdGQ9Z251MTEg LW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2du aXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTA2MTM6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZp bmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RB Q0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9X IDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8ICAgICAgICAgICAgICBkb3VibGUgeDsK fCBpbnQKfCBtYWluICgpCnwgewp8IGludCBlOyByZXR1cm4gZnJleHAgKHgsICZlKSA+IDA7Cnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDYyMjogcmVzdWx0OiBubwpjb25maWd1 cmU6MTA2MjU6IGNoZWNraW5nIHdoZXRoZXIgYWxhcm0gaXMgZGVjbGFyZWQKY29uZmlndXJlOjEw NjI1OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 MTA2MjU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUg MQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNk ZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9T WVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg U1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5o Pgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5l ZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVt b3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1h aW4gKCkKfCB7CnwgI2lmbmRlZiBhbGFybQp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQp IGFsYXJtOwp8ICNlbHNlCnwgICAodm9pZCkgYWxhcm07CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDYyNTogcmVzdWx0OiBubwpjb25maWd1 cmU6MTA2NDE6IGNoZWNraW5nIHdoZXRoZXIgZnJleHAoKSBjYW4gYmUgdXNlZCB3aXRoIGxpYm0K Y29uZmlndXJlOjEwNjYxOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25m dGVzdC5jICAtbG0gPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTA2NjE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWls ZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUv Igp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1Mg MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9G VU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGlu dAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2Rl ZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1F IDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGlu dAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCAgICAgICAgICAgICAgICBk b3VibGUgeDsKfCBpbnQKfCBtYWluICgpCnwgewp8IGludCBlOyByZXR1cm4gZnJleHAgKHgsICZl KSA+IDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDY3MTogcmVzdWx0OiBu bwpjb25maWd1cmU6MTA4Mjg6IGNoZWNraW5nIHdoZXRoZXIgc3RhdCBmaWxlLW1vZGUgbWFjcm9z IGFyZSBicm9rZW4KY29uZmlndXJlOjEwODU1OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6MTA4NTU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8 ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8 ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxzeXMv c3RhdC5oPgp8IAp8ICNpZiBkZWZpbmVkIFNfSVNCTEsgJiYgZGVmaW5lZCBTX0lGRElSCnwgZXh0 ZXJuIGNoYXIgYzFbU19JU0JMSyAoU19JRkRJUikgPyAtMSA6IDFdOwp8ICNlbmRpZgp8IAp8ICNp ZiBkZWZpbmVkIFNfSVNCTEsgJiYgZGVmaW5lZCBTX0lGQ0hSCnwgZXh0ZXJuIGNoYXIgYzJbU19J U0JMSyAoU19JRkNIUikgPyAtMSA6IDFdOwp8ICNlbmRpZgp8IAp8ICNpZiBkZWZpbmVkIFNfSVNM TksgJiYgZGVmaW5lZCBTX0lGUkVHCnwgZXh0ZXJuIGNoYXIgYzNbU19JU0xOSyAoU19JRlJFRykg PyAtMSA6IDFdOwp8ICNlbmRpZgp8IAp8ICNpZiBkZWZpbmVkIFNfSVNTT0NLICYmIGRlZmluZWQg U19JRlJFRwp8IGV4dGVybiBjaGFyIGM0W1NfSVNTT0NLIChTX0lGUkVHKSA/IC0xIDogMV07Cnwg I2VuZGlmCnwgCmNvbmZpZ3VyZToxMDg2MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwOTM0OiBj aGVja2luZyBhYnNvbHV0ZSBuYW1lIG9mIDxzeXMvc3RhdC5oPgpjb25maWd1cmU6MTA5ODM6IHJl c3VsdDogPHN5cy9zdGF0Lmg+CmNvbmZpZ3VyZToxMTAxMzogY2hlY2tpbmcgZm9yIG5saW5rX3QK Y29uZmlndXJlOjExMDEzOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTEx Igpjb25maWd1cmU6MTEwMTM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82 NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19B TExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklS T05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9k ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9T X0JST0tFTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KfCAgICAgICNpbmNsdWRlIDxzeXMvc3RhdC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwg aWYgKHNpemVvZiAobmxpbmtfdCkpCnwgCSByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjExMDEzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTAyODogY2hlY2tpbmcg d2hldGhlciBmY2htb2RhdCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjEx MDQ2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 MTEwNDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUg MQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNk ZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwg I2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBmY2htb2RhdAp8ICAg KHZvaWQpIGZjaG1vZGF0Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTEwNTQ6 IHJlc3VsdDogbm8KY29uZmlndXJlOjExMDI4OiBjaGVja2luZyB3aGV0aGVyIGZzdGF0IGlzIGRl Y2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MTEwNDY6IGdjYyAtc3RkPWdudTExIC1j IC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQg bGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMTA0NjogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5z aWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04g LTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUg cGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0g MAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50Cnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvc3RhdC5oPgp8IAp8IGludAp8 IG1haW4gKCkKfCB7CnwgI3VuZGVmIGZzdGF0CnwgICAodm9pZCkgZnN0YXQ7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTA1NDogcmVzdWx0OiBubwpjb25maWd1cmU6MTEwMjg6 IGNoZWNraW5nIHdoZXRoZXIgZnN0YXRhdCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29u ZmlndXJlOjExMDQ2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6MTEwNDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExP Q0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05f REVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JS T0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBmc3Rh dGF0CnwgICAodm9pZCkgZnN0YXRhdDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjExMDU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTAyODogY2hlY2tpbmcgd2hldGhlciBmdXRp bWVucyBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjExMDQ2OiBnY2MgLXN0 ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTEwNDY6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3N0YXQuaD4K fCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBmdXRpbWVucwp8ICAgKHZvaWQpIGZ1dGlt ZW5zOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTEwNTQ6IHJlc3VsdDogbm8K Y29uZmlndXJlOjExMDI4OiBjaGVja2luZyB3aGV0aGVyIGxjaG1vZCBpcyBkZWNsYXJlZCB3aXRo b3V0IGEgbWFjcm8KY29uZmlndXJlOjExMDQ2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6MTEwNDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8 ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8 ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5l IFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8ICN1bmRlZiBsY2htb2QKfCAgICh2b2lkKSBsY2htb2Q7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToxMTA1NDogcmVzdWx0OiBubwpjb25maWd1cmU6MTEwMjg6IGNoZWNraW5n IHdoZXRoZXIgbHN0YXQgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxMTA0 NjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1 bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEx MDQ2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVm aW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNk ZWZpbmUgbmxpbmtfdCBpbnQKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgbHN0YXQKfCAgICh2b2lk KSBsc3RhdDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExMDU0OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxMTAyODogY2hlY2tpbmcgd2hldGhlciBta2RpcmF0IGlzIGRlY2xhcmVk IHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MTEwNDY6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1P MiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBv cHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMTA0NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1 aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWls ZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQg aW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAj ZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJ TUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3Qg aW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNk ZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvc3RhdC5oPgp8IAp8IGludAp8IG1haW4g KCkKfCB7CnwgI3VuZGVmIG1rZGlyYXQKfCAgICh2b2lkKSBta2RpcmF0Owp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MTEwNTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjExMDI4OiBj aGVja2luZyB3aGV0aGVyIG1rZmlmbyBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmln dXJlOjExMDQ2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTog ZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25m aWd1cmU6MTEwNDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRf SU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0Eg MQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tF TiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBta2ZpZm8K fCAgICh2b2lkKSBta2ZpZm87CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTA1 NDogcmVzdWx0OiBubwpjb25maWd1cmU6MTEwMjg6IGNoZWNraW5nIHdoZXRoZXIgbWtmaWZvYXQg aXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxMTA0NjogZ2NjIC1zdGQ9Z251 MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjExMDQ2OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVf dCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVD VElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2Rl ZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBp bnQKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgbWtmaWZvYXQKfCAgICh2b2lkKSBta2ZpZm9hdDsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExMDU0OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxMTAyODogY2hlY2tpbmcgd2hldGhlciBta25vZCBpcyBkZWNsYXJlZCB3aXRob3V0IGEg bWFjcm8KY29uZmlndXJlOjExMDQ2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6MTEwNDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZp bmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZF X0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZp bmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRf TUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1 bmRlZiBta25vZAp8ICAgKHZvaWQpIG1rbm9kOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MTEwNTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjExMDI4OiBjaGVja2luZyB3aGV0aGVy IG1rbm9kYXQgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxMTA0NjogZ2Nj IC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjExMDQ2OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgbWtub2RhdAp8ICAgKHZvaWQpIG1r bm9kYXQ7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTA1NDogcmVzdWx0OiBu bwpjb25maWd1cmU6MTEwMjg6IGNoZWNraW5nIHdoZXRoZXIgc3RhdCBpcyBkZWNsYXJlZCB3aXRo b3V0IGEgbWFjcm8KY29uZmlndXJlOjExMDQ2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6MTEwNDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8 ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8 ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5l IFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8ICN1bmRlZiBzdGF0CnwgICAodm9pZCkgc3RhdDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjExMDU0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTAyODogY2hlY2tpbmcgd2hl dGhlciB1dGltZW5zYXQgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxMTA0 NjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1 bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEx MDQ2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVm aW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNk ZWZpbmUgbmxpbmtfdCBpbnQKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgdXRpbWVuc2F0CnwgICAo dm9pZCkgdXRpbWVuc2F0Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTEwNTQ6 IHJlc3VsdDogbm8KY29uZmlndXJlOjExMDkzOiBjaGVja2luZyBhYnNvbHV0ZSBuYW1lIG9mIDxu ZXRkYi5oPgpjb25maWd1cmU6MTExNDI6IHJlc3VsdDogPG5ldGRiLmg+CmNvbmZpZ3VyZToxMTE2 OTogY2hlY2tpbmcgd2hldGhlciBnZXRhZGRyaW5mbyBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFj cm8KY29uZmlndXJlOjExMTg2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MTExODY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUg bW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFD Uk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KfCAjaW5jbHVkZSA8bmV0ZGIuaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBnZXRh ZGRyaW5mbwp8ICAgKHZvaWQpIGdldGFkZHJpbmZvOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MTExOTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjExMTY5OiBjaGVja2luZyB3aGV0 aGVyIGZyZWVhZGRyaW5mbyBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjEx MTg2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 MTExODY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUg MQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNk ZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwg I2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 bmV0ZGIuaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBmcmVlYWRkcmluZm8KfCAgICh2 b2lkKSBmcmVlYWRkcmluZm87CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTE5 NDogcmVzdWx0OiBubwpjb25maWd1cmU6MTExNjk6IGNoZWNraW5nIHdoZXRoZXIgZ2FpX3N0cmVy cm9yIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MTExODY6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMTE4NjogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8 ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5r X3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxuZXRkYi5oPgp8IGlu dAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGdhaV9zdHJlcnJvcgp8ICAgKHZvaWQpIGdhaV9zdHJl cnJvcjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExMTk0OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxMTE2OTogY2hlY2tpbmcgd2hldGhlciBnZXRuYW1laW5mbyBpcyBkZWNsYXJl ZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjExMTg2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTExODY6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bmV0ZGIuaD4KfCBpbnQKfCBtYWluICgpCnwg ewp8ICN1bmRlZiBnZXRuYW1laW5mbwp8ICAgKHZvaWQpIGdldG5hbWVpbmZvOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTExOTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjExMjA5 OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIGdldGhvc3RieW5hbWUKY29uZmlndXJl OjExMjQwOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToxMTI0MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFu IGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g dHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJD Igp8ICNlbmRpZgp8IGNoYXIgZ2V0aG9zdGJ5bmFtZSAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8 IHJldHVybiBnZXRob3N0YnluYW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MTEyNDA6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMg LWxuc2wgICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24g Ii1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMTI0MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50Cnwg I2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5l IEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50Cnwg I2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUg U1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv IGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo ZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50 IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg ZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZ2V0aG9zdGJ5bmFtZSAoKTsKfCBpbnQKfCBtYWlu ICgpCnwgewp8IHJldHVybiBnZXRob3N0YnluYW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6MTEyNDA6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNv bmZ0ZXN0LmMgLWxuZXR3b3JrICAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTEyNDA6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVu c2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9O IC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5l IHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFs IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBt aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVu IGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBf X2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdldGhvc3RieW5hbWUgKCk7 CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0aG9zdGJ5bmFtZSAoKTsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExMjQwOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVz dCAtZyAtTzIgICBjb25mdGVzdC5jIC1sbmV0ICAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTEyNDA6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8 ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdldGhvc3Ri eW5hbWUgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0aG9zdGJ5bmFtZSAoKTsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExMjU3OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxMTI3MTogY2hlY2tpbmcgZm9yIGdldGhvc3RieW5hbWUKY29uZmlndXJlOjExMjcxOiBn Y2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBl cnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZp Z3VyZToxMTI3MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9J Tk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAx CnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNM IDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VO IDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERl ZmluZSBnZXRob3N0YnluYW1lIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1p dHMuaD4gZGVjbGFyZXMgZ2V0aG9zdGJ5bmFtZS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFp IDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGdldGhvc3Ri eW5hbWUgaW5ub2N1b3VzX2dldGhvc3RieW5hbWUKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRl ZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdo aWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ2V0aG9zdGJ5bmFtZSAoKTsgYmVsb3cuCnwgICAg IFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwg c2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGls ZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNl bHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgZ2V0aG9zdGJ5 bmFtZQp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk IGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJu ICJDIgp8ICNlbmRpZgp8IGNoYXIgZ2V0aG9zdGJ5bmFtZSAoKTsKfCAvKiBUaGUgR05VIEMgbGli cmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAg IHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5 IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5h bWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9nZXRob3N0YnluYW1lIHx8 IGRlZmluZWQgX19zdHViX19fZ2V0aG9zdGJ5bmFtZQp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0aG9zdGJ5bmFtZSAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjExMjcxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTI3OTog Y2hlY2tpbmcgZm9yIGdldGhvc3RieW5hbWUgaW4gd2luc29jazIuaCBhbmQgLWx3czJfMzIKY29u ZmlndXJlOjExMzAzOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVz dC5jICAtbHdzMl8zMiA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBv cHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMTMwMzogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1 aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWls ZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQg aW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAj ZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJ TUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3Qg aW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNk ZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8ICNpZmRlZiBIQVZFX1dJTlNPQ0syX0gKfCAjaW5jbHVkZSA8 d2luc29jazIuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgCnwgaW50CnwgbWFp biAoKQp8IHsKfCBnZXRob3N0YnluYW1lKE5VTEwpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MTEzMTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjExMzI2OiBjaGVja2luZyBmb3Ig bGlicmFyeSBjb250YWluaW5nIGdldHNlcnZieW5hbWUKY29uZmlndXJlOjExMzU3OiBnY2MgLXN0 ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTox MTM1NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2Rl ZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAj ZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgZ2V0c2VydmJ5bmFtZSAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBnZXRzZXJ2 YnluYW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTEzNTc6IGdjYyAt c3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgLWxzb2NrZXQgICA+JjUK Y2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEi CmNvbmZpZ3VyZToxMTM1NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FM TE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJP Tl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2Rl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1Nf QlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVy cm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw ZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3 b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8 ICNlbmRpZgp8IGNoYXIgZ2V0c2VydmJ5bmFtZSAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJl dHVybiBnZXRzZXJ2YnluYW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 MTEzNTc6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgLWxu ZXR3b3JrICAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6MTEzNTc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8 ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8 ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5l IFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0 byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0 aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVu dCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdldHNlcnZieW5hbWUgKCk7CnwgaW50CnwgbWFp biAoKQp8IHsKfCByZXR1cm4gZ2V0c2VydmJ5bmFtZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjExMzU3OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBj b25mdGVzdC5jIC1sbmV0ICAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTEzNTc6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv Z3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2ln bmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0x CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBp ZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAK fCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2Nw bHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGdldHNlcnZieW5hbWUgKCk7Cnwg aW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0c2VydmJ5bmFtZSAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjExMzc0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTM4ODog Y2hlY2tpbmcgZm9yIGdldHNlcnZieW5hbWUKY29uZmlndXJlOjExMzg4OiBnY2MgLXN0ZD1nbnUx MSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMTM4ODog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2Rl ZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBT VEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xM T1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5l IG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBnZXRzZXJ2 YnluYW1lIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFy ZXMgZ2V0c2VydmJ5bmFtZS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4g ZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGdldHNlcnZieW5hbWUgaW5ub2N1 b3VzX2dldHNlcnZieW5hbWUKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25m bGljdCB3aXRoIGNoYXIgZ2V0c2VydmJ5bmFtZSAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGlt aXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAg PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAK fCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNs dWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgZ2V0c2VydmJ5bmFtZQp8IAp8IC8q IE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8 ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh IEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz dGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRp Zgp8IGNoYXIgZ2V0c2VydmJ5bmFtZSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVz IHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBm YWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAg IHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxp YXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9nZXRzZXJ2YnluYW1lIHx8IGRlZmluZWQgX19z dHViX19fZ2V0c2VydmJ5bmFtZQp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCByZXR1cm4gZ2V0c2VydmJ5bmFtZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjExMzg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTM5NjogY2hlY2tpbmcgZm9y IGdldHNlcnZieW5hbWUgaW4gd2luc29jazIuaCBhbmQgLWx3czJfMzIKY29uZmlndXJlOjExNDIw OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbHdzMl8z MiA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9 Z251MTEiCmNvbmZpZ3VyZToxMTQyMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmlu ZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9H TlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f VVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmlu ZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVf RU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmlu ZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9N QUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IAp8ICNpZmRlZiBIQVZFX1dJTlNPQ0syX0gKfCAjaW5jbHVkZSA8d2luc29jazIuaD4K fCAjZW5kaWYKfCAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBn ZXRzZXJ2YnluYW1lKE5VTEwsTlVMTCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToxMTQyODogcmVzdWx0OiBubwpjb25maWd1cmU6MTE0NDA6IGNoZWNraW5nIGZvciBDL0MrKyBy ZXN0cmljdCBrZXl3b3JkCmNvbmZpZ3VyZToxMTQ2NzogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjExNDY3OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgdHlwZWRlZiBpbnQgKmludF9wdHI7CnwgCSAgIGludCBmb28gKGlu dF9wdHIgX19yZXN0cmljdCBpcCkgeyByZXR1cm4gaXBbMF07IH0KfCAJICAgaW50IGJhciAoaW50 IFtfX3Jlc3RyaWN0XSk7IC8qIENhdGNoIEdDQyBidWcgMTQwNTAuICAqLwp8IAkgICBpbnQgYmFy IChpbnQgaXBbX19yZXN0cmljdF0pIHsgcmV0dXJuIGlwWzBdOyB9CnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCBpbnQgc1sxXTsKfCAJICAgaW50ICpfX3Jlc3RyaWN0IHQgPSBzOwp8IAkgICB0WzBd ID0gMDsKfCAJICAgcmV0dXJuIGZvbyAodCkgKyBiYXIgKHQpOwp8IAp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTE0Njc6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZToxMTQ2NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2Rl ZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2Rl ZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RB VF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IHR5cGVkZWYgaW50ICppbnRfcHRyOwp8IAkgICBpbnQgZm9vIChpbnRfcHRyIF9f cmVzdHJpY3RfXyBpcCkgeyByZXR1cm4gaXBbMF07IH0KfCAJICAgaW50IGJhciAoaW50IFtfX3Jl c3RyaWN0X19dKTsgLyogQ2F0Y2ggR0NDIGJ1ZyAxNDA1MC4gICovCnwgCSAgIGludCBiYXIgKGlu dCBpcFtfX3Jlc3RyaWN0X19dKSB7IHJldHVybiBpcFswXTsgfQp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgaW50IHNbMV07CnwgCSAgIGludCAqX19yZXN0cmljdF9fIHQgPSBzOwp8IAkgICB0WzBd ID0gMDsKfCAJICAgcmV0dXJuIGZvbyAodCkgKyBiYXIgKHQpOwp8IAp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTE0Njc6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZToxMTQ2NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2Rl ZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2Rl ZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RB VF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IHR5cGVkZWYgaW50ICppbnRfcHRyOwp8IAkgICBpbnQgZm9vIChpbnRfcHRyIF9S ZXN0cmljdCBpcCkgeyByZXR1cm4gaXBbMF07IH0KfCAJICAgaW50IGJhciAoaW50IFtfUmVzdHJp Y3RdKTsgLyogQ2F0Y2ggR0NDIGJ1ZyAxNDA1MC4gICovCnwgCSAgIGludCBiYXIgKGludCBpcFtf UmVzdHJpY3RdKSB7IHJldHVybiBpcFswXTsgfQp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgaW50 IHNbMV07CnwgCSAgIGludCAqX1Jlc3RyaWN0IHQgPSBzOwp8IAkgICB0WzBdID0gMDsKfCAJICAg cmV0dXJuIGZvbyAodCkgKyBiYXIgKHQpOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MTE0Njc6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToxMTQ2NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IHR5 cGVkZWYgaW50ICppbnRfcHRyOwp8IAkgICBpbnQgZm9vIChpbnRfcHRyIHJlc3RyaWN0IGlwKSB7 IHJldHVybiBpcFswXTsgfQp8IAkgICBpbnQgYmFyIChpbnQgW3Jlc3RyaWN0XSk7IC8qIENhdGNo IEdDQyBidWcgMTQwNTAuICAqLwp8IAkgICBpbnQgYmFyIChpbnQgaXBbcmVzdHJpY3RdKSB7IHJl dHVybiBpcFswXTsgfQp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgaW50IHNbMV07CnwgCSAgIGlu dCAqcmVzdHJpY3QgdCA9IHM7CnwgCSAgIHRbMF0gPSAwOwp8IAkgICByZXR1cm4gZm9vICh0KSAr IGJhciAodCk7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTQ3NTogcmVz dWx0OiBubwpjb25maWd1cmU6MTE1MDQ6IGNoZWNraW5nIGZvciB3aW5zb2NrMi5oCmNvbmZpZ3Vy ZToxMTUwNDogcmVzdWx0OiBubwpjb25maWd1cmU6MTE1NDY6IGNoZWNraW5nIGZvciBsaWJyYXJ5 IGNvbnRhaW5pbmcgaW5ldF9udG9wCmNvbmZpZ3VyZToxMTU3NzogZ2NjIC1zdGQ9Z251MTEgLW8g Y29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTE1Nzc6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl cnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIK fCAjZW5kaWYKfCBjaGFyIGluZXRfbnRvcCAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVy biBpbmV0X250b3AgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTU3Nzog Z2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAtbG5zbCAgID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjExNTc3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENf QUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1v ZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JP U19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8K fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5h bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhl biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBpbmV0X250b3AgKCk7Cnwg aW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gaW5ldF9udG9wICgpOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTE1Nzc6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1P MiAgIGNvbmZ0ZXN0LmMgLWxyZXNvbHYgICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMTU3NzogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n dWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXpl X3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJF Q1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNk ZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf QUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3Qg aW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8 IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y Lgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv ZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs ZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNl bmRpZgp8IGNoYXIgaW5ldF9udG9wICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGlu ZXRfbnRvcCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExNTk0OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToxMTYwMzogY2hlY2tpbmcgZm9yIGluZXRfbnRvcApjb25maWd1cmU6 MTE2MDM6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjExNjAzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENf QUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1v ZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JP U19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8K fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGluZXRfbnRvcCB0byBhbiBpbm5v Y3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGluZXRfbnRvcC4KfCAg ICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5 LiAgKi8KfCAjZGVmaW5lIGluZXRfbnRvcCBpbm5vY3VvdXNfaW5ldF9udG9wCnwgCnwgLyogU3lz dGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90 b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGluZXRfbnRvcCAoKTsg YmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18g aXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3Rh bmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxp bWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5k ZWYgaW5ldF9udG9wCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUg dG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg dGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMK fCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBpbmV0X250b3AgKCk7CnwgLyogVGhlIEdOVSBD IGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8 ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1 YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1h bCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfaW5ldF9udG9wIHx8 IGRlZmluZWQgX19zdHViX19faW5ldF9udG9wCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHJldHVybiBpbmV0X250b3AgKCk7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToxMTYwMzogcmVzdWx0OiBubwpjb25maWd1cmU6MTE2MjY6IGNoZWNraW5n IHdoZXRoZXIgaW5ldF9udG9wIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToxMTYyNjogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjExNjI2OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPGFycGEvaW5ldC5oPgp8ICAgICAgICAgI2lmIEhBVkVfTkVUREJfSAp8ICAgICAg ICAgIyBpbmNsdWRlIDxuZXRkYi5oPgp8ICAgICAgICAgI2VuZGlmCnwgCnwgCnwgaW50CnwgbWFp biAoKQp8IHsKfCAjaWZuZGVmIGluZXRfbnRvcAp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZv aWQpIGluZXRfbnRvcDsKfCAjZWxzZQp8ICAgKHZvaWQpIGluZXRfbnRvcDsKfCAjZW5kaWYKfCAj ZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExNjI2OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxMTY1NDogY2hlY2tpbmcgZm9yIElQdjQgc29ja2V0cwpjb25maWd1cmU6 MTE2ODA6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToxMTY4MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNpZmRlZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMv c29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfTkVUSU5FVF9JTl9ICnwgI2luY2x1ZGUg PG5ldGluZXQvaW4uaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9XSU5TT0NLMl9ICnwgI2luY2x1 ZGUgPHdpbnNvY2syLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBpbnQgeCA9IEFG X0lORVQ7IHN0cnVjdCBpbl9hZGRyIHk7IHN0cnVjdCBzb2NrYWRkcl9pbiB6Owp8ICBpZiAoJngg JiYgJnkgJiYgJnopIHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 MTE2ODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjExNjk2OiBjaGVja2luZyBmb3IgSVB2NiBzb2Nr ZXRzCmNvbmZpZ3VyZToxMTcyNTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5j ID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1n bnUxMSIKY29uZmlndXJlOjExNzI1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9V U0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5l IENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9F TlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmlu ZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5l IG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01B Q1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8q Ki8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICnwg I2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9ORVRJTkVUX0lO X0gKfCAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1dJTlNP Q0syX0gKfCAjaW5jbHVkZSA8d2luc29jazIuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9XUzJU Q1BJUF9ICnwgI2luY2x1ZGUgPHdzMnRjcGlwLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8 IHsKfCBpbnQgeCA9IEFGX0lORVQ2OyBzdHJ1Y3QgaW42X2FkZHIgeTsgc3RydWN0IHNvY2thZGRy X2luNiB6Owp8ICBpZiAoJnggJiYgJnkgJiYgJnopIHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTE3MzM6IHJlc3VsdDogbm8KY29uZmlndXJlOjExNzQxOiBjaGVj a2luZyB3aGV0aGVyIGdldGxvZ2luIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToxMTc0MTogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjExNzQxOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAj aWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1 ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwg IyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAg aW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRp Zgp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBnZXRsb2dpbgp8ICNpZmRlZiBfX2NwbHVz cGx1cwp8ICAgKHZvaWQpIGdldGxvZ2luOwp8ICNlbHNlCnwgICAodm9pZCkgZ2V0bG9naW47Cnwg I2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTc0 MTogcmVzdWx0OiBubwpjb25maWd1cmU6MTE3OTE6IGNoZWNraW5nIGFic29sdXRlIG5hbWUgb2Yg PHN5cy90aW1lLmg+CmNvbmZpZ3VyZToxMTg0MDogcmVzdWx0OiA8c3lzL3RpbWUuaD4KY29uZmln dXJlOjExODY5OiBjaGVja2luZyBmb3Igd2luc29jazIuaApjb25maWd1cmU6MTE4Njk6IHJlc3Vs dDogbm8KY29uZmlndXJlOjExODg5OiBjaGVja2luZyBmb3Igc3RydWN0IHRpbWV2YWwKY29uZmln dXJlOjExOTEyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTog ZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25m aWd1cmU6MTE5MTI6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRf SU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0Eg MQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tF TiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWYgSEFWRV9TWVNfVElNRV9ICnwgICAgICAgICAg ICAgICNpbmNsdWRlIDxzeXMvdGltZS5oPgp8ICAgICAgICAgICAgICNlbmRpZgp8ICAgICAgICAg ICAgICNpbmNsdWRlIDx0aW1lLmg+CnwgICAgICAgICAgICAgI2lmIEhBVkVfV0lOU09DSzJfSAp8 ICAgICAgICAgICAgICMgaW5jbHVkZSA8d2luc29jazIuaD4KfCAgICAgICAgICAgICAjZW5kaWYK fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgdGltZXZhbCB4OyB4LnR2X3Nl YyA9IHgudHZfdXNlYzsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExOTIwOiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMTk3MDogY2hlY2tpbmcgd2hldGhlciBnZXR0aW1lb2ZkYXkg aXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxMTk5MjogZ2NjIC1zdGQ9Z251 MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjExOTkyOiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVf dCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVD VElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2Rl ZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBp bnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgCnwgI2lmIEhBVkVfU1lTX1RJTUVfSAp8ICMgaW5jbHVkZSA8c3lzL3RpbWUuaD4KfCAjZW5k aWYKfCAjaW5jbHVkZSA8dGltZS5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGdl dHRpbWVvZmRheQp8ICAgKHZvaWQpIGdldHRpbWVvZmRheTsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjEyMDAwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjA1ODogY2hlY2tpbmcg Zm9yIGxkIHVzZWQgYnkgZ2NjIC1zdGQ9Z251MTEKY29uZmlndXJlOjEyMTI1OiByZXN1bHQ6IC91 c3IvYmluL2xkCmNvbmZpZ3VyZToxMjEzMjogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoL3Vzci9i aW4vbGQpIGlzIEdOVSBsZApjb25maWd1cmU6MTIxNDc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox MjE1NDogY2hlY2tpbmcgZm9yIHNoYXJlZCBsaWJyYXJ5IHJ1biBwYXRoIG9yaWdpbgpjb25maWd1 cmU6MTIxNjc6IHJlc3VsdDogZG9uZQpjb25maWd1cmU6MTI3NjE6IGNoZWNraW5nIGZvciBpY29u dgpjb25maWd1cmU6MTI3ODU6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNv bmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEyNzg1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUg PHN0ZGxpYi5oPgp8ICNpbmNsdWRlIDxpY29udi5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwg aWNvbnZfdCBjZCA9IGljb252X29wZW4oIiIsIiIpOwp8ICAgICAgICAgICAgaWNvbnYoY2QsTlVM TCxOVUxMLE5VTEwsTlVMTCk7CnwgICAgICAgICAgICBpY29udl9jbG9zZShjZCk7CnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMjgwOTogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRl c3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxpY29udiA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMjgwOTogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8IAp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAjaW5jbHVkZSA8aWNvbnYuaD4KfCAK fCBpbnQKfCBtYWluICgpCnwgewp8IGljb252X3QgY2QgPSBpY29udl9vcGVuKCIiLCIiKTsKfCAg ICAgICAgICAgICAgaWNvbnYoY2QsTlVMTCxOVUxMLE5VTEwsTlVMTCk7CnwgICAgICAgICAgICAg IGljb252X2Nsb3NlKGNkKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEyODE5 OiByZXN1bHQ6IG5vLCBjb25zaWRlciBpbnN0YWxsaW5nIEdOVSBsaWJpY29udgpjb25maWd1cmU6 MTMwNTE6IGNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4KY29uZmln dXJlOjEzMDY2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTog ZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25m aWd1cmU6MTMwNjY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRf SU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0Eg MQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tF TiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8 ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZm5kZWYg X19BUFBMRV9DQ19fCnwgCSAgICAgICBub3QgYSB1bml2ZXJzYWwgY2FwYWJsZSBjb21waWxlcgp8 IAkgICAgICNlbmRpZgp8IAkgICAgIHR5cGVkZWYgaW50IGR1bW15Owp8IApjb25maWd1cmU6MTMx MTE6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTox MzExMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2Rl ZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAj ZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmlu ZSBJQ09OVl9DT05TVCAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgp8IAkgICAgICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KfCAKfCBpbnQKfCBtYWluICgp Cnwgewp8ICNpZiAhIChkZWZpbmVkIEJZVEVfT1JERVIgJiYgZGVmaW5lZCBCSUdfRU5ESUFOIAkJ ICAgICAmJiBkZWZpbmVkIExJVFRMRV9FTkRJQU4gJiYgQllURV9PUkRFUiAmJiBCSUdfRU5ESUFO IAkJICAgICAmJiBMSVRUTEVfRU5ESUFOKQp8IAkgICAgICBib2d1cyBlbmRpYW4gbWFjcm9zCnwg CSAgICAgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMzE1NTog Z2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEzMTU1 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAj ZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5l IFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZP TExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZp bmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVD TF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElD T05WX0NPTlNUIAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bGltaXRzLmg+ CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWYgISAoZGVmaW5lZCBfTElUVExFX0VORElBTiB8 fCBkZWZpbmVkIF9CSUdfRU5ESUFOKQp8IAkgICAgICBib2d1cyBlbmRpYW4gbWFjcm9zCnwgCSAg ICAgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMzI0NjogZ2Nj IC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MTMyNDY6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYg SEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAh ZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVk ZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGlu dAp8IG1haW4gKCkKfCB7CnwgCnwgCSAgICAgLyogQXJlIHdlIGxpdHRsZSBvciBiaWcgZW5kaWFu PyAgRnJvbSBIYXJiaXNvbiZTdGVlbGUuICAqLwp8IAkgICAgIHVuaW9uCnwgCSAgICAgewp8IAkg ICAgICAgbG9uZyBpbnQgbDsKfCAJICAgICAgIGNoYXIgY1tzaXplb2YgKGxvbmcgaW50KV07Cnwg CSAgICAgfSB1Owp8IAkgICAgIHUubCA9IDE7CnwgCSAgICAgcmV0dXJuIHUuY1tzaXplb2YgKGxv bmcgaW50KSAtIDFdID09IDE7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTox MzI1NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEzMjc3OiBjaGVja2luZyB3aGV0aGVyIGxvbmcg ZG91YmxlIGFuZCBkb3VibGUgYXJlIHRoZSBzYW1lCmNvbmZpZ3VyZToxMzI5ODogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEzMjk4OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPGZsb2F0Lmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCB0eXBlZGVmIGludCBjaGVj a1tzaXplb2YgKGxvbmcgZG91YmxlKSA9PSBzaXplb2YgKGRvdWJsZSkKfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmJiBMREJMX01BTlRfRElHID09IERCTF9NQU5UX0RJRwp8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICYmIExEQkxfTUFYX0VYUCA9PSBEQkxfTUFYX0VYUAp8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIExEQkxfTUlOX0VYUCA9PSBEQkxfTUlO X0VYUAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMSA6IC0xXTsKfCAKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEzMzA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox MzMxOTogY2hlY2tpbmcgd2hlcmUgdG8gZmluZCB0aGUgZXhwb25lbnQgaW4gYSAnZmxvYXQnCmNv bmZpZ3VyZToxMzM5NjogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRl c3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICIt c3RkPWdudTExIgpjb25maWd1cmU6MTMzOTY6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhp dGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lO T0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEK fCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4g MQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAj ZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPGZsb2F0Lmg+CnwgI2luY2x1ZGUgPHN0ZGRl Zi5oPgp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZGVmaW5l IE5XT1JEUyAgICgoc2l6ZW9mIChmbG9hdCkgKyBzaXplb2YgKHVuc2lnbmVkIGludCkgLSAxKSAv IHNpemVvZiAodW5zaWduZWQgaW50KSkKfCB0eXBlZGVmIHVuaW9uIHsgZmxvYXQgdmFsdWU7IHVu c2lnbmVkIGludCB3b3JkW05XT1JEU107IH0gbWVtb3J5X2Zsb2F0Owp8IHN0YXRpYyB1bnNpZ25l ZCBpbnQgb3JlZF93b3Jkc1tOV09SRFNdOwp8IHN0YXRpYyB1bnNpZ25lZCBpbnQgYW5kZWRfd29y ZHNbTldPUkRTXTsKfCBzdGF0aWMgdm9pZCBhZGRfdG9fb3JlZF93b3JkcyAoZmxvYXQgeCkKfCB7 CnwgICBtZW1vcnlfZmxvYXQgbTsKfCAgIHNpemVfdCBpOwp8ICAgLyogQ2xlYXIgaXQgZmlyc3Qs IGluIGNhc2UKfCAgICAgIHNpemVvZiAoZmxvYXQpIDwgc2l6ZW9mIChtZW1vcnlfZmxvYXQpLiAg Ki8KfCAgIG1lbXNldCAoJm0sIDAsIHNpemVvZiAobWVtb3J5X2Zsb2F0KSk7CnwgICBtLnZhbHVl ID0geDsKfCAgIGZvciAoaSA9IDA7IGkgPCBOV09SRFM7IGkrKykKfCAgICAgewp8ICAgICAgIG9y ZWRfd29yZHNbaV0gfD0gbS53b3JkW2ldOwp8ICAgICAgIGFuZGVkX3dvcmRzW2ldICY9IG0ud29y ZFtpXTsKfCAgICAgfQp8IH0KfCBpbnQgbWFpbiAoKQp8IHsKfCAgIHNpemVfdCBqOwp8ICAgRklM RSAqZnAgPSBmb3BlbiAoImNvbmZ0ZXN0Lm91dCIsICJ3Iik7CnwgICBpZiAoZnAgPT0gTlVMTCkK fCAgICAgcmV0dXJuIDE7CnwgICBmb3IgKGogPSAwOyBqIDwgTldPUkRTOyBqKyspCnwgICAgIGFu ZGVkX3dvcmRzW2pdID0gfiAodW5zaWduZWQgaW50KSAwOwp8ICAgYWRkX3RvX29yZWRfd29yZHMg KDAuMjVmKTsKfCAgIGFkZF90b19vcmVkX3dvcmRzICgwLjVmKTsKfCAgIGFkZF90b19vcmVkX3dv cmRzICgxLjBmKTsKfCAgIGFkZF90b19vcmVkX3dvcmRzICgyLjBmKTsKfCAgIGFkZF90b19vcmVk X3dvcmRzICg0LjBmKTsKfCAgIC8qIFJlbW92ZSBiaXRzIHRoYXQgYXJlIGNvbW1vbiAoZS5nLiBp ZiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZmlyc3QgbWFudGlzc2EKfCAgICAgIGJpdCBpcyBleHBs aWNpdCkuICAqLwp8ICAgZm9yIChqID0gMDsgaiA8IE5XT1JEUzsgaisrKQp8ICAgICBvcmVkX3dv cmRzW2pdICY9IH5hbmRlZF93b3Jkc1tqXTsKfCAgIC8qIE5vdyBmaW5kIHRoZSBub256ZXJvIHdv cmQuICAqLwp8ICAgZm9yIChqID0gMDsgaiA8IE5XT1JEUzsgaisrKQp8ICAgICBpZiAob3JlZF93 b3Jkc1tqXSAhPSAwKQp8ICAgICAgIGJyZWFrOwp8ICAgaWYgKGogPCBOV09SRFMpCnwgICAgIHsK fCAgICAgICBzaXplX3QgaTsKfCAgICAgICBmb3IgKGkgPSBqICsgMTsgaSA8IE5XT1JEUzsgaSsr KQp8ICAgICAgICAgaWYgKG9yZWRfd29yZHNbaV0gIT0gMCkKfCAgICAgICAgICAgewp8ICAgICAg ICAgICAgIGZwcmludGYgKGZwLCAidW5rbm93biIpOwp8ICAgICAgICAgICAgIHJldHVybiAoZmNs b3NlIChmcCkgIT0gMCk7CnwgICAgICAgICAgIH0KfCAgICAgICBmb3IgKGkgPSAwOyA7IGkrKykK fCAgICAgICAgIGlmICgob3JlZF93b3Jkc1tqXSA+PiBpKSAmIDEpCnwgICAgICAgICAgIHsKfCAg ICAgICAgICAgICBmcHJpbnRmIChmcCwgIndvcmQgJWQgYml0ICVkIiwgKGludCkgaiwgKGludCkg aSk7CnwgICAgICAgICAgICAgcmV0dXJuIChmY2xvc2UgKGZwKSAhPSAwKTsKfCAgICAgICAgICAg fQp8ICAgICB9CnwgICBmcHJpbnRmIChmcCwgInVua25vd24iKTsKfCAgIHJldHVybiAoZmNsb3Nl IChmcCkgIT0gMCk7CnwgfQp8IApjb25maWd1cmU6MTM0MDg6IHJlc3VsdDogdW5rbm93bgpjb25m aWd1cmU6MTM0MzE6IGNoZWNraW5nIHdoZXRoZXIgaXNuYW4oZmxvYXQpIGNhbiBiZSB1c2VkIHdp dGhvdXQgbGlua2luZyB3aXRoIGxpYm0KY29uZmlndXJlOjEzNDU2OiBnY2MgLXN0ZD1nbnUxMSAt byBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxMzQ1NjogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgICAgICAgICAgICAgICNpZiBfX0dOVUNfXyA+PSA0Cnwg ICAgICAgICAgICAgICMgdW5kZWYgaXNuYW5mCnwgICAgICAgICAgICAgICMgZGVmaW5lIGlzbmFu Zih4KSBfX2J1aWx0aW5faXNuYW5mICgoZmxvYXQpKHgpKQp8ICAgICAgICAgICAgICAjZWxpZiBk ZWZpbmVkIGlzbmFuCnwgICAgICAgICAgICAgICMgdW5kZWYgaXNuYW5mCnwgICAgICAgICAgICAg ICMgZGVmaW5lIGlzbmFuZih4KSBpc25hbiAoKGZsb2F0KSh4KSkKfCAgICAgICAgICAgICAgI2Vu ZGlmCnwgICAgICAgICAgICAgIGZsb2F0IHg7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4g aXNuYW5mICh4KTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEzNDY1OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToxMzQ3MDogY2hlY2tpbmcgd2hldGhlciBpc25hbihmbG9hdCkgY2Fu IGJlIHVzZWQgd2l0aCBsaWJtCmNvbmZpZ3VyZToxMzQ5NzogZ2NjIC1zdGQ9Z251MTEgLW8gY29u ZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEzNDk3OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NP TlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPG1hdGguaD4KfCAgICAgICAgICAgICAgI2lmIF9fR05VQ19fID49IDQKfCAg ICAgICAgICAgICAgIyB1bmRlZiBpc25hbmYKfCAgICAgICAgICAgICAgIyBkZWZpbmUgaXNuYW5m KHgpIF9fYnVpbHRpbl9pc25hbmYgKChmbG9hdCkoeCkpCnwgICAgICAgICAgICAgICNlbGlmIGRl ZmluZWQgaXNuYW4KfCAgICAgICAgICAgICAgIyB1bmRlZiBpc25hbmYKfCAgICAgICAgICAgICAg IyBkZWZpbmUgaXNuYW5mKHgpIGlzbmFuICgoZmxvYXQpKHgpKQp8ICAgICAgICAgICAgICAjZW5k aWYKfCAgICAgICAgICAgICAgZmxvYXQgeDsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBp c25hbmYgKHgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTM1MDc6IHJlc3Vs dDogbm8KY29uZmlndXJlOjEzNjIwOiBjaGVja2luZyB3aGV0aGVyIGlzbmFuKGRvdWJsZSkgY2Fu IGJlIHVzZWQgd2l0aG91dCBsaW5raW5nIHdpdGggbGlibQpjb25maWd1cmU6MTM2NDU6IGdjYyAt c3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjEzNjQ1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAj ZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8 ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVm aW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCAgICAgICAgICAgICAgI2lmIF9fR05V Q19fID49IDQKfCAgICAgICAgICAgICAgIyB1bmRlZiBpc25hbmQKfCAgICAgICAgICAgICAgIyBk ZWZpbmUgaXNuYW5kKHgpIF9fYnVpbHRpbl9pc25hbiAoKGRvdWJsZSkoeCkpCnwgICAgICAgICAg ICAgICNlbHNlCnwgICAgICAgICAgICAgICMgdW5kZWYgaXNuYW5kCnwgICAgICAgICAgICAgICMg ZGVmaW5lIGlzbmFuZCh4KSBpc25hbiAoKGRvdWJsZSkoeCkpCnwgICAgICAgICAgICAgICNlbmRp Zgp8ICAgICAgICAgICAgICBkb3VibGUgeDsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBp c25hbmQgKHgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTM2NTQ6IHJlc3Vs dDogbm8KY29uZmlndXJlOjEzNjU5OiBjaGVja2luZyB3aGV0aGVyIGlzbmFuKGRvdWJsZSkgY2Fu IGJlIHVzZWQgd2l0aCBsaWJtCmNvbmZpZ3VyZToxMzY4NjogZ2NjIC1zdGQ9Z251MTEgLW8gY29u ZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxtID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEzNjg2OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NP TlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPG1hdGguaD4KfCAgICAgICAgICAgICAgI2lmIF9fR05VQ19fID49IDQKfCAg ICAgICAgICAgICAgIyB1bmRlZiBpc25hbmQKfCAgICAgICAgICAgICAgIyBkZWZpbmUgaXNuYW5k KHgpIF9fYnVpbHRpbl9pc25hbiAoKGRvdWJsZSkoeCkpCnwgICAgICAgICAgICAgICNlbGlmIGRl ZmluZWQgaXNuYW4KfCAgICAgICAgICAgICAgIyB1bmRlZiBpc25hbmQKfCAgICAgICAgICAgICAg IyBkZWZpbmUgaXNuYW5kKHgpIGlzbmFuICgoZG91YmxlKSh4KSkKfCAgICAgICAgICAgICAgI2Vu ZGlmCnwgICAgICAgICAgICAgIGRvdWJsZSB4Owp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJu IGlzbmFuZCAoeCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMzY5NjogcmVz dWx0OiBubwpjb25maWd1cmU6MTM3MTY6IGNoZWNraW5nIHdoZXRoZXIgaXNuYW4obG9uZyBkb3Vi bGUpIGNhbiBiZSB1c2VkIHdpdGhvdXQgbGlua2luZyB3aXRoIGxpYm0KY29uZmlndXJlOjEzNzQx OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToxMzc0MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAw CnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgICAgICAgICAgICAgICNp ZiBfX0dOVUNfXyA+PSA0CnwgICAgICAgICAgICAgICMgdW5kZWYgaXNuYW5sCnwgICAgICAgICAg ICAgICMgZGVmaW5lIGlzbmFubCh4KSBfX2J1aWx0aW5faXNuYW5sICgobG9uZyBkb3VibGUpKHgp KQp8ICAgICAgICAgICAgICAjZWxpZiBkZWZpbmVkIGlzbmFuCnwgICAgICAgICAgICAgICMgdW5k ZWYgaXNuYW5sCnwgICAgICAgICAgICAgICMgZGVmaW5lIGlzbmFubCh4KSBpc25hbiAoKGxvbmcg ZG91YmxlKSh4KSkKfCAgICAgICAgICAgICAgI2VuZGlmCnwgICAgICAgICAgICAgIGxvbmcgZG91 YmxlIHg7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gaXNuYW5sICh4KTsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEzNzUwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMzc1 NTogY2hlY2tpbmcgd2hldGhlciBpc25hbihsb25nIGRvdWJsZSkgY2FuIGJlIHVzZWQgd2l0aCBs aWJtCmNvbmZpZ3VyZToxMzc4MjogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAg Y29uZnRlc3QuYyAgLWxtID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5l IG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjEzNzgyOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25l ZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9B VElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRf dCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwg I2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVm aW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUg V09SRFNfQklHRU5ESUFOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1h dGguaD4KfCAgICAgICAgICAgICAgI2lmIF9fR05VQ19fID49IDQKfCAgICAgICAgICAgICAgIyB1 bmRlZiBpc25hbmwKfCAgICAgICAgICAgICAgIyBkZWZpbmUgaXNuYW5sKHgpIF9fYnVpbHRpbl9p c25hbmwgKChsb25nIGRvdWJsZSkoeCkpCnwgICAgICAgICAgICAgICNlbGlmIGRlZmluZWQgaXNu YW4KfCAgICAgICAgICAgICAgIyB1bmRlZiBpc25hbmwKfCAgICAgICAgICAgICAgIyBkZWZpbmUg aXNuYW5sKHgpIGlzbmFuICgobG9uZyBkb3VibGUpKHgpKQp8ICAgICAgICAgICAgICAjZW5kaWYK fCAgICAgICAgICAgICAgbG9uZyBkb3VibGUgeDsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVy biBpc25hbmwgKHgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTM3OTI6IHJl c3VsdDogbm8KY29uZmlndXJlOjEzOTU3OiBjaGVja2luZyB3aGVyZSB0byBmaW5kIHRoZSBleHBv bmVudCBpbiBhICdkb3VibGUnCmNvbmZpZ3VyZToxNDI3MTogZ2NjIC1zdGQ9Z251MTEgLW8gY29u ZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTQyNzE6ICQ/ID0gMQpj b25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNf QklHRU5ESUFOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPGZsb2F0 Lmg+CnwgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZGVmaW5lIE5XT1JEUyAgICgoc2l6ZW9mIChkb3VibGUpICsgc2l6ZW9m ICh1bnNpZ25lZCBpbnQpIC0gMSkgLyBzaXplb2YgKHVuc2lnbmVkIGludCkpCnwgdHlwZWRlZiB1 bmlvbiB7IGRvdWJsZSB2YWx1ZTsgdW5zaWduZWQgaW50IHdvcmRbTldPUkRTXTsgfSBtZW1vcnlf ZG91YmxlOwp8IHN0YXRpYyB1bnNpZ25lZCBpbnQgb3JlZF93b3Jkc1tOV09SRFNdOwp8IHN0YXRp YyB1bnNpZ25lZCBpbnQgYW5kZWRfd29yZHNbTldPUkRTXTsKfCBzdGF0aWMgdm9pZCBhZGRfdG9f b3JlZF93b3JkcyAoZG91YmxlIHgpCnwgewp8ICAgbWVtb3J5X2RvdWJsZSBtOwp8ICAgc2l6ZV90 IGk7CnwgICAvKiBDbGVhciBpdCBmaXJzdCwgaW4gY2FzZSBzaXplb2YgKGRvdWJsZSkgPCBzaXpl b2YgKG1lbW9yeV9kb3VibGUpLiAgKi8KfCAgIG1lbXNldCAoJm0sIDAsIHNpemVvZiAobWVtb3J5 X2RvdWJsZSkpOwp8ICAgbS52YWx1ZSA9IHg7CnwgICBmb3IgKGkgPSAwOyBpIDwgTldPUkRTOyBp KyspCnwgICAgIHsKfCAgICAgICBvcmVkX3dvcmRzW2ldIHw9IG0ud29yZFtpXTsKfCAgICAgICBh bmRlZF93b3Jkc1tpXSAmPSBtLndvcmRbaV07CnwgICAgIH0KfCB9CnwgaW50IG1haW4gKCkKfCB7 CnwgICBzaXplX3QgajsKfCAgIEZJTEUgKmZwID0gZm9wZW4gKCJjb25mdGVzdC5vdXQiLCAidyIp Owp8ICAgaWYgKGZwID09IE5VTEwpCnwgICAgIHJldHVybiAxOwp8ICAgZm9yIChqID0gMDsgaiA8 IE5XT1JEUzsgaisrKQp8ICAgICBhbmRlZF93b3Jkc1tqXSA9IH4gKHVuc2lnbmVkIGludCkgMDsK fCAgIGFkZF90b19vcmVkX3dvcmRzICgwLjI1KTsKfCAgIGFkZF90b19vcmVkX3dvcmRzICgwLjUp Owp8ICAgYWRkX3RvX29yZWRfd29yZHMgKDEuMCk7CnwgICBhZGRfdG9fb3JlZF93b3JkcyAoMi4w KTsKfCAgIGFkZF90b19vcmVkX3dvcmRzICg0LjApOwp8ICAgLyogUmVtb3ZlIGJpdHMgdGhhdCBh cmUgY29tbW9uIChlLmcuIGlmIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmaXJzdCBtYW50aXNzYQp8 ICAgICAgYml0IGlzIGV4cGxpY2l0KS4gICovCnwgICBmb3IgKGogPSAwOyBqIDwgTldPUkRTOyBq KyspCnwgICAgIG9yZWRfd29yZHNbal0gJj0gfmFuZGVkX3dvcmRzW2pdOwp8ICAgLyogTm93IGZp bmQgdGhlIG5vbnplcm8gd29yZC4gICovCnwgICBmb3IgKGogPSAwOyBqIDwgTldPUkRTOyBqKysp CnwgICAgIGlmIChvcmVkX3dvcmRzW2pdICE9IDApCnwgICAgICAgYnJlYWs7CnwgICBpZiAoaiA8 IE5XT1JEUykKfCAgICAgewp8ICAgICAgIHNpemVfdCBpOwp8ICAgICAgIGZvciAoaSA9IGogKyAx OyBpIDwgTldPUkRTOyBpKyspCnwgICAgICAgICBpZiAob3JlZF93b3Jkc1tpXSAhPSAwKQp8ICAg ICAgICAgICB7CnwgICAgICAgICAgICAgZnByaW50ZiAoZnAsICJ1bmtub3duIik7CnwgICAgICAg ICAgICAgcmV0dXJuIChmY2xvc2UgKGZwKSAhPSAwKTsKfCAgICAgICAgICAgfQp8ICAgICAgIGZv ciAoaSA9IDA7IDsgaSsrKQp8ICAgICAgICAgaWYgKChvcmVkX3dvcmRzW2pdID4+IGkpICYgMSkK fCAgICAgICAgICAgewp8ICAgICAgICAgICAgIGZwcmludGYgKGZwLCAid29yZCAlZCBiaXQgJWQi LCAoaW50KSBqLCAoaW50KSBpKTsKfCAgICAgICAgICAgICByZXR1cm4gKGZjbG9zZSAoZnApICE9 IDApOwp8ICAgICAgICAgICB9CnwgICAgIH0KfCAgIGZwcmludGYgKGZwLCAidW5rbm93biIpOwp8 ICAgcmV0dXJuIChmY2xvc2UgKGZwKSAhPSAwKTsKfCB9CnwgCmNvbmZpZ3VyZToxNDI4MzogcmVz dWx0OiB1bmtub3duCmNvbmZpZ3VyZToxNDMxMDogY2hlY2tpbmcgd2hldGhlciBsZGV4cCgpIGNh biBiZSB1c2VkIHdpdGhvdXQgbGlua2luZyB3aXRoIGxpYm0KY29uZmlndXJlOjE0MzMyOiBnY2Mg LXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToxNDMzMjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpZm5kZWYgX19OT19NQVRIX0lOTElORVMKfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIGRlZmluZSBfX05PX01BVEhfSU5MSU5FUyAxIC8qIGZvciBnbGliYyAq Lwp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNlbmRpZgp8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICNpbmNsdWRlIDxtYXRoLmg+CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG91YmxlICgqZnVuY3B0cikgKGRvdWJsZSwgaW50KSA9IGxkZXhwOwp8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRvdWJsZSB4Owp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGxkZXhw ICh4LCAtMSkgPiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTQzNDE6IHJl c3VsdDogbm8KY29uZmlndXJlOjE1OTU2OiBjaGVja2luZyBmb3IgbGlidW5pc3RyaW5nCmNvbmZp Z3VyZToxNTk3ODogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3Qu YyAgLWx1bmlzdHJpbmcgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTU5Nzg6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8dW5p Y29udi5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgdThfc3RyY29udl9mcm9tX2xvY2FsZSgoY2hh ciopMCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNTk4ODogcmVzdWx0OiBu bywgY29uc2lkZXIgaW5zdGFsbGluZyBHTlUgbGlidW5pc3RyaW5nCmNvbmZpZ3VyZToxNjEzNDog Y2hlY2tpbmcgYWJzb2x1dGUgbmFtZSBvZiA8bGltaXRzLmg+CmNvbmZpZ3VyZToxNjE4MzogcmVz dWx0OiA8bGltaXRzLmg+CmNvbmZpZ3VyZToxNjIwMTogY2hlY2tpbmcgd2hldGhlciBsaW1pdHMu aCBoYXMgVUxMT05HX1dJRFRIIGV0Yy4KY29uZmlndXJlOjE2MjIxOiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTYyMjE6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVu c2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9O IC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5l IHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8 ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2Rl ZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZuZGVm IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18KfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgI2VuZGlmCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAjaW5j bHVkZSA8bGltaXRzLmg+CnwgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdWxsdyA9IFVM TE9OR19XSURUSDsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6MTYyMjg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2MjQ4OiBjaGVja2luZyBm b3IgbmxfbGFuZ2luZm8gYW5kIENPREVTRVQKY29uZmlndXJlOjE2MjY0OiBnY2MgLXN0ZD1nbnUx MSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxNjI2NDog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2Rl ZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBT VEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xM T1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5l IG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09O Vl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxsYW5naW5mby5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgY2hhciog Y3MgPSBubF9sYW5naW5mbyhDT0RFU0VUKTsgcmV0dXJuICFjczsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjE2MjczOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNjI4MTogY2hlY2tp bmcgd2hldGhlciBnZXRjX3VubG9ja2VkIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToxNjI4MTogZ2Nj IC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE2MjgxOiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05W X0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGlu Y2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAj IGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZk ZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYm IGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYK fCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8 ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gK fCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gK fCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwg IyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZm5k ZWYgZ2V0Y191bmxvY2tlZAp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQpIGdldGNfdW5s b2NrZWQ7CnwgI2Vsc2UKfCAgICh2b2lkKSBnZXRjX3VubG9ja2VkOwp8ICNlbmRpZgp8ICNlbmRp Zgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTYyODE6IHJlc3VsdDogbm8K Y29uZmlndXJlOjE2MjkzOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMg TGlicmFyeSA+PSAyLjEgb3IgdUNsaWJjCmNvbmZpZ3VyZToxNjMyMzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjE2MzM1OiBjaGVja2luZyB3aGV0aGVyIHBvdyBjYW4gYmUgdXNlZCB3aXRob3V0IGxp bmtpbmcgd2l0aCBsaWJtCmNvbmZpZ3VyZToxNjM2NDogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRl c3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTYzNjQ6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90 IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNU SU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVm aW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FM QVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGlu dAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwg I2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NL RUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9fTk9fTUFUSF9JTkxJTkVT CnwgICAgICAgICAgICAgICMgZGVmaW5lIF9fTk9fTUFUSF9JTkxJTkVTIDEgLyogZm9yIGdsaWJj ICovCnwgICAgICAgICAgICAgICNlbmRpZgp8ICAgICAgICAgICAgICAjaW5jbHVkZSA8bWF0aC5o Pgp8IAp8ICAgICAgICAgICAgICBkb3VibGUgKCpmdW5jcHRyKSAoZG91YmxlLCBkb3VibGUpID0g cG93Owp8ICAgICAgICAgICAgICBpbnQgaV9yZXQ7CnwgICAgICAgICAgICAgIGZsb2F0IGZfcmV0 Owp8ICAgICAgICAgICAgICBkb3VibGUgZF9yZXQ7CnwgICAgICAgICAgICAgIGxvbmcgZG91Ymxl IGxfcmV0Owp8IGludAp8IG1haW4gKCkKfCB7CnwgZG91YmxlIHkgPSBmdW5jcHRyICgxLjYxODAz Mzk4ODcsIDEuNjE4MDMzOTg4NykgKyBwb3cgKDEuNjE4MDMzOTg4NywgMS42MTgwMzM5ODg3KTsK fCAKfCAgICAgICAgICAgICAgcmV0dXJuIHkgPCAwLjMgfHwgeSA+IDEuNzsKfCAKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE2MzczOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNjM3 NjogY2hlY2tpbmcgd2hldGhlciBwb3cgY2FuIGJlIHVzZWQgd2l0aCBsaWJtCmNvbmZpZ3VyZTox NjQwNzogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxt ID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1n bnUxMSIKY29uZmlndXJlOjE2NDA3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9V U0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5l IENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9F TlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmlu ZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5l IG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01B Q1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8q Ki8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFO IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2lmbmRlZiBfX05PX01BVEhfSU5MSU5FUwp8ICAgICAgICAgICAgICAgICMgZGVm aW5lIF9fTk9fTUFUSF9JTkxJTkVTIDEgLyogZm9yIGdsaWJjICovCnwgICAgICAgICAgICAgICAg I2VuZGlmCnwgICAgICAgICAgICAgICAgI2luY2x1ZGUgPG1hdGguaD4KfCAKfCAgICAgICAgICAg ICAgICBkb3VibGUgKCpmdW5jcHRyKSAoZG91YmxlLCBkb3VibGUpID0gcG93Owp8ICAgICAgICAg ICAgICAgIGludCBpX3JldDsKfCAgICAgICAgICAgICAgICBmbG9hdCBmX3JldDsKfCAgICAgICAg ICAgICAgICBkb3VibGUgZF9yZXQ7CnwgICAgICAgICAgICAgICAgbG9uZyBkb3VibGUgbF9yZXQ7 CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBkb3VibGUgeSA9IGZ1bmNwdHIgKDEuNjE4MDMzOTg4Nywg MS42MTgwMzM5ODg3KSArIHBvdyAoMS42MTgwMzM5ODg3LCAxLjYxODAzMzk4ODcpOwp8IAp8ICAg ICAgICAgICAgICAgIHJldHVybiB5IDwgMC4zIHx8IHkgPiAxLjc7CnwgCnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToxNjQxNzogcmVzdWx0OiBubwpjb25maWd1cmU6MTY0NDU6IGNo ZWNraW5nIHdoZXRoZXIgbG9nIHdvcmtzCmNvbmZpZ3VyZToxNjQ3NDogZ2NjIC1zdGQ9Z251MTEg LW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE2NDc0OiAk PyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9n dWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWdu ZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEK fCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P QVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlk X3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8 ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2Rl ZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5l IFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICNpbmNsdWRlIDxtYXRoLmg+Cnwgdm9sYXRpbGUg ZG91YmxlIHg7CnwgZG91YmxlIHk7CnwgaW50IG1haW4gKCkKfCB7CnwgICB4ID0gLTAuMDsKfCAg IHkgPSBsb2cgKHgpOwp8ICAgaWYgKCEoeSArIHkgPT0geSkpCnwgICAgIHJldHVybiAxOwp8ICAg cmV0dXJuIDA7CnwgfQp8IApjb25maWd1cmU6MTY0ODU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2 NTI5OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAgPiY1 CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTEx Igpjb25maWd1cmU6MTY1Mjk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82 NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19B TExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklS T05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9k ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9T X0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9H SU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KfCAKfCAgICAgICAgICAjaWZuZGVmIF9fTk9fTUFUSF9JTkxJTkVTCnwgICAgICAgICAgIyBk ZWZpbmUgX19OT19NQVRIX0lOTElORVMgMSAvKiBmb3IgZ2xpYmMgKi8KfCAgICAgICAgICAjZW5k aWYKfCAgICAgICAgICAjaW5jbHVkZSA8bWF0aC5oPgp8ICAgICAgICAgIGV4dGVybgp8ICAgICAg I2lmZGVmIF9fY3BsdXNwbHVzCnwgICAgICAiQyIKfCAgICAgICNlbmRpZgp8ICAgICAgZG91Ymxl IHJvdW5kIChkb3VibGUpOwp8IAp8ICAgICAgICAgIGRvdWJsZSB4Owp8IGludAp8IG1haW4gKCkK fCB7CnwgeCA9IHJvdW5kICh4KTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE2 NTI5OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG0g PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MTY1Mjk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUg bW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFD Uk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoq Lwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAKfCAgICAgICAgICAjaWZuZGVmIF9fTk9fTUFUSF9JTkxJTkVTCnwgICAgICAgICAg IyBkZWZpbmUgX19OT19NQVRIX0lOTElORVMgMSAvKiBmb3IgZ2xpYmMgKi8KfCAgICAgICAgICAj ZW5kaWYKfCAgICAgICAgICAjaW5jbHVkZSA8bWF0aC5oPgp8ICAgICAgICAgIGV4dGVybgp8ICAg ICAgI2lmZGVmIF9fY3BsdXNwbHVzCnwgICAgICAiQyIKfCAgICAgICNlbmRpZgp8ICAgICAgZG91 YmxlIHJvdW5kIChkb3VibGUpOwp8IAp8ICAgICAgICAgIGRvdWJsZSB4Owp8IGludAp8IG1haW4g KCkKfCB7CnwgeCA9IHJvdW5kICh4KTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjE2NjUxOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToxNjY1MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpZm5kZWYgX19OT19NQVRIX0lOTElORVMKfCAgICAgICAgICAgICMgZGVmaW5lIF9f Tk9fTUFUSF9JTkxJTkVTIDEgLyogZm9yIGdsaWJjICovCnwgICAgICAgICAgICAjZW5kaWYKfCAg ICAgICAgICAgICNpbmNsdWRlIDxtYXRoLmg+CnwgICAgICAgICAgICBkb3VibGUgeDsKfCBpbnQK fCBtYWluICgpCnwgewp8IHggPSBmbG9vcih4KTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjE2Njc0OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVz dC5jICAtbG0gPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6MTY2NzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8 ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8 ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5l IFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVz dHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19C SUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9fTk9fTUFUSF9JTkxJTkVTCnwgICAgICAgICAgICAg ICMgZGVmaW5lIF9fTk9fTUFUSF9JTkxJTkVTIDEgLyogZm9yIGdsaWJjICovCnwgICAgICAgICAg ICAgICNlbmRpZgp8ICAgICAgICAgICAgICAjaW5jbHVkZSA8bWF0aC5oPgp8ICAgICAgICAgICAg ICBkb3VibGUgeDsKfCBpbnQKfCBtYWluICgpCnwgewp8IHggPSBmbG9vcih4KTsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE2NzEyOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVz dCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1h bmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxNjcxMjogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3Qg dW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJ T04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZp bmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxB Uk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50 CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAj ZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tF RCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZm5kZWYgX19OT19NQVRIX0lOTElORVMK fCAgICAgICAgICAgICMgZGVmaW5lIF9fTk9fTUFUSF9JTkxJTkVTIDEgLyogZm9yIGdsaWJjICov CnwgICAgICAgICAgICAjZW5kaWYKfCAgICAgICAgICAgICNpbmNsdWRlIDxtYXRoLmg+CnwgICAg ICAgICAgICBkb3VibGUgeDsKfCBpbnQKfCBtYWluICgpCnwgewp8IHggPSBjZWlsKHgpOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTY3MzU6IGdjYyAtc3RkPWdudTExIC1vIGNv bmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxNjczNTogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZm5kZWYgX19OT19NQVRI X0lOTElORVMKfCAgICAgICAgICAgICAgIyBkZWZpbmUgX19OT19NQVRIX0lOTElORVMgMSAvKiBm b3IgZ2xpYmMgKi8KfCAgICAgICAgICAgICAgI2VuZGlmCnwgICAgICAgICAgICAgICNpbmNsdWRl IDxtYXRoLmg+CnwgICAgICAgICAgICAgIGRvdWJsZSB4Owp8IGludAp8IG1haW4gKCkKfCB7Cnwg eCA9IGNlaWwoeCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNjc2NDogY2hl Y2tpbmcgd2hldGhlciBsc3RhdCBjb3JyZWN0bHkgaGFuZGxlcyB0cmFpbGluZyBzbGFzaApjb25m aWd1cmU6MTY4MDA6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0 LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjE2ODAwOiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRl ZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdHJ1Y3Qgc3RhdCBzYnVm Owp8ICAgICAgICAgICAgIGlmIChzeW1saW5rICgiY29uZnRlc3QuZmlsZSIsICJjb25mdGVzdC5z eW0iKSAhPSAwKQp8ICAgICAgICAgICAgICAgcmV0dXJuIDE7CnwgICAgICAgICAgICAgLyogTGlu dXggd2lsbCBkZXJlZmVyZW5jZSB0aGUgc3ltbGluayBhbmQgZmFpbCwgYXMgcmVxdWlyZWQgYnkK fCAgICAgICAgICAgICAgICBQT1NJWC4gIFRoYXQgaXMgYmV0dGVyIGluIHRoZSBzZW5zZSB0aGF0 IGl0IG1lYW5zIHdlIHdpbGwgbm90CnwgICAgICAgICAgICAgICAgaGF2ZSB0byBjb21waWxlIGFu ZCB1c2UgdGhlIGxzdGF0IHdyYXBwZXIuICAqLwp8ICAgICAgICAgICAgIHJldHVybiBsc3RhdCAo ImNvbmZ0ZXN0LnN5bS8iLCAmc2J1ZikgPT0gMDsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjE2ODEyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNjgyNTogY2hlY2tpbmcgd2hl dGhlciBtYWxsb2MsIHJlYWxsb2MsIGNhbGxvYyBhcmUgUE9TSVggY29tcGxpYW50CmNvbmZpZ3Vy ZToxNjg0NTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVy cm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmln dXJlOjE2ODQ1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lO T0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEK fCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4g MQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAj ZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCAjaWYgKGRlZmluZWQgX1dJTjMyIHx8IGRlZmluZWQgX19XSU4z Ml9fKSAmJiAhIGRlZmluZWQgX19DWUdXSU5fXwp8ICAgICAgICAgICAgICBjaG9rZSBtZQp8ICAg ICAgICAgICAgICAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE2 ODUzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNjg2MDogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oCmNv bmZpZ3VyZToxNjg2MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTY4NzA6IGNoZWNraW5nIGZvciBH TlUgbGliYyBjb21wYXRpYmxlIG1hbGxvYwpjb25maWd1cmU6MTY5MDY6IGdjYyAtc3RkPWdudTEx IC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE2OTA2OiAk PyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9n dWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWdu ZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEK fCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P QVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlk X3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8 ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2Rl ZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5l IFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZiBkZWZpbmVkIFNURENfSEVBREVSUyB8fCBkZWZp bmVkIEhBVkVfU1RETElCX0gKfCAgICAgICAgICAgICAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICAg ICAgICAgICAgICNlbHNlCnwgICAgICAgICAgICAgY2hhciAqbWFsbG9jICgpOwp8ICAgICAgICAg ICAgICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgY2hhciAqcCA9IG1hbGxvYyAoMCk7 CnwgICAgICAgICAgICAgaW50IHJlc3VsdCA9ICFwOwp8ICAgICAgICAgICAgIGZyZWUgKHApOwp8 ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CnwgCmNv bmZpZ3VyZToxNjkxNzogcmVzdWx0OiBubwpjb25maWd1cmU6MTY5MzI6IGNoZWNraW5nIGZvciB1 bnNpZ25lZCBsb25nIGxvbmcgaW50CmNvbmZpZ3VyZToxNjk3MTogZ2NjIC1zdGQ9Z251MTEgLW8g Y29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTY5NzE6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf TlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09O U1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8IAp8ICAgLyogRm9yIG5vdywgZG8gbm90IHRlc3QgdGhlIHByZXByb2Nlc3Nv cjsgYXMgb2YgMjAwNyB0aGVyZSBhcmUgdG9vIG1hbnkKfCAgICAgICAgICBpbXBsZW1lbnRhdGlv bnMgd2l0aCBicm9rZW4gcHJlcHJvY2Vzc29ycy4gIFBlcmhhcHMgdGhpcyBjYW4KfCAgICAgICAg ICBiZSByZXZpc2l0ZWQgaW4gMjAxMi4gIEluIHRoZSBtZWFudGltZSwgY29kZSBzaG91bGQgbm90 IGV4cGVjdAp8ICAgICAgICAgICNpZiB0byB3b3JrIHdpdGggbGl0ZXJhbHMgd2lkZXIgdGhhbiAz MiBiaXRzLiAgKi8KfCAgICAgICAvKiBUZXN0IGxpdGVyYWxzLiAgKi8KfCAgICAgICBsb25nIGxv bmcgaW50IGxsID0gOTIyMzM3MjAzNjg1NDc3NTgwN2xsOwp8ICAgICAgIGxvbmcgbG9uZyBpbnQg bmxsID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsKfCAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcg aW50IHVsbCA9IDE4NDQ2NzQ0MDczNzA5NTUxNjE1VUxMOwp8ICAgICAgIC8qIFRlc3QgY29uc3Rh bnQgZXhwcmVzc2lvbnMuICAgKi8KfCAgICAgICB0eXBlZGVmIGludCBhWygoLTkyMjMzNzIwMzY4 NTQ3NzU4MDdMTCA8IDAgJiYgMCA8IDkyMjMzNzIwMzY4NTQ3NzU4MDdsbCkKfCAgICAgICAgICAg ICAgICAgICAgICA/IDEgOiAtMSldOwp8ICAgICAgIHR5cGVkZWYgaW50IGJbKDE4NDQ2NzQ0MDcz NzA5NTUxNjE1VUxMIDw9ICh1bnNpZ25lZCBsb25nIGxvbmcgaW50KSAtMQp8ICAgICAgICAgICAg ICAgICAgICAgID8gMSA6IC0xKV07CnwgICAgICAgaW50IGkgPSA2MzsKfCBpbnQKfCBtYWluICgp Cnwgewp8IC8qIFRlc3QgYXZhaWxhYmlsaXR5IG9mIHJ1bnRpbWUgcm91dGluZXMgZm9yIHNoaWZ0 IGFuZCBkaXZpc2lvbi4gICovCnwgICAgICAgbG9uZyBsb25nIGludCBsbG1heCA9IDkyMjMzNzIw MzY4NTQ3NzU4MDdsbDsKfCAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVsbG1heCA9IDE4 NDQ2NzQ0MDczNzA5NTUxNjE1dWxsOwp8ICAgICAgIHJldHVybiAoKGxsIDw8IDYzKSB8IChsbCA+ PiA2MykgfCAobGwgPCBpKSB8IChsbCA+IGkpCnwgICAgICAgICAgICAgICB8IChsbG1heCAvIGxs KSB8IChsbG1heCAlIGxsKQp8ICAgICAgICAgICAgICAgfCAodWxsIDw8IDYzKSB8ICh1bGwgPj4g NjMpIHwgKHVsbCA8PCBpKSB8ICh1bGwgPj4gaSkKfCAgICAgICAgICAgICAgIHwgKHVsbG1heCAv IHVsbCkgfCAodWxsbWF4ICUgdWxsKSk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CnwgCmNvbmZp Z3VyZToxNjk4MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTY5OTA6IGNoZWNraW5nIGZvciBsb25n IGxvbmcgaW50CmNvbmZpZ3VyZToxNzA0MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTcwNjU6IGdj YyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxNzA2NTog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2Rl ZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBT VEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xM T1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5l IG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09O Vl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2lmbmRlZiBfX0FQUExFX0NDX18KfCAgICAgICAgICBub3QgYSB1 bml2ZXJzYWwgY2FwYWJsZSBjb21waWxlcgp8ICAgICAgICAgI2VuZGlmCnwgICAgICAgICB0eXBl ZGVmIGludCBkdW1teTsKfCAKY29uZmlndXJlOjE3MTAxOiBjaGVja2luZyBmb3IgcHJvbW90ZWQg bW9kZV90IHR5cGUKY29uZmlndXJlOjE3MTE4OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6MTcxMTg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8 ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8 ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5l IFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVz dHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19C SUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUg TUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCBpbnQKfCBtYWluICgpCnwgewp8IHR5cGVkZWYgaW50IGFycmF5WzIg KiAoc2l6ZW9mIChtb2RlX3QpIDwgc2l6ZW9mIChpbnQpKSAtIDFdOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTcxMjY6IHJlc3VsdDogbW9kZV90CmNvbmZpZ3VyZToxNzE2ODog Y2hlY2tpbmcgYWJzb2x1dGUgbmFtZSBvZiA8cG9sbC5oPgpjb25maWd1cmU6MTcyMTc6IHJlc3Vs dDogPHBvbGwuaD4KY29uZmlndXJlOjE3MjM4OiBjaGVja2luZyB3aGV0aGVyIHBvbGwgaXMgZGVj bGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxNzI1NTogZ2NjIC1zdGQ9Z251MTEgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBs aW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE3MjU1OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAt MQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBw aWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAw CnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAj ZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZp bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IG1vZGVfdAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8cG9sbC5oPgp8IGlu dAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHBvbGwKfCAgICh2b2lkKSBwb2xsOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTcyNjM6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3Mjc1 OiBjaGVja2luZyBmb3IgaW5saW5lCmNvbmZpZ3VyZToxNzI5MTogZ2NjIC1zdGQ9Z251MTEgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBs aW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE3MjkxOiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAt MQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBw aWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAw CnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAj ZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZp bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IG1vZGVfdAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwg dHlwZWRlZiBpbnQgZm9vX3Q7Cnwgc3RhdGljIGlubGluZSBmb29fdCBzdGF0aWNfZm9vICgpIHty ZXR1cm4gMDsgfQp8IGlubGluZSBmb29fdCBmb28gKCkge3JldHVybiAwOyB9CnwgI2VuZGlmCnwg CmNvbmZpZ3VyZToxNzI5MTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjE3MjkxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENf QUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1v ZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JP U19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8K fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExP R0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lT X05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgdHlwZWRlZiBpbnQgZm9vX3Q7Cnwg c3RhdGljIF9faW5saW5lX18gZm9vX3Qgc3RhdGljX2ZvbyAoKSB7cmV0dXJuIDA7IH0KfCBfX2lu bGluZV9fIGZvb190IGZvbyAoKSB7cmV0dXJuIDA7IH0KfCAjZW5kaWYKfCAKY29uZmlndXJlOjE3 MjkxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 MTcyOTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUg MQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNk ZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwg I2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZp bmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwg I2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCB0eXBlZGVmIGludCBmb29fdDsKfCBzdGF0aWMgX19pbmxp bmUgZm9vX3Qgc3RhdGljX2ZvbyAoKSB7cmV0dXJuIDA7IH0KfCBfX2lubGluZSBmb29fdCBmb28g KCkge3JldHVybiAwOyB9CnwgI2VuZGlmCnwgCmNvbmZpZ3VyZToxNzI5OTogcmVzdWx0OiBubwpj b25maWd1cmU6MTczMjU6IGNoZWNraW5nIGZvciB3aW5zb2NrMi5oCmNvbmZpZ3VyZToxNzMyNTog cmVzdWx0OiBubwpjb25maWd1cmU6MTczOTE6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5p bmcgc2V0c29ja29wdApjb25maWd1cmU6MTc0MTM6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0 IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE3NDEzOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1 bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElP TiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmlu ZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNk ZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9E RV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5k aWYKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgZXh0ZXJuCnwgI2lmZGVmIF9fY3BsdXNwbHVz CnwgIkMiCnwgI2VuZGlmCnwgY2hhciBzZXRzb2Nrb3B0KCk7CnwgaW50CnwgbWFpbiAoKQp8IHsK fCBzZXRzb2Nrb3B0KCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNzQzMzog Z2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgLWxzb2NrZXQg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MTc0MzM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUg bW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFD Uk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoq Lwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBf SVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBf X2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCBleHRlcm4KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAiQyIKfCAjZW5kaWYKfCBjaGFy IHNldHNvY2tvcHQoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHNldHNvY2tvcHQoKTsKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3NDU1OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25m dGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICAtbG5ldHdvcmsgPiY1CmNjMTogZXJyb3I6IHVucmVj b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTc0NTU6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ T1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf UE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBf VEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNk ZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUg U1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmlu ZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9M TE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmlu ZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNM X0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNP TlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmlu ZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUg aW5saW5lIAp8ICNlbmRpZgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCBleHRlcm4KfCAjaWZk ZWYgX19jcGx1c3BsdXMKfCAiQyIKfCAjZW5kaWYKfCBjaGFyIHNldHNvY2tvcHQoKTsKfCBpbnQK fCBtYWluICgpCnwgewp8IHNldHNvY2tvcHQoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjE3NDc3OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVz dC5jICAtbG5ldCA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRp b24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxNzQ3NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxl IDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8i CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50 CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVm aW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUg MAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50 CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZp bmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSBy ZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRT X0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QK fCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IGV4dGVybgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICJDIgp8ICNl bmRpZgp8IGNoYXIgc2V0c29ja29wdCgpOwp8IGludAp8IG1haW4gKCkKfCB7Cnwgc2V0c29ja29w dCgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTc0OTQ6IHJlc3VsdDogbm9u ZSBuZWVkZWQKY29uZmlndXJlOjE3NTE3OiBjaGVja2luZyBmb3IgbWJzdGF0ZV90CmNvbmZpZ3Vy ZToxNzU0MTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVy cm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmln dXJlOjE3NTQxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lO T0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEK fCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4g MQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAj ZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwg MAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMK fCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5 cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUg PHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9T VERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQg SEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1 ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVk ZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1 ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1 ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRl IDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAvKiBUcnU2NCB3aXRoIERlc2t0b3AgVG9vbGtpdCBDIGhh cyBhIGJ1ZzogPHN0ZGlvLmg+IG11c3QgYmUgaW5jbHVkZWQgYmVmb3JlCnwgICAgPHdjaGFyLmg+ Lgp8ICAgIEJTRC9PUyA0LjAuMSBoYXMgYSBidWc6IDxzdGRkZWYuaD4sIDxzdGRpby5oPiBhbmQg PHRpbWUuaD4gbXVzdCBiZQp8ICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICNp bmNsdWRlIDxzdGRkZWYuaD4KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaW5jbHVkZSA8dGltZS5o Pgp8ICNpbmNsdWRlIDx3Y2hhci5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgbWJzdGF0ZV90IHg7 IHJldHVybiBzaXplb2YgeDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3NTQ4 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzY2ODogY2hlY2tpbmcgZm9yIHNzaXplX3QKY29uZmln dXJlOjE3Njg1OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTog ZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25m aWd1cmU6MTc2ODU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRf SU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0Eg MQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tF TiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8 ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVM TCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1 cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgaW50CnwgbWFp biAoKQp8IHsKfCBpbnQgeCA9IHNpemVvZiAoc3NpemVfdCAqKSArIHNpemVvZiAoc3NpemVfdCk7 CnwgICAgICAgICAgICAgcmV0dXJuICF4Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MTc2OTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3NzEyOiBjaGVja2luZyB3aGV0aGVyIDxz eXMvc2VsZWN0Lmg+IGlzIHNlbGYtY29udGFpbmVkCmNvbmZpZ3VyZToxNzcyOTogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE3NzI5OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9U RURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAK fCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50Cnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+CnwgaW50Cnwg bWFpbiAoKQp8IHsKfCBzdHJ1Y3QgdGltZXZhbCBiOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MTc3OTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3ODA1OiBjaGVja2luZyBhYnNv bHV0ZSBuYW1lIG9mIDxzeXMvc2VsZWN0Lmg+CmNvbmZpZ3VyZToxNzg1NDogcmVzdWx0OiA8c3lz L3NlbGVjdC5oPgpjb25maWd1cmU6MTc4ODQ6IGNoZWNraW5nIGZvciB3aW5zb2NrMi5oCmNvbmZp Z3VyZToxNzg4NDogcmVzdWx0OiBubwpjb25maWd1cmU6MTc5MDg6IGNoZWNraW5nIHdoZXRoZXIg cHNlbGVjdCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjE3OTMyOiBnY2Mg LXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2du aXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTc5MzI6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZp bmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RB Q0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9X IDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFW RV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBu bGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZf Q09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5s aW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBp bnQKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogU29tZSBzeXN0ZW1zIHJlcXVpcmUg cHJlcmVxdWlzaXRlIGhlYWRlcnMuICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaWYg IShkZWZpbmVkIF9fR0xJQkNfXyAmJiAhZGVmaW5lZCBfX1VDTElCQ19fKSAmJiBIQVZFX1NZU19U SU1FX0gKfCAjIGluY2x1ZGUgPHN5cy90aW1lLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPHN5cy9z ZWxlY3QuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBwc2VsZWN0CnwgICAodm9p ZCkgcHNlbGVjdDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE3OTQwOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToxNzkwODogY2hlY2tpbmcgd2hldGhlciBzZWxlY3QgaXMgZGVjbGFy ZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxNzkzMjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5l IG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE3OTMyOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25l ZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9B VElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRf dCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwg I2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVm aW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUg V09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1v ZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAj ZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8IAp8IC8qIFNvbWUgc3lzdGVtcyByZXF1aXJlIHByZXJlcXVpc2l0ZSBoZWFk ZXJzLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2lmICEoZGVmaW5lZCBfX0dMSUJD X18gJiYgIWRlZmluZWQgX19VQ0xJQkNfXykgJiYgSEFWRV9TWVNfVElNRV9ICnwgIyBpbmNsdWRl IDxzeXMvdGltZS5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+CnwgCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgc2VsZWN0CnwgICAodm9pZCkgc2VsZWN0Owp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTc5NDA6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3 OTUyOiBjaGVja2luZyB3aGV0aGVyIHNldGVudiBpcyBkZWNsYXJlZApjb25maWd1cmU6MTc5NTI6 IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5y ZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxNzk1 MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwg I2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmlu ZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9G T0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVm aW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJ Q09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVm aW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmlu ZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6 ZV90IGludAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAj aWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1 ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwg IyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAg aW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRp Zgp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBzZXRlbnYKfCAjaWZkZWYgX19jcGx1c3Bs dXMKfCAgICh2b2lkKSBzZXRlbnY7CnwgI2Vsc2UKfCAgICh2b2lkKSBzZXRlbnY7CnwgI2VuZGlm CnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNzk1MjogcmVz dWx0OiBubwpjb25maWd1cmU6MTc5Nzg6IGNoZWNraW5nIHNlYXJjaC5oIHVzYWJpbGl0eQpjb25m aWd1cmU6MTc5Nzg6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToxNzk3ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAw CnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05O VUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNw bHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50Cnwg I2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19U WVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T WVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERD X0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cnwg I2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAj IGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNU RENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnku aD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPHNl YXJjaC5oPgpjb25maWd1cmU6MTc5Nzg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE3OTc4OiBjaGVj a2luZyBzZWFyY2guaCBwcmVzZW5jZQpjb25maWd1cmU6MTc5Nzg6IC9saWIvY3BwICBjb25mdGVz dC5jCmNvbmZpZ3VyZToxNzk3ODogJD8gPSAwCmNvbmZpZ3VyZToxNzk3ODogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjE3OTc4OiBXQVJOSU5HOiBzZWFyY2guaDogcHJlc2VudCBidXQgY2Fubm90IGJl IGNvbXBpbGVkCmNvbmZpZ3VyZToxNzk3ODogV0FSTklORzogc2VhcmNoLmg6ICAgICBjaGVjayBm b3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8KY29uZmlndXJlOjE3OTc4OiBXQVJOSU5H OiBzZWFyY2guaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uCmNvbmZpZ3VyZToxNzk3 ODogV0FSTklORzogc2VhcmNoLmg6ICAgICBzZWN0aW9uICJQcmVzZW50IEJ1dCBDYW5ub3QgQmUg Q29tcGlsZWQiCmNvbmZpZ3VyZToxNzk3ODogV0FSTklORzogc2VhcmNoLmg6IHByb2NlZWRpbmcg d2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQKY29uZmlndXJlOjE3OTc4OiBjaGVja2luZyBmb3Ig c2VhcmNoLmgKY29uZmlndXJlOjE3OTc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNzk5MDogY2hl Y2tpbmcgZm9yIHRzZWFyY2gKY29uZmlndXJlOjE3OTkwOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25m dGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxNzk5MDogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n dWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXpl X3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJF Q1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNk ZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf QUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3Qg aW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9Q IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAK fCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVE X01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwg I2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERl ZmluZSB0c2VhcmNoIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4g ZGVjbGFyZXMgdHNlYXJjaC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4g ZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHRzZWFyY2ggaW5ub2N1b3VzX3Rz ZWFyY2gKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBo b3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNo YXIgdHNlYXJjaCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQu aD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMg ZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18K fCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAj ZW5kaWYKfCAKfCAjdW5kZWYgdHNlYXJjaAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJu YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVm IF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgdHNlYXJjaCAoKTsKfCAv KiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBp bXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlv bnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFu ZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl90 c2VhcmNoIHx8IGRlZmluZWQgX19zdHViX19fdHNlYXJjaAp8IGNob2tlIG1lCnwgI2VuZGlmCnwg CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gdHNlYXJjaCAoKTsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjE3OTkwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxODAyMjogY2hl Y2tpbmcgZm9yIHNpZ3NldF90CmNvbmZpZ3VyZToxODAyMjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5l IG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE4MDIyOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25l ZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9B VElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRf dCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwg I2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVm aW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUg V09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1v ZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAj ZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfU0VURU5WIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAgICAgI2luY2x1 ZGUgPHNpZ25hbC5oPgp8ICAgICAgIC8qIE1pbmd3IGRlZmluZXMgc2lnc2V0X3Qgbm90IGluIDxz aWduYWwuaD4sIGJ1dCBpbiA8c3lzL3R5cGVzLmg+LiAgKi8KfCAgICAgICAjaW5jbHVkZSA8c3lz L3R5cGVzLmg+CnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBpZiAoc2l6ZW9mIChzaWdzZXRf dCkpCnwgCSByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE4MDIy OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxODA0MzogY2hlY2tpbmcgZm9yIHVpZF90IGluIHN5cy90 eXBlcy5oCmNvbmZpZ3VyZToxODA2MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE4MDczOiBjaGVj a2luZyBmb3Igc3RkYm9vbC5oIHRoYXQgY29uZm9ybXMgdG8gQzk5CmNvbmZpZ3VyZToxODE0ODog Z2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE4MTQ4 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAj ZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5l IFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZP TExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZp bmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVD TF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElD T05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZp bmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5l IGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXpl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgCnwgICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRib29sLmg+CnwgCnwgICAgICAgICAg ICAgICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgICAgICAgICAgICAgdHlwZWRlZiBib29sIEJvb2w7 CnwgICAgICAgICAgICAgICNlbHNlCnwgICAgICAgICAgICAgICB0eXBlZGVmIF9Cb29sIEJvb2w7 CnwgICAgICAgICAgICAgICAjaWZuZGVmIGJvb2wKfCAgICAgICAgICAgICAgICAiZXJyb3I6IGJv b2wgaXMgbm90IGRlZmluZWQiCnwgICAgICAgICAgICAgICAjZW5kaWYKfCAgICAgICAgICAgICAg ICNpZm5kZWYgZmFsc2UKfCAgICAgICAgICAgICAgICAiZXJyb3I6IGZhbHNlIGlzIG5vdCBkZWZp bmVkIgp8ICAgICAgICAgICAgICAgI2VuZGlmCnwgICAgICAgICAgICAgICAjaWYgZmFsc2UKfCAg ICAgICAgICAgICAgICAiZXJyb3I6IGZhbHNlIGlzIG5vdCAwIgp8ICAgICAgICAgICAgICAgI2Vu ZGlmCnwgICAgICAgICAgICAgICAjaWZuZGVmIHRydWUKfCAgICAgICAgICAgICAgICAiZXJyb3I6 IHRydWUgaXMgbm90IGRlZmluZWQiCnwgICAgICAgICAgICAgICAjZW5kaWYKfCAgICAgICAgICAg ICAgICNpZiB0cnVlICE9IDEKfCAgICAgICAgICAgICAgICAiZXJyb3I6IHRydWUgaXMgbm90IDEi CnwgICAgICAgICAgICAgICAjZW5kaWYKfCAgICAgICAgICAgICAgI2VuZGlmCnwgCnwgICAgICAg ICAgICAgICNpZm5kZWYgX19ib29sX3RydWVfZmFsc2VfYXJlX2RlZmluZWQKfCAgICAgICAgICAg ICAgICJlcnJvcjogX19ib29sX3RydWVfZmFsc2VfYXJlX2RlZmluZWQgaXMgbm90IGRlZmluZWQi CnwgICAgICAgICAgICAgICNlbmRpZgp8IAp8ICAgICAgICAgICAgICBzdHJ1Y3QgcyB7IEJvb2wg czogMTsgQm9vbCB0OyBib29sIHU6IDE7IGJvb2wgdjsgfSBzOwp8IAp8ICAgICAgICAgICAgICBj aGFyIGFbdHJ1ZSA9PSAxID8gMSA6IC0xXTsKfCAgICAgICAgICAgICAgY2hhciBiW2ZhbHNlID09 IDAgPyAxIDogLTFdOwp8ICAgICAgICAgICAgICBjaGFyIGNbX19ib29sX3RydWVfZmFsc2VfYXJl X2RlZmluZWQgPT0gMSA/IDEgOiAtMV07CnwgICAgICAgICAgICAgIGNoYXIgZFsoYm9vbCkgMC41 ID09IHRydWUgPyAxIDogLTFdOwp8ICAgICAgICAgICAgICAvKiBTZWUgYm9keSBvZiBtYWluIHBy b2dyYW0gZm9yICdlJy4gICovCnwgICAgICAgICAgICAgIGNoYXIgZlsoQm9vbCkgMC4wID09IGZh bHNlID8gMSA6IC0xXTsKfCAgICAgICAgICAgICAgY2hhciBnW3RydWVdOwp8ICAgICAgICAgICAg ICBjaGFyIGhbc2l6ZW9mIChCb29sKV07CnwgICAgICAgICAgICAgIGNoYXIgaVtzaXplb2Ygcy50 XTsKfCAgICAgICAgICAgICAgZW51bSB7IGogPSBmYWxzZSwgayA9IHRydWUsIGwgPSBmYWxzZSAq IHRydWUsIG0gPSB0cnVlICogMjU2IH07CnwgICAgICAgICAgICAgIC8qIFRoZSBmb2xsb3dpbmcg ZmFpbHMgZm9yCnwgICAgICAgICAgICAgICAgIEhQIGFDKysvQU5TSSBDIEIzOTEwQiBBLjA1LjU1 IFtEZWMgMDQgMjAwM10uICovCnwgICAgICAgICAgICAgIEJvb2wgblttXTsKfCAgICAgICAgICAg ICAgY2hhciBvW3NpemVvZiBuID09IG0gKiBzaXplb2YgblswXSA/IDEgOiAtMV07CnwgICAgICAg ICAgICAgIGNoYXIgcFstMSAtIChCb29sKSAwIDwgMCAmJiAtMSAtIChib29sKSAwIDwgMCA/IDEg OiAtMV07CnwgICAgICAgICAgICAgIC8qIENhdGNoIGEgYnVnIGluIGFuIEhQLVVYIEMgY29tcGls ZXIuICBTZWUKfCAgICAgICAgICAgICAgICAgaHR0cDovL2djYy5nbnUub3JnL21sL2djYy1wYXRj aGVzLzIwMDMtMTIvbXNnMDIzMDMuaHRtbAp8ICAgICAgICAgICAgICAgICBodHRwOi8vbGlzdHMu Z251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWNvcmV1dGlscy8yMDA1LTExL21zZzAwMTYxLmh0bWwK fCAgICAgICAgICAgICAgICovCnwgICAgICAgICAgICAgIEJvb2wgcSA9IHRydWU7CnwgICAgICAg ICAgICAgIEJvb2wgKnBxID0gJnE7CnwgICAgICAgICAgICAgIGJvb2wgKnFxID0gJnE7CnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgICAgICAgICAgICAgYm9vbCBlID0gJnM7CnwgICAgICAg ICAgICAgICpwcSB8PSBxOyAqcHEgfD0gISBxOwp8ICAgICAgICAgICAgICAqcXEgfD0gcTsgKnFx IHw9ICEgcTsKfCAgICAgICAgICAgICAgLyogUmVmZXIgdG8gZXZlcnkgZGVjbGFyZWQgdmFsdWUs IHRvIGF2b2lkIGNvbXBpbGVyIG9wdGltaXphdGlvbnMuICAqLwp8ICAgICAgICAgICAgICByZXR1 cm4gKCFhICsgIWIgKyAhYyArICFkICsgIWUgKyAhZiArICFnICsgIWggKyAhaSArICEhaiArICFr ICsgISFsCnwgICAgICAgICAgICAgICAgICAgICAgKyAhbSArICFuICsgIW8gKyAhcCArICFxICsg IXBxICsgIXFxKTsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE4MTU1OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToxODE1NzogY2hlY2tpbmcgZm9yIF9Cb29sCmNvbmZpZ3VyZTox ODE1NzogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjE4MTU3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAj ZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8 ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVm aW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAj ZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5l IHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8 IGlmIChzaXplb2YgKF9Cb29sKSkKfCAJIHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6MTgxNTc6IHJlc3VsdDogbm8KY29uZmlndXJlOjE4MTY5OiBjaGVja2luZyBm b3Igd2ludF90CmNvbmZpZ3VyZToxODE5NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25m dGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAi LXN0ZD1nbnUxMSIKY29uZmlndXJlOjE4MTk0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg R3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAj ZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUg SEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAj ZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBT VEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3Ry aWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklH RU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1B TExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNp Zm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1i c3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VU RU5WIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogVHJ1NjQgd2l0aCBEZXNrdG9w IFRvb2xraXQgQyBoYXMgYSBidWc6IDxzdGRpby5oPiBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZQp8 ICAgIDx3Y2hhci5oPi4KfCAgICBCU0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8 c3RkaW8uaD4gYW5kIDx0aW1lLmg+IG11c3QgYmUgaW5jbHVkZWQKfCAgICBiZWZvcmUgPHdjaGFy Lmg+LiAgKi8KfCAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lu Y2x1ZGUgPHRpbWUuaD4KfCAjaW5jbHVkZSA8d2NoYXIuaD4KfCAgICAgICAgICAgICB3aW50X3Qg Zm9vID0gKHdjaGFyX3QpJ1wwJzsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MTgyMDE6IHJlc3VsdDogbm8KY29uZmlndXJlOjE4MzEzOiBj aGVja2luZyBhYnNvbHV0ZSBuYW1lIG9mIDxzdGRpbnQuaD4KY29uZmlndXJlOjE4MzYyOiByZXN1 bHQ6IDxzdGRpbnQuaD4KY29uZmlndXJlOjE4NzczOiBjaGVja2luZyBzeXMvaW50dHlwZXMuaCB1 c2FiaWxpdHkKY29uZmlndXJlOjE4NzczOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICIt c3RkPWdudTExIgpjb25maWd1cmU6MTg3NzM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBH dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIu NCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNk ZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmlu ZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNk ZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBI QVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNk ZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNU QVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJp Y3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdF TkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFM TE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lm bmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJz dGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRF TlYgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 ICNpbmNsdWRlIDxzeXMvaW50dHlwZXMuaD4KY29uZmlndXJlOjE4NzczOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToxODc3MzogY2hlY2tpbmcgc3lzL2ludHR5cGVzLmggcHJlc2VuY2UKY29uZmlndXJl OjE4NzczOiAvbGliL2NwcCAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjQ3OjI2OiBlcnJvcjogc3lz L2ludHR5cGVzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjE4NzczOiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05W X0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUg UFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlu bGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN5cy9pbnR0eXBlcy5oPgpjb25maWd1cmU6MTg3NzM6IHJlc3VsdDogbm8K Y29uZmlndXJlOjE4NzczOiBjaGVja2luZyBmb3Igc3lzL2ludHR5cGVzLmgKY29uZmlndXJlOjE4 NzczOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxODc3MzogY2hlY2tpbmcgc3lzL2JpdHlwZXMuaCB1 c2FiaWxpdHkKY29uZmlndXJlOjE4NzczOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICIt c3RkPWdudTExIgpjb25maWd1cmU6MTg3NzM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBH dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIu NCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNk ZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmlu ZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNk ZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBI QVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNk ZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNU QVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJp Y3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdF TkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFM TE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lm bmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJz dGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRF TlYgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 ICNpbmNsdWRlIDxzeXMvYml0eXBlcy5oPgpjb25maWd1cmU6MTg3NzM6IHJlc3VsdDogbm8KY29u ZmlndXJlOjE4NzczOiBjaGVja2luZyBzeXMvYml0eXBlcy5oIHByZXNlbmNlCmNvbmZpZ3VyZTox ODc3MzogL2xpYi9jcHAgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE4NzczOiAkPyA9IDAKY29uZmln dXJlOjE4NzczOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTg3NzM6IFdBUk5JTkc6IHN5cy9iaXR5 cGVzLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZApjb25maWd1cmU6MTg3NzM6IFdB Uk5JTkc6IHN5cy9iaXR5cGVzLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUg aGVhZGVycz8KY29uZmlndXJlOjE4NzczOiBXQVJOSU5HOiBzeXMvYml0eXBlcy5oOiBzZWUgdGhl IEF1dG9jb25mIGRvY3VtZW50YXRpb24KY29uZmlndXJlOjE4NzczOiBXQVJOSU5HOiBzeXMvYml0 eXBlcy5oOiAgICAgc2VjdGlvbiAiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkIgpjb25m aWd1cmU6MTg3NzM6IFdBUk5JTkc6IHN5cy9iaXR5cGVzLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUg Y29tcGlsZXIncyByZXN1bHQKY29uZmlndXJlOjE4NzczOiBjaGVja2luZyBmb3Igc3lzL2JpdHlw ZXMuaApjb25maWd1cmU6MTg3NzM6IHJlc3VsdDogbm8KY29uZmlndXJlOjE4Nzk1OiBjaGVja2lu ZyBmb3IgYml0IHNpemUgb2YgcHRyZGlmZl90CmNvbmZpZ3VyZToxODgwMDogZ2NjIC1zdGQ9Z251 MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVj b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTg4MDA6 ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAt MQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBw aWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAw CnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAj ZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZp bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYK fCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfU0VURU5WIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAvKiBCU0Qv T1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1lLmg+IG11 c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2luY2x1ZGUg PHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NIQVJfSAp8 ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAjIGluY2x1 ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bGltaXRzLmg+Cnwgc3RhdGlj IGxvbmcgaW50IGxvbmd2YWwgKCkgeyByZXR1cm4gc2l6ZW9mIChwdHJkaWZmX3QpICogQ0hBUl9C SVQ7IH0KfCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpbnQgdWxvbmd2YWwgKCkgeyByZXR1cm4gc2l6 ZW9mIChwdHJkaWZmX3QpICogQ0hBUl9CSVQ7IH0KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaW5j bHVkZSA8c3RkbGliLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIEZJTEUgKmYgPSBmb3Bl biAoImNvbmZ0ZXN0LnZhbCIsICJ3Iik7CnwgICBpZiAoISBmKQp8ICAgICByZXR1cm4gMTsKfCAg IGlmICgoc2l6ZW9mIChwdHJkaWZmX3QpICogQ0hBUl9CSVQpIDwgMCkKfCAgICAgewp8ICAgICAg IGxvbmcgaW50IGkgPSBsb25ndmFsICgpOwp8ICAgICAgIGlmIChpICE9IChzaXplb2YgKHB0cmRp ZmZfdCkgKiBDSEFSX0JJVCkpCnwgCXJldHVybiAxOwp8ICAgICAgIGZwcmludGYgKGYsICIlbGQi LCBpKTsKfCAgICAgfQp8ICAgZWxzZQp8ICAgICB7CnwgICAgICAgdW5zaWduZWQgbG9uZyBpbnQg aSA9IHVsb25ndmFsICgpOwp8ICAgICAgIGlmIChpICE9IChzaXplb2YgKHB0cmRpZmZfdCkgKiBD SEFSX0JJVCkpCnwgCXJldHVybiAxOwp8ICAgICAgIGZwcmludGYgKGYsICIlbHUiLCBpKTsKfCAg ICAgfQp8ICAgLyogRG8gbm90IG91dHB1dCBhIHRyYWlsaW5nIG5ld2xpbmUsIGFzIHRoaXMgY2F1 c2VzIFxyXG4gY29uZnVzaW9uCnwgICAgICBvbiBzb21lIHBsYXRmb3Jtcy4gICovCnwgICByZXR1 cm4gZmVycm9yIChmKSB8fCBmY2xvc2UgKGYpICE9IDA7CnwgCnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToxODgyMTogcmVzdWx0OiB1bmtub3duCmNvbmZpZ3VyZToxODc5NTogY2hl Y2tpbmcgZm9yIGJpdCBzaXplIG9mIHNpemVfdApjb25maWd1cmU6MTg4MDA6IGdjYyAtc3RkPWdu dTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE4ODAw OiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5z aWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04g LTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUg cGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0g MAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50Cnwg I2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVm aW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVf VCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlm CnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAvKiBCU0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3Rk ZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1lLmg+IG11c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJl Zm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUg PHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NIQVJfSAp8ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8 ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAjIGluY2x1ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYK fCAKfCAjaW5jbHVkZSA8bGltaXRzLmg+Cnwgc3RhdGljIGxvbmcgaW50IGxvbmd2YWwgKCkgeyBy ZXR1cm4gc2l6ZW9mIChzaXplX3QpICogQ0hBUl9CSVQ7IH0KfCBzdGF0aWMgdW5zaWduZWQgbG9u ZyBpbnQgdWxvbmd2YWwgKCkgeyByZXR1cm4gc2l6ZW9mIChzaXplX3QpICogQ0hBUl9CSVQ7IH0K fCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgaW50CnwgbWFpbiAo KQp8IHsKfCAKfCAgIEZJTEUgKmYgPSBmb3BlbiAoImNvbmZ0ZXN0LnZhbCIsICJ3Iik7CnwgICBp ZiAoISBmKQp8ICAgICByZXR1cm4gMTsKfCAgIGlmICgoc2l6ZW9mIChzaXplX3QpICogQ0hBUl9C SVQpIDwgMCkKfCAgICAgewp8ICAgICAgIGxvbmcgaW50IGkgPSBsb25ndmFsICgpOwp8ICAgICAg IGlmIChpICE9IChzaXplb2YgKHNpemVfdCkgKiBDSEFSX0JJVCkpCnwgCXJldHVybiAxOwp8ICAg ICAgIGZwcmludGYgKGYsICIlbGQiLCBpKTsKfCAgICAgfQp8ICAgZWxzZQp8ICAgICB7CnwgICAg ICAgdW5zaWduZWQgbG9uZyBpbnQgaSA9IHVsb25ndmFsICgpOwp8ICAgICAgIGlmIChpICE9IChz aXplb2YgKHNpemVfdCkgKiBDSEFSX0JJVCkpCnwgCXJldHVybiAxOwp8ICAgICAgIGZwcmludGYg KGYsICIlbHUiLCBpKTsKfCAgICAgfQp8ICAgLyogRG8gbm90IG91dHB1dCBhIHRyYWlsaW5nIG5l d2xpbmUsIGFzIHRoaXMgY2F1c2VzIFxyXG4gY29uZnVzaW9uCnwgICAgICBvbiBzb21lIHBsYXRm b3Jtcy4gICovCnwgICByZXR1cm4gZmVycm9yIChmKSB8fCBmY2xvc2UgKGYpICE9IDA7CnwgCnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxODgyMTogcmVzdWx0OiB1bmtub3duCmNv bmZpZ3VyZToxODg0MDogY2hlY2tpbmcgZm9yIGJpdCBzaXplIG9mIHNpZ19hdG9taWNfdApjb25m aWd1cmU6MTg4NDU6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0 LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjE4ODQ1OiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRl ZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwg I2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmlu ZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAKfCAgIC8qIEJTRC9PUyA0LjAuMSBoYXMgYSBidWc6IDxzdGRkZWYu aD4sIDxzdGRpby5oPiBhbmQgPHRpbWUuaD4gbXVzdCBiZQp8ICAgICAgaW5jbHVkZWQgYmVmb3Jl IDx3Y2hhci5oPi4gICovCnwgICAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgICAjaW5jbHVkZSA8c2ln bmFsLmg+CnwgICAjaWYgSEFWRV9XQ0hBUl9ICnwgICAjIGluY2x1ZGUgPHN0ZGlvLmg+CnwgICAj IGluY2x1ZGUgPHRpbWUuaD4KfCAgICMgaW5jbHVkZSA8d2NoYXIuaD4KfCAgICNlbmRpZgp8IAp8 ICNpbmNsdWRlIDxsaW1pdHMuaD4KfCBzdGF0aWMgbG9uZyBpbnQgbG9uZ3ZhbCAoKSB7IHJldHVy biBzaXplb2YgKHNpZ19hdG9taWNfdCkgKiBDSEFSX0JJVDsgfQp8IHN0YXRpYyB1bnNpZ25lZCBs b25nIGludCB1bG9uZ3ZhbCAoKSB7IHJldHVybiBzaXplb2YgKHNpZ19hdG9taWNfdCkgKiBDSEFS X0JJVDsgfQp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCBpbnQK fCBtYWluICgpCnwgewp8IAp8ICAgRklMRSAqZiA9IGZvcGVuICgiY29uZnRlc3QudmFsIiwgInci KTsKfCAgIGlmICghIGYpCnwgICAgIHJldHVybiAxOwp8ICAgaWYgKChzaXplb2YgKHNpZ19hdG9t aWNfdCkgKiBDSEFSX0JJVCkgPCAwKQp8ICAgICB7CnwgICAgICAgbG9uZyBpbnQgaSA9IGxvbmd2 YWwgKCk7CnwgICAgICAgaWYgKGkgIT0gKHNpemVvZiAoc2lnX2F0b21pY190KSAqIENIQVJfQklU KSkKfCAJcmV0dXJuIDE7CnwgICAgICAgZnByaW50ZiAoZiwgIiVsZCIsIGkpOwp8ICAgICB9Cnwg ICBlbHNlCnwgICAgIHsKfCAgICAgICB1bnNpZ25lZCBsb25nIGludCBpID0gdWxvbmd2YWwgKCk7 CnwgICAgICAgaWYgKGkgIT0gKHNpemVvZiAoc2lnX2F0b21pY190KSAqIENIQVJfQklUKSkKfCAJ cmV0dXJuIDE7CnwgICAgICAgZnByaW50ZiAoZiwgIiVsdSIsIGkpOwp8ICAgICB9CnwgICAvKiBE byBub3Qgb3V0cHV0IGEgdHJhaWxpbmcgbmV3bGluZSwgYXMgdGhpcyBjYXVzZXMgXHJcbiBjb25m dXNpb24KfCAgICAgIG9uIHNvbWUgcGxhdGZvcm1zLiAgKi8KfCAgIHJldHVybiBmZXJyb3IgKGYp IHx8IGZjbG9zZSAoZikgIT0gMDsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjE4ODY2OiByZXN1bHQ6IHVua25vd24KY29uZmlndXJlOjE4ODQwOiBjaGVja2luZyBmb3IgYml0 IHNpemUgb2Ygd2NoYXJfdApjb25maWd1cmU6MTg4NDU6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0 ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE4ODQ1OiAkPyA9IDEKY29u ZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50Cnwg I2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5l IEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50Cnwg I2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUg U1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0 cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJ R0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBN QUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAj aWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBt YnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NF VEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1ZzogPHN0ZGRlZi5o PiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRlZCBiZWZvcmUg PHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNsdWRlIDxzaWdu YWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8uaD4KfCAgICMg aW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2VuZGlmCnwgCnwg I2luY2x1ZGUgPGxpbWl0cy5oPgp8IHN0YXRpYyBsb25nIGludCBsb25ndmFsICgpIHsgcmV0dXJu IHNpemVvZiAod2NoYXJfdCkgKiBDSEFSX0JJVDsgfQp8IHN0YXRpYyB1bnNpZ25lZCBsb25nIGlu dCB1bG9uZ3ZhbCAoKSB7IHJldHVybiBzaXplb2YgKHdjaGFyX3QpICogQ0hBUl9CSVQ7IH0KfCAj aW5jbHVkZSA8c3RkaW8uaD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgaW50CnwgbWFpbiAoKQp8 IHsKfCAKfCAgIEZJTEUgKmYgPSBmb3BlbiAoImNvbmZ0ZXN0LnZhbCIsICJ3Iik7CnwgICBpZiAo ISBmKQp8ICAgICByZXR1cm4gMTsKfCAgIGlmICgoc2l6ZW9mICh3Y2hhcl90KSAqIENIQVJfQklU KSA8IDApCnwgICAgIHsKfCAgICAgICBsb25nIGludCBpID0gbG9uZ3ZhbCAoKTsKfCAgICAgICBp ZiAoaSAhPSAoc2l6ZW9mICh3Y2hhcl90KSAqIENIQVJfQklUKSkKfCAJcmV0dXJuIDE7CnwgICAg ICAgZnByaW50ZiAoZiwgIiVsZCIsIGkpOwp8ICAgICB9CnwgICBlbHNlCnwgICAgIHsKfCAgICAg ICB1bnNpZ25lZCBsb25nIGludCBpID0gdWxvbmd2YWwgKCk7CnwgICAgICAgaWYgKGkgIT0gKHNp emVvZiAod2NoYXJfdCkgKiBDSEFSX0JJVCkpCnwgCXJldHVybiAxOwp8ICAgICAgIGZwcmludGYg KGYsICIlbHUiLCBpKTsKfCAgICAgfQp8ICAgLyogRG8gbm90IG91dHB1dCBhIHRyYWlsaW5nIG5l d2xpbmUsIGFzIHRoaXMgY2F1c2VzIFxyXG4gY29uZnVzaW9uCnwgICAgICBvbiBzb21lIHBsYXRm b3Jtcy4gICovCnwgICByZXR1cm4gZmVycm9yIChmKSB8fCBmY2xvc2UgKGYpICE9IDA7CnwgCnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxODg2NjogcmVzdWx0OiB1bmtub3duCmNv bmZpZ3VyZToxODg0MDogY2hlY2tpbmcgZm9yIGJpdCBzaXplIG9mIHdpbnRfdApjb25maWd1cmU6 MTg4NDU6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjE4ODQ1OiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRo IHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwg I2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmlu ZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9G T0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVm aW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJ Q09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVm aW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmlu ZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6 ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf UFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1ZzogPHN0ZGRl Zi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRlZCBiZWZv cmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNsdWRlIDxz aWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8uaD4KfCAg ICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2VuZGlmCnwg CnwgI2luY2x1ZGUgPGxpbWl0cy5oPgp8IHN0YXRpYyBsb25nIGludCBsb25ndmFsICgpIHsgcmV0 dXJuIHNpemVvZiAod2ludF90KSAqIENIQVJfQklUOyB9Cnwgc3RhdGljIHVuc2lnbmVkIGxvbmcg aW50IHVsb25ndmFsICgpIHsgcmV0dXJuIHNpemVvZiAod2ludF90KSAqIENIQVJfQklUOyB9Cnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2luY2x1ZGUgPHN0ZGxpYi5oPgp8IGludAp8IG1haW4gKCkK fCB7CnwgCnwgICBGSUxFICpmID0gZm9wZW4gKCJjb25mdGVzdC52YWwiLCAidyIpOwp8ICAgaWYg KCEgZikKfCAgICAgcmV0dXJuIDE7CnwgICBpZiAoKHNpemVvZiAod2ludF90KSAqIENIQVJfQklU KSA8IDApCnwgICAgIHsKfCAgICAgICBsb25nIGludCBpID0gbG9uZ3ZhbCAoKTsKfCAgICAgICBp ZiAoaSAhPSAoc2l6ZW9mICh3aW50X3QpICogQ0hBUl9CSVQpKQp8IAlyZXR1cm4gMTsKfCAgICAg ICBmcHJpbnRmIChmLCAiJWxkIiwgaSk7CnwgICAgIH0KfCAgIGVsc2UKfCAgICAgewp8ICAgICAg IHVuc2lnbmVkIGxvbmcgaW50IGkgPSB1bG9uZ3ZhbCAoKTsKfCAgICAgICBpZiAoaSAhPSAoc2l6 ZW9mICh3aW50X3QpICogQ0hBUl9CSVQpKQp8IAlyZXR1cm4gMTsKfCAgICAgICBmcHJpbnRmIChm LCAiJWx1IiwgaSk7CnwgICAgIH0KfCAgIC8qIERvIG5vdCBvdXRwdXQgYSB0cmFpbGluZyBuZXds aW5lLCBhcyB0aGlzIGNhdXNlcyBcclxuIGNvbmZ1c2lvbgp8ICAgICAgb24gc29tZSBwbGF0Zm9y bXMuICAqLwp8ICAgcmV0dXJuIGZlcnJvciAoZikgfHwgZmNsb3NlIChmKSAhPSAwOwp8IAp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTg4NjY6IHJlc3VsdDogdW5rbm93bgpjb25m aWd1cmU6MTg4ODQ6IGNoZWNraW5nIHdoZXRoZXIgc2lnX2F0b21pY190IGlzIHNpZ25lZApjb25m aWd1cmU6MTg5MTE6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToxODkxMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAw CnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05O VUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNw bHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50Cnwg I2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgCnwgICAvKiBCU0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4g YW5kIDx0aW1lLmg+IG11c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAq Lwp8ICAgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lm IEhBVkVfV0NIQVJfSAp8ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0aW1l Lmg+CnwgICAjIGluY2x1ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYKfCAKfCAgICAgICAgICAgICBp bnQgdmVyaWZ5WzIgKiAoKHNpZ19hdG9taWNfdCkgLTEgPCAoc2lnX2F0b21pY190KSAwKSAtIDFd Owp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToxODkyMTogcmVzdWx0OiBubwpjb25maWd1cmU6MTg4ODQ6IGNoZWNraW5nIHdoZXRoZXIgd2No YXJfdCBpcyBzaWduZWQKY29uZmlndXJlOjE4OTExOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIg IGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTg5MTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWls ZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUv Igp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1Mg MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9G VU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGlu dAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2Rl ZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1F IDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGlu dAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVm aW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUg cmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JE U19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZp bmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90 CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZp bmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1ZzogPHN0 ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRlZCBi ZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNsdWRl IDxzaWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8uaD4K fCAgICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2VuZGlm CnwgCnwgICAgICAgICAgICAgaW50IHZlcmlmeVsyICogKCh3Y2hhcl90KSAtMSA8ICh3Y2hhcl90 KSAwKSAtIDFdOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9 CmNvbmZpZ3VyZToxODkyMTogcmVzdWx0OiBubwpjb25maWd1cmU6MTg4ODQ6IGNoZWNraW5nIHdo ZXRoZXIgd2ludF90IGlzIHNpZ25lZApjb25maWd1cmU6MTg5MTE6IGdjYyAtc3RkPWdudTExIC1j IC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQg bGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxODkxMTogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5z aWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04g LTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUg cGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0g MAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50Cnwg I2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVm aW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVf VCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlm CnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9U IDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAvKiBCU0QvT1MgNC4wLjEgaGFzIGEg YnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1lLmg+IG11c3QgYmUKfCAgICAgIGlu Y2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAg I2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NIQVJfSAp8ICAgIyBpbmNsdWRlIDxz dGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAjIGluY2x1ZGUgPHdjaGFyLmg+Cnwg ICAjZW5kaWYKfCAKfCAgICAgICAgICAgICBpbnQgdmVyaWZ5WzIgKiAoKHdpbnRfdCkgLTEgPCAo d2ludF90KSAwKSAtIDFdOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZToxODkyMTogcmVzdWx0OiBubwpjb25maWd1cmU6MTg5NDM6IGNoZWNr aW5nIGZvciBwdHJkaWZmX3QgaW50ZWdlciBsaXRlcmFsIHN1ZmZpeApjb25maWd1cmU6MTg5ODk6 IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5y ZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxODk4 OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwg I2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmlu ZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9G T0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVm aW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJ Q09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVm aW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmlu ZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6 ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf UFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAvKiBC U0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1lLmg+ IG11c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2luY2x1 ZGUgPHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NIQVJf SAp8ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAjIGlu Y2x1ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYKfCAKfCAgICAgICAgICAgICAgIGV4dGVybiBwdHJk aWZmX3QgZm9vOwp8ICAgICAgICAgICAgICAgZXh0ZXJuIGludCBmb287CnwgaW50CnwgbWFpbiAo KQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE4OTg5OiBnY2MgLXN0 ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTg5ODk6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf TlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09O U1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9N T1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5l IAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdf QVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dJTlRfVCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQu MC4xIGhhcyBhIGJ1ZzogPHN0ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJl CnwgICAgICBpbmNsdWRlZCBiZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRk ZWYuaD4KfCAgICNpbmNsdWRlIDxzaWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMg aW5jbHVkZSA8c3RkaW8uaD4KfCAgICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3 Y2hhci5oPgp8ICAgI2VuZGlmCnwgCnwgICAgICAgICAgICAgICBleHRlcm4gcHRyZGlmZl90IGZv bzsKfCAgICAgICAgICAgICAgIGV4dGVybiBsb25nIGludCBmb287CnwgaW50CnwgbWFpbiAoKQp8 IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE4OTg5OiBnY2MgLXN0ZD1n bnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTg5ODk6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6 ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElS RUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dP UktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAj ZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190 IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1Qg CnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RF RF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8 ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRP TUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dJTlRfVCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4x IGhhcyBhIGJ1ZzogPHN0ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwg ICAgICBpbmNsdWRlZCBiZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYu aD4KfCAgICNpbmNsdWRlIDxzaWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5j bHVkZSA8c3RkaW8uaD4KfCAgICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hh ci5oPgp8ICAgI2VuZGlmCnwgCnwgICAgICAgICAgICAgICBleHRlcm4gcHRyZGlmZl90IGZvbzsK fCAgICAgICAgICAgICAgIGV4dGVybiBsb25nIGxvbmcgaW50IGZvbzsKfCBpbnQKfCBtYWluICgp Cnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTg5ODk6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxODk4OTogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8 ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5r X3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05T VCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01P VEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUg CnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19B VE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0lOVF9UIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAvKiBCU0QvT1MgNC4w LjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1lLmg+IG11c3QgYmUK fCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2luY2x1ZGUgPHN0ZGRl Zi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NIQVJfSAp8ICAgIyBp bmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAjIGluY2x1ZGUgPHdj aGFyLmg+CnwgICAjZW5kaWYKfCAKfCAgICAgICAgICAgICAgIGV4dGVybiBwdHJkaWZmX3QgZm9v Owp8ICAgICAgICAgICAgICAgZXh0ZXJuIF9faW50NjQgZm9vOwp8IGludAp8IG1haW4gKCkKfCB7 CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxODk5ODogcmVzdWx0OiBubwpj b25maWd1cmU6MTg5NDM6IGNoZWNraW5nIGZvciBzaXplX3QgaW50ZWdlciBsaXRlcmFsIHN1ZmZp eApjb25maWd1cmU6MTg5ODk6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToxODk4OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4x IGhhcyBhIGJ1ZzogPHN0ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwg ICAgICBpbmNsdWRlZCBiZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYu aD4KfCAgICNpbmNsdWRlIDxzaWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5j bHVkZSA8c3RkaW8uaD4KfCAgICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hh ci5oPgp8ICAgI2VuZGlmCnwgCnwgICAgICAgICAgICAgICBleHRlcm4gc2l6ZV90IGZvbzsKfCAg ICAgICAgICAgICAgIGV4dGVybiB1bnNpZ25lZCBpbnQgZm9vOwp8IGludAp8IG1haW4gKCkKfCB7 CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxODk4OTogZ2NjIC1zdGQ9Z251 MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE4OTg5OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVf dCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVD VElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2Rl ZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBp bnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8 ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURf TU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAj ZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01J Q19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X SU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgCnwgICAvKiBCU0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8u aD4gYW5kIDx0aW1lLmg+IG11c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4u ICAqLwp8ICAgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAg I2lmIEhBVkVfV0NIQVJfSAp8ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0 aW1lLmg+CnwgICAjIGluY2x1ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYKfCAKfCAgICAgICAgICAg ICAgIGV4dGVybiBzaXplX3QgZm9vOwp8ICAgICAgICAgICAgICAgZXh0ZXJuIHVuc2lnbmVkIGxv bmcgaW50IGZvbzsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6MTg5ODk6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToxODk4OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4x IGhhcyBhIGJ1ZzogPHN0ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwg ICAgICBpbmNsdWRlZCBiZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYu aD4KfCAgICNpbmNsdWRlIDxzaWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5j bHVkZSA8c3RkaW8uaD4KfCAgICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hh ci5oPgp8ICAgI2VuZGlmCnwgCnwgICAgICAgICAgICAgICBleHRlcm4gc2l6ZV90IGZvbzsKfCAg ICAgICAgICAgICAgIGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IGZvbzsKfCBpbnQKfCBt YWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTg5ODk6IGdj YyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxODk4OTog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2Rl ZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBT VEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xM T1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5l IG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09O Vl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5l IFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBp bmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRS RElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1ZzogPHN0ZGRlZi5o PiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRlZCBiZWZvcmUg PHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNsdWRlIDxzaWdu YWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8uaD4KfCAgICMg aW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2VuZGlmCnwgCnwg ICAgICAgICAgICAgICBleHRlcm4gc2l6ZV90IGZvbzsKfCAgICAgICAgICAgICAgIGV4dGVybiB1 bnNpZ25lZCBfX2ludDY0IGZvbzsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MTg5OTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MDE1OiBj aGVja2luZyBmb3Igc2lnX2F0b21pY190IGludGVnZXIgbGl0ZXJhbCBzdWZmaXgKY29uZmlndXJl OjE5MDYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MTkwNjE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8 ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAx CnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNk ZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAw CnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8 ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZp bmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklU U0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAv KiBCU0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1l Lmg+IG11c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2lu Y2x1ZGUgPHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NI QVJfSAp8ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAj IGluY2x1ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYKfCAKfCAgICAgICAgICAgICAgIGV4dGVybiBz aWdfYXRvbWljX3QgZm9vOwp8ICAgICAgICAgICAgICAgZXh0ZXJuIHVuc2lnbmVkIGludCBmb287 CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjE5MDYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MTkwNjE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8 ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAx CnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNk ZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAw CnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8 ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZp bmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklU U0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAv KiBCU0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1l Lmg+IG11c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2lu Y2x1ZGUgPHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NI QVJfSAp8ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAj IGluY2x1ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYKfCAKfCAgICAgICAgICAgICAgIGV4dGVybiBz aWdfYXRvbWljX3QgZm9vOwp8ICAgICAgICAgICAgICAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW50 IGZvbzsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MTkwNjE6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToxOTA2MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAw CnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05O VUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNw bHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50Cnwg I2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZG SVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAK fCAgIC8qIEJTRC9PUyA0LjAuMSBoYXMgYSBidWc6IDxzdGRkZWYuaD4sIDxzdGRpby5oPiBhbmQg PHRpbWUuaD4gbXVzdCBiZQp8ICAgICAgaW5jbHVkZWQgYmVmb3JlIDx3Y2hhci5oPi4gICovCnwg ICAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgICAjaW5jbHVkZSA8c2lnbmFsLmg+CnwgICAjaWYgSEFW RV9XQ0hBUl9ICnwgICAjIGluY2x1ZGUgPHN0ZGlvLmg+CnwgICAjIGluY2x1ZGUgPHRpbWUuaD4K fCAgICMgaW5jbHVkZSA8d2NoYXIuaD4KfCAgICNlbmRpZgp8IAp8ICAgICAgICAgICAgICAgZXh0 ZXJuIHNpZ19hdG9taWNfdCBmb287CnwgICAgICAgICAgICAgICBleHRlcm4gdW5zaWduZWQgbG9u ZyBsb25nIGludCBmb287CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjE5MDYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6MTkwNjE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZp bmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZF X0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZp bmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRf TUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3Qg LyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJ QU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9D XzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRl ZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0 ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYg MAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0la RV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJE SUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgCnwgICAvKiBCU0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3Rk aW8uaD4gYW5kIDx0aW1lLmg+IG11c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIu aD4uICAqLwp8ICAgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8 ICAgI2lmIEhBVkVfV0NIQVJfSAp8ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRl IDx0aW1lLmg+CnwgICAjIGluY2x1ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYKfCAKfCAgICAgICAg ICAgICAgIGV4dGVybiBzaWdfYXRvbWljX3QgZm9vOwp8ICAgICAgICAgICAgICAgZXh0ZXJuIHVu c2lnbmVkIF9faW50NjQgZm9vOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTA3MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTkwMTU6IGNo ZWNraW5nIGZvciB3Y2hhcl90IGludGVnZXIgbGl0ZXJhbCBzdWZmaXgKY29uZmlndXJlOjE5MDYx OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVu cmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkw NjE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8 ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZp bmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P Rk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2Rl ZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUg SUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2Rl ZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZp bmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3Np emVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9G X1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZp bmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1ZzogPHN0ZGRl Zi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRlZCBiZWZv cmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNsdWRlIDxz aWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8uaD4KfCAg ICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2VuZGlmCnwg CnwgICAgICAgICAgICAgICBleHRlcm4gd2NoYXJfdCBmb287CnwgICAgICAgICAgICAgICBleHRl cm4gdW5zaWduZWQgaW50IGZvbzsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MTkwNjE6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29u ZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24g Ii1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxOTA2MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50Cnwg I2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5l IEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50Cnwg I2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUg U1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0 cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJ R0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBN QUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAj aWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBt YnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NF VEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5l IFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lH X0FUT01JQ19UX1NVRkZJWCAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAvKiBCU0Qv T1MgNC4wLjEgaGFzIGEgYnVnOiA8c3RkZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1lLmg+IG11 c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJlZm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2luY2x1ZGUg PHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NIQVJfSAp8 ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAjIGluY2x1 ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYKfCAKfCAgICAgICAgICAgICAgIGV4dGVybiB3Y2hhcl90 IGZvbzsKfCAgICAgICAgICAgICAgIGV4dGVybiB1bnNpZ25lZCBsb25nIGludCBmb287CnwgaW50 CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MDYx OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVu cmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkw NjE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8 ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZp bmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P Rk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2Rl ZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUg SUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2Rl ZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZp bmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3Np emVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9G X1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZp bmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1ZzogPHN0ZGRl Zi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRlZCBiZWZv cmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNsdWRlIDxz aWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8uaD4KfCAg ICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2VuZGlmCnwg CnwgICAgICAgICAgICAgICBleHRlcm4gd2NoYXJfdCBmb287CnwgICAgICAgICAgICAgICBleHRl cm4gdW5zaWduZWQgbG9uZyBsb25nIGludCBmb287CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MDYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAt ZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkwNjE6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv Z3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2ln bmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0x CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBp ZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAK fCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNk ZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmlu ZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1Qg bW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8 ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAw CnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8 ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1ZzogPHN0ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8 dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRlZCBiZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAg ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNsdWRlIDxzaWduYWwuaD4KfCAgICNpZiBIQVZF X1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8uaD4KfCAgICMgaW5jbHVkZSA8dGltZS5oPgp8 ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2VuZGlmCnwgCnwgICAgICAgICAgICAgICBleHRl cm4gd2NoYXJfdCBmb287CnwgICAgICAgICAgICAgICBleHRlcm4gdW5zaWduZWQgX19pbnQ2NCBm b287CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln dXJlOjE5MDcwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTAxNTogY2hlY2tpbmcgZm9yIHdpbnRf dCBpbnRlZ2VyIGxpdGVyYWwgc3VmZml4CmNvbmZpZ3VyZToxOTA2MTogZ2NjIC1zdGQ9Z251MTEg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5MDYxOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1 bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElP TiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmlu ZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNk ZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9E RV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5k aWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5U X1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVgg CnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVgg CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1 ZzogPHN0ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNs dWRlZCBiZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNp bmNsdWRlIDxzaWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3Rk aW8uaD4KfCAgICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAg I2VuZGlmCnwgCnwgICAgICAgICAgICAgICBleHRlcm4gd2ludF90IGZvbzsKfCAgICAgICAgICAg ICAgIGV4dGVybiB1bnNpZ25lZCBpbnQgZm9vOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTA2MTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5l IG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5MDYxOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25l ZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9B VElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRf dCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwg I2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVm aW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUg V09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1v ZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAj ZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8 ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1ZzogPHN0 ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRlZCBi ZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNsdWRl IDxzaWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8uaD4K fCAgICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2VuZGlm CnwgCnwgICAgICAgICAgICAgICBleHRlcm4gd2ludF90IGZvbzsKfCAgICAgICAgICAgICAgIGV4 dGVybiB1bnNpZ25lZCBsb25nIGludCBmb287CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsK fCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MDYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkwNjE6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9k ZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNk ZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwg I2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgCnwgICAvKiBCU0QvT1MgNC4wLjEgaGFzIGEgYnVnOiA8c3Rk ZGVmLmg+LCA8c3RkaW8uaD4gYW5kIDx0aW1lLmg+IG11c3QgYmUKfCAgICAgIGluY2x1ZGVkIGJl Zm9yZSA8d2NoYXIuaD4uICAqLwp8ICAgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICAgI2luY2x1ZGUg PHNpZ25hbC5oPgp8ICAgI2lmIEhBVkVfV0NIQVJfSAp8ICAgIyBpbmNsdWRlIDxzdGRpby5oPgp8 ICAgIyBpbmNsdWRlIDx0aW1lLmg+CnwgICAjIGluY2x1ZGUgPHdjaGFyLmg+CnwgICAjZW5kaWYK fCAKfCAgICAgICAgICAgICAgIGV4dGVybiB3aW50X3QgZm9vOwp8ICAgICAgICAgICAgICAgZXh0 ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgZm9vOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTA2MTogZ2NjIC1zdGQ9Z251MTEgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBs aW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5MDYxOiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAt MQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBw aWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAw CnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAj ZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZp bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYK fCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1Qg MAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwg I2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogQlNEL09TIDQuMC4xIGhhcyBhIGJ1Zzog PHN0ZGRlZi5oPiwgPHN0ZGlvLmg+IGFuZCA8dGltZS5oPiBtdXN0IGJlCnwgICAgICBpbmNsdWRl ZCBiZWZvcmUgPHdjaGFyLmg+LiAgKi8KfCAgICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAgICNpbmNs dWRlIDxzaWduYWwuaD4KfCAgICNpZiBIQVZFX1dDSEFSX0gKfCAgICMgaW5jbHVkZSA8c3RkaW8u aD4KfCAgICMgaW5jbHVkZSA8dGltZS5oPgp8ICAgIyBpbmNsdWRlIDx3Y2hhci5oPgp8ICAgI2Vu ZGlmCnwgCnwgICAgICAgICAgICAgICBleHRlcm4gd2ludF90IGZvbzsKfCAgICAgICAgICAgICAg IGV4dGVybiB1bnNpZ25lZCBfX2ludDY0IGZvbzsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTkwNzA6IHJlc3VsdDogbm8KY29uZmlndXJl OjE5MTEzOiBjaGVja2luZyB3aGV0aGVyIHN0cnVjdCB0bSBpcyBpbiBzeXMvdGltZS5oIG9yIHRp bWUuaApjb25maWd1cmU6MTkxMzM6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3Qu YyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9 Z251MTEiCmNvbmZpZ3VyZToxOTEzMzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmlu ZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9H TlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f VVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmlu ZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVf RU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmlu ZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9N QUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAv KiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElB TiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0Nf MF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVm IF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRl X3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpF X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJ RkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01J Q19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NV RkZJWCAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8 ICNpbmNsdWRlIDx0aW1lLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdHJ1Y3QgdG0gdG07 CnwgCQkJCSAgICAgaW50ICpwID0gJnRtLnRtX3NlYzsKfCAJCQkJICAgICByZXR1cm4gIXA7Cnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTE0MDogcmVzdWx0OiBzeXMvdGltZS5o CmNvbmZpZ3VyZToxOTE0ODogY2hlY2tpbmcgZm9yIHN0cnVjdCB0bS50bV96b25lCmNvbmZpZ3Vy ZToxOTE0ODogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVy cm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmln dXJlOjE5MTQ4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lO T0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEK fCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4g MQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAj ZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwg MAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMK fCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVm aW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8 ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZp bmUgVE1fSU5fU1lTX1RJTUUgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy90aW1lLmg+CnwgCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCBzdGF0aWMgc3RydWN0IHRtIGFjX2FnZ3I7CnwgaWYgKGFjX2FnZ3IudG1fem9uZSkK fCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MTQ4OiBnY2Mg LXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2du aXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkxNDg6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZp bmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RB Q0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9X IDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFW RV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBu bGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZf Q09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5s aW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBp bnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJ RkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9T SUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0la RV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hB Ul9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNf VElNRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K fCAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KfCAKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRp YyBzdHJ1Y3QgdG0gYWNfYWdncjsKfCBpZiAoc2l6ZW9mIGFjX2FnZ3IudG1fem9uZSkKfCByZXR1 cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MTQ4OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxOTE2NjogY2hlY2tpbmcgd2hldGhlciB0em5hbWUgaXMgZGVjbGFyZWQKY29u ZmlndXJlOjE5MTY2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6MTkxNjY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExP Q0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05f REVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JS T0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4g MAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9O TlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVz cGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8 ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZp bmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFS X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VG RklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZG SVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwg I2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDx0aW1lLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIHR6bmFtZQp8ICNp ZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQpIHR6bmFtZTsKfCAjZWxzZQp8ICAgKHZvaWQpIHR6 bmFtZTsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln dXJlOjE5MTY2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTE3ODogY2hlY2tpbmcgZm9yIHR6bmFt ZQpjb25maWd1cmU6MTkxOTg6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNv bmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5MTk4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNf QklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5l IG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf U0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZp bmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBT SUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBX SU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDx0aW1lLmg+ CnwgI2lmICFIQVZFX0RFQ0xfVFpOQU1FCnwgZXh0ZXJuIGNoYXIgKnR6bmFtZVtdOwp8ICNlbmRp Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHR6bmFtZVswXVswXTsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MjA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTIx NjogY2hlY2tpbmcgZm9yIHN0cnVjdCB0bS50bV9nbXRvZmYKY29uZmlndXJlOjE5MjE2OiBnY2Mg LXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2du aXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkyMTY6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZp bmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RB Q0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9X IDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFW RV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBu bGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZf Q09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5s aW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBp bnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJ RkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9T SUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0la RV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hB Ul9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNf VElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPHRpbWUuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBz dHJ1Y3QgdG0gYWNfYWdncjsKfCBpZiAoYWNfYWdnci50bV9nbXRvZmYpCnwgcmV0dXJuIDA7Cnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTIxNjogZ2NjIC1zdGQ9Z251MTEgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBs aW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5MjE2OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAt MQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBw aWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAw CnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAj ZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZp bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYK fCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1Qg MAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwg I2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwg I2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDx0aW1lLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IHRtIGFjX2Fn Z3I7CnwgaWYgKHNpemVvZiBhY19hZ2dyLnRtX2dtdG9mZikKfCByZXR1cm4gMDsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5MjE2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTMx NjogY2hlY2tpbmcgYWJzb2x1dGUgbmFtZSBvZiA8c3RyaW5nLmg+CmNvbmZpZ3VyZToxOTM1OTog cmVzdWx0OiAiLy8vdXNyL2luY2x1ZGUvc3RyaW5nLmgiCmNvbmZpZ3VyZToxOTM4MDogY2hlY2tp bmcgd2hldGhlciBmZnNsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MTkz OTg6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZTox OTM5ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2Rl ZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAj ZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmlu ZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAj ZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2Rl ZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBz c2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVm aW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRN X0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RyaW5nLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCAjdW5kZWYgZmZzbAp8ICAgKHZvaWQpIGZmc2w7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToxOTQwNjogcmVzdWx0OiBubwpjb25maWd1cmU6MTkzODA6IGNoZWNraW5nIHdoZXRo ZXIgZmZzbGwgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxOTM5ODogZ2Nj IC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5Mzk4OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05W X0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUg UFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlu bGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJE SUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf U0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJ WkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NI QVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRl ZiBmZnNsbAp8ICAgKHZvaWQpIGZmc2xsOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MTk0MDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MzgwOiBjaGVja2luZyB3aGV0aGVyIG1l bW1lbSBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjE5Mzk4OiBnY2MgLXN0 ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkzOTg6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf TlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09O U1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9N T1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5l IAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdf QVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9U X1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElN RSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIG1l bW1lbQp8ICAgKHZvaWQpIG1lbW1lbTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjE5NDA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTM4MDogY2hlY2tpbmcgd2hldGhlciBtZW1w Y3B5IGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MTkzOTg6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxOTM5ODogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8 ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5r X3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05T VCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01P VEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUg CnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19B VE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1Rf U1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8c3RyaW5nLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgbWVt cGNweQp8ICAgKHZvaWQpIG1lbXBjcHk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToxOTQwNjogcmVzdWx0OiBubwpjb25maWd1cmU6MTkzODA6IGNoZWNraW5nIHdoZXRoZXIgbWVt cmNociBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjE5Mzk4OiBnY2MgLXN0 ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkzOTg6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf TlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09O U1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9N T1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5l IAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdf QVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9U X1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElN RSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIG1l bXJjaHIKfCAgICh2b2lkKSBtZW1yY2hyOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MTk0MDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MzgwOiBjaGVja2luZyB3aGV0aGVyIHJh d21lbWNociBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjE5Mzk4OiBnY2Mg LXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2du aXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkzOTg6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZp bmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RB Q0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9X IDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFW RV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBu bGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZf Q09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5s aW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBp bnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJ RkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9T SUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0la RV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hB Ul9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNf VElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVm IHJhd21lbWNocgp8ICAgKHZvaWQpIHJhd21lbWNocjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjE5NDA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTM4MDogY2hlY2tpbmcgd2hl dGhlciBzdHBjcHkgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxOTM5ODog Z2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5Mzk4 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAj ZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5l IFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZP TExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZp bmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVD TF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElD T05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZp bmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5l IGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXpl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9Q VFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5l IFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUg V0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5f U1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1 bmRlZiBzdHBjcHkKfCAgICh2b2lkKSBzdHBjcHk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToxOTQwNjogcmVzdWx0OiBubwpjb25maWd1cmU6MTkzODA6IGNoZWNraW5nIHdoZXRo ZXIgc3RwbmNweSBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjE5Mzk4OiBn Y2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVj b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkzOTg6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ T1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf UE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBf VEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNk ZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUg U1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmlu ZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9M TE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmlu ZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNM X0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNP TlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmlu ZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUg aW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVf dCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BU UkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUg U0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBX Q0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9T WVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3Vu ZGVmIHN0cG5jcHkKfCAgICh2b2lkKSBzdHBuY3B5Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MTk0MDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MzgwOiBjaGVja2luZyB3aGV0 aGVyIHN0cmNocm51bCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjE5Mzk4 OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVu cmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkz OTg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8 ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZp bmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P Rk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2Rl ZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUg SUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2Rl ZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZp bmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3Np emVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9G X1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZp bmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmlu ZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9J Tl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwg I3VuZGVmIHN0cmNocm51bAp8ICAgKHZvaWQpIHN0cmNocm51bDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjE5NDA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTM4MDogY2hlY2tp bmcgd2hldGhlciBzdHJkdXAgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTox OTM5ODogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjE5Mzk4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAj ZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8 ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVm aW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAj ZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5l IHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUg VE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8ICN1bmRlZiBzdHJkdXAKfCAgICh2b2lkKSBzdHJkdXA7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToxOTQwNjogcmVzdWx0OiBubwpjb25maWd1cmU6MTkzODA6IGNoZWNraW5n IHdoZXRoZXIgc3RybmNhdCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjE5 Mzk4OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 MTkzOTg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUg MQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNk ZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwg I2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZp bmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwg I2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNk ZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUg c3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0la RU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNk ZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2Rl ZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBU TV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7 CnwgI3VuZGVmIHN0cm5jYXQKfCAgICh2b2lkKSBzdHJuY2F0Owp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MTk0MDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MzgwOiBjaGVja2lu ZyB3aGV0aGVyIHN0cm5kdXAgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZTox OTM5ODogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjE5Mzk4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAj ZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8 ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVm aW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAj ZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5l IHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUg VE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8ICN1bmRlZiBzdHJuZHVwCnwgICAodm9pZCkgc3RybmR1cDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjE5NDA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTM4MDogY2hlY2tp bmcgd2hldGhlciBzdHJubGVuIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6 MTkzOTg6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToxOTM5ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwg I2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmlu ZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwg I2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAj ZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5l IFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RyaW5nLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8 IHsKfCAjdW5kZWYgc3Rybmxlbgp8ICAgKHZvaWQpIHN0cm5sZW47CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZToxOTQwNjogcmVzdWx0OiBubwpjb25maWd1cmU6MTkzODA6IGNoZWNr aW5nIHdoZXRoZXIgc3RycGJyayBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJl OjE5Mzk4OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MTkzOTg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8 ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAx CnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNk ZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAw CnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8 ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZp bmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklU U0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwg I2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmlu ZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgI3VuZGVmIHN0cnBicmsKfCAgICh2b2lkKSBzdHJwYnJrOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTk0MDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5MzgwOiBjaGVj a2luZyB3aGV0aGVyIHN0cnNlcCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJl OjE5Mzk4OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MTkzOTg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8 ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAx CnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNk ZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAw CnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8 ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZp bmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklU U0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwg I2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmlu ZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgI3VuZGVmIHN0cnNlcAp8ICAgKHZvaWQpIHN0cnNlcDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjE5NDA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTM4MDogY2hlY2tp bmcgd2hldGhlciBzdHJjYXNlc3RyIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1 cmU6MTkzOTg6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBl cnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZp Z3VyZToxOTM5ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9J Tk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAx CnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNM IDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VO IDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwg I2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxM IDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVz CnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2Rl ZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVgg CnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAK fCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVm aW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RyaW5nLmg+CnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCAjdW5kZWYgc3RyY2FzZXN0cgp8ICAgKHZvaWQpIHN0cmNhc2VzdHI7CnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTQwNjogcmVzdWx0OiBubwpjb25maWd1cmU6MTkz ODA6IGNoZWNraW5nIHdoZXRoZXIgc3RydG9rX3IgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3Jv CmNvbmZpZ3VyZToxOTM5ODogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjE5Mzk4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENf QUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1v ZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JP U19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8K fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExP R0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lT X05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19j cGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBp bnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X Q0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklY IAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAw CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAKfCBpbnQK fCBtYWluICgpCnwgewp8ICN1bmRlZiBzdHJ0b2tfcgp8ICAgKHZvaWQpIHN0cnRva19yOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTk0MDY6IHJlc3VsdDogbm8KY29uZmlndXJl OjE5MzgwOiBjaGVja2luZyB3aGV0aGVyIHN0cmVycm9yX3IgaXMgZGVjbGFyZWQgd2l0aG91dCBh IG1hY3JvCmNvbmZpZ3VyZToxOTM5ODogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjE5Mzk4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVm aW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFW RV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVm aW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFU X01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0 IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5E SUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExP Q18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5k ZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3Rh dGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5W IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ WkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRS RElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRP TUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1Rf U1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1Ra TkFNRSAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAK fCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBzdHJlcnJvcl9yCnwgICAodm9pZCkgc3RyZXJy b3JfcjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5NDA2OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxOTM4MDogY2hlY2tpbmcgd2hldGhlciBzdHJzaWduYWwgaXMgZGVjbGFyZWQg d2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToxOTM5ODogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5Mzk4OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdHJp bmcuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBzdHJzaWduYWwKfCAgICh2b2lk KSBzdHJzaWduYWw7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTQwNjogcmVz dWx0OiBubwpjb25maWd1cmU6MTkzODA6IGNoZWNraW5nIHdoZXRoZXIgc3RydmVyc2NtcCBpcyBk ZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjE5Mzk4OiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTkzOTg6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVu c2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9O IC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5l IHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8 ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2Rl ZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RF X1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRp Zgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRf VCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAK fCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0cmluZy5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHN0cnZlcnNjbXAK fCAgICh2b2lkKSBzdHJ2ZXJzY21wOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 MTk0MDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5NDQ4OiBjaGVja2luZyBhYnNvbHV0ZSBuYW1l IG9mIDxzeXMvdHlwZXMuaD4KY29uZmlndXJlOjE5NDkxOiByZXN1bHQ6ICIvLy91c3IvaW5jbHVk ZS9zeXMvdHlwZXMuaCIKY29uZmlndXJlOjE5NTQxOiBjaGVja2luZyBmb3Igc3RydWN0IHRpbWVz cGVjIGluIDx0aW1lLmg+CmNvbmZpZ3VyZToxOTU1ODogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjE5NTU4OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDx0aW1l Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IHRpbWVzcGVjIHg7IHgu dHZfc2VjID0geC50dl9uc2VjOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTk1 NjU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5NTc1OiBjaGVja2luZyBmb3Igc3RydWN0IHRpbWVz cGVjIGluIDxzeXMvdGltZS5oPgpjb25maWd1cmU6MTk1OTI6IGdjYyAtc3RkPWdudTExIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGlu ZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxOTU5MjogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9n dWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWdu ZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEK fCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P QVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlk X3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8 ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2Rl ZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5l IFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwg I2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBt b2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwg I2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFW RV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAK fCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNk ZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9UWk5BTUUgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3lzL3RpbWUuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgdGltZXNw ZWMgeDsgeC50dl9zZWMgPSB4LnR2X25zZWM7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZToxOTU5OTogcmVzdWx0OiBubwpjb25maWd1cmU6MTk2MDQ6IGNoZWNraW5nIGZvciBzdHJ1 Y3QgdGltZXNwZWMgaW4gPHB0aHJlYWQuaD4KY29uZmlndXJlOjE5NjIxOiBnY2MgLXN0ZD1nbnUx MSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MTk2MjE6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90 IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNU SU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVm aW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FM QVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGlu dAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwg I2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9N T0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNl bmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlD X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJ TlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJ WCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJ WCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHB0aHJlYWQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3Qg dGltZXNwZWMgeDsgeC50dl9zZWMgPSB4LnR2X25zZWM7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9 CmNvbmZpZ3VyZToxOTYyODogcmVzdWx0OiBubwpjb25maWd1cmU6MTk2MzM6IGNoZWNraW5nIGZv ciBzdHJ1Y3QgdGltZXNwZWMgaW4gPHVuaXN0ZC5oPgpjb25maWd1cmU6MTk2NTA6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToxOTY1MDogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8 ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5r X3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05T VCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01P VEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUg CnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19B VE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1Rf U1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8dW5pc3RkLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3Ry dWN0IHRpbWVzcGVjIHg7IHgudHZfc2VjID0geC50dl9uc2VjOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MTk2NTc6IHJlc3VsdDogbm8KY29uZmlndXJlOjE5Njg0OiBjaGVja2lu ZyBhYnNvbHV0ZSBuYW1lIG9mIDx0aW1lLmg+CmNvbmZpZ3VyZToxOTcyNzogcmVzdWx0OiAiLy8v dXNyL2luY2x1ZGUvdGltZS5oIgpjb25maWd1cmU6MTk3NTY6IGNoZWNraW5nIHdoZXRoZXIgc25w cmludGYgcmV0dXJucyBhIGJ5dGUgY291bnQgYXMgaW4gQzk5CmNvbmZpZ3VyZToxOTgyNjogZ2Nj IC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MTk4MjY6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9U RURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAK fCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FU T01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9T VUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9T VUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 IAp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpbmNsdWRlIDxzdHJpbmcuaD4KfCAjaWYgSEFWRV9T TlBSSU5URgp8ICMgZGVmaW5lIG15X3NucHJpbnRmIHNucHJpbnRmCnwgI2Vsc2UKfCAjIGluY2x1 ZGUgPHN0ZGFyZy5oPgp8IHN0YXRpYyBpbnQgbXlfc25wcmludGYgKGNoYXIgKmJ1ZiwgaW50IHNp emUsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQp8IHsKfCAgIHZhX2xpc3QgYXJnczsKfCAgIGlu dCByZXQ7CnwgICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAgIHJldCA9IHZzbnByaW50ZiAo YnVmLCBzaXplLCBmb3JtYXQsIGFyZ3MpOwp8ICAgdmFfZW5kIChhcmdzKTsKfCAgIHJldHVybiBy ZXQ7CnwgfQp8ICNlbmRpZgp8IHN0YXRpYyBjaGFyIGJ1ZlsxMDBdOwp8IGludCBtYWluICgpCnwg ewp8ICAgc3RyY3B5IChidWYsICJBQkNERUYiKTsKfCAgIGlmIChteV9zbnByaW50ZiAoYnVmLCAz LCAiJWQgJWQiLCA0NTY3LCA4OSkgIT0gNykKfCAgICAgcmV0dXJuIDE7CnwgICBpZiAobXlfc25w cmludGYgKGJ1ZiwgMCwgIiVkICVkIiwgNDU2NywgODkpICE9IDcpCnwgICAgIHJldHVybiAyOwp8 ICAgaWYgKG15X3NucHJpbnRmIChOVUxMLCAwLCAiJWQgJWQiLCA0NTY3LCA4OSkgIT0gNykKfCAg ICAgcmV0dXJuIDM7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxOTgzNzogcmVzdWx0OiBu bwpjb25maWd1cmU6MTk4NDA6IGNoZWNraW5nIHdoZXRoZXIgdnNucHJpbnRmIGlzIGRlY2xhcmVk CmNvbmZpZ3VyZToxOTg0MDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjE5ODQwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENf QUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1v ZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JP U19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8K fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExP R0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lT X05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19j cGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBp bnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X Q0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklY IAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAw CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBI QVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3Rk ZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFk ZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRl IDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIHZzbnByaW50Zgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8 ICAgKHZvaWQpIHZzbnByaW50ZjsKfCAjZWxzZQp8ICAgKHZvaWQpIHZzbnByaW50ZjsKfCAjZW5k aWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE5ODQwOiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToxOTk0NTogY2hlY2tpbmcgd2hldGhlciA8d2NoYXIuaD4gdXNl cyAnaW5saW5lJyBjb3JyZWN0bHkKY29uZmlndXJlOjE5OTY5OiBnY2MgLXN0ZD1nbnUxMSAtYyAt ZyAtTzIgIGNvbmZ0ZXN0MS5jID4mNQpnY2M6IGNvbmZ0ZXN0MS5jOiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5CmdjYzogbm8gaW5wdXQgZmlsZXMKY29uZmlndXJlOjE5OTcyOiAkPyA9IDEKY29u ZmlndXJlOjIwMDA2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjAwMjU6IGNoZWNraW5nIGZvciBh IHRyYWRpdGlvbmFsIGZyZW5jaCBsb2NhbGUKY29uZmlndXJlOjIwMDkzOiBnY2MgLXN0ZD1nbnUx MSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMDA5Njog JD8gPSAxCmNvbmZpZ3VyZToyMDE1MjogcmVzdWx0OiAKY29uZmlndXJlOjIwMTY0OiBjaGVja2lu ZyBmb3IgYSB0cmFkaXRpb25hbCBqYXBhbmVzZSBsb2NhbGUKY29uZmlndXJlOjIwMjM0OiBnY2Mg LXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToyMDIzNzogJD8gPSAxCmNvbmZpZ3VyZToyMDI5NTogcmVzdWx0OiAKY29uZmlndXJlOjIwMzAz OiBjaGVja2luZyBmb3IgYSB0cmFuc2l0aW9uYWwgY2hpbmVzZSBsb2NhbGUKY29uZmlndXJlOjIw Mzc0OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUK Y2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEi CmNvbmZpZ3VyZToyMDM3NzogJD8gPSAxCmNvbmZpZ3VyZToyMDQyODogcmVzdWx0OiBub25lCmNv bmZpZ3VyZToyMDQzNTogY2hlY2tpbmcgZm9yIGEgZnJlbmNoIFVuaWNvZGUgbG9jYWxlCmNvbmZp Z3VyZToyMDUwNzogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3Qu YyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6MjA1MTA6ICQ/ID0gMQpjb25maWd1cmU6MjA1NTY6IHJlc3VsdDog CmNvbmZpZ3VyZToyMDU3MjogY2hlY2tpbmcgZm9yIG1tYXAKY29uZmlndXJlOjIwNTcyOiBnY2Mg LXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToyMDU3MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwg I2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmlu ZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwg I2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAj ZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5l IFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmlu ZSBtbWFwIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFy ZXMgbW1hcC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMg Z2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIG1tYXAgaW5ub2N1b3VzX21tYXAKfCAKfCAvKiBT eXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHBy b3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbW1hcCAoKTsgYmVs b3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMg ZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRp bmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0 cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYg bW1hcAp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk IGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJu ICJDIgp8ICNlbmRpZgp8IGNoYXIgbW1hcCAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZp bmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5 cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwg ICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4g YWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9tbWFwIHx8IGRlZmluZWQgX19zdHViX19f bW1hcAp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4g bW1hcCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIwNTcyOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToyMDY0MjogY2hlY2tpbmcgd2hldGhlciBtZW1jaHIgd29ya3MKY29uZmln dXJlOjIwNzA1OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5j ICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9 Z251MTEiCmNvbmZpZ3VyZToyMDcwNTogJD8gPSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQg d2l0aCBzdGF0dXMgMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUg MQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNk ZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwg I2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZp bmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwg I2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNk ZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUg c3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0la RU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNk ZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2Rl ZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBU TV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9WU05QUklOVEYgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5jbHVk ZSA8c3RyaW5nLmg+CnwgI2lmIEhBVkVfU1lTX01NQU5fSAp8ICMgaW5jbHVkZSA8ZmNudGwuaD4K fCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgIyBpbmNs dWRlIDxzeXMvbW1hbi5oPgp8ICMgaWZuZGVmIE1BUF9GSUxFCnwgIyAgZGVmaW5lIE1BUF9GSUxF IDAKfCAjIGVuZGlmCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIGludCBy ZXN1bHQgPSAwOwp8ICAgY2hhciAqZmVuY2UgPSBOVUxMOwp8ICNpZiBIQVZFX1NZU19NTUFOX0gg JiYgSEFWRV9NUFJPVEVDVAp8ICMgaWYgSEFWRV9NQVBfQU5PTllNT1VTCnwgICBjb25zdCBpbnQg ZmxhZ3MgPSBNQVBfQU5PTllNT1VTIHwgTUFQX1BSSVZBVEU7CnwgICBjb25zdCBpbnQgZmQgPSAt MTsKfCAjIGVsc2UgLyogIUhBVkVfTUFQX0FOT05ZTU9VUyAqLwp8ICAgY29uc3QgaW50IGZsYWdz ID0gTUFQX0ZJTEUgfCBNQVBfUFJJVkFURTsKfCAgIGludCBmZCA9IG9wZW4gKCIvZGV2L3plcm8i LCBPX1JET05MWSwgMDY2Nik7CnwgICBpZiAoZmQgPj0gMCkKfCAjIGVuZGlmCnwgICAgIHsKfCAg ICAgICBpbnQgcGFnZXNpemUgPSBnZXRwYWdlc2l6ZSAoKTsKfCAgICAgICBjaGFyICp0d29fcGFn ZXMgPQp8ICAgICAgICAgKGNoYXIgKikgbW1hcCAoTlVMTCwgMiAqIHBhZ2VzaXplLCBQUk9UX1JF QUQgfCBQUk9UX1dSSVRFLAp8ICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIGZkLCAwKTsK fCAgICAgICBpZiAodHdvX3BhZ2VzICE9IChjaGFyICopKC0xKQp8ICAgICAgICAgICAmJiBtcHJv dGVjdCAodHdvX3BhZ2VzICsgcGFnZXNpemUsIHBhZ2VzaXplLCBQUk9UX05PTkUpID09IDApCnwg ICAgICAgICBmZW5jZSA9IHR3b19wYWdlcyArIHBhZ2VzaXplOwp8ICAgICB9CnwgI2VuZGlmCnwg ICBpZiAoZmVuY2UpCnwgICAgIHsKfCAgICAgICBpZiAobWVtY2hyIChmZW5jZSwgMCwgMCkpCnwg ICAgICAgICByZXN1bHQgfD0gMTsKfCAgICAgICBzdHJjcHkgKGZlbmNlIC0gOSwgIjEyMzQ1Njc4 Iik7CnwgICAgICAgaWYgKG1lbWNociAoZmVuY2UgLSA5LCAwLCA3OSkgIT0gZmVuY2UgLSAxKQp8 ICAgICAgICAgcmVzdWx0IHw9IDI7CnwgICAgICAgaWYgKG1lbWNociAoZmVuY2UgLSAxLCAwLCAz KSAhPSBmZW5jZSAtIDEpCnwgICAgICAgICByZXN1bHQgfD0gNDsKfCAgICAgfQp8ICAgcmV0dXJu IHJlc3VsdDsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIwNzE1OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToyMDcyMzogY2hlY2tpbmcgd2hldGhlciB0aW1lX3QgaXMgc2lnbmVk CmNvbmZpZ3VyZToyMDc0MDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjIwNzQwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENf QUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1v ZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JP U19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8K fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExP R0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lT X05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19j cGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBp bnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X Q0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklY IAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHRpbWUuaD4KfCAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgdGlt ZV90X3NpZ25lZFsodGltZV90KSAtMSA8IDAgPyAxIDogLTFdOwp8IGludAp8IG1haW4gKCkKfCB7 CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyMDc0NzogcmVzdWx0OiBubwpj b25maWd1cmU6MjA3NjU6IGNoZWNraW5nIHdoZXRoZXIgc25wcmludGYgaXMgZGVjbGFyZWQKY29u ZmlndXJlOjIwNzY1OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6MjA3NjU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExP Q0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05f REVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JS T0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4g MAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9O TlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVz cGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8 ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZp bmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFS X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VG RklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZG SVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwg I2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVk ZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZF X1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5l ZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5j bHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNs dWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5j bHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5j bHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1 ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBzbnBy aW50Zgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQpIHNucHJpbnRmOwp8ICNlbHNlCnwg ICAodm9pZCkgc25wcmludGY7CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZToyMDc2NTogcmVzdWx0OiBubwpjb25maWd1cmU6MjA3Nzg6IGNoZWNr aW5nIHdoZXRoZXIgc3RyZHVwIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToyMDc3ODogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIwNzc4OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9U RURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAK fCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FU T01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9T VUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9T VUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJ TlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwg IyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAj IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlm ZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAm JiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlm CnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gK fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19I CnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9I CnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8 ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZu ZGVmIHN0cmR1cAp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQpIHN0cmR1cDsKfCAjZWxz ZQp8ICAgKHZvaWQpIHN0cmR1cDsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjIwNzc4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMDc5MzogY2hl Y2tpbmcgd2hldGhlciB1bnNldGVudiBpcyBkZWNsYXJlZApjb25maWd1cmU6MjA3OTM6IGdjYyAt c3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMDc5MzogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxp bmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElG Rl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ R19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpF X1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFS X1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZT TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUkRVUCAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIHVuc2V0ZW52CnwgI2lmZGVmIF9f Y3BsdXNwbHVzCnwgICAodm9pZCkgdW5zZXRlbnY7CnwgI2Vsc2UKfCAgICh2b2lkKSB1bnNldGVu djsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjIwNzkzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMDgwNzogY2hlY2tpbmcgZm9yIGludHR5cGVz LmgKY29uZmlndXJlOjIwODI2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MjA4MjY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUg bW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFD Uk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoq Lwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBf SVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBf X2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90 IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZG X1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNf VF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZG SVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1F IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1VOU0VURU5WIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNpbmNsdWRlIDxpbnR0eXBlcy5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwg dWludG1heF90IGkgPSAodWludG1heF90KSAtMTsgcmV0dXJuICFpOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MjA4MzM6IHJlc3VsdDogbm8KY29uZmlndXJlOjIwODQ0OiBjaGVj a2luZyBmb3Igc3RkaW50LmgKY29uZmlndXJlOjIwODYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjA4NjE6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9k ZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNk ZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwg I2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVm aW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRpbnQuaD4KfCBp bnQKfCBtYWluICgpCnwgewp8IHVpbnRtYXhfdCBpID0gKHVpbnRtYXhfdCkgLTE7IHJldHVybiAh aTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIwODY4OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToyMDg4MTogY2hlY2tpbmcgZm9yIGludG1heF90CmNvbmZpZ3VyZToyMDkwNjogZ2Nj IC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIwOTA2OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05W X0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUg UFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlu bGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJE SUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf U0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJ WkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NI QVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8IAp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAjaW5jbHVkZSA8c3RkbGli Lmg+CnwgI2lmIEhBVkVfU1RESU5UX0hfV0lUSF9VSU5UTUFYCnwgI2luY2x1ZGUgPHN0ZGludC5o Pgp8ICNlbmRpZgp8ICNpZiBIQVZFX0lOVFRZUEVTX0hfV0lUSF9VSU5UTUFYCnwgI2luY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBpbnRtYXhfdCB4 ID0gLTE7IHJldHVybiAheDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIwOTEz OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMDkzOTogY2hlY2tpbmcgZm9yIHNucHJpbnRmCmNvbmZp Z3VyZToyMDkzOTogcmVzdWx0OiBubwpjb25maWd1cmU6MjA5Mzk6IGNoZWNraW5nIGZvciBzdHJu bGVuCmNvbmZpZ3VyZToyMDkzOTogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAg Y29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjA5Mzk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWls ZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIK fCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUv Igp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1Mg MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9G VU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGlu dAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2Rl ZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1F IDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGlu dAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVm aW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUg cmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JE U19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZp bmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90 CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZp bmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2Rl ZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5l IFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5l IFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHN0cm5sZW4gdG8gYW4gaW5ub2N1b3VzIHZhcmlh bnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzdHJubGVuLgp8ICAgIEZvciBleGFtcGxl LCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZp bmUgc3RybmxlbiBpbm5vY3VvdXNfc3Rybmxlbgp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hp Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzdHJubGVuICgpOyBiZWxvdy4KfCAgICAgUHJlZmVy IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8 ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAq Lwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAj IGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzdHJubGVuCnwgCnwgLyog T3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwg ICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg R0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0 aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlm CnwgY2hhciBzdHJubGVuICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBm b3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0 aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRo aW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICov CnwgI2lmIGRlZmluZWQgX19zdHViX3N0cm5sZW4gfHwgZGVmaW5lZCBfX3N0dWJfX19zdHJubGVu CnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBzdHJu bGVuICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjA5Mzk6IHJlc3VsdDog bm8KY29uZmlndXJlOjIwOTM5OiBjaGVja2luZyBmb3Igd2NzbGVuCmNvbmZpZ3VyZToyMDkzOTog Z2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTog ZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25m aWd1cmU6MjA5Mzk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRf SU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0Eg MQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tF TiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8 ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVM TCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1 cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNk ZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUg QklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklY IAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVgg CnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2Rl ZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5W IDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyog RGVmaW5lIHdjc2xlbiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+ IGRlY2xhcmVzIHdjc2xlbi4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4g ZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHdjc2xlbiBpbm5vY3VvdXNfd2Nz bGVuCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9w ZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFy IHdjc2xlbiAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4g aWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZl biBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAj IGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5k aWYKfCAKfCAjdW5kZWYgd2NzbGVuCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBw cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWln aHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBp dHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19j cGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciB3Y3NsZW4gKCk7CnwgLyogVGhl IEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVt ZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFy ZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhl IG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfd2NzbGVu IHx8IGRlZmluZWQgX19zdHViX19fd2NzbGVuCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQK fCBtYWluICgpCnwgewp8IHJldHVybiB3Y3NsZW4gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9 CmNvbmZpZ3VyZToyMDkzOTogcmVzdWx0OiBubwpjb25maWd1cmU6MjA5Mzk6IGNoZWNraW5nIGZv ciB3Y3NubGVuCmNvbmZpZ3VyZToyMDkzOTogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcg LU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjA5Mzk6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv Z3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2ln bmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0x CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBp ZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAK fCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNk ZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmlu ZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1Qg bW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8 ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAw CnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIHdjc25sZW4gdG8gYW4gaW5ub2N1b3Vz IHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyB3Y3NubGVuLgp8ICAgIEZvciBl eGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8 ICNkZWZpbmUgd2NzbmxlbiBpbm5vY3VvdXNfd2Nzbmxlbgp8IAp8IC8qIFN5c3RlbSBoZWFkZXIg dG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAg ICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciB3Y3NubGVuICgpOyBiZWxvdy4KfCAgICAg UHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBz aW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxl cnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vs c2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiB3Y3NubGVuCnwg CnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy b3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl IG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv dWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwg I2VuZGlmCnwgY2hhciB3Y3NubGVuICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAg c29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlh cy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3djc25sZW4gfHwgZGVmaW5lZCBfX3N0dWJfX193 Y3NubGVuCnwgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVy biB3Y3NubGVuICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjA5Mzk6IHJl c3VsdDogbm8KY29uZmlndXJlOjIwOTM5OiBjaGVja2luZyBmb3IgbWJydG93Ywpjb25maWd1cmU6 MjA5Mzk6IHJlc3VsdDogbm8KY29uZmlndXJlOjIwOTM5OiBjaGVja2luZyBmb3Igd2NydG9tYgpj b25maWd1cmU6MjA5Mzk6IHJlc3VsdDogbm8KY29uZmlndXJlOjIwOTQ4OiBjaGVja2luZyB3aGV0 aGVyIF9zbnByaW50ZiBpcyBkZWNsYXJlZApjb25maWd1cmU6MjA5NDg6IGdjYyAtc3RkPWdudTEx IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1h bmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMDk0ODogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3Qg dW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJ T04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZp bmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxB Uk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50 CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAj ZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tF RCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01P REVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2Vu ZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lO VF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklY IAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklY IAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRV UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9u Zwp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAKfCBpbnQK fCBtYWluICgpCnwgewp8ICNpZm5kZWYgX3NucHJpbnRmCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg ICAodm9pZCkgX3NucHJpbnRmOwp8ICNlbHNlCnwgICAodm9pZCkgX3NucHJpbnRmOwp8ICNlbmRp Zgp8ICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjA5NDg6IHJl c3VsdDogbm8KY29uZmlndXJlOjIxMTM4OiBjaGVja2luZyBhYnNvbHV0ZSBuYW1lIG9mIDxhcnBh L2luZXQuaD4KY29uZmlndXJlOjIxMTg3OiByZXN1bHQ6IDxhcnBhL2luZXQuaD4KY29uZmlndXJl OjIxMjEwOiBjaGVja2luZyB3aGV0aGVyIGluZXRfbnRvcCBpcyBkZWNsYXJlZCB3aXRob3V0IGEg bWFjcm8KY29uZmlndXJlOjIxMjM2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6MjEyMzY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZp bmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZF X0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZp bmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRf TUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3Qg LyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJ QU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9D XzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRl ZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0 ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYg MAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0la RV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJE SUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9N SUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9T VUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpO QU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVD TF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0FDQ0VQVDQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPbiBz b21lIHN5c3RlbXMsIHRoaXMgaGVhZGVyIGlzIG5vdCBzZWxmLWNvbnNpc3RlbnQuICAqLwp8ICNp ZiAhKGRlZmluZWQgX19HTElCQ19fIHx8IGRlZmluZWQgX19VQ0xJQkNfXykKfCAjIGluY2x1ZGUg PHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgX19UQU5ERU0KfCAjIGluY2x1ZGUgPG5l dGRiLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPGFycGEvaW5ldC5oPgp8IAp8IGludAp8IG1haW4g KCkKfCB7CnwgI3VuZGVmIGluZXRfbnRvcAp8ICAgKHZvaWQpIGluZXRfbnRvcDsKfCAgIDsKfCAg IHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIxMjQ0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMTIx MDogY2hlY2tpbmcgd2hldGhlciBpbmV0X3B0b24gaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3Jv CmNvbmZpZ3VyZToyMTIzNjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjIxMjM2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENf QUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1v ZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JP U19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8K fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExP R0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lT X05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19j cGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBp bnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X Q0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklY IAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBS SU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9V TlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NO UFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9BQ0NFUFQ0IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT24gc29tZSBz eXN0ZW1zLCB0aGlzIGhlYWRlciBpcyBub3Qgc2VsZi1jb25zaXN0ZW50LiAgKi8KfCAjaWYgIShk ZWZpbmVkIF9fR0xJQkNfXyB8fCBkZWZpbmVkIF9fVUNMSUJDX18pCnwgIyBpbmNsdWRlIDxzeXMv c29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIF9fVEFOREVNCnwgIyBpbmNsdWRlIDxuZXRkYi5o Pgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8ICN1bmRlZiBpbmV0X3B0b24KfCAgICh2b2lkKSBpbmV0X3B0b247CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToyMTI0NDogcmVzdWx0OiBubwpjb25maWd1cmU6MjEyODg6IGNo ZWNraW5nIGJ5dGVzd2FwLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToyMTI4ODogZ2NjIC1zdGQ9Z251 MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIxMjg4OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVf dCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVD VElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2Rl ZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBp bnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8 ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURf TU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAj ZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01J Q19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X SU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZG SVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZG SVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRG IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS RFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBs b25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0JJTkQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8u aD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAj IGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9I CnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8 ICNlbmRpZgp8ICNpbmNsdWRlIDxieXRlc3dhcC5oPgpjb25maWd1cmU6MjEyODg6IHJlc3VsdDog bm8KY29uZmlndXJlOjIxMjg4OiBjaGVja2luZyBieXRlc3dhcC5oIHByZXNlbmNlCmNvbmZpZ3Vy ZToyMTI4ODogL2xpYi9jcHAgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjIxMjg4OiAkPyA9IDAKY29u ZmlndXJlOjIxMjg4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MjEyODg6IFdBUk5JTkc6IGJ5dGVz d2FwLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZApjb25maWd1cmU6MjEyODg6IFdB Uk5JTkc6IGJ5dGVzd2FwLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVh ZGVycz8KY29uZmlndXJlOjIxMjg4OiBXQVJOSU5HOiBieXRlc3dhcC5oOiBzZWUgdGhlIEF1dG9j b25mIGRvY3VtZW50YXRpb24KY29uZmlndXJlOjIxMjg4OiBXQVJOSU5HOiBieXRlc3dhcC5oOiAg ICAgc2VjdGlvbiAiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkIgpjb25maWd1cmU6MjEy ODg6IFdBUk5JTkc6IGJ5dGVzd2FwLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyBy ZXN1bHQKY29uZmlndXJlOjIxMjg4OiBjaGVja2luZyBmb3IgYnl0ZXN3YXAuaApjb25maWd1cmU6 MjEyODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjIxNDk5OiBjaGVja2luZyBmb3IgbGlicmFyeSBj b250YWluaW5nIGNsb2NrX2dldHRpbWUKY29uZmlndXJlOjIxNTMwOiBnY2MgLXN0ZD1nbnUxMSAt byBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMTUzMDogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxp bmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElG Rl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ R19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpF X1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFS X1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZT TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50 bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2Nw bHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGNsb2NrX2dldHRpbWUgKCk7Cnwg aW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gY2xvY2tfZ2V0dGltZSAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjIxNTMwOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAt ZyAtTzIgICBjb25mdGVzdC5jIC1scnQgICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMTUzMDogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n dWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXpl X3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJF Q1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNk ZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf QUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3Qg aW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9Q IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAK fCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVE X01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwg I2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9N SUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VG RklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VG RklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5U RiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU UkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3Qg bG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw ZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1 bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1 cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGNsb2NrX2dldHRpbWUgKCk7CnwgaW50Cnwg bWFpbiAoKQp8IHsKfCByZXR1cm4gY2xvY2tfZ2V0dGltZSAoKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjIxNTMwOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIg ICBjb25mdGVzdC5jIC1scG9zaXg0ICAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjE1MzA6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90 IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNU SU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVm aW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FM QVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGlu dAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwg I2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9N T0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNl bmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlD X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJ TlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJ WCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJ WCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJE VVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxv bmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUg dG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2gg dGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1l bnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMK fCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBjbG9ja19nZXR0aW1lICgpOwp8IGludAp8IG1h aW4gKCkKfCB7CnwgcmV0dXJuIGNsb2NrX2dldHRpbWUgKCk7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToyMTU0NzogcmVzdWx0OiBubwpjb25maWd1cmU6MjE2MjE6IGNoZWNraW5n IGZvciBjbG9ja19nZXR0aW1lCmNvbmZpZ3VyZToyMTYyMTogZ2NjIC1zdGQ9Z251MTEgLW8gY29u ZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjE2MjE6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6 ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElS RUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dP UktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAj ZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190 IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1Qg CnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RF RF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8 ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRP TUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NV RkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90 IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGNsb2NrX2dldHRpbWUgdG8gYW4gaW5ub2N1b3Vz IHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBjbG9ja19nZXR0aW1lLgp8ICAg IEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXku ICAqLwp8ICNkZWZpbmUgY2xvY2tfZ2V0dGltZSBpbm5vY3VvdXNfY2xvY2tfZ2V0dGltZQp8IAp8 IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBm ZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBjbG9ja19n ZXR0aW1lICgpOyBiZWxvdy4KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBp ZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVu IG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMg aW5jbHVkZSA8bGltaXRzLmg+CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRp Zgp8IAp8ICN1bmRlZiBjbG9ja19nZXR0aW1lCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRl cm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBp bnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQg dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZk ZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBjbG9ja19nZXR0aW1l ICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdo aWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21l IGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdp dGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQg X19zdHViX2Nsb2NrX2dldHRpbWUgfHwgZGVmaW5lZCBfX3N0dWJfX19jbG9ja19nZXR0aW1lCnwg Y2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBjbG9ja19n ZXR0aW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjE2MjE6IHJlc3Vs dDogbm8KY29uZmlndXJlOjIxNjIxOiBjaGVja2luZyBmb3IgY2xvY2tfc2V0dGltZQpjb25maWd1 cmU6MjE2MjE6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMg ID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1n bnUxMSIKY29uZmlndXJlOjIxNjIxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9V U0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5l IENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9F TlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmlu ZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5l IG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01B Q1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8q Ki8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFO IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18w X0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYg X19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVf dCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElG Rl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlD X1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VG RklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFN RSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9T TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xf X1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUg R05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNB TElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmlu ZSBjbG9ja19zZXR0aW1lIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMu aD4gZGVjbGFyZXMgY2xvY2tfc2V0dGltZS4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxs aW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGNsb2NrX3NldHRp bWUgaW5ub2N1b3VzX2Nsb2NrX3NldHRpbWUKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmlu ZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNo IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgY2xvY2tfc2V0dGltZSAoKTsgYmVsb3cuCnwgICAgIFBy ZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2lu Y2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJz LiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNl CnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgY2xvY2tfc2V0dGlt ZQp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFu IGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g dHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJD Igp8ICNlbmRpZgp8IGNoYXIgY2xvY2tfc2V0dGltZSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFy eSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRv IGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5h bWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUg aXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZpbmVkIF9fc3R1Yl9jbG9ja19zZXR0aW1lIHx8IGRl ZmluZWQgX19zdHViX19fY2xvY2tfc2V0dGltZQp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50 CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gY2xvY2tfc2V0dGltZSAoKTsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjIxNjIxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMTYyMTogY2hl Y2tpbmcgZm9yIGNsb2NrX2dldGNwdWNsb2NraWQKY29uZmlndXJlOjIxNjIxOiBnY2MgLXN0ZD1n bnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5y ZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMTYy MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwg I2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmlu ZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9G T0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVm aW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJ Q09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVm aW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmlu ZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6 ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf UFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5l IFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lO X1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZp bmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVf TEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgY2xvY2tfZ2V0Y3B1Y2xvY2tp ZCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGNs b2NrX2dldGNwdWNsb2NraWQuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+ IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBjbG9ja19nZXRjcHVjbG9ja2lk IGlubm9jdW91c19jbG9ja19nZXRjcHVjbG9ja2lkCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBk ZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3 aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGNsb2NrX2dldGNwdWNsb2NraWQgKCk7IGJlbG93 Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRl ZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5n IGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMu aD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGNs b2NrX2dldGNwdWNsb2NraWQKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVz cGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGNsb2NrX2dldGNwdWNsb2NraWQgKCk7 CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2gg aXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVu Y3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0 dWJfY2xvY2tfZ2V0Y3B1Y2xvY2tpZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX2Nsb2NrX2dldGNwdWNs b2NraWQKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJu IGNsb2NrX2dldGNwdWNsb2NraWQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToyMTYyMTogcmVzdWx0OiBubwpjb25maWd1cmU6MjE2NDY6IGNoZWNraW5nIGZvciB3aW5zb2Nr Mi5oCmNvbmZpZ3VyZToyMTY0NjogcmVzdWx0OiBubwpjb25maWd1cmU6MjE3NzY6IGNoZWNraW5n IHdoZXRoZXIgY29weXNpZ24gY2FuIGJlIHVzZWQgd2l0aG91dCBsaW5raW5nIHdpdGggbGlibQpj b25maWd1cmU6MjE4MDU6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0 ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAi LXN0ZD1nbnUxMSIKY29uZmlndXJlOjIxODA1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg R3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAj ZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUg SEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAj ZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBT VEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3Ry aWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklH RU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1B TExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNp Zm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1i c3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VU RU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUg UFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdf QVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5U X1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZF X0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNk ZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NB Tk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2lmbmRlZiBfX05PX01BVEhfSU5MSU5FUwp8ICAgICAgICAgICAgICAjIGRlZmluZSBfX05P X01BVEhfSU5MSU5FUyAxIC8qIGZvciBnbGliYyAqLwp8ICAgICAgICAgICAgICAjZW5kaWYKfCAg ICAgICAgICAgICAgI2luY2x1ZGUgPG1hdGguaD4KfCAKfCAgICAgICAgICAgICAgZG91YmxlICgq ZnVuY3B0cikgKGRvdWJsZSwgZG91YmxlKSA9IGNvcHlzaWduOwp8ICAgICAgICAgICAgICBpbnQg aV9yZXQ7CnwgICAgICAgICAgICAgIGZsb2F0IGZfcmV0Owp8ICAgICAgICAgICAgICBkb3VibGUg ZF9yZXQ7CnwgICAgICAgICAgICAgIGxvbmcgZG91YmxlIGxfcmV0Owp8IGludAp8IG1haW4gKCkK fCB7CnwgZG91YmxlIHkgPSBmdW5jcHRyICgxLjYxODAzMzk4ODcsIDEuNjE4MDMzOTg4NykgKyBj b3B5c2lnbiAoMS42MTgwMzM5ODg3LCAxLjYxODAzMzk4ODcpOwp8IAp8ICAgICAgICAgICAgICBy ZXR1cm4geSA8IDAuMyB8fCB5ID4gMS43Owp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MjE4MTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjIxODE3OiBjaGVja2luZyB3aGV0aGVy IGNvcHlzaWduIGNhbiBiZSB1c2VkIHdpdGggbGlibQpjb25maWd1cmU6MjE4NDg6IGdjYyAtc3Rk PWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToyMTg0ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwg I2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmlu ZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwg I2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAj ZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5l IFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8 ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBU NCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklD QUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1F IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQ09OTkVDVCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZm5kZWYgX19OT19NQVRI X0lOTElORVMKfCAgICAgICAgICAgICAgICAjIGRlZmluZSBfX05PX01BVEhfSU5MSU5FUyAxIC8q IGZvciBnbGliYyAqLwp8ICAgICAgICAgICAgICAgICNlbmRpZgp8ICAgICAgICAgICAgICAgICNp bmNsdWRlIDxtYXRoLmg+CnwgCnwgICAgICAgICAgICAgICAgZG91YmxlICgqZnVuY3B0cikgKGRv dWJsZSwgZG91YmxlKSA9IGNvcHlzaWduOwp8ICAgICAgICAgICAgICAgIGludCBpX3JldDsKfCAg ICAgICAgICAgICAgICBmbG9hdCBmX3JldDsKfCAgICAgICAgICAgICAgICBkb3VibGUgZF9yZXQ7 CnwgICAgICAgICAgICAgICAgbG9uZyBkb3VibGUgbF9yZXQ7CnwgaW50CnwgbWFpbiAoKQp8IHsK fCBkb3VibGUgeSA9IGZ1bmNwdHIgKDEuNjE4MDMzOTg4NywgMS42MTgwMzM5ODg3KSArIGNvcHlz aWduICgxLjYxODAzMzk4ODcsIDEuNjE4MDMzOTg4Nyk7CnwgCnwgICAgICAgICAgICAgICAgcmV0 dXJuIHkgPCAwLjMgfHwgeSA+IDEuNzsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln dXJlOjIxODU4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMTkxODogY2hlY2tpbmcgYWJzb2x1dGUg bmFtZSBvZiA8ZGlyZW50Lmg+CmNvbmZpZ3VyZToyMTk2NzogcmVzdWx0OiA8ZGlyZW50Lmg+CmNv bmZpZ3VyZToyMTk5NDogY2hlY2tpbmcgd2hldGhlciBhbHBoYXNvcnQgaXMgZGVjbGFyZWQgd2l0 aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyMjAxMjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIyMDEyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNf QklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5l IG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf U0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZp bmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBT SUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBX SU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBI QVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8 ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEgg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9T RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NPUFlTSUdOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGRpcmVudC5o Pgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGFscGhhc29ydAp8ICAgKHZvaWQpIGFs cGhhc29ydDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyMDIwOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToyMTk5NDogY2hlY2tpbmcgd2hldGhlciBjbG9zZWRpciBpcyBkZWNsYXJl ZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjIyMDEyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjIwMTI6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9k ZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNk ZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwg I2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVm aW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVm aW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklO RCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFM UEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ09QWVNJR04gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8ZGly ZW50Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgY2xvc2VkaXIKfCAgICh2b2lk KSBjbG9zZWRpcjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyMDIwOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToyMTk5NDogY2hlY2tpbmcgd2hldGhlciBkaXJmZCBpcyBkZWNsYXJl ZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjIyMDEyOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjIwMTI6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9k ZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNk ZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwg I2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVm aW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVm aW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklO RCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFM UEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ09QWVNJR04gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8ZGly ZW50Lmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgZGlyZmQKfCAgICh2b2lkKSBk aXJmZDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyMDIwOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToyMTk5NDogY2hlY2tpbmcgd2hldGhlciBmZG9wZW5kaXIgaXMgZGVjbGFyZWQg d2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyMjAxMjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIyMDEyOiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQg MQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBB VEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D TE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPUFlTSUdOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGRpcmVu dC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGZkb3BlbmRpcgp8ICAgKHZvaWQp IGZkb3BlbmRpcjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyMDIwOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToyMTk5NDogY2hlY2tpbmcgd2hldGhlciBvcGVuZGlyIGlzIGRlY2xh cmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjIwMTI6IGdjYyAtc3RkPWdudTExIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGlu ZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMjAxMjogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9n dWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWdu ZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEK fCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P QVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlk X3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8 ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2Rl ZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5l IFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwg I2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBt b2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwg I2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFW RV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAK fCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNk ZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNk ZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9C SU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JF QUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DT1BZU0lHTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxk aXJlbnQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBvcGVuZGlyCnwgICAodm9p ZCkgb3BlbmRpcjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyMDIwOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToyMTk5NDogY2hlY2tpbmcgd2hldGhlciByZWFkZGlyIGlzIGRlY2xh cmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjIwMTI6IGdjYyAtc3RkPWdudTExIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGlu ZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMjAxMjogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9n dWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNF IDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFO VElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWdu ZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEK fCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P QVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlk X3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8 ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2Rl ZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5l IFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwg I2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBt b2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwg I2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFW RV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAK fCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNk ZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNk ZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9C SU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JF QUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DT1BZU0lHTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxk aXJlbnQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiByZWFkZGlyCnwgICAodm9p ZCkgcmVhZGRpcjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyMDIwOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToyMTk5NDogY2hlY2tpbmcgd2hldGhlciByZXdpbmRkaXIgaXMgZGVj bGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyMjAxMjogZ2NjIC1zdGQ9Z251MTEgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBs aW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIyMDEyOiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAt MQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBw aWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAw CnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAj ZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZp bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYK fCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1Qg MAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwg I2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwg I2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwg I2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQ VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf UkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NPUFlTSUdOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PGRpcmVudC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHJld2luZGRpcgp8ICAg KHZvaWQpIHJld2luZGRpcjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyMDIw OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMTk5NDogY2hlY2tpbmcgd2hldGhlciBzY2FuZGlyIGlz IGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjIwMTI6IGdjYyAtc3RkPWdudTEx IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1h bmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMjAxMjogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3Qg dW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJ T04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZp bmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxB Uk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50 CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAj ZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tF RCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01P REVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2Vu ZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lO VF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklY IAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklY IAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRV UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9u Zwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9B Q0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxkaXJlbnQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBzY2FuZGlyCnwg ICAodm9pZCkgc2NhbmRpcjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyMDIw OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMjAzOTogY2hlY2tpbmcgZm9yIGRpcmZkCmNvbmZpZ3Vy ZToyMjAzOTogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MjIwMzk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUg bW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFD Uk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoq Lwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBf SVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBf X2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90 IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZG X1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNf VF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZG SVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1F IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9f U05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBH TlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04g MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgZGlyZmQgdG8gYW4gaW5ub2N1 b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBkaXJmZC4KfCAgICBGb3Ig ZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8K fCAjZGVmaW5lIGRpcmZkIGlubm9jdW91c19kaXJmZAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8g ZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAg d2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBkaXJmZCAoKTsgYmVsb3cuCnwgICAgIFByZWZl ciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UK fCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAg Ki8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwg IyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgZGlyZmQKfCAKfCAvKiBP dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAg ICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBH Q0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp bGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYK fCBjaGFyIGRpcmZkICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3Ig ZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBF Tk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5n IHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwg I2lmIGRlZmluZWQgX19zdHViX2RpcmZkIHx8IGRlZmluZWQgX19zdHViX19fZGlyZmQKfCBjaG9r ZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGRpcmZkICgpOwp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjIwMzk6IHJlc3VsdDogbm8KY29uZmln dXJlOjIyMDQ4OiBjaGVja2luZyB3aGV0aGVyIGRpcmZkIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToy MjA0ODogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjIyMDQ4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAj ZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8 ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVm aW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAj ZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5l IHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUg VE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwg I2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0 IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNB TElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICNpbmNsdWRlIDxk aXJlbnQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZm5kZWYgZGlyZmQKfCAjaWZkZWYg X19jcGx1c3BsdXMKfCAgICh2b2lkKSBkaXJmZDsKfCAjZWxzZQp8ICAgKHZvaWQpIGRpcmZkOwp8 ICNlbmRpZgp8ICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjIw NDg6IHJlc3VsdDogbm8KY29uZmlndXJlOjIyMDY1OiBjaGVja2luZyB3aGV0aGVyIGRpcmZkIGlz IGEgbWFjcm8KY29uZmlndXJlOjIyMDg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMjExNTogY2hl Y2tpbmcgaG93IHRvIGdldCB0aGUgZmlsZSBkZXNjcmlwdG9yIGFzc29jaWF0ZWQgd2l0aCBhbiBv cGVuIERJUioKY29uZmlndXJlOjIyMTM4OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgLURESVJf RkRfTUVNQkVSX05BTUU9ZF9mZCAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMjEzODogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxp bmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElG Rl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ R19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpF X1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFS X1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZT TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50 bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElS RkQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAgICAgICAgICAgICNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KfCAgICAgICAgICAgICNpbmNsdWRlIDxkaXJlbnQuaD4KfCBpbnQKfCBtYWlu ICgpCnwgewp8IERJUiAqZGlyX3AgPSBvcGVuZGlyKCIuIik7ICh2b2lkKSBkaXJfcC0+RElSX0ZE X01FTUJFUl9OQU1FOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjIxMzg6IGdj YyAtc3RkPWdudTExIC1jIC1nIC1PMiAtRERJUl9GRF9NRU1CRVJfTkFNRT1kZF9mZCAgY29uZnRl c3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZToyMjEzODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2Rl ZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2Rl ZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RB VF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmlj dCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VO RElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxM T0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZu ZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0 YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVO ViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9T SVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBU UkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FU T01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9U X1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9U Wk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9E RUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVm aW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5P TklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZ U0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KfCAKfCAgICAgICAgICAgICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAgICAgICAgICAgICNp bmNsdWRlIDxkaXJlbnQuaD4KfCBpbnQKfCBtYWluICgpCnwgewp8IERJUiAqZGlyX3AgPSBvcGVu ZGlyKCIuIik7ICh2b2lkKSBkaXJfcC0+RElSX0ZEX01FTUJFUl9OQU1FOwp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MjIxNTI6IHJlc3VsdDogbm9fc3VjaF9tZW1iZXIKY29uZmln dXJlOjIyMTg1OiBjaGVja2luZyB3aGV0aGVyIC8vIGlzIGRpc3RpbmN0IGZyb20gLwpjb25maWd1 cmU6MjIyMTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjIyMzYyOiBjaGVja2luZyBhYnNvbHV0ZSBu YW1lIG9mIDxmY250bC5oPgpjb25maWd1cmU6MjI0MDU6IHJlc3VsdDogIi8vL3Vzci9pbmNsdWRl L2ZjbnRsLmgiCmNvbmZpZ3VyZToyMjQzMDogY2hlY2tpbmcgd2hldGhlciBmY250bCBpcyBkZWNs YXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjIyNDQ4OiBnY2MgLXN0ZD1nbnUxMSAtYyAt ZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjI0NDg6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv Z3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2ln bmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0x CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBp ZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAK fCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNk ZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmlu ZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1Qg bW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8 ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAw CnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAj ZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9S RUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPGZjbnRsLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgZmNudGwK fCAgICh2b2lkKSBmY250bDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyNDU2 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMjQzMDogY2hlY2tpbmcgd2hldGhlciBvcGVuYXQgaXMg ZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyMjQ0ODogZ2NjIC1zdGQ9Z251MTEg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIyNDQ4OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1 bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElP TiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmlu ZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNk ZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9E RV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5k aWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5U X1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVgg CnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVgg CnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQ IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25n CnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FD Q0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxmY250bC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIG9w ZW5hdAp8ICAgKHZvaWQpIG9wZW5hdDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjIyNDU2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMjUxOTogY2hlY2tpbmcgd2hldGhlciBjb252 ZXJzaW9uIGZyb20gJ2ludCcgdG8gJ2xvbmcgZG91YmxlJyB3b3Jrcwpjb25maWd1cmU6MjI1NjA6 IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6 IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29u ZmlndXJlOjIyNTYwOiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1 cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxp bmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElG Rl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ R19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpF X1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFS X1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZT TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50 bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElS RkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAKfCBpbnQgaSA9IC0xOwp8IHZvbGF0aWxlIGxvbmcgZG91YmxlIGxkOwp8 IGludCBtYWluICgpCnwgewp8ICAgbGQgKz0gaSAqIDEuMEw7CnwgICBpZiAobGQgPiAwKQp8ICAg ICByZXR1cm4gMTsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjIyNTcxOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToyMjU5MjogY2hlY2tpbmcgYWJzb2x1dGUgbmFtZSBvZiA8ZmxvYXQuaD4KY29u ZmlndXJlOjIyNjM1OiByZXN1bHQ6ICIvLy91c3IvbGliL2djYy94ODZfNjQtcmVkaGF0LWxpbnV4 LzQuNC43L2luY2x1ZGUvZmxvYXQuaCIKY29uZmlndXJlOjIyNzEwOiBjaGVja2luZyBmb3Igc3Ry dWN0IGZsb2NrLmxfdHlwZQpjb25maWd1cmU6MjI3MTA6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1P MiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBv cHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMjcxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1 aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWls ZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQg aW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAj ZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJ TUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3Qg aW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNk ZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmlu ZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdP UkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2Rl X3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2Rl ZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAj ZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZp bmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZp bmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZp bmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5E IDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQ QVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8ZmNudGwuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgZmxv Y2sgYWNfYWdncjsKfCBpZiAoYWNfYWdnci5sX3R5cGUpCnwgcmV0dXJuIDA7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyMjcxMDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIyNzEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNf QklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5l IG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf U0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZp bmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBT SUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBX SU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBI QVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8 ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEgg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9T RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRU5WSVJPTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDxmY250bC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBmbG9jayBh Y19hZ2dyOwp8IGlmIChzaXplb2YgYWNfYWdnci5sX3R5cGUpCnwgcmV0dXJuIDA7CnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyMjcxMDogcmVzdWx0OiBubwpjb25maWd1cmU6MjI5 NDA6IGNoZWNraW5nIHdoZXRoZXIgX19mdW5jX18gaXMgYXZhaWxhYmxlCmNvbmZpZ3VyZToyMjk1 NjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1 bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIy OTU2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVm aW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNk ZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5l IElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNk ZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVm aW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNz aXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZp bmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1f SU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2Rl ZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTEla RV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJ TCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D T05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgY29uc3Qg Y2hhciAqc3RyID0gX19mdW5jX187CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToy Mjk2MzogcmVzdWx0OiBubwpjb25maWd1cmU6MjI5NzI6IGNoZWNraW5nIGhvdyB0byBkbyBnZXRh ZGRyaW5mbywgZnJlZWFkZHJpbmZvIGFuZCBnZXRuYW1laW5mbwpjb25maWd1cmU6MjI5Nzc6IGNo ZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgZ2V0YWRkcmluZm8KY29uZmlndXJlOjIzMDA4 OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToyMzAwODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAw CnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05O VUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNw bHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50Cnwg I2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZG SVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJ WCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAj ZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRF TlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5U RiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9D QU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklM RV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklS T04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90 b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1 c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBnZXRhZGRyaW5mbyAoKTsKfCBpbnQK fCBtYWluICgpCnwgewp8IHJldHVybiBnZXRhZGRyaW5mbyAoKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjIzMDA4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIg ICBjb25mdGVzdC5jIC1sc29ja2V0ICAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjMwMDg6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90 IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNU SU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVm aW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FM QVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGlu dAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwg I2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9N T0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNl bmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlD X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJ TlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJ WCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJ WCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJE VVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxv bmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FM RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVu Y19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8q IE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8 ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh IEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz dGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRp Zgp8IGNoYXIgZ2V0YWRkcmluZm8gKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0 YWRkcmluZm8gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyMzAwODogZ2Nj IC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAtbG5ldHdvcmsgICA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToyMzAwODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19U X1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJ WCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19T TlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5h bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhl biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYg X19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBnZXRhZGRyaW5mbyAoKTsK fCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBnZXRhZGRyaW5mbyAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjIzMDA4OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAt ZyAtTzIgICBjb25mdGVzdC5jIC1sbmV0ICAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjMwMDg6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6 ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElS RUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dP UktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAj ZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190 IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1Qg CnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RF RF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8 ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRP TUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NV RkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90 IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExP Q0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9f ZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8 IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y Lgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv ZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs ZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNl bmRpZgp8IGNoYXIgZ2V0YWRkcmluZm8gKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4g Z2V0YWRkcmluZm8gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyMzAyNTog cmVzdWx0OiBubwpjb25maWd1cmU6MjMwMzg6IGNoZWNraW5nIGZvciBnZXRhZGRyaW5mbwpjb25m aWd1cmU6MjMwNjQ6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0 LmMgICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZToyMzA2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2Rl ZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2Rl ZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RB VF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmlj dCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VO RElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxM T0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZu ZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0 YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVO ViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9T SVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBU UkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FU T01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9U X1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9U Wk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9E RUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVm aW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5P TklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZ U0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0 aW9uPiIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5o Pgp8ICNpZmRlZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfTkVUREJfSAp8ICNpbmNsdWRlIDxuZXRkYi5oPgp8ICNlbmRp Zgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IGdldGFkZHJp bmZvKCIiLCAiIiwgTlVMTCwgTlVMTCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToyMzA3MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjMwNzU6IGNoZWNraW5nIGZvciBnZXRhZGRy aW5mbyBpbiB3czJ0Y3BpcC5oIGFuZCAtbHdzMl8zMgpjb25maWd1cmU6MjMxMDA6IGdjYyAtc3Rk PWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgICAtbHdzMl8zMiA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToyMzEwMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAw CnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05O VUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNw bHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50Cnwg I2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZG SVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJ WCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAj ZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRF TlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5U RiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9D QU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklM RV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklS T04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2lmZGVmIEhBVkVfV1MyVENQSVBfSAp8ICNpbmNsdWRl IDx3czJ0Y3BpcC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IGdldGFkZHJpbmZvKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjMxMDg6IHJlc3VsdDogbm8KY29uZmlndXJlOjIz MTIxOiBjaGVja2luZyB3aGV0aGVyIGdhaV9zdHJlcnJvciBpcyBkZWNsYXJlZApjb25maWd1cmU6 MjMxMjE6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToyMzEyMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwg I2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmlu ZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwg I2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAj ZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5l IFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8 ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBU NCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklD QUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1F IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZ TkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpZmRlZiBIQVZFX1NZ U19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfTkVUREJfSAp8ICNpbmNsdWRlIDxuZXRkYi5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1dT MlRDUElQX0gKfCAjaW5jbHVkZSA8d3MydGNwaXAuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8c3Rk ZGVmLmg+CnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIGdhaV9zdHJlcnJvcgp8 ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQpIGdhaV9zdHJlcnJvcjsKfCAjZWxzZQp8ICAg KHZvaWQpIGdhaV9zdHJlcnJvcjsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjIzMTIxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyMzIxOTogY2hl Y2tpbmcgZm9yIHN0cnVjdCBzb2NrYWRkci5zYV9sZW4KY29uZmlndXJlOjIzMjE5OiBnY2MgLXN0 ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjMyMTk6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf TlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09O U1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9N T1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5l IAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdf QVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9U X1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElN RSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1h eF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZE IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RV UExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5l IF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NU UkVSUk9SIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPHN5cy90eXBl cy5oPgp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCBzdGF0aWMgc3RydWN0IHNvY2thZGRyIGFjX2FnZ3I7CnwgaWYgKGFjX2FnZ3Iuc2FfbGVuKQp8 IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjMyMTk6IGdjYyAt c3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyMzIxOTogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxp bmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElG Rl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ R19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpF X1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFS X1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZT TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50 bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElS RkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZp bmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlf U1RSRVJST1IgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8IHN0YXRpYyBzdHJ1Y3Qgc29ja2FkZHIgYWNfYWdncjsKfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iu c2FfbGVuKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjMy MTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjIzMjM2OiBjaGVja2luZyB3aGV0aGVyIGdldGFkZHJp bmZvIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToyMzIzNjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIzMjM2OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQg MQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBB VEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D TE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25v d24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyogc3lzL3R5cGVzLmggaXMgbm90IG5lZWRlZCBhY2Nv cmRpbmcgdG8gUE9TSVgsIGJ1dCB0aGUKfCAgICAgIHN5cy9zb2NrZXQuaCBpbiBpMzg2LXVua25v d24tZnJlZWJzZDQuMTAgYW5kCnwgICAgICBwb3dlcnBjLWFwcGxlLWRhcndpbjUuNSByZXF1aXJl ZCBpdC4gKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1NPQ0tF VF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9ORVRE Ql9ICnwgI2luY2x1ZGUgPG5ldGRiLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfV1MyVENQSVBf SAp8ICNpbmNsdWRlIDx3czJ0Y3BpcC5oPgp8ICNlbmRpZgp8IAp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgI2lmbmRlZiBnZXRhZGRyaW5mbwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQp IGdldGFkZHJpbmZvOwp8ICNlbHNlCnwgICAodm9pZCkgZ2V0YWRkcmluZm87CnwgI2VuZGlmCnwg I2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyMzIzNjogcmVzdWx0 OiBubwpjb25maWd1cmU6MjMyNjE6IGNoZWNraW5nIHdoZXRoZXIgZnJlZWFkZHJpbmZvIGlzIGRl Y2xhcmVkCmNvbmZpZ3VyZToyMzI2MTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjIzMjYxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVm aW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFW RV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVm aW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFU X01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0 IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5E SUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExP Q18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5k ZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3Rh dGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5W IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ WkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRS RElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRP TUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1Rf U1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1Ra TkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RF Q0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZp bmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9O SUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlT SUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E SVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rp b24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQUREUklORk8gMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAgIC8qIHN5cy90 eXBlcy5oIGlzIG5vdCBuZWVkZWQgYWNjb3JkaW5nIHRvIFBPU0lYLCBidXQgdGhlCnwgICAgICBz eXMvc29ja2V0LmggaW4gaTM4Ni11bmtub3duLWZyZWVic2Q0LjEwIGFuZAp8ICAgICAgcG93ZXJw Yy1hcHBsZS1kYXJ3aW41LjUgcmVxdWlyZWQgaXQuICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5o Pgp8ICNpZmRlZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfTkVUREJfSAp8ICNpbmNsdWRlIDxuZXRkYi5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1dTMlRDUElQX0gKfCAjaW5jbHVkZSA8d3MydGNwaXAuaD4KfCAjZW5k aWYKfCAKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZm5kZWYgZnJlZWFkZHJpbmZvCnwgI2lm ZGVmIF9fY3BsdXNwbHVzCnwgICAodm9pZCkgZnJlZWFkZHJpbmZvOwp8ICNlbHNlCnwgICAodm9p ZCkgZnJlZWFkZHJpbmZvOwp8ICNlbmRpZgp8ICNlbmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MjMyNjE6IHJlc3VsdDogbm8KY29uZmlndXJlOjIzMjg2OiBjaGVja2lu ZyB3aGV0aGVyIGdldG5hbWVpbmZvIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToyMzI4NjogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjIzMjg2OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NP TlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGlu ZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZG X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lH X0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVf VF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJf VF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRt YXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJG RCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E VVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmlu ZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9T VFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICAgLyog c3lzL3R5cGVzLmggaXMgbm90IG5lZWRlZCBhY2NvcmRpbmcgdG8gUE9TSVgsIGJ1dCB0aGUKfCAg ICAgIHN5cy9zb2NrZXQuaCBpbiBpMzg2LXVua25vd24tZnJlZWJzZDQuMTAgYW5kCnwgICAgICBw b3dlcnBjLWFwcGxlLWRhcndpbjUuNSByZXF1aXJlZCBpdC4gKi8KfCAjaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9ORVREQl9ICnwgI2luY2x1ZGUgPG5ldGRiLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfV1MyVENQSVBfSAp8ICNpbmNsdWRlIDx3czJ0Y3BpcC5oPgp8 ICNlbmRpZgp8IAp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBnZXRuYW1laW5mbwp8 ICNpZmRlZiBfX2NwbHVzcGx1cwp8ICAgKHZvaWQpIGdldG5hbWVpbmZvOwp8ICNlbHNlCnwgICAo dm9pZCkgZ2V0bmFtZWluZm87CnwgI2VuZGlmCnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZToyMzI4NjogcmVzdWx0OiBubwpjb25maWd1cmU6MjMzMjU6IGNoZWNr aW5nIGZvciBzdHJ1Y3QgYWRkcmluZm8KY29uZmlndXJlOjIzMzI1OiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjMzMjU6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVu c2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9O IC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5l IHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8 ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2Rl ZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RF X1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRp Zgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRf VCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAK fCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcK fCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUND RVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZM T09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19f ICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJF RUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8IAp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaWZkZWYgSEFWRV9T WVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX05FVERCX0gKfCAjaW5jbHVkZSA8bmV0ZGIuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9X UzJUQ1BJUF9ICnwgI2luY2x1ZGUgPHdzMnRjcGlwLmg+CnwgI2VuZGlmCnwgCnwgCnwgaW50Cnwg bWFpbiAoKQp8IHsKfCBpZiAoc2l6ZW9mIChzdHJ1Y3QgYWRkcmluZm8pKQp8IAkgcmV0dXJuIDA7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyMzMyNTogcmVzdWx0OiBubwpjb25m aWd1cmU6MjM2OTQ6IGNoZWNraW5nIHN5cy90aW1lYi5oIHVzYWJpbGl0eQpjb25maWd1cmU6MjM2 OTQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToy MzY5NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2Rl ZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAj ZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmlu ZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAj ZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2Rl ZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBz c2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVm aW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRN X0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNk ZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJ WkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NF SUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMg MQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVf REVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5B TUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lT X1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNU RENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4K fCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8 ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQg U1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9y eS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaW5jbHVkZSA8 c3lzL3RpbWViLmg+CmNvbmZpZ3VyZToyMzY5NDogcmVzdWx0OiBubwpjb25maWd1cmU6MjM2OTQ6 IGNoZWNraW5nIHN5cy90aW1lYi5oIHByZXNlbmNlCmNvbmZpZ3VyZToyMzY5NDogL2xpYi9jcHAg IGNvbmZ0ZXN0LmMKY29uZmlndXJlOjIzNjk0OiAkPyA9IDAKY29uZmlndXJlOjIzNjk0OiByZXN1 bHQ6IHllcwpjb25maWd1cmU6MjM2OTQ6IFdBUk5JTkc6IHN5cy90aW1lYi5oOiBwcmVzZW50IGJ1 dCBjYW5ub3QgYmUgY29tcGlsZWQKY29uZmlndXJlOjIzNjk0OiBXQVJOSU5HOiBzeXMvdGltZWIu aDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPwpjb25maWd1cmU6 MjM2OTQ6IFdBUk5JTkc6IHN5cy90aW1lYi5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRp b24KY29uZmlndXJlOjIzNjk0OiBXQVJOSU5HOiBzeXMvdGltZWIuaDogICAgIHNlY3Rpb24gIlBy ZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZCIKY29uZmlndXJlOjIzNjk0OiBXQVJOSU5HOiBz eXMvdGltZWIuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdApjb25maWd1 cmU6MjM2OTQ6IGNoZWNraW5nIGZvciBzeXMvdGltZWIuaApjb25maWd1cmU6MjM2OTQ6IHJlc3Vs dDogbm8KY29uZmlndXJlOjIzNzA2OiBjaGVja2luZyBmb3IgX2Z0aW1lCmNvbmZpZ3VyZToyMzcw NjogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6MjM3MDY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExP Q0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05f REVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JS T0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4g MAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9O TlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVz cGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8 ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZp bmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFS X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VG RklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZG SVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwg I2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRG IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VU RU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklO VEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJf Q0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJ TEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJ Uk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERS SU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQ RUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2 b2lkCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBfZnRpbWUgdG8gYW4gaW5u b2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBfZnRpbWUuCnwgICAg Rm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4g ICovCnwgI2RlZmluZSBfZnRpbWUgaW5ub2N1b3VzX19mdGltZQp8IAp8IC8qIFN5c3RlbSBoZWFk ZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywK fCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBfZnRpbWUgKCk7IGJlbG93Lgp8ICAg ICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQs IHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBp bGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAj ZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIF9mdGltZQp8 IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVy cm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw ZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3 b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8 ICNlbmRpZgp8IGNoYXIgX2Z0aW1lICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMg dGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAg c29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlh cy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX19mdGltZSB8fCBkZWZpbmVkIF9fc3R1Yl9fX19m dGltZQp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4g X2Z0aW1lICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjM3MDY6IHJlc3Vs dDogbm8KY29uZmlndXJlOjIzNzY2OiBjaGVja2luZyBhYnNvbHV0ZSBuYW1lIG9mIDxpY29udi5o Pgpjb25maWd1cmU6MjM4MTU6IHJlc3VsdDogPGljb252Lmg+CmNvbmZpZ3VyZToyNDIwNTogY2hl Y2tpbmcgZm9yIHdpbnNvY2syLmgKY29uZmlndXJlOjI0MjA1OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToyNDI0NzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBpbmV0X250b3AKY29uZmln dXJlOjI0Mjk1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNDMwNDogY2hlY2tpbmcgZm9yIGluZXRf bnRvcApjb25maWd1cmU6MjQzMDQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjI0MzI3OiBjaGVja2lu ZyB3aGV0aGVyIGluZXRfbnRvcCBpcyBkZWNsYXJlZApjb25maWd1cmU6MjQzMjc6IHJlc3VsdDog bm8KY29uZmlndXJlOjI0MzkwOiBjaGVja2luZyBmb3Igd2luc29jazIuaApjb25maWd1cmU6MjQz OTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjI0NDMyOiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250 YWluaW5nIGluZXRfcHRvbgpjb25maWd1cmU6MjQ0NjM6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0 ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI0NDYzOiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVf dCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVD VElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2Rl ZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBp bnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8 ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURf TU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAj ZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01J Q19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X SU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZG SVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZG SVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRG IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS RFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBs b25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NB TEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1 bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJP UiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9H SU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwg I2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw ZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1 bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1 cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGluZXRfcHRvbiAoKTsKfCBpbnQKfCBtYWlu ICgpCnwgewp8IHJldHVybiBpbmV0X3B0b24gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToyNDQ2MzogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRl c3QuYyAtbG5zbCAgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI0NDYzOiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQg MQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBB VEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D TE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25v d24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5G TyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRU SU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZ IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu IHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAi QyIKfCAjZW5kaWYKfCBjaGFyIGluZXRfcHRvbiAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJl dHVybiBpbmV0X3B0b24gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNDQ2 MzogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAtbHJlc29s diAgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjI0NDYzOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVm aW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFW RV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVm aW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFU X01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0 IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5E SUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExP Q18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5k ZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3Rh dGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5W IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ WkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRS RElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRP TUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1Rf U1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1Ra TkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RF Q0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZp bmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9O SUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlT SUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E SVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rp b24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQURE UklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlf VElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAv KiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4K fCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQg c3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5k aWYKfCBjaGFyIGluZXRfcHRvbiAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBpbmV0 X3B0b24gKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNDQ4MDogcmVzdWx0 OiBubwpjb25maWd1cmU6MjQ0ODk6IGNoZWNraW5nIGZvciBpbmV0X3B0b24KY29uZmlndXJlOjI0 NDg5OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUK Y2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEi CmNvbmZpZ3VyZToyNDQ4OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FM TE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJP Tl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2Rl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1Nf QlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwg I2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJ TiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3Bs dXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50 CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NI QVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9T VUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NV RkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAK fCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5T RVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBS SU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJ Ql9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVf RklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VO VklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAj ZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFE RFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05F IHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGlu ZXRfcHRvbiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xh cmVzIGluZXRfcHRvbi4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVj bGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIGluZXRfcHRvbiBpbm5vY3VvdXNfaW5l dF9wdG9uCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQg aG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBj aGFyIGluZXRfcHRvbiAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3Nl cnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlz dHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERD X18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4K fCAjZW5kaWYKfCAKfCAjdW5kZWYgaW5ldF9wdG9uCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVz ZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBh bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAj aWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBpbmV0X3B0b24g KCk7CnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hp Y2ggaXQgaW1wbGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUg ZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0 aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBf X3N0dWJfaW5ldF9wdG9uIHx8IGRlZmluZWQgX19zdHViX19faW5ldF9wdG9uCnwgY2hva2UgbWUK fCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBpbmV0X3B0b24gKCk7Cnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNDQ4OTogcmVzdWx0OiBubwpjb25maWd1 cmU6MjQ1MTI6IGNoZWNraW5nIHdoZXRoZXIgaW5ldF9wdG9uIGlzIGRlY2xhcmVkCmNvbmZpZ3Vy ZToyNDUxMjogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVy cm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmln dXJlOjI0NTEyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lO T0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEK fCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4g MQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAj ZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwg MAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMK fCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVm aW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8 ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZp bmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAw CnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NF UFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9O SUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05B TUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVY UCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G U1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUg SEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5B TUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YXJwYS9pbmV0 Lmg+CnwgICAgICAgICAjaWYgSEFWRV9ORVREQl9ICnwgICAgICAgICAjIGluY2x1ZGUgPG5ldGRi Lmg+CnwgICAgICAgICAjZW5kaWYKfCAKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZm5kZWYg aW5ldF9wdG9uCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgICAodm9pZCkgaW5ldF9wdG9uOwp8ICNl bHNlCnwgICAodm9pZCkgaW5ldF9wdG9uOwp8ICNlbmRpZgp8ICNlbmRpZgp8IAp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjQ1MTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI0NTYy OiBjaGVja2luZyB3aGV0aGVyIGlzZmluaXRlIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToyNDU2Mjog Z2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI0NTYy OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAj ZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5l IFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZP TExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZp bmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVD TF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElD T05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZp bmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5l IGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXpl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9Q VFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5l IFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUg V0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5f U1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmlu ZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9M R1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05O RUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwg I2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNM X0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlO Rk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU U09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIGlz ZmluaXRlCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgICAodm9pZCkgaXNmaW5pdGU7CnwgI2Vsc2UK fCAgICh2b2lkKSBpc2Zpbml0ZTsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjI0NTYyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNDc4MDogY2hl Y2tpbmcgd2hldGhlciBpc2luZiBpcyBkZWNsYXJlZApjb25maWd1cmU6MjQ3ODA6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNDc4MDogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8 ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5r X3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05T VCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01P VEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUg CnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19B VE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1Rf U1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBS SU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4 X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQ TE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUg X19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RS RVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQg MQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPG1hdGguaD4KfCAgICAgICAjaWZuZGVmIGlzaW5mCnwgICAgICAgI2Vycm9y ICJpc2luZiBtdXN0IGJlIGEgbWFjcm8sIG5vdCBhIGZ1bmN0aW9uIgp8ICAgICAgICNlbmRpZgp8 IAp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmbmRlZiBpc2luZgp8ICNpZmRlZiBfX2NwbHVz cGx1cwp8ICAgKHZvaWQpIGlzaW5mOwp8ICNlbHNlCnwgICAodm9pZCkgaXNpbmY7CnwgI2VuZGlm CnwgI2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNDc4MDogcmVz dWx0OiBubwpjb25maWd1cmU6MjUwMTA6IGNoZWNraW5nIHdoZXRoZXIgaXNuYW4gbWFjcm8gd29y a3MKY29uZmlndXJlOjI1MDMxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNTA1NzogY2hlY2tpbmcg d2hldGhlciBpc25hbihkb3VibGUpIGNhbiBiZSB1c2VkIHdpdGhvdXQgbGlua2luZyB3aXRoIGxp Ym0KY29uZmlndXJlOjI1MDkxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNTA5NjogY2hlY2tpbmcg d2hldGhlciBpc25hbihkb3VibGUpIGNhbiBiZSB1c2VkIHdpdGggbGlibQpjb25maWd1cmU6MjUx MzM6IHJlc3VsdDogbm8KY29uZmlndXJlOjI1MTg2OiBjaGVja2luZyB3aGV0aGVyIGlzbmFuKGZs b2F0KSBjYW4gYmUgdXNlZCB3aXRob3V0IGxpbmtpbmcgd2l0aCBsaWJtCmNvbmZpZ3VyZToyNTIy MDogcmVzdWx0OiBubwpjb25maWd1cmU6MjUyMjU6IGNoZWNraW5nIHdoZXRoZXIgaXNuYW4oZmxv YXQpIGNhbiBiZSB1c2VkIHdpdGggbGlibQpjb25maWd1cmU6MjUyNjI6IHJlc3VsdDogbm8KY29u ZmlndXJlOjI1Mzg3OiBjaGVja2luZyB3aGVyZSB0byBmaW5kIHRoZSBleHBvbmVudCBpbiBhICdm bG9hdCcKY29uZmlndXJlOjI1NDc2OiByZXN1bHQ6IHVua25vd24KY29uZmlndXJlOjI1NTE2OiBj aGVja2luZyB3aGV0aGVyIGlzbmFuKGxvbmcgZG91YmxlKSBjYW4gYmUgdXNlZCB3aXRob3V0IGxp bmtpbmcgd2l0aCBsaWJtCmNvbmZpZ3VyZToyNTU1MDogcmVzdWx0OiBubwpjb25maWd1cmU6MjU1 NTU6IGNoZWNraW5nIHdoZXRoZXIgaXNuYW4obG9uZyBkb3VibGUpIGNhbiBiZSB1c2VkIHdpdGgg bGlibQpjb25maWd1cmU6MjU1OTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI1NzczOiBjaGVja2lu ZyB3aGVyZSB0byBmaW5kIHRoZSBleHBvbmVudCBpbiBhICdsb25nIGRvdWJsZScKY29uZmlndXJl OjI1ODUzOiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToyNTg1MzogJD8gPSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0 aCBzdGF0dXMgMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8 ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZp bmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P Rk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2Rl ZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUg SUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2Rl ZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZp bmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3Np emVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9G X1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZp bmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmlu ZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9J Tl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVm aW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpF X0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlM IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NP Tk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEK fCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1F SU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9J U0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFORiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICNpbmNs dWRlIDxmbG9hdC5oPgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAjaW5jbHVkZSA8c3RkaW8uaD4K fCAjaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2RlZmluZSBOV09SRFMgICAoKHNpemVvZiAobG9uZyBk b3VibGUpICsgc2l6ZW9mICh1bnNpZ25lZCBpbnQpIC0gMSkgLyBzaXplb2YgKHVuc2lnbmVkIGlu dCkpCnwgdHlwZWRlZiB1bmlvbiB7IGxvbmcgZG91YmxlIHZhbHVlOyB1bnNpZ25lZCBpbnQgd29y ZFtOV09SRFNdOyB9CnwgICAgICAgICBtZW1vcnlfbG9uZ19kb3VibGU7Cnwgc3RhdGljIHVuc2ln bmVkIGludCBvcmVkX3dvcmRzW05XT1JEU107Cnwgc3RhdGljIHVuc2lnbmVkIGludCBhbmRlZF93 b3Jkc1tOV09SRFNdOwp8IHN0YXRpYyB2b2lkIGFkZF90b19vcmVkX3dvcmRzIChsb25nIGRvdWJs ZSB4KQp8IHsKfCAgIG1lbW9yeV9sb25nX2RvdWJsZSBtOwp8ICAgc2l6ZV90IGk7CnwgICAvKiBD bGVhciBpdCBmaXJzdCwgaW4gY2FzZQp8ICAgICAgc2l6ZW9mIChsb25nIGRvdWJsZSkgPCBzaXpl b2YgKG1lbW9yeV9sb25nX2RvdWJsZSkuICAqLwp8ICAgbWVtc2V0ICgmbSwgMCwgc2l6ZW9mICht ZW1vcnlfbG9uZ19kb3VibGUpKTsKfCAgIG0udmFsdWUgPSB4Owp8ICAgZm9yIChpID0gMDsgaSA8 IE5XT1JEUzsgaSsrKQp8ICAgICB7CnwgICAgICAgb3JlZF93b3Jkc1tpXSB8PSBtLndvcmRbaV07 CnwgICAgICAgYW5kZWRfd29yZHNbaV0gJj0gbS53b3JkW2ldOwp8ICAgICB9CnwgfQp8IGludCBt YWluICgpCnwgewp8ICAgc2l6ZV90IGo7CnwgICBGSUxFICpmcCA9IGZvcGVuICgiY29uZnRlc3Qu b3V0IiwgInciKTsKfCAgIGlmIChmcCA9PSBOVUxMKQp8ICAgICByZXR1cm4gMTsKfCAgIGZvciAo aiA9IDA7IGogPCBOV09SRFM7IGorKykKfCAgICAgYW5kZWRfd29yZHNbal0gPSB+ICh1bnNpZ25l ZCBpbnQpIDA7CnwgICBhZGRfdG9fb3JlZF93b3JkcyAoMC4yNUwpOwp8ICAgYWRkX3RvX29yZWRf d29yZHMgKDAuNUwpOwp8ICAgYWRkX3RvX29yZWRfd29yZHMgKDEuMEwpOwp8ICAgYWRkX3RvX29y ZWRfd29yZHMgKDIuMEwpOwp8ICAgYWRkX3RvX29yZWRfd29yZHMgKDQuMEwpOwp8ICAgLyogUmVt b3ZlIGJpdHMgdGhhdCBhcmUgY29tbW9uIChlLmcuIGlmIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBm aXJzdCBtYW50aXNzYQp8ICAgICAgYml0IGlzIGV4cGxpY2l0KS4gICovCnwgICBmb3IgKGogPSAw OyBqIDwgTldPUkRTOyBqKyspCnwgICAgIG9yZWRfd29yZHNbal0gJj0gfmFuZGVkX3dvcmRzW2pd Owp8ICAgLyogTm93IGZpbmQgdGhlIG5vbnplcm8gd29yZC4gICovCnwgICBmb3IgKGogPSAwOyBq IDwgTldPUkRTOyBqKyspCnwgICAgIGlmIChvcmVkX3dvcmRzW2pdICE9IDApCnwgICAgICAgYnJl YWs7CnwgICBpZiAoaiA8IE5XT1JEUykKfCAgICAgewp8ICAgICAgIHNpemVfdCBpOwp8ICAgICAg IGZvciAoaSA9IGogKyAxOyBpIDwgTldPUkRTOyBpKyspCnwgICAgICAgICBpZiAob3JlZF93b3Jk c1tpXSAhPSAwKQp8ICAgICAgICAgICB7CnwgICAgICAgICAgICAgZnByaW50ZiAoZnAsICJ1bmtu b3duIik7CnwgICAgICAgICAgICAgcmV0dXJuIChmY2xvc2UgKGZwKSAhPSAwKTsKfCAgICAgICAg ICAgfQp8ICAgICAgIGZvciAoaSA9IDA7IDsgaSsrKQp8ICAgICAgICAgaWYgKChvcmVkX3dvcmRz W2pdID4+IGkpICYgMSkKfCAgICAgICAgICAgewp8ICAgICAgICAgICAgIGZwcmludGYgKGZwLCAi d29yZCAlZCBiaXQgJWQiLCAoaW50KSBqLCAoaW50KSBpKTsKfCAgICAgICAgICAgICByZXR1cm4g KGZjbG9zZSAoZnApICE9IDApOwp8ICAgICAgICAgICB9CnwgICAgIH0KfCAgIGZwcmludGYgKGZw LCAidW5rbm93biIpOwp8ICAgcmV0dXJuIChmY2xvc2UgKGZwKSAhPSAwKTsKfCB9CnwgCmNvbmZp Z3VyZToyNTg2NTogcmVzdWx0OiB1bmtub3duCmNvbmZpZ3VyZToyNTkxOTogY2hlY2tpbmcgYWJz b2x1dGUgbmFtZSBvZiA8bGFuZ2luZm8uaD4KY29uZmlndXJlOjI1OTY4OiByZXN1bHQ6IDxsYW5n aW5mby5oPgpjb25maWd1cmU6MjYxMjk6IGNoZWNraW5nIHdoZXRoZXIgbmxfbGFuZ2luZm8gaXMg ZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNjE0NzogZ2NjIC1zdGQ9Z251MTEg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI2MTQ3OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1 bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElP TiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmlu ZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNk ZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9E RV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5k aWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5U X1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVgg CnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVgg CnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQ IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25n CnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FD Q0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G TE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNf XyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZS RUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2Rl ZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPGxhbmdpbmZvLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5k ZWYgbmxfbGFuZ2luZm8KfCAgICh2b2lkKSBubF9sYW5naW5mbzsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjI2MTU1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjE3MjogY2hlY2tp bmcgd2hldGhlciBsZGV4cCgpIGNhbiBiZSB1c2VkIHdpdGggbGlibQpjb25maWd1cmU6MjYxOTY6 IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgIC1sbSA+JjUK Y2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEi CmNvbmZpZ3VyZToyNjE5NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FM TE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJP Tl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2Rl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1Nf QlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwg I2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJ TiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3Bs dXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50 CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NI QVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9T VUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NV RkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAK fCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5T RVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBS SU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJ Ql9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVf RklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VO VklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAj ZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFE RFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05F IHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFOTCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpZm5kZWYgX19OT19NQVRIX0lO TElORVMKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZGVmaW5lIF9fTk9fTUFUSF9J TkxJTkVTIDEgLyogZm9yIGdsaWJjICovCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj ZW5kaWYKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxtYXRoLmg+Cnwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgKCpmdW5jcHRyKSAoZG91YmxlLCBp bnQpID0gbGRleHA7CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgeDsKfCBp bnQKfCBtYWluICgpCnwgewp8IHJldHVybiBsZGV4cCAoeCwgLTEpID4gMDsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjI2MjA2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjIxOTog Y2hlY2tpbmcgaWYgTEQgLVdsLC0tdmVyc2lvbi1zY3JpcHQgd29ya3MKY29uZmlndXJlOjI2MjM5 OiBnY2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICAtV2wsLS12ZXJzaW9uLXNjcmlw dD1jb25mdGVzdC5tYXAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjYyMzk6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6 ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElS RUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dP UktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAj ZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190 IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1Qg CnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RF RF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8 ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRP TUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NV RkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90 IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExP Q0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9f ZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVS Uk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRM T0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEK fCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNO QU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6MjYyNjI6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIC1X bCwtLXZlcnNpb24tc2NyaXB0PWNvbmZ0ZXN0Lm1hcCBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToyNjI2MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwg I2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmlu ZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwg I2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAj ZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5l IFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8 ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBU NCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklD QUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1F IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZ TkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhB VkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1F IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNjI3MzogcmVzdWx0OiBubwpjb25maWd1cmU6 MjYyOTI6IGNoZWNraW5nIHdoZXRoZXIgdGhlIC1XZXJyb3Igb3B0aW9uIGlzIHVzYWJsZQpjb25m aWd1cmU6MjYzMTE6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAtV2Vycm9yICBjb25mdGVzdC5j ID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1n bnUxMSIKY29uZmlndXJlOjI2MzExOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9V U0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5l IENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9F TlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmlu ZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5l IG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01B Q1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8q Ki8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFO IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18w X0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYg X19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVf dCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElG Rl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlD X1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VG RklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFN RSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9T TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xf X1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUg R05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNB TElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdO IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJG RCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+ Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklO Rk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElN RVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5J VEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT SU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNOQU5MIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI2MzIwOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToyNjMyMjogY2hlY2tpbmcgZm9yIHNpbXBsZSB2aXNpYmlsaXR5IGRlY2xh cmF0aW9ucwpjb25maWd1cmU6MjYzNDk6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAtZnZpc2li aWxpdHk9aGlkZGVuICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI2MzQ5OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVf dCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVD VElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2Rl ZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBp bnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8 ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURf TU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAj ZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01J Q19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X SU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZG SVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZG SVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRG IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS RFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBs b25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NB TEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1 bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJP UiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9H SU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwg I2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fdmlzaWJpbGl0eV9fKCJoaWRkZW4iKSkp IGludCBoaWRkZW52YXI7CnwgICAgICAgICAgICAgIGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX3Zp c2liaWxpdHlfXygiZGVmYXVsdCIpKSkgaW50IGV4cG9ydGVkdmFyOwp8ICAgICAgICAgICAgICBl eHRlcm4gX19hdHRyaWJ1dGVfXygoX192aXNpYmlsaXR5X18oImhpZGRlbiIpKSkgaW50IGhpZGRl bmZ1bmMgKHZvaWQpOwp8ICAgICAgICAgICAgICBleHRlcm4gX19hdHRyaWJ1dGVfXygoX192aXNp YmlsaXR5X18oImRlZmF1bHQiKSkpIGludCBleHBvcnRlZGZ1bmMgKHZvaWQpOwp8ICAgICAgICAg ICAgICB2b2lkIGR1bW15ZnVuYyAodm9pZCkge30KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjYzNTg6IHJlc3VsdDogbm8KY29uZmln dXJlOjI2NTI3OiBjaGVja2luZyB3aGV0aGVyIGxvY2FsZS5oIGNvbmZvcm1zIHRvIFBPU0lYOjIw MDEKY29uZmlndXJlOjI2NTUyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjU5NjogY2hlY2tpbmcg d2hldGhlciBzdHJ1Y3QgbGNvbnYgaXMgcHJvcGVybHkgZGVmaW5lZApjb25maWd1cmU6MjY2MjM6 IHJlc3VsdDogbm8KY29uZmlndXJlOjI2NjQwOiBjaGVja2luZyBhYnNvbHV0ZSBuYW1lIG9mIDxs b2NhbGUuaD4KY29uZmlndXJlOjI2NjgzOiByZXN1bHQ6ICIvLy91c3IvaW5jbHVkZS9sb2NhbGUu aCIKY29uZmlndXJlOjI2NzA0OiBjaGVja2luZyB3aGV0aGVyIHNldGxvY2FsZSBpcyBkZWNsYXJl ZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI2NzM0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToy NjcwNDogY2hlY2tpbmcgd2hldGhlciBkdXBsb2NhbGUgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1h Y3JvCmNvbmZpZ3VyZToyNjczNDogcmVzdWx0OiBubwpjb25maWd1cmU6MjY3NjQ6IGNoZWNraW5n IGZvciBsb2cxcApjb25maWd1cmU6MjY3NjQ6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1n IC1PMiAgIGNvbmZ0ZXN0LmMgICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQg bGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNjc2NDogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5z aWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04g LTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUg cGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0g MAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50Cnwg I2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVm aW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVf VCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlm CnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9U IDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8 ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8 ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NF UFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxP T1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18g Ijx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVF QUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZp bmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJ TUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5G IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJ VFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9M SVNURU4gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgbG9nMXAgdG8gYW4g aW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBsb2cxcC4KfCAg ICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5 LiAgKi8KfCAjZGVmaW5lIGxvZzFwIGlubm9jdW91c19sb2cxcAp8IAp8IC8qIFN5c3RlbSBoZWFk ZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywK fCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBsb2cxcCAoKTsgYmVsb3cuCnwgICAg IFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwg c2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGls ZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgp8ICNl bHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgbG9nMXAKfCAK fCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv ci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUg b2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291 bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAj ZW5kaWYKfCBjaGFyIGxvZzFwICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhp cyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwg d2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29t ZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4g ICovCnwgI2lmIGRlZmluZWQgX19zdHViX2xvZzFwIHx8IGRlZmluZWQgX19zdHViX19fbG9nMXAK fCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGxvZzFw ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjY3NjQ6IHJlc3VsdDogbm8K Y29uZmlndXJlOjI2ODc1OiBjaGVja2luZyBmb3Igc3RkbGliLmgKY29uZmlndXJlOjI2ODc1OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNjg4NTogY2hlY2tpbmcgZm9yIEdOVSBsaWJjIGNvbXBhdGli bGUgbWFsbG9jCmNvbmZpZ3VyZToyNjkzMjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcwMjE6IGNo ZWNraW5nIGFic29sdXRlIG5hbWUgb2YgPG1hdGguaD4KY29uZmlndXJlOjI3MDcwOiByZXN1bHQ6 IDxtYXRoLmg+CmNvbmZpZ3VyZToyNzA4ODogY2hlY2tpbmcgd2hldGhlciBOQU4gbWFjcm8gd29y a3MKY29uZmlndXJlOjI3MTExOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MjcxMTE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUg bW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFD Uk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoq Lwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBf SVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBf X2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90 IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZG X1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNf VF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZG SVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1F IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9f U05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBH TlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZE IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4i CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5G TyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1F Wk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklU RSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJ TkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgLyogU29sYXJpcyAxMCBoYXMg YSBicm9rZW4gZGVmaW5pdGlvbiBvZiBOQU4uICBPdGhlciBwbGF0Zm9ybXMKfCAgICAgICAgIGZh aWwgdG8gcHJvdmlkZSBOQU4sIG9yIHByb3ZpZGUgaXQgb25seSBpbiBDOTkgbW9kZTsgdGhpcwp8 ICAgICAgICAgdGVzdCBvbmx5IG5lZWRzIHRvIGZhaWwgd2hlbiBOQU4gaXMgcHJvdmlkZWQgYnV0 IHdyb25nLiAgKi8KfCAgICAgICAgICBmbG9hdCBmID0gMS4wZjsKfCAjaWZkZWYgTkFOCnwgICAg ICAgICAgZiA9IE5BTjsKfCAjZW5kaWYKfCAgICAgICAgICByZXR1cm4gZiA9PSAwOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxMTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3 MTIzOiBjaGVja2luZyB3aGV0aGVyIEhVR0VfVkFMIHdvcmtzCmNvbmZpZ3VyZToyNzE0MTogZ2Nj IC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTQxOiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05W X0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUg UFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlu bGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJE SUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf U0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJ WkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NI QVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBp bnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BM IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9E SVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2Rl ZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dB SV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8g MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5J VEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5l IEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNk ZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BP U0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQK fCBtYWluICgpCnwgewp8IC8qIFNvbGFyaXMgMTAgaGFzIGEgYnJva2VuIGRlZmluaXRpb24gb2Yg SFVHRV9WQUwuICAqLwp8ICAgICAgICAgIGRvdWJsZSBkID0gSFVHRV9WQUw7CnwgICAgICAgICAg cmV0dXJuIGQgPT0gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTQ4OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBhY29zZiBpcyBkZWNs YXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAt ZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv Z3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2ln bmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0x CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBp ZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAK fCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNk ZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmlu ZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1Qg bW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8 ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAw CnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAj ZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9S RUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09S IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZT VEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8 dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFE RFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5l IEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1F T0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZ IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElT VEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFM TE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7Cnwg I3VuZGVmIGFjb3NmCnwgICAodm9pZCkgYWNvc2Y7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRo ZXIgYWNvc2wgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2Nj IC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05W X0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUg UFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlu bGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJE SUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf U0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJ WkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NI QVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBp bnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BM IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9E SVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2Rl ZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dB SV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8g MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5J VEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5l IEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNk ZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BP U0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQK fCBtYWluICgpCnwgewp8ICN1bmRlZiBhY29zbAp8ICAgKHZvaWQpIGFjb3NsOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3 OiBjaGVja2luZyB3aGV0aGVyIGFzaW5mIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25m aWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAw CnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05O VUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNw bHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50Cnwg I2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZG SVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJ WCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAj ZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRF TlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5U RiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9D QU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklM RV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklS T04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVm aW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJ TkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBF RVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZv aWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9N QUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgYXNpbmYKfCAgICh2b2lkKSBh c2luZjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBhc2lubCBpcyBkZWNsYXJlZCB3aXRo b3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9u ICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2Rl ZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8 ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmlu ZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8 ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5l IFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVz dHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19C SUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUg TUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90Cnwg I2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUg bWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9T RVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmlu ZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJ R19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJ TlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhB VkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwg I2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NF IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBm dW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVP RkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9Q VE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEK fCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGFz aW5sCnwgICAodm9pZCkgYXNpbmw7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToy NzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgYXRhbmYg aXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251 MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1 aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVf dCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVD VElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2Rl ZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9B TEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBp bnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8 ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9D S0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURf TU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAj ZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01J Q19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X SU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZG SVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZG SVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRG IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RS RFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBs b25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NB TEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1 bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJP UiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9H SU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwg I2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklT SUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05V TElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgp Cnwgewp8ICN1bmRlZiBhdGFuZgp8ICAgKHZvaWQpIGF0YW5mOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2lu ZyB3aGV0aGVyIGF0YW5sIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6Mjcx NzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToy NzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2Rl ZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAj ZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmlu ZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAj ZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2Rl ZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBz c2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVm aW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRN X0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNk ZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJ WkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NF SUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMg MQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVf REVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5B TUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwg I2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05V IDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01B TExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+ CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgYXRhbmwKfCAgICh2b2lkKSBhdGFubDsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBjYnJ0IGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNy bwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19U X1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJ WCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19T TlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIK fCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZP IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVa T05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRF IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgY2JydAp8ICAgKHZv aWQpIGNicnQ7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0 OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgY2JydGYgaXMgZGVjbGFyZWQg d2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQg MQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBB VEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D TE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25v d24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5G TyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRU SU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZ IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RB VCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19H TlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRl ZiBjYnJ0Zgp8ICAgKHZvaWQpIGNicnRmOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGNi cnRsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8 ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5r X3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05T VCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01P VEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUg CnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19B VE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1Rf U1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBS SU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4 X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQ TE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUg X19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RS RVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQg MQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lO RiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZF X1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5l IEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFp biAoKQp8IHsKfCAjdW5kZWYgY2JydGwKfCAgICh2b2lkKSBjYnJ0bDsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hl Y2tpbmcgd2hldGhlciBjZWlsZiBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJl OjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8 ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAx CnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNk ZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAw CnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8 ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZp bmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklU U0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwg I2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmlu ZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAK fCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQ VDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05J Q0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQ IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZT WU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwg MQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xP RzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9D X0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0 aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGNlaWxmCnwgICAodm9pZCkgY2VpbGY7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25m aWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgY2VpbGwgaXMgZGVjbGFyZWQgd2l0aG91dCBh IG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVm aW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFW RV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVm aW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFU X01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0 IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5E SUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExP Q18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5k ZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3Rh dGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5W IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ WkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRS RElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRP TUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1Rf U1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1Ra TkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RF Q0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZp bmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9O SUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlT SUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E SVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rp b24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQURE UklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlf VElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNG SU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2Rl ZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBjZWlsbAp8 ICAgKHZvaWQpIGNlaWxsOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6 IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGNvcHlzaWduIGlz IGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTEx IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1h bmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3Qg dW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJ T04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZp bmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxB Uk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50 CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAj ZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tF RCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01P REVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2Vu ZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lO VF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklY IAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklY IAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRV UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9u Zwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9B Q0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxF IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5j X18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1Ig MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G UkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lO IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNk ZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNO QU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lC SUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJ Ql9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8 IHsKfCAjdW5kZWYgY29weXNpZ24KfCAgICh2b2lkKSBjb3B5c2lnbjsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hl Y2tpbmcgd2hldGhlciBjb3B5c2lnbmYgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZp Z3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6 IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29u ZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIu NCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18g MQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklU X0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NB IDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RF Q0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dP UktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBp bnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9L RU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAK fCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5V TEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3Bs dXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAj ZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJ WCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklY IAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNk ZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVO ViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRG IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9B Q0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NB Tk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxF X05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJP TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G UkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZp bmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklO Rk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVF Uk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9p ZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNO QU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9M SU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01B TExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg PG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBjb3B5c2lnbmYKfCAgICh2b2lk KSBjb3B5c2lnbmY7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVz dWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgY29weXNpZ25sIGlzIGRl Y2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1j IC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQg bGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5z aWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04g LTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUg cGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0g MAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50Cnwg I2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVm aW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVf VCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlm CnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9U IDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8 ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8 ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NF UFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxP T1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18g Ijx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVF QUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZp bmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJ TUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5G IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJ VFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9M SVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9N QUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsK fCAjdW5kZWYgY29weXNpZ25sCnwgICAodm9pZCkgY29weXNpZ25sOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVj a2luZyB3aGV0aGVyIGNvc2YgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToy NzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAj ZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8 ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVm aW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAj ZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5l IHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUg VE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwg I2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0 IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNB TElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lO QyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFW RV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEK fCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cx UCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19H TlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGgu aD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBjb3NmCnwgICAodm9pZCkgY29zZjsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBjb3NsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNy bwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19U X1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJ WCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19T TlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIK fCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZP IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVa T05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRF IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgY29zbAp8ICAgKHZv aWQpIGNvc2w7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0 OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgY29zaGYgaXMgZGVjbGFyZWQg d2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQg MQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBB VEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D TE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25v d24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5G TyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRU SU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZ IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RB VCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19H TlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRl ZiBjb3NoZgp8ICAgKHZvaWQpIGNvc2hmOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGV4 cGYgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9U RURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAK fCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FU T01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9T VUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9T VUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJ TlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf U1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhf dCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBM T0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBf X2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJF UlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU TE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAx CnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5G IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVf VklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUg R05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWlu ICgpCnwgewp8ICN1bmRlZiBleHBmCnwgICAodm9pZCkgZXhwZjsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tp bmcgd2hldGhlciBleHBsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6Mjcx NzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToy NzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2Rl ZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAj ZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmlu ZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAj ZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2Rl ZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBz c2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVm aW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRN X0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNk ZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJ WkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NF SUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMg MQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVf REVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5B TUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwg I2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05V IDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01B TExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+ CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgZXhwbAp8ICAgKHZvaWQpIGV4cGw7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6 MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgZXhwMiBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8K Y29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTEx Igpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82 NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19B TExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklS T05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9k ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9T X0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9H SU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNf Tk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2Nw bHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGlu dAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dD SEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1Rf U1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9T VUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVgg CnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJ TlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VO U0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05Q UklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVM SUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpF X0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9F TlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRB RERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9O RSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNO QU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhB VkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGV4cDIKfCAgICh2b2lk KSBleHAyOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDog bm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGV4cDJmIGlzIGRlY2xhcmVkIHdp dGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAg Y29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRp b24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxl IDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8i CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50 CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVm aW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUg MAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50 CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZp bmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSBy ZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRT X0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QK fCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmlu ZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVm aW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUg U0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUg V0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUg SEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEK fCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRI IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xP U0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3du IGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tO QU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElN RU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05V IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYg ZXhwMmYKfCAgICh2b2lkKSBleHAyZjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBleHAy bCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1n bnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6 ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElS RUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dP UktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAj ZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190 IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1Qg CnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RF RF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8 ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRP TUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NV RkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90 IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExP Q0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9f ZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVS Uk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRM T0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEK fCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNO QU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9W SVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBH TlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4g KCkKfCB7CnwgI3VuZGVmIGV4cDJsCnwgICAodm9pZCkgZXhwMmw7CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNr aW5nIHdoZXRoZXIgZXhwbTEgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToy NzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAj ZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8 ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVm aW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAj ZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5l IHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUg VE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwg I2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0 IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNB TElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lO QyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFW RV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEK fCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cx UCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19H TlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGgu aD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBleHBtMQp8ICAgKHZvaWQpIGV4cG0xOwp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmln dXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGV4cG0xZiBpcyBkZWNsYXJlZCB3aXRob3V0IGEg bWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZp bmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZF X0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZp bmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRf TUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3Qg LyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJ QU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9D XzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRl ZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0 ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYg MAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0la RV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJE SUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9N SUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9T VUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpO QU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVD TF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmlu ZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05J Q0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJ R04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJ UkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlv bj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERS SU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9U SU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJ TklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVm aW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGV4cG0xZgp8 ICAgKHZvaWQpIGV4cG0xZjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgy OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBleHBtMWwgaXMg ZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1 bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElP TiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmlu ZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNk ZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9E RV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5k aWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5U X1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVgg CnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVgg CnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQ IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25n CnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FD Q0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G TE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNf XyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZS RUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2Rl ZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJ TElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElC X01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwg ewp8ICN1bmRlZiBleHBtMWwKfCAgICh2b2lkKSBleHBtMWw7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5n IHdoZXRoZXIgZmFic2YgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3 NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1 bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3 MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVm aW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNk ZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5l IElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNk ZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVm aW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNz aXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZp bmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1f SU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2Rl ZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTEla RV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJ TCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D T05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAx CnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9E RUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFN RUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf SVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAj ZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUg MAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFM TE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4K fCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBmYWJzZgp8ICAgKHZvaWQpIGZhYnNmOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJl OjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGZhYnNsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNy bwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19U X1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJ WCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19T TlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIK fCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZP IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVa T05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRF IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgZmFic2wKfCAgICh2 b2lkKSBmYWJzbDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBmbG9vcmYgaXMgZGVjbGFy ZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5l IG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25l ZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9B VElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRf dCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwg I2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVm aW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUg V09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1v ZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAj ZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8 ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2Rl ZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJ TkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVB TFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RB VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVu a25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERS SU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU U09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBH RVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9G REFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RF TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9M U1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExP Q19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1 bmRlZiBmbG9vcmYKfCAgICh2b2lkKSBmbG9vcmY7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRo ZXIgZmxvb3JsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdj YyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2Rl ZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBT VEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xM T1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5l IG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09O Vl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5l IFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBp bmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRS RElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBT SVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdD SEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZ U19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUg aW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQ TCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVD VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf RElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNk ZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9H QUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZP IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNP Q0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklO SVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmlu ZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAj ZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19Q T1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50 CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgZmxvb3JsCnwgICAodm9pZCkgZmxvb3JsOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3 MTU3OiBjaGVja2luZyB3aGV0aGVyIGZtYSBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29u ZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExP Q0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05f REVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JS T0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4g MAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9O TlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVz cGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8 ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZp bmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFS X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VG RklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZG SVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwg I2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRG IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VU RU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklO VEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJf Q0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJ TEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJ Uk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERS SU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQ RUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2 b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5E IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVf TUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVk ZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGZtYQp8ICAgKHZvaWQpIGZt YTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBmbWFmIGlzIGRlY2xhcmVkIHdpdGhvdXQg YSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2Rl ZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2Rl ZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RB VF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmlj dCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VO RElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxM T0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZu ZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0 YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVO ViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9T SVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBU UkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FU T01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9U X1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9U Wk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9E RUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVm aW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5P TklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZ U0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0 aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFE RFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZ X1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT RklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNk ZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgZm1hZgp8 ICAgKHZvaWQpIGZtYWY7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4Mjog cmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgZm1hbCBpcyBkZWNs YXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAt ZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv Z3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2ln bmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0x CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBp ZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAK fCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNk ZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmlu ZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1Qg bW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8 ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAw CnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAj ZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9S RUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09S IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZT VEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8 dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFE RFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5l IEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1F T0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZ IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElT VEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFM TE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7Cnwg I3VuZGVmIGZtYWwKfCAgICh2b2lkKSBmbWFsOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVy IGZtb2QgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NP TlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGlu ZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZG X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lH X0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVf VF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJf VF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRt YXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJG RCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E VVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmlu ZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9T VFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09Q VCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lT SU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhB VkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZp bmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lY IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBt YWluICgpCnwgewp8ICN1bmRlZiBmbW9kCnwgICAodm9pZCkgZm1vZDsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hl Y2tpbmcgd2hldGhlciBmbW9kZiBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJl OjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8 ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAx CnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNk ZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAw CnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8 ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZp bmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklU U0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwg I2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmlu ZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAK fCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQ VDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05J Q0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQ IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZT WU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwg MQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xP RzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9D X0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0 aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGZtb2RmCnwgICAodm9pZCkgZm1vZGY7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25m aWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgZm1vZGwgaXMgZGVjbGFyZWQgd2l0aG91dCBh IG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVm aW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFW RV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVm aW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFU X01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0 IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5E SUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExP Q18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5k ZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3Rh dGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5W IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ WkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRS RElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRP TUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1Rf U1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1Ra TkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RF Q0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZp bmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9O SUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlT SUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E SVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rp b24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQURE UklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlf VElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNG SU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2Rl ZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBmbW9kbAp8 ICAgKHZvaWQpIGZtb2RsOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6 IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGZyZXhwZiBpcyBk ZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVu c2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9O IC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5l IHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8 ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2Rl ZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RF X1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRp Zgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRf VCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAK fCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcK fCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUND RVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZM T09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19f ICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJF RUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVm aW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRU SU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklM SVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJf TUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7 CnwgI3VuZGVmIGZyZXhwZgp8ICAgKHZvaWQpIGZyZXhwZjsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcg d2hldGhlciBmcmV4cGwgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3 NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1 bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3 MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVm aW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNk ZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5l IElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNk ZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVm aW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNz aXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZp bmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1f SU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2Rl ZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTEla RV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJ TCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D T05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAx CnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9E RUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFN RUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf SVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAj ZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUg MAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFM TE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4K fCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBmcmV4cGwKfCAgICh2b2lkKSBmcmV4cGw7Cnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1 cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgaHlwb3RmIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBt YWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3Qu YyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9 Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxl Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmlu ZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9H TlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f VVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmlu ZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVf RU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmlu ZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9N QUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAv KiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElB TiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0Nf MF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVm IF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRl X3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpF X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJ RkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01J Q19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NV RkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5B TUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf U05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNM X19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5l IEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklD QUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lH TiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElS RkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9u PiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJ TkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJ TUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklO SVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZp bmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgaHlwb3RmCnwg ICAodm9pZCkgaHlwb3RmOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6 IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGh5cG90bCBpcyBk ZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVu c2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9O IC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5l IHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8 ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2Rl ZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RF X1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRp Zgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRf VCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAK fCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcK fCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUND RVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZM T09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19f ICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJF RUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVm aW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRU SU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklM SVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJf TUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7 CnwgI3VuZGVmIGh5cG90bAp8ICAgKHZvaWQpIGh5cG90bDsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcg d2hldGhlciBpbG9nYiBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0 OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVu cmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjcx NzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8 ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZp bmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P Rk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2Rl ZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUg SUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2Rl ZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZp bmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3Np emVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9G X1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZp bmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmlu ZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9J Tl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVm aW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpF X0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlM IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NP Tk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEK fCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1F SU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9J U0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNk ZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAw CnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxM T0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8 IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGlsb2diCnwgICAodm9pZCkgaWxvZ2I7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6 MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgaWxvZ2JmIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNy bwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19U X1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJ WCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19T TlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIK fCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZP IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVa T05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRF IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgaWxvZ2JmCnwgICAo dm9pZCkgaWxvZ2JmOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJl c3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGlsb2dibCBpcyBkZWNs YXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAt ZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv Z3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1B TlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2ln bmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0x CnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBp ZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAK fCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNk ZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmlu ZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8 ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1Qg bW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8 ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAw CnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAj ZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9S RUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09S IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZT VEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8 dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFE RFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5l IEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1F T0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZ IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElT VEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFM TE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7Cnwg I3VuZGVmIGlsb2dibAp8ICAgKHZvaWQpIGlsb2dibDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hl dGhlciBsZGV4cGYgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDog Z2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0 OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUg X1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQy X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUg X1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAj ZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5l IFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZP TExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZp bmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVD TF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElD T05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZp bmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5l IGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXpl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9Q VFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5l IFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUg V0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5f U1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmlu ZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9M R1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05O RUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwg I2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNM X0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlO Rk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU U09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNG SU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVm aW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8 ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9D X1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBp bnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBsZGV4cGYKfCAgICh2b2lkKSBsZGV4cGY7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6 MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgbGRleHBsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNy bwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19U X1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJ WCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19T TlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIK fCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZP IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVa T05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRF IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgbGRleHBsCnwgICAo dm9pZCkgbGRleHBsOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJl c3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIGxvZyBpcyBkZWNsYXJl ZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9k ZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNk ZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwg I2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVm aW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVm aW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklO RCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFM UEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5r bm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJ TkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdF VFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZE QVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVO IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xT VEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9D X0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3Vu ZGVmIGxvZwp8ICAgKHZvaWQpIGxvZzsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBsb2dm IGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdu dTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n dWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXpl X3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJF Q1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNk ZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf QUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3Qg aW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9Q IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAK fCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVE X01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwg I2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9N SUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VG RklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VG RklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5U RiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU UkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3Qg bG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9D QUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19m dW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJS T1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExP R0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8 ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJ U0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdO VUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAo KQp8IHsKfCAjdW5kZWYgbG9nZgp8ICAgKHZvaWQpIGxvZ2Y7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5n IHdoZXRoZXIgbG9nbCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0 OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVu cmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjcx NzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VY VDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmlu ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8 ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZp bmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05P Rk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2Rl ZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUg SUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2Rl ZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZp bmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3Np emVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9G X1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZp bmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmlu ZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9J Tl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVm aW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpF X0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlM IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NP Tk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEK fCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1F SU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9J U0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNk ZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAw CnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxM T0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8 IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGxvZ2wKfCAgICh2b2lkKSBsb2dsOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3 MTU3OiBjaGVja2luZyB3aGV0aGVyIGxvZzEwIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpj b25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK Y2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEi CmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FM TE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJP Tl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2Rl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1Nf QlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwg I2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJ TiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3Bs dXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50 CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NI QVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9T VUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NV RkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAK fCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5T RVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBS SU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJ Ql9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVf RklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VO VklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAj ZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFE RFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05F IHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFW RV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgbG9nMTAKfCAgICh2b2lk KSBsb2cxMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBsb2cxMGYgaXMgZGVjbGFyZWQg d2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQg MQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBB VEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D TE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25v d24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5G TyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRU SU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZ IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RB VCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19H TlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRl ZiBsb2cxMGYKfCAgICh2b2lkKSBsb2cxMGY7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIg bG9nMTBsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAt c3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxp bmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElG Rl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ R19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpF X1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFS X1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZT TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50 bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElS RkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZp bmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlf U1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tP UFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRF IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9J U0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBI QVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVm aW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJ WCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50Cnwg bWFpbiAoKQp8IHsKfCAjdW5kZWYgbG9nMTBsCnwgICAodm9pZCkgbG9nMTBsOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3 OiBjaGVja2luZyB3aGV0aGVyIGxvZzFwIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25m aWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNv bmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNF IDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19f IDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJ VF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9D QSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9E RUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJP S0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAw CnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05O VUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNw bHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50Cnwg I2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZG SVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJ WCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAj ZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRF TlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5U RiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9D QU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklM RV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklS T04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVm aW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJ TkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBF RVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZv aWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9N QUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgbG9nMXAKfCAgICh2b2lkKSBs b2cxcDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBsb2cxcGYgaXMgZGVjbGFyZWQgd2l0 aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNf QklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5l IG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf U0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZp bmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBT SUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBX SU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBI QVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8 ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEgg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9T RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24g ZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05B TUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1F T0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf UFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBs b2cxcGYKfCAgICh2b2lkKSBsb2cxcGY7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgbG9n MXBsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8 ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5r X3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05T VCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01P VEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUg CnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19B VE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1Rf U1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBS SU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4 X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQ TE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUg X19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RS RVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQg MQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lO RiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZF X1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5l IEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFp biAoKQp8IHsKfCAjdW5kZWYgbG9nMXBsCnwgICAodm9pZCkgbG9nMXBsOwp8ICAgOwp8ICAgcmV0 dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBj aGVja2luZyB3aGV0aGVyIGxvZzIgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3Vy ZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVy cm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmln dXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8 ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lO T0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEK fCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wg MQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4g MQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAj ZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwg MAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMK fCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVm aW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8 ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZp bmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAw CnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NF UFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9O SUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05B TUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVY UCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G U1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUg SEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5B TUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5M IDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5L IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9M T0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExP Q19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1h dGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBsb2cyCnwgICAodm9pZCkgbG9nMjsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBsb2cyZiBpcyBkZWNsYXJlZCB3aXRob3V0IGEg bWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZp bmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZF X0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZp bmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRf TUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3Qg LyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJ QU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9D XzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRl ZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0 ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYg MAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0la RV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJE SUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9N SUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9T VUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpO QU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVD TF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmlu ZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05J Q0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJ R04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJ UkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlv bj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERS SU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9U SU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJ TklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVm aW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGxvZzJmCnwg ICAodm9pZCkgbG9nMmY7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4Mjog cmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgbG9nMmwgaXMgZGVj bGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBs aW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAt MQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBw aWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAw CnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAj ZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZp bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYK fCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1Qg MAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwg I2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwg I2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwg I2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQ VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf UkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9P UiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G U1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAi PHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVB RERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmlu ZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElN RU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElU WSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJ U1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01B TExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8 ICN1bmRlZiBsb2cybAp8ICAgKHZvaWQpIGxvZzJsOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0 aGVyIGxvZ2IgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2Nj IC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05W X0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUg UFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlu bGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJE SUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf U0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJ WkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NI QVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBp bnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BM IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9E SVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2Rl ZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dB SV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8g MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5J VEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5l IEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNk ZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BP U0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQK fCBtYWluICgpCnwgewp8ICN1bmRlZiBsb2diCnwgICAodm9pZCkgbG9nYjsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1Nzog Y2hlY2tpbmcgd2hldGhlciBsb2diZiBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmln dXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTog ZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25m aWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRf SU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0Eg MQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tF TiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8 ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVM TCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1 cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNk ZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUg QklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklY IAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVgg CnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2Rl ZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5W IDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FD Q0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FO T05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVf TkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9O IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZS RVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5G TyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVS TkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lk CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJ TksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFM TE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIGxvZ2JmCnwgICAodm9pZCkgbG9n YmY7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpj b25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgbG9nYmwgaXMgZGVjbGFyZWQgd2l0aG91 dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25m dGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAi LXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg R3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4y LjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAj ZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUg SEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAj ZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBT VEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3Ry aWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklH RU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1B TExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNp Zm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1i c3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VU RU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUg UFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdf QVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5U X1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZF X0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNk ZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NB Tk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NP UFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVu Y3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU QUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZE QVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRP TiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwg I2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBsb2di bAp8ICAgKHZvaWQpIGxvZ2JsOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6Mjcx ODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIG1vZGYgaXMg ZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1 bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElP TiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmlu ZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNk ZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9E RV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5k aWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5U X1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVgg CnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVgg CnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQ IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25n CnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FD Q0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G TE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNf XyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZS RUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2Rl ZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJ TElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElC X01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwg ewp8ICN1bmRlZiBtb2RmCnwgICAodm9pZCkgbW9kZjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hl dGhlciBtb2RmZiBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBn Y2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVj b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ T1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf UE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBf VEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNk ZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUg U1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmlu ZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9M TE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmlu ZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNM X0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNP TlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmlu ZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUg aW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVf dCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BU UkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUg U0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBX Q0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9T WVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5l IGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xH UEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5F Q1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAj ZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5G TyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRT T0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJ TklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZp bmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwg I2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0Nf UE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGlu dAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIG1vZGZmCnwgICAodm9pZCkgbW9kZmY7CnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6Mjcx NTc6IGNoZWNraW5nIHdoZXRoZXIgbW9kZmwgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNv bmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpj YzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIK Y29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRf QklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxM T0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9O X0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVf dCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19C Uk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAj ZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lO IDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05P Tk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1 c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQK fCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hB Ul9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VG RklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8 ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5U RiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNF VEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJ TlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElC X0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9G SUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5W SVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQURE UklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU UEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUg dm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZF X01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBtb2RmbAp8ICAgKHZvaWQp IG1vZGZsOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDog bm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIHBvd2YgaXMgZGVjbGFyZWQgd2l0 aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNf QklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5l IG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf U0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZp bmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBT SUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBX SU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBI QVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8 ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEgg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9T RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24g ZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05B TUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1F T0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf UFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBw b3dmCnwgICAodm9pZCkgcG93ZjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3 MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciByZW1haW5k ZXIgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9U RURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAK fCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FU T01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9T VUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9T VUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJ TlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf U1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhf dCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBM T0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBf X2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJF UlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU TE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAx CnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5G IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVf VklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUg R05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWlu ICgpCnwgewp8ICN1bmRlZiByZW1haW5kZXIKfCAgICh2b2lkKSByZW1haW5kZXI7CnwgICA7Cnwg ICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6Mjcx NTc6IGNoZWNraW5nIHdoZXRoZXIgcmVtYWluZGVyZiBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFj cm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUg bW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFD Uk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoq Lwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBf SVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBf X2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90 IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZG X1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNf VF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZG SVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1F IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9f U05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBH TlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZE IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4i CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5G TyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1F Wk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklU RSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJ TkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHJlbWFpbmRlcmYK fCAgICh2b2lkKSByZW1haW5kZXJmOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIHJlbWFp bmRlcmwgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NP TlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGlu ZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZG X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lH X0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVf VF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJf VF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRt YXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJG RCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E VVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmlu ZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9T VFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09Q VCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lT SU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhB VkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZp bmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lY IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBt YWluICgpCnwgewp8ICN1bmRlZiByZW1haW5kZXJsCnwgICAodm9pZCkgcmVtYWluZGVybDsKfCAg IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciByaW50IGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNy bwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251 MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBf QUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVf U09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9E RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNF XzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBD X0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5W SVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBt b2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNS T1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiov CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRM T0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9J U19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9f Y3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3Qg aW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZf VF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19U X1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJ WCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19T TlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdO VUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJ WkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIK fCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZP IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVa T05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRF IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUg SEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp bmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgcmludAp8ICAgKHZv aWQpIHJpbnQ7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0 OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgcmludGYgaXMgZGVjbGFyZWQg d2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8y ICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9w dGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3Vp bGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmci CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxl LyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8 ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBp bnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNk ZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElN RSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBp bnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2Rl ZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5l IHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09S RFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVm aW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVf dAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVm aW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNk ZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmlu ZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQg MQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBB VEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D TE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25v d24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5G TyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRU SU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZ IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RB VCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19H TlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRl ZiByaW50Zgp8ICAgKHZvaWQpIHJpbnRmOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIHJp bnRsIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3Rk PWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVk IGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9y Zy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBz aXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19E SVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8 ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RF Q0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5r X3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05T VCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19V TkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01P VEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUg CnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19B VE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1Rf U1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1F IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBS SU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4 X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQ TE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUg X19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RS RVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQg MQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lO RiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZF X1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5l IEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFp biAoKQp8IHsKfCAjdW5kZWYgcmludGwKfCAgICh2b2lkKSByaW50bDsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hl Y2tpbmcgd2hldGhlciByb3VuZCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJl OjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8 ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAx CnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNk ZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAw CnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8 ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZp bmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklU U0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwg I2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmlu ZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAK fCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQ VDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05J Q0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQ IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZT WU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwg MQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xP RzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9D X0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0 aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHJvdW5kCnwgICAodm9pZCkgcm91bmQ7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25m aWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgcm91bmRmIGlzIGRlY2xhcmVkIHdpdGhvdXQg YSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRl c3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1z dGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2Rl ZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhB VkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2Rl ZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RB VF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmlj dCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VO RElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxM T0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZu ZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0 YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVO ViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9T SVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBU UkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FU T01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9U X1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9U Wk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9E RUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVm aW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5P TklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZ U0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0 aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFE RFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZ X1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT RklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNk ZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgcm91bmRm CnwgICAodm9pZCkgcm91bmRmOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6Mjcx ODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIHJvdW5kbCBp cyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUx MSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90 IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNU SU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVm aW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FM QVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGlu dAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwg I2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9N T0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNl bmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlD X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJ TlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJ WCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJ WCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJE VVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxv bmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FM RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVu Y19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9S IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJ TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAj ZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJ QklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVM SUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkK fCB7CnwgI3VuZGVmIHJvdW5kbAp8ICAgKHZvaWQpIHJvdW5kbDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tp bmcgd2hldGhlciBzaW5mIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6Mjcx NzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjog dW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToy NzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6 Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAx CnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2Rl ZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2Rl ZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAj ZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmlu ZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAj ZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2Rl ZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBz c2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpF T0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVm aW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRN X0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNk ZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJ WkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NF SUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMg MQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVf REVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5B TUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9O VE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwg I2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05V IDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01B TExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+ CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgc2luZgp8ICAgKHZvaWQpIHNpbmY7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6 MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgc2lubCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8K Y29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1 CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTEx Igpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FM TF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NP VVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVO Q1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82 NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19B TExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklS T05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9k ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9T X0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9H SU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNf Tk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2Nw bHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGlu dAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dD SEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1Rf U1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9T VUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVgg CnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJ TlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VO U0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05Q UklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVM SUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpF X0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9F TlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRB RERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9O RSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNO QU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhB VkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHNpbmwKfCAgICh2b2lk KSBzaW5sOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDog bm8KY29uZmlndXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIHNpbmhmIGlzIGRlY2xhcmVkIHdp dGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAg Y29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRp b24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxl IDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8 ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8i CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50 CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVm aW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUg MAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50 CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZp bmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSBy ZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRT X0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmlu ZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QK fCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmlu ZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVm aW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUg U0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUg V0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUg SEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEK fCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRI IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xP U0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3du IGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8g MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tO QU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElN RU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQg MQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05V IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYg c2luaGYKfCAgICh2b2lkKSBzaW5oZjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciBzcXJ0 ZiBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3MTc0OiBnY2MgLXN0ZD1n bnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBj b21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjcxNzQ6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWct Z3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NP VVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6 ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElS RUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dP UktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAj ZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNM X0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190 IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRP UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1Qg CnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5M T0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RF RF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8 ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRP TUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NV RkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAx CnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9T VFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90 IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExP Q0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9f ZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVS Uk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRM T0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEK fCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNO QU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9W SVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBH TlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWF0aC5oPgp8IGludAp8IG1haW4g KCkKfCB7CnwgI3VuZGVmIHNxcnRmCnwgICAodm9pZCkgc3FydGY7CnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNr aW5nIHdoZXRoZXIgc3FydGwgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToy NzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJl OjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9C RlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJ Ql9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNk ZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RF IDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAj ZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAj ZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8 ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVm aW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8 ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAj ZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5l IHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAj ZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNk ZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUg VE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwg I2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0 IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNB TElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lO QyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFW RV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEK fCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cx UCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19H TlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGgu aD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBzcXJ0bAp8ICAgKHZvaWQpIHNxcnRsOwp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmln dXJlOjI3MTU3OiBjaGVja2luZyB3aGV0aGVyIHRhbmYgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1h Y3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5j ID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1n bnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVD X0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9V U0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5l IENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9F TlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmlu ZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5l IG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01B Q1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8q Ki8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFO IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18w X0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYg X19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVf dCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElG Rl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlD X1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VG RklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFN RSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9T TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xf X1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUg R05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNB TElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdO IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJG RCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+ Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklO Rk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElN RVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5J VEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT SU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmlu ZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiB0YW5mCnwgICAo dm9pZCkgdGFuZjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciB0YW5sIGlzIGRlY2xhcmVk IHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1P MiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBv cHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1 aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWls ZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEK fCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElD UyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVm aW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQg aW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAj ZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJ TUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3Qg aW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNk ZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmlu ZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdP UkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2Rl ZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2Rl X3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2Rl ZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAj ZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZp bmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZp bmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZp bmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5E IDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQ QVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Q0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtu b3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklO Rk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNP Q0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VU VElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRB WSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNU QVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0Nf R05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5k ZWYgdGFubAp8ICAgKHZvaWQpIHRhbmw7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToyNzE4MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgdGFu aGYgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9U RURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAK fCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FU T01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9T VUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9T VUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJ TlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf U1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhf dCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBM T0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBf X2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJF UlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU TE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAx CnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5G IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVf VklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUg R05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWlu ICgpCnwgewp8ICN1bmRlZiB0YW5oZgp8ICAgKHZvaWQpIHRhbmhmOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTU3OiBjaGVj a2luZyB3aGV0aGVyIHRydW5jIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6 MjcxNzQ6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3Vy ZToyNzE3NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9E RSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwg I2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEK fCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEK fCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2Rl ZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAK fCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwg I2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmlu ZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwg I2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAj ZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5l IFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8 ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBU NCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklD QUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1F IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZ TkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhB VkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1F IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5l IEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAx CnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9H MVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0Nf R05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X01BTExPQ19QT1NJWCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRo Lmg+CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgdHJ1bmMKfCAgICh2b2lkKSB0cnVuYzsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI3MTgyOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToyNzE1NzogY2hlY2tpbmcgd2hldGhlciB0cnVuY2YgaXMgZGVjbGFyZWQgd2l0aG91dCBh IG1hY3JvCmNvbmZpZ3VyZToyNzE3NDogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0 ZD1nbnUxMSIKY29uZmlndXJlOjI3MTc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3Vp bGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9W RVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9T UEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVm aW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFW RV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2Rl ZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVm aW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFU X01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0 IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5E SUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExP Q18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5k ZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3Rh dGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5W IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ WkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRS RElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRP TUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1Rf U1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1Ra TkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RF Q0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZp bmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9O SUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlT SUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E SVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rp b24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQURE UklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlf VElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNG SU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2Rl ZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPG1hdGguaD4KfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiB0cnVuY2YK fCAgICh2b2lkKSB0cnVuY2Y7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzE4 MjogcmVzdWx0OiBubwpjb25maWd1cmU6MjcxNTc6IGNoZWNraW5nIHdoZXRoZXIgdHJ1bmNsIGlz IGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6MjcxNzQ6IGdjYyAtc3RkPWdudTEx IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1h bmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzE3NDogJD8gPSAxCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWls ZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0 d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0Nf U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9U WVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3Qg dW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJ T04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZp bmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxB Uk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50 CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAj ZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tF RCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01P REVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2Vu ZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lO VF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklY IAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklY IAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRV UCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9u Zwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9B Q0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxF IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5j X18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1Ig MAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9G UkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lO IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNk ZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNO QU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lC SUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJ Ql9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYXRoLmg+CnwgaW50CnwgbWFpbiAoKQp8 IHsKfCAjdW5kZWYgdHJ1bmNsCnwgICAodm9pZCkgdHJ1bmNsOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MjcxODI6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3MTk2OiBjaGVja2lu ZyB3aGV0aGVyIG1rZGlyIGhhbmRsZXMgdHJhaWxpbmcgc2xhc2gKY29uZmlndXJlOjI3MjI1OiBn Y2MgLXN0ZD1nbnUxMSAtbyBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBl cnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZp Z3VyZToyNzIyNTogJD8gPSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMg MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf TlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09O U1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9N T1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5l IAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdf QVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9U X1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElN RSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1h eF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZE IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RV UExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5l IF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NU UkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BU IDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJ TkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFW RV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmlu ZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVgg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjICAgICAgIGluY2x1ZGUgPHN5cy90eXBl cy5oPgp8ICMgICAgICAgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8IHJldHVybiBta2RpciAoImNvbmZ0ZXN0LmRpci8iLCAwNzAwKTsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjI3MjM4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzI0NzogY2hl Y2tpbmcgd2hldGhlciBta2RpciBoYW5kbGVzIHRyYWlsaW5nIGRvdApjb25maWd1cmU6MjcyNzY6 IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6 IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29u ZmlndXJlOjI3Mjc2OiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1 cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxp bmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElG Rl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ R19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpF X1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFS X1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZT TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50 bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElS RkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZp bmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlf U1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tP UFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRF IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9J U0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBI QVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVm aW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJ WCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICMgICAgICAgaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgIyAgICAgICBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgcmV0dXJuICFta2RpciAoImNvbmZ0ZXN0LmRpci8uLyIsIDA3MDApOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcyODk6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3NDAw OiBjaGVja2luZyBhYnNvbHV0ZSBuYW1lIG9mIDxuZXRkYi5oPgpjb25maWd1cmU6Mjc0NDk6IHJl c3VsdDogPG5ldGRiLmg+CmNvbmZpZ3VyZToyNzQ3NjogY2hlY2tpbmcgd2hldGhlciBnZXRhZGRy aW5mbyBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI3NTAxOiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToyNzQ3NjogY2hlY2tpbmcgd2hldGhlciBmcmVlYWRkcmluZm8gaXMgZGVj bGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyNzUwMTogcmVzdWx0OiBubwpjb25maWd1 cmU6Mjc0NzY6IGNoZWNraW5nIHdoZXRoZXIgZ2FpX3N0cmVycm9yIGlzIGRlY2xhcmVkIHdpdGhv dXQgYSBtYWNybwpjb25maWd1cmU6Mjc1MDE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3NDc2OiBj aGVja2luZyB3aGV0aGVyIGdldG5hbWVpbmZvIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpj b25maWd1cmU6Mjc1MDE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3NTE0OiBjaGVja2luZyB3aGV0 aGVyIDxuZXRpbmV0L2luLmg+IGlzIHNlbGYtY29udGFpbmVkCmNvbmZpZ3VyZToyNzUzMTogZ2Nj IC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3NTMxOiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5l IF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9B VFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RB TkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVm aW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNU QUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUg SEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExP VyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhB VkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUg bmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9J TkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05W X0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUg UFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlu bGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3Qg aW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJE SUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf U0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJ WkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NI QVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf VlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBp bnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BM IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9E SVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2Rl ZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dB SV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUg SEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8g MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09D S09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5J VEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5l IEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNk ZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BP U0lYIDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtP U1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgp8IGludAp8IG1haW4gKCkKfCB7Cnwg CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzUzOTogcmVzdWx0OiBubwpjb25m aWd1cmU6Mjc1NDc6IGNoZWNraW5nIGZvciBuZXRpbmV0L2luLmgKY29uZmlndXJlOjI3NTQ3OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzU2OTogY2hlY2tpbmcgYWJzb2x1dGUgbmFtZSBvZiA8bmV0 aW5ldC9pbi5oPgpjb25maWd1cmU6Mjc2MTg6IHJlc3VsdDogPG5ldGluZXQvaW4uaD4KY29uZmln dXJlOjI3NzU2OiBjaGVja2luZyBmb3Igc3lzL3BzdGF0LmgKY29uZmlndXJlOjI3NzU2OiBnY2Mg LXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2du aXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjc3NTY6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9T SVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FU VFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFO REVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZp bmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RB Q0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9X IDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFW RV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBu bGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZf Q09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dF VENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5s aW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBp bnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJ RkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9T SUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0la RV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hB Ul9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNf VElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9W U05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGlu dG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1Qg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJ UkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVm aW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJ X1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NL T1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklU RSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf SVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUg SEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2Rl ZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9T SVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09T VEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9OTF9MQU5HSU5GTyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz dGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3Rh dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5o Pgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gK fCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVN T1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJp bmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmlu Z3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRp bnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3Rk Lmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9wc3RhdC5oPgpjb25maWd1cmU6Mjc3NTY6 IHJlc3VsdDogbm8KY29uZmlndXJlOjI3NzU2OiBjaGVja2luZyBmb3Igc3lzL3N5c21wLmgKY29u ZmlndXJlOjI3NzU2OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6Mjc3NTY6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExP Q0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05f REVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JS T0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4g MAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9O TlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVz cGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8 ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZp bmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFS X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VG RklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZG SVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwg I2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRG IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VU RU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklO VEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJf Q0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJ TEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJ Uk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERS SU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQ RUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2 b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5E IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVf TUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAj ZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwg IyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAj IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlm ZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAm JiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlm CnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gK fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19I CnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9I CnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8 ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9zeXNtcC5o Pgpjb25maWd1cmU6Mjc3NTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3NzU2OiBjaGVja2luZyBm b3Igc3lzL3BhcmFtLmgKY29uZmlndXJlOjI3NzU2OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzc2 OTogY2hlY2tpbmcgZm9yIHN5cy9zeXNjdGwuaApjb25maWd1cmU6Mjc3Njk6IGdjYyAtc3RkPWdu dTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNv bW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyNzc2OTogJD8gPSAxCmNv bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n dWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXpl X3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJF Q1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNk ZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf QUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3Qg aW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9Q IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAK fCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxP Q0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVE X01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwg I2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9N SUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf V0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VG RklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VG RklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5U RiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NU UkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3Qg bG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9D QUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19m dW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJS T1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExP R0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8 ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJ U0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdO VUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwg I2RlZmluZSBGVU5DX01LRElSX0RPVF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX05M X0xBTkdJTkZPIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCAgICAgICNpZiBIQVZFX1NZU19QQVJBTV9ICnwgICAgICAjIGluY2x1ZGUgPHN5cy9w YXJhbS5oPgp8ICAgICAgI2VuZGlmCnwgCnwgCnwgI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KY29u ZmlndXJlOjI3NzY5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzc4OTogY2hlY2tpbmcgZm9yIHNj aGVkX2dldGFmZmluaXR5CmNvbmZpZ3VyZToyNzc4OTogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRl c3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21t YW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjc3ODk6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3Vp bGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9D X1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90 IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNU SU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJ TkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVm aW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FM QVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGlu dAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwg I2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NL RUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9N T0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNl bmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlD X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJ TlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJ WCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJ WCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJE VVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxv bmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf QUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FM RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVu Y19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9S IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf RlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJ TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAj ZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJ QklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVM SUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNk ZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9M QU5HSU5GTyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBzY2hlZF9nZXRh ZmZpbml0eSB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xh cmVzIHNjaGVkX2dldGFmZmluaXR5Lgp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0 cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwp8ICNkZWZpbmUgc2NoZWRfZ2V0YWZmaW5p dHkgaW5ub2N1b3VzX3NjaGVkX2dldGFmZmluaXR5CnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBk ZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3 aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHNjaGVkX2dldGFmZmluaXR5ICgpOyBiZWxvdy4K fCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZp bmVkLCBzaW5jZQp8ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBj b21waWxlcnMuICAqLwp8IAp8ICNpZmRlZiBfX1NURENfXwp8ICMgaW5jbHVkZSA8bGltaXRzLmg+ CnwgI2Vsc2UKfCAjIGluY2x1ZGUgPGFzc2VydC5oPgp8ICNlbmRpZgp8IAp8ICN1bmRlZiBzY2hl ZF9nZXRhZmZpbml0eQp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVz CnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgc2NoZWRfZ2V0YWZmaW5pdHkgKCk7CnwgLyog VGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w bGVtZW50cwp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfc2No ZWRfZ2V0YWZmaW5pdHkgfHwgZGVmaW5lZCBfX3N0dWJfX19zY2hlZF9nZXRhZmZpbml0eQp8IGNo b2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gc2NoZWRfZ2V0 YWZmaW5pdHkgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzc4OTogcmVz dWx0OiBubwpjb25maWd1cmU6Mjc3ODk6IGNoZWNraW5nIGZvciBzY2hlZF9nZXRhZmZpbml0eV9u cApjb25maWd1cmU6Mjc3ODk6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNv bmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3Nzg5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNf QklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5l IG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf U0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZp bmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBT SUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBX SU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBI QVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8 ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEgg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9T RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24g ZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05B TUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1F T0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf UFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZVTkNfTUtE SVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8gMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgc2NoZWRfZ2V0YWZmaW5pdHlfbnAgdG8g YW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzY2hlZF9n ZXRhZmZpbml0eV9ucC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVj bGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHNjaGVkX2dldGFmZmluaXR5X25wIGlu bm9jdW91c19zY2hlZF9nZXRhZmZpbml0eV9ucAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVm aW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hp Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzY2hlZF9nZXRhZmZpbml0eV9ucCAoKTsgYmVsb3cu CnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVm aW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcg Y29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1ZGUgPGxpbWl0cy5o Pgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAKfCAjdW5kZWYgc2No ZWRfZ2V0YWZmaW5pdHlfbnAKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVz cGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHNjaGVkX2dldGFmZmluaXR5X25wICgp Owp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNo IGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1 bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGgg X18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19z dHViX3NjaGVkX2dldGFmZmluaXR5X25wIHx8IGRlZmluZWQgX19zdHViX19fc2NoZWRfZ2V0YWZm aW5pdHlfbnAKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0 dXJuIHNjaGVkX2dldGFmZmluaXR5X25wICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6Mjc3ODk6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3Nzg5OiBjaGVja2luZyBmb3IgcHN0 YXRfZ2V0ZHluYW1pYwpjb25maWd1cmU6Mjc3ODk6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0 IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3Nzg5OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1 bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElP TiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmlu ZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNk ZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9E RV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5k aWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5U X1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVgg CnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVgg CnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQ IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25n CnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FD Q0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G TE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNf XyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZS RUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2Rl ZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJ TElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElC X01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVm aW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFO R0lORk8gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBEZWZpbmUgcHN0YXRfZ2V0ZHlu YW1pYyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVz IHBzdGF0X2dldGR5bmFtaWMuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+ IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBwc3RhdF9nZXRkeW5hbWljIGlu bm9jdW91c19wc3RhdF9nZXRkeW5hbWljCnwgCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUg X19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAp8ICAgICB3aGljaCBj YW4gY29uZmxpY3Qgd2l0aCBjaGFyIHBzdGF0X2dldGR5bmFtaWMgKCk7IGJlbG93Lgp8ICAgICBQ cmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNp bmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVy cy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxz ZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIHBzdGF0X2dldGR5 bmFtaWMKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9p ZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0 dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90 b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVy biAiQyIKfCAjZW5kaWYKfCBjaGFyIHBzdGF0X2dldGR5bmFtaWMgKCk7CnwgLyogVGhlIEdOVSBD IGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwp8 ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1 YWxseSBuYW1lZAp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1h bCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KfCAjaWYgZGVmaW5lZCBfX3N0dWJfcHN0YXRfZ2V0ZHlu YW1pYyB8fCBkZWZpbmVkIF9fc3R1Yl9fX3BzdGF0X2dldGR5bmFtaWMKfCBjaG9rZSBtZQp8ICNl bmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIHBzdGF0X2dldGR5bmFtaWMgKCk7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyNzc4OTogcmVzdWx0OiBubwpjb25m aWd1cmU6Mjc3ODk6IGNoZWNraW5nIGZvciBzeXNtcApjb25maWd1cmU6Mjc3ODk6IGdjYyAtc3Rk PWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1 bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI3 Nzg5OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9F WFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZp bmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEK fCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVm aW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNk ZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19O T0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVm aW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNk ZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5l IElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNk ZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVm aW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNz aXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZp bmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1f SU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2Rl ZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTEla RV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJ TCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D T05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAx CnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9E RUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFN RUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf SVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAj ZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUg MAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFM TE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVM SUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTkxfTEFOR0lORk8gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAvKiBE ZWZpbmUgc3lzbXAgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBk ZWNsYXJlcyBzeXNtcC4KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVj bGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KfCAjZGVmaW5lIHN5c21wIGlubm9jdW91c19zeXNtcAp8 IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs eSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBzeXNt cCAoKTsgYmVsb3cuCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19T VERDX18gaXMgZGVmaW5lZCwgc2luY2UKfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBm cmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KfCAKfCAjaWZkZWYgX19TVERDX18KfCAjIGluY2x1 ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYKfCAK fCAjdW5kZWYgc3lzbXAKfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw ZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1 bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1 cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHN5c21wICgpOwp8IC8qIFRoZSBHTlUgQyBs aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAg ICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwg bmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX3N5c21wIHx8IGRlZmlu ZWQgX19zdHViX19fc3lzbXAKfCBjaG9rZSBtZQp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkK fCB7CnwgcmV0dXJuIHN5c21wICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 Mjc3ODk6IHJlc3VsdDogbm8KY29uZmlndXJlOjI3Nzg5OiBjaGVja2luZyBmb3Igc3lzY3RsCmNv bmZpZ3VyZToyNzc4OTogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRl c3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICIt c3RkPWdudTExIgpjb25maWd1cmU6Mjc3ODk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBH dWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIu NCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVm aW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNk ZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmlu ZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNk ZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBI QVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAj ZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNk ZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNU QVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJp Y3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdF TkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFM TE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lm bmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJz dGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRF TlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf U0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklU U0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQ VFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19B VE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRf VF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf VFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVf REVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2Rl ZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FO T05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09Q WVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5j dGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRB RERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRB WV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9O IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAj ZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9E T1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBzeXNjdGwgdG8gYW4gaW5ub2N1b3VzIHZhcmlh bnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzeXNjdGwuCnwgICAgRm9yIGV4YW1wbGUs IEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCnwgI2RlZmlu ZSBzeXNjdGwgaW5ub2N1b3VzX3N5c2N0bAp8IAp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5l IF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2gg Y2FuIGNvbmZsaWN0IHdpdGggY2hhciBzeXNjdGwgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxp bWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAg IDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwg CnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5j bHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVmIHN5c2N0bAp8IAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNo YXIgc3lzY3RsICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVu Y3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9T WVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0 YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lm IGRlZmluZWQgX19zdHViX3N5c2N0bCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3N5c2N0bAp8IGNob2tl IG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gc3lzY3RsICgpOwp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6Mjc3ODk6IHJlc3VsdDogbm8KY29uZmln dXJlOjI3ODQzOiBjaGVja2luZyB3aGV0aGVyIG9wZW4gcmVjb2duaXplcyBhIHRyYWlsaW5nIHNs YXNoCmNvbmZpZ3VyZToyNzg4MjogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAg Y29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjc4ODI6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dy YW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRf QklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxM T0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9O X0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVf dCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19C Uk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAj ZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lO IDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05P Tk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1 c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQK fCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hB Ul9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VG RklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8 ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5U RiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNF VEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJ TlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElC X0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9G SUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5W SVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQURE UklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU UEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUg dm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZF X01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwg I2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8gMQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAKfCAjaW5jbHVkZSA8ZmNudGwuaD4KfCAjaWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50IG1haW4gKCkKfCB7CnwgICBpbnQgcmVzdWx0 ID0gMDsKfCAjaWYgSEFWRV9MU1RBVAp8ICAgaWYgKG9wZW4gKCJjb25mdGVzdC5sbmsvIiwgT19S RE9OTFkpICE9IC0xKQp8ICAgICByZXN1bHQgfD0gMTsKfCAjZW5kaWYKfCAgIGlmIChvcGVuICgi Y29uZnRlc3Quc2wvIiwgT19DUkVBVCwgMDYwMCkgPj0gMCkKfCAgICAgcmVzdWx0IHw9IDI7Cnwg ICByZXR1cm4gcmVzdWx0Owp8IH0KY29uZmlndXJlOjI3ODk0OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZToyODA3NzogY2hlY2tpbmcgZm9yIHBvbGwKY29uZmlndXJlOjI4MDc3OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToyODE3OTogY2hlY2tpbmcgYWJzb2x1dGUgbmFtZSBvZiA8cG9sbC5oPgpjb25maWd1 cmU6MjgyMjg6IHJlc3VsdDogPHBvbGwuaD4KY29uZmlndXJlOjI4MjQ5OiBjaGVja2luZyB3aGV0 aGVyIHBvbGwgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyODI3NDogcmVz dWx0OiBubwpjb25maWd1cmU6MjgyODg6IGNoZWNraW5nIGZvciBwdXRlbnYgY29tcGF0aWJsZSB3 aXRoIEdOVSBhbmQgU1ZJRApjb25maWd1cmU6MjgzMjc6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0 ZXN0IC1nIC1PMiAgIGNvbmZ0ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29t bWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI4MzI3OiAkPyA9IDEKY29u ZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50Cnwg I2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5l IEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50Cnwg I2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUg U1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0 cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJ R0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBN QUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAj aWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBt YnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NF VEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5l IFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lH X0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lO VF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFW RV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAj ZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D QU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0Ug MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D T1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1 bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1F IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9G REFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BU T04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgI2RlZmluZSBGVU5DX01LRElS X0RPVF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX05MX0xBTkdJTkZPIDEKfCAjZGVm aW5lIE9QRU5fVFJBSUxJTkdfU0xBU0hfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX09QRU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBF MiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QT0xMIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1 ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGlu Y2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5j bHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYg SEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRl ZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAj IGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMg aW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAj IGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAj IGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBp bmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgICAv KiBQdXQgaXQgaW4gZW52LiAgKi8KfCAgICAgaWYgKHB1dGVudiAoIkNPTkZURVNUX3B1dGVudj12 YWwiKSkKfCAgICAgICByZXR1cm4gMTsKfCAKfCAgICAgLyogVHJ5IHRvIHJlbW92ZSBpdC4gICov CnwgICAgIGlmIChwdXRlbnYgKCJDT05GVEVTVF9wdXRlbnYiKSkKfCAgICAgICByZXR1cm4gMjsK fCAKfCAgICAgLyogTWFrZSBzdXJlIGl0IHdhcyBkZWxldGVkLiAgKi8KfCAgICAgaWYgKGdldGVu diAoIkNPTkZURVNUX3B1dGVudiIpICE9IDApCnwgICAgICAgcmV0dXJuIDM7CnwgCnwgICAgIHJl dHVybiAwOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjgzMzg6IHJlc3Vs dDogbm8KY29uZmlndXJlOjI4MzU5OiBjaGVja2luZyB3aGV0aGVyIF9wdXRlbnYgaXMgZGVjbGFy ZWQKY29uZmlndXJlOjI4MzU5OiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMg PiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdu dTExIgpjb25maWd1cmU6MjgzNTk6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUg X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05V X1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf REZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNf RlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VT RV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUg Q19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VO VklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUg bW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFD Uk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoq Lwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU TE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBf SVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBf X2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90 IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZG X1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNf VF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZG SVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1F IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9f U05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBH TlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04g MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZE IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4i CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5G TyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1F Wk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklU RSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJ TkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5l IEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVH IDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NS09T VEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAxCnwgI2RlZmluZSBPUEVO X1RSQUlMSU5HX1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9PUEVOIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRTIgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUE9MTCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIF9wdXRlbnYK fCAjaWZkZWYgX19jcGx1c3BsdXMKfCAgICh2b2lkKSBfcHV0ZW52Owp8ICNlbHNlCnwgICAodm9p ZCkgX3B1dGVudjsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjI4MzU5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODYxODogY2hlY2tpbmcgZm9y IHdvcmtpbmcgcmVfY29tcGlsZV9wYXR0ZXJuCmNvbmZpZ3VyZToyODgyODogZ2NjIC1zdGQ9Z251 MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVj b2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjg4Mjg6 ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VS Q0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VN QU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNp Z25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAt MQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09f Tk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBw aWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAw CnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAj ZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZp bmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAK fCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9U IG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYK fCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAK fCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1Qg MAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwg I2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwg I2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwg I2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQ VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf UkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9P UiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G U1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAi PHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVB RERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmlu ZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElN RU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElU WSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJ U1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01B TExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5l IEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lO Rk8gMQp8ICNkZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfT1BFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1BJUEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8ICNkZWZpbmUgSEFW RV9ERUNMX19QVVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5WIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRExJTksgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWRlJPTSAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxyZWdleC5oPgp8IAp8ICAgICAg ICAgICAgICNpbmNsdWRlIDxsb2NhbGUuaD4KfCAgICAgICAgICAgICAjaW5jbHVkZSA8bGltaXRz Lmg+CnwgICAgICAgICAgICAgI2luY2x1ZGUgPHN0cmluZy5oPgp8IAp8ICAgICAgICAgICAgICNp ZiBkZWZpbmVkIE1fQ0hFQ0tfQUNUSU9OIHx8IEhBVkVfREVDTF9BTEFSTQp8ICAgICAgICAgICAg ICMgaW5jbHVkZSA8c2lnbmFsLmg+CnwgICAgICAgICAgICAgIyBpbmNsdWRlIDx1bmlzdGQuaD4K fCAgICAgICAgICAgICAjZW5kaWYKfCAKfCAgICAgICAgICAgICAjaWYgSEFWRV9NQUxMT0NfSAp8 ICAgICAgICAgICAgICMgaW5jbHVkZSA8bWFsbG9jLmg+CnwgICAgICAgICAgICAgI2VuZGlmCnwg CnwgICAgICAgICAgICAgI2lmZGVmIE1fQ0hFQ0tfQUNUSU9OCnwgICAgICAgICAgICAgLyogRXhp dCB3aXRoIGRpc3Rpbmd1aXNoYWJsZSBleGl0IGNvZGUuICAqLwp8ICAgICAgICAgICAgIHN0YXRp YyB2b2lkIHNpZ2FicnRfbm9fY29yZSAoaW50IHNpZykgeyByYWlzZSAoU0lHVEVSTSk7IH0KfCAg ICAgICAgICAgICAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IGludCByZXN1bHQgPSAw Owp8ICAgICAgICAgICAgIHN0YXRpYyBzdHJ1Y3QgcmVfcGF0dGVybl9idWZmZXIgcmVnZXg7Cnwg ICAgICAgICAgICAgdW5zaWduZWQgY2hhciBmb2xkZWRfY2hhcnNbVUNIQVJfTUFYICsgMV07Cnwg ICAgICAgICAgICAgaW50IGk7CnwgICAgICAgICAgICAgY29uc3QgY2hhciAqczsKfCAgICAgICAg ICAgICBzdHJ1Y3QgcmVfcmVnaXN0ZXJzIHJlZ3M7CnwgCnwgICAgICAgICAgICAgLyogU29tZSBi dWlsZHMgb2YgZ2xpYmMgZ28gaW50byBhbiBpbmZpbml0ZSBsb29wIG9uIHRoaXMKfCAgICAgICAg ICAgICAgICB0ZXN0LiAgVXNlIGFsYXJtIHRvIGZvcmNlIGRlYXRoLCBhbmQgbWFsbG9wdCB0byBh dm9pZAp8ICAgICAgICAgICAgICAgIG1hbGxvYyByZWN1cnNpb24gaW4gZGlhZ25vc2luZyB0aGUg Y29ycnVwdGVkIGhlYXAuICovCnwgI2lmIEhBVkVfREVDTF9BTEFSTQp8ICAgICAgICAgICAgIHNp Z25hbCAoU0lHQUxSTSwgU0lHX0RGTCk7CnwgICAgICAgICAgICAgYWxhcm0gKDIpOwp8ICNlbmRp Zgp8ICNpZmRlZiBNX0NIRUNLX0FDVElPTgp8ICAgICAgICAgICAgIHNpZ25hbCAoU0lHQUJSVCwg c2lnYWJydF9ub19jb3JlKTsKfCAgICAgICAgICAgICBtYWxsb3B0IChNX0NIRUNLX0FDVElPTiwg Mik7CnwgI2VuZGlmCnwgCnwgICAgICAgICAgICAgaWYgKHNldGxvY2FsZSAoTENfQUxMLCAiZW5f VVMuVVRGLTgiKSkKfCAgICAgICAgICAgICAgIHsKfCAgICAgICAgICAgICAgICAgewp8ICAgICAg ICAgICAgICAgICAgIC8qIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9saWJjLWhhY2tlci8yMDA2 LTA5L21zZzAwMDA4Lmh0bWwKfCAgICAgICAgICAgICAgICAgICAgICBUaGlzIHRlc3QgbmVlZHMg dmFsZ3JpbmQgdG8gY2F0Y2ggdGhlIGJ1ZyBvbiBEZWJpYW4KfCAgICAgICAgICAgICAgICAgICAg ICBHTlUvTGludXggMy4xIHg4NiwgYnV0IGl0IG1pZ2h0IGNhdGNoIHRoZSBidWcgYmV0dGVyCnwg ICAgICAgICAgICAgICAgICAgICAgb24gb3RoZXIgcGxhdGZvcm1zIGFuZCBpdCBzaG91bGRuJ3Qg aHVydCB0byB0cnkgdGhlCnwgICAgICAgICAgICAgICAgICAgICAgdGVzdCBoZXJlLiAgKi8KfCAg ICAgICAgICAgICAgICAgICBzdGF0aWMgY2hhciBjb25zdCBwYXRbXSA9ICJpbnNlcnQgaW50byI7 CnwgICAgICAgICAgICAgICAgICAgc3RhdGljIGNoYXIgY29uc3QgZGF0YVtdID0KfCAgICAgICAg ICAgICAgICAgICAgICJceEZGXDBceDEyXHhBMlx4QUFceEM0XHhCMSxLXHgxMlx4QzRceEIxKlx4 QUNLIjsKfCAgICAgICAgICAgICAgICAgICByZV9zZXRfc3ludGF4IChSRV9TWU5UQVhfR1JFUCB8 IFJFX0hBVF9MSVNUU19OT1RfTkVXTElORQp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgUkVfSUNBU0UpOwp8ICAgICAgICAgICAgICAgICAgIG1lbXNldCAoJnJlZ2V4LCAwLCBz aXplb2YgcmVnZXgpOwp8ICAgICAgICAgICAgICAgICAgIHMgPSByZV9jb21waWxlX3BhdHRlcm4g KHBhdCwgc2l6ZW9mIHBhdCAtIDEsICZyZWdleCk7CnwgICAgICAgICAgICAgICAgICAgaWYgKHMp CnwgICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gMTsKfCAgICAgICAgICAgICAgICAgICBl bHNlIGlmIChyZV9zZWFyY2ggKCZyZWdleCwgZGF0YSwgc2l6ZW9mIGRhdGEgLSAxLAp8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgc2l6ZW9mIGRhdGEgLSAxLCAmcmVn cykKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSAtMSkKfCAgICAgICAgICAgICAgICAg ICAgIHJlc3VsdCB8PSAxOwp8ICAgICAgICAgICAgICAgICAgIHJlZ2ZyZWUgKCZyZWdleCk7Cnwg ICAgICAgICAgICAgICAgIH0KfCAKfCAgICAgICAgICAgICAgICAgewp8ICAgICAgICAgICAgICAg ICAgIC8qIFRoaXMgdGVzdCBpcyBmcm9tIGdsaWJjIGJ1ZyAxNTA3OC4KfCAgICAgICAgICAgICAg ICAgICAgICBUaGUgdGVzdCBjYXNlIGlzIGZyb20gQW5kcmVhcyBTY2h3YWIgaW4KfCAgICAgICAg ICAgICAgICAgICAgICA8aHR0cDovL3d3dy5zb3VyY2V3YXJlLm9yZy9tbC9saWJjLWFscGhhLzIw MTMtMDEvbXNnMDA5NjcuaHRtbD4uCnwgICAgICAgICAgICAgICAgICAgICAgKi8KfCAgICAgICAg ICAgICAgICAgICBzdGF0aWMgY2hhciBjb25zdCBwYXRbXSA9ICJbXnhdeCI7CnwgICAgICAgICAg ICAgICAgICAgc3RhdGljIGNoYXIgY29uc3QgZGF0YVtdID0KfCAgICAgICAgICAgICAgICAgICAg IC8qIDxVMTAwMD48VTEwM0I+PFUxMDNEPjxVMTAxND48VTEwM0E+PFUxMDJGPjxVMTAxNT48VTEw M0E+ICovCnwgICAgICAgICAgICAgICAgICAgICAiXHhlMVx4ODBceDgwIgp8ICAgICAgICAgICAg ICAgICAgICAgIlx4ZTFceDgwXHhiYiIKfCAgICAgICAgICAgICAgICAgICAgICJceGUxXHg4MFx4 YmQiCnwgICAgICAgICAgICAgICAgICAgICAiXHhlMVx4ODBceDk0Igp8ICAgICAgICAgICAgICAg ICAgICAgIlx4ZTFceDgwXHhiYSIKfCAgICAgICAgICAgICAgICAgICAgICJceGUxXHg4MFx4YWYi CnwgICAgICAgICAgICAgICAgICAgICAiXHhlMVx4ODBceDk1Igp8ICAgICAgICAgICAgICAgICAg ICAgIlx4ZTFceDgwXHhiYSIKfCAgICAgICAgICAgICAgICAgICAgICJ4IjsKfCAgICAgICAgICAg ICAgICAgICByZV9zZXRfc3ludGF4ICgwKTsKfCAgICAgICAgICAgICAgICAgICBtZW1zZXQgKCZy ZWdleCwgMCwgc2l6ZW9mIHJlZ2V4KTsKfCAgICAgICAgICAgICAgICAgICBzID0gcmVfY29tcGls ZV9wYXR0ZXJuIChwYXQsIHNpemVvZiBwYXQgLSAxLCAmcmVnZXgpOwp8ICAgICAgICAgICAgICAg ICAgIGlmIChzKQp8ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IDE7CnwgICAgICAgICAg ICAgICAgICAgZWxzZQp8ICAgICAgICAgICAgICAgICAgICAgewp8ICAgICAgICAgICAgICAgICAg ICAgICBpID0gcmVfc2VhcmNoICgmcmVnZXgsIGRhdGEsIHNpemVvZiBkYXRhIC0gMSwKfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgc2l6ZW9mIGRhdGEgLSAxLCAwKTsK fCAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCAmJiBpICE9IDIxKQp8ICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAxOwp8ICAgICAgICAgICAgICAgICAgICAgfQp8ICAg ICAgICAgICAgICAgICAgIHJlZ2ZyZWUgKCZyZWdleCk7CnwgICAgICAgICAgICAgICAgIH0KfCAK fCAgICAgICAgICAgICAgICAgaWYgKCEgc2V0bG9jYWxlIChMQ19BTEwsICJDIikpCnwgICAgICAg ICAgICAgICAgICAgcmV0dXJuIDE7CnwgICAgICAgICAgICAgICB9CnwgCnwgICAgICAgICAgICAg LyogVGhpcyB0ZXN0IGlzIGZyb20gZ2xpYmMgYnVnIDM5NTcsIHJlcG9ydGVkIGJ5IEFuZHJldyBN YWNrZXkuICAqLwp8ICAgICAgICAgICAgIHJlX3NldF9zeW50YXggKFJFX1NZTlRBWF9FR1JFUCB8 IFJFX0hBVF9MSVNUU19OT1RfTkVXTElORSk7CnwgICAgICAgICAgICAgbWVtc2V0ICgmcmVnZXgs IDAsIHNpemVvZiByZWdleCk7CnwgICAgICAgICAgICAgcyA9IHJlX2NvbXBpbGVfcGF0dGVybiAo ImFbXnhdYiIsIDYsICZyZWdleCk7CnwgICAgICAgICAgICAgaWYgKHMpCnwgICAgICAgICAgICAg ICByZXN1bHQgfD0gMjsKfCAgICAgICAgICAgICAvKiBUaGlzIHNob3VsZCBmYWlsLCBidXQgc3Vj Y2VlZHMgZm9yIGdsaWJjLTIuNS4gICovCnwgICAgICAgICAgICAgZWxzZSBpZiAocmVfc2VhcmNo ICgmcmVnZXgsICJhXG5iIiwgMywgMCwgMywgJnJlZ3MpICE9IC0xKQp8ICAgICAgICAgICAgICAg cmVzdWx0IHw9IDI7CnwgCnwgICAgICAgICAgICAgLyogVGhpcyByZWd1bGFyIGV4cHJlc3Npb24g aXMgZnJvbSBTcGVuY2VyIGVyZSB0ZXN0IG51bWJlciA3NQp8ICAgICAgICAgICAgICAgIGluIGdy ZXAtMi4zLiAgKi8KfCAgICAgICAgICAgICByZV9zZXRfc3ludGF4IChSRV9TWU5UQVhfUE9TSVhf RUdSRVApOwp8ICAgICAgICAgICAgIG1lbXNldCAoJnJlZ2V4LCAwLCBzaXplb2YgcmVnZXgpOwp8 ICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPD0gVUNIQVJfTUFYOyBpKyspCnwgICAgICAgICAg ICAgICBmb2xkZWRfY2hhcnNbaV0gPSBpOwp8ICAgICAgICAgICAgIHJlZ2V4LnRyYW5zbGF0ZSA9 IGZvbGRlZF9jaGFyczsKfCAgICAgICAgICAgICBzID0gcmVfY29tcGlsZV9wYXR0ZXJuICgiYVtb Ol06XV1iXG4iLCAxMSwgJnJlZ2V4KTsKfCAgICAgICAgICAgICAvKiBUaGlzIHNob3VsZCBmYWls IHdpdGggX0ludmFsaWQgY2hhcmFjdGVyIGNsYXNzIG5hbWVfIGVycm9yLiAgKi8KfCAgICAgICAg ICAgICBpZiAoIXMpCnwgICAgICAgICAgICAgICByZXN1bHQgfD0gNDsKfCAKfCAgICAgICAgICAg ICAvKiBFbnN1cmUgdGhhdCBbYi1hXSBpcyBkaWFnbm9zZWQgYXMgaW52YWxpZCwgd2hlbgp8ICAg ICAgICAgICAgICAgIHVzaW5nIFJFX05PX0VNUFRZX1JBTkdFUy4gKi8KfCAgICAgICAgICAgICBy ZV9zZXRfc3ludGF4IChSRV9TWU5UQVhfUE9TSVhfRUdSRVAgfCBSRV9OT19FTVBUWV9SQU5HRVMp Owp8ICAgICAgICAgICAgIG1lbXNldCAoJnJlZ2V4LCAwLCBzaXplb2YgcmVnZXgpOwp8ICAgICAg ICAgICAgIHMgPSByZV9jb21waWxlX3BhdHRlcm4gKCJhW2ItYV0iLCA2LCAmcmVnZXgpOwp8ICAg ICAgICAgICAgIGlmIChzID09IDApCnwgICAgICAgICAgICAgICByZXN1bHQgfD0gODsKfCAKfCAg ICAgICAgICAgICAvKiBUaGlzIHNob3VsZCBzdWNjZWVkLCBidXQgZG9lcyBub3QgZm9yIGdsaWJj LTIuMS4zLiAgKi8KfCAgICAgICAgICAgICBtZW1zZXQgKCZyZWdleCwgMCwgc2l6ZW9mIHJlZ2V4 KTsKfCAgICAgICAgICAgICBzID0gcmVfY29tcGlsZV9wYXR0ZXJuICgiezEiLCAyLCAmcmVnZXgp Owp8ICAgICAgICAgICAgIGlmIChzKQp8ICAgICAgICAgICAgICAgcmVzdWx0IHw9IDg7CnwgCnwg ICAgICAgICAgICAgLyogVGhlIGZvbGxvd2luZyBleGFtcGxlIGlzIGRlcml2ZWQgZnJvbSBhIHBy b2JsZW0gcmVwb3J0CnwgICAgICAgICAgICAgICAgYWdhaW5zdCBnYXdrIGZyb20gSm9yZ2UgU3Rv bGZpIDxzdG9sZmlAaWMudW5pY2FtcC5icj4uICAqLwp8ICAgICAgICAgICAgIG1lbXNldCAoJnJl Z2V4LCAwLCBzaXplb2YgcmVnZXgpOwp8ICAgICAgICAgICAgIHMgPSByZV9jb21waWxlX3BhdHRl cm4gKCJbYW5cMzcxXSpuIiwgNywgJnJlZ2V4KTsKfCAgICAgICAgICAgICBpZiAocykKfCAgICAg ICAgICAgICAgIHJlc3VsdCB8PSA4Owp8ICAgICAgICAgICAgIC8qIFRoaXMgc2hvdWxkIG1hdGNo LCBidXQgZG9lcyBub3QgZm9yIGdsaWJjLTIuMi4xLiAgKi8KfCAgICAgICAgICAgICBlbHNlIGlm IChyZV9tYXRjaCAoJnJlZ2V4LCAiYW4iLCAyLCAwLCAmcmVncykgIT0gMikKfCAgICAgICAgICAg ICAgIHJlc3VsdCB8PSA4Owp8IAp8ICAgICAgICAgICAgIG1lbXNldCAoJnJlZ2V4LCAwLCBzaXpl b2YgcmVnZXgpOwp8ICAgICAgICAgICAgIHMgPSByZV9jb21waWxlX3BhdHRlcm4gKCJ4IiwgMSwg JnJlZ2V4KTsKfCAgICAgICAgICAgICBpZiAocykKfCAgICAgICAgICAgICAgIHJlc3VsdCB8PSA4 Owp8ICAgICAgICAgICAgIC8qIGdsaWJjLTIuMi45MyBkb2VzIG5vdCB3b3JrIHdpdGggYSBuZWdh dGl2ZSBSQU5HRSBhcmd1bWVudC4gICovCnwgICAgICAgICAgICAgZWxzZSBpZiAocmVfc2VhcmNo ICgmcmVnZXgsICJ3eHkiLCAzLCAyLCAtMiwgJnJlZ3MpICE9IDEpCnwgICAgICAgICAgICAgICBy ZXN1bHQgfD0gODsKfCAKfCAgICAgICAgICAgICAvKiBUaGUgdmVyc2lvbiBvZiByZWdleC5jIGlu IG9sZGVyIHZlcnNpb25zIG9mIGdudWxpYgp8ICAgICAgICAgICAgICAgIGlnbm9yZWQgUkVfSUNB U0UuICBEZXRlY3QgdGhhdCBwcm9ibGVtIHRvby4gICovCnwgICAgICAgICAgICAgcmVfc2V0X3N5 bnRheCAoUkVfU1lOVEFYX0VNQUNTIHwgUkVfSUNBU0UpOwp8ICAgICAgICAgICAgIG1lbXNldCAo JnJlZ2V4LCAwLCBzaXplb2YgcmVnZXgpOwp8ICAgICAgICAgICAgIHMgPSByZV9jb21waWxlX3Bh dHRlcm4gKCJ4IiwgMSwgJnJlZ2V4KTsKfCAgICAgICAgICAgICBpZiAocykKfCAgICAgICAgICAg ICAgIHJlc3VsdCB8PSAxNjsKfCAgICAgICAgICAgICBlbHNlIGlmIChyZV9zZWFyY2ggKCZyZWdl eCwgIldYWSIsIDMsIDAsIDMsICZyZWdzKSA8IDApCnwgICAgICAgICAgICAgICByZXN1bHQgfD0g MTY7CnwgCnwgICAgICAgICAgICAgLyogQ2F0Y2ggYSBidWcgcmVwb3J0ZWQgYnkgVmluIFNoZWx0 b24gaW4KfCAgICAgICAgICAgICAgICBodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwv YnVnLWNvcmV1dGlscy8yMDA3LTA2L21zZzAwMDg5Lmh0bWwKfCAgICAgICAgICAgICAgICAqLwp8 ICAgICAgICAgICAgIHJlX3NldF9zeW50YXggKFJFX1NZTlRBWF9QT1NJWF9CQVNJQwp8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICYgflJFX0NPTlRFWFRfSU5WQUxJRF9EVVAKfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmIH5SRV9OT19FTVBUWV9SQU5HRVMpOwp8ICAgICAgICAgICAg IG1lbXNldCAoJnJlZ2V4LCAwLCBzaXplb2YgcmVnZXgpOwp8ICAgICAgICAgICAgIHMgPSByZV9j b21waWxlX3BhdHRlcm4gKCJbWzphbG51bTpdXy1dXFwrJCIsIDE2LCAmcmVnZXgpOwp8ICAgICAg ICAgICAgIGlmIChzKQp8ICAgICAgICAgICAgICAgcmVzdWx0IHw9IDMyOwp8IAp8ICAgICAgICAg ICAgIC8qIFJFR19TVEFSVEVORCB3YXMgYWRkZWQgdG8gZ2xpYmMgb24gMjAwNC0wMS0xNS4KfCAg ICAgICAgICAgICAgICBSZWplY3Qgb2xkZXIgdmVyc2lvbnMuICAqLwp8ICAgICAgICAgICAgIGlm ICghIFJFR19TVEFSVEVORCkKfCAgICAgICAgICAgICAgIHJlc3VsdCB8PSA2NDsKfCAKfCAjaWYg MAp8ICAgICAgICAgICAgIC8qIEl0IHdvdWxkIGJlIG5pY2UgdG8gcmVqZWN0IGhvc3RzIHdob3Nl IHJlZ29mZl90IHZhbHVlcyBhcmUgdG9vCnwgICAgICAgICAgICAgICAgbmFycm93IChpbmNsdWRp bmcgZ2xpYmMgb24gaG9zdHMgd2l0aCA2NC1iaXQgcHRyZGlmZl90IGFuZAp8ICAgICAgICAgICAg ICAgIDMyLWJpdCBpbnQpLCBidXQgd2Ugc2hvdWxkIHdhaXQgdW50aWwgZ2xpYmMgaW1wbGVtZW50 cyB0aGlzCnwgICAgICAgICAgICAgICAgZmVhdHVyZS4gIE90aGVyd2lzZSwgc3VwcG9ydCBmb3Ig ZXF1aXZhbGVuY2UgY2xhc3NlcyBhbmQKfCAgICAgICAgICAgICAgICBtdWx0aWJ5dGUgY29sbGF0 aW9uIHN5bWJvbHMgd291bGQgYWx3YXlzIGJlIGJyb2tlbiBleGNlcHQKfCAgICAgICAgICAgICAg ICB3aGVuIGNvbXBpbGluZyAtLXdpdGhvdXQtaW5jbHVkZWQtcmVnZXguICAgKi8KfCAgICAgICAg ICAgICBpZiAoc2l6ZW9mIChyZWdvZmZfdCkgPCBzaXplb2YgKHB0cmRpZmZfdCkKfCAgICAgICAg ICAgICAgICAgfHwgc2l6ZW9mIChyZWdvZmZfdCkgPCBzaXplb2YgKHNzaXplX3QpKQp8ICAgICAg ICAgICAgICAgcmVzdWx0IHw9IDY0Owp8ICNlbmRpZgp8IAp8ICAgICAgICAgICAgIHJldHVybiBy ZXN1bHQ7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyODgzODogcmVzdWx0 OiBubwpjb25maWd1cmU6Mjg5MjM6IGNoZWNraW5nIGxpYmludGwuaCB1c2FiaWxpdHkKY29uZmln dXJlOjI4OTIzOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTog ZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25m aWd1cmU6Mjg5MjM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40 Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VS Q0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRf SU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0Eg MQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVD TCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09S S0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tF TiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8 ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVM TCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1 cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNk ZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUg QklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklY IAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVgg CnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2Rl ZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5W IDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FD Q0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FO T05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVf TkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9O IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZS RVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5G TyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVS TkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lk CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNM X0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJ TksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFM TE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAjZGVm aW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAxCnwgI2RlZmluZSBPUEVOX1RSQUlMSU5H X1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRTIgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUE9MTCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1BVVEVOViAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9SRUFETElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJ TUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5 bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRh eCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9j b21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGls ZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVf c2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gK fCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdp c3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAK fCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2Nv bXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9y ZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMg aW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8 ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwg IyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBp ZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMg JiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRp Zgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19I CnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNf SAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRf SAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gK fCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxsaWJpbnRsLmg+CmNv bmZpZ3VyZToyODkyMzogcmVzdWx0OiBubwpjb25maWd1cmU6Mjg5MjM6IGNoZWNraW5nIGxpYmlu dGwuaCBwcmVzZW5jZQpjb25maWd1cmU6Mjg5MjM6IC9saWIvY3BwICBjb25mdGVzdC5jCmNvbmZp Z3VyZToyODkyMzogJD8gPSAwCmNvbmZpZ3VyZToyODkyMzogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjI4OTIzOiBXQVJOSU5HOiBsaWJpbnRsLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxl ZApjb25maWd1cmU6Mjg5MjM6IFdBUk5JTkc6IGxpYmludGwuaDogICAgIGNoZWNrIGZvciBtaXNz aW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPwpjb25maWd1cmU6Mjg5MjM6IFdBUk5JTkc6IGxpYmlu dGwuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uCmNvbmZpZ3VyZToyODkyMzogV0FS TklORzogbGliaW50bC5oOiAgICAgc2VjdGlvbiAiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBp bGVkIgpjb25maWd1cmU6Mjg5MjM6IFdBUk5JTkc6IGxpYmludGwuaDogcHJvY2VlZGluZyB3aXRo IHRoZSBjb21waWxlcidzIHJlc3VsdApjb25maWd1cmU6Mjg5MjM6IGNoZWNraW5nIGZvciBsaWJp bnRsLmgKY29uZmlndXJlOjI4OTIzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODkzNDogY2hlY2tp bmcgd2hldGhlciBpc2JsYW5rIGlzIGRlY2xhcmVkCmNvbmZpZ3VyZToyODkzNDogZ2NjIC1zdGQ9 Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQg Y29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI4OTM0OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1 aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNp emVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJ UkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9X T1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwg I2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVD TF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtf dCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05U T1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNU IAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VO TE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9U RURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAK fCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50Cnwg I2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FU T01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9T VUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9T VUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJ TlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf U1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhf dCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBM T0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBf X2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJF UlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU TE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAx CnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5G IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVf VklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUg R05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEK fCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TkxfTEFOR0lORk8gMQp8ICNkZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfT1BFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1BJUEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX19QVVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5WIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRExJ TksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9S RUNWRlJPTSAxCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBf UkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVf c3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgK fCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2Rl ZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUg cmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFy Y2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8y IHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVn aXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJw bF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVj IHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJl Z2ZyZWUgcnBsX3JlZ2ZyZWUKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGN0 eXBlLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIGlzYmxhbmsKfCAjaWZkZWYg X19jcGx1c3BsdXMKfCAgICh2b2lkKSBpc2JsYW5rOwp8ICNlbHNlCnwgICAodm9pZCkgaXNibGFu azsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjI4OTM0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODk1MzogY2hlY2tpbmcgd2hldGhlciByZW5h bWUgaG9ub3JzIHRyYWlsaW5nIHNsYXNoIG9uIGRlc3RpbmF0aW9uCmNvbmZpZ3VyZToyODk5ODog Z2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAgY29uZnRlc3QuYyAgPiY1CmNjMTog ZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25m aWd1cmU6Mjg5OTg6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVz IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NP TlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGlu ZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZG X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lH X0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVf VF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJf VF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRt YXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJG RCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E VVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmlu ZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9T VFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09Q VCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lT SU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhB VkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZp bmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lY IDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RF TVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTkxfTEFOR0lORk8gMQp8ICNkZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfT1BFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX19QVVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5W IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVB RExJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUNWRlJPTSAxCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxf cmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50 YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwg I2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZp bmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9z ZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRj aF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRf cmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVj IHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdl eGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5l IHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDAKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgCnwgIyAgICAgICAgaW5jbHVkZSA8c3RkaW8uaD4KfCAjICAg ICAgICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IGludCByZXN1 bHQgPSAwOwp8ICAgICAgICAgICAgaWYgKHJlbmFtZSAoImNvbmZ0ZXN0LmYxIiwgImNvbmZ0ZXN0 LmYyLyIpID09IDApCnwgICAgICAgICAgICAgIHJlc3VsdCB8PSAxOwp8ICAgICAgICAgICAgaWYg KHJlbmFtZSAoImNvbmZ0ZXN0LmQxIiwgImNvbmZ0ZXN0LmQyLyIpICE9IDApCnwgICAgICAgICAg ICAgIHJlc3VsdCB8PSAyOwp8ICNpZiBIQVZFX0xTVEFUCnwgICAgICAgICAgICBpZiAocmVuYW1l ICgiY29uZnRlc3QuZiIsICJjb25mdGVzdC5sbmsvIikgPT0gMCkKfCAgICAgICAgICAgICAgcmVz dWx0IHw9IDQ7CnwgI2VuZGlmCnwgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owp8IAp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjkwMTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5 MDIyOiBjaGVja2luZyB3aGV0aGVyIHJlbmFtZSBob25vcnMgdHJhaWxpbmcgc2xhc2ggb24gc291 cmNlCmNvbmZpZ3VyZToyOTA2NzogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAg Y29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjkwNjc6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dy YW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRf QklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxM T0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9O X0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVf dCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19C Uk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAj ZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lO IDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05P Tk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1 c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQK fCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hB Ul9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VG RklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8 ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5U RiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNF VEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJ TlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElC X0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9G SUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5W SVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQURE UklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU UEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUg dm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZF X01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwg I2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8gMQp8ICNkZWZpbmUgT1BFTl9UUkFJ TElOR19TTEFTSF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfT1BFTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUyIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX19QVVRFTlYgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfUFVURU5WIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUkVBRExJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDViAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWRlJPTSAxCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVE RV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSBy ZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9z eW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxf cmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2Nv bXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5l IHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21h dGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRf cmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9j b21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9y ZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBy cGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVf REVDTF9JU0JMQU5LIDAKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9ERVNUX0JVRyAx CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICMgICAgICAgIGluY2x1ZGUgPHN0ZGlvLmg+ CnwgIyAgICAgICAgaW5jbHVkZSA8c3RkbGliLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBp bnQgcmVzdWx0ID0gMDsKfCAgICAgICAgICAgIGlmIChyZW5hbWUgKCJjb25mdGVzdC5mMS8iLCAi Y29uZnRlc3QuZDMiKSA9PSAwKQp8ICAgICAgICAgICAgICByZXN1bHQgfD0gMTsKfCAgICAgICAg ICAgIGlmIChyZW5hbWUgKCJjb25mdGVzdC5kMS8iLCAiY29uZnRlc3QuZDIiKSAhPSAwKQp8ICAg ICAgICAgICAgICByZXN1bHQgfD0gMjsKfCAjaWYgSEFWRV9MU1RBVAp8ICAgICAgICAgICAgaWYg KHJlbmFtZSAoImNvbmZ0ZXN0Lmxuay8iLCAiY29uZnRlc3QuZiIpID09IDApCnwgICAgICAgICAg ICAgIHJlc3VsdCB8PSA0Owp8ICNlbmRpZgp8ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKfCAK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjI5MDc5OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToyOTA5MjogY2hlY2tpbmcgd2hldGhlciByZW5hbWUgbWFuYWdlcyBoYXJkIGxpbmtzIGNv cnJlY3RseQpjb25maWd1cmU6MjkxNTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyOTE2NTogY2hl Y2tpbmcgd2hldGhlciByZW5hbWUgbWFuYWdlcyBleGlzdGluZyBkZXN0aW5hdGlvbnMgY29ycmVj dGx5CmNvbmZpZ3VyZToyOTIwMjogZ2NjIC1zdGQ9Z251MTEgLW8gY29uZnRlc3QgLWcgLU8yICAg Y29uZnRlc3QuYyAgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0 aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6MjkyMDI6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dy YW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy LjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRf QklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxM T0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9O X0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVf dCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19C Uk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAj ZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lO IDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05P Tk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1 c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQK fCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwg I2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hB Ul9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NV RkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VG RklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8 ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5U RiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNF VEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJ TlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElC X0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9G SUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAj ZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5W SVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQURE UklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU UEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUg dm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZF X01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwg I2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8gMQp8ICNkZWZpbmUgT1BFTl9UUkFJ TElOR19TTEFTSF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfT1BFTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUyIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX19QVVRFTlYgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfUFVURU5WIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUkVBRExJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDViAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWRlJPTSAxCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVE RV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSBy ZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9z eW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxf cmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2Nv bXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5l IHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21h dGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRf cmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9j b21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9y ZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBy cGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVf REVDTF9JU0JMQU5LIDAKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9ERVNUX0JVRyAx CnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfU09VUkNFX0JVRyAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8IAp8ICMgICAgICAgIGluY2x1ZGUgPHN0ZGlvLmg+CnwgIyAgICAgICAg aW5jbHVkZSA8c3RkbGliLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBpbnQgcmVzdWx0ID0g MDsKfCAgICAgICAgICAgIGlmIChyZW5hbWUgKCJjb25mdGVzdC5kMSIsICJjb25mdGVzdC5kMiIp ICE9IDApCnwgICAgICAgICAgICAgIHJlc3VsdCB8PSAxOwp8ICAgICAgICAgICAgaWYgKHJlbmFt ZSAoImNvbmZ0ZXN0LmQyIiwgImNvbmZ0ZXN0LmYiKSA9PSAwKQp8ICAgICAgICAgICAgICByZXN1 bHQgfD0gMjsKfCAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CnwgCnwgICA7CnwgICByZXR1cm4g MDsKfCB9CmNvbmZpZ3VyZToyOTIxNDogcmVzdWx0OiBubwpjb25maWd1cmU6MjkyNTY6IGNoZWNr aW5nIHdoZXRoZXIgcm1kaXIgd29ya3MKY29uZmlndXJlOjI5Mjk4OiBnY2MgLXN0ZD1nbnUxMSAt byBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyOTI5ODogJD8g PSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9k ZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNk ZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwg I2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVm aW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVm aW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklO RCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFM UEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5r bm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJ TkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdF VFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZE QVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVO IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xT VEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9D X0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVO Q19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAx CnwgI2RlZmluZSBPUEVOX1RSQUlMSU5HX1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUElQRTIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUE9MTCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfX1BVVEVOViAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVBRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFETElOSyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9NIDEKfCAj ZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9P RkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9u cwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVf Y29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBp bGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBs X3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmlu ZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNo XzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVm aW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAj ZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMK fCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVn ZnJlZQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMAp8ICNkZWZpbmUgUkVOQU1FX1RSQUlM SU5HX1NMQVNIX0RFU1RfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9TT1VS Q0VfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9ERVNUX0VYSVNUU19CVUcgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVOQU1FIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0 ZGlvLmg+CnwgICAgICAgICAgICAjaW5jbHVkZSA8ZXJybm8uaD4KfCAgICAgICAgICAgICNpZiBI QVZFX1VOSVNURF9ICnwgICAgICAgICAgICAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICAgICAgICAg ICAgI2Vsc2UgLyogb24gV2luZG93cyB3aXRoIE1TVkMgKi8KfCAgICAgICAgICAgICMgaW5jbHVk ZSA8ZGlyZWN0Lmg+CnwgICAgICAgICAgICAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8 IGludCByZXN1bHQgPSAwOwp8ICAgICAgIGlmICghcm1kaXIgKCJjb25mdGVzdC5maWxlLyIpKQp8 ICAgICAgICAgcmVzdWx0IHw9IDE7CnwgICAgICAgZWxzZSBpZiAoZXJybm8gIT0gRU5PVERJUikK fCAgICAgICAgIHJlc3VsdCB8PSAyOwp8ICAgICAgIGlmICghcm1kaXIgKCJjb25mdGVzdC5kaXIv Li8iKSkKfCAgICAgICAgIHJlc3VsdCB8PSA0Owp8ICAgICAgIHJldHVybiByZXN1bHQ7CnwgCnwg ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyOTMwOTogcmVzdWx0OiBubwpjb25maWd1 cmU6MjkzNjE6IGNoZWNraW5nIHdoZXRoZXIgc2VsZWN0IHN1cHBvcnRzIGEgMCBhcmd1bWVudApj b25maWd1cmU6MjkzOTM6IGdjYyAtc3RkPWdudTExIC1vIGNvbmZ0ZXN0IC1nIC1PMiAgIGNvbmZ0 ZXN0LmMgID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAi LXN0ZD1nbnUxMSIKY29uZmlndXJlOjI5MzkzOiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4 aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUg UEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJD RSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9J Tk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAx CnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNM IDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JL SU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VO IDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwg I2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxM IDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVz CnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2Rl ZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZp bmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVgg CnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAK fCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVm aW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYg MAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUND RVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5P TklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9O QU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJF WFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5l IEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZP IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJO QU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO TCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElO SyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxM T0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX01BTExPQ19QT1NJWCAxCnwgI2RlZmluZSBGVU5DX01LRElSX0RPVF9CVUcgMQp8ICNkZWZp bmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01LT1NURU1QIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX05MX0xBTkdJTkZPIDEKfCAjZGVmaW5lIE9QRU5fVFJBSUxJTkdf U0xBU0hfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX09QRU4gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfUElQRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFMiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9QT0xMIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9fUFVURU5WIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1BVVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFEIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQURMSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1YgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUkVDVkZST00gMQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElN SVRTX0ggMQp8ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3lu dGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4 IHJwbF9yZV9zZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2Nv bXBpbGVfcGF0dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxl X2Zhc3RtYXAKfCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9z ZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8 ICNkZWZpbmUgcmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lz dGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8 ICNkZWZpbmUgcmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29t cAp8ICNkZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3Jl Z2Vycm9yCnwgI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0RFQ0xf SVNCTEFOSyAwCnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfREVTVF9CVUcgMQp8ICNk ZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX1NPVVJDRV9CVUcgMQp8ICNkZWZpbmUgUkVOQU1F X0RFU1RfRVhJU1RTX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRU5BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUk1ESVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CnwgI2luY2x1ZGUgPHN5cy90aW1lLmg+CnwgI2lmIEhBVkVfU1lT X1NFTEVDVF9ICnwgI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KfCAjZW5kaWYKfCBpbnQgbWFpbiAo KQp8IHsKfCAgIHN0cnVjdCB0aW1ldmFsIHRpbWVvdXQ7CnwgICB0aW1lb3V0LnR2X3NlYyA9IDA7 CnwgICB0aW1lb3V0LnR2X3VzZWMgPSA1Owp8ICAgcmV0dXJuIHNlbGVjdCAoMCwgKGZkX3NldCAq KTAsIChmZF9zZXQgKikwLCAoZmRfc2V0ICopMCwgJnRpbWVvdXQpIDwgMDsKfCB9CmNvbmZpZ3Vy ZToyOTQwNDogcmVzdWx0OiBubwpjb25maWd1cmU6Mjk0MTE6IGNoZWNraW5nIHdoZXRoZXIgc2Vs ZWN0IGRldGVjdHMgaW52YWxpZCBmZHMKY29uZmlndXJlOjI5NDU2OiBnY2MgLXN0ZD1nbnUxMSAt byBjb25mdGVzdCAtZyAtTzIgICBjb25mdGVzdC5jICA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyOTQ1NjogJD8g PSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9k ZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNk ZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwg I2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVm aW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVm aW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklO RCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFM UEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5r bm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJ TkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdF VFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZE QVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVO IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xT VEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9D X0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVO Q19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAx CnwgI2RlZmluZSBPUEVOX1RSQUlMSU5HX1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUElQRTIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUE9MTCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfX1BVVEVOViAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVBRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFETElOSyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9NIDEKfCAj ZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9P RkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9u cwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVf Y29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBp bGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBs X3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmlu ZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNo XzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVm aW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAj ZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMK fCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVn ZnJlZQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMAp8ICNkZWZpbmUgUkVOQU1FX1RSQUlM SU5HX1NMQVNIX0RFU1RfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9TT1VS Q0VfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9ERVNUX0VYSVNUU19CVUcgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JNRElSIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxz eXMvdGltZS5oPgp8ICNpZiBIQVZFX1NZU19TRUxFQ1RfSAp8ICMgaW5jbHVkZSA8c3lzL3NlbGVj dC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx1bmlzdGQuaD4KfCAjaW5jbHVkZSA8ZXJybm8uaD4K fCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgZmRfc2V0IHNldDsKfCAgIGR1cDIoMCwgMTYp Owp8ICAgRkRfWkVSTygmc2V0KTsKfCAgIEZEX1NFVCgxNiwgJnNldCk7CnwgICBjbG9zZSgxNik7 CnwgICBzdHJ1Y3QgdGltZXZhbCB0aW1lb3V0Owp8ICAgdGltZW91dC50dl9zZWMgPSAwOwp8ICAg dGltZW91dC50dl91c2VjID0gNTsKfCAgIHJldHVybiBzZWxlY3QgKDE3LCAmc2V0LCBOVUxMLCBO VUxMLCAmdGltZW91dCkgIT0gLTEgfHwgZXJybm8gIT0gRUJBREY7CnwgCnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToyOTQ2NzogcmVzdWx0OiBubwpjb25maWd1cmU6Mjk3NTI6IGNo ZWNraW5nIGFic29sdXRlIG5hbWUgb2YgPHNpZ25hbC5oPgpjb25maWd1cmU6Mjk3OTU6IHJlc3Vs dDogIi8vL3Vzci9pbmNsdWRlL3NpZ25hbC5oIgpjb25maWd1cmU6Mjk4MTU6IGNoZWNraW5nIGZv ciB2b2xhdGlsZSBzaWdfYXRvbWljX3QKY29uZmlndXJlOjI5ODE1OiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjk4MTU6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVu c2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9O IC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5l IHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8 ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2Rl ZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RF X1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRp Zgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRf VCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAK fCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcK fCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUND RVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZM T09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19f ICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJF RUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVm aW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRU SU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklM SVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJf TUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZp bmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5H SU5GTyAxCnwgI2RlZmluZSBPUEVOX1RSQUlMSU5HX1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUElQRTIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUE9MTCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfX1BVVEVOViAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVBRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFETElOSyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9N IDEKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9M QVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhf b3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZp bmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJl X2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFy Y2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwg I2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3Jl X21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMK fCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4 ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3Jl Z2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBy cGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMAp8ICNkZWZpbmUgUkVOQU1F X1RSQUlMSU5HX1NMQVNIX0RFU1RfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFT SF9TT1VSQ0VfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9ERVNUX0VYSVNUU19CVUcgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JNRElSIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1NFTEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRU5EIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkRUTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRF TlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VUU09DS09QVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9TSFVURE9XTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8ICNpbmNsdWRlIDxz aWduYWwuaD4KfCAKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IGlmIChzaXplb2YgKHZvbGF0aWxl IHNpZ19hdG9taWNfdCkpCnwgCSByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjI5ODE1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTgzMTogY2hlY2tpbmcgZm9yIHNp Z2hhbmRsZXJfdApjb25maWd1cmU6Mjk4MzE6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29u ZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24g Ii1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyOTgzMTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50Cnwg I2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5l IEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8 ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50Cnwg I2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUg U1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0 cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJ R0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBN QUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAj aWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBt YnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NF VEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVP Rl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5l IFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lH X0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lO VF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFW RV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAj ZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D QU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0Ug MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D T1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1 bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1F IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9G REFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BU T04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8 ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgI2RlZmluZSBGVU5DX01LRElS X0RPVF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX05MX0xBTkdJTkZPIDEKfCAjZGVm aW5lIE9QRU5fVFJBSUxJTkdfU0xBU0hfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX09QRU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBF MiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QT0xMIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9fUFVU RU5WIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BVVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUFEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQURMSU5LIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1JFQ1YgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDVkZST00gMQp8ICNkZWZpbmUg X1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMg MQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2Rl ZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxl X3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0 bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2Vh cmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21h dGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNk ZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVf Y29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUg cmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZp bmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwg I2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAwCnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xB U0hfREVTVF9CVUcgMQp8ICNkZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX1NPVVJDRV9CVUcg MQp8ICNkZWZpbmUgUkVOQU1FX0RFU1RfRVhJU1RTX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRU5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUk1ESVIgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfU0VMRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfU0VORFRPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFVEVOViAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9TRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NIVVRET1dO IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPHNpZ25hbC5oPgp8IAp8 IAp8IGludAp8IG1haW4gKCkKfCB7CnwgaWYgKHNpemVvZiAoc2lnaGFuZGxlcl90KSkKfCAJIHJl dHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6Mjk4MzE6IHJlc3VsdDog bm8KY29uZmlndXJlOjI5ODQ1OiBjaGVja2luZyB3aGV0aGVyIHB0aHJlYWRfc2lnbWFzayBpcyBk ZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI5ODYzOiBnY2MgLXN0ZD1nbnUxMSAt YyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5k IGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjk4NjM6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVu c2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9O IC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdf T19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5l IHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJN IDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8 ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2Rl ZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQg MAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RF X1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRp Zgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5l IEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1Qg MAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRf VCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAK fCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAK fCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAg MAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcK fCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUND RVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZM T09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19f ICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJF RUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVm aW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRU SU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklM SVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf TElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJf TUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZp bmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5H SU5GTyAxCnwgI2RlZmluZSBPUEVOX1RSQUlMSU5HX1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUElQRTIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUE9MTCAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfX1BVVEVOViAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVBRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFETElOSyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9N IDEKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9M QVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhf b3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZp bmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJl X2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFy Y2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwg I2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3Jl X21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMK fCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4 ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3Jl Z2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBy cGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMAp8ICNkZWZpbmUgUkVOQU1F X1RSQUlMSU5HX1NMQVNIX0RFU1RfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFT SF9TT1VSQ0VfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9ERVNUX0VYSVNUU19CVUcgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JNRElSIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1NFTEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRU5EIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkRUTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRF TlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VUU09DS09QVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9TSFVURE9XTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzaWdu YWwuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBwdGhyZWFkX3NpZ21hc2sKfCAg ICh2b2lkKSBwdGhyZWFkX3NpZ21hc2s7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy ZToyOTg3MTogcmVzdWx0OiBubwpjb25maWd1cmU6Mjk4NDU6IGNoZWNraW5nIHdoZXRoZXIgc2ln YWN0aW9uIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6Mjk4NjM6IGdjYyAt c3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25p emVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyOTg2MzogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1F ICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251 Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBf REFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmlu ZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFD S19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhB VkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cg MAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5s aW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5F VF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9D T05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU Q19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBS T01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxp bmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGlu dAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElG Rl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJ R19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRT SVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpF X1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFS X1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19U SU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZT TlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50 bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElS RkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZp bmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlf U1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tP UFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRF IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9J U0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBI QVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVm aW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJ WCAxCnwgI2RlZmluZSBGVU5DX01LRElSX0RPVF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX01LT1NU RU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX05MX0xBTkdJTkZPIDEKfCAjZGVmaW5lIE9QRU5fVFJBSUxJTkdfU0xBU0hfQlVHIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX09QRU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFMiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QT0xMIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9fUFVURU5WIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BVVEVO ViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JF QURMSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1YgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUkVDVkZST00gMQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNkZWZp bmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMgcnBs X3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRfc3lu dGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVybgp8 ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAjZGVm aW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxfcmVf c2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVfbWF0 Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0 X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVfZXhl YyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUgcmVn ZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2RlZmlu ZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAwCnwgI2Rl ZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfREVTVF9CVUcgMQp8ICNkZWZpbmUgUkVOQU1FX1RS QUlMSU5HX1NMQVNIX1NPVVJDRV9CVUcgMQp8ICNkZWZpbmUgUkVOQU1FX0RFU1RfRVhJU1RTX0JV RyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRU5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf Uk1ESVIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VMRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1NFTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORFRPIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1NFVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRTT0NLT1BUIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1NIVVRET1dOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu Y2x1ZGUgPHNpZ25hbC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHNpZ2FjdGlv bgp8ICAgKHZvaWQpIHNpZ2FjdGlvbjsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJl OjI5ODcxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTg0NTogY2hlY2tpbmcgd2hldGhlciBzaWdh ZGRzZXQgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyOTg2MzogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI5ODYzOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NP TlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGlu ZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZG X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lH X0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVf VF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJf VF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRt YXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJG RCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E VVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmlu ZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9T VFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09Q VCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lT SU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhB VkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZp bmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lY IDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RF TVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTkxfTEFOR0lORk8gMQp8ICNkZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfT1BFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX19QVVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5W IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVB RExJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUNWRlJPTSAxCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxf cmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50 YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwg I2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZp bmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9z ZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRj aF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRf cmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVj IHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdl eGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5l IHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDAKfCAjZGVm aW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9ERVNUX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfVFJB SUxJTkdfU0xBU0hfU09VUkNFX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfREVTVF9FWElTVFNfQlVH IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9S TURJUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRUxFQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfU0VORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRU5EVE8gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfU0VURU5WIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFVFNPQ0tPUFQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfU0hVVERPV04gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8c2lnbmFsLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgc2lnYWRkc2V0 CnwgICAodm9pZCkgc2lnYWRkc2V0Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 Mjk4NzE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5ODQ1OiBjaGVja2luZyB3aGV0aGVyIHNpZ2Rl bHNldCBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI5ODYzOiBnY2MgLXN0 ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXpl ZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjk4NjM6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi Z3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJi dWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhf UFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVN X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUg c2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tf RElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZF X1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAK fCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9E RUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlu a190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf TlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09O U1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENf VU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9N T1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5l IAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQK fCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZf VCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdf QVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9U X1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElN RSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05Q UklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1h eF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZE IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RV UExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5l IF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NU UkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9H RVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BU IDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJ TkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFW RV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmlu ZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVgg MQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVN UCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9OTF9MQU5HSU5GTyAxCnwgI2RlZmluZSBPUEVOX1RSQUlMSU5HX1NMQVNIX0JVRyAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUElQRTIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUE9MTCAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfX1BVVEVOViAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QVVRFTlYg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFE TElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5l IF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9y ZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRh eAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAj ZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmlu ZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3Nl YXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNo XzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9y ZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMg cnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4 ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUg cmVnZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMAp8ICNkZWZp bmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX0RFU1RfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9UUkFJ TElOR19TTEFTSF9TT1VSQ0VfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9ERVNUX0VYSVNUU19CVUcg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JN RElSIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9TRU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkRUTyAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9TRVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VUU09DS09QVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9TSFVURE9XTiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzaWduYWwuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRlZiBzaWdkZWxzZXQK fCAgICh2b2lkKSBzaWdkZWxzZXQ7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToy OTg3MTogcmVzdWx0OiBubwpjb25maWd1cmU6Mjk4NDU6IGNoZWNraW5nIHdoZXRoZXIgc2lnZW1w dHlzZXQgaXMgZGVjbGFyZWQgd2l0aG91dCBhIG1hY3JvCmNvbmZpZ3VyZToyOTg2MzogZ2NjIC1z dGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6 ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI5ODYzOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg Imd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5l IHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNL X0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAw CnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxp bmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVU X05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NP TlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRD X1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJP TU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGlu ZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50 CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZG X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lH X0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJ WkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVf VF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJf VF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJ TUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNO UFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RF Q0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRt YXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJG RCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9E VVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmlu ZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9T VFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09Q VCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUg MAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lT SU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhB VkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZp bmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lY IDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RF TVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTkxfTEFOR0lORk8gMQp8ICNkZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfT1BFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8 ICNkZWZpbmUgSEFWRV9ERUNMX19QVVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5W IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVB RExJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUNWRlJPTSAxCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmlu ZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxf cmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50 YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwg I2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZp bmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9z ZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRj aF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRf cmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVj IHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdl eGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5l IHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDAKfCAjZGVm aW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9ERVNUX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfVFJB SUxJTkdfU0xBU0hfU09VUkNFX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfREVTVF9FWElTVFNfQlVH IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9S TURJUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRUxFQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfU0VORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRU5EVE8gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfU0VURU5WIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFVFNPQ0tPUFQgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfU0hVVERPV04gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j bHVkZSA8c2lnbmFsLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAjdW5kZWYgc2lnZW1wdHlz ZXQKfCAgICh2b2lkKSBzaWdlbXB0eXNldDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmln dXJlOjI5ODcxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTg0NTogY2hlY2tpbmcgd2hldGhlciBz aWdmaWxsc2V0IGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6Mjk4NjM6IGdj YyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyOTg2Mzog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2Rl ZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBT VEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xM T1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5l IG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09O Vl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5l IFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBp bmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRS RElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBT SVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdD SEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZ U19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUg aW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQ TCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVD VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf RElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNk ZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9H QUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZP IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNP Q0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklO SVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmlu ZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAj ZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19Q T1NJWCAxCnwgI2RlZmluZSBGVU5DX01LRElSX0RPVF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX01L T1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX05MX0xBTkdJTkZPIDEKfCAjZGVmaW5lIE9QRU5fVFJBSUxJTkdfU0xBU0hfQlVHIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX09QRU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFMiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QT0xM IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9fUFVURU5WIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BV VEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1JFQURMSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1YgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfUkVDVkZST00gMQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMg cnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRf c3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVy bgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAj ZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxf cmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVf bWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVf c2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVf ZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUg cmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2Rl ZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAwCnwg I2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfREVTVF9CVUcgMQp8ICNkZWZpbmUgUkVOQU1F X1RSQUlMSU5HX1NMQVNIX1NPVVJDRV9CVUcgMQp8ICNkZWZpbmUgUkVOQU1FX0RFU1RfRVhJU1RT X0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRU5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUk1ESVIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VMRUNUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1NFTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORFRPIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1NFVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRTT0NLT1BUIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1NIVVRET1dOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHNpZ25hbC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHNpZ2Zp bGxzZXQKfCAgICh2b2lkKSBzaWdmaWxsc2V0Owp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6Mjk4NzE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5ODQ1OiBjaGVja2luZyB3aGV0aGVy IHNpZ2lzbWVtYmVyIGlzIGRlY2xhcmVkIHdpdGhvdXQgYSBtYWNybwpjb25maWd1cmU6Mjk4NjM6 IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5y ZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyOTg2 MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwg I2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmlu ZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9G T0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVm aW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RF Q0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJ Q09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVm aW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmlu ZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6 ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0Zf UFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmlu ZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmlu ZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5l IFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lO X1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUg SEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZp bmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVf TEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09O TkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8 ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVD TF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJ TkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9Q IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lT RklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVf REVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2Rl ZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAK fCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExP Q19QT1NJWCAxCnwgI2RlZmluZSBGVU5DX01LRElSX0RPVF9CVUcgMQp8ICNkZWZpbmUgR05VTElC X01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01LT1NURU1QIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX05MX0xBTkdJTkZPIDEKfCAjZGVmaW5lIE9QRU5fVFJBSUxJTkdfU0xBU0hfQlVH IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX09QRU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQ RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFMiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9Q T0xMIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9fUFVURU5WIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1BVVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFEIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1JFQURMSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1YgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVDVkZST00gMQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8 ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlv bnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9z ZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0 dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAK fCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBy cGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUg cmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxf cmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUg cmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZp bmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwg I2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAw CnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfREVTVF9CVUcgMQp8ICNkZWZpbmUgUkVO QU1FX1RSQUlMSU5HX1NMQVNIX1NPVVJDRV9CVUcgMQp8ICNkZWZpbmUgUkVOQU1FX0RFU1RfRVhJ U1RTX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRU5BTUUgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfUk1ESVIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VMRUNUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1NFTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORFRPIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1NFVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRTT0NLT1BUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1NIVVRET1dOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHNpZ25hbC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI3VuZGVmIHNp Z2lzbWVtYmVyCnwgICAodm9pZCkgc2lnaXNtZW1iZXI7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9 CmNvbmZpZ3VyZToyOTg3MTogcmVzdWx0OiBubwpjb25maWd1cmU6Mjk4NDU6IGNoZWNraW5nIHdo ZXRoZXIgc2lncGVuZGluZyBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJlOjI5 ODYzOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6 IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6 Mjk4NjM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUg MQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNk ZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwg I2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNk ZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwg I2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZp bmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwg I2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNk ZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUg c3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0la RU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJ VFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNk ZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2Rl ZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBU TV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAj ZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FM SVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9D RUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFW RV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5D IDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZF X0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRO QU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf TlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8 ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQ IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dO VSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9N QUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdO VUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAxCnwgI2RlZmluZSBPUEVOX1RSQUlMSU5HX1NMQVNI X0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRTIgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUE9MTCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1BVVEVOViAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9QVVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9SRUFETElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19I IDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9v cHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxf cmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxl X3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0 bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNo XzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVm aW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMg cnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVm aW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAj ZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJv cgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxB TksgMAp8ICNkZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX0RFU1RfQlVHIDEKfCAjZGVmaW5l IFJFTkFNRV9UUkFJTElOR19TTEFTSF9TT1VSQ0VfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9ERVNU X0VYSVNUU19CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVOQU1FIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JNRElSIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTEVDVCAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9TRU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkRUTyAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9TRVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VUU09DS09Q VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TSFVURE9XTiAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzaWduYWwuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1bmRl ZiBzaWdwZW5kaW5nCnwgICAodm9pZCkgc2lncGVuZGluZzsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjI5ODcxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTg0NTogY2hlY2tpbmcg d2hldGhlciBzaWdwcm9jbWFzayBpcyBkZWNsYXJlZCB3aXRob3V0IGEgbWFjcm8KY29uZmlndXJl OjI5ODYzOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJy b3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpjb25maWd1 cmU6Mjk4NjM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5P REUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8 ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05fREVDTCAx CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lO R19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAx CnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNk ZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAw CnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8 ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZp bmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklU U0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwg I2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmlu ZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAK fCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQ VDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05J Q0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUg SEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQ IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZT WU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9H RVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFN RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lO RVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwg MQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xP RzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9D X0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5l IEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAxCnwgI2RlZmluZSBPUEVOX1RSQUlMSU5HX1NM QVNIX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRTIgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfUE9MTCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1BVVEVOViAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9SRUFETElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlU U19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRh eF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBy cGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21w aWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9m YXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2Vh cmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAj ZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3Rl cnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAj ZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAK fCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdl cnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lT QkxBTksgMAp8ICNkZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX0RFU1RfQlVHIDEKfCAjZGVm aW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9TT1VSQ0VfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9E RVNUX0VYSVNUU19CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVOQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1JNRElSIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTEVDVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9TRU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkRUTyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9TRVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VUU09D S09QVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TSFVURE9XTiAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxzaWduYWwuaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICN1 bmRlZiBzaWdwcm9jbWFzawp8ICAgKHZvaWQpIHNpZ3Byb2NtYXNrOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6Mjk4NzE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5OTIxOiBjaGVj a2luZyBmb3Igc29ja2xlbl90CmNvbmZpZ3VyZToyOTkyMTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5l IG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI5OTIxOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25l ZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9B VElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRf dCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwg I2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVm aW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUg V09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1v ZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAj ZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8 ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2Rl ZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJ TkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVB TFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RB VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVu a25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERS SU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU U09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBH RVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9G REFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RF TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9M U1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExP Q19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZV TkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8g MQp8ICNkZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfT1BFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1BJUEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX19QVVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5WIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRExJTksgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWRlJPTSAxCnwg I2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0Vf T0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlv bnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJl X2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21w aWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJw bF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZp bmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRj aF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2Rl ZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwg I2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVj CnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3Jl Z2ZyZWUKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDAKfCAjZGVmaW5lIFJFTkFNRV9UUkFJ TElOR19TTEFTSF9ERVNUX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfU09V UkNFX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfREVTVF9FWElTVFNfQlVHIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JFTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9STURJUiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9TRUxFQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9TRU5EVE8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VURU5WIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf U0hVVERPV04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU09DS0VUIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgCnwgLyogPHN5cy90eXBlcy5oPiBpcyBub3QgbmVlZGVkIGFjY29yZGluZyB0 byBQT1NJWCwgYnV0IHRoZQp8ICAgIDxzeXMvc29ja2V0Lmg+IGluIGkzODYtdW5rbm93bi1mcmVl YnNkNC4xMCBhbmQKfCAgICBwb3dlcnBjLWFwcGxlLWRhcndpbjUuNSByZXF1aXJlZCBpdC4gKi8K fCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2lmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgIyBpbmNs dWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VsaWYgSEFWRV9XUzJUQ1BJUF9ICnwgIyBpbmNsdWRlIDx3 czJ0Y3BpcC5oPgp8ICNlbmRpZgp8IAp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgaWYgKHNpemVv ZiAoc29ja2xlbl90KSkKfCAJIHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6Mjk5MjE6IHJlc3VsdDogbm8KY29uZmlndXJlOjI5OTM2OiBjaGVja2luZyBmb3Igc29j a2xlbl90IGVxdWl2YWxlbnQKY29uZmlndXJlOjI5OTYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg b3B0aW9uICItc3RkPWdudTExIgpjb25maWd1cmU6Mjk5NjE6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBHdWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBH dWlsZSAyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3Vp bGUvIgp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJ Q1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2Rl ZmluZSBfREFSV0lOX1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVk IGludAp8ICNkZWZpbmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwg I2RlZmluZSBIQVZFX0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FU SU1FIDAKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90 IGludAp8ICNkZWZpbmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAj ZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZp bmUgcmVzdHJpY3QgLyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfR0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBX T1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNk ZWZpbmUgTUFMTE9DXzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9k ZV90CnwgI2lmbmRlZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNk ZWZpbmUgbWJzdGF0ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVf REVDTF9TRVRFTlYgMAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfU0laRV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwg I2RlZmluZSBQVFJESUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVm aW5lIFNJR19BVE9NSUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVm aW5lIFdJTlRfVF9TVUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX0RFQ0xfVFpOQU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNk ZWZpbmUgSEFWRV9ERUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVm aW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklO RCAxCnwgI2RlZmluZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFM UEFUSCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NMT1NFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ09QWVNJR04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0RJUkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5r bm93biBmdW5jdGlvbj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJ TkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRBRERSSU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRT T0NLTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdF VFRJTUVPRkRBWV9USU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZE QVkgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9QVE9OIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU0ZJTklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfSVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVO IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xT VEFUIDEKfCAjZGVmaW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9D X0dOVSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVO Q19NS0RJUl9ET1RfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAx CnwgI2RlZmluZSBPUEVOX1RSQUlMSU5HX1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9PUEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUElQRTIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUE9MTCAxCnwgI2RlZmluZSBIQVZFX0RF Q0xfX1BVVEVOViAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVBRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFETElOSyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9SRUNWIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9NIDEKfCAj ZGVmaW5lIF9SRUdFWF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9P RkZTRVRTIDEKfCAjZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9u cwp8ICNkZWZpbmUgcmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVf Y29tcGlsZV9wYXR0ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBp bGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBs X3JlX3NlYXJjaAp8ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmlu ZSByZV9tYXRjaCBycGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNo XzIKfCAjZGVmaW5lIHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVm aW5lIHJlX2NvbXAgcnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAj ZGVmaW5lIHJlZ2NvbXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMK fCAjZGVmaW5lIHJlZ2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVn ZnJlZQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTQkxBTksgMAp8ICNkZWZpbmUgUkVOQU1FX1RSQUlM SU5HX1NMQVNIX0RFU1RfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9TT1VS Q0VfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9ERVNUX0VYSVNUU19CVUcgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JNRElSIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1NFTEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRU5EIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1NFTkRUTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRFTlYgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfU0VUU09DS09QVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9T SFVURE9XTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TT0NLRVQgMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgICAgICAgICAgICAgICAgICAgICNp bmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgCnwgICAgICAgICAgICAgICAgICAgIGludCBnZXRwZWVy bmFtZSAoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgaW50ICopOwp8IGludAp8IG1haW4gKCkKfCB7 CnwgaW50IGxlbjsKfCAgICAgICAgICAgICAgICAgICBnZXRwZWVybmFtZSAoMCwgMCwgJmxlbik7 CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyOTk2MTogZ2NjIC1zdGQ9Z251MTEg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI5OTYxOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgR3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxl QGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1 bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElP TiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5H X09fTk9BVElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmlu ZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFS TSAwCnwgI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQK fCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNk ZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VE IDAKfCAjZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9E RV9UIG1vZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5k aWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNk ZWZpbmUgQklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19U IDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5U X1QgMAp8ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVgg CnwgI2RlZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVgg CnwgI2RlZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQ IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25n CnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FD Q0VQVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0JJTkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUkVBTFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9G TE9PUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9GU1RBVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNf XyAiPHVua25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZS RUVBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2Rl ZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU VElNRU9GREFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJ TElUWSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xJU1RFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MU1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElC X01BTExPQ19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVm aW5lIEZVTkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFO R0lORk8gMQp8ICNkZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfT1BFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1BJUEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX19QVVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5WIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRExJTksgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWRlJP TSAxCnwgI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhf TEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4 X29wdGlvbnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVm aW5lIHJlX2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSBy ZV9jb21waWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2Vh cmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8 ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9y ZV9tYXRjaF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJz CnwgI2RlZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9l eGVjCnwgI2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9y ZWdleGVjCnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUg cnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDAKfCAjZGVmaW5lIFJFTkFN RV9UUkFJTElOR19TTEFTSF9ERVNUX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xB U0hfU09VUkNFX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfREVTVF9FWElTVFNfQlVHIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1JFTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9STURJUiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9TRUxFQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRU5EVE8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VU RU5WIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfU0hVVERPV04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU09DS0VUIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgICAgICAg ICAgICAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8IAp8ICAgICAgICAgICAgICAgICAgICBpbnQg Z2V0cGVlcm5hbWUgKGludCwgc3RydWN0IHNvY2thZGRyICosIHNpemVfdCAqKTsKfCBpbnQKfCBt YWluICgpCnwgewp8IHNpemVfdCBsZW47CnwgICAgICAgICAgICAgICAgICAgZ2V0cGVlcm5hbWUg KDAsIDAsICZsZW4pOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6Mjk5NjE6IGdj YyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyOTk2MTog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmlu ZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2Rl ZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBT VEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5l IEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xM T1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBI QVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5l IG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xf SU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09O Vl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5l IFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBp bmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRS RElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9G X1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBC SVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBT SVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdD SEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZ U19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUg aW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQ TCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVD VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xf RElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNk ZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9H QUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZP IDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNP Q0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklO SVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVD TF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmlu ZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAj ZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19Q T1NJWCAxCnwgI2RlZmluZSBGVU5DX01LRElSX0RPVF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX01L T1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX05MX0xBTkdJTkZPIDEKfCAjZGVmaW5lIE9QRU5fVFJBSUxJTkdfU0xBU0hfQlVHIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX09QRU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFMiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QT0xM IDEKfCAjZGVmaW5lIEhBVkVfREVDTF9fUFVURU5WIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BV VEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1JFQURMSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1YgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfUkVDVkZST00gMQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNk ZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMg cnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRf c3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVy bgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAj ZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxf cmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVf bWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVf c2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVf ZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUg cmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2Rl ZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAwCnwg I2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfREVTVF9CVUcgMQp8ICNkZWZpbmUgUkVOQU1F X1RSQUlMSU5HX1NMQVNIX1NPVVJDRV9CVUcgMQp8ICNkZWZpbmUgUkVOQU1FX0RFU1RfRVhJU1RT X0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRU5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfUk1ESVIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VMRUNUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX1NFTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORFRPIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1NFVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRTT0NLT1BUIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1NIVVRET1dOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NPQ0tF VCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAg ICAgICAgICAgICAgICAgICAgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCAgICAgICAgICAg ICAgICAgICAgaW50IGdldHBlZXJuYW1lIChpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCB1bnNpZ25l ZCBpbnQgKik7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCB1bnNpZ25lZCBpbnQgbGVuOwp8ICAgICAg ICAgICAgICAgICAgIGdldHBlZXJuYW1lICgwLCAwLCAmbGVuKTsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjI5OTYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3Rk PWdudTExIgpjb25maWd1cmU6Mjk5NjE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWls ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZp bmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBf R05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQ RUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X1VTRV82NF9CSVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZp bmUgQ19BTExPQ0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZF X0VOVklST05fREVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVm aW5lIEhBVkVfV09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZp bmUgbW9kZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRf TUFDUk9TX0JST0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3Qg LyoqLwp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xf R0VUTE9HSU4gMAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJ QU4gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9D XzBfSVNfTk9OTlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRl ZiBfX2NwbHVzcGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0 ZV90IGludAp8ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYg MAp8ICNkZWZpbmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0la RV9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1dDSEFSX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJE SUZGX1RfU1VGRklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9N SUNfVF9TVUZGSVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9T VUZGSVggCnwgI2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpO QU1FIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X1NOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9E RUNMX1VOU0VURU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVD TF9fU05QUklOVEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmlu ZSBHTlVMSUJfQ0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05J Q0FMSVpFX0ZJTEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJ R04gMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJ UkZEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9FTlZJUk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlv bj4iCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVD TF9HRVRBRERSSU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERS SU5GTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9HRVRQRUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9U SU1FWk9ORSB2b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZp bmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAK fCAjZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJ TklURSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf SVNJTkYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNOQU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9JU05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVm aW5lIEhBVkVfTUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1Rf QlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9N S09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAxCnwgI2RlZmluZSBP UEVOX1RSQUlMSU5HX1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9PUEVOIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRTIgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfUE9MTCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1BVVEVOViAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVB RCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFETElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9SRUNWIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIF9SRUdF WF9JTkNMVURFX0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAj ZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUg cmVfc2V0X3N5bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0 ZXJuIHJwbF9yZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBy cGxfcmVfY29tcGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8 ICNkZWZpbmUgcmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBy cGxfcmVfbWF0Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5l IHJlX3NldF9yZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAg cnBsX3JlX2NvbXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2Nv bXAgcnBsX3JlZ2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJl Z2Vycm9yIHJwbF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZp bmUgSEFWRV9ERUNMX0lTQkxBTksgMAp8ICNkZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX0RF U1RfQlVHIDEKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9TT1VSQ0VfQlVHIDEKfCAj ZGVmaW5lIFJFTkFNRV9ERVNUX0VYSVNUU19CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVO QU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JNRElSIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1NFTEVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1NFTkRUTyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRFTlYgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfU0VUU09DS09QVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TSFVURE9XTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9TT0NLRVQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAj aW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxzeXMv c29ja2V0Lmg+CnwgCnwgICAgICAgICAgICAgICAgICAgIGludCBnZXRwZWVybmFtZSAoaW50LCBz dHJ1Y3Qgc29ja2FkZHIgKiwgbG9uZyBpbnQgKik7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBsb25n IGludCBsZW47CnwgICAgICAgICAgICAgICAgICAgZ2V0cGVlcm5hbWUgKDAsIDAsICZsZW4pOwp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6Mjk5NjE6IGdjYyAtc3RkPWdudTExIC1j IC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQg bGluZSBvcHRpb24gIi1zdGQ9Z251MTEiCmNvbmZpZ3VyZToyOTk2MTogJD8gPSAxCmNvbmZpZ3Vy ZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiR05VIEd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEd1aWxlIDIuMi40Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09V UkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5z aWduZWQgaW50CnwgI2RlZmluZSBDX0FMTE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04g LTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJPTl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19P X05PQVRJTUUgMAp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUg cGlkX3QgaW50CnwgI2RlZmluZSBtb2RlX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0g MAp8ICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50Cnwg I2RlZmluZSByZXN0cmljdCAvKiovCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJTiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVm aW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAw CnwgI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVf VCBtb2RlX3QKfCAjaWZuZGVmIF9fY3BsdXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlm CnwgI2RlZmluZSBtYnN0YXRlX3QgaW50CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUg SEFWRV9ERUNMX1NFVEVOViAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVm aW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NIQVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9U IDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9TVUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8 ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NVRkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8 ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAKfCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVm aW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwg I2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5TRVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8 ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBSSU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NF UFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZp bmUgR05VTElCX1RFU1RfRElSRkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0VOVklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxP T1IgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RlNUQVQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18g Ijx1bmtub3duIGZ1bmN0aW9uPiIKfCAjZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVF QUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0dFVEFERFJJTkZPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZp bmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJ TUVPRkRBWSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9JTkVUX1BUT04gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTRklOSVRFIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9JU0lORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5G IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJ VFkgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9M SVNURU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFWRV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9N QUxMT0NfR05VIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgI2RlZmlu ZSBGVU5DX01LRElSX0RPVF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX05MX0xBTkdJ TkZPIDEKfCAjZGVmaW5lIE9QRU5fVFJBSUxJTkdfU0xBU0hfQlVHIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX09QRU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9QSVBFMiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QT0xMIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9fUFVURU5WIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BVVEVOViAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9SRUFEIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQURMSU5LIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1YgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDVkZST00g MQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xVREVfTElNSVRTX0ggMQp8ICNkZWZpbmUgX1JFR0VYX0xB UkdFX09GRlNFVFMgMQp8ICNkZWZpbmUgcmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9v cHRpb25zCnwgI2RlZmluZSByZV9zZXRfc3ludGF4IHJwbF9yZV9zZXRfc3ludGF4CnwgI2RlZmlu ZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVybgp8ICNkZWZpbmUgcmVf Y29tcGlsZV9mYXN0bWFwIHJwbF9yZV9jb21waWxlX2Zhc3RtYXAKfCAjZGVmaW5lIHJlX3NlYXJj aCBycGxfcmVfc2VhcmNoCnwgI2RlZmluZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKfCAj ZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9tYXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hfMiBycGxfcmVf bWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwp8 ICNkZWZpbmUgcmVfY29tcCBycGxfcmVfY29tcAp8ICNkZWZpbmUgcmVfZXhlYyBycGxfcmVfZXhl Ywp8ICNkZWZpbmUgcmVnY29tcCBycGxfcmVnY29tcAp8ICNkZWZpbmUgcmVnZXhlYyBycGxfcmVn ZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3IgcnBsX3JlZ2Vycm9yCnwgI2RlZmluZSByZWdmcmVlIHJw bF9yZWdmcmVlCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNCTEFOSyAwCnwgI2RlZmluZSBSRU5BTUVf VFJBSUxJTkdfU0xBU0hfREVTVF9CVUcgMQp8ICNkZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNI X1NPVVJDRV9CVUcgMQp8ICNkZWZpbmUgUkVOQU1FX0RFU1RfRVhJU1RTX0JVRyAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9SRU5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUk1ESVIgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfU0VMRUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORFRPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFVEVO ViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1NIVVRET1dOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NPQ0tFVCAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAgICAgICAgICAgICAgICAg ICAgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAKfCAgICAgICAgICAgICAgICAgICAgaW50IGdl dHBlZXJuYW1lIChpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCB1bnNpZ25lZCBsb25nIGludCAqKTsK fCBpbnQKfCBtYWluICgpCnwgewp8IHVuc2lnbmVkIGxvbmcgaW50IGxlbjsKfCAgICAgICAgICAg ICAgICAgICBnZXRwZWVybmFtZSAoMCwgMCwgJmxlbik7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9 CmNvbmZpZ3VyZToyOTk2MTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBjb25mdGVzdC5jID4m NQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAiLXN0ZD1nbnUx MSIKY29uZmlndXJlOjI5OTYxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgR3VpbGUiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUgMi4yLjQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9VU0Vf NjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQKfCAjZGVmaW5lIENf QUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZpbmUgSEFWRV9FTlZJ Uk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCnwgI2RlZmluZSBI QVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQKfCAjZGVmaW5lIG1v ZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmluZSBTVEFUX01BQ1JP U19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJlc3RyaWN0IC8qKi8K fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVExP R0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5lIE1BTExPQ18wX0lT X05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8ICNpZm5kZWYgX19j cGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5lIG1ic3RhdGVfdCBp bnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfU0VURU5WIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1NJWkVfVCAw CnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9X Q0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZpbmUgUFRSRElGRl9U X1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBTSUdfQVRPTUlDX1Rf U1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBXSU5UX1RfU1VGRklY IAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX1RaTkFNRSAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TTlBS SU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9V TlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1NO UFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8ICNkZWZpbmUgR05V TElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NBTk9OSUNBTEla RV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEggMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9TRSAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NPUFlTSUdOIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9ESVJGRCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf RU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rpb24+Igp8 ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VU QUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUQUREUklORk8g MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05BTUUgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1FT0ZEQVlfVElNRVpP TkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEKfCAjZGVmaW5lIEhB VkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRfUFRPTiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUg MQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTSU5G IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lT TkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAxCnwgI2RlZmluZSBI QVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JVRyAx CnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUtPU1RF TVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8gMQp8ICNkZWZpbmUgT1BFTl9U UkFJTElOR19TTEFTSF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfT1BFTiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJUEUyIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX19QVVRFTlYgMAp8ICNk ZWZpbmUgR05VTElCX1RFU1RfUFVURU5WIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRExJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVD ViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWRlJPTSAxCnwgI2RlZmluZSBfUkVHRVhfSU5D TFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VUUyAxCnwgI2RlZmlu ZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAjZGVmaW5lIHJlX3Nl dF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBpbGVfcGF0dGVybiBy cGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zhc3RtYXAgcnBsX3Jl X2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9zZWFyY2gKfCAjZGVm aW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVfbWF0Y2ggcnBsX3Jl X21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwgI2RlZmluZSByZV9z ZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSByZV9jb21wIHJwbF9y ZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmluZSByZWdjb21wIHJw bF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2RlZmluZSByZWdlcnJv ciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUKfCAjZGVmaW5lIEhB VkVfREVDTF9JU0JMQU5LIDAKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9ERVNUX0JV RyAxCnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfU09VUkNFX0JVRyAxCnwgI2RlZmlu ZSBSRU5BTUVfREVTVF9FWElTVFNfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFTkFNRSAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9STURJUiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRUxF Q1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9T RU5EVE8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VURU5WIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1NFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0hVVERPV04gMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfU09DS0VUIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8c3lzL3NvY2tl dC5oPgp8IAp8ICAgICAgICAgICAgICAgICAgICBpbnQgZ2V0cGVlcm5hbWUgKGludCwgdm9pZCAq LCBpbnQgKik7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBpbnQgbGVuOwp8ICAgICAgICAgICAgICAg ICAgIGdldHBlZXJuYW1lICgwLCAwLCAmbGVuKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u ZmlndXJlOjI5OTYxOiBnY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNj MTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItc3RkPWdudTExIgpj b25maWd1cmU6Mjk5NjE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBHdWlsZSIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIu Mi40Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBHdWlsZSAyLjIuNCIKfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3VpbGUvIgp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1Nf XyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX1VTRV82NF9C SVRfSU5PREUgMQp8ICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGludAp8ICNkZWZpbmUgQ19BTExP Q0EgMQp8ICNkZWZpbmUgU1RBQ0tfRElSRUNUSU9OIC0xCnwgI2RlZmluZSBIQVZFX0VOVklST05f REVDTCAxCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0FUSU1FIDAKfCAjZGVmaW5lIEhBVkVf V09SS0lOR19PX05PRk9MTE9XIDAKfCAjZGVmaW5lIHBpZF90IGludAp8ICNkZWZpbmUgbW9kZV90 IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX0FMQVJNIDAKfCAjZGVmaW5lIFNUQVRfTUFDUk9TX0JS T0tFTiAxCnwgI2RlZmluZSBubGlua190IGludAp8ICNkZWZpbmUgcmVzdHJpY3QgLyoqLwp8ICNk ZWZpbmUgSEFWRV9ERUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTE9HSU4g MAp8ICNkZWZpbmUgSUNPTlZfQ09OU1QgCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0dFVENfVU5MT0NLRUQgMAp8ICNkZWZpbmUgTUFMTE9DXzBfSVNfTk9O TlVMTCAwCnwgI2RlZmluZSBQUk9NT1RFRF9NT0RFX1QgbW9kZV90CnwgI2lmbmRlZiBfX2NwbHVz cGx1cwp8ICNkZWZpbmUgaW5saW5lIAp8ICNlbmRpZgp8ICNkZWZpbmUgbWJzdGF0ZV90IGludAp8 ICNkZWZpbmUgc3NpemVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9TRVRFTlYgMAp8ICNkZWZp bmUgQklUU0laRU9GX1BUUkRJRkZfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0laRV9UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dDSEFS X1QgMAp8ICNkZWZpbmUgQklUU0laRU9GX1dJTlRfVCAwCnwgI2RlZmluZSBQVFJESUZGX1RfU1VG RklYIAp8ICNkZWZpbmUgU0laRV9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJR19BVE9NSUNfVF9TVUZG SVggCnwgI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKfCAjZGVmaW5lIFdJTlRfVF9TVUZGSVggCnwg I2RlZmluZSBUTV9JTl9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9WU05QUklOVEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NOUFJJTlRG IDAKfCAjZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOU0VU RU5WIDAKfCAjZGVmaW5lIGludG1heF90IGxvbmcKfCAjZGVmaW5lIEhBVkVfREVDTF9fU05QUklO VEYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0FDQ0VQVDQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQklORCAxCnwgI2RlZmluZSBHTlVMSUJf Q0FOT05JQ0FMSVpFX0xHUEwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0FOT05JQ0FMSVpFX0ZJ TEVfTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFMUEFUSCAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9DRUlMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0NMT1NFIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NPTk5FQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ09QWVNJR04gMQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0RJUkZEIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0RJUkZEIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX0RVUExPQ0FMRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9FTlZJ Uk9OIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0ZSRVhQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0ZTVEFUIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0ZTWU5DIDEKfCAjZGVmaW5lIF9fZnVuY19fICI8dW5rbm93biBmdW5jdGlvbj4iCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0FJX1NUUkVSUk9SIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRBRERS SU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlJFRUFERFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVf REVDTF9HRVROQU1FSU5GTyAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9HRVRMT0dJTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRQ RUVSTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9HRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdFVFRJTUVPRkRBWV9USU1FWk9ORSB2 b2lkCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX0lORVRfTlRPUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9QVE9OIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9JU0ZJTklURSAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0ZJTklURSAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfSVNJTkYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU4gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5E IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFORiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9J U05BTkwgMQp8ICNkZWZpbmUgSEFWRV9WSVNJQklMSVRZIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0xJTksgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTElTVEVOIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX0xPRzFQIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEKfCAjZGVmaW5lIEhBVkVf TUFMTE9DX0dOVSAwCnwgI2RlZmluZSBHTlVMSUJfTUFMTE9DX0dOVSAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9NQUxMT0NfUE9TSVggMQp8ICNkZWZpbmUgRlVOQ19NS0RJUl9ET1RfQlVHIDEKfCAj ZGVmaW5lIEdOVUxJQl9NS09TVEVNUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVNUCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9OTF9MQU5HSU5GTyAxCnwgI2RlZmluZSBPUEVOX1RSQUlM SU5HX1NMQVNIX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9PUEVOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1BJUEUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUElQRTIgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfUE9MTCAxCnwgI2RlZmluZSBIQVZFX0RFQ0xfX1BVVEVOViAwCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9QVVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9SRUFETElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1ZGUk9NIDEKfCAjZGVmaW5lIF9SRUdFWF9JTkNMVURF X0xJTUlUU19IIDEKfCAjZGVmaW5lIF9SRUdFWF9MQVJHRV9PRkZTRVRTIDEKfCAjZGVmaW5lIHJl X3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50YXhfb3B0aW9ucwp8ICNkZWZpbmUgcmVfc2V0X3N5 bnRheCBycGxfcmVfc2V0X3N5bnRheAp8ICNkZWZpbmUgcmVfY29tcGlsZV9wYXR0ZXJuIHJwbF9y ZV9jb21waWxlX3BhdHRlcm4KfCAjZGVmaW5lIHJlX2NvbXBpbGVfZmFzdG1hcCBycGxfcmVfY29t cGlsZV9mYXN0bWFwCnwgI2RlZmluZSByZV9zZWFyY2ggcnBsX3JlX3NlYXJjaAp8ICNkZWZpbmUg cmVfc2VhcmNoXzIgcnBsX3JlX3NlYXJjaF8yCnwgI2RlZmluZSByZV9tYXRjaCBycGxfcmVfbWF0 Y2gKfCAjZGVmaW5lIHJlX21hdGNoXzIgcnBsX3JlX21hdGNoXzIKfCAjZGVmaW5lIHJlX3NldF9y ZWdpc3RlcnMgcnBsX3JlX3NldF9yZWdpc3RlcnMKfCAjZGVmaW5lIHJlX2NvbXAgcnBsX3JlX2Nv bXAKfCAjZGVmaW5lIHJlX2V4ZWMgcnBsX3JlX2V4ZWMKfCAjZGVmaW5lIHJlZ2NvbXAgcnBsX3Jl Z2NvbXAKfCAjZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKfCAjZGVmaW5lIHJlZ2Vycm9yIHJw bF9yZWdlcnJvcgp8ICNkZWZpbmUgcmVnZnJlZSBycGxfcmVnZnJlZQp8ICNkZWZpbmUgSEFWRV9E RUNMX0lTQkxBTksgMAp8ICNkZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX0RFU1RfQlVHIDEK fCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9TT1VSQ0VfQlVHIDEKfCAjZGVmaW5lIFJF TkFNRV9ERVNUX0VYSVNUU19CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVOQU1FIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1JNRElSIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTEVDVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRU5EIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkRU TyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TRVRFTlYgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf U0VUU09DS09QVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9TSFVURE9XTiAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9TT0NLRVQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CnwgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ CnwgCnwgICAgICAgICAgICAgICAgICAgIGludCBnZXRwZWVybmFtZSAoaW50LCB2b2lkICosIHNp emVfdCAqKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHNpemVfdCBsZW47CnwgICAgICAgICAgICAg ICAgICAgZ2V0cGVlcm5hbWUgKDAsIDAsICZsZW4pOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6Mjk5NjE6IGdjYyAtc3RkPWdudTExIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK Y2MxOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1zdGQ9Z251MTEi CmNvbmZpZ3VyZToyOTk2MTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJndWlsZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40Igp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1ndWlsZUBnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS8iCnwgI2RlZmluZSBfQUxM X1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09V UkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5D U19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fVVNFXzY0 X0JJVF9JTk9ERSAxCnwgI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CnwgI2RlZmluZSBDX0FM TE9DQSAxCnwgI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKfCAjZGVmaW5lIEhBVkVfRU5WSVJP Tl9ERUNMIDEKfCAjZGVmaW5lIEhBVkVfV09SS0lOR19PX05PQVRJTUUgMAp8ICNkZWZpbmUgSEFW RV9XT1JLSU5HX09fTk9GT0xMT1cgMAp8ICNkZWZpbmUgcGlkX3QgaW50CnwgI2RlZmluZSBtb2Rl X3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAp8ICNkZWZpbmUgU1RBVF9NQUNST1Nf QlJPS0VOIDEKfCAjZGVmaW5lIG5saW5rX3QgaW50CnwgI2RlZmluZSByZXN0cmljdCAvKiovCnwg I2RlZmluZSBIQVZFX0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRMT0dJ TiAwCnwgI2RlZmluZSBJQ09OVl9DT05TVCAKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfR0VUQ19VTkxPQ0tFRCAwCnwgI2RlZmluZSBNQUxMT0NfMF9JU19O T05OVUxMIDAKfCAjZGVmaW5lIFBST01PVEVEX01PREVfVCBtb2RlX3QKfCAjaWZuZGVmIF9fY3Bs dXNwbHVzCnwgI2RlZmluZSBpbmxpbmUgCnwgI2VuZGlmCnwgI2RlZmluZSBtYnN0YXRlX3QgaW50 CnwgI2RlZmluZSBzc2l6ZV90IGludAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NFVEVOViAwCnwgI2Rl ZmluZSBCSVRTSVpFT0ZfUFRSRElGRl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9TSVpFX1QgMAp8 ICNkZWZpbmUgQklUU0laRU9GX1NJR19BVE9NSUNfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0NI QVJfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKfCAjZGVmaW5lIFBUUkRJRkZfVF9T VUZGSVggCnwgI2RlZmluZSBTSVpFX1RfU1VGRklYIAp8ICNkZWZpbmUgU0lHX0FUT01JQ19UX1NV RkZJWCAKfCAjZGVmaW5lIFdDSEFSX1RfU1VGRklYIAp8ICNkZWZpbmUgV0lOVF9UX1NVRkZJWCAK fCAjZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9UWk5BTUUgMAp8 ICNkZWZpbmUgSEFWRV9ERUNMX1ZTTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU05QUklO VEYgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5T RVRFTlYgMAp8ICNkZWZpbmUgaW50bWF4X3QgbG9uZwp8ICNkZWZpbmUgSEFWRV9ERUNMX19TTlBS SU5URiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfQUNDRVBUNCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9CSU5EIDEKfCAjZGVmaW5lIEdOVUxJ Ql9DQU5PTklDQUxJWkVfTEdQTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVf RklMRV9OQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQUxQQVRIIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0NFSUwgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0xPU0UgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfQ09OTkVDVCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT1BZU0lHTiAxCnwg I2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfRElSRkQgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfRFVQTE9DQUxFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0VO VklST04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRkxPT1IgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfRlJFWFAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfRlNZTkMgMQp8ICNkZWZpbmUgX19mdW5jX18gIjx1bmtub3duIGZ1bmN0aW9uPiIKfCAj ZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0dFVEFE RFJJTkZPIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9GUkVFQUREUklORk8gMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVE5BTUVJTkZPIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVEFERFJJTkZPIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVExPR0lOIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dF VFBFRVJOQU1FIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFNPQ0tOQU1FIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0dFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05F IHZvaWQKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0dFVFRJTUVPRkRBWSAxCnwgI2RlZmluZSBIQVZF X0RFQ0xfSU5FVF9OVE9QIDAKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0lTRklOSVRFIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTRklOSVRFIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9JU0lORiAwCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU0lORiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05B TkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0lTTkFOTCAxCnwgI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfTElOSyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSVNURU4gMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTE9HMVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTFNUQVQgMQp8ICNkZWZpbmUgSEFW RV9NQUxMT0NfR05VIDAKfCAjZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX01BTExPQ19QT1NJWCAxCnwgI2RlZmluZSBGVU5DX01LRElSX0RPVF9CVUcgMQp8 ICNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX01LT1NURU1Q IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX05MX0xBTkdJTkZPIDEKfCAjZGVmaW5lIE9QRU5fVFJB SUxJTkdfU0xBU0hfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX09QRU4gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfUElQRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFMiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9QT0xMIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9fUFVURU5WIDAKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1BVVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUFEIDEKfCAj ZGVmaW5lIEdOVUxJQl9URVNUX1JFQURMSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1Yg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVDVkZST00gMQp8ICNkZWZpbmUgX1JFR0VYX0lOQ0xV REVfTElNSVRTX0ggMQp8ICNkZWZpbmUgX1JFR0VYX0xBUkdFX09GRlNFVFMgMQp8ICNkZWZpbmUg cmVfc3ludGF4X29wdGlvbnMgcnBsX3JlX3N5bnRheF9vcHRpb25zCnwgI2RlZmluZSByZV9zZXRf c3ludGF4IHJwbF9yZV9zZXRfc3ludGF4CnwgI2RlZmluZSByZV9jb21waWxlX3BhdHRlcm4gcnBs X3JlX2NvbXBpbGVfcGF0dGVybgp8ICNkZWZpbmUgcmVfY29tcGlsZV9mYXN0bWFwIHJwbF9yZV9j b21waWxlX2Zhc3RtYXAKfCAjZGVmaW5lIHJlX3NlYXJjaCBycGxfcmVfc2VhcmNoCnwgI2RlZmlu ZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKfCAjZGVmaW5lIHJlX21hdGNoIHJwbF9yZV9t YXRjaAp8ICNkZWZpbmUgcmVfbWF0Y2hfMiBycGxfcmVfbWF0Y2hfMgp8ICNkZWZpbmUgcmVfc2V0 X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwp8ICNkZWZpbmUgcmVfY29tcCBycGxfcmVf Y29tcAp8ICNkZWZpbmUgcmVfZXhlYyBycGxfcmVfZXhlYwp8ICNkZWZpbmUgcmVnY29tcCBycGxf cmVnY29tcAp8ICNkZWZpbmUgcmVnZXhlYyBycGxfcmVnZXhlYwp8ICNkZWZpbmUgcmVnZXJyb3Ig cnBsX3JlZ2Vycm9yCnwgI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCnwgI2RlZmluZSBIQVZF X0RFQ0xfSVNCTEFOSyAwCnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfREVTVF9CVUcg MQp8ICNkZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX1NPVVJDRV9CVUcgMQp8ICNkZWZpbmUg UkVOQU1FX0RFU1RfRVhJU1RTX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRU5BTUUgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfUk1ESVIgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VMRUNU IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFTkQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VO RFRPIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFVEVOViAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9TRVRTT0NLT1BUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1NIVVRET1dOIDEKfCAjZGVmaW5l IEdOVUxJQl9URVNUX1NPQ0tFVCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAgICAgICAgICAgICAgICAgICAgI2luY2x1ZGUgPHN5cy9zb2NrZXQu aD4KfCAKfCAgICAgICAgICAgICAgICAgICAgaW50IGdldHBlZXJuYW1lIChpbnQsIHZvaWQgKiwg dW5zaWduZWQgaW50ICopOwp8IGludAp8IG1haW4gKCkKfCB7CnwgdW5zaWduZWQgaW50IGxlbjsK fCAgICAgICAgICAgICAgICAgICBnZXRwZWVybmFtZSAoMCwgMCwgJmxlbik7CnwgICA7CnwgICBy ZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyOTk2MTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlv biAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI5OTYxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgR3VpbGUg Mi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25lZCBpbnQK fCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8ICNkZWZp bmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAw CnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRfdCBpbnQK fCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwgI2RlZmlu ZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVmaW5lIHJl c3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFW RV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUgV09SRFNf QklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAjZGVmaW5l IE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1vZGVfdAp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAjZGVmaW5l IG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZFX0RFQ0xf U0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUgQklUU0la RU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAjZGVmaW5l IEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8ICNkZWZp bmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2RlZmluZSBT SUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2RlZmluZSBX SU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVmaW5lIEhB VkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAjZGVmaW5l IEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2RlZmluZSBI QVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJTkQgMQp8 ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBTFBBVEgg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DTE9T RSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNU X0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBHTlVMSUJf VEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RBVCAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24g ZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2RlZmluZSBI QVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAw CnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElCX1RFU1Rf R0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS05B TUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBHRVRUSU1F T0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9GREFZIDEK fCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0lORVRf UFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05VTElCX1RF U1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAwCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAxCnwg I2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MU1RBVCAx CnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExPQ19HTlUg MQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZVTkNfTUtE SVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElC X1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8gMQp8ICNk ZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfT1BF TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BJ UEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX19Q VVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5WIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRExJTksgMQp8ICNkZWZpbmUgR05V TElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWRlJPTSAxCnwgI2RlZmlu ZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0VfT0ZGU0VU UyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlvbnMKfCAj ZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJlX2NvbXBp bGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21waWxlX2Zh c3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJwbF9yZV9z ZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZpbmUgcmVf bWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCnwg I2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2RlZmluZSBy ZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwgI2RlZmlu ZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVjCnwgI2Rl ZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3JlZ2ZyZWUK fCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDAKfCAjZGVmaW5lIFJFTkFNRV9UUkFJTElOR19T TEFTSF9ERVNUX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfU09VUkNFX0JV RyAxCnwgI2RlZmluZSBSRU5BTUVfREVTVF9FWElTVFNfQlVHIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1JFTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9STURJUiAxCnwgI2RlZmluZSBHTlVM SUJfVEVTVF9TRUxFQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORCAxCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9TRU5EVE8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VURU5WIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX1NFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0hVVERP V04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU09DS0VUIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgICAgICAgICAgICAjaW5jbHVk ZSA8c3lzL3NvY2tldC5oPgp8IAp8ICAgICAgICAgICAgICAgICAgICBpbnQgZ2V0cGVlcm5hbWUg KGludCwgdm9pZCAqLCBsb25nIGludCAqKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IGxvbmcgaW50 IGxlbjsKfCAgICAgICAgICAgICAgICAgICBnZXRwZWVybmFtZSAoMCwgMCwgJmxlbik7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyOTk2MTogZ2NjIC1zdGQ9Z251MTEgLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5l IG9wdGlvbiAiLXN0ZD1nbnUxMSIKY29uZmlndXJlOjI5OTYxOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgR3VpbGUiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImd1aWxlIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg R3VpbGUgMi4yLjQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWd1aWxlQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1 aWxlLyIKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0Ug MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgX0RBUldJTl9VU0VfNjRfQklUX0lOT0RFIDEKfCAjZGVmaW5lIHNpemVfdCB1bnNpZ25l ZCBpbnQKfCAjZGVmaW5lIENfQUxMT0NBIDEKfCAjZGVmaW5lIFNUQUNLX0RJUkVDVElPTiAtMQp8 ICNkZWZpbmUgSEFWRV9FTlZJUk9OX0RFQ0wgMQp8ICNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9B VElNRSAwCnwgI2RlZmluZSBIQVZFX1dPUktJTkdfT19OT0ZPTExPVyAwCnwgI2RlZmluZSBwaWRf dCBpbnQKfCAjZGVmaW5lIG1vZGVfdCBpbnQKfCAjZGVmaW5lIEhBVkVfREVDTF9BTEFSTSAwCnwg I2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQp8ICNkZWZpbmUgbmxpbmtfdCBpbnQKfCAjZGVm aW5lIHJlc3RyaWN0IC8qKi8KfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZp bmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKfCAjZGVmaW5lIElDT05WX0NPTlNUIAp8ICNkZWZpbmUg V09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9HRVRDX1VOTE9DS0VEIDAKfCAj ZGVmaW5lIE1BTExPQ18wX0lTX05PTk5VTEwgMAp8ICNkZWZpbmUgUFJPTU9URURfTU9ERV9UIG1v ZGVfdAp8ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAjZGVmaW5lIGlubGluZSAKfCAjZW5kaWYKfCAj ZGVmaW5lIG1ic3RhdGVfdCBpbnQKfCAjZGVmaW5lIHNzaXplX3QgaW50CnwgI2RlZmluZSBIQVZF X0RFQ0xfU0VURU5WIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAp8ICNkZWZpbmUg QklUU0laRU9GX1NJWkVfVCAwCnwgI2RlZmluZSBCSVRTSVpFT0ZfU0lHX0FUT01JQ19UIDAKfCAj ZGVmaW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKfCAjZGVmaW5lIEJJVFNJWkVPRl9XSU5UX1QgMAp8 ICNkZWZpbmUgUFRSRElGRl9UX1NVRkZJWCAKfCAjZGVmaW5lIFNJWkVfVF9TVUZGSVggCnwgI2Rl ZmluZSBTSUdfQVRPTUlDX1RfU1VGRklYIAp8ICNkZWZpbmUgV0NIQVJfVF9TVUZGSVggCnwgI2Rl ZmluZSBXSU5UX1RfU1VGRklYIAp8ICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgMQp8ICNkZWZpbmUg SEFWRV9ERUNMX1RaTkFNRSAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKfCAjZGVm aW5lIEhBVkVfREVDTF9TTlBSSU5URiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1RSRFVQIDAKfCAj ZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAwCnwgI2RlZmluZSBpbnRtYXhfdCBsb25nCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfX1NOUFJJTlRGIDAKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9BQ0NFUFQ0IDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0JJ TkQgMQp8ICNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BMIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVB TFBBVEggMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCnwgI2RlZmluZSBHTlVMSUJfVEVT VF9DTE9TRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9DT05ORUNUIDEKfCAjZGVmaW5lIEdOVUxJ Ql9URVNUX0NPUFlTSUdOIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9ESVJGRCAwCnwgI2RlZmluZSBH TlVMSUJfVEVTVF9ESVJGRCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfRU5WSVJPTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GTE9PUiAx CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1RB VCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9GU1lOQyAxCnwgI2RlZmluZSBfX2Z1bmNfXyAiPHVu a25vd24gZnVuY3Rpb24+Igp8ICNkZWZpbmUgSEFWRV9ERUNMX0dBSV9TVFJFUlJPUiAwCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfR0VUQUREUklORk8gMAp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERS SU5GTyAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfR0VUTkFNRUlORk8gMAp8ICNkZWZpbmUgR05VTElC X1RFU1RfR0VUQUREUklORk8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQp8ICNk ZWZpbmUgR05VTElCX1RFU1RfR0VUUEVFUk5BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VU U09DS05BTUUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUU09DS09QVCAxCnwgI2RlZmluZSBH RVRUSU1FT0ZEQVlfVElNRVpPTkUgdm9pZAp8ICNkZWZpbmUgR05VTElCX1RFU1RfR0VUVElNRU9G REFZIDEKfCAjZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1AgMAp8ICNkZWZpbmUgSEFWRV9ERUNM X0lORVRfUFRPTiAwCnwgI2RlZmluZSBIQVZFX0RFQ0xfSVNGSU5JVEUgMAp8ICNkZWZpbmUgR05V TElCX1RFU1RfSVNGSU5JVEUgMQp8ICNkZWZpbmUgSEFWRV9ERUNMX0lTSU5GIDAKfCAjZGVmaW5l IEdOVUxJQl9URVNUX0lTSU5GIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFOIDEKfCAjZGVm aW5lIEdOVUxJQl9URVNUX0lTTkFORCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkYgMQp8 ICNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKfCAjZGVmaW5lIEhBVkVfVklTSUJJTElUWSAw CnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MSU5LIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RF TiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9MT0cxUCAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9M U1RBVCAxCnwgI2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAp8ICNkZWZpbmUgR05VTElCX01BTExP Q19HTlUgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTUFMTE9DX1BPU0lYIDEKfCAjZGVmaW5lIEZV TkNfTUtESVJfRE9UX0JVRyAxCnwgI2RlZmluZSBHTlVMSUJfTUtPU1RFTVAgMQp8ICNkZWZpbmUg R05VTElCX1RFU1RfTUtPU1RFTVAgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8g MQp8ICNkZWZpbmUgT1BFTl9UUkFJTElOR19TTEFTSF9CVUcgMQp8ICNkZWZpbmUgR05VTElCX1RF U1RfT1BFTiAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFIDEKfCAjZGVmaW5lIEdOVUxJQl9U RVNUX1BJUEUyIDEKfCAjZGVmaW5lIEdOVUxJQl9URVNUX1BPTEwgMQp8ICNkZWZpbmUgSEFWRV9E RUNMX19QVVRFTlYgMAp8ICNkZWZpbmUgR05VTElCX1RFU1RfUFVURU5WIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JFQUQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfUkVBRExJTksgMQp8ICNkZWZp bmUgR05VTElCX1RFU1RfUkVDViAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9SRUNWRlJPTSAxCnwg I2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCnwgI2RlZmluZSBfUkVHRVhfTEFSR0Vf T0ZGU0VUUyAxCnwgI2RlZmluZSByZV9zeW50YXhfb3B0aW9ucyBycGxfcmVfc3ludGF4X29wdGlv bnMKfCAjZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKfCAjZGVmaW5lIHJl X2NvbXBpbGVfcGF0dGVybiBycGxfcmVfY29tcGlsZV9wYXR0ZXJuCnwgI2RlZmluZSByZV9jb21w aWxlX2Zhc3RtYXAgcnBsX3JlX2NvbXBpbGVfZmFzdG1hcAp8ICNkZWZpbmUgcmVfc2VhcmNoIHJw bF9yZV9zZWFyY2gKfCAjZGVmaW5lIHJlX3NlYXJjaF8yIHJwbF9yZV9zZWFyY2hfMgp8ICNkZWZp bmUgcmVfbWF0Y2ggcnBsX3JlX21hdGNoCnwgI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRj aF8yCnwgI2RlZmluZSByZV9zZXRfcmVnaXN0ZXJzIHJwbF9yZV9zZXRfcmVnaXN0ZXJzCnwgI2Rl ZmluZSByZV9jb21wIHJwbF9yZV9jb21wCnwgI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCnwg I2RlZmluZSByZWdjb21wIHJwbF9yZWdjb21wCnwgI2RlZmluZSByZWdleGVjIHJwbF9yZWdleGVj CnwgI2RlZmluZSByZWdlcnJvciBycGxfcmVnZXJyb3IKfCAjZGVmaW5lIHJlZ2ZyZWUgcnBsX3Jl Z2ZyZWUKfCAjZGVmaW5lIEhBVkVfREVDTF9JU0JMQU5LIDAKfCAjZGVmaW5lIFJFTkFNRV9UUkFJ TElOR19TTEFTSF9ERVNUX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfVFJBSUxJTkdfU0xBU0hfU09V UkNFX0JVRyAxCnwgI2RlZmluZSBSRU5BTUVfREVTVF9FWElTVFNfQlVHIDEKfCAjZGVmaW5lIEdO VUxJQl9URVNUX1JFTkFNRSAxCnwgI2RlZmluZSBHTlVMSUJfVEVTVF9STURJUiAxCnwgI2RlZmlu ZSBHTlVMSUJfVEVTVF9TRUxFQ1QgMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VORCAxCnwgI2Rl ZmluZSBHTlVMSUJfVEVTVF9TRU5EVE8gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU0VURU5WIDEK fCAjZGVmaW5lIEdOVUxJQl9URVNUX1NFVFNPQ0tPUFQgMQp8ICNkZWZpbmUgR05VTElCX1RFU1Rf U0hVVERPV04gMQp8ICNkZWZpbmUgR05VTElCX1RFU1RfU09DS0VUIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICAgICAgICAgICAgICAgICAgICAj aW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8IAp8ICAgICAgICAgICAgICAgICAgICBpbnQgZ2V0cGVl cm5hbWUgKGludCwgdm9pZCAqLCB1bnNpZ25lZCBsb25nIGludCAqKTsKfCBpbnQKfCBtYWluICgp Cnwgewp8IHVuc2lnbmVkIGxvbmcgaW50IGxlbjsKfCAgICAgICAgICAgICAgICAgICBnZXRwZWVy bmFtZSAoMCwgMCwgJmxlbik7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToyOTk3 MzogZXJyb3I6IENhbm5vdCBmaW5kIGEgdHlwZSB0byB1c2UgaW4gcGxhY2Ugb2Ygc29ja2xlbl90 CgojIyAtLS0tLS0tLS0tLS0tLS0tICMjCiMjIENhY2hlIHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0t LS0tLS0tLS0tLSAjIwoKYWNfY3ZfYnVpbGQ9eDg2XzY0LXBjLWxpbnV4LWdudQphY19jdl9jX2Jp Z2VuZGlhbj15ZXMKYWNfY3ZfY19jb21waWxlcl9nbnU9eWVzCmFjX2N2X2NfaW5saW5lPW5vCmFj X2N2X2NfcmVzdHJpY3Q9bm8KYWNfY3ZfY19zdGFja19kaXJlY3Rpb249LTEKYWNfY3ZfZW52X0JE V19HQ19DRkxBR1Nfc2V0PQphY19jdl9lbnZfQkRXX0dDX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52 X0JEV19HQ19MSUJTX3NldD0KYWNfY3ZfZW52X0JEV19HQ19MSUJTX3ZhbHVlPQphY19jdl9lbnZf Q0NfRk9SX0JVSUxEX3NldD0KYWNfY3ZfZW52X0NDX0ZPUl9CVUlMRF92YWx1ZT0KYWNfY3ZfZW52 X0NDX3NldD0KYWNfY3ZfZW52X0NDX3ZhbHVlPQphY19jdl9lbnZfQ0ZMQUdTX3NldD0KYWNfY3Zf ZW52X0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0KYWNfY3ZfZW52X0NQUEZM QUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQX3NldD0KYWNfY3ZfZW52X0NQUF92YWx1ZT0KYWNfY3Zf ZW52X0VNQUNTTE9BRFBBVEhfc2V0PQphY19jdl9lbnZfRU1BQ1NMT0FEUEFUSF92YWx1ZT0KYWNf Y3ZfZW52X0VNQUNTX3NldD0KYWNfY3ZfZW52X0VNQUNTX3ZhbHVlPQphY19jdl9lbnZfR1VJTEVf Rk9SX0JVSUxEX3NldD0KYWNfY3ZfZW52X0dVSUxFX0ZPUl9CVUlMRF92YWx1ZT0KYWNfY3ZfZW52 X0xERkxBR1Nfc2V0PQphY19jdl9lbnZfTERGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0xJQkZGSV9D RkxBR1Nfc2V0PQphY19jdl9lbnZfTElCRkZJX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0xJQkZG SV9MSUJTX3NldD0KYWNfY3ZfZW52X0xJQkZGSV9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTElCU19z ZXQ9CmFjX2N2X2Vudl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTFRfU1lTX0xJQlJBUllfUEFUSF9z ZXQ9CmFjX2N2X2Vudl9MVF9TWVNfTElCUkFSWV9QQVRIX3ZhbHVlPQphY19jdl9lbnZfUEtHX0NP TkZJR19MSUJESVJfc2V0PQphY19jdl9lbnZfUEtHX0NPTkZJR19MSUJESVJfdmFsdWU9CmFjX2N2 X2Vudl9QS0dfQ09ORklHX1BBVEhfc2V0PQphY19jdl9lbnZfUEtHX0NPTkZJR19QQVRIX3ZhbHVl PQphY19jdl9lbnZfUEtHX0NPTkZJR19zZXQ9CmFjX2N2X2Vudl9QS0dfQ09ORklHX3ZhbHVlPQph Y19jdl9lbnZfYnVpbGRfYWxpYXNfc2V0PQphY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9CmFj X2N2X2Vudl9ob3N0X2FsaWFzX3NldD0KYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9CmFjX2N2 X2Vudl90YXJnZXRfYWxpYXNfc2V0PQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPQphY19j dl9mdW5jX19mdGltZT1ubwphY19jdl9mdW5jX19zZXRfaW52YWxpZF9wYXJhbWV0ZXJfaGFuZGxl cj1ubwphY19jdl9mdW5jX2FjY2VwdDQ9bm8KYWNfY3ZfZnVuY19hbGxvY2Ffd29ya3M9bm8KYWNf Y3ZfZnVuY19idG93Yz1ubwphY19jdl9mdW5jX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWU9bm8KYWNf Y3ZfZnVuY19jbG9ja19nZXRjcHVjbG9ja2lkPW5vCmFjX2N2X2Z1bmNfY2xvY2tfZ2V0dGltZT1u bwphY19jdl9mdW5jX2Nsb2NrX3NldHRpbWU9bm8KYWNfY3ZfZnVuY19kaXJmZD1ubwphY19jdl9m dW5jX2R1cGxvY2FsZT1ubwphY19jdl9mdW5jX2ZjbnRsPW5vCmFjX2N2X2Z1bmNfZmxvY2s9bm8K YWNfY3ZfZnVuY19mc3luYz1ubwphY19jdl9mdW5jX2dldGN3ZD1ubwphY19jdl9mdW5jX2dldGVn aWQ9bm8KYWNfY3ZfZnVuY19nZXRldWlkPW5vCmFjX2N2X2Z1bmNfZ2V0Z2lkPW5vCmFjX2N2X2Z1 bmNfZ2V0aG9zdGJ5bmFtZT1ubwphY19jdl9mdW5jX2dldGxvZ2luPW5vCmFjX2N2X2Z1bmNfZ2V0 c2VydmJ5bmFtZT1ubwphY19jdl9mdW5jX2dldHRpbWVvZmRheT1ubwphY19jdl9mdW5jX2dldHVp ZD1ubwphY19jdl9mdW5jX2luZXRfbnRvcD1ubwphY19jdl9mdW5jX2luZXRfcHRvbj1ubwphY19j dl9mdW5jX2lzYmxhbms9bm8KYWNfY3ZfZnVuY19pc3djbnRybD1ubwphY19jdl9mdW5jX2lzd2N0 eXBlPW5vCmFjX2N2X2Z1bmNfbGluaz1ubwphY19jdl9mdW5jX2xvY2FsdGltZV9yPW5vCmFjX2N2 X2Z1bmNfbG9nMXA9bm8KYWNfY3ZfZnVuY19sc3RhdD1ubwphY19jdl9mdW5jX21hbGxvY18wX25v bm51bGw9bm8KYWNfY3ZfZnVuY19tYnJ0b3djPW5vCmFjX2N2X2Z1bmNfbWJzaW5pdD1ubwphY19j dl9mdW5jX21rb3N0ZW1wPW5vCmFjX2N2X2Z1bmNfbW1hcD1ubwphY19jdl9mdW5jX21wcm90ZWN0 PW5vCmFjX2N2X2Z1bmNfbmxfbGFuZ2luZm89bm8KYWNfY3ZfZnVuY19waXBlMj1ubwphY19jdl9m dW5jX3BpcGU9bm8KYWNfY3ZfZnVuY19wb2xsPW5vCmFjX2N2X2Z1bmNfcHN0YXRfZ2V0ZHluYW1p Yz1ubwphY19jdl9mdW5jX3JlYWRsaW5rPW5vCmFjX2N2X2Z1bmNfcmVhbHBhdGg9bm8KYWNfY3Zf ZnVuY19zY2hlZF9nZXRhZmZpbml0eT1ubwphY19jdl9mdW5jX3NjaGVkX2dldGFmZmluaXR5X25w PW5vCmFjX2N2X2Z1bmNfc2VjdXJlX2dldGVudj1ubwphY19jdl9mdW5jX3NldGVudj1ubwphY19j dl9mdW5jX3NucHJpbnRmPW5vCmFjX2N2X2Z1bmNfc3RyZHVwPW5vCmFjX2N2X2Z1bmNfc3Rybmxl bj1ubwphY19jdl9mdW5jX3N5bWxpbms9bm8KYWNfY3ZfZnVuY19zeXNjdGw9bm8KYWNfY3ZfZnVu Y19zeXNtcD1ubwphY19jdl9mdW5jX3RpbWVnbT1ubwphY19jdl9mdW5jX3RpbWVzPW5vCmFjX2N2 X2Z1bmNfdHNlYXJjaD1ubwphY19jdl9mdW5jX3R6c2V0PW5vCmFjX2N2X2Z1bmNfdmFzbnByaW50 Zj1ubwphY19jdl9mdW5jX3djcnRvbWI9bm8KYWNfY3ZfZnVuY193Y3NsZW49bm8KYWNfY3ZfZnVu Y193Y3NubGVuPW5vCmFjX2N2X2dudV9saWJyYXJ5XzJfMT15ZXMKYWNfY3ZfaGF2ZV9kZWNsX19w dXRlbnY9bm8KYWNfY3ZfaGF2ZV9kZWNsX19zbnByaW50Zj1ubwphY19jdl9oYXZlX2RlY2xfYWxh cm09bm8KYWNfY3ZfaGF2ZV9kZWNsX2RpcmZkPW5vCmFjX2N2X2hhdmVfZGVjbF9mcmVlYWRkcmlu Zm89bm8KYWNfY3ZfaGF2ZV9kZWNsX2dhaV9zdHJlcnJvcj1ubwphY19jdl9oYXZlX2RlY2xfZ2V0 YWRkcmluZm89bm8KYWNfY3ZfaGF2ZV9kZWNsX2dldGNfdW5sb2NrZWQ9bm8KYWNfY3ZfaGF2ZV9k ZWNsX2dldGxvZ2luPW5vCmFjX2N2X2hhdmVfZGVjbF9nZXRuYW1laW5mbz1ubwphY19jdl9oYXZl X2RlY2xfaW5ldF9udG9wPW5vCmFjX2N2X2hhdmVfZGVjbF9pbmV0X3B0b249bm8KYWNfY3ZfaGF2 ZV9kZWNsX2lzYmxhbms9bm8KYWNfY3ZfaGF2ZV9kZWNsX2lzZmluaXRlPW5vCmFjX2N2X2hhdmVf ZGVjbF9pc2luZj1ubwphY19jdl9oYXZlX2RlY2xfc2V0ZW52PW5vCmFjX2N2X2hhdmVfZGVjbF9z bnByaW50Zj1ubwphY19jdl9oYXZlX2RlY2xfc3RyZHVwPW5vCmFjX2N2X2hhdmVfZGVjbF90em5h bWU9bm8KYWNfY3ZfaGF2ZV9kZWNsX3Vuc2V0ZW52PW5vCmFjX2N2X2hhdmVfZGVjbF92c25wcmlu dGY9bm8KYWNfY3ZfaGVhZGVyX2FycGFfaW5ldF9oPW5vCmFjX2N2X2hlYWRlcl9ieXRlc3dhcF9o PW5vCmFjX2N2X2hlYWRlcl9kaXJlbnRfaD1ubwphY19jdl9oZWFkZXJfZmVhdHVyZXNfaD1ubwph Y19jdl9oZWFkZXJfaWNvbnZfaD1ubwphY19jdl9oZWFkZXJfaW50dHlwZXNfaD1ubwphY19jdl9o ZWFkZXJfbGFuZ2luZm9faD1ubwphY19jdl9oZWFkZXJfbGliaW50bF9oPW5vCmFjX2N2X2hlYWRl cl9saW1pdHNfaD1ubwphY19jdl9oZWFkZXJfbWFsbG9jX2g9bm8KYWNfY3ZfaGVhZGVyX21hdGhf aD1ubwphY19jdl9oZWFkZXJfbWVtb3J5X2g9bm8KYWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19o PW5vCmFjX2N2X2hlYWRlcl9uZXRkYl9oPW5vCmFjX2N2X2hlYWRlcl9uZXRpbmV0X2luX2g9bm8K YWNfY3ZfaGVhZGVyX3BvbGxfaD1ubwphY19jdl9oZWFkZXJfc2VhcmNoX2g9bm8KYWNfY3ZfaGVh ZGVyX3N0YXRfYnJva2VuPXllcwphY19jdl9oZWFkZXJfc3RkYm9vbF9oPW5vCmFjX2N2X2hlYWRl cl9zdGRjPW5vCmFjX2N2X2hlYWRlcl9zdGRpbnRfaD1ubwphY19jdl9oZWFkZXJfc3RkbGliX2g9 bm8KYWNfY3ZfaGVhZGVyX3N0cmluZ19oPW5vCmFjX2N2X2hlYWRlcl9zdHJpbmdzX2g9bm8KYWNf Y3ZfaGVhZGVyX3N5c19iaXR5cGVzX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19maWxlX2g9bm8KYWNf Y3ZfaGVhZGVyX3N5c19maWxpb19oPW5vCmFjX2N2X2hlYWRlcl9zeXNfaW50dHlwZXNfaD1ubwph Y19jdl9oZWFkZXJfc3lzX2lvY3RsX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19tbWFuX2g9bm8KYWNf Y3ZfaGVhZGVyX3N5c19wYXJhbV9oPW5vCmFjX2N2X2hlYWRlcl9zeXNfcHN0YXRfaD1ubwphY19j dl9oZWFkZXJfc3lzX3NlbGVjdF9oPW5vCmFjX2N2X2hlYWRlcl9zeXNfc29ja2V0X2g9bm8KYWNf Y3ZfaGVhZGVyX3N5c19zdGF0X2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zeXNjdGxfaD1ubwphY19j dl9oZWFkZXJfc3lzX3N5c21wX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c190aW1lX2g9bm8KYWNfY3Zf aGVhZGVyX3N5c190aW1lYl9oPW5vCmFjX2N2X2hlYWRlcl9zeXNfdGltZXNfaD1ubwphY19jdl9o ZWFkZXJfc3lzX3R5cGVzX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c191aW9faD1ubwphY19jdl9oZWFk ZXJfdW5pc3RkX2g9bm8KYWNfY3ZfaGVhZGVyX3djaGFyX2g9bm8KYWNfY3ZfaGVhZGVyX3djdHlw ZV9oPW5vCmFjX2N2X2hlYWRlcl93aW5zb2NrMl9oPW5vCmFjX2N2X2hlYWRlcl93czJ0Y3BpcF9o PW5vCmFjX2N2X2hlYWRlcl94bG9jYWxlX2g9bm8KYWNfY3ZfaG9zdD14ODZfNjQtcGMtbGludXgt Z251CmFjX2N2X2xpYnVuaXN0cmluZz0nbm8sIGNvbnNpZGVyIGluc3RhbGxpbmcgR05VIGxpYnVu aXN0cmluZycKYWNfY3ZfbWVtYmVyX3N0cnVjdF9mbG9ja19sX3R5cGU9bm8KYWNfY3ZfbWVtYmVy X3N0cnVjdF9zb2NrYWRkcl9zYV9sZW49bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF90bV90bV9nbXRv ZmY9bm8KYWNfY3ZfbWVtYmVyX3N0cnVjdF90bV90bV96b25lPW5vCmFjX2N2X29iamV4dD1vCmFj X2N2X29zX2NyYXk9bm8KYWNfY3ZfcGF0aF9FR1JFUD0nL2Jpbi9ncmVwIC1FJwphY19jdl9wYXRo X0dSRVA9L2Jpbi9ncmVwCmFjX2N2X3BhdGhfU0VEPS9iaW4vc2VkCmFjX2N2X3BhdGhfaW5zdGFs bD0nL3Vzci9iaW4vaW5zdGFsbCAtYycKYWNfY3ZfcGF0aF9ta2Rpcj0vYmluL21rZGlyCmFjX2N2 X3Byb2dfQVdLPWdhd2sKYWNfY3ZfcHJvZ19DUFA9L2xpYi9jcHAKYWNfY3ZfcHJvZ19hY19jdF9B Uj1hcgphY19jdl9wcm9nX2FjX2N0X0NDPWdjYwphY19jdl9wcm9nX2FjX2N0X1JBTkxJQj1yYW5s aWIKYWNfY3ZfcHJvZ19jY19jODk9CmFjX2N2X3Byb2dfY2NfZz15ZXMKYWNfY3ZfcHJvZ19tYWtl X21ha2Vfc2V0PXllcwphY19jdl9zYWZlX3RvX2RlZmluZV9fX2V4dGVuc2lvbnNfXz1ubwphY19j dl9zZWFyY2hfY2xvY2tfZ2V0dGltZT1ubwphY19jdl9zZWFyY2hfZ2V0YWRkcmluZm89bm8KYWNf Y3Zfc2VhcmNoX2dldGhvc3RieW5hbWU9bm8KYWNfY3Zfc2VhcmNoX2dldHNlcnZieW5hbWU9bm8K YWNfY3Zfc2VhcmNoX2luZXRfbnRvcD1ubwphY19jdl9zZWFyY2hfaW5ldF9wdG9uPW5vCmFjX2N2 X3Nob3VsZF9kZWZpbmVfX3hvcGVuX3NvdXJjZT1ubwphY19jdl9zdHJ1Y3RfdG09c3lzL3RpbWUu aAphY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cz11bmtub3duCmFjX2N2X3N5c19sYXJnZV9maWxl cz11bmtub3duCmFjX2N2X3N5c19sYXJnZWZpbGVfQ0M9bm8KYWNfY3ZfdHlwZV9fQm9vbD1ubwph Y19jdl90eXBlX2xvbmdfbG9uZ19pbnQ9bm8KYWNfY3ZfdHlwZV9tYXhfYWxpZ25fdD1ubwphY19j dl90eXBlX21ic3RhdGVfdD1ubwphY19jdl90eXBlX21vZGVfdD1ubwphY19jdl90eXBlX25saW5r X3Q9bm8KYWNfY3ZfdHlwZV9waWRfdD1ubwphY19jdl90eXBlX3NhX2ZhbWlseV90PW5vCmFjX2N2 X3R5cGVfc2lnaGFuZGxlcl90PW5vCmFjX2N2X3R5cGVfc2lnc2V0X3Q9bm8KYWNfY3ZfdHlwZV9z aXplX3Q9bm8KYWNfY3ZfdHlwZV9zb2NrbGVuX3Q9bm8KYWNfY3ZfdHlwZV9zdHJ1Y3RfYWRkcmlu Zm89bm8KYWNfY3ZfdHlwZV9zdHJ1Y3Rfc29ja2FkZHJfc3RvcmFnZT1ubwphY19jdl90eXBlX3Vp ZF90PXllcwphY19jdl90eXBlX3Vuc2lnbmVkX2xvbmdfbG9uZ19pbnQ9bm8KYWNfY3ZfdHlwZV92 b2xhdGlsZV9zaWdfYXRvbWljX3Q9bm8KYWNfY3ZfdmFyX3R6bmFtZT1ubwphY19jdl93b3JraW5n X2FsbG9jYV9oPW5vCmFjbF9jdl9oYXJkY29kZV9kaXJlY3Q9bm8KYWNsX2N2X2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKYWNsX2N2X2hhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3I9CmFjbF9jdl9oYXJkY29kZV9taW51c19MPW5vCmFjbF9jdl9saWJl eHQ9YQphY2xfY3ZfbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKYWNsX2N2X2xpYnJhcnlfbmFtZXNf c3BlYz0nJGxpYm5hbWUkc2hyZXh0JwphY2xfY3ZfcGF0aF9MRD0vdXNyL2Jpbi9sZAphY2xfY3Zf cHJvZ19nbnVfbGQ9eWVzCmFjbF9jdl9ycGF0aD1kb25lCmFjbF9jdl9zaGxpYmV4dD1zbwphY2xf Y3Zfd2w9LVdsLAphbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1nY2MzCmFtX2N2 X2FyX2ludGVyZmFjZT1hcgphbV9jdl9mdW5jX2ljb252PSdubywgY29uc2lkZXIgaW5zdGFsbGlu ZyBHTlUgbGliaWNvbnYnCmFtX2N2X2xhbmdpbmZvX2NvZGVzZXQ9bm8KYW1fY3ZfbGliX2ljb252 PW5vCmFtX2N2X21ha2Vfc3VwcG9ydF9uZXN0ZWRfdmFyaWFibGVzPXllcwphbV9jdl9wcm9nX2Nj X2Nfbz15ZXMKYW1fY3ZfcHJvdG9faWNvbnZfYXJnMT0KZ2xfY3ZfYWJzb2x1dGVfZmNudGxfaD0v Ly91c3IvaW5jbHVkZS9mY250bC5oCmdsX2N2X2Fic29sdXRlX2Zsb2F0X2g9Ly8vdXNyL2xpYi9n Y2MveDg2XzY0LXJlZGhhdC1saW51eC80LjQuNy9pbmNsdWRlL2Zsb2F0LmgKZ2xfY3ZfYWJzb2x1 dGVfbG9jYWxlX2g9Ly8vdXNyL2luY2x1ZGUvbG9jYWxlLmgKZ2xfY3ZfYWJzb2x1dGVfc2lnbmFs X2g9Ly8vdXNyL2luY2x1ZGUvc2lnbmFsLmgKZ2xfY3ZfYWJzb2x1dGVfc3RkZGVmX2g9Ly8vdXNy L2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC80LjQuNy9pbmNsdWRlL3N0ZGRlZi5oCmdsX2N2 X2Fic29sdXRlX3N0cmluZ19oPS8vL3Vzci9pbmNsdWRlL3N0cmluZy5oCmdsX2N2X2Fic29sdXRl X3N5c190eXBlc19oPS8vL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oCmdsX2N2X2Fic29sdXRlX3Rp bWVfaD0vLy91c3IvaW5jbHVkZS90aW1lLmgKZ2xfY3ZfYml0c2l6ZW9mX3B0cmRpZmZfdD11bmtu b3duCmdsX2N2X2JpdHNpemVvZl9zaWdfYXRvbWljX3Q9dW5rbm93bgpnbF9jdl9iaXRzaXplb2Zf c2l6ZV90PXVua25vd24KZ2xfY3ZfYml0c2l6ZW9mX3djaGFyX3Q9dW5rbm93bgpnbF9jdl9iaXRz aXplb2Zfd2ludF90PXVua25vd24KZ2xfY3ZfY19hbXN0ZXJkYW1fY29tcGlsZXI9bm8KZ2xfY3Zf Y19tdWx0aWFyY2g9bm8KZ2xfY3ZfY2NfZG91YmxlX2V4cGJpdDA9dW5rbm93bgpnbF9jdl9jY19m bG9hdF9leHBiaXQwPXVua25vd24KZ2xfY3ZfY2NfbG9uZ19kb3VibGVfZXhwYml0MD11bmtub3du CmdsX2N2X2NjX3Zpc193ZXJyb3I9bm8KZ2xfY3ZfY2NfdmlzaWJpbGl0eT1ubwpnbF9jdl9kZWNs X251bGxfd29ya3M9bm8KZ2xfY3ZfZG91YmxlX3NsYXNoX3Jvb3Q9bm8KZ2xfY3ZfZnVuY19jZWls X2xpYm09Jz8nCmdsX2N2X2Z1bmNfY29weXNpZ25faW5fbGlibT1ubwpnbF9jdl9mdW5jX2NvcHlz aWduX25vX2xpYm09bm8KZ2xfY3ZfZnVuY19kaXJmZF9tYWNybz1ubwpnbF9jdl9mdW5jX2Zsb29y X2xpYm09Jz8nCmdsX2N2X2Z1bmNfZnJleHBfaW5fbGlibT1ubwpnbF9jdl9mdW5jX2ZyZXhwX25v X2xpYm09bm8KZ2xfY3ZfZnVuY19nZXRhZGRyaW5mbz1ubwpnbF9jdl9mdW5jX2lzbmFuZF9pbl9s aWJtPW5vCmdsX2N2X2Z1bmNfaXNuYW5kX25vX2xpYm09bm8KZ2xfY3ZfZnVuY19pc25hbmZfaW5f bGlibT1ubwpnbF9jdl9mdW5jX2lzbmFuZl9ub19saWJtPW5vCmdsX2N2X2Z1bmNfaXNuYW5sX2lu X2xpYm09bm8KZ2xfY3ZfZnVuY19pc25hbmxfbm9fbGlibT1ubwpnbF9jdl9mdW5jX2l0b2xkX3dv cmtzPW5vCmdsX2N2X2Z1bmNfbGRleHBfaW5fbGlibT1ubwpnbF9jdl9mdW5jX2xkZXhwX25vX2xp Ym09bm8KZ2xfY3ZfZnVuY19sb2dfd29ya3M9bm8KZ2xfY3ZfZnVuY19sc3RhdF9kZXJlZmVyZW5j ZXNfc2xhc2hlZF9zeW1saW5rPW5vCmdsX2N2X2Z1bmNfbWFsbG9jXzBfbm9ubnVsbD0wCmdsX2N2 X2Z1bmNfbWFsbG9jX3Bvc2l4PW5vCmdsX2N2X2Z1bmNfbWVtY2hyX3dvcmtzPW5vCmdsX2N2X2Z1 bmNfbWtkaXJfdHJhaWxpbmdfZG90X3dvcmtzPW5vCmdsX2N2X2Z1bmNfbWtkaXJfdHJhaWxpbmdf c2xhc2hfd29ya3M9bm8KZ2xfY3ZfZnVuY19vcGVuX3NsYXNoPW5vCmdsX2N2X2Z1bmNfcG9sbD1u bwpnbF9jdl9mdW5jX3Bvd19pbl9saWJtPW5vCmdsX2N2X2Z1bmNfcG93X25vX2xpYm09bm8KZ2xf Y3ZfZnVuY19yZV9jb21waWxlX3BhdHRlcm5fd29ya2luZz1ubwpnbF9jdl9mdW5jX3JlYWxwYXRo X3dvcmtzPW5vCmdsX2N2X2Z1bmNfcmVuYW1lX2Rlc3Rfd29ya3M9bm8KZ2xfY3ZfZnVuY19yZW5h bWVfbGlua193b3Jrcz15ZXMKZ2xfY3ZfZnVuY19yZW5hbWVfc2xhc2hfZHN0X3dvcmtzPW5vCmds X2N2X2Z1bmNfcmVuYW1lX3NsYXNoX3NyY193b3Jrcz1ubwpnbF9jdl9mdW5jX3JtZGlyX3dvcmtz PW5vCmdsX2N2X2Z1bmNfc2VsZWN0X2RldGVjdHNfZWJhZGY9bm8KZ2xfY3ZfZnVuY19zZWxlY3Rf c3VwcG9ydHMwPW5vCmdsX2N2X2Z1bmNfc25wcmludGZfcmV0dmFsX2M5OT1ubwpnbF9jdl9mdW5j X3N2aWRfcHV0ZW52PW5vCmdsX2N2X2hhdmVfaW5jbHVkZV9uZXh0PW5vCmdsX2N2X2hhdmVfcmF3 X2RlY2xfYWNjZXB0ND1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2FjY2VwdD1ubwpnbF9jdl9oYXZl X3Jhd19kZWNsX2Fjb3NmPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfYWNvc2w9bm8KZ2xfY3ZfaGF2 ZV9yYXdfZGVjbF9hbHBoYXNvcnQ9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9hc2luZj1ubwpnbF9j dl9oYXZlX3Jhd19kZWNsX2FzaW5sPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfYXRhbmY9bm8KZ2xf Y3ZfaGF2ZV9yYXdfZGVjbF9hdGFubD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2JpbmQ9bm8KZ2xf Y3ZfaGF2ZV9yYXdfZGVjbF9jYnJ0PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfY2JydGY9bm8KZ2xf Y3ZfaGF2ZV9yYXdfZGVjbF9jYnJ0bD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2NlaWxmPW5vCmds X2N2X2hhdmVfcmF3X2RlY2xfY2VpbGw9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9jbG9zZWRpcj1u bwpnbF9jdl9oYXZlX3Jhd19kZWNsX2Nvbm5lY3Q9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9jb3B5 c2lnbj1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2NvcHlzaWduZj1ubwpnbF9jdl9oYXZlX3Jhd19k ZWNsX2NvcHlzaWdubD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2Nvc2Y9bm8KZ2xfY3ZfaGF2ZV9y YXdfZGVjbF9jb3NoZj1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2Nvc2w9bm8KZ2xfY3ZfaGF2ZV9y YXdfZGVjbF9kaXJmZD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2R1cGxvY2FsZT1ubwpnbF9jdl9o YXZlX3Jhd19kZWNsX2V4cDI9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9leHAyZj1ubwpnbF9jdl9o YXZlX3Jhd19kZWNsX2V4cDJsPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZXhwZj1ubwpnbF9jdl9o YXZlX3Jhd19kZWNsX2V4cGw9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9leHBtMT1ubwpnbF9jdl9o YXZlX3Jhd19kZWNsX2V4cG0xZj1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2V4cG0xbD1ubwpnbF9j dl9oYXZlX3Jhd19kZWNsX2ZhYnNmPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZmFic2w9bm8KZ2xf Y3ZfaGF2ZV9yYXdfZGVjbF9mY2htb2RhdD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2ZjbnRsPW5v CmdsX2N2X2hhdmVfcmF3X2RlY2xfZmRvcGVuZGlyPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZmZz bD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2Zmc2xsPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZmxv b3JmPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZmxvb3JsPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xf Zm1hPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZm1hZj1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2Zt YWw9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9mbW9kPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZm1v ZGY9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9mbW9kbD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2Zy ZWVhZGRyaW5mbz1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2ZyZXhwZj1ubwpnbF9jdl9oYXZlX3Jh d19kZWNsX2ZyZXhwbD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2ZzdGF0PW5vCmdsX2N2X2hhdmVf cmF3X2RlY2xfZnN0YXRhdD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2Z1dGltZW5zPW5vCmdsX2N2 X2hhdmVfcmF3X2RlY2xfZ2FpX3N0cmVycm9yPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZ2V0YWRk cmluZm89bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9nZXRuYW1laW5mbz1ubwpnbF9jdl9oYXZlX3Jh d19kZWNsX2dldHBlZXJuYW1lPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZ2V0c29ja25hbWU9bm8K Z2xfY3ZfaGF2ZV9yYXdfZGVjbF9nZXRzb2Nrb3B0PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfZ2V0 dGltZW9mZGF5PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfaHlwb3RmPW5vCmdsX2N2X2hhdmVfcmF3 X2RlY2xfaHlwb3RsPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfaWxvZ2I9bm8KZ2xfY3ZfaGF2ZV9y YXdfZGVjbF9pbG9nYmY9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9pbG9nYmw9bm8KZ2xfY3ZfaGF2 ZV9yYXdfZGVjbF9pbmV0X250b3A9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9pbmV0X3B0b249bm8K Z2xfY3ZfaGF2ZV9yYXdfZGVjbF9sY2htb2Q9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9sZGV4cGY9 bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9sZGV4cGw9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9saXN0 ZW49bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9sb2cxMD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2xv ZzEwZj1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX2xvZzEwbD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNs X2xvZzFwPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfbG9nMXBmPW5vCmdsX2N2X2hhdmVfcmF3X2Rl Y2xfbG9nMXBsPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfbG9nMj1ubwpnbF9jdl9oYXZlX3Jhd19k ZWNsX2xvZzJmPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfbG9nMmw9bm8KZ2xfY3ZfaGF2ZV9yYXdf ZGVjbF9sb2c9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9sb2diPW5vCmdsX2N2X2hhdmVfcmF3X2Rl Y2xfbG9nYmY9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9sb2dibD1ubwpnbF9jdl9oYXZlX3Jhd19k ZWNsX2xvZ2Y9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9sb2dsPW5vCmdsX2N2X2hhdmVfcmF3X2Rl Y2xfbHN0YXQ9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9tZW1tZW09bm8KZ2xfY3ZfaGF2ZV9yYXdf ZGVjbF9tZW1wY3B5PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfbWVtcmNocj1ubwpnbF9jdl9oYXZl X3Jhd19kZWNsX21rZGlyYXQ9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9ta2ZpZm89bm8KZ2xfY3Zf aGF2ZV9yYXdfZGVjbF9ta2ZpZm9hdD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX21rbm9kPW5vCmds X2N2X2hhdmVfcmF3X2RlY2xfbWtub2RhdD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX21vZGY9bm8K Z2xfY3ZfaGF2ZV9yYXdfZGVjbF9tb2RmZj1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX21vZGZsPW5v CmdsX2N2X2hhdmVfcmF3X2RlY2xfbmxfbGFuZ2luZm89bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9v cGVuYXQ9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9vcGVuZGlyPW5vCmdsX2N2X2hhdmVfcmF3X2Rl Y2xfcG9sbD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX3Bvd2Y9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVj bF9wc2VsZWN0PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfcHRocmVhZF9zaWdtYXNrPW5vCmdsX2N2 X2hhdmVfcmF3X2RlY2xfcmF3bWVtY2hyPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfcmVhZGRpcj1u bwpnbF9jdl9oYXZlX3Jhd19kZWNsX3JlY3Y9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9yZWN2ZnJv bT1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX3JlbWFpbmRlcj1ubwpnbF9jdl9oYXZlX3Jhd19kZWNs X3JlbWFpbmRlcmY9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9yZW1haW5kZXJsPW5vCmdsX2N2X2hh dmVfcmF3X2RlY2xfcmV3aW5kZGlyPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfcmludD1ubwpnbF9j dl9oYXZlX3Jhd19kZWNsX3JpbnRmPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfcmludGw9bm8KZ2xf Y3ZfaGF2ZV9yYXdfZGVjbF9yb3VuZD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX3JvdW5kZj1ubwpn bF9jdl9oYXZlX3Jhd19kZWNsX3JvdW5kbD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX3NjYW5kaXI9 bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9zZWxlY3Q9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9zZW5k PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2VuZHRvPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2V0 bG9jYWxlPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2V0c29ja29wdD1ubwpnbF9jdl9oYXZlX3Jh d19kZWNsX3NodXRkb3duPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2lnYWN0aW9uPW5vCmdsX2N2 X2hhdmVfcmF3X2RlY2xfc2lnYWRkc2V0PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2lnZGVsc2V0 PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2lnZW1wdHlzZXQ9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVj bF9zaWdmaWxsc2V0PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2lnaXNtZW1iZXI9bm8KZ2xfY3Zf aGF2ZV9yYXdfZGVjbF9zaWdwZW5kaW5nPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2lncHJvY21h c2s9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9zaW5mPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc2lu aGY9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9zaW5sPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc29j a2V0PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc3FydGY9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9z cXJ0bD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX3N0YXQ9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9z dHBjcHk9bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9zdHBuY3B5PW5vCmdsX2N2X2hhdmVfcmF3X2Rl Y2xfc3RyY2FzZXN0cj1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX3N0cmNocm51bD1ubwpnbF9jdl9o YXZlX3Jhd19kZWNsX3N0cmR1cD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX3N0cmVycm9yX3I9bm8K Z2xfY3ZfaGF2ZV9yYXdfZGVjbF9zdHJuY2F0PW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc3RybmR1 cD1ubwpnbF9jdl9oYXZlX3Jhd19kZWNsX3N0cm5sZW49bm8KZ2xfY3ZfaGF2ZV9yYXdfZGVjbF9z dHJwYnJrPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc3Ryc2VwPW5vCmdsX2N2X2hhdmVfcmF3X2Rl Y2xfc3Ryc2lnbmFsPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfc3RydG9rX3I9bm8KZ2xfY3ZfaGF2 ZV9yYXdfZGVjbF9zdHJ2ZXJzY21wPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfdGFuZj1ubwpnbF9j dl9oYXZlX3Jhd19kZWNsX3RhbmhmPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfdGFubD1ubwpnbF9j dl9oYXZlX3Jhd19kZWNsX3RydW5jPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfdHJ1bmNmPW5vCmds X2N2X2hhdmVfcmF3X2RlY2xfdHJ1bmNsPW5vCmdsX2N2X2hhdmVfcmF3X2RlY2xfdXRpbWVuc2F0 PW5vCmdsX2N2X2hlYWRlcl9lcnJub19oX2NvbXBsZXRlPXllcwpnbF9jdl9oZWFkZXJfaW50dHlw ZXNfaD1ubwpnbF9jdl9oZWFkZXJfbGltaXRzX3dpZHRoPW5vCmdsX2N2X2hlYWRlcl9sb2NhbGVf aF9uZWVkc194bG9jYWxlX2g9bm8KZ2xfY3ZfaGVhZGVyX2xvY2FsZV9oX3Bvc2l4MjAwMT1ubwpn bF9jdl9oZWFkZXJfbWF0aF9odWdlX3ZhbF93b3Jrcz1ubwpnbF9jdl9oZWFkZXJfbWF0aF9uYW5f d29ya3M9bm8KZ2xfY3ZfaGVhZGVyX25ldGluZXRfaW5faF9zZWxmY29udGFpbmVkPW5vCmdsX2N2 X2hlYWRlcl9zdGRpbnRfaD1ubwpnbF9jdl9oZWFkZXJfc3lzX3NlbGVjdF9oX3NlbGZjb250YWlu ZWQ9bm8KZ2xfY3ZfaGVhZGVyX3N5c19zb2NrZXRfaF9zZWxmY29udGFpbmVkPW5vCmdsX2N2X2hl YWRlcl93Y2hhcl9oX2NvcnJlY3RfaW5saW5lPXllcwpnbF9jdl9oZWFkZXJfd29ya2luZ19mY250 bF9oPW5vCmdsX2N2X2xpYl9zb2NrZXQ9J25vbmUgbmVlZGVkJwpnbF9jdl9sb25nX2RvdWJsZV9l cXVhbHNfZG91YmxlPW5vCmdsX2N2X25leHRfYXJwYV9pbmV0X2g9JzxhcnBhL2luZXQuaD4nCmds X2N2X25leHRfZGlyZW50X2g9JzxkaXJlbnQuaD4nCmdsX2N2X25leHRfZmNudGxfaD0nIi8vL3Vz ci9pbmNsdWRlL2ZjbnRsLmgiJwpnbF9jdl9uZXh0X2Zsb2F0X2g9JyIvLy91c3IvbGliL2djYy94 ODZfNjQtcmVkaGF0LWxpbnV4LzQuNC43L2luY2x1ZGUvZmxvYXQuaCInCmdsX2N2X25leHRfaWNv bnZfaD0nPGljb252Lmg+JwpnbF9jdl9uZXh0X2xhbmdpbmZvX2g9JzxsYW5naW5mby5oPicKZ2xf Y3ZfbmV4dF9saW1pdHNfaD0nPGxpbWl0cy5oPicKZ2xfY3ZfbmV4dF9sb2NhbGVfaD0nIi8vL3Vz ci9pbmNsdWRlL2xvY2FsZS5oIicKZ2xfY3ZfbmV4dF9tYXRoX2g9JzxtYXRoLmg+JwpnbF9jdl9u ZXh0X25ldGRiX2g9JzxuZXRkYi5oPicKZ2xfY3ZfbmV4dF9uZXRpbmV0X2luX2g9JzxuZXRpbmV0 L2luLmg+JwpnbF9jdl9uZXh0X3BvbGxfaD0nPHBvbGwuaD4nCmdsX2N2X25leHRfc2lnbmFsX2g9 JyIvLy91c3IvaW5jbHVkZS9zaWduYWwuaCInCmdsX2N2X25leHRfc3RkZGVmX2g9JyIvLy91c3Iv bGliL2djYy94ODZfNjQtcmVkaGF0LWxpbnV4LzQuNC43L2luY2x1ZGUvc3RkZGVmLmgiJwpnbF9j dl9uZXh0X3N0ZGludF9oPSc8c3RkaW50Lmg+JwpnbF9jdl9uZXh0X3N0cmluZ19oPSciLy8vdXNy L2luY2x1ZGUvc3RyaW5nLmgiJwpnbF9jdl9uZXh0X3N5c19zZWxlY3RfaD0nPHN5cy9zZWxlY3Qu aD4nCmdsX2N2X25leHRfc3lzX3NvY2tldF9oPSc8c3lzL3NvY2tldC5oPicKZ2xfY3ZfbmV4dF9z eXNfc3RhdF9oPSc8c3lzL3N0YXQuaD4nCmdsX2N2X25leHRfc3lzX3RpbWVfaD0nPHN5cy90aW1l Lmg+JwpnbF9jdl9uZXh0X3N5c190eXBlc19oPSciLy8vdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgi JwpnbF9jdl9uZXh0X3RpbWVfaD0nIi8vL3Vzci9pbmNsdWRlL3RpbWUuaCInCmdsX2N2X3ByYWdt YV9jb2x1bW5zPW5vCmdsX2N2X3Byb21vdGVkX21vZGVfdD1tb2RlX3QKZ2xfY3Zfc29ja2V0X2lw djQ9bm8KZ2xfY3Zfc29ja2V0X2lwdjY9bm8KZ2xfY3Zfc29ja2xlbl90X2VxdWl2PQpnbF9jdl9z eXNfZGlyX2ZkX21lbWJlcl9uYW1lPW5vX3N1Y2hfbWVtYmVyCmdsX2N2X3N5c19sZF92ZXJzaW9u X3NjcmlwdD1ubwpnbF9jdl9zeXNfc3RydWN0X2xjb252X29rPW5vCmdsX2N2X3N5c19zdHJ1Y3Rf dGltZXNwZWNfaW5fcHRocmVhZF9oPW5vCmdsX2N2X3N5c19zdHJ1Y3RfdGltZXNwZWNfaW5fc3lz X3RpbWVfaD1ubwpnbF9jdl9zeXNfc3RydWN0X3RpbWVzcGVjX2luX3RpbWVfaD1ubwpnbF9jdl9z eXNfc3RydWN0X3RpbWVzcGVjX2luX3VuaXN0ZF9oPW5vCmdsX2N2X3N5c19zdHJ1Y3RfdGltZXZh bD1ubwpnbF9jdl90aW1lX3RfaXNfc2lnbmVkPW5vCmdsX2N2X3R5cGVfcHRyZGlmZl90X3NpZ25l ZD15ZXMKZ2xfY3ZfdHlwZV9wdHJkaWZmX3Rfc3VmZml4PW5vCmdsX2N2X3R5cGVfc2lnX2F0b21p Y190X3NpZ25lZD1ubwpnbF9jdl90eXBlX3NpZ19hdG9taWNfdF9zdWZmaXg9bm8KZ2xfY3ZfdHlw ZV9zaWdzZXRfdD1ubwpnbF9jdl90eXBlX3NpemVfdF9zaWduZWQ9bm8KZ2xfY3ZfdHlwZV9zaXpl X3Rfc3VmZml4PW5vCmdsX2N2X3R5cGVfd2NoYXJfdF9zaWduZWQ9bm8KZ2xfY3ZfdHlwZV93Y2hh cl90X3N1ZmZpeD1ubwpnbF9jdl90eXBlX3dpbnRfdF9zaWduZWQ9bm8KZ2xfY3ZfdHlwZV93aW50 X3Rfc3VmZml4PW5vCmdsX2N2X3Zhcl9mdW5jPW5vCmdsX2N2X3czMl9nZXRhZGRyaW5mbz1ubwpn bF9jdl93MzJfZ2V0aG9zdGJ5bmFtZT1ubwpnbF9jdl93MzJfZ2V0c2VydmJ5bmFtZT1ubwpndF9j dl9jX2ludG1heF90PW5vCmd0X2N2X2Nfd2NoYXJfdD1ubwpndF9jdl9jX3dpbnRfdD1ubwpndF9j dl9sb2NhbGVfemhfQ049bm9uZQpndF9jdl9zc2l6ZV90PW5vCmd0X2N2X3Zhcl9lbnZpcm9uX2Rl Y2xhcmF0aW9uPXllcwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxl cy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKCkFDTE9DQUw9JyR7U0hFTEx9IC9yb290L2d1 aWxlLTIuMi40L2J1aWxkLWF1eC9taXNzaW5nIGFjbG9jYWwtMS4xNicKQUxMT0NBPScke0xJQk9C SkRJUn1hbGxvY2EubycKQUxMT0NBX0g9J2FsbG9jYS5oJwpBTURFUEJBQ0tTTEFTSD0nXCcKQU1E RVBfRkFMU0U9JyMnCkFNREVQX1RSVUU9JycKQU1UQVI9JyQke1RBUi10YXJ9JwpBTV9CQUNLU0xB U0g9J1wnCkFNX0RFRkFVTFRfVj0nJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSknCkFNX0RFRkFVTFRf VkVSQk9TSVRZPScwJwpBTV9WPSckKFYpJwpBUFBMRV9VTklWRVJTQUxfQlVJTEQ9JzAnCkFSPSdh cicKQVJGTEFHUz0nY3InCkFTPSdhcycKQVVUT0NPTkY9JyR7U0hFTEx9IC9yb290L2d1aWxlLTIu Mi40L2J1aWxkLWF1eC9taXNzaW5nIGF1dG9jb25mJwpBVVRPSEVBREVSPScke1NIRUxMfSAvcm9v dC9ndWlsZS0yLjIuNC9idWlsZC1hdXgvbWlzc2luZyBhdXRvaGVhZGVyJwpBVVRPTUFLRT0nJHtT SEVMTH0gL3Jvb3QvZ3VpbGUtMi4yLjQvYnVpbGQtYXV4L21pc3NpbmcgYXV0b21ha2UtMS4xNicK QVdLPSdnYXdrJwpCRFdfR0NfQ0ZMQUdTPScnCkJEV19HQ19MSUJTPScnCkJJVFNJWkVPRl9QVFJE SUZGX1Q9JzAnCkJJVFNJWkVPRl9TSUdfQVRPTUlDX1Q9JzAnCkJJVFNJWkVPRl9TSVpFX1Q9JzAn CkJJVFNJWkVPRl9XQ0hBUl9UPScwJwpCSVRTSVpFT0ZfV0lOVF9UPScwJwpCVUlMRF9QVEhSRUFE X1NVUFBPUlRfRkFMU0U9JycKQlVJTERfUFRIUkVBRF9TVVBQT1JUX1RSVUU9JycKQllURVNXQVBf SD0nYnl0ZXN3YXAuaCcKQ0M9J2djYyAtc3RkPWdudTExJwpDQ0RFUE1PREU9J2RlcG1vZGU9Z2Nj MycKQ0NMRF9GT1JfQlVJTEQ9JycKQ0NfRk9SX0JVSUxEPScnCkNFSUxfTElCTT0nJwpDRkxBR1M9 Jy1nIC1PMicKQ0ZMQUdfVklTSUJJTElUWT0nJwpDT05GSUdfSU5DTFVERT0nJwpDT1BZU0lHTl9M SUJNPScnCkNQUD0nL2xpYi9jcHAnCkNQUEZMQUdTPScnCkNZR1BBVEhfVz0nZWNobycKREVGUz0n JwpERVBESVI9Jy5kZXBzJwpETExUT09MPSdkbGx0b29sJwpEU1lNVVRJTD0nJwpEVU1QQklOPScn CkVDSE9fQz0nJwpFQ0hPX049Jy1uJwpFQ0hPX1Q9JycKRUdSRVA9Jy9iaW4vZ3JlcCAtRScKRU1B Q1M9JycKRU1BQ1NMT0FEUEFUSD0nJwpFTVVMVElIT1BfSElEREVOPScnCkVNVUxUSUhPUF9WQUxV RT0nJwpFTk9MSU5LX0hJRERFTj0nJwpFTk9MSU5LX1ZBTFVFPScnCkVPVkVSRkxPV19ISURERU49 JycKRU9WRVJGTE9XX1ZBTFVFPScnCkVSUk5PX0g9JycKRVhFRVhUPScnCkVYVFJBX0RFRlM9JycK RVhUUkFfRE9UX0RPQ19GSUxFUz0nJwpFWFRSQV9ET1RfWF9GSUxFUz0nJwpGR1JFUD0nJwpGTE9B VF9IPSdmbG9hdC5oJwpGTE9PUl9MSUJNPScnCkZSRVhQX0xJQk09JycKR0NDX0NGTEFHUz0nJwpH RVRBRERSSU5GT19MSUI9JycKR0VUVEVYVF9NQUNST19WRVJTSU9OPScnCkdMSUJDMjE9J3llcycK R0xfQ09ORF9MSUJUT09MX0ZBTFNFPScjJwpHTF9DT05EX0xJQlRPT0xfVFJVRT0nJwpHTF9HRU5F UkFURV9BTExPQ0FfSF9GQUxTRT0nIycKR0xfR0VORVJBVEVfQUxMT0NBX0hfVFJVRT0nJwpHTF9H RU5FUkFURV9CWVRFU1dBUF9IX0ZBTFNFPScjJwpHTF9HRU5FUkFURV9CWVRFU1dBUF9IX1RSVUU9 JycKR0xfR0VORVJBVEVfRVJSTk9fSF9GQUxTRT0nJwpHTF9HRU5FUkFURV9FUlJOT19IX1RSVUU9 JyMnCkdMX0dFTkVSQVRFX0ZMT0FUX0hfRkFMU0U9JyMnCkdMX0dFTkVSQVRFX0ZMT0FUX0hfVFJV RT0nJwpHTF9HRU5FUkFURV9JQ09OVl9IX0ZBTFNFPScnCkdMX0dFTkVSQVRFX0lDT05WX0hfVFJV RT0nIycKR0xfR0VORVJBVEVfTElNSVRTX0hfRkFMU0U9JyMnCkdMX0dFTkVSQVRFX0xJTUlUU19I X1RSVUU9JycKR0xfR0VORVJBVEVfTkVUSU5FVF9JTl9IX0ZBTFNFPScjJwpHTF9HRU5FUkFURV9O RVRJTkVUX0lOX0hfVFJVRT0nJwpHTF9HRU5FUkFURV9TVERBTElHTl9IX0ZBTFNFPScnCkdMX0dF TkVSQVRFX1NUREFMSUdOX0hfVFJVRT0nJwpHTF9HRU5FUkFURV9TVERCT09MX0hfRkFMU0U9JycK R0xfR0VORVJBVEVfU1REQk9PTF9IX1RSVUU9JycKR0xfR0VORVJBVEVfU1REREVGX0hfRkFMU0U9 JyMnCkdMX0dFTkVSQVRFX1NURERFRl9IX1RSVUU9JycKR0xfR0VORVJBVEVfU1RESU5UX0hfRkFM U0U9JyMnCkdMX0dFTkVSQVRFX1NURElOVF9IX1RSVUU9JycKR01TR0ZNVD0nJwpHTVNHRk1UXzAx NT0nJwpHTlVMSUJfQUNDRVBUND0nMScKR05VTElCX0FDQ0VQVD0nMScKR05VTElCX0FDT1NGPScw JwpHTlVMSUJfQUNPU0w9JzAnCkdOVUxJQl9BTFBIQVNPUlQ9JzAnCkdOVUxJQl9BU0lORj0nMCcK R05VTElCX0FTSU5MPScwJwpHTlVMSUJfQVRBTjJGPScwJwpHTlVMSUJfQVRBTkY9JzAnCkdOVUxJ Ql9BVEFOTD0nMCcKR05VTElCX0FUT0xMPScwJwpHTlVMSUJfQklORD0nMScKR05VTElCX0JUT1dD PScwJwpHTlVMSUJfQ0FMTE9DX1BPU0lYPScwJwpHTlVMSUJfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFN RT0nMScKR05VTElCX0NCUlQ9JzAnCkdOVUxJQl9DQlJURj0nMCcKR05VTElCX0NCUlRMPScwJwpH TlVMSUJfQ0VJTD0nMScKR05VTElCX0NFSUxGPScwJwpHTlVMSUJfQ0VJTEw9JzAnCkdOVUxJQl9D SERJUj0nMCcKR05VTElCX0NIT1dOPScwJwpHTlVMSUJfQ0xPU0U9JzEnCkdOVUxJQl9DTE9TRURJ Uj0nMCcKR05VTElCX0NPTk5FQ1Q9JzEnCkdOVUxJQl9DT1BZU0lHTj0nMScKR05VTElCX0NPUFlT SUdORj0nMCcKR05VTElCX0NPUFlTSUdOTD0nMCcKR05VTElCX0NPU0Y9JzAnCkdOVUxJQl9DT1NI Rj0nMCcKR05VTElCX0NPU0w9JzAnCkdOVUxJQl9ESVJGRD0nMScKR05VTElCX0RQUklOVEY9JzAn CkdOVUxJQl9EVVAyPScwJwpHTlVMSUJfRFVQMz0nMCcKR05VTElCX0RVUD0nMCcKR05VTElCX0RV UExPQ0FMRT0nMScKR05VTElCX0VOVklST049JzEnCkdOVUxJQl9FVUlEQUNDRVNTPScwJwpHTlVM SUJfRVhQMj0nMCcKR05VTElCX0VYUDJGPScwJwpHTlVMSUJfRVhQMkw9JzAnCkdOVUxJQl9FWFBG PScwJwpHTlVMSUJfRVhQTD0nMCcKR05VTElCX0VYUE0xPScwJwpHTlVMSUJfRVhQTTFGPScwJwpH TlVMSUJfRVhQTTFMPScwJwpHTlVMSUJfRkFCU0Y9JzAnCkdOVUxJQl9GQUJTTD0nMCcKR05VTElC X0ZBQ0NFU1NBVD0nMCcKR05VTElCX0ZDSERJUj0nMCcKR05VTElCX0ZDSE1PREFUPScwJwpHTlVM SUJfRkNIT1dOQVQ9JzAnCkdOVUxJQl9GQ0xPU0U9JzAnCkdOVUxJQl9GQ05UTD0nMCcKR05VTElC X0ZEQVRBU1lOQz0nMCcKR05VTElCX0ZET1BFTj0nMCcKR05VTElCX0ZET1BFTkRJUj0nMCcKR05V TElCX0ZGTFVTSD0nMCcKR05VTElCX0ZGU0w9JzAnCkdOVUxJQl9GRlNMTD0nMCcKR05VTElCX0ZH RVRDPScwJwpHTlVMSUJfRkdFVFM9JzAnCkdOVUxJQl9GTE9DSz0nMScKR05VTElCX0ZMT09SPScx JwpHTlVMSUJfRkxPT1JGPScwJwpHTlVMSUJfRkxPT1JMPScwJwpHTlVMSUJfRk1BPScwJwpHTlVM SUJfRk1BRj0nMCcKR05VTElCX0ZNQUw9JzAnCkdOVUxJQl9GTU9EPScwJwpHTlVMSUJfRk1PREY9 JzAnCkdOVUxJQl9GTU9ETD0nMCcKR05VTElCX0ZPUEVOPScwJwpHTlVMSUJfRlBSSU5URj0nMCcK R05VTElCX0ZQUklOVEZfUE9TSVg9JzAnCkdOVUxJQl9GUFVSR0U9JzAnCkdOVUxJQl9GUFVUQz0n MCcKR05VTElCX0ZQVVRTPScwJwpHTlVMSUJfRlJFQUQ9JzAnCkdOVUxJQl9GUkVPUEVOPScwJwpH TlVMSUJfRlJFWFA9JzEnCkdOVUxJQl9GUkVYUEY9JzAnCkdOVUxJQl9GUkVYUEw9JzAnCkdOVUxJ Ql9GU0NBTkY9JzAnCkdOVUxJQl9GU0VFSz0nMCcKR05VTElCX0ZTRUVLTz0nMCcKR05VTElCX0ZT VEFUPScxJwpHTlVMSUJfRlNUQVRBVD0nMCcKR05VTElCX0ZTWU5DPScxJwpHTlVMSUJfRlRFTEw9 JzAnCkdOVUxJQl9GVEVMTE89JzAnCkdOVUxJQl9GVFJVTkNBVEU9JzAnCkdOVUxJQl9GVVRJTUVO Uz0nMCcKR05VTElCX0ZXUklURT0nMCcKR05VTElCX0dFVEFERFJJTkZPPScxJwpHTlVMSUJfR0VU Qz0nMCcKR05VTElCX0dFVENIQVI9JzAnCkdOVUxJQl9HRVRDV0Q9JzAnCkdOVUxJQl9HRVRERUxJ TT0nMCcKR05VTElCX0dFVERPTUFJTk5BTUU9JzAnCkdOVUxJQl9HRVREVEFCTEVTSVpFPScwJwpH TlVMSUJfR0VUR1JPVVBTPScwJwpHTlVMSUJfR0VUSE9TVE5BTUU9JzAnCkdOVUxJQl9HRVRMSU5F PScwJwpHTlVMSUJfR0VUTE9BREFWRz0nMCcKR05VTElCX0dFVExPR0lOPScxJwpHTlVMSUJfR0VU TE9HSU5fUj0nMCcKR05VTElCX0dFVFBBR0VTSVpFPScwJwpHTlVMSUJfR0VUUEVFUk5BTUU9JzEn CkdOVUxJQl9HRVRTT0NLTkFNRT0nMScKR05VTElCX0dFVFNPQ0tPUFQ9JzEnCkdOVUxJQl9HRVRT VUJPUFQ9JzAnCkdOVUxJQl9HRVRUSU1FT0ZEQVk9JzEnCkdOVUxJQl9HRVRVU0VSU0hFTEw9JzAn CkdOVUxJQl9HUkFOVFBUPScwJwpHTlVMSUJfR1JPVVBfTUVNQkVSPScwJwpHTlVMSUJfSFlQT1Q9 JzAnCkdOVUxJQl9IWVBPVEY9JzAnCkdOVUxJQl9IWVBPVEw9JzAnCkdOVUxJQl9JQ09OVj0nMScK R05VTElCX0lMT0dCPScwJwpHTlVMSUJfSUxPR0JGPScwJwpHTlVMSUJfSUxPR0JMPScwJwpHTlVM SUJfSU5FVF9OVE9QPScxJwpHTlVMSUJfSU5FVF9QVE9OPScxJwpHTlVMSUJfSVNBVFRZPScwJwpH TlVMSUJfSVNGSU5JVEU9JzEnCkdOVUxJQl9JU0lORj0nMScKR05VTElCX0lTTkFOPScxJwpHTlVM SUJfSVNOQU5EPScxJwpHTlVMSUJfSVNOQU5GPScxJwpHTlVMSUJfSVNOQU5MPScxJwpHTlVMSUJf SVNXQkxBTks9JzAnCkdOVUxJQl9JU1dDVFlQRT0nMCcKR05VTElCX0xDSE1PRD0nMCcKR05VTElC X0xDSE9XTj0nMCcKR05VTElCX0xERVhQRj0nMCcKR05VTElCX0xERVhQTD0nMCcKR05VTElCX0xJ Tks9JzEnCkdOVUxJQl9MSU5LQVQ9JzAnCkdOVUxJQl9MSVNURU49JzEnCkdOVUxJQl9MT0NBTEVD T05WPScwJwpHTlVMSUJfTE9HMTA9JzAnCkdOVUxJQl9MT0cxMEY9JzAnCkdOVUxJQl9MT0cxMEw9 JzAnCkdOVUxJQl9MT0cxUD0nMScKR05VTElCX0xPRzFQRj0nMCcKR05VTElCX0xPRzFQTD0nMCcK R05VTElCX0xPRzI9JzAnCkdOVUxJQl9MT0cyRj0nMCcKR05VTElCX0xPRzJMPScwJwpHTlVMSUJf TE9HPScwJwpHTlVMSUJfTE9HQj0nMCcKR05VTElCX0xPR0JGPScwJwpHTlVMSUJfTE9HQkw9JzAn CkdOVUxJQl9MT0dGPScwJwpHTlVMSUJfTE9HTD0nMCcKR05VTElCX0xTRUVLPScwJwpHTlVMSUJf TFNUQVQ9JzEnCkdOVUxJQl9NQUxMT0NfUE9TSVg9JzEnCkdOVUxJQl9NQlJMRU49JzAnCkdOVUxJ Ql9NQlJUT1dDPScwJwpHTlVMSUJfTUJTQ0FTRUNNUD0nMCcKR05VTElCX01CU0NBU0VTVFI9JzAn CkdOVUxJQl9NQlNDSFI9JzAnCkdOVUxJQl9NQlNDU1BOPScwJwpHTlVMSUJfTUJTSU5JVD0nMCcK R05VTElCX01CU0xFTj0nMCcKR05VTElCX01CU05DQVNFQ01QPScwJwpHTlVMSUJfTUJTTkxFTj0n MCcKR05VTElCX01CU05SVE9XQ1M9JzAnCkdOVUxJQl9NQlNQQlJLPScwJwpHTlVMSUJfTUJTUENB U0VDTVA9JzAnCkdOVUxJQl9NQlNSQ0hSPScwJwpHTlVMSUJfTUJTUlRPV0NTPScwJwpHTlVMSUJf TUJTU0VQPScwJwpHTlVMSUJfTUJTU1BOPScwJwpHTlVMSUJfTUJTU1RSPScwJwpHTlVMSUJfTUJT VE9LX1I9JzAnCkdOVUxJQl9NQlRPV0M9JzAnCkdOVUxJQl9NRU1DSFI9JzAnCkdOVUxJQl9NRU1N RU09JzAnCkdOVUxJQl9NRU1QQ1BZPScwJwpHTlVMSUJfTUVNUkNIUj0nMCcKR05VTElCX01LRElS QVQ9JzAnCkdOVUxJQl9NS0RURU1QPScwJwpHTlVMSUJfTUtGSUZPPScwJwpHTlVMSUJfTUtGSUZP QVQ9JzAnCkdOVUxJQl9NS05PRD0nMCcKR05VTElCX01LTk9EQVQ9JzAnCkdOVUxJQl9NS09TVEVN UD0nMScKR05VTElCX01LT1NURU1QUz0nMCcKR05VTElCX01LU1RFTVA9JzAnCkdOVUxJQl9NS1NU RU1QUz0nMCcKR05VTElCX01LVElNRT0nMCcKR05VTElCX01PREY9JzAnCkdOVUxJQl9NT0RGRj0n MCcKR05VTElCX01PREZMPScwJwpHTlVMSUJfTkFOT1NMRUVQPScwJwpHTlVMSUJfTkxfTEFOR0lO Rk89JzEnCkdOVUxJQl9OT05CTE9DS0lORz0nMCcKR05VTElCX09CU1RBQ0tfUFJJTlRGPScwJwpH TlVMSUJfT0JTVEFDS19QUklOVEZfUE9TSVg9JzAnCkdOVUxJQl9PUEVOPScxJwpHTlVMSUJfT1BF TkFUPScwJwpHTlVMSUJfT1BFTkRJUj0nMCcKR05VTElCX09WRVJSSURFU19XSU5UX1Q9JzAnCkdO VUxJQl9QQ0xPU0U9JzAnCkdOVUxJQl9QRVJST1I9JzAnCkdOVUxJQl9QSVBFMj0nMScKR05VTElC X1BJUEU9JzEnCkdOVUxJQl9QT0xMPScxJwpHTlVMSUJfUE9QRU49JzAnCkdOVUxJQl9QT1NJWF9P UEVOUFQ9JzAnCkdOVUxJQl9QT1dGPScwJwpHTlVMSUJfUFJFQUQ9JzAnCkdOVUxJQl9QUklOVEY9 JzAnCkdOVUxJQl9QUklOVEZfUE9TSVg9JzAnCkdOVUxJQl9QU0VMRUNUPScwJwpHTlVMSUJfUFRI UkVBRF9TSUdNQVNLPScwJwpHTlVMSUJfUFRTTkFNRT0nMCcKR05VTElCX1BUU05BTUVfUj0nMCcK R05VTElCX1BVVEM9JzAnCkdOVUxJQl9QVVRDSEFSPScwJwpHTlVMSUJfUFVURU5WPScxJwpHTlVM SUJfUFVUUz0nMCcKR05VTElCX1BXUklURT0nMCcKR05VTElCX1FTT1JUX1I9JzAnCkdOVUxJQl9S QUlTRT0nMCcKR05VTElCX1JBTkRPTT0nMCcKR05VTElCX1JBTkRPTV9SPScwJwpHTlVMSUJfUkFX TUVNQ0hSPScwJwpHTlVMSUJfUkVBRD0nMScKR05VTElCX1JFQURESVI9JzAnCkdOVUxJQl9SRUFE TElOSz0nMScKR05VTElCX1JFQURMSU5LQVQ9JzAnCkdOVUxJQl9SRUFMTE9DX1BPU0lYPScwJwpH TlVMSUJfUkVBTFBBVEg9JzEnCkdOVUxJQl9SRUNWPScxJwpHTlVMSUJfUkVDVkZST009JzEnCkdO VUxJQl9SRU1BSU5ERVI9JzAnCkdOVUxJQl9SRU1BSU5ERVJGPScwJwpHTlVMSUJfUkVNQUlOREVS TD0nMCcKR05VTElCX1JFTU9WRT0nMCcKR05VTElCX1JFTkFNRT0nMScKR05VTElCX1JFTkFNRUFU PScwJwpHTlVMSUJfUkVXSU5ERElSPScwJwpHTlVMSUJfUklOVD0nMCcKR05VTElCX1JJTlRGPScw JwpHTlVMSUJfUklOVEw9JzAnCkdOVUxJQl9STURJUj0nMScKR05VTElCX1JPVU5EPScwJwpHTlVM SUJfUk9VTkRGPScwJwpHTlVMSUJfUk9VTkRMPScwJwpHTlVMSUJfUlBNQVRDSD0nMCcKR05VTElC X1NDQU5ESVI9JzAnCkdOVUxJQl9TQ0FORj0nMCcKR05VTElCX1NFQ1VSRV9HRVRFTlY9JzAnCkdO VUxJQl9TRUxFQ1Q9JzEnCkdOVUxJQl9TRU5EPScxJwpHTlVMSUJfU0VORFRPPScxJwpHTlVMSUJf U0VURU5WPScxJwpHTlVMSUJfU0VUSE9TVE5BTUU9JzAnCkdOVUxJQl9TRVRMT0NBTEU9JzAnCkdO VUxJQl9TRVRTT0NLT1BUPScxJwpHTlVMSUJfU0hVVERPV049JzEnCkdOVUxJQl9TSUdBQ1RJT049 JzAnCkdOVUxJQl9TSUdOQUxfSF9TSUdQSVBFPScwJwpHTlVMSUJfU0lHTkJJVD0nMCcKR05VTElC X1NJR1BST0NNQVNLPScwJwpHTlVMSUJfU0lORj0nMCcKR05VTElCX1NJTkhGPScwJwpHTlVMSUJf U0lOTD0nMCcKR05VTElCX1NMRUVQPScwJwpHTlVMSUJfU05QUklOVEY9JzAnCkdOVUxJQl9TT0NL RVQ9JzEnCkdOVUxJQl9TUFJJTlRGX1BPU0lYPScwJwpHTlVMSUJfU1FSVEY9JzAnCkdOVUxJQl9T UVJUTD0nMCcKR05VTElCX1NUQVQ9JzAnCkdOVUxJQl9TVERJT19IX05PTkJMT0NLSU5HPScwJwpH TlVMSUJfU1RESU9fSF9TSUdQSVBFPScwJwpHTlVMSUJfU1RQQ1BZPScwJwpHTlVMSUJfU1RQTkNQ WT0nMCcKR05VTElCX1NUUkNBU0VTVFI9JzAnCkdOVUxJQl9TVFJDSFJOVUw9JzAnCkdOVUxJQl9T VFJEVVA9JzAnCkdOVUxJQl9TVFJFUlJPUj0nMCcKR05VTElCX1NUUkVSUk9SX1I9JzAnCkdOVUxJ Ql9TVFJOQ0FUPScwJwpHTlVMSUJfU1RSTkRVUD0nMCcKR05VTElCX1NUUk5MRU49JzAnCkdOVUxJ Ql9TVFJQQlJLPScwJwpHTlVMSUJfU1RSUFRJTUU9JzAnCkdOVUxJQl9TVFJTRVA9JzAnCkdOVUxJ Ql9TVFJTSUdOQUw9JzAnCkdOVUxJQl9TVFJTVFI9JzAnCkdOVUxJQl9TVFJUT0Q9JzAnCkdOVUxJ Ql9TVFJUT0tfUj0nMCcKR05VTElCX1NUUlRPTEw9JzAnCkdOVUxJQl9TVFJUT1VMTD0nMCcKR05V TElCX1NUUlZFUlNDTVA9JzAnCkdOVUxJQl9TWU1MSU5LPScwJwpHTlVMSUJfU1lNTElOS0FUPScw JwpHTlVMSUJfU1lTVEVNX1BPU0lYPScwJwpHTlVMSUJfVEFORj0nMCcKR05VTElCX1RBTkhGPScw JwpHTlVMSUJfVEFOTD0nMCcKR05VTElCX1RJTUVHTT0nMCcKR05VTElCX1RJTUVTPScwJwpHTlVM SUJfVElNRV9SPScwJwpHTlVMSUJfVElNRV9SWj0nMCcKR05VTElCX1RNUEZJTEU9JzAnCkdOVUxJ Ql9UT1dDVFJBTlM9JzAnCkdOVUxJQl9UUlVOQz0nMCcKR05VTElCX1RSVU5DRj0nMCcKR05VTElC X1RSVU5DTD0nMCcKR05VTElCX1RUWU5BTUVfUj0nMCcKR05VTElCX1VOSVNURF9IX05PTkJMT0NL SU5HPScwJwpHTlVMSUJfVU5JU1REX0hfU0lHUElQRT0nMCcKR05VTElCX1VOTElOSz0nMCcKR05V TElCX1VOTElOS0FUPScwJwpHTlVMSUJfVU5MT0NLUFQ9JzAnCkdOVUxJQl9VTlNFVEVOVj0nMCcK R05VTElCX1VTTEVFUD0nMCcKR05VTElCX1VUSU1FTlNBVD0nMCcKR05VTElCX1ZBU1BSSU5URj0n MCcKR05VTElCX1ZEUFJJTlRGPScwJwpHTlVMSUJfVkZQUklOVEY9JzAnCkdOVUxJQl9WRlBSSU5U Rl9QT1NJWD0nMCcKR05VTElCX1ZGU0NBTkY9JzAnCkdOVUxJQl9WUFJJTlRGPScwJwpHTlVMSUJf VlBSSU5URl9QT1NJWD0nMCcKR05VTElCX1ZTQ0FORj0nMCcKR05VTElCX1ZTTlBSSU5URj0nMCcK R05VTElCX1ZTUFJJTlRGX1BPU0lYPScwJwpHTlVMSUJfV0NQQ1BZPScwJwpHTlVMSUJfV0NQTkNQ WT0nMCcKR05VTElCX1dDUlRPTUI9JzAnCkdOVUxJQl9XQ1NDQVNFQ01QPScwJwpHTlVMSUJfV0NT Q0FUPScwJwpHTlVMSUJfV0NTQ0hSPScwJwpHTlVMSUJfV0NTQ01QPScwJwpHTlVMSUJfV0NTQ09M TD0nMCcKR05VTElCX1dDU0NQWT0nMCcKR05VTElCX1dDU0NTUE49JzAnCkdOVUxJQl9XQ1NEVVA9 JzAnCkdOVUxJQl9XQ1NMRU49JzAnCkdOVUxJQl9XQ1NOQ0FTRUNNUD0nMCcKR05VTElCX1dDU05D QVQ9JzAnCkdOVUxJQl9XQ1NOQ01QPScwJwpHTlVMSUJfV0NTTkNQWT0nMCcKR05VTElCX1dDU05M RU49JzAnCkdOVUxJQl9XQ1NOUlRPTUJTPScwJwpHTlVMSUJfV0NTUEJSSz0nMCcKR05VTElCX1dD U1JDSFI9JzAnCkdOVUxJQl9XQ1NSVE9NQlM9JzAnCkdOVUxJQl9XQ1NTUE49JzAnCkdOVUxJQl9X Q1NTVFI9JzAnCkdOVUxJQl9XQ1NUT0s9JzAnCkdOVUxJQl9XQ1NXSURUSD0nMCcKR05VTElCX1dD U1hGUk09JzAnCkdOVUxJQl9XQ1RPQj0nMCcKR05VTElCX1dDVE9NQj0nMCcKR05VTElCX1dDVFJB TlM9JzAnCkdOVUxJQl9XQ1RZUEU9JzAnCkdOVUxJQl9XQ1dJRFRIPScwJwpHTlVMSUJfV01FTUNI Uj0nMCcKR05VTElCX1dNRU1DTVA9JzAnCkdOVUxJQl9XTUVNQ1BZPScwJwpHTlVMSUJfV01FTU1P VkU9JzAnCkdOVUxJQl9XTUVNU0VUPScwJwpHTlVMSUJfV1JJVEU9JzAnCkdOVUxJQl9fRVhJVD0n MCcKR05VX0xEX0ZMQUdTPScnCkdSRVA9Jy9iaW4vZ3JlcCcKR1VJTEVfQ0ZMQUdTPScnCkdVSUxF X0VGRkVDVElWRV9WRVJTSU9OPScyLjInCkdVSUxFX0ZPUl9CVUlMRD0nJwpHVUlMRV9MSUJTPScn CkdVSUxFX01BSk9SX1ZFUlNJT049JzInCkdVSUxFX01JQ1JPX1ZFUlNJT049JzQnCkdVSUxFX01J Tk9SX1ZFUlNJT049JzInCkdVSUxFX1ZFUlNJT049JzIuMi40JwpIQVZFX0FDQ0VQVDQ9JzAnCkhB VkVfQUNPU0Y9JzEnCkhBVkVfQUNPU0w9JzEnCkhBVkVfQUxQSEFTT1JUPScxJwpIQVZFX0FSUEFf SU5FVF9IPScwJwpIQVZFX0FTSU5GPScxJwpIQVZFX0FTSU5MPScxJwpIQVZFX0FUQU4yRj0nMScK SEFWRV9BVEFORj0nMScKSEFWRV9BVEFOTD0nMScKSEFWRV9BVE9MTD0nMScKSEFWRV9CVE9XQz0n MScKSEFWRV9DOTlfU1RESU5UX0g9JzAnCkhBVkVfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRT0nMCcK SEFWRV9DQlJUPScxJwpIQVZFX0NCUlRGPScxJwpIQVZFX0NCUlRMPScxJwpIQVZFX0NIT1dOPScx JwpIQVZFX0NMT1NFRElSPScxJwpIQVZFX0NPUFlTSUdOPScwJwpIQVZFX0NPUFlTSUdOTD0nMScK SEFWRV9DT1NGPScxJwpIQVZFX0NPU0hGPScxJwpIQVZFX0NPU0w9JzEnCkhBVkVfREVDTF9BQ09T TD0nMScKSEFWRV9ERUNMX0FTSU5MPScxJwpIQVZFX0RFQ0xfQVRBTkw9JzEnCkhBVkVfREVDTF9D QlJURj0nMScKSEFWRV9ERUNMX0NCUlRMPScxJwpIQVZFX0RFQ0xfQ0VJTEY9JzEnCkhBVkVfREVD TF9DRUlMTD0nMScKSEFWRV9ERUNMX0NPUFlTSUdORj0nMScKSEFWRV9ERUNMX0NPU0w9JzEnCkhB VkVfREVDTF9ESVJGRD0nMCcKSEFWRV9ERUNMX0VOVklST049JzEnCkhBVkVfREVDTF9FWFAyPScx JwpIQVZFX0RFQ0xfRVhQMkY9JzEnCkhBVkVfREVDTF9FWFAyTD0nMScKSEFWRV9ERUNMX0VYUEw9 JzEnCkhBVkVfREVDTF9FWFBNMUw9JzEnCkhBVkVfREVDTF9GQ0hESVI9JzEnCkhBVkVfREVDTF9G REFUQVNZTkM9JzEnCkhBVkVfREVDTF9GRE9QRU5ESVI9JzEnCkhBVkVfREVDTF9GTE9PUkY9JzEn CkhBVkVfREVDTF9GTE9PUkw9JzEnCkhBVkVfREVDTF9GUFVSR0U9JzEnCkhBVkVfREVDTF9GUkVF QUREUklORk89JzAnCkhBVkVfREVDTF9GUkVYUEw9JzEnCkhBVkVfREVDTF9GU0VFS089JzEnCkhB VkVfREVDTF9GVEVMTE89JzEnCkhBVkVfREVDTF9HQUlfU1RSRVJST1I9JzAnCkhBVkVfREVDTF9H RVRBRERSSU5GTz0nMCcKSEFWRV9ERUNMX0dFVERFTElNPScxJwpIQVZFX0RFQ0xfR0VURE9NQUlO TkFNRT0nMScKSEFWRV9ERUNMX0dFVExJTkU9JzEnCkhBVkVfREVDTF9HRVRMT0FEQVZHPScxJwpI QVZFX0RFQ0xfR0VUTE9HSU49JzAnCkhBVkVfREVDTF9HRVRMT0dJTl9SPScxJwpIQVZFX0RFQ0xf R0VUTkFNRUlORk89JzAnCkhBVkVfREVDTF9HRVRQQUdFU0laRT0nMScKSEFWRV9ERUNMX0dFVFVT RVJTSEVMTD0nMScKSEFWRV9ERUNMX0lORVRfTlRPUD0nMCcKSEFWRV9ERUNMX0lORVRfUFRPTj0n MCcKSEFWRV9ERUNMX0xERVhQTD0nMScKSEFWRV9ERUNMX0xPQ0FMVElNRV9SPScxJwpIQVZFX0RF Q0xfTE9HMTBMPScxJwpIQVZFX0RFQ0xfTE9HMj0nMScKSEFWRV9ERUNMX0xPRzJGPScxJwpIQVZF X0RFQ0xfTE9HMkw9JzEnCkhBVkVfREVDTF9MT0dCPScxJwpIQVZFX0RFQ0xfTE9HTD0nMScKSEFW RV9ERUNMX01FTU1FTT0nMScKSEFWRV9ERUNMX01FTVJDSFI9JzEnCkhBVkVfREVDTF9PQlNUQUNL X1BSSU5URj0nMScKSEFWRV9ERUNMX1JFTUFJTkRFUj0nMScKSEFWRV9ERUNMX1JFTUFJTkRFUkw9 JzEnCkhBVkVfREVDTF9SSU5URj0nMScKSEFWRV9ERUNMX1JPVU5EPScwJwpIQVZFX0RFQ0xfUk9V TkRGPScxJwpIQVZFX0RFQ0xfUk9VTkRMPScxJwpIQVZFX0RFQ0xfU0VURU5WPScwJwpIQVZFX0RF Q0xfU0VUSE9TVE5BTUU9JzEnCkhBVkVfREVDTF9TSU5MPScxJwpIQVZFX0RFQ0xfU05QUklOVEY9 JzEnCkhBVkVfREVDTF9TUVJUTD0nMScKSEFWRV9ERUNMX1NUUkRVUD0nMScKSEFWRV9ERUNMX1NU UkVSUk9SX1I9JzEnCkhBVkVfREVDTF9TVFJORFVQPScxJwpIQVZFX0RFQ0xfU1RSTkxFTj0nMScK SEFWRV9ERUNMX1NUUlNJR05BTD0nMScKSEFWRV9ERUNMX1NUUlRPS19SPScxJwpIQVZFX0RFQ0xf VEFOTD0nMScKSEFWRV9ERUNMX1RSVU5DPScxJwpIQVZFX0RFQ0xfVFJVTkNGPScxJwpIQVZFX0RF Q0xfVFJVTkNMPScxJwpIQVZFX0RFQ0xfVFRZTkFNRV9SPScxJwpIQVZFX0RFQ0xfVU5TRVRFTlY9 JzEnCkhBVkVfREVDTF9WU05QUklOVEY9JzEnCkhBVkVfREVDTF9XQ1RPQj0nMScKSEFWRV9ERUNM X1dDV0lEVEg9JzEnCkhBVkVfRElSRU5UX0g9JzAnCkhBVkVfRFBSSU5URj0nMScKSEFWRV9EVVAy PScxJwpIQVZFX0RVUDM9JzEnCkhBVkVfRFVQTE9DQUxFPScwJwpIQVZFX0VVSURBQ0NFU1M9JzEn CkhBVkVfRVhQRj0nMScKSEFWRV9FWFBMPScxJwpIQVZFX0VYUE0xPScxJwpIQVZFX0VYUE0xRj0n MScKSEFWRV9GQUJTRj0nMScKSEFWRV9GQUJTTD0nMScKSEFWRV9GQUNDRVNTQVQ9JzEnCkhBVkVf RkNIRElSPScxJwpIQVZFX0ZDSE1PREFUPScxJwpIQVZFX0ZDSE9XTkFUPScxJwpIQVZFX0ZDTlRM PScxJwpIQVZFX0ZEQVRBU1lOQz0nMScKSEFWRV9GRE9QRU5ESVI9JzEnCkhBVkVfRkVBVFVSRVNf SD0nMCcKSEFWRV9GRlNMPScxJwpIQVZFX0ZGU0xMPScxJwpIQVZFX0ZMT0NLPScwJwpIQVZFX0ZN QT0nMScKSEFWRV9GTUFGPScxJwpIQVZFX0ZNQUw9JzEnCkhBVkVfRk1PREY9JzEnCkhBVkVfRk1P REw9JzEnCkhBVkVfRlJFWFBGPScxJwpIQVZFX0ZTRUVLTz0nMScKSEFWRV9GU1RBVEFUPScxJwpI QVZFX0ZTWU5DPScwJwpIQVZFX0ZURUxMTz0nMScKSEFWRV9GVFJVTkNBVEU9JzEnCkhBVkVfRlVU SU1FTlM9JzEnCkhBVkVfR0VURFRBQkxFU0laRT0nMScKSEFWRV9HRVRHUk9VUFM9JzEnCkhBVkVf R0VUSE9TVE5BTUU9JzEnCkhBVkVfR0VUTE9HSU49JzAnCkhBVkVfR0VUUEFHRVNJWkU9JzEnCkhB VkVfR0VUU1VCT1BUPScxJwpIQVZFX0dFVFRJTUVPRkRBWT0nMCcKSEFWRV9HUkFOVFBUPScxJwpI QVZFX0dST1VQX01FTUJFUj0nMScKSEFWRV9IWVBPVEY9JzEnCkhBVkVfSFlQT1RMPScxJwpIQVZF X0lMT0dCPScxJwpIQVZFX0lMT0dCRj0nMScKSEFWRV9JTE9HQkw9JzEnCkhBVkVfSU5UVFlQRVNf SD0nMCcKSEFWRV9JU05BTkQ9JzAnCkhBVkVfSVNOQU5GPScwJwpIQVZFX0lTTkFOTD0nMCcKSEFW RV9JU1dCTEFOSz0nMScKSEFWRV9JU1dDTlRSTD0nJwpIQVZFX0xBTkdJTkZPX0NPREVTRVQ9JzAn CkhBVkVfTEFOR0lORk9fRVJBPScwJwpIQVZFX0xBTkdJTkZPX0g9JzAnCkhBVkVfTEFOR0lORk9f VF9GTVRfQU1QTT0nMCcKSEFWRV9MQU5HSU5GT19ZRVNFWFBSPScwJwpIQVZFX0xDSE1PRD0nMScK SEFWRV9MQ0hPV049JzEnCkhBVkVfTERFWFBGPScxJwpIQVZFX0xEX1ZFUlNJT05fU0NSSVBUX0ZB TFNFPScnCkhBVkVfTERfVkVSU0lPTl9TQ1JJUFRfVFJVRT0nIycKSEFWRV9MSUJHTVA9JycKSEFW RV9MSUJMVERMPScnCkhBVkVfTElCVU5JU1RSSU5HPSdubycKSEFWRV9MSU5LPScwJwpIQVZFX0xJ TktBVD0nMScKSEFWRV9MT0cxMEY9JzEnCkhBVkVfTE9HMTBMPScxJwpIQVZFX0xPRzFQPScwJwpI QVZFX0xPRzFQRj0nMScKSEFWRV9MT0cxUEw9JzEnCkhBVkVfTE9HQkY9JzEnCkhBVkVfTE9HQkw9 JzEnCkhBVkVfTE9HRj0nMScKSEFWRV9MT0dMPScxJwpIQVZFX0xPTkdfTE9OR19JTlQ9JzAnCkhB VkVfTFNUQVQ9JzAnCkhBVkVfTUFLRUlORk9fRkFMU0U9JycKSEFWRV9NQUtFSU5GT19UUlVFPScn CkhBVkVfTUFYX0FMSUdOX1Q9JzAnCkhBVkVfTUJSTEVOPScxJwpIQVZFX01CUlRPV0M9JzEnCkhB VkVfTUJTSU5JVD0nMScKSEFWRV9NQlNMRU49JzAnCkhBVkVfTUJTTlJUT1dDUz0nMScKSEFWRV9N QlNSVE9XQ1M9JzEnCkhBVkVfTUVNQ0hSPScxJwpIQVZFX01FTVBDUFk9JzEnCkhBVkVfTUtESVJB VD0nMScKSEFWRV9NS0RURU1QPScxJwpIQVZFX01LRklGTz0nMScKSEFWRV9NS0ZJRk9BVD0nMScK SEFWRV9NS05PRD0nMScKSEFWRV9NS05PREFUPScxJwpIQVZFX01LT1NURU1QPScwJwpIQVZFX01L T1NURU1QUz0nMScKSEFWRV9NS1NURU1QPScxJwpIQVZFX01LU1RFTVBTPScxJwpIQVZFX01PREZG PScxJwpIQVZFX01PREZMPScxJwpIQVZFX01TVkNfSU5WQUxJRF9QQVJBTUVURVJfSEFORExFUj0n MCcKSEFWRV9OQU5PU0xFRVA9JzEnCkhBVkVfTkVUREJfSD0nMCcKSEFWRV9ORVRJTkVUX0lOX0g9 JzAnCkhBVkVfTkxfTEFOR0lORk89JzAnCkhBVkVfT1BFTkFUPScxJwpIQVZFX09QRU5ESVI9JzEn CkhBVkVfT1NfSD0nMCcKSEFWRV9QQ0xPU0U9JzEnCkhBVkVfUElQRTI9JzAnCkhBVkVfUElQRT0n MCcKSEFWRV9QT0xMPScwJwpIQVZFX1BPTExfSD0nMCcKSEFWRV9QT1BFTj0nMScKSEFWRV9QT1NJ WF9PUEVOUFQ9JzEnCkhBVkVfUE9TSVhfU0lHTkFMQkxPQ0tJTkc9JzEnCkhBVkVfUE9XRj0nMScK SEFWRV9QUkVBRD0nMScKSEFWRV9QU0VMRUNUPScxJwpIQVZFX1BUSFJFQURfU0lHTUFTSz0nMScK SEFWRV9QVFNOQU1FPScxJwpIQVZFX1BUU05BTUVfUj0nMScKSEFWRV9QV1JJVEU9JzEnCkhBVkVf UVNPUlRfUj0nMScKSEFWRV9SQUlTRT0nMScKSEFWRV9SQU5ET009JzEnCkhBVkVfUkFORE9NX0g9 JzEnCkhBVkVfUkFORE9NX1I9JzEnCkhBVkVfUkFXTUVNQ0hSPScxJwpIQVZFX1JFQURESVI9JzEn CkhBVkVfUkVBRExJTkVfRkFMU0U9JycKSEFWRV9SRUFETElORV9UUlVFPScnCkhBVkVfUkVBRExJ Tks9JzAnCkhBVkVfUkVBRExJTktBVD0nMScKSEFWRV9SRUFMUEFUSD0nMCcKSEFWRV9SRU1BSU5E RVI9JzEnCkhBVkVfUkVNQUlOREVSRj0nMScKSEFWRV9SRU5BTUVBVD0nMScKSEFWRV9SRVdJTkRE SVI9JzEnCkhBVkVfUklOVD0nMScKSEFWRV9SSU5UTD0nMScKSEFWRV9SUE1BVENIPScxJwpIQVZF X1NBTUVfTE9OR19ET1VCTEVfQVNfRE9VQkxFPScwJwpIQVZFX1NBX0ZBTUlMWV9UPScwJwpIQVZF X1NDQU5ESVI9JzEnCkhBVkVfU0VDVVJFX0dFVEVOVj0nMScKSEFWRV9TRVRFTlY9JzAnCkhBVkVf U0VUSE9TVE5BTUU9JzEnCkhBVkVfU0hBUkVEX0xJQlJBUklFU19GQUxTRT0nJwpIQVZFX1NIQVJF RF9MSUJSQVJJRVNfVFJVRT0nJwpIQVZFX1NJR0FDVElPTj0nMScKSEFWRV9TSUdIQU5ETEVSX1Q9 JzAnCkhBVkVfU0lHSU5GT19UPScxJwpIQVZFX1NJR05FRF9TSUdfQVRPTUlDX1Q9JzAnCkhBVkVf U0lHTkVEX1dDSEFSX1Q9JzAnCkhBVkVfU0lHTkVEX1dJTlRfVD0nMCcKSEFWRV9TSUdTRVRfVD0n MCcKSEFWRV9TSU5GPScxJwpIQVZFX1NJTkhGPScxJwpIQVZFX1NJTkw9JzEnCkhBVkVfU0xFRVA9 JzEnCkhBVkVfU1FSVEY9JzEnCkhBVkVfU1FSVEw9JzEnCkhBVkVfU1RESU5UX0g9JzAnCkhBVkVf U1RQQ1BZPScxJwpIQVZFX1NUUE5DUFk9JzEnCkhBVkVfU1RSQ0FTRVNUUj0nMScKSEFWRV9TVFJD SFJOVUw9JzEnCkhBVkVfU1RSUEJSSz0nMScKSEFWRV9TVFJQVElNRT0nMScKSEFWRV9TVFJTRVA9 JzEnCkhBVkVfU1RSVE9EPScxJwpIQVZFX1NUUlRPTEw9JzEnCkhBVkVfU1RSVE9VTEw9JzEnCkhB VkVfU1RSVUNUX0FERFJJTkZPPScwJwpIQVZFX1NUUlVDVF9SQU5ET01fREFUQT0nMScKSEFWRV9T VFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTj0nMScKSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RP UkFHRT0nMCcKSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9TU19GQU1JTFk9JzEnCkhBVkVf U1RSVUNUX1RJTUVWQUw9JzAnCkhBVkVfU1RSVUNUX1RNUz0nMScKSEFWRV9TVFJWRVJTQ01QPScx JwpIQVZFX1NZTUxJTks9JzEnCkhBVkVfU1lNTElOS0FUPScxJwpIQVZFX1NZU19CSVRZUEVTX0g9 JzAnCkhBVkVfU1lTX0ZJTEVfSD0nJwpIQVZFX1NZU19JTlRUWVBFU19IPScwJwpIQVZFX1NZU19M T0FEQVZHX0g9JzAnCkhBVkVfU1lTX1BBUkFNX0g9JzAnCkhBVkVfU1lTX1NFTEVDVF9IPScwJwpI QVZFX1NZU19TT0NLRVRfSD0nMCcKSEFWRV9TWVNfVElNRVNfSD0nJwpIQVZFX1NZU19USU1FX0g9 JzAnCkhBVkVfU1lTX1RZUEVTX0g9JzAnCkhBVkVfU1lTX1VJT19IPScnCkhBVkVfVEFORj0nMScK SEFWRV9UQU5IRj0nMScKSEFWRV9UQU5MPScxJwpIQVZFX1RJTUVHTT0nMScKSEFWRV9USU1FUz0n MScKSEFWRV9USU1FWk9ORV9UPScwJwpIQVZFX1RZUEVfVk9MQVRJTEVfU0lHX0FUT01JQ19UPScw JwpIQVZFX1VOSVNURF9IPScnCkhBVkVfVU5MSU5LQVQ9JzEnCkhBVkVfVU5MT0NLUFQ9JzEnCkhB VkVfVU5TSUdORURfTE9OR19MT05HX0lOVD0nMCcKSEFWRV9VU0xFRVA9JzEnCkhBVkVfVVRJTUVO U0FUPScxJwpIQVZFX1ZBU1BSSU5URj0nMScKSEFWRV9WRFBSSU5URj0nMScKSEFWRV9WSVNJQklM SVRZPScwJwpIQVZFX1dDSEFSX0g9JzAnCkhBVkVfV0NIQVJfVD0nMCcKSEFWRV9XQ1BDUFk9JzEn CkhBVkVfV0NQTkNQWT0nMScKSEFWRV9XQ1JUT01CPScxJwpIQVZFX1dDU0NBU0VDTVA9JzEnCkhB VkVfV0NTQ0FUPScxJwpIQVZFX1dDU0NIUj0nMScKSEFWRV9XQ1NDTVA9JzEnCkhBVkVfV0NTQ09M TD0nMScKSEFWRV9XQ1NDUFk9JzEnCkhBVkVfV0NTQ1NQTj0nMScKSEFWRV9XQ1NEVVA9JzEnCkhB VkVfV0NTTEVOPScxJwpIQVZFX1dDU05DQVNFQ01QPScxJwpIQVZFX1dDU05DQVQ9JzEnCkhBVkVf V0NTTkNNUD0nMScKSEFWRV9XQ1NOQ1BZPScxJwpIQVZFX1dDU05MRU49JzEnCkhBVkVfV0NTTlJU T01CUz0nMScKSEFWRV9XQ1NQQlJLPScxJwpIQVZFX1dDU1JDSFI9JzEnCkhBVkVfV0NTUlRPTUJT PScxJwpIQVZFX1dDU1NQTj0nMScKSEFWRV9XQ1NTVFI9JzEnCkhBVkVfV0NTVE9LPScxJwpIQVZF X1dDU1dJRFRIPScxJwpIQVZFX1dDU1hGUk09JzEnCkhBVkVfV0NUUkFOU19UPScxJwpIQVZFX1dD VFlQRV9IPScnCkhBVkVfV0NUWVBFX1Q9JzEnCkhBVkVfV0lOU09DSzJfSD0nMCcKSEFWRV9XSU5U X1Q9JycKSEFWRV9XTUVNQ0hSPScxJwpIQVZFX1dNRU1DTVA9JzEnCkhBVkVfV01FTUNQWT0nMScK SEFWRV9XTUVNTU9WRT0nMScKSEFWRV9XTUVNU0VUPScxJwpIQVZFX1dTMlRDUElQX0g9JzAnCkhB VkVfWExPQ0FMRV9IPScwJwpIQVZFX19CT09MPScnCkhBVkVfX0VYSVQ9JzEnCkhPU1RFTlRfTElC PScnCkhPU1RfQ0M9JycKSUNPTlZfQ09OU1Q9JycKSUNPTlZfSD0nJwpJTkNMVURFX05FWFQ9J2lu Y2x1ZGUnCklOQ0xVREVfTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkU9J2luY2x1ZGUnCklORVRfTlRP UF9MSUI9JycKSU5FVF9QVE9OX0xJQj0nJwpJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0 JwpJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCklOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9 JwpJTlNUQUxMX1NUUklQX1BST0dSQU09JyQoaW5zdGFsbF9zaCkgLWMgLXMnCklOVExMSUJTPScn CklOVExfTUFDT1NYX0xJQlM9JycKSVNGSU5JVEVfTElCTT0nJwpJU0lORl9MSUJNPScnCklTTkFO RF9MSUJNPScnCklTTkFORl9MSUJNPScnCklTTkFOTF9MSUJNPScnCklTTkFOX0xJQk09JycKTEQ9 Jy91c3IvYmluL2xkJwpMREVYUF9MSUJNPScnCkxERkxBR1M9JycKTElCRkZJX0NGTEFHUz0nJwpM SUJGRklfTElCUz0nJwpMSUJHTVA9JycKTElCR01QX1BSRUZJWD0nJwpMSUJHVUlMRV9JMThOX0lO VEVSRkFDRT0nJwpMSUJHVUlMRV9JMThOX0lOVEVSRkFDRV9BR0U9JycKTElCR1VJTEVfSTE4Tl9J TlRFUkZBQ0VfQ1VSUkVOVD0nJwpMSUJHVUlMRV9JMThOX0lOVEVSRkFDRV9SRVZJU0lPTj0nJwpM SUJHVUlMRV9JMThOX01BSk9SPScnCkxJQkdVSUxFX0lOVEVSRkFDRT0nNDoxOjMnCkxJQkdVSUxF X0lOVEVSRkFDRV9BR0U9JzMnCkxJQkdVSUxFX0lOVEVSRkFDRV9DVVJSRU5UPSc0JwpMSUJHVUlM RV9JTlRFUkZBQ0VfUkVWSVNJT049JzEnCkxJQklDT05WPScnCkxJQklOVEw9JycKTElCTE9CSlM9 JycKTElCTFRETD0nJwpMSUJMVERMX1BSRUZJWD0nJwpMSUJNPScnCkxJQk9CSlM9JycKTElCUkVB RExJTkU9JycKTElCUkVBRExJTkVfUFJFRklYPScnCkxJQlM9JycKTElCU09DS0VUPScnCkxJQlRP T0w9JycKTElCVU5JU1RSSU5HPScnCkxJQlVOSVNUUklOR19QUkVGSVg9JycKTElCX0NMT0NLX0dF VFRJTUU9JycKTElCX0dFVExPR0lOPScnCkxJQl9QT0xMPScnCkxJQl9TRUxFQ1Q9JycKTElNSVRT X0g9J2xpbWl0cy5oJwpMSVBPPScnCkxOX1M9J2xuIC1zJwpMT0NBTENIQVJTRVRfVEVTVFNfRU5W SVJPTk1FTlQ9J0NIQVJTRVRBTElBU0RJUj0iJChhYnNfdG9wX2J1aWxkZGlyKS9saWIiJwpMT0NB TEVfRlI9JycKTE9DQUxFX0ZSX1VURjg9JycKTE9DQUxFX0pBPScnCkxPQ0FMRV9aSF9DTj0nbm9u ZScKTE9HMVBfTElCTT0nICA/JwpMT0dfTElCTT0nJwpMVEFMTE9DQT0nJwpMVExJQkdNUD0nJwpM VExJQklDT05WPScnCkxUTElCSU5UTD0nJwpMVExJQkxUREw9JycKTFRMSUJPQkpTPScnCkxUTElC UkVBRExJTkU9JycKTFRMSUJVTklTVFJJTkc9JycKTFRfU1lTX0xJQlJBUllfUEFUSD0nJwpNQUtF SU5GTz0nJHtTSEVMTH0gL3Jvb3QvZ3VpbGUtMi4yLjQvYnVpbGQtYXV4L21pc3NpbmcgbWFrZWlu Zm8nCk1BTklGRVNUX1RPT0w9JycKTUtESVJfUD0nL2Jpbi9ta2RpciAtcCcKTVNHRk1UPScnCk1T R0ZNVF8wMTU9JycKTVNHTUVSR0U9JycKTkVUSU5FVF9JTl9IPSduZXRpbmV0L2luLmgnCk5FWFRf QVJQQV9JTkVUX0g9JzxhcnBhL2luZXQuaD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0FSUEFf SU5FVF9IPSc8YXJwYS9pbmV0Lmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9ESVJFTlRfSD0n PGRpcmVudC5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfRVJSTk9fSD0nJwpORVhUX0FTX0ZJ UlNUX0RJUkVDVElWRV9GQ05UTF9IPSciLy8vdXNyL2luY2x1ZGUvZmNudGwuaCInCk5FWFRfQVNf RklSU1RfRElSRUNUSVZFX0ZMT0FUX0g9JyIvLy91c3IvbGliL2djYy94ODZfNjQtcmVkaGF0LWxp bnV4LzQuNC43L2luY2x1ZGUvZmxvYXQuaCInCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0lDT05W X0g9JzxpY29udi5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfTEFOR0lORk9fSD0nPGxhbmdp bmZvLmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9MSU1JVFNfSD0nPGxpbWl0cy5oPicKTkVY VF9BU19GSVJTVF9ESVJFQ1RJVkVfTE9DQUxFX0g9JyIvLy91c3IvaW5jbHVkZS9sb2NhbGUuaCIn Ck5FWFRfQVNfRklSU1RfRElSRUNUSVZFX01BVEhfSD0nPG1hdGguaD4nCk5FWFRfQVNfRklSU1Rf RElSRUNUSVZFX05FVERCX0g9JzxuZXRkYi5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfTkVU SU5FVF9JTl9IPSc8bmV0aW5ldC9pbi5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfUE9MTF9I PSc8cG9sbC5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfU0lHTkFMX0g9JyIvLy91c3IvaW5j bHVkZS9zaWduYWwuaCInCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NURERFRl9IPSciLy8vdXNy L2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC80LjQuNy9pbmNsdWRlL3N0ZGRlZi5oIicKTkVY VF9BU19GSVJTVF9ESVJFQ1RJVkVfU1RESU5UX0g9JzxzdGRpbnQuaD4nCk5FWFRfQVNfRklSU1Rf RElSRUNUSVZFX1NURElPX0g9JycKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfU1RETElCX0g9JycK TkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfU1RSSU5HX0g9JyIvLy91c3IvaW5jbHVkZS9zdHJpbmcu aCInCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NZU19GSUxFX0g9JycKTkVYVF9BU19GSVJTVF9E SVJFQ1RJVkVfU1lTX1NFTEVDVF9IPSc8c3lzL3NlbGVjdC5oPicKTkVYVF9BU19GSVJTVF9ESVJF Q1RJVkVfU1lTX1NPQ0tFVF9IPSc8c3lzL3NvY2tldC5oPicKTkVYVF9BU19GSVJTVF9ESVJFQ1RJ VkVfU1lTX1NUQVRfSD0nPHN5cy9zdGF0Lmg+JwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9TWVNf VElNRVNfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9TWVNfVElNRV9IPSc8c3lzL3RpbWUu aD4nCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NZU19UWVBFU19IPSciLy8vdXNyL2luY2x1ZGUv c3lzL3R5cGVzLmgiJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9TWVNfVUlPX0g9JycKTkVYVF9B U19GSVJTVF9ESVJFQ1RJVkVfVElNRV9IPSciLy8vdXNyL2luY2x1ZGUvdGltZS5oIicKTkVYVF9B U19GSVJTVF9ESVJFQ1RJVkVfVU5JU1REX0g9JycKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfV0NI QVJfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9XQ1RZUEVfSD0nJwpORVhUX0RJUkVOVF9I PSc8ZGlyZW50Lmg+JwpORVhUX0VSUk5PX0g9JycKTkVYVF9GQ05UTF9IPSciLy8vdXNyL2luY2x1 ZGUvZmNudGwuaCInCk5FWFRfRkxPQVRfSD0nIi8vL3Vzci9saWIvZ2NjL3g4Nl82NC1yZWRoYXQt bGludXgvNC40LjcvaW5jbHVkZS9mbG9hdC5oIicKTkVYVF9JQ09OVl9IPSc8aWNvbnYuaD4nCk5F WFRfTEFOR0lORk9fSD0nPGxhbmdpbmZvLmg+JwpORVhUX0xJTUlUU19IPSc8bGltaXRzLmg+JwpO RVhUX0xPQ0FMRV9IPSciLy8vdXNyL2luY2x1ZGUvbG9jYWxlLmgiJwpORVhUX01BVEhfSD0nPG1h dGguaD4nCk5FWFRfTkVUREJfSD0nPG5ldGRiLmg+JwpORVhUX05FVElORVRfSU5fSD0nPG5ldGlu ZXQvaW4uaD4nCk5FWFRfUE9MTF9IPSc8cG9sbC5oPicKTkVYVF9TSUdOQUxfSD0nIi8vL3Vzci9p bmNsdWRlL3NpZ25hbC5oIicKTkVYVF9TVERERUZfSD0nIi8vL3Vzci9saWIvZ2NjL3g4Nl82NC1y ZWRoYXQtbGludXgvNC40LjcvaW5jbHVkZS9zdGRkZWYuaCInCk5FWFRfU1RESU5UX0g9JzxzdGRp bnQuaD4nCk5FWFRfU1RESU9fSD0nJwpORVhUX1NURExJQl9IPScnCk5FWFRfU1RSSU5HX0g9JyIv Ly91c3IvaW5jbHVkZS9zdHJpbmcuaCInCk5FWFRfU1lTX0ZJTEVfSD0nJwpORVhUX1NZU19TRUxF Q1RfSD0nPHN5cy9zZWxlY3QuaD4nCk5FWFRfU1lTX1NPQ0tFVF9IPSc8c3lzL3NvY2tldC5oPicK TkVYVF9TWVNfU1RBVF9IPSc8c3lzL3N0YXQuaD4nCk5FWFRfU1lTX1RJTUVTX0g9JycKTkVYVF9T WVNfVElNRV9IPSc8c3lzL3RpbWUuaD4nCk5FWFRfU1lTX1RZUEVTX0g9JyIvLy91c3IvaW5jbHVk ZS9zeXMvdHlwZXMuaCInCk5FWFRfU1lTX1VJT19IPScnCk5FWFRfVElNRV9IPSciLy8vdXNyL2lu Y2x1ZGUvdGltZS5oIicKTkVYVF9VTklTVERfSD0nJwpORVhUX1dDSEFSX0g9JycKTkVYVF9XQ1RZ UEVfSD0nJwpOTT0nJwpOTUVESVQ9JycKT0JKRFVNUD0nb2JqZHVtcCcKT0JKRVhUPSdvJwpPVE9P TDY0PScnCk9UT09MPScnClBBQ0tBR0U9J2d1aWxlJwpQQUNLQUdFX0JVR1JFUE9SVD0nYnVnLWd1 aWxlQGdudS5vcmcnClBBQ0tBR0VfTkFNRT0nR05VIEd1aWxlJwpQQUNLQUdFX1NUUklORz0nR05V IEd1aWxlIDIuMi40JwpQQUNLQUdFX1RBUk5BTUU9J2d1aWxlJwpQQUNLQUdFX1VSTD0naHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLycKUEFDS0FHRV9WRVJTSU9OPScyLjIuNCcKUEFU SF9TRVBBUkFUT1I9JzonClBLR19DT05GSUc9JycKUEtHX0NPTkZJR19MSUJESVI9JycKUEtHX0NP TkZJR19QQVRIPScnClBPU1VCPScnClBPV19MSUJNPScnClBSQUdNQV9DT0xVTU5TPScnClBSQUdN QV9TWVNURU1fSEVBREVSPScnClBUSFJFQURfQ0M9JycKUFRIUkVBRF9DRkxBR1M9JycKUFRIUkVB RF9IX0RFRklORVNfU1RSVUNUX1RJTUVTUEVDPScwJwpQVEhSRUFEX0xJQlM9JycKUFRSRElGRl9U X1NVRkZJWD0nJwpSQU5MSUI9J3JhbmxpYicKUkVBRExJTkVfTElCUz0nJwpSRVBMQUNFX0FDT1NG PScwJwpSRVBMQUNFX0FTSU5GPScwJwpSRVBMQUNFX0FUQU4yRj0nMCcKUkVQTEFDRV9BVEFORj0n MCcKUkVQTEFDRV9CVE9XQz0nMCcKUkVQTEFDRV9DQUxMT0M9JzAnClJFUExBQ0VfQ0FOT05JQ0FM SVpFX0ZJTEVfTkFNRT0nMCcKUkVQTEFDRV9DQlJURj0nMCcKUkVQTEFDRV9DQlJUTD0nMCcKUkVQ TEFDRV9DRUlMPScwJwpSRVBMQUNFX0NFSUxGPScwJwpSRVBMQUNFX0NFSUxMPScwJwpSRVBMQUNF X0NIT1dOPScwJwpSRVBMQUNFX0NMT1NFPScwJwpSRVBMQUNFX0NMT1NFRElSPScwJwpSRVBMQUNF X0NPU0Y9JzAnClJFUExBQ0VfQ09TSEY9JzAnClJFUExBQ0VfRElSRkQ9JzAnClJFUExBQ0VfRFBS SU5URj0nMCcKUkVQTEFDRV9EVVAyPScwJwpSRVBMQUNFX0RVUD0nMCcKUkVQTEFDRV9EVVBMT0NB TEU9JzAnClJFUExBQ0VfRVhQMj0nMCcKUkVQTEFDRV9FWFAyTD0nMCcKUkVQTEFDRV9FWFBGPScw JwpSRVBMQUNFX0VYUE0xPScwJwpSRVBMQUNFX0VYUE0xRj0nMCcKUkVQTEFDRV9GQUJTTD0nMCcK UkVQTEFDRV9GQ0hPV05BVD0nMCcKUkVQTEFDRV9GQ0xPU0U9JzAnClJFUExBQ0VfRkNOVEw9JzAn ClJFUExBQ0VfRkRPUEVOPScwJwpSRVBMQUNFX0ZET1BFTkRJUj0nMCcKUkVQTEFDRV9GRkxVU0g9 JzAnClJFUExBQ0VfRkxPT1I9JzAnClJFUExBQ0VfRkxPT1JGPScwJwpSRVBMQUNFX0ZMT09STD0n MCcKUkVQTEFDRV9GTUE9JzAnClJFUExBQ0VfRk1BRj0nMCcKUkVQTEFDRV9GTUFMPScwJwpSRVBM QUNFX0ZNT0Q9JzAnClJFUExBQ0VfRk1PREY9JzAnClJFUExBQ0VfRk1PREw9JzAnClJFUExBQ0Vf Rk9QRU49JzAnClJFUExBQ0VfRlBSSU5URj0nMCcKUkVQTEFDRV9GUFVSR0U9JzAnClJFUExBQ0Vf RlJFT1BFTj0nMCcKUkVQTEFDRV9GUkVYUD0nMCcKUkVQTEFDRV9GUkVYUEY9JzAnClJFUExBQ0Vf RlJFWFBMPScwJwpSRVBMQUNFX0ZTRUVLPScwJwpSRVBMQUNFX0ZTRUVLTz0nMCcKUkVQTEFDRV9G U1RBVD0nMCcKUkVQTEFDRV9GU1RBVEFUPScwJwpSRVBMQUNFX0ZURUxMPScwJwpSRVBMQUNFX0ZU RUxMTz0nMCcKUkVQTEFDRV9GVFJVTkNBVEU9JzAnClJFUExBQ0VfRlVUSU1FTlM9JzAnClJFUExB Q0VfR0FJX1NUUkVSUk9SPScwJwpSRVBMQUNFX0dFVENXRD0nMCcKUkVQTEFDRV9HRVRERUxJTT0n MCcKUkVQTEFDRV9HRVRET01BSU5OQU1FPScwJwpSRVBMQUNFX0dFVERUQUJMRVNJWkU9JzAnClJF UExBQ0VfR0VUR1JPVVBTPScwJwpSRVBMQUNFX0dFVExJTkU9JzAnClJFUExBQ0VfR0VUTE9HSU5f Uj0nMCcKUkVQTEFDRV9HRVRQQUdFU0laRT0nMCcKUkVQTEFDRV9HRVRUSU1FT0ZEQVk9JzAnClJF UExBQ0VfR01USU1FPScwJwpSRVBMQUNFX0hVR0VfVkFMPScxJwpSRVBMQUNFX0hZUE9UPScwJwpS RVBMQUNFX0hZUE9URj0nMCcKUkVQTEFDRV9IWVBPVEw9JzAnClJFUExBQ0VfSUNPTlY9JzAnClJF UExBQ0VfSUNPTlZfT1BFTj0nMCcKUkVQTEFDRV9JQ09OVl9VVEY9JzAnClJFUExBQ0VfSUxPR0I9 JzAnClJFUExBQ0VfSUxPR0JGPScwJwpSRVBMQUNFX0lORVRfTlRPUD0nMCcKUkVQTEFDRV9JTkVU X1BUT049JzAnClJFUExBQ0VfSVNBVFRZPScwJwpSRVBMQUNFX0lTRklOSVRFPScxJwpSRVBMQUNF X0lTSU5GPScxJwpSRVBMQUNFX0lTTkFOPScxJwpSRVBMQUNFX0lTV0JMQU5LPScwJwpSRVBMQUNF X0lTV0NOVFJMPScnClJFUExBQ0VfSVRPTEQ9JzEnClJFUExBQ0VfTENIT1dOPScwJwpSRVBMQUNF X0xERVhQTD0nMCcKUkVQTEFDRV9MSU5LPScwJwpSRVBMQUNFX0xJTktBVD0nMCcKUkVQTEFDRV9M T0NBTEVDT05WPScwJwpSRVBMQUNFX0xPQ0FMVElNRT0nMCcKUkVQTEFDRV9MT0NBTFRJTUVfUj0n R05VTElCX1BPUlRDSEVDSycKUkVQTEFDRV9MT0cxMD0nMCcKUkVQTEFDRV9MT0cxMEY9JzAnClJF UExBQ0VfTE9HMTBMPScwJwpSRVBMQUNFX0xPRzFQPScwJwpSRVBMQUNFX0xPRzFQRj0nMCcKUkVQ TEFDRV9MT0cxUEw9JzAnClJFUExBQ0VfTE9HMj0nMCcKUkVQTEFDRV9MT0cyRj0nMCcKUkVQTEFD RV9MT0cyTD0nMCcKUkVQTEFDRV9MT0c9JzEnClJFUExBQ0VfTE9HQj0nMCcKUkVQTEFDRV9MT0dC Rj0nMCcKUkVQTEFDRV9MT0dCTD0nMCcKUkVQTEFDRV9MT0dGPScwJwpSRVBMQUNFX0xPR0w9JzAn ClJFUExBQ0VfTFNFRUs9JzAnClJFUExBQ0VfTFNUQVQ9JzAnClJFUExBQ0VfTUFMTE9DPScxJwpS RVBMQUNFX01CUkxFTj0nMCcKUkVQTEFDRV9NQlJUT1dDPScwJwpSRVBMQUNFX01CU0lOSVQ9JzAn ClJFUExBQ0VfTUJTTlJUT1dDUz0nMCcKUkVQTEFDRV9NQlNSVE9XQ1M9JzAnClJFUExBQ0VfTUJT VEFURV9UPScwJwpSRVBMQUNFX01CVE9XQz0nMCcKUkVQTEFDRV9NRU1DSFI9JzEnClJFUExBQ0Vf TUVNTUVNPScwJwpSRVBMQUNFX01LRElSPScxJwpSRVBMQUNFX01LRklGTz0nMCcKUkVQTEFDRV9N S05PRD0nMCcKUkVQTEFDRV9NS1NURU1QPScwJwpSRVBMQUNFX01LVElNRT0nR05VTElCX1BPUlRD SEVDSycKUkVQTEFDRV9NT0RGPScwJwpSRVBMQUNFX01PREZGPScwJwpSRVBMQUNFX01PREZMPScw JwpSRVBMQUNFX05BTj0nMScKUkVQTEFDRV9OQU5PU0xFRVA9J0dOVUxJQl9QT1JUQ0hFQ0snClJF UExBQ0VfTkxfTEFOR0lORk89JzAnClJFUExBQ0VfTlVMTD0nMScKUkVQTEFDRV9PQlNUQUNLX1BS SU5URj0nMCcKUkVQTEFDRV9PUEVOPScxJwpSRVBMQUNFX09QRU5BVD0nMCcKUkVQTEFDRV9PUEVO RElSPScwJwpSRVBMQUNFX1BFUlJPUj0nMCcKUkVQTEFDRV9QT0xMPScwJwpSRVBMQUNFX1BPUEVO PScwJwpSRVBMQUNFX1BSRUFEPScwJwpSRVBMQUNFX1BSSU5URj0nMCcKUkVQTEFDRV9QU0VMRUNU PScwJwpSRVBMQUNFX1BUSFJFQURfU0lHTUFTSz0nMCcKUkVQTEFDRV9QVFNOQU1FPScwJwpSRVBM QUNFX1BUU05BTUVfUj0nMCcKUkVQTEFDRV9QVVRFTlY9JzEnClJFUExBQ0VfUFdSSVRFPScwJwpS RVBMQUNFX1FTT1JUX1I9JzAnClJFUExBQ0VfUkFJU0U9JzAnClJFUExBQ0VfUkFORE9NX1I9JzAn ClJFUExBQ0VfUkVBRD0nMCcKUkVQTEFDRV9SRUFETElOSz0nMCcKUkVQTEFDRV9SRUFETElOS0FU PScwJwpSRVBMQUNFX1JFQUxMT0M9JzAnClJFUExBQ0VfUkVBTFBBVEg9JzAnClJFUExBQ0VfUkVN QUlOREVSPScwJwpSRVBMQUNFX1JFTUFJTkRFUkY9JzAnClJFUExBQ0VfUkVNQUlOREVSTD0nMCcK UkVQTEFDRV9SRU1PVkU9JzAnClJFUExBQ0VfUkVOQU1FPScxJwpSRVBMQUNFX1JFTkFNRUFUPScw JwpSRVBMQUNFX1JNRElSPScxJwpSRVBMQUNFX1JPVU5EPScwJwpSRVBMQUNFX1JPVU5ERj0nMCcK UkVQTEFDRV9ST1VOREw9JzAnClJFUExBQ0VfU0VMRUNUPScxJwpSRVBMQUNFX1NFVEVOVj0nMCcK UkVQTEFDRV9TRVRMT0NBTEU9JzAnClJFUExBQ0VfU0lHTkJJVD0nMCcKUkVQTEFDRV9TSUdOQklU X1VTSU5HX0dDQz0nMCcKUkVQTEFDRV9TSU5GPScwJwpSRVBMQUNFX1NJTkhGPScwJwpSRVBMQUNF X1NMRUVQPScwJwpSRVBMQUNFX1NOUFJJTlRGPScwJwpSRVBMQUNFX1NQUklOVEY9JzAnClJFUExB Q0VfU1FSVEY9JzAnClJFUExBQ0VfU1FSVEw9JzAnClJFUExBQ0VfU1RBVD0nMCcKUkVQTEFDRV9T VERJT19SRUFEX0ZVTkNTPScwJwpSRVBMQUNFX1NURElPX1dSSVRFX0ZVTkNTPScwJwpSRVBMQUNF X1NUUE5DUFk9JzAnClJFUExBQ0VfU1RSQ0FTRVNUUj0nMCcKUkVQTEFDRV9TVFJDSFJOVUw9JzAn ClJFUExBQ0VfU1RSRFVQPScwJwpSRVBMQUNFX1NUUkVSUk9SPScwJwpSRVBMQUNFX1NUUkVSUk9S X1I9JzAnClJFUExBQ0VfU1RSTkNBVD0nMCcKUkVQTEFDRV9TVFJORFVQPScwJwpSRVBMQUNFX1NU Uk5MRU49JzAnClJFUExBQ0VfU1RSU0lHTkFMPScwJwpSRVBMQUNFX1NUUlNUUj0nMCcKUkVQTEFD RV9TVFJUT0Q9JzAnClJFUExBQ0VfU1RSVE9LX1I9JzAnClJFUExBQ0VfU1RSVUNUX0xDT05WPScx JwpSRVBMQUNFX1NUUlVDVF9USU1FVkFMPScwJwpSRVBMQUNFX1NZTUxJTks9JzAnClJFUExBQ0Vf U1lNTElOS0FUPScwJwpSRVBMQUNFX1RBTkY9JzAnClJFUExBQ0VfVEFOSEY9JzAnClJFUExBQ0Vf VElNRUdNPSdHTlVMSUJfUE9SVENIRUNLJwpSRVBMQUNFX1RNUEZJTEU9JzAnClJFUExBQ0VfVE9X TE9XRVI9JycKUkVQTEFDRV9UUlVOQz0nMCcKUkVQTEFDRV9UUlVOQ0Y9JzAnClJFUExBQ0VfVFJV TkNMPScwJwpSRVBMQUNFX1RUWU5BTUVfUj0nMCcKUkVQTEFDRV9VTkxJTks9JzAnClJFUExBQ0Vf VU5MSU5LQVQ9JzAnClJFUExBQ0VfVU5TRVRFTlY9JzAnClJFUExBQ0VfVVNMRUVQPScwJwpSRVBM QUNFX1VUSU1FTlNBVD0nMCcKUkVQTEFDRV9WQVNQUklOVEY9JzAnClJFUExBQ0VfVkRQUklOVEY9 JzAnClJFUExBQ0VfVkZQUklOVEY9JzAnClJFUExBQ0VfVlBSSU5URj0nMCcKUkVQTEFDRV9WU05Q UklOVEY9JzAnClJFUExBQ0VfVlNQUklOVEY9JzAnClJFUExBQ0VfV0NSVE9NQj0nMCcKUkVQTEFD RV9XQ1NOUlRPTUJTPScwJwpSRVBMQUNFX1dDU1JUT01CUz0nMCcKUkVQTEFDRV9XQ1NXSURUSD0n MCcKUkVQTEFDRV9XQ1RPQj0nMCcKUkVQTEFDRV9XQ1RPTUI9JzAnClJFUExBQ0VfV0NXSURUSD0n MCcKUkVQTEFDRV9XUklURT0nMCcKUk9VTkRfTElCTT0nID8nClNDTV9JX0dTQ19DX0lOTElORT0n JwpTQ01fSV9HU0NfRU5BQkxFX0RFUFJFQ0FURUQ9JycKU0NNX0lfR1NDX0dVSUxFX0RFQlVHPScn ClNDTV9JX0dTQ19IQVZFX1NUUlVDVF9ESVJFTlQ2ND0nJwpTQ01fSV9HU0NfSEFWRV9USFJFQURf U1RPUkFHRV9DTEFTUz0nJwpTQ01fSV9HU0NfSUNPTlZFSF9FUlJPUj0nJwpTQ01fSV9HU0NfSUNP TlZFSF9FU0NBUEVfU0VRVUVOQ0U9JycKU0NNX0lfR1NDX0lDT05WRUhfUVVFU1RJT05fTUFSSz0n JwpTQ01fSV9HU0NfTkVFRFNfSU5UVFlQRVNfSD0nJwpTQ01fSV9HU0NfTkVFRFNfU1RESU5UX0g9 JycKU0NNX0lfR1NDX05FRURfQlJBQ0VTX09OX1BUSFJFQURfTVVURVhfSU5JVElBTElaRVI9JycK U0NNX0lfR1NDX05FRURfQlJBQ0VTX09OX1BUSFJFQURfT05DRV9JTklUPScnClNDTV9JX0dTQ19T VEFDS19HUk9XU19VUD0nJwpTQ01fSV9HU0NfVF9JTlQxNj0nJwpTQ01fSV9HU0NfVF9JTlQzMj0n JwpTQ01fSV9HU0NfVF9JTlQ2ND0nJwpTQ01fSV9HU0NfVF9JTlQ4PScnClNDTV9JX0dTQ19UX0lO VE1BWD0nJwpTQ01fSV9HU0NfVF9JTlRQVFI9JycKU0NNX0lfR1NDX1RfUFRSRElGRj0nJwpTQ01f SV9HU0NfVF9VSU5UMTY9JycKU0NNX0lfR1NDX1RfVUlOVDMyPScnClNDTV9JX0dTQ19UX1VJTlQ2 ND0nJwpTQ01fSV9HU0NfVF9VSU5UOD0nJwpTQ01fSV9HU0NfVF9VSU5UTUFYPScnClNDTV9JX0dT Q19UX1VJTlRQVFI9JycKU0NNX0lfR1NDX1VTRV9OVUxMX1RIUkVBRFM9JycKU0NNX0lfR1NDX1VT RV9QVEhSRUFEX1RIUkVBRFM9JycKU0NNX1BSRUJVSUxUX0JJTkFSSUVTPScnClNFRD0nL2Jpbi9z ZWQnClNFUlZFTlRfTElCPScnClNFVF9NQUtFPScnClNIRUxMPScvYmluL3NoJwpTSUdfQVRPTUlD X1RfU1VGRklYPScnClNJWkVfVF9TVUZGSVg9JycKU1REQUxJR05fSD0nJwpTVERCT09MX0g9JycK U1REREVGX0g9J3N0ZGRlZi5oJwpTVERJTlRfSD0nc3RkaW50LmgnClNUUklQPScnClNZU19USU1F X0hfREVGSU5FU19TVFJVQ1RfVElNRVNQRUM9JzAnClRJTUVfSF9ERUZJTkVTX1NUUlVDVF9USU1F U1BFQz0nMCcKVFJVTkNfTElCTT0nJwpVTkRFRklORV9TVFJUT0tfUj0nMCcKVU5JU1REX0hfREVG SU5FU19TVFJVQ1RfVElNRVNQRUM9JzAnClVOSVNURF9IX0hBVkVfV0lOU09DSzJfSD0nMCcKVU5J U1REX0hfSEFWRV9XSU5TT0NLMl9IX0FORF9VU0VfU09DS0VUUz0nMCcKVVNFX05MUz0nJwpWRVJT SU9OPScyLjIuNCcKV0NIQVJfVF9TVUZGSVg9JycKV0lORE9XU182NF9CSVRfT0ZGX1Q9JzAnCldJ TkRPV1NfNjRfQklUX1NUX1NJWkU9JzAnCldJTlRfVF9TVUZGSVg9JycKWEdFVFRFWFQ9JycKWEdF VFRFWFRfMDE1PScnClhHRVRURVhUX0VYVFJBX09QVElPTlM9JycKYWNfY3RfQVI9J2FyJwphY19j dF9DQz0nZ2NjJwphY19jdF9EVU1QQklOPScnCmFjeF9wdGhyZWFkX2NvbmZpZz0nJwphbV9fRVhF RVhUX0ZBTFNFPScnCmFtX19FWEVFWFRfVFJVRT0nJwphbV9fZmFzdGRlcENDX0ZBTFNFPScjJwph bV9fZmFzdGRlcENDX1RSVUU9JycKYW1fX2luY2x1ZGU9J2luY2x1ZGUnCmFtX19pc3JjPScnCmFt X19sZWFkaW5nX2RvdD0nLicKYW1fX25vZGVwPSdfbm8nCmFtX19xdW90ZT0nJwphbV9fdGFyPSck JHtUQVItdGFyfSBjaG9mIC0gIiQkdGFyZGlyIicKYW1fX3VudGFyPSckJHtUQVItdGFyfSB4ZiAt JwpiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKYnVpbGQ9J3g4Nl82NC1wYy1saW51eC1nbnUn CmJ1aWxkX2FsaWFzPScnCmJ1aWxkX2NwdT0neDg2XzY0JwpidWlsZF9vcz0nbGludXgtZ251Jwpi dWlsZF92ZW5kb3I9J3BjJwpjcm9zc19jb21waWxpbmc9J25vJwpkYXRhZGlyPScke2RhdGFyb290 ZGlyfScKZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKZG9jZGlyPScke2RhdGFyb290ZGly fS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9JwpkdmlkaXI9JyR7ZG9jZGlyfScKZXhlY19wcmVmaXg9 J05PTkUnCmdsX0dOVUxJQl9FTkFCTEVEXzMwODM4ZjU0Mzk0ODc0MjEwNDJmMjIyNWJlZDNhZjc2 X0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEXzMwODM4ZjU0Mzk0ODc0MjEwNDJmMjIyNWJlZDNh Zjc2X1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfMzdmNzFiNjA0YWE5YzU0NDQ2NzgzZDgwZjQy ZmU1NDdfRkFMU0U9JycKZ2xfR05VTElCX0VOQUJMRURfMzdmNzFiNjA0YWE5YzU0NDQ2NzgzZDgw ZjQyZmU1NDdfVFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF8zZGNjZTk1N2VhZGM4OTZlNjNhYjVm MTM3OTQ3YjQxMF9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF8zZGNjZTk1N2VhZGM4OTZlNjNh YjVmMTM3OTQ3YjQxMF9UUlVFPScnCmdsX0dOVUxJQl9FTkFCTEVEXzNmMGU1OTMwMzNkMWZjMmMx Mjc1ODE5NjBmNjQxYjY2X0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEXzNmMGU1OTMwMzNkMWZj MmMxMjc1ODE5NjBmNjQxYjY2X1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfNDNmZTg3YTM0MWQ5 YjRiOTNjNDdjM2FkODE5YTUyMzlfRkFMU0U9JycKZ2xfR05VTElCX0VOQUJMRURfNDNmZTg3YTM0 MWQ5YjRiOTNjNDdjM2FkODE5YTUyMzlfVFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF81MjY0Mjk0 YWEwYTU1NTc1NDFiNTNjOGM3NDFmN2YzMV9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF81MjY0 Mjk0YWEwYTU1NTc1NDFiNTNjOGM3NDFmN2YzMV9UUlVFPScnCmdsX0dOVUxJQl9FTkFCTEVEXzli YzVmMjE2ZDU3ZTIzMWU0ODM0MDQ5ZDY3ZDBkYjYyX0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVE XzliYzVmMjE2ZDU3ZTIzMWU0ODM0MDQ5ZDY3ZDBkYjYyX1RSVUU9JycKZ2xfR05VTElCX0VOQUJM RURfYWxsb2NhX0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX2FsbG9jYV9UUlVFPScnCmdsX0dO VUxJQl9FTkFCTEVEX2Fzc3VyZV9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9hc3N1cmVfVFJV RT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9iMWRmNzExN2I0NzlkMmRhNTlkNzZkZWJhNDY4ZWUyMV9G QUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9iMWRmNzExN2I0NzlkMmRhNTlkNzZkZWJhNDY4ZWUy MV9UUlVFPScnCmdsX0dOVUxJQl9FTkFCTEVEX2JlNDUzY2VjNWVlY2Y1NzMxYTI3NGYyZGU3ZjJk YjM2X0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX2JlNDUzY2VjNWVlY2Y1NzMxYTI3NGYyZGU3 ZjJkYjM2X1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfYnRvd2NfRkFMU0U9JycKZ2xfR05VTElC X0VOQUJMRURfYnRvd2NfVFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9jaGRpcl9GQUxTRT0nJwpn bF9HTlVMSUJfRU5BQkxFRF9jaGRpcl9UUlVFPScnCmdsX0dOVUxJQl9FTkFCTEVEX2RiZGYyMjg2 OGE1MzY3ZjI4YmYxOGUwMDEzYWM2ZjhmX0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX2RiZGYy Mjg2OGE1MzY3ZjI4YmYxOGUwMDEzYWM2ZjhmX1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfZHVw Ml9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9kdXAyX1RSVUU9JycKZ2xfR05VTElCX0VOQUJM RURfZjk4NTA2MzFkY2E5MTg1OWU5Y2RkYWM5MzU5OTIxYzBfRkFMU0U9JycKZ2xfR05VTElCX0VO QUJMRURfZjk4NTA2MzFkY2E5MTg1OWU5Y2RkYWM5MzU5OTIxYzBfVFJVRT0nJwpnbF9HTlVMSUJf RU5BQkxFRF9mbGV4bWVtYmVyX0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX2ZsZXhtZW1iZXJf VFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9ob3N0ZW50X0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFC TEVEX2hvc3RlbnRfVFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9pbnRwcm9wc19GQUxTRT0nJwpn bF9HTlVMSUJfRU5BQkxFRF9pbnRwcm9wc19UUlVFPScnCmdsX0dOVUxJQl9FTkFCTEVEX2xvY2Fs ZWNvbnZfRkFMU0U9JycKZ2xfR05VTElCX0VOQUJMRURfbG9jYWxlY29udl9UUlVFPScnCmdsX0dO VUxJQl9FTkFCTEVEX2xvZ19GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9sb2dfVFJVRT0nJwpn bF9HTlVMSUJfRU5BQkxFRF9tYnJ0b3djX0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX21icnRv d2NfVFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9tYnNpbml0X0ZBTFNFPScnCmdsX0dOVUxJQl9F TkFCTEVEX21ic2luaXRfVFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9tYnRvd2NfRkFMU0U9JycK Z2xfR05VTElCX0VOQUJMRURfbWJ0b3djX1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfbWVtY2hy X0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX21lbWNocl9UUlVFPScnCmdsX0dOVUxJQl9FTkFC TEVEX21rdGltZV9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9ta3RpbWVfVFJVRT0nJwpnbF9H TlVMSUJfRU5BQkxFRF9wYXRobWF4X0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX3BhdGhtYXhf VFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9yYWlzZV9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxF RF9yYWlzZV9UUlVFPScnCmdsX0dOVUxJQl9FTkFCTEVEX3JvdW5kX0ZBTFNFPScnCmdsX0dOVUxJ Ql9FTkFCTEVEX3JvdW5kX1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfc2VjdXJlX2dldGVudl9G QUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9zZWN1cmVfZ2V0ZW52X1RSVUU9JycKZ2xfR05VTElC X0VOQUJMRURfc2VydmVudF9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9zZXJ2ZW50X1RSVUU9 JycKZ2xfR05VTElCX0VOQUJMRURfc2lnbmJpdF9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9z aWduYml0X1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfc2l6ZV9tYXhfRkFMU0U9JycKZ2xfR05V TElCX0VOQUJMRURfc2l6ZV9tYXhfVFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9zbnByaW50Zl9G QUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF9zbnByaW50Zl9UUlVFPScnCmdsX0dOVUxJQl9FTkFC TEVEX3NvY2tldHNfRkFMU0U9JycKZ2xfR05VTElCX0VOQUJMRURfc29ja2V0c19UUlVFPScnCmds X0dOVUxJQl9FTkFCTEVEX3N0YXRfRkFMU0U9JycKZ2xfR05VTElCX0VOQUJMRURfc3RhdF9UUlVF PScnCmdsX0dOVUxJQl9FTkFCTEVEX3N0cmVxX0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX3N0 cmVxX1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfdGVtcG5hbWVfRkFMU0U9JycKZ2xfR05VTElC X0VOQUJMRURfdGVtcG5hbWVfVFJVRT0nJwpnbF9HTlVMSUJfRU5BQkxFRF90aW1lX3JfRkFMU0U9 JycKZ2xfR05VTElCX0VOQUJMRURfdGltZV9yX1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfdGlt ZWdtX0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX3RpbWVnbV9UUlVFPScnCmdsX0dOVUxJQl9F TkFCTEVEX3Vuc2V0ZW52X0ZBTFNFPScnCmdsX0dOVUxJQl9FTkFCTEVEX3Vuc2V0ZW52X1RSVUU9 JycKZ2xfR05VTElCX0VOQUJMRURfdmFzbnByaW50Zl9GQUxTRT0nJwpnbF9HTlVMSUJfRU5BQkxF RF92YXNucHJpbnRmX1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfd2NydG9tYl9GQUxTRT0nJwpn bF9HTlVMSUJfRU5BQkxFRF93Y3J0b21iX1RSVUU9JycKZ2xfR05VTElCX0VOQUJMRURfeHNpemVf RkFMU0U9JycKZ2xfR05VTElCX0VOQUJMRURfeHNpemVfVFJVRT0nJwpnbF9MSUJPQkpTPScgY2Fu b25pY2FsaXplLWxncGwubyBjb3B5c2lnbi5vIGRpcmZkLm8gaXRvbGQubyBmbG9jay5vIGZyZXhw Lm8gZnN5bmMubyBnZXRhZGRyaW5mby5vIGdhaV9zdHJlcnJvci5vIGdldGxvZ2luLm8gZ2V0dGlt ZW9mZGF5Lm8gaW5ldF9udG9wLm8gaW5ldF9wdG9uLm8gaXNmaW5pdGUubyBpc2luZi5vIGlzbmFu ZC5vIGlzbmFuZi5vIGlzbmFubC5vIGxpbmsubyBsb2cxcC5vIG1hbGxvYy5vIG1hbGxvYy5vIG1r ZGlyLm8gbWtvc3RlbXAubyBubF9sYW5naW5mby5vIG9wZW4ubyBwaXBlLm8gcG9sbC5vIHB1dGVu di5vIHJlYWRsaW5rLm8gcmVnZXgubyByZW5hbWUubyBybWRpci5vIHNlbGVjdC5vIHNldGVudi5v JwpnbF9MVExJQk9CSlM9JycKZ2x0ZXN0c19MSUJPQkpTPScnCmdsdGVzdHNfTFRMSUJPQkpTPScn CmdsdGVzdHNfV0lUTkVTUz0nJwpoYXZlX21ha2VpbmZvPScnCmhvc3Q9J3g4Nl82NC1wYy1saW51 eC1nbnUnCmhvc3RfYWxpYXM9JycKaG9zdF9jcHU9J3g4Nl82NCcKaG9zdF9vcz0nbGludXgtZ251 Jwpob3N0X3ZlbmRvcj0ncGMnCmh0bWxkaXI9JyR7ZG9jZGlyfScKaW5jbHVkZWRpcj0nJHtwcmVm aXh9L2luY2x1ZGUnCmluZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCmluc3RhbGxfc2g9JyR7 U0hFTEx9IC9yb290L2d1aWxlLTIuMi40L2J1aWxkLWF1eC9pbnN0YWxsLXNoJwpsaWJkaXI9JyR7 ZXhlY19wcmVmaXh9L2xpYicKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKbGlz cGRpcj0nJHtkYXRhcm9vdGRpcn0vZW1hY3Mvc2l0ZS1saXNwJwpsb2NhbGVkaXI9JyR7ZGF0YXJv b3RkaXJ9L2xvY2FsZScKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKbWFuZGlyPScke2Rh dGFyb290ZGlyfS9tYW4nCm1rZGlyX3A9JyQoTUtESVJfUCknCm9sZGluY2x1ZGVkaXI9Jy91c3Iv aW5jbHVkZScKcGRmZGlyPScke2RvY2Rpcn0nCnBrZ2xpYmV4ZWNkaXI9JyR7bGliZXhlY2Rpcn0v JHtQQUNLQUdFfScKcHJlZml4PScvb3B0L2d1aWxlLTIuMi40Jwpwcm9ncmFtX3RyYW5zZm9ybV9u YW1lPSdzLHgseCwnCnBzZGlyPScke2RvY2Rpcn0nCnJ1bnN0YXRlZGlyPScke2xvY2Fsc3RhdGVk aXJ9L3J1bicKc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKc2hhcmVkc3RhdGVkaXI9JyR7 cHJlZml4fS9jb20nCnNpdGVkaXI9JycKc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKdGFyZ2V0 X2FsaWFzPScnCnRvcF9idWlsZGRpcl9hYnNvbHV0ZT0nJwp0b3Bfc3JjZGlyX2Fic29sdXRlPScn CgojIyAtLS0tLS0tLS0tLSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoK LyogY29uZmRlZnMuaCAqLwojZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEd1aWxlIgojZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZ3VpbGUiCiNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjIuNCIK I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEd1aWxlIDIuMi40IgojZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ3VpbGVAZ251Lm9yZyIKI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cDov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlLyIKI2RlZmluZSBfQUxMX1NPVVJDRSAxCiNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCiNkZWZpbmUgX0dOVV9TT1VSQ0UgMQojZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJ QlNfRVhUX18gMQojZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQojZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQojZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKI2RlZmluZSBfX1NU RENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCiNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQojZGVm aW5lIF9EQVJXSU5fVVNFXzY0X0JJVF9JTk9ERSAxCiNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkIGlu dAojZGVmaW5lIENfQUxMT0NBIDEKI2RlZmluZSBTVEFDS19ESVJFQ1RJT04gLTEKI2RlZmluZSBI QVZFX0VOVklST05fREVDTCAxCiNkZWZpbmUgSEFWRV9XT1JLSU5HX09fTk9BVElNRSAwCiNkZWZp bmUgSEFWRV9XT1JLSU5HX09fTk9GT0xMT1cgMAojZGVmaW5lIHBpZF90IGludAojZGVmaW5lIG1v ZGVfdCBpbnQKI2RlZmluZSBIQVZFX0RFQ0xfQUxBUk0gMAojZGVmaW5lIFNUQVRfTUFDUk9TX0JS T0tFTiAxCiNkZWZpbmUgbmxpbmtfdCBpbnQKI2RlZmluZSByZXN0cmljdCAvKiovCiNkZWZpbmUg SEFWRV9ERUNMX0lORVRfTlRPUCAwCiNkZWZpbmUgSEFWRV9ERUNMX0dFVExPR0lOIDAKI2RlZmlu ZSBJQ09OVl9DT05TVCAKI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQojZGVmaW5lIEhBVkVfREVD TF9HRVRDX1VOTE9DS0VEIDAKI2RlZmluZSBNQUxMT0NfMF9JU19OT05OVUxMIDAKI2RlZmluZSBQ Uk9NT1RFRF9NT0RFX1QgbW9kZV90CiNpZm5kZWYgX19jcGx1c3BsdXMKI2RlZmluZSBpbmxpbmUg CiNlbmRpZgojZGVmaW5lIG1ic3RhdGVfdCBpbnQKI2RlZmluZSBzc2l6ZV90IGludAojZGVmaW5l IEhBVkVfREVDTF9TRVRFTlYgMAojZGVmaW5lIEJJVFNJWkVPRl9QVFJESUZGX1QgMAojZGVmaW5l IEJJVFNJWkVPRl9TSVpFX1QgMAojZGVmaW5lIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgMAojZGVm aW5lIEJJVFNJWkVPRl9XQ0hBUl9UIDAKI2RlZmluZSBCSVRTSVpFT0ZfV0lOVF9UIDAKI2RlZmlu ZSBQVFJESUZGX1RfU1VGRklYIAojZGVmaW5lIFNJWkVfVF9TVUZGSVggCiNkZWZpbmUgU0lHX0FU T01JQ19UX1NVRkZJWCAKI2RlZmluZSBXQ0hBUl9UX1NVRkZJWCAKI2RlZmluZSBXSU5UX1RfU1VG RklYIAojZGVmaW5lIFRNX0lOX1NZU19USU1FIDEKI2RlZmluZSBIQVZFX0RFQ0xfVFpOQU1FIDAK I2RlZmluZSBIQVZFX0RFQ0xfVlNOUFJJTlRGIDAKI2RlZmluZSBIQVZFX0RFQ0xfU05QUklOVEYg MAojZGVmaW5lIEhBVkVfREVDTF9TVFJEVVAgMAojZGVmaW5lIEhBVkVfREVDTF9VTlNFVEVOViAw CiNkZWZpbmUgaW50bWF4X3QgbG9uZwojZGVmaW5lIEhBVkVfREVDTF9fU05QUklOVEYgMAojZGVm aW5lIEdOVUxJQl9URVNUX0FDQ0VQVCAxCiNkZWZpbmUgR05VTElCX1RFU1RfQUNDRVBUNCAxCiNk ZWZpbmUgR05VTElCX1RFU1RfQklORCAxCiNkZWZpbmUgR05VTElCX0NBTk9OSUNBTElaRV9MR1BM IDEKI2RlZmluZSBHTlVMSUJfVEVTVF9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKI2RlZmluZSBH TlVMSUJfVEVTVF9SRUFMUEFUSCAxCiNkZWZpbmUgR05VTElCX1RFU1RfQ0VJTCAxCiNkZWZpbmUg R05VTElCX1RFU1RfQ0xPU0UgMQojZGVmaW5lIEdOVUxJQl9URVNUX0NPTk5FQ1QgMQojZGVmaW5l IEdOVUxJQl9URVNUX0NPUFlTSUdOIDEKI2RlZmluZSBIQVZFX0RFQ0xfRElSRkQgMAojZGVmaW5l IEdOVUxJQl9URVNUX0RJUkZEIDEKI2RlZmluZSBHTlVMSUJfVEVTVF9EVVBMT0NBTEUgMQojZGVm aW5lIEdOVUxJQl9URVNUX0VOVklST04gMQojZGVmaW5lIEdOVUxJQl9URVNUX0ZMT09SIDEKI2Rl ZmluZSBHTlVMSUJfVEVTVF9GUkVYUCAxCiNkZWZpbmUgR05VTElCX1RFU1RfRlNUQVQgMQojZGVm aW5lIEdOVUxJQl9URVNUX0ZTWU5DIDEKI2RlZmluZSBfX2Z1bmNfXyAiPHVua25vd24gZnVuY3Rp b24+IgojZGVmaW5lIEhBVkVfREVDTF9HQUlfU1RSRVJST1IgMAojZGVmaW5lIEhBVkVfREVDTF9H RVRBRERSSU5GTyAwCiNkZWZpbmUgSEFWRV9ERUNMX0ZSRUVBRERSSU5GTyAwCiNkZWZpbmUgSEFW RV9ERUNMX0dFVE5BTUVJTkZPIDAKI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRBRERSSU5GTyAxCiNk ZWZpbmUgR05VTElCX1RFU1RfR0VUTE9HSU4gMQojZGVmaW5lIEdOVUxJQl9URVNUX0dFVFBFRVJO QU1FIDEKI2RlZmluZSBHTlVMSUJfVEVTVF9HRVRTT0NLTkFNRSAxCiNkZWZpbmUgR05VTElCX1RF U1RfR0VUU09DS09QVCAxCiNkZWZpbmUgR0VUVElNRU9GREFZX1RJTUVaT05FIHZvaWQKI2RlZmlu ZSBHTlVMSUJfVEVTVF9HRVRUSU1FT0ZEQVkgMQojZGVmaW5lIEhBVkVfREVDTF9JTkVUX05UT1Ag MAojZGVmaW5lIEhBVkVfREVDTF9JTkVUX1BUT04gMAojZGVmaW5lIEhBVkVfREVDTF9JU0ZJTklU RSAwCiNkZWZpbmUgR05VTElCX1RFU1RfSVNGSU5JVEUgMQojZGVmaW5lIEhBVkVfREVDTF9JU0lO RiAwCiNkZWZpbmUgR05VTElCX1RFU1RfSVNJTkYgMQojZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO IDEKI2RlZmluZSBHTlVMSUJfVEVTVF9JU05BTkQgMQojZGVmaW5lIEdOVUxJQl9URVNUX0lTTkFO RiAxCiNkZWZpbmUgR05VTElCX1RFU1RfSVNOQU5MIDEKI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFkg MAojZGVmaW5lIEdOVUxJQl9URVNUX0xJTksgMQojZGVmaW5lIEdOVUxJQl9URVNUX0xJU1RFTiAx CiNkZWZpbmUgR05VTElCX1RFU1RfTE9HMVAgMQojZGVmaW5lIEdOVUxJQl9URVNUX0xTVEFUIDEK I2RlZmluZSBIQVZFX01BTExPQ19HTlUgMAojZGVmaW5lIEdOVUxJQl9NQUxMT0NfR05VIDEKI2Rl ZmluZSBHTlVMSUJfVEVTVF9NQUxMT0NfUE9TSVggMQojZGVmaW5lIEZVTkNfTUtESVJfRE9UX0JV RyAxCiNkZWZpbmUgR05VTElCX01LT1NURU1QIDEKI2RlZmluZSBHTlVMSUJfVEVTVF9NS09TVEVN UCAxCiNkZWZpbmUgR05VTElCX1RFU1RfTkxfTEFOR0lORk8gMQojZGVmaW5lIE9QRU5fVFJBSUxJ TkdfU0xBU0hfQlVHIDEKI2RlZmluZSBHTlVMSUJfVEVTVF9PUEVOIDEKI2RlZmluZSBHTlVMSUJf VEVTVF9QSVBFIDEKI2RlZmluZSBHTlVMSUJfVEVTVF9QSVBFMiAxCiNkZWZpbmUgR05VTElCX1RF U1RfUE9MTCAxCiNkZWZpbmUgSEFWRV9ERUNMX19QVVRFTlYgMAojZGVmaW5lIEdOVUxJQl9URVNU X1BVVEVOViAxCiNkZWZpbmUgR05VTElCX1RFU1RfUkVBRCAxCiNkZWZpbmUgR05VTElCX1RFU1Rf UkVBRExJTksgMQojZGVmaW5lIEdOVUxJQl9URVNUX1JFQ1YgMQojZGVmaW5lIEdOVUxJQl9URVNU X1JFQ1ZGUk9NIDEKI2RlZmluZSBfUkVHRVhfSU5DTFVERV9MSU1JVFNfSCAxCiNkZWZpbmUgX1JF R0VYX0xBUkdFX09GRlNFVFMgMQojZGVmaW5lIHJlX3N5bnRheF9vcHRpb25zIHJwbF9yZV9zeW50 YXhfb3B0aW9ucwojZGVmaW5lIHJlX3NldF9zeW50YXggcnBsX3JlX3NldF9zeW50YXgKI2RlZmlu ZSByZV9jb21waWxlX3BhdHRlcm4gcnBsX3JlX2NvbXBpbGVfcGF0dGVybgojZGVmaW5lIHJlX2Nv bXBpbGVfZmFzdG1hcCBycGxfcmVfY29tcGlsZV9mYXN0bWFwCiNkZWZpbmUgcmVfc2VhcmNoIHJw bF9yZV9zZWFyY2gKI2RlZmluZSByZV9zZWFyY2hfMiBycGxfcmVfc2VhcmNoXzIKI2RlZmluZSBy ZV9tYXRjaCBycGxfcmVfbWF0Y2gKI2RlZmluZSByZV9tYXRjaF8yIHJwbF9yZV9tYXRjaF8yCiNk ZWZpbmUgcmVfc2V0X3JlZ2lzdGVycyBycGxfcmVfc2V0X3JlZ2lzdGVycwojZGVmaW5lIHJlX2Nv bXAgcnBsX3JlX2NvbXAKI2RlZmluZSByZV9leGVjIHJwbF9yZV9leGVjCiNkZWZpbmUgcmVnY29t cCBycGxfcmVnY29tcAojZGVmaW5lIHJlZ2V4ZWMgcnBsX3JlZ2V4ZWMKI2RlZmluZSByZWdlcnJv ciBycGxfcmVnZXJyb3IKI2RlZmluZSByZWdmcmVlIHJwbF9yZWdmcmVlCiNkZWZpbmUgSEFWRV9E RUNMX0lTQkxBTksgMAojZGVmaW5lIFJFTkFNRV9UUkFJTElOR19TTEFTSF9ERVNUX0JVRyAxCiNk ZWZpbmUgUkVOQU1FX1RSQUlMSU5HX1NMQVNIX1NPVVJDRV9CVUcgMQojZGVmaW5lIFJFTkFNRV9E RVNUX0VYSVNUU19CVUcgMQojZGVmaW5lIEdOVUxJQl9URVNUX1JFTkFNRSAxCiNkZWZpbmUgR05V TElCX1RFU1RfUk1ESVIgMQojZGVmaW5lIEdOVUxJQl9URVNUX1NFTEVDVCAxCiNkZWZpbmUgR05V TElCX1RFU1RfU0VORCAxCiNkZWZpbmUgR05VTElCX1RFU1RfU0VORFRPIDEKI2RlZmluZSBHTlVM SUJfVEVTVF9TRVRFTlYgMQojZGVmaW5lIEdOVUxJQl9URVNUX1NFVFNPQ0tPUFQgMQojZGVmaW5l IEdOVUxJQl9URVNUX1NIVVRET1dOIDEKI2RlZmluZSBHTlVMSUJfVEVTVF9TT0NLRVQgMQoKY29u ZmlndXJlOiBleGl0IDEK --0000000000001b381c0575171327--