Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vQwDV-002VMF-1y for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Dec 2025 23:25:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vQwDU-00GzsY-05 for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Dec 2025 23:25:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vQwDT-00GzsP-1X for pgsql-hackers@lists.postgresql.org; Wed, 03 Dec 2025 23:24:59 +0000 Received: from mail-lj1-x22b.google.com ([2a00:1450:4864:20::22b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vQwDR-00305T-0R for pgsql-hackers@lists.postgresql.org; Wed, 03 Dec 2025 23:24:59 +0000 Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-37d96f97206so2576101fa.3 for ; Wed, 03 Dec 2025 15:24:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764804291; x=1765409091; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=PYLTKOrZ2TGMl9NnqBvRgZ1WoihznX3+CFKf1mjekOs=; b=bd1GbvqeCzytZi9ey0uCw7CmjReInEVTInmOuWTGeUUIqvG8NVmQkBxrBpSBRmKiJo j8AMioIblUwQxGB2eGOI6SOgGVXrAuw0AoktbapwdF47cAojQsGVn5fZfCxOttD/snJY XLhxWZaSpIOolH2uUYAVzhSRYXux6Vsl2dfTV+tmF8t422v2NyJ2RV6vpdmoSJVBa7mx bJzGxe5WjKtEG4Z3Y7u5E8jcx1iLplbqxL7Bm55mHIQGYJE7XuU6UbngfXJSPByoXgh7 j+++wn5qyaPmaiN2Y9yG3lukzAZXCwSqHf9ducPM2XhmSearGKf77LREuhSug3WVItv2 c1Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764804291; x=1765409091; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PYLTKOrZ2TGMl9NnqBvRgZ1WoihznX3+CFKf1mjekOs=; b=gCKyJARaTiORQwTM/mfpjx80piHFlRVztNZBaNPrWnoJrA1O0HZ68sqSn64fUKRvFY v/0lyAGhFL5Cq8PevgTaW45kDprIUHLaLEWHEY2mc+TaDyC8YDt7CGIEzSVoXNrg0Hm+ shBeX3UBOJdu3EsuKxo7sP3IJXJMMjidzGX/Y+2fFBdovtQLVzULSzVYANnfqUmfV0wy fSWWaAZ/V55KhgeuNWQZ/1dzBq5XzRasDNsshUdZdhCp/PDr1O+grOt73wi6r4/Iqyxn iWryGCmQc7mSnmwn3Q5UDen/xLLZItoSkuO7VPEvWb2M94ypU3WFDuYVzHKZ0CIoHGZS Xd3A== X-Forwarded-Encrypted: i=1; AJvYcCW8MlLN2b71B4ftQX2/8ucJPpzpPlhlt6lfDTKTMFtuIfPy2dGJ/oR3vrKr3zdpEGywIq4+2l7Q2raZm7DK@lists.postgresql.org X-Gm-Message-State: AOJu0YzVflNlKUhzAtfkyA4brqxmIp6luMZgH+rZfyOYrMd/w9x45Myw WckngMJbTvKQxLO3RccFSplur7ailC1v5/j0neltX9oDvql9s1LIUBwprHH6zPPVQm4Ou3SboVr EH1OSezGZ/ygz8wOHesvbd9HPhPO0h+I= X-Gm-Gg: ASbGnctye38RSdzOgMrcd5KfPacyh5ALpLqeajL0T0pkiGDtsJwv7JtRvCuACbaK+vl txu7XVHZk51bn6h2Gn/b3dt6p1qaBFY0vaG+sY+9apbsIfj89NL7mSCmkQRaqh6DAQ/9Q81iyrx +LGwvjjlVgceEICTBWoaFqiI2OBCo5zIeKUfRkBcYF3X0E2Ndl1aKZ0cDvf6yhnJzrfFExl9G+w +44G3poJ0k3r/KljwbO83rhpTb2BvJ4dIEb+JMmZV1kLc7T9U2NEOnoi5FrRag7QqTY0cg= X-Google-Smtp-Source: AGHT+IHwXmSDrVpOzxWVnj/jfeYbDfIrj8Ma1bVk9wCT8/ipJ/HRpvmoCMm0EdqbUKAyK/seILv/Zj6HMSHsTdCqshk= X-Received: by 2002:a05:6512:1315:b0:595:9d90:5dc8 with SMTP id 2adb3069b0e04-597d3ff1f31mr1533998e87.49.1764804290281; Wed, 03 Dec 2025 15:24:50 -0800 (PST) MIME-Version: 1.0 References: <94ECEF6E-681B-40DF-8F6B-4CABE4CDB96A@gmail.com> <202512031432.cpvnk5irwygr@alvherre.pgsql> In-Reply-To: <202512031432.cpvnk5irwygr@alvherre.pgsql> From: Chao Li Date: Thu, 4 Dec 2025 07:24:36 +0800 X-Gm-Features: AWmQ_bkeFSguI1RKVO8ci_KPrjTu3Q0KYld4eC7rP1Asjt0FhMYmQb_fB7KohDU Message-ID: Subject: Re: Cleanup shadows variable warnings, round 1 To: =?UTF-8?Q?=C3=81lvaro_Herrera?= Cc: Peter Smith , Peter Eisentraut , Postgres hackers Content-Type: multipart/mixed; boundary="000000000000d21eb2064514843d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d21eb2064514843d Content-Type: multipart/alternative; boundary="000000000000d21eb1064514843b" --000000000000d21eb1064514843b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Dec 3, 2025 at 10:36=E2=80=AFPM =C3=81lvaro Herrera wrote: > On 2025-Dec-03, Chao Li wrote: > > > Unfortunately that doesn=E2=80=99t work for my compiler (clang on MacOS= ), > > that=E2=80=99s why I renamed =E2=80=9CI" to =E2=80=9Cu=E2=80=9D. > > I think you're missing his point. He's suggesting to change not only > this variable, but also the other uses of "i" in this function. > > I'd also change "unsigned" to "unsigned int", just because I dislike > using unadorned "unsigned" as a type name (I know it's a legal type > name.) This could be left alone, I guess -- not important. > > -- > =C3=81lvaro Herrera PostgreSQL Developer =E2=80=94 > https://www.EnterpriseDB.com/ I misunderstood Peter's message yesterday. I have addressed both comments (changing all "for" and changing "unsigned" to "unsigned int") in v4. On Wed, Dec 3, 2025 at 11:17=E2=80=AFPM Andres Freund = wrote: > > On 2025-12-03 10:28:36 +0800, Chao Li wrote: > > I know -Wshadow=3Dcompatible-local is not supported by all compilers, s= ome > > compilers may fallback to -Wshadow and some may just ignore it. This > patch > > set has cleaned up all shadow-variable warnings, once the cleanup is > done, > > in theory, we should be able to enable -Wshadow. > > > > 0001 - simple cases of local variable shadowing local variable by > changing > > inner variable to for loop variable (also need to rename the for loop > var) > > 0002 - simple cases of local variable shadowing local variable by > renaming > > inner variable > > 0003 - simple cases of local variable shadowing local variable by > renaming > > outer variable. In this commit, outer local variables are used much les= s > > than inner variables, thus renaming outer is simpler than renaming inne= r. > > 0004 - still local shadows local, but caused by a macro definition, on= ly > > in inval.c > > 0005 - cases of global wal_level and wal_segment_size shadow local ones= , > > fixed by renaming local variables > > 0006 - in xlogrecovery.c, some static file-scope variables shadow local > > variables, fixed by renaming local variables > > 0007 - cases of global progname shadows local, fixed by renaming local = to > > myprogname > > 0008 - in file_ops.c, some static file-scope variables shadow local, > fixed > > by renaming local variables > > 0009 - simple cases of local variables are shadowed by global, fixed by > > renaming local variables > > 0010 - a few more cases of static file-scope variables shadow local > > variables, fixed by renaming local variables > > 0011 - cases of global conn shadows local variables, fixed by renaming > > local conn to myconn > > 0012 - fixed shadowing in ecpg.header > > 0013 - fixed shadowing in all time-related modules. Heikki had a concer= n > > where there is a global named =E2=80=9Cdays=E2=80=9D, so there could be= some discussions > > for this commit. For now, I just renamed local variables to avoid > shadowing. > > This seems like a *lot* of noise / backpatching pain for relatively littl= e > gain. > I agree the patch set is large, which is why I split it into smaller commits, each independent and self-contained. The motivation is that CF=E2=80=99s CI currently fails on shadow-variable w= arnings. If you touch a file like a.c, and that file already has a legacy shadowing issue, CI will still fail your patch even if your changes are correct. Then you=E2=80=99re forced to fix unrelated shadow-variable problems just to get= a clean CI run. I=E2=80=99ve run into this myself, and it=E2=80=99s disruptive for = both patch authors and reviewers. By cleaning up all existing shadow-variable warnings now, they won=E2=80=99= t interfere with future patches, and it also allows us to enable -Wshadow by default so new shadowing issues won=E2=80=99t be introduced. On Wed, Dec 3, 2025 at 11:17=E2=80=AFPM Andres Freund = wrote: > > > /* > > - * Find a string representation for wal_level > > + * Find a string representation for wallevel > > */ > > static const char * > > -get_wal_level_string(int wal_level) > > +get_wal_level_string(int wallevel) > > { > > const struct config_enum_entry *entry; > > - const char *wal_level_str =3D "?"; > > + const char *wallevel_str =3D "?"; > > This sounds like it's talking about walls not, the WAL. > > Fixed in v4. V4 addressed all comments received so far, and fixed a mistake that caused CI failure. Best regards, Chao Li (Evan) --------------------- HighGo Software Co., Ltd. https://www.highgo.com/ --000000000000d21eb1064514843b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

On Wed, = Dec 3, 2025 at 10:36=E2=80=AFPM =C3=81lvaro Herrera <alvherre@kurilemu.de> wrote:
On 2025-Dec-03, Chao Li wrote:

> Unfortunately that doesn=E2=80=99t work for my compiler (clang on MacO= S),
> that=E2=80=99s why I renamed =E2=80=9CI" to =E2=80=9Cu=E2=80=9D.<= br>
I think you're missing his point.=C2=A0 He's suggesting to change n= ot only
this variable, but also the other uses of "i" in this function.
I'd also change "unsigned" to "unsigned int", just = because I dislike
using unadorned "unsigned" as a type name (I know it's a lega= l type
name.)=C2=A0 This could be left alone, I guess -- not important.

--
=C3=81lvaro Herrera=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PostgreSQL Developer= =C2=A0 =E2=80=94=C2=A0 https://www.EnterpriseDB.com/
I misunderstood Peter's message yesterday. I have add= ressed both comments (changing all "for" and changing=C2=A0"= unsigned" to "unsigned int") in v4.

On Wed, Dec 3, 2025 at 11:17=E2=80= =AFPM Andres Freund <andres@anaraz= el.de> wrote:

On 2025-12-03 10:28:36 +0800, Chao Li wrote:
> I know -Wshad= ow=3Dcompatible-local is not supported by all compilers, some
> compi= lers may fallback to -Wshadow and some may just ignore it. This patch
&g= t; set has cleaned up all shadow-variable warnings, once the cleanup is don= e,
> in theory, we should be able to enable -Wshadow.
>
>= 0001 - simple cases of local variable shadowing local variable by changing=
> inner variable to for loop variable (also need to rename the for l= oop var)
> 0002 - simple cases of local variable shadowing local vari= able by renaming
>=C2=A0 inner variable
> 0003 - simple cases o= f local variable shadowing local variable by renaming
> outer variabl= e. In this commit, outer local variables are used much less
> than in= ner variables, thus renaming outer is simpler than renaming inner.
> = 0004 -=C2=A0 still local shadows local, but caused by a macro definition, o= nly
> in inval.c
> 0005 - cases of global wal_level and wal_seg= ment_size shadow local ones,
> fixed by renaming local variables
&= gt; 0006 - in xlogrecovery.c, some static file-scope variables shadow local=
> variables, fixed by renaming local variables
> 0007 - cases = of global progname shadows local, fixed by renaming local to
> myprog= name
> 0008 - in file_ops.c, some static file-scope variables shadow = local, fixed
> by renaming local variables
> 0009 - simple case= s of local variables are shadowed by global, fixed by
> renaming loca= l variables
> 0010 - a few more cases of static file-scope variables = shadow local
> variables, fixed by renaming local variables
> 0= 011 - cases of global conn shadows local variables, fixed by renaming
&g= t; local conn to myconn
> 0012 - fixed shadowing in ecpg.header
&g= t; 0013 - fixed shadowing in all time-related modules. Heikki had a concern=
> where there is a global named =E2=80=9Cdays=E2=80=9D, so there cou= ld be some discussions
> for this commit. For now, I just renamed loc= al variables to avoid shadowing.

This seems like a *lot* of noise / = backpatching pain for relatively little
gain.

=C2=A0I agree the patch set is large, which is why I split = it into smaller commits, each independent and self-contained.

The motivation is that CF=E2=80=99s CI currently fails on shadow-variabl= e warnings. If you touch a file like a.c, and that file alread= y has a legacy shadowing issue, CI will still fail your patch even if your = changes are correct. Then you=E2=80=99re forced to fix unrelated shadow-var= iable problems just to get a clean CI run. I=E2=80=99ve run into this mysel= f, and it=E2=80=99s disruptive for both patch authors and reviewers.

By cleaning up all existing shadow-variable warnings now, they won=E2=80= =99t interfere with future patches, and it also allows us to enable -= Wshadow by default so new shadowing issues won=E2=80=99t be introduc= ed.


On Wed, Dec 3, 2025= at 11:17=E2=80=AFPM Andres Freund <andres@anarazel.de> wrote:

>=C2=A0 /*
> - * Find a string representat= ion for wal_level
> + * Find a string representation for wallevel
= >=C2=A0 =C2=A0*/
>=C2=A0 static const char *
> -get_wal_leve= l_string(int wal_level)
> +get_wal_level_string(int wallevel)
>= =C2=A0 {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0const struct config_enum_entry *= entry;
> -=C2=A0 =C2=A0 =C2=A0const char *wal_level_str =3D "?&q= uot;;
> +=C2=A0 =C2=A0 =C2=A0const char *wallevel_str =3D "?&quo= t;;

This sounds like it's talking about walls not, the WAL.
<= br>

Fixed in v4.
=C2=A0
V4 addressed all comments received so far, and fixed a mistake that caused= CI failure.

Best regards,

Chao Li (Evan)<= /p>

---------------------
HighGo Software Co., Ltd.
https://www.highgo.com/=
--000000000000d21eb1064514843b-- --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0001-cleanup-rename-loop-variables-to-avoid-local-shad.patch" Content-Disposition: attachment; filename="v4-0001-cleanup-rename-loop-variables-to-avoid-local-shad.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7l90 RnJvbSA4YWM0MWFkOTRiOGZlYjU3ZWVkMTc5NzBhYTQwMTAwNDlhNGY3ZDY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDA5OjIyOjQ3ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwMS8x M10gY2xlYW51cDogcmVuYW1lIGxvb3AgdmFyaWFibGVzIHRvIGF2b2lkIGxvY2FsCiBzaGFkb3dp bmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClRoaXMgY29tbWl0IGFkanVzdHMg c2V2ZXJhbCBjb2RlIGxvY2F0aW9ucyB3aGVyZSBhIGxvY2FsIHZhcmlhYmxlIHdhcwpzaGFkb3dl ZCBieSBhbm90aGVyIGluIHRoZSBzYW1lIHNjb3BlLiBUaGUgY2hhbmdlcyB1cGRhdGUgbG9vcC12 YXJpYWJsZQpuYW1lcyBpbiBiYXNlYmFja3VwX2luY3JlbWVudGFsLmMgYW5kIHBhcnNlX3Rhcmdl dC5jIHNvIHRoYXQgZWFjaAp2YXJpYWJsZSBpcyB1bmlxdWVseSBzY29wZWQgd2l0aGluIGl0cyBi bG9jay4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hnby5jb20+ClJldmlld2VkLWJ5OiBQZXRl ciBTbWl0aCA8c21pdGhwYjIyNTBAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogw4FsdmFybyBIZXJy ZXJhIDxhbHZoZXJyZUBrdXJpbGVtdS5kZT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUVvV3gya1EyeDVnTWFqOHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9pbmNyZW1lbnRh bC5jIHwgMTAgKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAg ICAgICAgICB8IDEwICsrKystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJh Y2t1cF9pbmNyZW1lbnRhbC5jIGIvc3JjL2JhY2tlbmQvYmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVt ZW50YWwuYwppbmRleCA4NTJhYjU3NzA0NS4uODQ0ZDczMTljODIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVudGFsLmMKKysrIGIvc3JjL2JhY2tlbmQv YmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVtZW50YWwuYwpAQCAtMjcwLDcgKzI3MCw2IEBAIFByZXBh cmVGb3JJbmNyZW1lbnRhbEJhY2t1cChJbmNyZW1lbnRhbEJhY2t1cEluZm8gKmliLAogCUxpc3RD ZWxsICAgKmxjOwogCVRpbWVMaW5lSGlzdG9yeUVudHJ5ICoqdGxlcDsKIAlpbnQJCQludW1fd2Fs X3JhbmdlczsKLQlpbnQJCQlpOwogCWJvb2wJCWZvdW5kX2JhY2t1cF9zdGFydF90bGkgPSBmYWxz ZTsKIAlUaW1lTGluZUlECWVhcmxpZXN0X3dhbF9yYW5nZV90bGkgPSAwOwogCVhMb2dSZWNQdHIJ ZWFybGllc3Rfd2FsX3JhbmdlX3N0YXJ0X2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwpAQCAtMzEy LDcgKzMxMSw3IEBAIFByZXBhcmVGb3JJbmNyZW1lbnRhbEJhY2t1cChJbmNyZW1lbnRhbEJhY2t1 cEluZm8gKmliLAogCSAqLwogCWV4cGVjdGVkVExFcyA9IHJlYWRUaW1lTGluZUhpc3RvcnkoYmFj a3VwX3N0YXRlLT5zdGFydHRsaSk7CiAJdGxlcCA9IHBhbGxvYzAobnVtX3dhbF9yYW5nZXMgKiBz aXplb2YoVGltZUxpbmVIaXN0b3J5RW50cnkgKikpOwotCWZvciAoaSA9IDA7IGkgPCBudW1fd2Fs X3JhbmdlczsgKytpKQorCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3dhbF9yYW5nZXM7ICsraSkK IAl7CiAJCWJhY2t1cF93YWxfcmFuZ2UgKnJhbmdlID0gbGlzdF9udGgoaWItPm1hbmlmZXN0X3dh bF9yYW5nZXMsIGkpOwogCQlib29sCQlzYXdfZWFybGllc3Rfd2FsX3JhbmdlX3RsaSA9IGZhbHNl OwpAQCAtNDAwLDcgKzM5OSw3IEBAIFByZXBhcmVGb3JJbmNyZW1lbnRhbEJhY2t1cChJbmNyZW1l bnRhbEJhY2t1cEluZm8gKmliLAogCSAqIGFueXRoaW5nIGhlcmUuIEhvd2V2ZXIsIGlmIHRoZXJl J3MgYSBwcm9ibGVtIHN0YXJpbmcgdXMgcmlnaHQgaW4gdGhlCiAJICogZmFjZSwgaXQncyBiZXN0 IHRvIHJlcG9ydCBpdCwgc28gd2UgZG8uCiAJICovCi0JZm9yIChpID0gMDsgaSA8IG51bV93YWxf cmFuZ2VzOyArK2kpCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fd2FsX3JhbmdlczsgKytpKQog CXsKIAkJYmFja3VwX3dhbF9yYW5nZSAqcmFuZ2UgPSBsaXN0X250aChpYi0+bWFuaWZlc3Rfd2Fs X3JhbmdlcywgaSk7CiAKQEAgLTU5NSwxNSArNTk0LDE0IEBAIFByZXBhcmVGb3JJbmNyZW1lbnRh bEJhY2t1cChJbmNyZW1lbnRhbEJhY2t1cEluZm8gKmliLAogCiAJCQl3aGlsZSAoMSkKIAkJCXsK LQkJCQl1bnNpZ25lZAluYmxvY2tzOwotCQkJCXVuc2lnbmVkCWk7CisJCQkJdW5zaWduZWQgaW50 IG5ibG9ja3M7CiAKIAkJCQluYmxvY2tzID0gQmxvY2tSZWZUYWJsZVJlYWRlckdldEJsb2Nrcyhy ZWFkZXIsIGJsb2NrcywKIAkJCQkJCQkJCQkJCQkgICBCTE9DS1NfUEVSX1JFQUQpOwogCQkJCWlm IChuYmxvY2tzID09IDApCiAJCQkJCWJyZWFrOwogCi0JCQkJZm9yIChpID0gMDsgaSA8IG5ibG9j a3M7ICsraSkKKwkJCQlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG5ibG9ja3M7ICsraSkK IAkJCQkJQmxvY2tSZWZUYWJsZU1hcmtCbG9ja01vZGlmaWVkKGliLT5icnRhYiwgJnJsb2NhdG9y LAogCQkJCQkJCQkJCQkJICAgZm9ya251bSwgYmxvY2tzW2ldKTsKIAkJCX0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4uMDQ2Zjk2ZDQxMzIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTE2MDksMTAgKzE2MDksOSBAQCBleHBhbmRSZWNvcmRWYXJp YWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhciAqdmFyLCBpbnQgbGV2ZWxzdXApCiAJCQkJCSAq IHN1YnNlbGVjdCBtdXN0IGhhdmUgdGhhdCBvdXRlciBsZXZlbCBhcyBwYXJlbnQuCiAJCQkJCSAq LwogCQkJCQlQYXJzZVN0YXRlCW15cHN0YXRlID0gezB9OwotCQkJCQlJbmRleAkJbGV2ZWxzdXA7 CiAKIAkJCQkJLyogdGhpcyBsb29wIG11c3Qgd29yaywgc2luY2UgR2V0UlRFQnlSYW5nZVRhYmxl UG9zbiBkaWQgKi8KLQkJCQkJZm9yIChsZXZlbHN1cCA9IDA7IGxldmVsc3VwIDwgbmV0bGV2ZWxz dXA7IGxldmVsc3VwKyspCisJCQkJCWZvciAoSW5kZXggbGV2ZWwgPSAwOyBsZXZlbCA8IG5ldGxl dmVsc3VwOyBsZXZlbCsrKQogCQkJCQkJcHN0YXRlID0gcHN0YXRlLT5wYXJlbnRQYXJzZVN0YXRl OwogCQkJCQlteXBzdGF0ZS5wYXJlbnRQYXJzZVN0YXRlID0gcHN0YXRlOwogCQkJCQlteXBzdGF0 ZS5wX3J0YWJsZSA9IHJ0ZS0+c3VicXVlcnktPnJ0YWJsZTsKQEAgLTE2NjcsMTIgKzE2NjYsMTEg QEAgZXhwYW5kUmVjb3JkVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBWYXIgKnZhciwgaW50 IGxldmVsc3VwKQogCQkJCQkgKiBjb3VsZCBiZSBhbiBvdXRlciBDVEUgKGNvbXBhcmUgU1VCUVVF UlkgY2FzZSBhYm92ZSkuCiAJCQkJCSAqLwogCQkJCQlQYXJzZVN0YXRlCW15cHN0YXRlID0gezB9 OwotCQkJCQlJbmRleAkJbGV2ZWxzdXA7CiAKIAkJCQkJLyogdGhpcyBsb29wIG11c3Qgd29yaywg c2luY2UgR2V0Q1RFRm9yUlRFIGRpZCAqLwotCQkJCQlmb3IgKGxldmVsc3VwID0gMDsKLQkJCQkJ CSBsZXZlbHN1cCA8IHJ0ZS0+Y3RlbGV2ZWxzdXAgKyBuZXRsZXZlbHN1cDsKLQkJCQkJCSBsZXZl bHN1cCsrKQorCQkJCQlmb3IgKEluZGV4IGxldmVsID0gMDsKKwkJCQkJCSBsZXZlbCA8IHJ0ZS0+ Y3RlbGV2ZWxzdXAgKyBuZXRsZXZlbHN1cDsKKwkJCQkJCSBsZXZlbCsrKQogCQkJCQkJcHN0YXRl ID0gcHN0YXRlLT5wYXJlbnRQYXJzZVN0YXRlOwogCQkJCQlteXBzdGF0ZS5wYXJlbnRQYXJzZVN0 YXRlID0gcHN0YXRlOwogCQkJCQlteXBzdGF0ZS5wX3J0YWJsZSA9ICgoUXVlcnkgKikgY3RlLT5j dGVxdWVyeSktPnJ0YWJsZTsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0004-cleanup-fix-macro-induced-variable-shadowing-in-i.patch" Content-Disposition: attachment; filename="v4-0004-cleanup-fix-macro-induced-variable-shadowing-in-i.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7lg3 RnJvbSA3MTRmNTE3OGU0YWYxNzljZjdlMWVkYjRhZWE1NzcxY2I3ZDRiYWIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDEyOjA4OjAzICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwNC8x M10gY2xlYW51cDogZml4IG1hY3JvLWluZHVjZWQgdmFyaWFibGUgc2hhZG93aW5nIGluCiBpbnZh bC5jCgpUaGlzIGNvbW1pdCByZXNvbHZlcyBhIHNoYWRvd2luZyBpc3N1ZSBpbiBpbnZhbC5jIHdo ZXJlIHZhcmlhYmxlcyBkZWZpbmVkCmluc2lkZSB0aGUgUHJvY2Vzc01lc3NhZ2VTdWJHcm91cCBh bmQgUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpIG1hY3Jvcwpjb25mbGljdGVkIHdpdGggYW4g ZXhpc3RpbmcgbG9jYWwgbmFtZS4gVGhlIGZpeCByZW5hbWVzIHRoZSBtYWNyby1zY29wZWQKdmFy aWFibGUgc28gaXQgbm8gbG9uZ2VyIHNoYWRvd3MgdGhlIGxvY2FsIHZhcmlhYmxlIGF0IHRoZSBj YWxsIHNpdGUuCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJE VGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2ludmFsLmMgfCA0NCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9pbnZhbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv aW52YWwuYwppbmRleCAwNmY3MzZjYWI0NS4uMzBiZjc5ZmIxYzEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2ludmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv aW52YWwuYwpAQCAtMzg3LDcgKzM4Nyw3IEBAIEFwcGVuZEludmFsaWRhdGlvbk1lc3NhZ2VTdWJH cm91cChJbnZhbGlkYXRpb25Nc2dzR3JvdXAgKmRlc3QsCiAJCWludAkJX2VuZG1zZyA9IChncm91 cCktPm5leHRtc2dbc3ViZ3JvdXBdOyBcCiAJCWZvciAoOyBfbXNnaW5kZXggPCBfZW5kbXNnOyBf bXNnaW5kZXgrKykgXAogCQl7IFwKLQkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZyA9 IFwKKwkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKl9tc2cgPSBcCiAJCQkJJkludmFsTWVz c2FnZUFycmF5c1tzdWJncm91cF0ubXNnc1tfbXNnaW5kZXhdOyBcCiAJCQljb2RlRnJhZ21lbnQ7 IFwKIAkJfSBcCkBAIC00MDMsNyArNDAzLDcgQEAgQXBwZW5kSW52YWxpZGF0aW9uTWVzc2FnZVN1 Ykdyb3VwKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZGVzdCwKIAlkbyB7IFwKIAkJaW50CQluID0g TnVtTWVzc2FnZXNJblN1Ykdyb3VwKGdyb3VwLCBzdWJncm91cCk7IFwKIAkJaWYgKG4gPiAwKSB7 IFwKLQkJCVNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZ3MgPSBcCisJCQlTaGFyZWRJbnZh bGlkYXRpb25NZXNzYWdlICpfbXNncyA9IFwKIAkJCQkmSW52YWxNZXNzYWdlQXJyYXlzW3N1Ymdy b3VwXS5tc2dzWyhncm91cCktPmZpcnN0bXNnW3N1Ymdyb3VwXV07IFwKIAkJCWNvZGVGcmFnbWVu dDsgXAogCQl9IFwKQEAgLTQ3OSw5ICs0NzksOSBAQCBBZGRSZWxjYWNoZUludmFsaWRhdGlvbk1l c3NhZ2UoSW52YWxpZGF0aW9uTXNnc0dyb3VwICpncm91cCwKIAkgKiBkb24ndCBuZWVkIHRvIGFk ZCBpbmRpdmlkdWFsIG9uZXMgd2hlbiBpdCBpcyBwcmVzZW50LgogCSAqLwogCVByb2Nlc3NNZXNz YWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywKLQkJCQkJCSAgIGlmIChtc2ctPnJjLmlk ID09IFNIQVJFRElOVkFMUkVMQ0FDSEVfSUQgJiYKLQkJCQkJCQkgICAobXNnLT5yYy5yZWxJZCA9 PSByZWxJZCB8fAotCQkJCQkJCQltc2ctPnJjLnJlbElkID09IEludmFsaWRPaWQpKQorCQkJCQkJ ICAgaWYgKF9tc2ctPnJjLmlkID09IFNIQVJFRElOVkFMUkVMQ0FDSEVfSUQgJiYKKwkJCQkJCQkg ICAoX21zZy0+cmMucmVsSWQgPT0gcmVsSWQgfHwKKwkJCQkJCQkJX21zZy0+cmMucmVsSWQgPT0g SW52YWxpZE9pZCkpCiAJCQkJCQkgICByZXR1cm4pOwogCiAJLyogT0ssIGFkZCB0aGUgaXRlbSAq LwpAQCAtNTA5LDkgKzUwOSw5IEBAIEFkZFJlbHN5bmNJbnZhbGlkYXRpb25NZXNzYWdlKEludmFs aWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAKIAkvKiBEb24ndCBhZGQgYSBkdXBsaWNhdGUgaXRl bS4gKi8KIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJ CQkgICBpZiAobXNnLT5yYy5pZCA9PSBTSEFSRURJTlZBTFJFTFNZTkNfSUQgJiYKLQkJCQkJCQkg ICAobXNnLT5yYy5yZWxJZCA9PSByZWxJZCB8fAotCQkJCQkJCQltc2ctPnJjLnJlbElkID09IElu dmFsaWRPaWQpKQorCQkJCQkJICAgaWYgKF9tc2ctPnJjLmlkID09IFNIQVJFRElOVkFMUkVMU1lO Q19JRCAmJgorCQkJCQkJCSAgIChfbXNnLT5yYy5yZWxJZCA9PSByZWxJZCB8fAorCQkJCQkJCQlf bXNnLT5yYy5yZWxJZCA9PSBJbnZhbGlkT2lkKSkKIAkJCQkJCSAgIHJldHVybik7CiAKIAkvKiBP SywgYWRkIHRoZSBpdGVtICovCkBAIC01MzgsOCArNTM4LDggQEAgQWRkU25hcHNob3RJbnZhbGlk YXRpb25NZXNzYWdlKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAJLyogRG9uJ3QgYWRk IGEgZHVwbGljYXRlIGl0ZW0gKi8KIAkvKiBXZSBhc3N1bWUgZGJJZCBuZWVkIG5vdCBiZSBjaGVj a2VkIGJlY2F1c2UgaXQgd2lsbCBuZXZlciBjaGFuZ2UgKi8KIAlQcm9jZXNzTWVzc2FnZVN1Ykdy b3VwKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJCQkgICBpZiAobXNnLT5zbi5pZCA9PSBTSEFS RURJTlZBTFNOQVBTSE9UX0lEICYmCi0JCQkJCQkJICAgbXNnLT5zbi5yZWxJZCA9PSByZWxJZCkK KwkJCQkJCSAgIGlmIChfbXNnLT5zbi5pZCA9PSBTSEFSRURJTlZBTFNOQVBTSE9UX0lEICYmCisJ CQkJCQkJICAgX21zZy0+c24ucmVsSWQgPT0gcmVsSWQpCiAJCQkJCQkgICByZXR1cm4pOwogCiAJ LyogT0ssIGFkZCB0aGUgaXRlbSAqLwpAQCAtNTc0LDggKzU3NCw4IEBAIHN0YXRpYyB2b2lkCiBQ cm9jZXNzSW52YWxpZGF0aW9uTWVzc2FnZXMoSW52YWxpZGF0aW9uTXNnc0dyb3VwICpncm91cCwK IAkJCQkJCQl2b2lkICgqZnVuYykgKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1zZykpCiB7 Ci0JUHJvY2Vzc01lc3NhZ2VTdWJHcm91cChncm91cCwgQ2F0Q2FjaGVNc2dzLCBmdW5jKG1zZykp OwotCVByb2Nlc3NNZXNzYWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywgZnVuYyhtc2cp KTsKKwlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwKGdyb3VwLCBDYXRDYWNoZU1zZ3MsIGZ1bmMoX21z ZykpOworCVByb2Nlc3NNZXNzYWdlU3ViR3JvdXAoZ3JvdXAsIFJlbENhY2hlTXNncywgZnVuYyhf bXNnKSk7CiB9CiAKIC8qCkBAIC01ODYsOCArNTg2LDggQEAgc3RhdGljIHZvaWQKIFByb2Nlc3NJ bnZhbGlkYXRpb25NZXNzYWdlc011bHRpKEludmFsaWRhdGlvbk1zZ3NHcm91cCAqZ3JvdXAsCiAJ CQkJCQkJCSB2b2lkICgqZnVuYykgKGNvbnN0IFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UgKm1z Z3MsIGludCBuKSkKIHsKLQlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoZ3JvdXAsIENhdENh Y2hlTXNncywgZnVuYyhtc2dzLCBuKSk7Ci0JUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKGdy b3VwLCBSZWxDYWNoZU1zZ3MsIGZ1bmMobXNncywgbikpOworCVByb2Nlc3NNZXNzYWdlU3ViR3Jv dXBNdWx0aShncm91cCwgQ2F0Q2FjaGVNc2dzLCBmdW5jKF9tc2dzLCBuKSk7CisJUHJvY2Vzc01l c3NhZ2VTdWJHcm91cE11bHRpKGdyb3VwLCBSZWxDYWNoZU1zZ3MsIGZ1bmMoX21zZ3MsIG4pKTsK IH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA1MywyNSArMTA1MywyNSBAQCB4YWN0R2V0Q29tbWl0dGVk SW52YWxpZGF0aW9uTWVzc2FnZXMoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSAqKm1zZ3MsCiAJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZ0cmFuc0ludmFsSW5mby0+UHJpb3JDbWRJbnZh bGlkTXNncywKIAkJCQkJCQkJQ2F0Q2FjaGVNc2dzLAogCQkJCQkJCQkobWVtY3B5KG1zZ2FycmF5 ICsgbm1zZ3MsCi0JCQkJCQkJCQkJbXNncywKKwkJCQkJCQkJCQlfbXNncywKIAkJCQkJCQkJCQlu ICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UpKSwKIAkJCQkJCQkJIG5tc2dzICs9 IG4pKTsKIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoJnRyYW5zSW52YWxJbmZvLT5paS5D dXJyZW50Q21kSW52YWxpZE1zZ3MsCiAJCQkJCQkJCUNhdENhY2hlTXNncywKIAkJCQkJCQkJKG1l bWNweShtc2dhcnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3Ms CiAJCQkJCQkJCQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJ CQkJCSBubXNncyArPSBuKSk7CiAJUHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZ0cmFuc0lu dmFsSW5mby0+UHJpb3JDbWRJbnZhbGlkTXNncywKIAkJCQkJCQkJUmVsQ2FjaGVNc2dzLAogCQkJ CQkJCQkobWVtY3B5KG1zZ2FycmF5ICsgbm1zZ3MsCi0JCQkJCQkJCQkJbXNncywKKwkJCQkJCQkJ CQlfbXNncywKIAkJCQkJCQkJCQluICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2Up KSwKIAkJCQkJCQkJIG5tc2dzICs9IG4pKTsKIAlQcm9jZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGko JnRyYW5zSW52YWxJbmZvLT5paS5DdXJyZW50Q21kSW52YWxpZE1zZ3MsCiAJCQkJCQkJCVJlbENh Y2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dhcnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1z Z3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJCQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlk YXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNncyArPSBuKSk7CiAJQXNzZXJ0KG5tc2dzID09 IG51bW1zZ3MpOwpAQCAtMTEwOSwxMyArMTEwOSwxMyBAQCBpbnBsYWNlR2V0SW52YWxpZGF0aW9u TWVzc2FnZXMoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSAqKm1zZ3MsCiAJUHJvY2Vzc01lc3Nh Z2VTdWJHcm91cE11bHRpKCZpbnBsYWNlSW52YWxJbmZvLT5DdXJyZW50Q21kSW52YWxpZE1zZ3Ms CiAJCQkJCQkJCUNhdENhY2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dhcnJheSArIG5tc2dz LAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJCQkJbiAqIHNpemVv ZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNncyArPSBuKSk7CiAJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKCZpbnBsYWNlSW52YWxJbmZvLT5DdXJyZW50Q21k SW52YWxpZE1zZ3MsCiAJCQkJCQkJCVJlbENhY2hlTXNncywKIAkJCQkJCQkJKG1lbWNweShtc2dh cnJheSArIG5tc2dzLAotCQkJCQkJCQkJCW1zZ3MsCisJCQkJCQkJCQkJX21zZ3MsCiAJCQkJCQkJ CQkJbiAqIHNpemVvZihTaGFyZWRJbnZhbGlkYXRpb25NZXNzYWdlKSksCiAJCQkJCQkJCSBubXNn cyArPSBuKSk7CiAJQXNzZXJ0KG5tc2dzID09IG51bW1zZ3MpOwpAQCAtMTk1NSwxMCArMTk1NSwx MCBAQCBMb2dMb2dpY2FsSW52YWxpZGF0aW9ucyh2b2lkKQogCQlYTG9nQmVnaW5JbnNlcnQoKTsK IAkJWExvZ1JlZ2lzdGVyRGF0YSgmeGxyZWMsIE1pblNpemVPZlhhY3RJbnZhbHMpOwogCQlQcm9j ZXNzTWVzc2FnZVN1Ykdyb3VwTXVsdGkoZ3JvdXAsIENhdENhY2hlTXNncywKLQkJCQkJCQkJCVhM b2dSZWdpc3RlckRhdGEobXNncywKKwkJCQkJCQkJCVhMb2dSZWdpc3RlckRhdGEoX21zZ3MsCiAJ CQkJCQkJCQkJCQkJIG4gKiBzaXplb2YoU2hhcmVkSW52YWxpZGF0aW9uTWVzc2FnZSkpKTsKIAkJ UHJvY2Vzc01lc3NhZ2VTdWJHcm91cE11bHRpKGdyb3VwLCBSZWxDYWNoZU1zZ3MsCi0JCQkJCQkJ CQlYTG9nUmVnaXN0ZXJEYXRhKG1zZ3MsCisJCQkJCQkJCQlYTG9nUmVnaXN0ZXJEYXRhKF9tc2dz LAogCQkJCQkJCQkJCQkJCSBuICogc2l6ZW9mKFNoYXJlZEludmFsaWRhdGlvbk1lc3NhZ2UpKSk7 CiAJCVhMb2dJbnNlcnQoUk1fWEFDVF9JRCwgWExPR19YQUNUX0lOVkFMSURBVElPTlMpOwogCX0K LS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0003-cleanup-rename-outer-variables-to-avoid-shadowing.patch" Content-Disposition: attachment; filename="v4-0003-cleanup-rename-outer-variables-to-avoid-shadowing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7lf2 RnJvbSA1MTFjMjIyZmM3YjJlZjczYmM1OGViNDAzZjAzZmIzODZkNDRmNTZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDExOjUxOjAxICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwMy8x M10gY2xlYW51cDogcmVuYW1lIG91dGVyIHZhcmlhYmxlcyB0byBhdm9pZCBzaGFkb3dpbmcKIGlu bmVyIGxvY2FscwoKVGhpcyBjb21taXQgcmVzb2x2ZXMgc2V2ZXJhbCBjYXNlcyB3aGVyZSBhbiBv dXRlci1zY29wZSB2YXJpYWJsZSBzaGFyZWQKYSBuYW1lIHdpdGggYSBtb3JlIGZyZXF1ZW50bHkg dXNlZCBpbm5lciB2YXJpYWJsZS4gVGhlIGZpeGVzIHJlbmFtZSB0aGUKb3V0ZXIgdmFyaWFibGVz IHNvIGVhY2ggaWRlbnRpZmllciByZW1haW5zIGRpc3RpbmN0IHdpdGhpbiBpdHMgc2NvcGUuCgpB dXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rn ci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRt UUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5j ICAgICB8IDEwICsrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5j ICAgICB8ICA0ICsrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2VxdWl2Y2xhc3MuYyB8 ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRkZXNjLmMgICAgIHwgIDYg KysrLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jICAgfCAgNiArKyst LS0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZld2FsLmMgICB8ICA0ICsrLS0KIDYg ZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCBjNzViNzEzMWVkNy4uMjk2ZGU3NjQ3YmMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC0yMTE5LDcgKzIxMTksNyBAQCBwZ19n ZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAlPYmplY3RBZGRyZXNzIGFkZHI7 CiAJVHVwbGVEZXNjCXR1cGRlc2M7CiAJRGF0dW0JCXZhbHVlc1szXTsKLQlib29sCQludWxsc1sz XTsKKwlib29sCQlpc251bGxzWzNdOwogCUhlYXBUdXBsZQlodHVwOwogCVJlbGF0aW9uCXJlbGF0 aW9uOwogCkBAIC0yMzc0LDExICsyMzc0LDExIEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19G VU5DVElPTl9BUkdTKQogCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oYWRkci5jbGFzc0lk KTsKIAl2YWx1ZXNbMV0gPSBPYmplY3RJZEdldERhdHVtKGFkZHIub2JqZWN0SWQpOwogCXZhbHVl c1syXSA9IEludDMyR2V0RGF0dW0oYWRkci5vYmplY3RTdWJJZCk7Ci0JbnVsbHNbMF0gPSBmYWxz ZTsKLQludWxsc1sxXSA9IGZhbHNlOwotCW51bGxzWzJdID0gZmFsc2U7CisJaXNudWxsc1swXSA9 IGZhbHNlOworCWlzbnVsbHNbMV0gPSBmYWxzZTsKKwlpc251bGxzWzJdID0gZmFsc2U7CiAKLQlo dHVwID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCWh0dXAgPSBo ZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBpc251bGxzKTsKIAogCVBHX1JFVFVSTl9E QVRVTShIZWFwVHVwbGVHZXREYXR1bShodHVwKSk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3Ry YWludC5jCmluZGV4IDk5NDRlNGJkMmQxLi5iODZmOTNhZWI0ZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19jb25zdHJhaW50LmMKQEAgLTgxNCw3ICs4MTQsNyBAQCBBZGp1c3ROb3ROdWxsSW5oZXJpdGFu Y2UoT2lkIHJlbGlkLCBBdHRyTnVtYmVyIGF0dG51bSwKICAqICdpbmNsdWRlX25vaW5oJyBkZXRl cm1pbmVzIHdoZXRoZXIgdG8gaW5jbHVkZSBOTyBJTkhFUklUIGNvbnN0cmFpbnRzIG9yIG5vdC4K ICAqLwogTGlzdCAqCi1SZWxhdGlvbkdldE5vdE51bGxDb25zdHJhaW50cyhPaWQgcmVsaWQsIGJv b2wgY29va2VkLCBib29sIGluY2x1ZGVfbm9pbmgpCitSZWxhdGlvbkdldE5vdE51bGxDb25zdHJh aW50cyhPaWQgcmVsaWQsIGJvb2wgd2FudF9jb29rZWQsIGJvb2wgaW5jbHVkZV9ub2luaCkKIHsK IAlMaXN0CSAgICpub3RudWxscyA9IE5JTDsKIAlSZWxhdGlvbgljb25zdHJSZWw7CkBAIC04NDIs NyArODQyLDcgQEAgUmVsYXRpb25HZXROb3ROdWxsQ29uc3RyYWludHMoT2lkIHJlbGlkLCBib29s IGNvb2tlZCwgYm9vbCBpbmNsdWRlX25vaW5oKQogCiAJCWNvbG51bSA9IGV4dHJhY3ROb3ROdWxs Q29sdW1uKGh0dXApOwogCi0JCWlmIChjb29rZWQpCisJCWlmICh3YW50X2Nvb2tlZCkKIAkJewog CQkJQ29va2VkQ29uc3RyYWludCAqY29va2VkOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9l cXVpdmNsYXNzLmMKaW5kZXggNDQxZjEyZjZjNTAuLmQzNTBhYThhM2IwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BhdGgvZXF1aXZjbGFzcy5jCkBAIC03MzksNyArNzM5LDcgQEAgZ2V0X2VjbGFz c19mb3Jfc29ydF9leHByKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJIE9pZCBvcGNpbnR5cGUs CiAJCQkJCQkgT2lkIGNvbGxhdGlvbiwKIAkJCQkJCSBJbmRleCBzb3J0cmVmLAotCQkJCQkJIFJl bGlkcyByZWwsCisJCQkJCQkgUmVsaWRzIHJlbGlkcywKIAkJCQkJCSBib29sIGNyZWF0ZV9pdCkK IHsKIAlKb2luRG9tYWluICpqZG9tYWluOwpAQCAtNzgyLDE0ICs3ODIsMTQgQEAgZ2V0X2VjbGFz c19mb3Jfc29ydF9leHByKFBsYW5uZXJJbmZvICpyb290LAogCQlpZiAoIWVxdWFsKG9wZmFtaWxp ZXMsIGN1cl9lYy0+ZWNfb3BmYW1pbGllcykpCiAJCQljb250aW51ZTsKIAotCQlzZXR1cF9lY2xh c3NfbWVtYmVyX2l0ZXJhdG9yKCZpdCwgY3VyX2VjLCByZWwpOworCQlzZXR1cF9lY2xhc3NfbWVt YmVyX2l0ZXJhdG9yKCZpdCwgY3VyX2VjLCByZWxpZHMpOwogCQl3aGlsZSAoKGN1cl9lbSA9IGVj bGFzc19tZW1iZXJfaXRlcmF0b3JfbmV4dCgmaXQpKSAhPSBOVUxMKQogCQl7CiAJCQkvKgogCQkJ ICogSWdub3JlIGNoaWxkIG1lbWJlcnMgdW5sZXNzIHRoZXkgbWF0Y2ggdGhlIHJlcXVlc3QuCiAJ CQkgKi8KIAkJCWlmIChjdXJfZW0tPmVtX2lzX2NoaWxkICYmCi0JCQkJIWJtc19lcXVhbChjdXJf ZW0tPmVtX3JlbGlkcywgcmVsKSkKKwkJCQkhYm1zX2VxdWFsKGN1cl9lbS0+ZW1fcmVsaWRzLCBy ZWxpZHMpKQogCQkJCWNvbnRpbnVlOwogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFydGl0aW9uaW5nL3BhcnRkZXNjLmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGRl c2MuYwppbmRleCAzMjhiNGQ0NTBlNC4uNmZkNDZjZjJjOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnRpdGlvbmluZy9wYXJ0ZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmlu Zy9wYXJ0ZGVzYy5jCkBAIC0xNDYsNyArMTQ2LDcgQEAgUmVsYXRpb25CdWlsZFBhcnRpdGlvbkRl c2MoUmVsYXRpb24gcmVsLCBib29sIG9taXRfZGV0YWNoZWQpCiAJaW50CQkJaSwKIAkJCQlucGFy dHM7CiAJYm9vbAkJcmV0cmllZCA9IGZhbHNlOwotCVBhcnRpdGlvbktleSBrZXkgPSBSZWxhdGlv bkdldFBhcnRpdGlvbktleShyZWwpOworCVBhcnRpdGlvbktleSBwYXJ0a2V5ID0gUmVsYXRpb25H ZXRQYXJ0aXRpb25LZXkocmVsKTsKIAlNZW1vcnlDb250ZXh0IG5ld19wZGN4dDsKIAlNZW1vcnlD b250ZXh0IG9sZGN4dDsKIAlpbnQJCSAgICptYXBwaW5nOwpAQCAtMzA4LDcgKzMwOCw3IEBAIHJl dHJ5OgogCSAqIFRoaXMgY291bGQgZmFpbCwgYnV0IHdlIGhhdmVuJ3QgZG9uZSBhbnkgZGFtYWdl IGlmIHNvLgogCSAqLwogCWlmIChucGFydHMgPiAwKQotCQlib3VuZGluZm8gPSBwYXJ0aXRpb25f Ym91bmRzX2NyZWF0ZShib3VuZHNwZWNzLCBucGFydHMsIGtleSwgJm1hcHBpbmcpOworCQlib3Vu ZGluZm8gPSBwYXJ0aXRpb25fYm91bmRzX2NyZWF0ZShib3VuZHNwZWNzLCBucGFydHMsIHBhcnRr ZXksICZtYXBwaW5nKTsKIAogCS8qCiAJICogTm93IGJ1aWxkIHRoZSBhY3R1YWwgcmVsY2FjaGUg cGFydGl0aW9uIGRlc2NyaXB0b3IsIGNvcHlpbmcgYWxsIHRoZQpAQCAtMzI5LDcgKzMyOSw3IEBA IHJldHJ5OgogCWlmIChucGFydHMgPiAwKQogCXsKIAkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG5ld19wZGN4dCk7Ci0JCXBhcnRkZXNjLT5ib3VuZGluZm8gPSBwYXJ0aXRpb25fYm91 bmRzX2NvcHkoYm91bmRpbmZvLCBrZXkpOworCQlwYXJ0ZGVzYy0+Ym91bmRpbmZvID0gcGFydGl0 aW9uX2JvdW5kc19jb3B5KGJvdW5kaW5mbywgcGFydGtleSk7CiAKIAkJLyogSW5pdGlhbGl6ZSBj YWNoaW5nIGZpZWxkcyBmb3Igc3BlZWRpbmcgdXAgRXhlY0ZpbmRQYXJ0aXRpb24gKi8KIAkJcGFy dGRlc2MtPmxhc3RfZm91bmRfZGF0dW1faW5kZXggPSAtMTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9y ZWFkX3N0cmVhbS5jCmluZGV4IDAzMWZkZTlmNGNiLi5lZGMyMjc5ZWFkNCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vcmVhZF9zdHJlYW0uYworKysgYi9zcmMvYmFja2VuZC9z dG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jCkBAIC03ODgsNyArNzg4LDcgQEAgcmVhZF9zdHJlYW1f YmVnaW5fc21ncl9yZWxhdGlvbihpbnQgZmxhZ3MsCiAgKiB0aGUgc3RyZWFtIGVhcmx5IGF0IGFu eSB0aW1lIGJ5IGNhbGxpbmcgcmVhZF9zdHJlYW1fZW5kKCkuCiAgKi8KIEJ1ZmZlcgotcmVhZF9z dHJlYW1fbmV4dF9idWZmZXIoUmVhZFN0cmVhbSAqc3RyZWFtLCB2b2lkICoqcGVyX2J1ZmZlcl9k YXRhKQorcmVhZF9zdHJlYW1fbmV4dF9idWZmZXIoUmVhZFN0cmVhbSAqc3RyZWFtLCB2b2lkICoq cHBlcl9idWZmZXJfZGF0YSkKIHsKIAlCdWZmZXIJCWJ1ZmZlcjsKIAlpbnQxNgkJb2xkZXN0X2J1 ZmZlcl9pbmRleDsKQEAgLTkwMyw4ICs5MDMsOCBAQCByZWFkX3N0cmVhbV9uZXh0X2J1ZmZlcihS ZWFkU3RyZWFtICpzdHJlYW0sIHZvaWQgKipwZXJfYnVmZmVyX2RhdGEpCiAJQXNzZXJ0KG9sZGVz dF9idWZmZXJfaW5kZXggPj0gMCAmJgogCQkgICBvbGRlc3RfYnVmZmVyX2luZGV4IDwgc3RyZWFt LT5xdWV1ZV9zaXplKTsKIAlidWZmZXIgPSBzdHJlYW0tPmJ1ZmZlcnNbb2xkZXN0X2J1ZmZlcl9p bmRleF07Ci0JaWYgKHBlcl9idWZmZXJfZGF0YSkKLQkJKnBlcl9idWZmZXJfZGF0YSA9IGdldF9w ZXJfYnVmZmVyX2RhdGEoc3RyZWFtLCBvbGRlc3RfYnVmZmVyX2luZGV4KTsKKwlpZiAocHBlcl9i dWZmZXJfZGF0YSkKKwkJKnBwZXJfYnVmZmVyX2RhdGEgPSBnZXRfcGVyX2J1ZmZlcl9kYXRhKHN0 cmVhbSwgb2xkZXN0X2J1ZmZlcl9pbmRleCk7CiAKIAlBc3NlcnQoQnVmZmVySXNWYWxpZChidWZm ZXIpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX3JlY2VpdmV3YWwu YyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZld2FsLmMKaW5kZXggNDZlNTUzZGNl NGIuLjc4NWJmN2IxMWRjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfcmVj ZWl2ZXdhbC5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZld2FsLmMKQEAg LTI2NSw3ICsyNjUsNyBAQCBjbG9zZV9kZXN0aW5hdGlvbl9kaXIoRElSICpkZXN0X2RpciwgY2hh ciAqZGVzdF9mb2xkZXIpCiAgKiBJZiB0aGVyZSBhcmUgbm8gV0FMIGZpbGVzIGluIHRoZSBkaXJl Y3RvcnksIHJldHVybnMgSW52YWxpZFhMb2dSZWNQdHIuCiAgKi8KIHN0YXRpYyBYTG9nUmVjUHRy Ci1GaW5kU3RyZWFtaW5nU3RhcnQodWludDMyICp0bGkpCitGaW5kU3RyZWFtaW5nU3RhcnQodWlu dDMyICpwdGxpKQogewogCURJUgkJICAgKmRpcjsKIAlzdHJ1Y3QgZGlyZW50ICpkaXJlbnQ7CkBA IC00ODYsNyArNDg2LDcgQEAgRmluZFN0cmVhbWluZ1N0YXJ0KHVpbnQzMiAqdGxpKQogCiAJCVhM b2dTZWdOb09mZnNldFRvUmVjUHRyKGhpZ2hfc2Vnbm8sIDAsIFdhbFNlZ1N6LCBoaWdoX3B0cik7 CiAKLQkJKnRsaSA9IGhpZ2hfdGxpOworCQkqcHRsaSA9IGhpZ2hfdGxpOwogCQlyZXR1cm4gaGln aF9wdHI7CiAJfQogCWVsc2UKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0002-cleanup-rename-inner-variables-to-avoid-shadowing.patch" Content-Disposition: attachment; filename="v4-0002-cleanup-rename-inner-variables-to-avoid-shadowing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7ld1 RnJvbSA5ZmU5NmYyYmFiZDAyNjhjOGFlYTZkYTdiNjg4MmJkMTEzY2VjN2M5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDA5OjMyOjU4ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwMi8x M10gY2xlYW51cDogcmVuYW1lIGlubmVyIHZhcmlhYmxlcyB0byBhdm9pZCBzaGFkb3dpbmcKIGJ5 IG91dGVyIGxvY2FscwoKVGhpcyBjb21taXQgZml4ZXMgc2V2ZXJhbCBjYXNlcyB3aGVyZSBhIHZh cmlhYmxlIGRlY2xhcmVkIGluIGFuIGlubmVyCnNjb3BlIHdhcyBzaGFkb3dlZCBieSBhbiBleGlz dGluZyBsb2NhbCB2YXJpYWJsZSBpbiB0aGUgb3V0ZXIgc2NvcGUuIFRoZQpjaGFuZ2VzIHJlbmFt ZSB0aGUgaW5uZXIgdmFyaWFibGVzIHNvIGVhY2ggaWRlbnRpZmllciBpcyBkaXN0aW5jdCB3aXRo aW4KaXRzIHJlc3BlY3RpdmUgYmxvY2suCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29t PgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9 amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9icmluL2JyaW4uYyAgICAgICAgICAgICB8ICA4ICsrLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jICAgICAgICB8IDEwICsrLS0tCiBzcmMvYmFja2VuZC9j b21tYW5kcy9leHRlbnNpb24uYyAgICAgICAgICAgfCAgOCArKy0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9zY2hlbWFjbWRzLmMgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c3RhdHNjbWRzLmMgICAgICAgICAgIHwgIDYgKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYyAgICAgICAgICAgfCAyOCArKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHJpZ2dlci5jICAgICAgICAgICAgIHwgMTQgKysrLS0tLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvd2FpdC5jICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlQWdnLmMgICAgICAgICAgICAgfCAxNiArKysrLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVZhbHVlc3NjYW4uYyAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL2NyZWF0ZXBsYW4uYyAgICB8IDQ0ICsrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9iYWNr ZW5kL3N0YXRpc3RpY3MvZGVwZW5kZW5jaWVzLmMgICAgICB8IDI2ICsrKysrKy0tLS0tLS0KIHNy Yy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHMuYyAgICB8ICA2ICstLQogc3JjL2Jh Y2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgICAgICAgIHwgIDYgKy0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5jICAgICAgfCAzMCArKysrKysrLS0tLS0tLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyB8ICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvdmFybGVuYS5jICAgICAgICAgICAgfCAyMCArKysrKy0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMgICAgICAgICAgfCAgNiArLS0KIHNyYy9iaW4v cGdiZW5jaC9wZ2JlbmNoLmMgICAgICAgICAgICAgICAgICB8ICA2ICstLQogc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKy0tLS0tCiBzcmMvYmluL3Bz cWwvcHJvbXB0LmMgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0KIHNyYy9mZV91dGls cy9wcmludC5jICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrLS0tCiBzcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1jb25uZWN0LmMgICAgICAgICAgfCAgOCArKy0tCiAyMyBmaWxlcyBjaGFuZ2Vk LCAxNTQgaW5zZXJ0aW9ucygrKSwgMTUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4u YwppbmRleCBjYjMzMzE5MjFjYi4uMGFlZTBjMDEzZmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9icmluL2JyaW4uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMK QEAgLTY5NCwxNSArNjk0LDE1IEBAIGJyaW5nZXRiaXRtYXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBU SURCaXRtYXAgKnRibSkKIAkJICovCiAJCWlmIChjb25zaXN0ZW50Rm5ba2V5YXR0bm8gLSAxXS5m bl9vaWQgPT0gSW52YWxpZE9pZCkKIAkJewotCQkJRm1nckluZm8gICAqdG1wOworCQkJRm1ncklu Zm8gICAqdG1wZmk7CiAKIAkJCS8qIEZpcnN0IHRpbWUgd2Ugc2VlIHRoaXMgYXR0cmlidXRlLCBz byBubyBrZXkvbnVsbCBrZXlzLiAqLwogCQkJQXNzZXJ0KG5rZXlzW2tleWF0dG5vIC0gMV0gPT0g MCk7CiAJCQlBc3NlcnQobm51bGxrZXlzW2tleWF0dG5vIC0gMV0gPT0gMCk7CiAKLQkJCXRtcCA9 IGluZGV4X2dldHByb2NpbmZvKGlkeFJlbCwga2V5YXR0bm8sCi0JCQkJCQkJCQlCUklOX1BST0NO VU1fQ09OU0lTVEVOVCk7Ci0JCQlmbWdyX2luZm9fY29weSgmY29uc2lzdGVudEZuW2tleWF0dG5v IC0gMV0sIHRtcCwKKwkJCXRtcGZpID0gaW5kZXhfZ2V0cHJvY2luZm8oaWR4UmVsLCBrZXlhdHRu bywKKwkJCQkJCQkJCSAgQlJJTl9QUk9DTlVNX0NPTlNJU1RFTlQpOworCQkJZm1ncl9pbmZvX2Nv cHkoJmNvbnNpc3RlbnRGbltrZXlhdHRubyAtIDFdLCB0bXBmaSwKIAkJCQkJCSAgIEN1cnJlbnRN ZW1vcnlDb250ZXh0KTsKIAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0YnVpbGQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCmluZGV4 IGJlMGZkNWI3NTNkLi43ZDk3NTY1MmFkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2dpc3QvZ2lzdGJ1aWxkLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxk LmMKQEAgLTExNTgsNyArMTE1OCw3IEBAIGdpc3RidWZmZXJpbmdpbnNlcnR0dXBsZXMoR0lTVEJ1 aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIEJ1ZmZlciBidWZmZXIsIGludCBsZXZlbCwKIAkJaSA9IDA7 CiAJCWZvcmVhY2gobGMsIHNwbGl0aW5mbykKIAkJewotCQkJR0lTVFBhZ2VTcGxpdEluZm8gKnNw bGl0aW5mbyA9IGxmaXJzdChsYyk7CisJCQlHSVNUUGFnZVNwbGl0SW5mbyAqc2kgPSBsZmlyc3Qo bGMpOwogCiAJCQkvKgogCQkJICogUmVtZW1iZXIgdGhlIHBhcmVudCBvZiBlYWNoIG5ldyBjaGls ZCBwYWdlIGluIG91ciBwYXJlbnQgbWFwLgpAQCAtMTE2OSw3ICsxMTY5LDcgQEAgZ2lzdGJ1ZmZl cmluZ2luc2VydHR1cGxlcyhHSVNUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgQnVmZmVyIGJ1ZmZl ciwgaW50IGxldmVsLAogCQkJICovCiAJCQlpZiAobGV2ZWwgPiAwKQogCQkJCWdpc3RNZW1vcml6 ZVBhcmVudChidWlsZHN0YXRlLAotCQkJCQkJCQkgICBCdWZmZXJHZXRCbG9ja051bWJlcihzcGxp dGluZm8tPmJ1ZiksCisJCQkJCQkJCSAgIEJ1ZmZlckdldEJsb2NrTnVtYmVyKHNpLT5idWYpLAog CQkJCQkJCQkgICBCdWZmZXJHZXRCbG9ja051bWJlcihwYXJlbnRCdWZmZXIpKTsKIAogCQkJLyoK QEAgLTExNzksMTQgKzExNzksMTQgQEAgZ2lzdGJ1ZmZlcmluZ2luc2VydHR1cGxlcyhHSVNUQnVp bGRTdGF0ZSAqYnVpbGRzdGF0ZSwgQnVmZmVyIGJ1ZmZlciwgaW50IGxldmVsLAogCQkJICogaGFy bSkuCiAJCQkgKi8KIAkJCWlmIChsZXZlbCA+IDEpCi0JCQkJZ2lzdE1lbW9yaXplQWxsRG93bmxp bmtzKGJ1aWxkc3RhdGUsIHNwbGl0aW5mby0+YnVmKTsKKwkJCQlnaXN0TWVtb3JpemVBbGxEb3du bGlua3MoYnVpbGRzdGF0ZSwgc2ktPmJ1Zik7CiAKIAkJCS8qCiAJCQkgKiBTaW5jZSB0aGVyZSdz IG5vIGNvbmN1cnJlbnQgYWNjZXNzLCB3ZSBjYW4gcmVsZWFzZSB0aGUgbG93ZXIKIAkJCSAqIGxl dmVsIGJ1ZmZlcnMgaW1tZWRpYXRlbHkuIFRoaXMgaW5jbHVkZXMgdGhlIG9yaWdpbmFsIHBhZ2Uu CiAJCQkgKi8KLQkJCVVubG9ja1JlbGVhc2VCdWZmZXIoc3BsaXRpbmZvLT5idWYpOwotCQkJZG93 bmxpbmtzW2krK10gPSBzcGxpdGluZm8tPmRvd25saW5rOworCQkJVW5sb2NrUmVsZWFzZUJ1ZmZl cihzaS0+YnVmKTsKKwkJCWRvd25saW5rc1tpKytdID0gc2ktPmRvd25saW5rOwogCQl9CiAKIAkJ LyogSW5zZXJ0IHRoZW0gaW50byBwYXJlbnQuICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9leHRlbnNpb24uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCmlu ZGV4IGViYzIwNGM0NDYyLi4wZWY2NTdiZjkxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXh0ZW5zaW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMK QEAgLTEyNzQsOCArMTI3NCw4IEBAIGV4ZWN1dGVfZXh0ZW5zaW9uX3NjcmlwdChPaWQgZXh0ZW5z aW9uT2lkLCBFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwKIAkJCURhdHVtCQlvbGQgPSB0 X3NxbDsKIAkJCWNoYXIJICAgKnJlcWV4dG5hbWUgPSAoY2hhciAqKSBsZmlyc3QobGMpOwogCQkJ T2lkCQkJcmVxc2NoZW1hID0gbGZpcnN0X29pZChsYzIpOwotCQkJY2hhcgkgICAqc2NoZW1hTmFt ZSA9IGdldF9uYW1lc3BhY2VfbmFtZShyZXFzY2hlbWEpOwotCQkJY29uc3QgY2hhciAqcVNjaGVt YU5hbWUgPSBxdW90ZV9pZGVudGlmaWVyKHNjaGVtYU5hbWUpOworCQkJY2hhcgkgICAqcmVxU2No ZW1hTmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZShyZXFzY2hlbWEpOworCQkJY29uc3QgY2hhciAq cVJlcVNjaGVtYU5hbWUgPSBxdW90ZV9pZGVudGlmaWVyKHJlcVNjaGVtYU5hbWUpOwogCQkJY2hh cgkgICAqcmVwbHRva2VuOwogCiAJCQlyZXBsdG9rZW4gPSBwc3ByaW50ZigiQGV4dHNjaGVtYTol c0AiLCByZXFleHRuYW1lKTsKQEAgLTEyODMsOCArMTI4Myw4IEBAIGV4ZWN1dGVfZXh0ZW5zaW9u X3NjcmlwdChPaWQgZXh0ZW5zaW9uT2lkLCBFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwK IAkJCQkJCQkJCQkJQ19DT0xMQVRJT05fT0lELAogCQkJCQkJCQkJCQl0X3NxbCwKIAkJCQkJCQkJ CQkJQ1N0cmluZ0dldFRleHREYXR1bShyZXBsdG9rZW4pLAotCQkJCQkJCQkJCQlDU3RyaW5nR2V0 VGV4dERhdHVtKHFTY2hlbWFOYW1lKSk7Ci0JCQlpZiAodF9zcWwgIT0gb2xkICYmIHN0cnBicmso c2NoZW1hTmFtZSwgcXVvdGluZ19yZWxldmFudF9jaGFycykpCisJCQkJCQkJCQkJCUNTdHJpbmdH ZXRUZXh0RGF0dW0ocVJlcVNjaGVtYU5hbWUpKTsKKwkJCWlmICh0X3NxbCAhPSBvbGQgJiYgc3Ry cGJyayhyZXFTY2hlbWFOYW1lLCBxdW90aW5nX3JlbGV2YW50X2NoYXJzKSkKIAkJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJ T04pLAogCQkJCQkJIGVycm1zZygiaW52YWxpZCBjaGFyYWN0ZXIgaW4gZXh0ZW5zaW9uIFwiJXNc IiBzY2hlbWE6IG11c3Qgbm90IGNvbnRhaW4gYW55IG9mIFwiJXNcIiIsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z Y2hlbWFjbWRzLmMKaW5kZXggM2NjMTQ3MjEwM2EuLmJjOGU4ZmIxZWFhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2NoZW1hY21kcy5jCkBAIC0yMDUsMTQgKzIwNSwxNCBAQCBDcmVhdGVTY2hlbWFDb21tYW5k KENyZWF0ZVNjaGVtYVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCSAqLwog CWZvcmVhY2gocGFyc2V0cmVlX2l0ZW0sIHBhcnNldHJlZV9saXN0KQogCXsKLQkJTm9kZQkgICAq c3RtdCA9IChOb2RlICopIGxmaXJzdChwYXJzZXRyZWVfaXRlbSk7CisJCU5vZGUJICAgKnN1YnN0 bXQgPSAoTm9kZSAqKSBsZmlyc3QocGFyc2V0cmVlX2l0ZW0pOwogCQlQbGFubmVkU3RtdCAqd3Jh cHBlcjsKIAogCQkvKiBuZWVkIHRvIG1ha2UgYSB3cmFwcGVyIFBsYW5uZWRTdG10ICovCiAJCXdy YXBwZXIgPSBtYWtlTm9kZShQbGFubmVkU3RtdCk7CiAJCXdyYXBwZXItPmNvbW1hbmRUeXBlID0g Q01EX1VUSUxJVFk7CiAJCXdyYXBwZXItPmNhblNldFRhZyA9IGZhbHNlOwotCQl3cmFwcGVyLT51 dGlsaXR5U3RtdCA9IHN0bXQ7CisJCXdyYXBwZXItPnV0aWxpdHlTdG10ID0gc3Vic3RtdDsKIAkJ d3JhcHBlci0+c3RtdF9sb2NhdGlvbiA9IHN0bXRfbG9jYXRpb247CiAJCXdyYXBwZXItPnN0bXRf bGVuID0gc3RtdF9sZW47CiAJCXdyYXBwZXItPnBsYW5PcmlnaW4gPSBQTEFOX1NUTVRfSU5URVJO QUw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCmluZGV4IDc3YjFhNmUyZGM1Li5kYzM1MDBiOGZh NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKQEAgLTMxOSwxNSArMzE5LDE1IEBAIENyZWF0 ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10LCBib29sIGNoZWNrX3JpZ2h0cykKIAkJ CU5vZGUJICAgKmV4cHIgPSBzZWxlbS0+ZXhwcjsKIAkJCU9pZAkJCWF0dHR5cGU7CiAJCQlUeXBl Q2FjaGVFbnRyeSAqdHlwZTsKLQkJCUJpdG1hcHNldCAgKmF0dG51bXMgPSBOVUxMOworCQkJQml0 bWFwc2V0ICAqYXR0bnVtc2JtID0gTlVMTDsKIAkJCWludAkJCWs7CiAKIAkJCUFzc2VydChleHBy ICE9IE5VTEwpOwogCi0JCQlwdWxsX3ZhcmF0dG5vcyhleHByLCAxLCAmYXR0bnVtcyk7CisJCQlw dWxsX3ZhcmF0dG5vcyhleHByLCAxLCAmYXR0bnVtc2JtKTsKIAogCQkJayA9IC0xOwotCQkJd2hp bGUgKChrID0gYm1zX25leHRfbWVtYmVyKGF0dG51bXMsIGspKSA+PSAwKQorCQkJd2hpbGUgKChr ID0gYm1zX25leHRfbWVtYmVyKGF0dG51bXNibSwgaykpID49IDApCiAJCQl7CiAJCQkJQXR0ck51 bWJlcglhdHRudW0gPSBrICsgRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcjsKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAwN2U1Yjk1NzgyZS4uNTE3MzAzOGNkZjAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xNTcwOCwxNCArMTU3MDgsMTQgQEAgQVRQb3N0 QWx0ZXJUeXBlUGFyc2UoT2lkIG9sZElkLCBPaWQgb2xkUmVsSWQsIE9pZCByZWZSZWxJZCwgY2hh ciAqY21kLAogCiAJCQlmb3JlYWNoKGxjbWQsIHN0bXQtPmNtZHMpCiAJCQl7Ci0JCQkJQWx0ZXJU YWJsZUNtZCAqY21kID0gbGZpcnN0X25vZGUoQWx0ZXJUYWJsZUNtZCwgbGNtZCk7CisJCQkJQWx0 ZXJUYWJsZUNtZCAqc3ViY21kID0gbGZpcnN0X25vZGUoQWx0ZXJUYWJsZUNtZCwgbGNtZCk7CiAK LQkJCQlpZiAoY21kLT5zdWJ0eXBlID09IEFUX0FkZEluZGV4KQorCQkJCWlmIChzdWJjbWQtPnN1 YnR5cGUgPT0gQVRfQWRkSW5kZXgpCiAJCQkJewogCQkJCQlJbmRleFN0bXQgICppbmRzdG10Owog CQkJCQlPaWQJCQlpbmRvaWQ7CiAKLQkJCQkJaW5kc3RtdCA9IGNhc3ROb2RlKEluZGV4U3RtdCwg Y21kLT5kZWYpOworCQkJCQlpbmRzdG10ID0gY2FzdE5vZGUoSW5kZXhTdG10LCBzdWJjbWQtPmRl Zik7CiAJCQkJCWluZG9pZCA9IGdldF9jb25zdHJhaW50X2luZGV4KG9sZElkKTsKIAogCQkJCQlp ZiAoIXJld3JpdGUpCkBAIC0xNTcyNSw5ICsxNTcyNSw5IEBAIEFUUG9zdEFsdGVyVHlwZVBhcnNl KE9pZCBvbGRJZCwgT2lkIG9sZFJlbElkLCBPaWQgcmVmUmVsSWQsIGNoYXIgKmNtZCwKIAkJCQkJ CQkJCQkJCQkgUmVsYXRpb25SZWxhdGlvbklkLCAwKTsKIAkJCQkJaW5kc3RtdC0+cmVzZXRfZGVm YXVsdF90YmxzcGMgPSB0cnVlOwogCi0JCQkJCWNtZC0+c3VidHlwZSA9IEFUX1JlQWRkSW5kZXg7 CisJCQkJCXN1YmNtZC0+c3VidHlwZSA9IEFUX1JlQWRkSW5kZXg7CiAJCQkJCXRhYi0+c3ViY21k c1tBVF9QQVNTX09MRF9JTkRFWF0gPQotCQkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFT U19PTERfSU5ERVhdLCBjbWQpOworCQkJCQkJbGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19P TERfSU5ERVhdLCBzdWJjbWQpOwogCiAJCQkJCS8qIHJlY3JlYXRlIGFueSBjb21tZW50IG9uIHRo ZSBjb25zdHJhaW50ICovCiAJCQkJCVJlYnVpbGRDb25zdHJhaW50Q29tbWVudCh0YWIsCkBAIC0x NTczNyw5ICsxNTczNyw5IEBAIEFUUG9zdEFsdGVyVHlwZVBhcnNlKE9pZCBvbGRJZCwgT2lkIG9s ZFJlbElkLCBPaWQgcmVmUmVsSWQsIGNoYXIgKmNtZCwKIAkJCQkJCQkJCQkJIE5JTCwKIAkJCQkJ CQkJCQkJIGluZHN0bXQtPmlkeG5hbWUpOwogCQkJCX0KLQkJCQllbHNlIGlmIChjbWQtPnN1YnR5 cGUgPT0gQVRfQWRkQ29uc3RyYWludCkKKwkJCQllbHNlIGlmIChzdWJjbWQtPnN1YnR5cGUgPT0g QVRfQWRkQ29uc3RyYWludCkKIAkJCQl7Ci0JCQkJCUNvbnN0cmFpbnQgKmNvbiA9IGNhc3ROb2Rl KENvbnN0cmFpbnQsIGNtZC0+ZGVmKTsKKwkJCQkJQ29uc3RyYWludCAqY29uID0gY2FzdE5vZGUo Q29uc3RyYWludCwgc3ViY21kLT5kZWYpOwogCiAJCQkJCWNvbi0+b2xkX3BrdGFibGVfb2lkID0g cmVmUmVsSWQ7CiAJCQkJCS8qIHJld3JpdGluZyBuZWl0aGVyIHNpZGUgb2YgYSBGSyAqLwpAQCAt MTU3NDcsOSArMTU3NDcsOSBAQCBBVFBvc3RBbHRlclR5cGVQYXJzZShPaWQgb2xkSWQsIE9pZCBv bGRSZWxJZCwgT2lkIHJlZlJlbElkLCBjaGFyICpjbWQsCiAJCQkJCQkhcmV3cml0ZSAmJiB0YWIt PnJld3JpdGUgPT0gMCkKIAkJCQkJCVRyeVJldXNlRm9yZWlnbktleShvbGRJZCwgY29uKTsKIAkJ CQkJY29uLT5yZXNldF9kZWZhdWx0X3RibHNwYyA9IHRydWU7Ci0JCQkJCWNtZC0+c3VidHlwZSA9 IEFUX1JlQWRkQ29uc3RyYWludDsKKwkJCQkJc3ViY21kLT5zdWJ0eXBlID0gQVRfUmVBZGRDb25z dHJhaW50OwogCQkJCQl0YWItPnN1YmNtZHNbQVRfUEFTU19PTERfQ09OU1RSXSA9Ci0JCQkJCQls YXBwZW5kKHRhYi0+c3ViY21kc1tBVF9QQVNTX09MRF9DT05TVFJdLCBjbWQpOworCQkJCQkJbGFw cGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19PTERfQ09OU1RSXSwgc3ViY21kKTsKIAogCQkJCQkv KgogCQkJCQkgKiBSZWNyZWF0ZSBhbnkgY29tbWVudCBvbiB0aGUgY29uc3RyYWludC4gIElmIHdl IGhhdmUKQEAgLTE1NzY5LDcgKzE1NzY5LDcgQEAgQVRQb3N0QWx0ZXJUeXBlUGFyc2UoT2lkIG9s ZElkLCBPaWQgb2xkUmVsSWQsIE9pZCByZWZSZWxJZCwgY2hhciAqY21kLAogCQkJCX0KIAkJCQll bHNlCiAJCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIHN0YXRlbWVudCBzdWJ0eXBlOiAlZCIs Ci0JCQkJCQkgKGludCkgY21kLT5zdWJ0eXBlKTsKKwkJCQkJCSAoaW50KSBzdWJjbWQtPnN1YnR5 cGUpOwogCQkJfQogCQl9CiAJCWVsc2UgaWYgKElzQShzdG0sIEFsdGVyRG9tYWluU3RtdCkpCkBA IC0xNTc3OSwxMiArMTU3NzksMTIgQEAgQVRQb3N0QWx0ZXJUeXBlUGFyc2UoT2lkIG9sZElkLCBP aWQgb2xkUmVsSWQsIE9pZCByZWZSZWxJZCwgY2hhciAqY21kLAogCQkJaWYgKHN0bXQtPnN1YnR5 cGUgPT0gQURfQWRkQ29uc3RyYWludCkKIAkJCXsKIAkJCQlDb25zdHJhaW50ICpjb24gPSBjYXN0 Tm9kZShDb25zdHJhaW50LCBzdG10LT5kZWYpOwotCQkJCUFsdGVyVGFibGVDbWQgKmNtZCA9IG1h a2VOb2RlKEFsdGVyVGFibGVDbWQpOworCQkJCUFsdGVyVGFibGVDbWQgKnN1YmNtZCA9IG1ha2VO b2RlKEFsdGVyVGFibGVDbWQpOwogCi0JCQkJY21kLT5zdWJ0eXBlID0gQVRfUmVBZGREb21haW5D b25zdHJhaW50OwotCQkJCWNtZC0+ZGVmID0gKE5vZGUgKikgc3RtdDsKKwkJCQlzdWJjbWQtPnN1 YnR5cGUgPSBBVF9SZUFkZERvbWFpbkNvbnN0cmFpbnQ7CisJCQkJc3ViY21kLT5kZWYgPSAoTm9k ZSAqKSBzdG10OwogCQkJCXRhYi0+c3ViY21kc1tBVF9QQVNTX09MRF9DT05TVFJdID0KLQkJCQkJ bGFwcGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19PTERfQ09OU1RSXSwgY21kKTsKKwkJCQkJbGFw cGVuZCh0YWItPnN1YmNtZHNbQVRfUEFTU19PTERfQ09OU1RSXSwgc3ViY21kKTsKIAogCQkJCS8q IHJlY3JlYXRlIGFueSBjb21tZW50IG9uIHRoZSBjb25zdHJhaW50ICovCiAJCQkJUmVidWlsZENv bnN0cmFpbnRDb21tZW50KHRhYiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Ry aWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCA1NzlhYzhkNzZh ZS4uNDVkNDFhZGY1NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTExNjUsNyArMTE2NSw3 IEBAIENyZWF0ZVRyaWdnZXJGaXJpbmdPbihDcmVhdGVUcmlnU3RtdCAqc3RtdCwgY29uc3QgY2hh ciAqcXVlcnlTdHJpbmcsCiAJCXsKIAkJCUNyZWF0ZVRyaWdTdG10ICpjaGlsZFN0bXQ7CiAJCQlS ZWxhdGlvbgljaGlsZFRibDsKLQkJCU5vZGUJICAgKnF1YWw7CisJCQlOb2RlCSAgICpwYXJ0cXVh bDsKIAogCQkJY2hpbGRUYmwgPSB0YWJsZV9vcGVuKHBhcnRkZXNjLT5vaWRzW2ldLCBTaGFyZVJv d0V4Y2x1c2l2ZUxvY2spOwogCkBAIC0xMTc4LDE4ICsxMTc4LDE4IEBAIENyZWF0ZVRyaWdnZXJG aXJpbmdPbihDcmVhdGVUcmlnU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJ CQljaGlsZFN0bXQtPndoZW5DbGF1c2UgPSBOVUxMOwogCiAJCQkvKiBJZiB0aGVyZSBpcyBhIFdI RU4gY2xhdXNlLCBjcmVhdGUgYSBtb2RpZmllZCBjb3B5IG9mIGl0ICovCi0JCQlxdWFsID0gY29w eU9iamVjdCh3aGVuQ2xhdXNlKTsKLQkJCXF1YWwgPSAoTm9kZSAqKQotCQkJCW1hcF9wYXJ0aXRp b25fdmFyYXR0bm9zKChMaXN0ICopIHF1YWwsIFBSUzJfT0xEX1ZBUk5PLAorCQkJcGFydHF1YWwg PSBjb3B5T2JqZWN0KHdoZW5DbGF1c2UpOworCQkJcGFydHF1YWwgPSAoTm9kZSAqKQorCQkJCW1h cF9wYXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0ICopIHBhcnRxdWFsLCBQUlMyX09MRF9WQVJOTywK IAkJCQkJCQkJCQljaGlsZFRibCwgcmVsKTsKLQkJCXF1YWwgPSAoTm9kZSAqKQotCQkJCW1hcF9w YXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0ICopIHF1YWwsIFBSUzJfTkVXX1ZBUk5PLAorCQkJcGFy dHF1YWwgPSAoTm9kZSAqKQorCQkJCW1hcF9wYXJ0aXRpb25fdmFyYXR0bm9zKChMaXN0ICopIHBh cnRxdWFsLCBQUlMyX05FV19WQVJOTywKIAkJCQkJCQkJCQljaGlsZFRibCwgcmVsKTsKIAogCQkJ Q3JlYXRlVHJpZ2dlckZpcmluZ09uKGNoaWxkU3RtdCwgcXVlcnlTdHJpbmcsCiAJCQkJCQkJCSAg cGFydGRlc2MtPm9pZHNbaV0sIHJlZlJlbE9pZCwKIAkJCQkJCQkJICBJbnZhbGlkT2lkLCBJbnZh bGlkT2lkLAotCQkJCQkJCQkgIGZ1bmNvaWQsIHRyaWdvaWQsIHF1YWwsCisJCQkJCQkJCSAgZnVu Y29pZCwgdHJpZ29pZCwgcGFydHF1YWwsCiAJCQkJCQkJCSAgaXNJbnRlcm5hbCwgdHJ1ZSwgdHJp Z2dlcl9maXJlc193aGVuKTsKIAogCQkJdGFibGVfY2xvc2UoY2hpbGRUYmwsIE5vTG9jayk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy93YWl0LmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy93YWl0LmMKaW5kZXggYTM3YmRkYWVmYjIuLmU5M2Q5ZTE5ZGU3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy93YWl0LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvd2Fp dC5jCkBAIC01MSw3ICs1MSw3IEBAIEV4ZWNXYWl0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFdh aXRTdG10ICpzdG10LCBEZXN0UmVjZWl2ZXIgKmRlc3QpCiAJCXsKIAkJCWNoYXIJICAgKnRpbWVv dXRfc3RyOwogCQkJY29uc3QgY2hhciAqaGludG1zZzsKLQkJCWRvdWJsZQkJcmVzdWx0OworCQkJ ZG91YmxlCQl0aW1lb3V0X3ZhbDsKIAogCQkJaWYgKHRpbWVvdXRfc3BlY2lmaWVkKQogCQkJCWVy cm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOwpAQCAtNTksNyArNTksNyBAQCBF eGVjV2FpdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXYWl0U3RtdCAqc3RtdCwgRGVzdFJlY2Vp dmVyICpkZXN0KQogCiAJCQl0aW1lb3V0X3N0ciA9IGRlZkdldFN0cmluZyhkZWZlbCk7CiAKLQkJ CWlmICghcGFyc2VfcmVhbCh0aW1lb3V0X3N0ciwgJnJlc3VsdCwgR1VDX1VOSVRfTVMsICZoaW50 bXNnKSkKKwkJCWlmICghcGFyc2VfcmVhbCh0aW1lb3V0X3N0ciwgJnRpbWVvdXRfdmFsLCBHVUNf VU5JVF9NUywgJmhpbnRtc2cpKQogCQkJewogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQllcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLApAQCAtNzIsMjAgKzcyLDIwIEBA IEV4ZWNXYWl0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFdhaXRTdG10ICpzdG10LCBEZXN0UmVj ZWl2ZXIgKmRlc3QpCiAJCQkgKiBkb24ndCBmYWlsIG9uIGp1c3Qtb3V0LW9mLXJhbmdlIHZhbHVl cyB0aGF0IHdvdWxkIHJvdW5kIGludG8KIAkJCSAqIHJhbmdlLgogCQkJICovCi0JCQlyZXN1bHQg PSByaW50KHJlc3VsdCk7CisJCQl0aW1lb3V0X3ZhbCA9IHJpbnQodGltZW91dF92YWwpOwogCiAJ CQkvKiBSYW5nZSBjaGVjayAqLwotCQkJaWYgKHVubGlrZWx5KGlzbmFuKHJlc3VsdCkgfHwgIUZM T0FUOF9GSVRTX0lOX0lOVDY0KHJlc3VsdCkpKQorCQkJaWYgKHVubGlrZWx5KGlzbmFuKHRpbWVv dXRfdmFsKSB8fCAhRkxPQVQ4X0ZJVFNfSU5fSU5UNjQodGltZW91dF92YWwpKSkKIAkJCQllcmVw b3J0KEVSUk9SLAogCQkJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JB TkdFKSwKIAkJCQkJCWVycm1zZygidGltZW91dCB2YWx1ZSBpcyBvdXQgb2YgcmFuZ2UiKSk7CiAK LQkJCWlmIChyZXN1bHQgPCAwKQorCQkJaWYgKHRpbWVvdXRfdmFsIDwgMCkKIAkJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwK IAkJCQkJCWVycm1zZygidGltZW91dCBjYW5ub3QgYmUgbmVnYXRpdmUiKSk7CiAKLQkJCXRpbWVv dXQgPSAoaW50NjQpIHJlc3VsdDsKKwkJCXRpbWVvdXQgPSAoaW50NjQpIHRpbWVvdXRfdmFsOwog CQl9CiAJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgIm5vX3Rocm93IikgPT0gMCkK IAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCmluZGV4IDBiMDJmZDMyMTA3Li5lNGM1MzllMzkxNyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYwpAQCAtNDA3MCwxMiArNDA3MCwxMiBAQCBFeGVjSW5pdEFn ZyhBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCSAqLwogCWZvciAocGhh c2VpZHggPSAwOyBwaGFzZWlkeCA8IGFnZ3N0YXRlLT5udW1waGFzZXM7IHBoYXNlaWR4KyspCiAJ ewotCQlBZ2dTdGF0ZVBlclBoYXNlIHBoYXNlID0gJmFnZ3N0YXRlLT5waGFzZXNbcGhhc2VpZHhd OworCQlBZ2dTdGF0ZVBlclBoYXNlIGN1cnBoYXNlID0gJmFnZ3N0YXRlLT5waGFzZXNbcGhhc2Vp ZHhdOwogCQlib29sCQlkb2hhc2ggPSBmYWxzZTsKIAkJYm9vbAkJZG9zb3J0ID0gZmFsc2U7CiAK IAkJLyogcGhhc2UgMCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGV4aXN0ICovCi0JCWlmICghcGhhc2Ut PmFnZ25vZGUpCisJCWlmICghY3VycGhhc2UtPmFnZ25vZGUpCiAJCQljb250aW51ZTsKIAogCQlp ZiAoYWdnc3RhdGUtPmFnZ3N0cmF0ZWd5ID09IEFHR19NSVhFRCAmJiBwaGFzZWlkeCA9PSAxKQpA QCAtNDA5NiwxMyArNDA5NiwxMyBAQCBFeGVjSW5pdEFnZyhBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0 YXRlLCBpbnQgZWZsYWdzKQogCQkJICovCiAJCQljb250aW51ZTsKIAkJfQotCQllbHNlIGlmIChw aGFzZS0+YWdnc3RyYXRlZ3kgPT0gQUdHX1BMQUlOIHx8Ci0JCQkJIHBoYXNlLT5hZ2dzdHJhdGVn eSA9PSBBR0dfU09SVEVEKQorCQllbHNlIGlmIChjdXJwaGFzZS0+YWdnc3RyYXRlZ3kgPT0gQUdH X1BMQUlOIHx8CisJCQkJIGN1cnBoYXNlLT5hZ2dzdHJhdGVneSA9PSBBR0dfU09SVEVEKQogCQl7 CiAJCQlkb2hhc2ggPSBmYWxzZTsKIAkJCWRvc29ydCA9IHRydWU7CiAJCX0KLQkJZWxzZSBpZiAo cGhhc2UtPmFnZ3N0cmF0ZWd5ID09IEFHR19IQVNIRUQpCisJCWVsc2UgaWYgKGN1cnBoYXNlLT5h Z2dzdHJhdGVneSA9PSBBR0dfSEFTSEVEKQogCQl7CiAJCQlkb2hhc2ggPSB0cnVlOwogCQkJZG9z b3J0ID0gZmFsc2U7CkBAIC00MTEwLDExICs0MTEwLDExIEBAIEV4ZWNJbml0QWdnKEFnZyAqbm9k ZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJCWVsc2UKIAkJCUFzc2VydChmYWxzZSk7 CiAKLQkJcGhhc2UtPmV2YWx0cmFucyA9IEV4ZWNCdWlsZEFnZ1RyYW5zKGFnZ3N0YXRlLCBwaGFz ZSwgZG9zb3J0LCBkb2hhc2gsCi0JCQkJCQkJCQkJCSBmYWxzZSk7CisJCWN1cnBoYXNlLT5ldmFs dHJhbnMgPSBFeGVjQnVpbGRBZ2dUcmFucyhhZ2dzdGF0ZSwgY3VycGhhc2UsIGRvc29ydCwgZG9o YXNoLAorCQkJCQkJCQkJCQkJZmFsc2UpOwogCiAJCS8qIGNhY2hlIGNvbXBpbGVkIGV4cHJlc3Np b24gZm9yIG91dGVyIHNsb3Qgd2l0aG91dCBOVUxMIGNoZWNrICovCi0JCXBoYXNlLT5ldmFsdHJh bnNfY2FjaGVbMF1bMF0gPSBwaGFzZS0+ZXZhbHRyYW5zOworCQljdXJwaGFzZS0+ZXZhbHRyYW5z X2NhY2hlWzBdWzBdID0gY3VycGhhc2UtPmV2YWx0cmFuczsKIAl9CiAKIAlyZXR1cm4gYWdnc3Rh dGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVmFsdWVzc2Nhbi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVZhbHVlc3NjYW4uYwppbmRleCA4ZTg1YTVmMmU5YS4u MGQzNjY1NDY5NjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVWYWx1ZXNz Y2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVZhbHVlc3NjYW4uYwpAQCAtMTQx LDExICsxNDEsMTEgQEAgVmFsdWVzTmV4dChWYWx1ZXNTY2FuU3RhdGUgKm5vZGUpCiAJCXJlc2lu ZCA9IDA7CiAJCWZvcmVhY2gobGMsIGV4cHJzdGF0ZWxpc3QpCiAJCXsKLQkJCUV4cHJTdGF0ZSAg KmVzdGF0ZSA9IChFeHByU3RhdGUgKikgbGZpcnN0KGxjKTsKKwkJCUV4cHJTdGF0ZSAgKmV4cHJz dGF0ZSA9IChFeHByU3RhdGUgKikgbGZpcnN0KGxjKTsKIAkJCUNvbXBhY3RBdHRyaWJ1dGUgKmF0 dHIgPSBUdXBsZURlc2NDb21wYWN0QXR0cihzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yLAogCQkJ CQkJCQkJCQkJCQkgIHJlc2luZCk7CiAKLQkJCXZhbHVlc1tyZXNpbmRdID0gRXhlY0V2YWxFeHBy KGVzdGF0ZSwKKwkJCXZhbHVlc1tyZXNpbmRdID0gRXhlY0V2YWxFeHByKGV4cHJzdGF0ZSwKIAkJ CQkJCQkJCQkgIGVjb250ZXh0LAogCQkJCQkJCQkJCSAgJmlzbnVsbFtyZXNpbmRdKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCmluZGV4IDhhZjA5MWJhNjQ3Li45MmU0 NmEzMTg5OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxh bi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMTIz NiwxNiArMTIzNiwxNiBAQCBjcmVhdGVfYXBwZW5kX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIEFw cGVuZFBhdGggKmJlc3RfcGF0aCwgaW50IGZsYWdzKQogCWlmIChiZXN0X3BhdGgtPnN1YnBhdGhz ID09IE5JTCkKIAl7CiAJCS8qIEdlbmVyYXRlIGEgUmVzdWx0IHBsYW4gd2l0aCBjb25zdGFudC1G QUxTRSBnYXRpbmcgcXVhbCAqLwotCQlQbGFuCSAgICpwbGFuOworCQlQbGFuCSAgICpyZXNwbGFu OwogCi0JCXBsYW4gPSAoUGxhbiAqKSBtYWtlX29uZV9yb3dfcmVzdWx0KHRsaXN0LAotCQkJCQkJ CQkJCQkoTm9kZSAqKSBsaXN0X21ha2UxKG1ha2VCb29sQ29uc3QoZmFsc2UsCi0JCQkJCQkJCQkJ CQkJCQkJCQkJICBmYWxzZSkpLAotCQkJCQkJCQkJCQliZXN0X3BhdGgtPnBhdGgucGFyZW50KTsK KwkJcmVzcGxhbiA9IChQbGFuICopIG1ha2Vfb25lX3Jvd19yZXN1bHQodGxpc3QsCisJCQkJCQkJ CQkJCSAgIChOb2RlICopIGxpc3RfbWFrZTEobWFrZUJvb2xDb25zdChmYWxzZSwKKwkJCQkJCQkJ CQkJCQkJCQkJCQkJIGZhbHNlKSksCisJCQkJCQkJCQkJCSAgIGJlc3RfcGF0aC0+cGF0aC5wYXJl bnQpOwogCi0JCWNvcHlfZ2VuZXJpY19wYXRoX2luZm8ocGxhbiwgKFBhdGggKikgYmVzdF9wYXRo KTsKKwkJY29weV9nZW5lcmljX3BhdGhfaW5mbyhyZXNwbGFuLCAoUGF0aCAqKSBiZXN0X3BhdGgp OwogCi0JCXJldHVybiBwbGFuOworCQlyZXR1cm4gcmVzcGxhbjsKIAl9CiAKIAkvKgpAQCAtMjQw Niw3ICsyNDA2LDcgQEAgY3JlYXRlX21pbm1heGFnZ19wbGFuKFBsYW5uZXJJbmZvICpyb290LCBN aW5NYXhBZ2dQYXRoICpiZXN0X3BhdGgpCiAJCU1pbk1heEFnZ0luZm8gKm1taW5mbyA9IChNaW5N YXhBZ2dJbmZvICopIGxmaXJzdChsYyk7CiAJCVBsYW5uZXJJbmZvICpzdWJyb290ID0gbW1pbmZv LT5zdWJyb290OwogCQlRdWVyeQkgICAqc3VicGFyc2UgPSBzdWJyb290LT5wYXJzZTsKLQkJUGxh bgkgICAqcGxhbjsKKwkJUGxhbgkgICAqaW5pdHBsYW47CiAKIAkJLyoKIAkJICogR2VuZXJhdGUg dGhlIHBsYW4gZm9yIHRoZSBzdWJxdWVyeS4gV2UgYWxyZWFkeSBoYXZlIGEgUGF0aCwgYnV0IHdl CkBAIC0yNDE0LDI1ICsyNDE0LDI1IEBAIGNyZWF0ZV9taW5tYXhhZ2dfcGxhbihQbGFubmVySW5m byAqcm9vdCwgTWluTWF4QWdnUGF0aCAqYmVzdF9wYXRoKQogCQkgKiBTaW5jZSB3ZSBhcmUgZW50 ZXJpbmcgYSBkaWZmZXJlbnQgcGxhbm5lciBjb250ZXh0IChzdWJyb290KSwKIAkJICogcmVjdXJz ZSB0byBjcmVhdGVfcGxhbiBub3QgY3JlYXRlX3BsYW5fcmVjdXJzZS4KIAkJICovCi0JCXBsYW4g PSBjcmVhdGVfcGxhbihzdWJyb290LCBtbWluZm8tPnBhdGgpOworCQlpbml0cGxhbiA9IGNyZWF0 ZV9wbGFuKHN1YnJvb3QsIG1taW5mby0+cGF0aCk7CiAKLQkJcGxhbiA9IChQbGFuICopIG1ha2Vf bGltaXQocGxhbiwKLQkJCQkJCQkJICAgc3VicGFyc2UtPmxpbWl0T2Zmc2V0LAotCQkJCQkJCQkg ICBzdWJwYXJzZS0+bGltaXRDb3VudCwKLQkJCQkJCQkJICAgc3VicGFyc2UtPmxpbWl0T3B0aW9u LAotCQkJCQkJCQkgICAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwkJaW5pdHBsYW4gPSAoUGxhbiAq KSBtYWtlX2xpbWl0KGluaXRwbGFuLAorCQkJCQkJCQkJICAgc3VicGFyc2UtPmxpbWl0T2Zmc2V0 LAorCQkJCQkJCQkJICAgc3VicGFyc2UtPmxpbWl0Q291bnQsCisJCQkJCQkJCQkgICBzdWJwYXJz ZS0+bGltaXRPcHRpb24sCisJCQkJCQkJCQkgICAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKIAogCQkv KiBNdXN0IGFwcGx5IGNvcnJlY3QgY29zdC93aWR0aCBkYXRhIHRvIExpbWl0IG5vZGUgKi8KLQkJ cGxhbi0+ZGlzYWJsZWRfbm9kZXMgPSBtbWluZm8tPnBhdGgtPmRpc2FibGVkX25vZGVzOwotCQlw bGFuLT5zdGFydHVwX2Nvc3QgPSBtbWluZm8tPnBhdGgtPnN0YXJ0dXBfY29zdDsKLQkJcGxhbi0+ dG90YWxfY29zdCA9IG1taW5mby0+cGF0aGNvc3Q7Ci0JCXBsYW4tPnBsYW5fcm93cyA9IDE7Ci0J CXBsYW4tPnBsYW5fd2lkdGggPSBtbWluZm8tPnBhdGgtPnBhdGh0YXJnZXQtPndpZHRoOwotCQlw bGFuLT5wYXJhbGxlbF9hd2FyZSA9IGZhbHNlOwotCQlwbGFuLT5wYXJhbGxlbF9zYWZlID0gbW1p bmZvLT5wYXRoLT5wYXJhbGxlbF9zYWZlOworCQlpbml0cGxhbi0+ZGlzYWJsZWRfbm9kZXMgPSBt bWluZm8tPnBhdGgtPmRpc2FibGVkX25vZGVzOworCQlpbml0cGxhbi0+c3RhcnR1cF9jb3N0ID0g bW1pbmZvLT5wYXRoLT5zdGFydHVwX2Nvc3Q7CisJCWluaXRwbGFuLT50b3RhbF9jb3N0ID0gbW1p bmZvLT5wYXRoY29zdDsKKwkJaW5pdHBsYW4tPnBsYW5fcm93cyA9IDE7CisJCWluaXRwbGFuLT5w bGFuX3dpZHRoID0gbW1pbmZvLT5wYXRoLT5wYXRodGFyZ2V0LT53aWR0aDsKKwkJaW5pdHBsYW4t PnBhcmFsbGVsX2F3YXJlID0gZmFsc2U7CisJCWluaXRwbGFuLT5wYXJhbGxlbF9zYWZlID0gbW1p bmZvLT5wYXRoLT5wYXJhbGxlbF9zYWZlOwogCiAJCS8qIENvbnZlcnQgdGhlIHBsYW4gaW50byBh biBJbml0UGxhbiBpbiB0aGUgb3V0ZXIgcXVlcnkuICovCi0JCVNTX21ha2VfaW5pdHBsYW5fZnJv bV9wbGFuKHJvb3QsIHN1YnJvb3QsIHBsYW4sIG1taW5mby0+cGFyYW0pOworCQlTU19tYWtlX2lu aXRwbGFuX2Zyb21fcGxhbihyb290LCBzdWJyb290LCBpbml0cGxhbiwgbW1pbmZvLT5wYXJhbSk7 CiAJfQogCiAJLyogR2VuZXJhdGUgdGhlIG91dHB1dCBwbGFuIC0tLSBiYXNpY2FsbHkganVzdCBh IFJlc3VsdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9kZXBlbmRlbmNp ZXMuYyBiL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZGVwZW5kZW5jaWVzLmMKaW5kZXggZDdiZjZi N2U4NDYuLjI4ZTA1ZDVhZGMwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2Rl cGVuZGVuY2llcy5jCisrKyBiL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZGVwZW5kZW5jaWVzLmMK QEAgLTEwOTgsMTcgKzEwOTgsMTcgQEAgZGVwZW5kZW5jeV9pc19jb21wYXRpYmxlX2V4cHJlc3Np b24oTm9kZSAqY2xhdXNlLCBJbmRleCByZWxpZCwgTGlzdCAqc3RhdGxpc3QsIE4KIAlpZiAoaXNf b3BjbGF1c2UoY2xhdXNlKSkKIAl7CiAJCS8qIElmIGl0J3MgYW4gb3BjbGF1c2UsIGNoZWNrIGZv ciBWYXIgPSBDb25zdCBvciBDb25zdCA9IFZhci4gKi8KLQkJT3BFeHByCSAgICpleHByID0gKE9w RXhwciAqKSBjbGF1c2U7CisJCU9wRXhwcgkgICAqb3BleHByID0gKE9wRXhwciAqKSBjbGF1c2U7 CiAKIAkJLyogT25seSBleHByZXNzaW9ucyB3aXRoIHR3byBhcmd1bWVudHMgYXJlIGNhbmRpZGF0 ZXMuICovCi0JCWlmIChsaXN0X2xlbmd0aChleHByLT5hcmdzKSAhPSAyKQorCQlpZiAobGlzdF9s ZW5ndGgob3BleHByLT5hcmdzKSAhPSAyKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJCS8qIE1ha2Ug c3VyZSBub24tc2VsZWN0ZWQgYXJndW1lbnQgaXMgYSBwc2V1ZG9jb25zdGFudC4gKi8KLQkJaWYg KGlzX3BzZXVkb19jb25zdGFudF9jbGF1c2UobHNlY29uZChleHByLT5hcmdzKSkpCi0JCQljbGF1 c2VfZXhwciA9IGxpbml0aWFsKGV4cHItPmFyZ3MpOwotCQllbHNlIGlmIChpc19wc2V1ZG9fY29u c3RhbnRfY2xhdXNlKGxpbml0aWFsKGV4cHItPmFyZ3MpKSkKLQkJCWNsYXVzZV9leHByID0gbHNl Y29uZChleHByLT5hcmdzKTsKKwkJaWYgKGlzX3BzZXVkb19jb25zdGFudF9jbGF1c2UobHNlY29u ZChvcGV4cHItPmFyZ3MpKSkKKwkJCWNsYXVzZV9leHByID0gbGluaXRpYWwob3BleHByLT5hcmdz KTsKKwkJZWxzZSBpZiAoaXNfcHNldWRvX2NvbnN0YW50X2NsYXVzZShsaW5pdGlhbChvcGV4cHIt PmFyZ3MpKSkKKwkJCWNsYXVzZV9leHByID0gbHNlY29uZChvcGV4cHItPmFyZ3MpOwogCQllbHNl CiAJCQlyZXR1cm4gZmFsc2U7CiAKQEAgLTExMjQsNyArMTEyNCw3IEBAIGRlcGVuZGVuY3lfaXNf Y29tcGF0aWJsZV9leHByZXNzaW9uKE5vZGUgKmNsYXVzZSwgSW5kZXggcmVsaWQsIExpc3QgKnN0 YXRsaXN0LCBOCiAJCSAqIHNlbGVjdGl2aXR5IGZ1bmN0aW9ucywgYW5kIHRvIGJlIG1vcmUgY29u c2lzdGVudCB3aXRoIGRlY2lzaW9ucwogCQkgKiBlbHNld2hlcmUgaW4gdGhlIHBsYW5uZXIuCiAJ CSAqLwotCQlpZiAoZ2V0X29wcnJlc3QoZXhwci0+b3BubykgIT0gRl9FUVNFTCkKKwkJaWYgKGdl dF9vcHJyZXN0KG9wZXhwci0+b3BubykgIT0gRl9FUVNFTCkKIAkJCXJldHVybiBmYWxzZTsKIAog CQkvKiBPSyB0byBwcm9jZWVkIHdpdGggY2hlY2tpbmcgInZhciIgKi8KQEAgLTExMzIsNyArMTEz Miw3IEBAIGRlcGVuZGVuY3lfaXNfY29tcGF0aWJsZV9leHByZXNzaW9uKE5vZGUgKmNsYXVzZSwg SW5kZXggcmVsaWQsIExpc3QgKnN0YXRsaXN0LCBOCiAJZWxzZSBpZiAoSXNBKGNsYXVzZSwgU2Nh bGFyQXJyYXlPcEV4cHIpKQogCXsKIAkJLyogSWYgaXQncyBhIHNjYWxhciBhcnJheSBvcGVyYXRv ciwgY2hlY2sgZm9yIFZhciBJTiBDb25zdC4gKi8KLQkJU2NhbGFyQXJyYXlPcEV4cHIgKmV4cHIg PSAoU2NhbGFyQXJyYXlPcEV4cHIgKikgY2xhdXNlOworCQlTY2FsYXJBcnJheU9wRXhwciAqb3Bl eHByID0gKFNjYWxhckFycmF5T3BFeHByICopIGNsYXVzZTsKIAogCQkvKgogCQkgKiBSZWplY3Qg QUxMKCkgdmFyaWFudCwgd2Ugb25seSBjYXJlIGFib3V0IEFOWS9JTi4KQEAgLTExNDAsMjEgKzEx NDAsMjEgQEAgZGVwZW5kZW5jeV9pc19jb21wYXRpYmxlX2V4cHJlc3Npb24oTm9kZSAqY2xhdXNl LCBJbmRleCByZWxpZCwgTGlzdCAqc3RhdGxpc3QsIE4KIAkJICogRklYTUUgTWF5YmUgd2Ugc2hv dWxkIGNoZWNrIGlmIGFsbCB0aGUgdmFsdWVzIGFyZSB0aGUgc2FtZSwgYW5kCiAJCSAqIGFsbG93 IEFMTCBpbiB0aGF0IGNhc2U/IERvZXNuJ3Qgc2VlbSB2ZXJ5IHByYWN0aWNhbCwgdGhvdWdoLgog CQkgKi8KLQkJaWYgKCFleHByLT51c2VPcikKKwkJaWYgKCFvcGV4cHItPnVzZU9yKQogCQkJcmV0 dXJuIGZhbHNlOwogCiAJCS8qIE9ubHkgZXhwcmVzc2lvbnMgd2l0aCB0d28gYXJndW1lbnRzIGFy ZSBjYW5kaWRhdGVzLiAqLwotCQlpZiAobGlzdF9sZW5ndGgoZXhwci0+YXJncykgIT0gMikKKwkJ aWYgKGxpc3RfbGVuZ3RoKG9wZXhwci0+YXJncykgIT0gMikKIAkJCXJldHVybiBmYWxzZTsKIAog CQkvKgogCQkgKiBXZSBrbm93IGl0J3MgYWx3YXlzIChWYXIgSU4gQ29uc3QpLCBzbyB3ZSBhc3N1 bWUgdGhlIHZhciBpcyB0aGUKIAkJICogZmlyc3QgYXJndW1lbnQsIGFuZCBwc2V1ZG9jb25zdGFu dCBpcyB0aGUgc2Vjb25kIG9uZS4KIAkJICovCi0JCWlmICghaXNfcHNldWRvX2NvbnN0YW50X2Ns YXVzZShsc2Vjb25kKGV4cHItPmFyZ3MpKSkKKwkJaWYgKCFpc19wc2V1ZG9fY29uc3RhbnRfY2xh dXNlKGxzZWNvbmQob3BleHByLT5hcmdzKSkpCiAJCQlyZXR1cm4gZmFsc2U7CiAKLQkJY2xhdXNl X2V4cHIgPSBsaW5pdGlhbChleHByLT5hcmdzKTsKKwkJY2xhdXNlX2V4cHIgPSBsaW5pdGlhbChv cGV4cHItPmFyZ3MpOwogCiAJCS8qCiAJCSAqIElmIGl0J3Mgbm90IGFuICI9IiBvcGVyYXRvciwg anVzdCBpZ25vcmUgdGhlIGNsYXVzZSwgYXMgaXQncyBub3QKQEAgLTExNjMsNyArMTE2Myw3IEBA IGRlcGVuZGVuY3lfaXNfY29tcGF0aWJsZV9leHByZXNzaW9uKE5vZGUgKmNsYXVzZSwgSW5kZXgg cmVsaWQsIExpc3QgKnN0YXRsaXN0LCBOCiAJCSAqIHNlbGVjdGl2aXR5LiBUaGF0J3MgYSBiaXQg c3RyYW5nZSwgYnV0IGl0J3Mgd2hhdCBvdGhlciBzaW1pbGFyCiAJCSAqIHBsYWNlcyBkby4KIAkJ ICovCi0JCWlmIChnZXRfb3BycmVzdChleHByLT5vcG5vKSAhPSBGX0VRU0VMKQorCQlpZiAoZ2V0 X29wcnJlc3Qob3BleHByLT5vcG5vKSAhPSBGX0VRU0VMKQogCQkJcmV0dXJuIGZhbHNlOwogCiAJ CS8qIE9LIHRvIHByb2NlZWQgd2l0aCBjaGVja2luZyAidmFyIiAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0cy5jIGIvc3JjL2JhY2tlbmQvc3RhdGlz dGljcy9leHRlbmRlZF9zdGF0cy5jCmluZGV4IGYwMDNkN2I0YTczLi5hZTJjODI0NzVkNCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0cy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHMuYwpAQCAtOTkxLDcgKzk5MSw3IEBA IGJ1aWxkX3NvcnRlZF9pdGVtcyhTdGF0c0J1aWxkRGF0YSAqZGF0YSwgaW50ICpuaXRlbXMsCiAJ U2l6ZQkJbGVuOwogCVNvcnRJdGVtICAgKml0ZW1zOwogCURhdHVtCSAgICp2YWx1ZXM7Ci0JYm9v bAkgICAqaXNudWxsOworCWJvb2wJICAgKmlzbnVsbHM7CiAJY2hhcgkgICAqcHRyOwogCWludAkJ ICAgKnR5cGxlbjsKIApAQCAtMTAxMSw3ICsxMDExLDcgQEAgYnVpbGRfc29ydGVkX2l0ZW1zKFN0 YXRzQnVpbGREYXRhICpkYXRhLCBpbnQgKm5pdGVtcywKIAl2YWx1ZXMgPSAoRGF0dW0gKikgcHRy OwogCXB0ciArPSBudmFsdWVzICogc2l6ZW9mKERhdHVtKTsKIAotCWlzbnVsbCA9IChib29sICop IHB0cjsKKwlpc251bGxzID0gKGJvb2wgKikgcHRyOwogCXB0ciArPSBudmFsdWVzICogc2l6ZW9m KGJvb2wpOwogCiAJLyogbWFrZSBzdXJlIHdlIGNvbnN1bWVkIHRoZSB3aG9sZSBidWZmZXIgZXhh Y3RseSAqLwpAQCAtMTAyMiw3ICsxMDIyLDcgQEAgYnVpbGRfc29ydGVkX2l0ZW1zKFN0YXRzQnVp bGREYXRhICpkYXRhLCBpbnQgKm5pdGVtcywKIAlmb3IgKGkgPSAwOyBpIDwgZGF0YS0+bnVtcm93 czsgaSsrKQogCXsKIAkJaXRlbXNbbnJvd3NdLnZhbHVlcyA9ICZ2YWx1ZXNbbnJvd3MgKiBudW1h dHRyc107Ci0JCWl0ZW1zW25yb3dzXS5pc251bGwgPSAmaXNudWxsW25yb3dzICogbnVtYXR0cnNd OworCQlpdGVtc1tucm93c10uaXNudWxsID0gJmlzbnVsbHNbbnJvd3MgKiBudW1hdHRyc107CiAK IAkJbnJvd3MrKzsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9i dWZtZ3IuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IGYzNzNj ZWFkOTVmLi44ODdjN2Q0ZDMzNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZm ZXIvYnVmbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAg LTExODgsNyArMTE4OCw3IEBAIFJlYWRCdWZmZXJfY29tbW9uKFJlbGF0aW9uIHJlbCwgU01nclJl bGF0aW9uIHNtZ3IsIGNoYXIgc21ncl9wZXJzaXN0ZW5jZSwKIAkgKi8KIAlpZiAodW5saWtlbHko YmxvY2tOdW0gPT0gUF9ORVcpKQogCXsKLQkJdWludDMyCQlmbGFncyA9IEVCX1NLSVBfRVhURU5T SU9OX0xPQ0s7CisJCXVpbnQzMgkJdWZsYWdzID0gRUJfU0tJUF9FWFRFTlNJT05fTE9DSzsKIAog CQkvKgogCQkgKiBTaW5jZSBuby1vbmUgZWxzZSBjYW4gYmUgbG9va2luZyBhdCB0aGUgcGFnZSBj b250ZW50cyB5ZXQsIHRoZXJlIGlzCkBAIC0xMTk2LDkgKzExOTYsOSBAQCBSZWFkQnVmZmVyX2Nv bW1vbihSZWxhdGlvbiByZWwsIFNNZ3JSZWxhdGlvbiBzbWdyLCBjaGFyIHNtZ3JfcGVyc2lzdGVu Y2UsCiAJCSAqIGxvY2suCiAJCSAqLwogCQlpZiAobW9kZSA9PSBSQk1fWkVST19BTkRfTE9DSyB8 fCBtb2RlID09IFJCTV9aRVJPX0FORF9DTEVBTlVQX0xPQ0spCi0JCQlmbGFncyB8PSBFQl9MT0NL X0ZJUlNUOworCQkJdWZsYWdzIHw9IEVCX0xPQ0tfRklSU1Q7CiAKLQkJcmV0dXJuIEV4dGVuZEJ1 ZmZlcmVkUmVsKEJNUl9SRUwocmVsKSwgZm9ya051bSwgc3RyYXRlZ3ksIGZsYWdzKTsKKwkJcmV0 dXJuIEV4dGVuZEJ1ZmZlcmVkUmVsKEJNUl9SRUwocmVsKSwgZm9ya051bSwgc3RyYXRlZ3ksIHVm bGFncyk7CiAJfQogCiAJaWYgKHJlbCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29ucGF0aF9leGVjLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGhfZXhlYy5j CmluZGV4IDgxNTY2OTVlOTdlLi40YjgzN2ZmMDc2NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2pzb25wYXRoX2V4ZWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNv bnBhdGhfZXhlYy5jCkBAIC01MzYsNyArNTM2LDcgQEAganNvbmJfcGF0aF9xdWVyeV9pbnRlcm5h bChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCB0eikKIAkJTWVtb3J5Q29udGV4dCBvbGRj b250ZXh0OwogCQlKc29uYgkgICAqdmFyczsKIAkJYm9vbAkJc2lsZW50OwotCQlKc29uVmFsdWVM aXN0IGZvdW5kID0gezB9OworCQlKc29uVmFsdWVMaXN0IGZvdW5kSlYgPSB7MH07CiAKIAkJZnVu Y2N0eCA9IFNSRl9GSVJTVENBTExfSU5JVCgpOwogCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4 dFN3aXRjaFRvKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CkBAIC01NDgsOSArNTQ4 LDkgQEAganNvbmJfcGF0aF9xdWVyeV9pbnRlcm5hbChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywg Ym9vbCB0eikKIAogCQkodm9pZCkgZXhlY3V0ZUpzb25QYXRoKGpwLCB2YXJzLCBnZXRKc29uUGF0 aFZhcmlhYmxlRnJvbUpzb25iLAogCQkJCQkJCSAgIGNvdW50VmFyaWFibGVzRnJvbUpzb25iLAot CQkJCQkJCSAgIGpiLCAhc2lsZW50LCAmZm91bmQsIHR6KTsKKwkJCQkJCQkgICBqYiwgIXNpbGVu dCwgJmZvdW5kSlYsIHR6KTsKIAotCQlmdW5jY3R4LT51c2VyX2ZjdHggPSBKc29uVmFsdWVMaXN0 R2V0TGlzdCgmZm91bmQpOworCQlmdW5jY3R4LT51c2VyX2ZjdHggPSBKc29uVmFsdWVMaXN0R2V0 TGlzdCgmZm91bmRKVik7CiAKIAkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwog CX0KQEAgLTE4NzksMjUgKzE4NzksMjUgQEAgZXhlY3V0ZUJvb2xJdGVtKEpzb25QYXRoRXhlY0Nv bnRleHQgKmN4dCwgSnNvblBhdGhJdGVtICpqc3AsCiAJCQkJICogY2hlY2sgdGhhdCB0aGVyZSBh cmUgbm8gZXJyb3JzIGF0IGFsbC4KIAkJCQkgKi8KIAkJCQlKc29uVmFsdWVMaXN0IHZhbHMgPSB7 MH07Ci0JCQkJSnNvblBhdGhFeGVjUmVzdWx0IHJlcyA9CisJCQkJSnNvblBhdGhFeGVjUmVzdWx0 IGV4ZWNyZXMgPQogCQkJCQlleGVjdXRlSXRlbU9wdFVud3JhcFJlc3VsdE5vVGhyb3coY3h0LCAm bGFyZywgamIsCiAJCQkJCQkJCQkJCQkJICBmYWxzZSwgJnZhbHMpOwogCi0JCQkJaWYgKGpwZXJJ c0Vycm9yKHJlcykpCisJCQkJaWYgKGpwZXJJc0Vycm9yKGV4ZWNyZXMpKQogCQkJCQlyZXR1cm4g anBiVW5rbm93bjsKIAogCQkJCXJldHVybiBKc29uVmFsdWVMaXN0SXNFbXB0eSgmdmFscykgPyBq cGJGYWxzZSA6IGpwYlRydWU7CiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JCQkJSnNvblBhdGhFeGVj UmVzdWx0IHJlcyA9CisJCQkJSnNvblBhdGhFeGVjUmVzdWx0IGV4ZWNyZXMgPQogCQkJCQlleGVj dXRlSXRlbU9wdFVud3JhcFJlc3VsdE5vVGhyb3coY3h0LCAmbGFyZywgamIsCiAJCQkJCQkJCQkJ CQkJICBmYWxzZSwgTlVMTCk7CiAKLQkJCQlpZiAoanBlcklzRXJyb3IocmVzKSkKKwkJCQlpZiAo anBlcklzRXJyb3IoZXhlY3JlcykpCiAJCQkJCXJldHVybiBqcGJVbmtub3duOwogCi0JCQkJcmV0 dXJuIHJlcyA9PSBqcGVyT2sgPyBqcGJUcnVlIDoganBiRmFsc2U7CisJCQkJcmV0dXJuIGV4ZWNy ZXMgPT0ganBlck9rID8ganBiVHJ1ZSA6IGpwYkZhbHNlOwogCQkJfQogCiAJCWRlZmF1bHQ6CkBA IC0yMDY2LDE2ICsyMDY2LDE2IEBAIGV4ZWN1dGVQcmVkaWNhdGUoSnNvblBhdGhFeGVjQ29udGV4 dCAqY3h0LCBKc29uUGF0aEl0ZW0gKnByZWQsCiAJCS8qIExvb3Agb3ZlciByaWdodCBhcmcgc2Vx dWVuY2Ugb3IgZG8gc2luZ2xlIHBhc3Mgb3RoZXJ3aXNlICovCiAJCXdoaWxlIChyYXJnID8gKHJ2 YWwgIT0gTlVMTCkgOiBmaXJzdCkKIAkJewotCQkJSnNvblBhdGhCb29sIHJlcyA9IGV4ZWMocHJl ZCwgbHZhbCwgcnZhbCwgcGFyYW0pOworCQkJSnNvblBhdGhCb29sIGJvb2xyZXMgPSBleGVjKHBy ZWQsIGx2YWwsIHJ2YWwsIHBhcmFtKTsKIAotCQkJaWYgKHJlcyA9PSBqcGJVbmtub3duKQorCQkJ aWYgKGJvb2xyZXMgPT0ganBiVW5rbm93bikKIAkJCXsKIAkJCQlpZiAoanNwU3RyaWN0QWJzZW5j ZU9mRXJyb3JzKGN4dCkpCiAJCQkJCXJldHVybiBqcGJVbmtub3duOwogCiAJCQkJZXJyb3IgPSB0 cnVlOwogCQkJfQotCQkJZWxzZSBpZiAocmVzID09IGpwYlRydWUpCisJCQllbHNlIGlmIChib29s cmVzID09IGpwYlRydWUpCiAJCQl7CiAJCQkJaWYgKCFqc3BTdHJpY3RBYnNlbmNlT2ZFcnJvcnMo Y3h0KSkKIAkJCQkJcmV0dXJuIGpwYlRydWU7CkBAIC00MTM2LDIwICs0MTM2LDIwIEBAIEpzb25U YWJsZUluaXRPcGFxdWUoVGFibGVGdW5jU2NhblN0YXRlICpzdGF0ZSwgaW50IG5hdHRzKQogCQlm b3Jib3RoKGV4cHJsYywgc3RhdGUtPnBhc3Npbmd2YWxleHBycywKIAkJCQluYW1lbGMsIGplLT5w YXNzaW5nX25hbWVzKQogCQl7Ci0JCQlFeHByU3RhdGUgICpzdGF0ZSA9IGxmaXJzdF9ub2RlKEV4 cHJTdGF0ZSwgZXhwcmxjKTsKKwkJCUV4cHJTdGF0ZSAgKmV4cHJzdGF0ZSA9IGxmaXJzdF9ub2Rl KEV4cHJTdGF0ZSwgZXhwcmxjKTsKIAkJCVN0cmluZwkgICAqbmFtZSA9IGxmaXJzdF9ub2RlKFN0 cmluZywgbmFtZWxjKTsKIAkJCUpzb25QYXRoVmFyaWFibGUgKnZhciA9IHBhbGxvYyhzaXplb2Yo KnZhcikpOwogCiAJCQl2YXItPm5hbWUgPSBwc3RyZHVwKG5hbWUtPnN2YWwpOwogCQkJdmFyLT5u YW1lbGVuID0gc3RybGVuKHZhci0+bmFtZSk7Ci0JCQl2YXItPnR5cGlkID0gZXhwclR5cGUoKE5v ZGUgKikgc3RhdGUtPmV4cHIpOwotCQkJdmFyLT50eXBtb2QgPSBleHByVHlwbW9kKChOb2RlICop IHN0YXRlLT5leHByKTsKKwkJCXZhci0+dHlwaWQgPSBleHByVHlwZSgoTm9kZSAqKSBleHByc3Rh dGUtPmV4cHIpOworCQkJdmFyLT50eXBtb2QgPSBleHByVHlwbW9kKChOb2RlICopIGV4cHJzdGF0 ZS0+ZXhwcik7CiAKIAkJCS8qCiAJCQkgKiBFdmFsdWF0ZSB0aGUgZXhwcmVzc2lvbiBhbmQgc2F2 ZSB0aGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgYnkKIAkJCSAqIEdldEpzb25QYXRoVmFyKCkuCiAJ CQkgKi8KLQkJCXZhci0+dmFsdWUgPSBFeGVjRXZhbEV4cHIoc3RhdGUsIHBzLT5wc19FeHByQ29u dGV4dCwKKwkJCXZhci0+dmFsdWUgPSBFeGVjRXZhbEV4cHIoZXhwcnN0YXRlLCBwcy0+cHNfRXhw ckNvbnRleHQsCiAJCQkJCQkJCQkgICZ2YXItPmlzbnVsbCk7CiAKIAkJCWFyZ3MgPSBsYXBwZW5k KGFyZ3MsIHZhcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFk ZV9zdXBwb3J0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMK aW5kZXggYTRmOGI0ZmFhOTAuLmNmYWE4ZjhhM2I3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCkBAIC0yMjcsOCArMjI3LDggQEAgYmluYXJ5X3VwZ3JhZGVf Y3JlYXRlX2VtcHR5X2V4dGVuc2lvbihQR19GVU5DVElPTl9BUkdTKQogCQlkZWNvbnN0cnVjdF9h cnJheV9idWlsdGluKHRleHRBcnJheSwgVEVYVE9JRCwgJnRleHREYXR1bXMsIE5VTEwsICZuZGF0 dW1zKTsKIAkJZm9yIChpID0gMDsgaSA8IG5kYXR1bXM7IGkrKykKIAkJewotCQkJY2hhcgkgICAq ZXh0TmFtZSA9IFRleHREYXR1bUdldENTdHJpbmcodGV4dERhdHVtc1tpXSk7Ci0JCQlPaWQJCQll eHRPaWQgPSBnZXRfZXh0ZW5zaW9uX29pZChleHROYW1lLCBmYWxzZSk7CisJCQljaGFyCSAgICpl eHROYW1lU3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyh0ZXh0RGF0dW1zW2ldKTsKKwkJCU9pZAkJ CWV4dE9pZCA9IGdldF9leHRlbnNpb25fb2lkKGV4dE5hbWVTdHIsIGZhbHNlKTsKIAogCQkJcmVx dWlyZWRFeHRlbnNpb25zID0gbGFwcGVuZF9vaWQocmVxdWlyZWRFeHRlbnNpb25zLCBleHRPaWQp OwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwppbmRleCAzODk0NDU3YWI0MC4uODRmNjA3NGYw ZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwpAQCAtMzI3MywxNCArMzI3MywxNCBAQCBhcHBl bmRTdHJpbmdJbmZvUmVnZXhwU3Vic3RyKFN0cmluZ0luZm8gc3RyLCB0ZXh0ICpyZXBsYWNlX3Rl eHQsCiAJCQkgKiBDb3B5IHRoZSB0ZXh0IHRoYXQgaXMgYmFjayByZWZlcmVuY2Ugb2YgcmVnZXhw LiAgTm90ZSBzbyBhbmQgZW8KIAkJCSAqIGFyZSBjb3VudGVkIGluIGNoYXJhY3RlcnMgbm90IGJ5 dGVzLgogCQkJICovCi0JCQljaGFyCSAgICpjaHVua19zdGFydDsKLQkJCWludAkJCWNodW5rX2xl bjsKKwkJCWNoYXIJICAgKnN0YXJ0OworCQkJaW50CQkJbGVuOwogCiAJCQlBc3NlcnQoc28gPj0g ZGF0YV9wb3MpOwotCQkJY2h1bmtfc3RhcnQgPSBzdGFydF9wdHI7Ci0JCQljaHVua19zdGFydCAr PSBjaGFybGVuX3RvX2J5dGVsZW4oY2h1bmtfc3RhcnQsIHNvIC0gZGF0YV9wb3MpOwotCQkJY2h1 bmtfbGVuID0gY2hhcmxlbl90b19ieXRlbGVuKGNodW5rX3N0YXJ0LCBlbyAtIHNvKTsKLQkJCWFw cGVuZEJpbmFyeVN0cmluZ0luZm8oc3RyLCBjaHVua19zdGFydCwgY2h1bmtfbGVuKTsKKwkJCXN0 YXJ0ID0gc3RhcnRfcHRyOworCQkJc3RhcnQgKz0gY2hhcmxlbl90b19ieXRlbGVuKHN0YXJ0LCBz byAtIGRhdGFfcG9zKTsKKwkJCWxlbiA9IGNoYXJsZW5fdG9fYnl0ZWxlbihzdGFydCwgZW8gLSBz byk7CisJCQlhcHBlbmRCaW5hcnlTdHJpbmdJbmZvKHN0ciwgc3RhcnQsIGxlbik7CiAJCX0KIAl9 CiB9CkBAIC00ODk5LDcgKzQ4OTksNyBAQCB0ZXh0X2Zvcm1hdChQR19GVU5DVElPTl9BUkdTKQog CQkJZWxzZQogCQkJewogCQkJCS8qIEZvciBsZXNzLXVzdWFsIGRhdGF0eXBlcywgY29udmVydCB0 byB0ZXh0IHRoZW4gdG8gaW50ICovCi0JCQkJY2hhcgkgICAqc3RyOworCQkJCWNoYXIJICAgKnM7 CiAKIAkJCQlpZiAodHlwaWQgIT0gcHJldl93aWR0aF90eXBlKQogCQkJCXsKQEAgLTQ5MTEsMTIg KzQ5MTEsMTIgQEAgdGV4dF9mb3JtYXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJcHJldl93aWR0 aF90eXBlID0gdHlwaWQ7CiAJCQkJfQogCi0JCQkJc3RyID0gT3V0cHV0RnVuY3Rpb25DYWxsKCZ0 eXBvdXRwdXRpbmZvX3dpZHRoLCB2YWx1ZSk7CisJCQkJcyA9IE91dHB1dEZ1bmN0aW9uQ2FsbCgm dHlwb3V0cHV0aW5mb193aWR0aCwgdmFsdWUpOwogCiAJCQkJLyogcGdfc3RydG9pbnQzMiB3aWxs IGNvbXBsYWluIGFib3V0IGJhZCBkYXRhIG9yIG92ZXJmbG93ICovCi0JCQkJd2lkdGggPSBwZ19z dHJ0b2ludDMyKHN0cik7CisJCQkJd2lkdGggPSBwZ19zdHJ0b2ludDMyKHMpOwogCi0JCQkJcGZy ZWUoc3RyKTsKKwkJCQlwZnJlZShzKTsKIAkJCX0KIAkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL2ZyZWVw YWdlLmMKaW5kZXggMjdkM2U2ZTEwMGMuLjk4MzZkODcyYWVjIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9tbWdyL2ZyZWVwYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9m cmVlcGFnZS5jCkBAIC0xNTg2LDcgKzE1ODYsNyBAQCBGcmVlUGFnZU1hbmFnZXJQdXRJbnRlcm5h bChGcmVlUGFnZU1hbmFnZXIgKmZwbSwgU2l6ZSBmaXJzdF9wYWdlLCBTaXplIG5wYWdlcywKIAlp ZiAocHJldmtleSAhPSBOVUxMICYmIHByZXZrZXktPmZpcnN0X3BhZ2UgKyBwcmV2a2V5LT5ucGFn ZXMgPj0gZmlyc3RfcGFnZSkKIAl7CiAJCWJvb2wJCXJlbW92ZV9uZXh0ID0gZmFsc2U7Ci0JCVNp emUJCXJlc3VsdDsKKwkJU2l6ZQkJbnByZXZwYWdlczsKIAogCQlBc3NlcnQocHJldmtleS0+Zmly c3RfcGFnZSArIHByZXZrZXktPm5wYWdlcyA9PSBmaXJzdF9wYWdlKTsKIAkJcHJldmtleS0+bnBh Z2VzID0gKGZpcnN0X3BhZ2UgLSBwcmV2a2V5LT5maXJzdF9wYWdlKSArIG5wYWdlczsKQEAgLTE2 MDYsNyArMTYwNiw3IEBAIEZyZWVQYWdlTWFuYWdlclB1dEludGVybmFsKEZyZWVQYWdlTWFuYWdl ciAqZnBtLCBTaXplIGZpcnN0X3BhZ2UsIFNpemUgbnBhZ2VzLAogCQkvKiBQdXQgdGhlIHNwYW4g b24gdGhlIGNvcnJlY3QgZnJlZWxpc3QgYW5kIHNhdmUgc2l6ZS4gKi8KIAkJRnJlZVBhZ2VQb3BT cGFuTGVhZGVyKGZwbSwgcHJldmtleS0+Zmlyc3RfcGFnZSk7CiAJCUZyZWVQYWdlUHVzaFNwYW5M ZWFkZXIoZnBtLCBwcmV2a2V5LT5maXJzdF9wYWdlLCBwcmV2a2V5LT5ucGFnZXMpOwotCQlyZXN1 bHQgPSBwcmV2a2V5LT5ucGFnZXM7CisJCW5wcmV2cGFnZXMgPSBwcmV2a2V5LT5ucGFnZXM7CiAK IAkJLyoKIAkJICogSWYgd2UgY29uc29saWRhdGVkIHdpdGggYm90aCB0aGUgcHJlY2VkaW5nIGFu ZCBmb2xsb3dpbmcgZW50cmllcywKQEAgLTE2MjEsNyArMTYyMSw3IEBAIEZyZWVQYWdlTWFuYWdl clB1dEludGVybmFsKEZyZWVQYWdlTWFuYWdlciAqZnBtLCBTaXplIGZpcnN0X3BhZ2UsIFNpemUg bnBhZ2VzLAogCQlpZiAocmVtb3ZlX25leHQpCiAJCQlGcmVlUGFnZUJ0cmVlUmVtb3ZlKGZwbSwg bnAsIG5pbmRleCk7CiAKLQkJcmV0dXJuIHJlc3VsdDsKKwkJcmV0dXJuIG5wcmV2cGFnZXM7CiAJ fQogCiAJLyogQ29uc29saWRhdGUgd2l0aCB0aGUgbmV4dCBlbnRyeSBpZiBwb3NzaWJsZS4gKi8K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMgYi9zcmMvYmluL3BnYmVuY2gv cGdiZW5jaC5jCmluZGV4IDY4Nzc0YTU5ZWZkLi40OGNiNTYzNjkwOCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ2JlbmNoL3BnYmVuY2guYworKysgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCkBA IC00NjYxLDcgKzQ2NjEsNyBAQCBkb0xvZyhUU3RhdGUgKnRocmVhZCwgQ1N0YXRlICpzdCwKIAkJ CWRvdWJsZQkJbGFnX3N1bTIgPSAwLjA7CiAJCQlkb3VibGUJCWxhZ19taW4gPSAwLjA7CiAJCQlk b3VibGUJCWxhZ19tYXggPSAwLjA7Ci0JCQlpbnQ2NAkJc2tpcHBlZCA9IDA7CisJCQlpbnQ2NAkJ c2tpcHMgPSAwOwogCQkJaW50NjQJCXNlcmlhbGl6YXRpb25fZmFpbHVyZXMgPSAwOwogCQkJaW50 NjQJCWRlYWRsb2NrX2ZhaWx1cmVzID0gMDsKIAkJCWludDY0CQlvdGhlcl9zcWxfZmFpbHVyZXMg PSAwOwpAQCAtNDY5MSw4ICs0NjkxLDggQEAgZG9Mb2coVFN0YXRlICp0aHJlYWQsIENTdGF0ZSAq c3QsCiAJCQkJCWxhZ19tYXgpOwogCiAJCQlpZiAobGF0ZW5jeV9saW1pdCkKLQkJCQlza2lwcGVk ID0gYWdnLT5za2lwcGVkOwotCQkJZnByaW50Zihsb2dmaWxlLCAiICIgSU5UNjRfRk9STUFULCBz a2lwcGVkKTsKKwkJCQlza2lwcyA9IGFnZy0+c2tpcHBlZDsKKwkJCWZwcmludGYobG9nZmlsZSwg IiAiIElOVDY0X0ZPUk1BVCwgc2tpcHMpOwogCiAJCQlpZiAobWF4X3RyaWVzICE9IDEpCiAJCQl7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCmluZGV4IDM2ZjI0NTAyODQyLi40NzJjZDJiNzgyYiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE3NTgs NyArMTc1OCw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5h bWUsCiAJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0UpCiAJewogCQlQ R3Jlc3VsdCAgICpyZXN1bHQgPSBOVUxMOwotCQlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5w b3B0OworCQlwcmludFF1ZXJ5T3B0IHBvcHQgPSBwc2V0LnBvcHQ7CiAJCWNoYXIJICAgKmZvb3Rl cnNbM10gPSB7TlVMTCwgTlVMTCwgTlVMTH07CiAKIAkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAw MDAwKQpAQCAtMTg5NSwxMiArMTg5NSwxMiBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25z dCBjaGFyICpzY2hlbWFuYW1lLAogCQkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTZXF1 ZW5jZSBcIiVzLiVzXCIiKSwKIAkJCQkJCQkgIHNjaGVtYW5hbWUsIHJlbGF0aW9ubmFtZSk7CiAK LQkJbXlvcHQuZm9vdGVycyA9IGZvb3RlcnM7Ci0JCW15b3B0LnRvcHQuZGVmYXVsdF9mb290ZXIg PSBmYWxzZTsKLQkJbXlvcHQudGl0bGUgPSB0aXRsZS5kYXRhOwotCQlteW9wdC50cmFuc2xhdGVf aGVhZGVyID0gdHJ1ZTsKKwkJcG9wdC5mb290ZXJzID0gZm9vdGVyczsKKwkJcG9wdC50b3B0LmRl ZmF1bHRfZm9vdGVyID0gZmFsc2U7CisJCXBvcHQudGl0bGUgPSB0aXRsZS5kYXRhOworCQlwb3B0 LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCi0JCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBz ZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKwkJcHJpbnRRdWVyeShyZXMsICZw b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CiAKIAkJZnJlZShmb290 ZXJzWzBdKTsKIAkJZnJlZShmb290ZXJzWzFdKTsKQEAgLTIzMTgsMTEgKzIzMTgsMTEgQEAgZGVz Y3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAogCQlpZiAoUFFu dHVwbGVzKHJlc3VsdCkgPT0gMSkKIAkJewotCQkJY2hhcgkgICAqc2NoZW1hbmFtZSA9IFBRZ2V0 dmFsdWUocmVzdWx0LCAwLCAwKTsKLQkJCWNoYXIJICAgKnJlbG5hbWUgPSBQUWdldHZhbHVlKHJl c3VsdCwgMCwgMSk7CisJCQljb25zdCBjaGFyICpzY2hlbWEgPSBQUWdldHZhbHVlKHJlc3VsdCwg MCwgMCk7CisJCQljb25zdCBjaGFyICpyZWxuYW1lID0gUFFnZXR2YWx1ZShyZXN1bHQsIDAsIDEp OwogCiAJCQlwcmludGZQUUV4cEJ1ZmZlcigmdG1wYnVmLCBfKCJPd25pbmcgdGFibGU6IFwiJXMu JXNcIiIpLAotCQkJCQkJCSAgc2NoZW1hbmFtZSwgcmVsbmFtZSk7CisJCQkJCQkJICBzY2hlbWEs IHJlbG5hbWUpOwogCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgdG1wYnVmLmRhdGEpOwog CQl9CiAJCVBRY2xlYXIocmVzdWx0KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9wcm9tcHQu YyBiL3NyYy9iaW4vcHNxbC9wcm9tcHQuYwppbmRleCA1OWEyY2VlZTA3YS4uOTQxZmE4OTQ5MTAg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9wcm9tcHQuYworKysgYi9zcmMvYmluL3BzcWwvcHJv bXB0LmMKQEAgLTIwMCwxMSArMjAwLDExIEBAIGdldF9wcm9tcHQocHJvbXB0U3RhdHVzX3Qgc3Rh dHVzLCBDb25kaXRpb25hbFN0YWNrIGNzdGFjaykKIAkJCQkJLyogcGlwZWxpbmUgc3RhdHVzICov CiAJCQkJY2FzZSAnUCc6CiAJCQkJCXsKLQkJCQkJCVBHcGlwZWxpbmVTdGF0dXMgc3RhdHVzID0g UFFwaXBlbGluZVN0YXR1cyhwc2V0LmRiKTsKKwkJCQkJCVBHcGlwZWxpbmVTdGF0dXMgcGlwZWxp bmVzdGF0dXMgPSBQUXBpcGVsaW5lU3RhdHVzKHBzZXQuZGIpOwogCi0JCQkJCQlpZiAoc3RhdHVz ID09IFBRX1BJUEVMSU5FX09OKQorCQkJCQkJaWYgKHBpcGVsaW5lc3RhdHVzID09IFBRX1BJUEVM SU5FX09OKQogCQkJCQkJCXN0cmxjcHkoYnVmLCAib24iLCBzaXplb2YoYnVmKSk7Ci0JCQkJCQll bHNlIGlmIChzdGF0dXMgPT0gUFFfUElQRUxJTkVfQUJPUlRFRCkKKwkJCQkJCWVsc2UgaWYgKHBp cGVsaW5lc3RhdHVzID09IFBRX1BJUEVMSU5FX0FCT1JURUQpCiAJCQkJCQkJc3RybGNweShidWYs ICJhYm9ydCIsIHNpemVvZihidWYpKTsKIAkJCQkJCWVsc2UKIAkJCQkJCQlzdHJsY3B5KGJ1Ziwg Im9mZiIsIHNpemVvZihidWYpKTsKQEAgLTM3MiwxMCArMzcyLDEyIEBAIGdldF9wcm9tcHQocHJv bXB0U3RhdHVzX3Qgc3RhdHVzLCBDb25kaXRpb25hbFN0YWNrIGNzdGFjaykKIAkvKiBDb21wdXRl IHRoZSB2aXNpYmxlIHdpZHRoIG9mIFBST01QVDEsIGZvciBQUk9NUFQyJ3MgJXcgKi8KIAlpZiAo cHJvbXB0X3N0cmluZyA9PSBwc2V0LnByb21wdDEpCiAJewotCQljaGFyCSAgICpwID0gZGVzdGlu YXRpb247Ci0JCWNoYXIJICAgKmVuZCA9IHAgKyBzdHJsZW4ocCk7CisJCWNvbnN0IGNoYXIgKmVu ZDsKIAkJYm9vbAkJdmlzaWJsZSA9IHRydWU7CiAKKwkJcCA9IChjb25zdCBjaGFyICopIGRlc3Rp bmF0aW9uOworCQllbmQgPSBwICsgc3RybGVuKHApOworCiAJCWxhc3RfcHJvbXB0MV93aWR0aCA9 IDA7CiAJCXdoaWxlICgqcCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2ZlX3V0aWxzL3ByaW50LmMg Yi9zcmMvZmVfdXRpbHMvcHJpbnQuYwppbmRleCA0ZDk3YWQyZGRlYi4uOTRlYTRkZmZlYTMgMTAw NjQ0Ci0tLSBhL3NyYy9mZV91dGlscy9wcmludC5jCisrKyBiL3NyYy9mZV91dGlscy9wcmludC5j CkBAIC05MzMsNyArOTMzLDcgQEAgcHJpbnRfYWxpZ25lZF90ZXh0KGNvbnN0IHByaW50VGFibGVD b250ZW50ICpjb250LCBGSUxFICpmb3V0LCBib29sIGlzX3BhZ2VyKQogCQlpZiAoIW9wdF90dXBs ZXNfb25seSkKIAkJewogCQkJaW50CQkJbW9yZV9jb2xfd3JhcHBpbmc7Ci0JCQlpbnQJCQljdXJy X25sX2xpbmU7CisJCQlpbnQJCQljdXJyX2xpbmU7CiAKIAkJCWlmIChvcHRfYm9yZGVyID09IDIp CiAJCQkJX3ByaW50X2hvcml6b250YWxfbGluZShjb2xfY291bnQsIHdpZHRoX3dyYXAsIG9wdF9i b3JkZXIsCkBAIC05NDUsNyArOTQ1LDcgQEAgcHJpbnRfYWxpZ25lZF90ZXh0KGNvbnN0IHByaW50 VGFibGVDb250ZW50ICpjb250LCBGSUxFICpmb3V0LCBib29sIGlzX3BhZ2VyKQogCQkJCQkJCSBj b2xfbGluZXB0cnNbaV0sIG1heF9ubF9saW5lc1tpXSk7CiAKIAkJCW1vcmVfY29sX3dyYXBwaW5n ID0gY29sX2NvdW50OwotCQkJY3Vycl9ubF9saW5lID0gMDsKKwkJCWN1cnJfbGluZSA9IDA7CiAJ CQlpZiAoY29sX2NvdW50ID4gMCkKIAkJCQltZW1zZXQoaGVhZGVyX2RvbmUsIGZhbHNlLCBjb2xf Y291bnQgKiBzaXplb2YoYm9vbCkpOwogCQkJd2hpbGUgKG1vcmVfY29sX3dyYXBwaW5nKQpAQCAt OTU1LDEyICs5NTUsMTIgQEAgcHJpbnRfYWxpZ25lZF90ZXh0KGNvbnN0IHByaW50VGFibGVDb250 ZW50ICpjb250LCBGSUxFICpmb3V0LCBib29sIGlzX3BhZ2VyKQogCiAJCQkJZm9yIChpID0gMDsg aSA8IGNvbnQtPm5jb2x1bW5zOyBpKyspCiAJCQkJewotCQkJCQlzdHJ1Y3QgbGluZXB0ciAqdGhp c19saW5lID0gY29sX2xpbmVwdHJzW2ldICsgY3Vycl9ubF9saW5lOworCQkJCQlzdHJ1Y3QgbGlu ZXB0ciAqdGhpc19saW5lID0gY29sX2xpbmVwdHJzW2ldICsgY3Vycl9saW5lOwogCQkJCQl1bnNp Z25lZCBpbnQgbmJzcGFjZTsKIAogCQkJCQlpZiAob3B0X2JvcmRlciAhPSAwIHx8CiAJCQkJCQko IWZvcm1hdC0+d3JhcF9yaWdodF9ib3JkZXIgJiYgaSA+IDApKQotCQkJCQkJZnB1dHMoY3Vycl9u bF9saW5lID8gZm9ybWF0LT5oZWFkZXJfbmxfbGVmdCA6ICIgIiwKKwkJCQkJCWZwdXRzKGN1cnJf bGluZSA/IGZvcm1hdC0+aGVhZGVyX25sX2xlZnQgOiAiICIsCiAJCQkJCQkJICBmb3V0KTsKIAog CQkJCQlpZiAoIWhlYWRlcl9kb25lW2ldKQpAQCAtOTg3LDcgKzk4Nyw3IEBAIHByaW50X2FsaWdu ZWRfdGV4dChjb25zdCBwcmludFRhYmxlQ29udGVudCAqY29udCwgRklMRSAqZm91dCwgYm9vbCBp c19wYWdlcikKIAkJCQkJaWYgKG9wdF9ib3JkZXIgIT0gMCAmJiBjb2xfY291bnQgPiAwICYmIGkg PCBjb2xfY291bnQgLSAxKQogCQkJCQkJZnB1dHMoZGZvcm1hdC0+bWlkdnJ1bGUsIGZvdXQpOwog CQkJCX0KLQkJCQljdXJyX25sX2xpbmUrKzsKKwkJCQljdXJyX2xpbmUrKzsKIAogCQkJCWlmIChv cHRfYm9yZGVyID09IDIpCiAJCQkJCWZwdXRzKGRmb3JtYXQtPnJpZ2h0dnJ1bGUsIGZvdXQpOwpk aWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCmluZGV4IGMzYTI0NDhkY2U1Li4yNDE4NWEyNjAyZCAx MDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAtMzk5OSw3ICszOTk5LDcgQEAga2VlcF9n b2luZzoJCQkJCQkvKiBXZSB3aWxsIGNvbWUgYmFjayB0byBoZXJlIHVudGlsIHRoZXJlIGlzCiAJ CQkJaW50CQkJbXNnTGVuZ3RoOwogCQkJCWludAkJCWF2YWlsOwogCQkJCUF1dGhSZXF1ZXN0IGFy ZXE7Ci0JCQkJaW50CQkJcmVzOworCQkJCWludAkJCXN0YXR1czsKIAkJCQlib29sCQlhc3luYzsK IAogCQkJCS8qCkBAIC00MTk4LDkgKzQxOTgsOSBAQCBrZWVwX2dvaW5nOgkJCQkJCS8qIFdlIHdp bGwgY29tZSBiYWNrIHRvIGhlcmUgdW50aWwgdGhlcmUgaXMKIAkJCQkgKiBOb3RlIHRoYXQgY29u bi0+cGdob3N0IG11c3QgYmUgbm9uLU5VTEwgaWYgd2UgYXJlIGdvaW5nIHRvCiAJCQkJICogYXZv aWQgdGhlIEtlcmJlcm9zIGNvZGUgZG9pbmcgYSBob3N0bmFtZSBsb29rLXVwLgogCQkJCSAqLwot CQkJCXJlcyA9IHBnX2ZlX3NlbmRhdXRoKGFyZXEsIG1zZ0xlbmd0aCwgY29ubiwgJmFzeW5jKTsK KwkJCQlzdGF0dXMgPSBwZ19mZV9zZW5kYXV0aChhcmVxLCBtc2dMZW5ndGgsIGNvbm4sICZhc3lu Yyk7CiAKLQkJCQlpZiAoYXN5bmMgJiYgKHJlcyA9PSBTVEFUVVNfT0spKQorCQkJCWlmIChhc3lu YyAmJiAoc3RhdHVzID09IFNUQVRVU19PSykpCiAJCQkJewogCQkJCQkvKgogCQkJCQkgKiBXZSds bCBjb21lIGJhY2sgbGF0ZXIgb25jZSB3ZSdyZSByZWFkeSB0byByZXNwb25kLgpAQCAtNDIxNyw3 ICs0MjE3LDcgQEAga2VlcF9nb2luZzoJCQkJCQkvKiBXZSB3aWxsIGNvbWUgYmFjayB0byBoZXJl IHVudGlsIHRoZXJlIGlzCiAJCQkJICovCiAJCQkJY29ubi0+aW5TdGFydCA9IGNvbm4tPmluQ3Vy c29yOwogCi0JCQkJaWYgKHJlcyAhPSBTVEFUVVNfT0spCisJCQkJaWYgKHN0YXR1cyAhPSBTVEFU VVNfT0spCiAJCQkJewogCQkJCQkvKgogCQkJCQkgKiBPQXV0aCBjb25uZWN0aW9ucyBtYXkgcGVy Zm9ybSB0d28tc3RlcCBkaXNjb3ZlcnksIHdoZXJlCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQp Cgo= --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0005-cleanup-avoid-local-wal_level-and-wal_segment_siz.patch" Content-Disposition: attachment; filename="v4-0005-cleanup-avoid-local-wal_level-and-wal_segment_siz.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7lh4 RnJvbSAzZTAyNDM5MWFiMzY2ZWE4OTBhMmYyOGI3YWJhNjZlZTVkZTljMDZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDEzOjQ1OjA1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwNS8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgd2FsX2xldmVsIGFuZCB3YWxfc2VnbWVudF9zaXplCiBi ZWluZyBzaGFkb3dlZCBieSBnbG9iYWxzCgpUaGlzIGNvbW1pdCBmaXhlcyBjYXNlcyB3aGVyZSBs b2NhbCB2YXJpYWJsZXMgbmFtZWQgd2FsX2xldmVsIGFuZAp3YWxfc2VnbWVudF9zaXplIHdlcmUg c2hhZG93ZWQgYnkgZ2xvYmFsIGlkZW50aWZpZXJzIG9mIHRoZSBzYW1lIG5hbWVzLgpUaGUgbG9j YWwgdmFyaWFibGVzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFkb3dlZCBi eSB0aGUKZ2xvYmFscy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hnby5jb20+ClJldmlld2Vk LWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+CkRpc2N1c3Npb246IGh0dHBz Oi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3 Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNj L3hsb2dkZXNjLmMgIHwgMTIgKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9ncmVhZGVyLmMgfCAgNCArKy0tCiBzcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRy b2xkYXRhLmMgfCAgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy94 bG9nZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL3hsb2dkZXNjLmMKaW5kZXgg Y2Q2YzJhMmY2NTAuLmJmNmExMjBhZjY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MveGxvZ2Rlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MveGxv Z2Rlc2MuYwpAQCAtMzQsMTcgKzM0LDE3IEBAIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRy eSB3YWxfbGV2ZWxfb3B0aW9uc1tdID0gewogfTsKIAogLyoKLSAqIEZpbmQgYSBzdHJpbmcgcmVw cmVzZW50YXRpb24gZm9yIHdhbF9sZXZlbAorICogRmluZCBhIHN0cmluZyByZXByZXNlbnRhdGlv biBmb3Igd2FsIGxldmVsCiAgKi8KIHN0YXRpYyBjb25zdCBjaGFyICoKLWdldF93YWxfbGV2ZWxf c3RyaW5nKGludCB3YWxfbGV2ZWwpCitnZXRfd2FsX2xldmVsX3N0cmluZyhpbnQgbGV2ZWwpCiB7 CiAJY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5ICplbnRyeTsKIAljb25zdCBjaGFyICp3 YWxfbGV2ZWxfc3RyID0gIj8iOwogCiAJZm9yIChlbnRyeSA9IHdhbF9sZXZlbF9vcHRpb25zOyBl bnRyeS0+bmFtZTsgZW50cnkrKykKIAl7Ci0JCWlmIChlbnRyeS0+dmFsID09IHdhbF9sZXZlbCkK KwkJaWYgKGVudHJ5LT52YWwgPT0gbGV2ZWwpCiAJCXsKIAkJCXdhbF9sZXZlbF9zdHIgPSBlbnRy eS0+bmFtZTsKIAkJCWJyZWFrOwpAQCAtMTYyLDEwICsxNjIsMTAgQEAgeGxvZ19kZXNjKFN0cmlu Z0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAl9CiAJZWxzZSBpZiAoaW5mbyA9 PSBYTE9HX0NIRUNLUE9JTlRfUkVETykKIAl7Ci0JCWludAkJCXdhbF9sZXZlbDsKKwkJaW50CQkJ bGV2ZWw7CiAKLQkJbWVtY3B5KCZ3YWxfbGV2ZWwsIHJlYywgc2l6ZW9mKGludCkpOwotCQlhcHBl bmRTdHJpbmdJbmZvKGJ1ZiwgIndhbF9sZXZlbCAlcyIsIGdldF93YWxfbGV2ZWxfc3RyaW5nKHdh bF9sZXZlbCkpOworCQltZW1jcHkoJmxldmVsLCByZWMsIHNpemVvZihpbnQpKTsKKwkJYXBwZW5k U3RyaW5nSW5mbyhidWYsICJ3YWxfbGV2ZWwgJXMiLCBnZXRfd2FsX2xldmVsX3N0cmluZyhsZXZl bCkpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z3JlYWRlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jCmluZGV4 IDljYzc0ODhlODkyLi4wYWU0ZTA1ZjhmMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZ3JlYWRlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2dyZWFkZXIuYwpAQCAtMTA0LDcgKzEwNCw3IEBAIFhMb2dSZWFkZXJTZXREZWNvZGVCdWZmZXIo WExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKICAqIFJl dHVybnMgTlVMTCBpZiB0aGUgeGxvZ3JlYWRlciBjb3VsZG4ndCBiZSBhbGxvY2F0ZWQuCiAgKi8K IFhMb2dSZWFkZXJTdGF0ZSAqCi1YTG9nUmVhZGVyQWxsb2NhdGUoaW50IHdhbF9zZWdtZW50X3Np emUsIGNvbnN0IGNoYXIgKndhbGRpciwKK1hMb2dSZWFkZXJBbGxvY2F0ZShpbnQgd2FsX3NlZ19z aXplLCBjb25zdCBjaGFyICp3YWxkaXIsCiAJCQkJICAgWExvZ1JlYWRlclJvdXRpbmUgKnJvdXRp bmUsIHZvaWQgKnByaXZhdGVfZGF0YSkKIHsKIAlYTG9nUmVhZGVyU3RhdGUgKnN0YXRlOwpAQCAt MTM0LDcgKzEzNCw3IEBAIFhMb2dSZWFkZXJBbGxvY2F0ZShpbnQgd2FsX3NlZ21lbnRfc2l6ZSwg Y29uc3QgY2hhciAqd2FsZGlyLAogCX0KIAogCS8qIEluaXRpYWxpemUgc2VnbWVudCBpbmZvLiAq LwotCVdBTE9wZW5TZWdtZW50SW5pdCgmc3RhdGUtPnNlZywgJnN0YXRlLT5zZWdjeHQsIHdhbF9z ZWdtZW50X3NpemUsCisJV0FMT3BlblNlZ21lbnRJbml0KCZzdGF0ZS0+c2VnLCAmc3RhdGUtPnNl Z2N4dCwgd2FsX3NlZ19zaXplLAogCQkJCQkgICB3YWxkaXIpOwogCiAJLyogc3lzdGVtX2lkZW50 aWZpZXIgaW5pdGlhbGl6ZWQgdG8gemVyb2VzIGFib3ZlICovCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMgYi9zcmMvYmluL3BnX2NvbnRyb2xkYXRh L3BnX2NvbnRyb2xkYXRhLmMKaW5kZXggMzBhZDQ2OTEyZTEuLjhjYjU2ZjEyMTQ2IDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKKysrIGIvc3JjL2Jp bi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCkBAIC03MCw5ICs3MCw5IEBAIGRiU3Rh dGUoREJTdGF0ZSBzdGF0ZSkKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKgotd2FsX2xldmVsX3N0 cihXYWxMZXZlbCB3YWxfbGV2ZWwpCit3YWxfbGV2ZWxfc3RyKFdhbExldmVsIGxldmVsKQogewot CXN3aXRjaCAod2FsX2xldmVsKQorCXN3aXRjaCAobGV2ZWwpCiAJewogCQljYXNlIFdBTF9MRVZF TF9NSU5JTUFMOgogCQkJcmV0dXJuICJtaW5pbWFsIjsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1 NCkKCg== --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0008-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v4-0008-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7lk7 RnJvbSBkMmU1ZTQwMTgzMTg2N2E2YTE4NGYwMGM4OGJkNTY5YWVmNjNhNmUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjU5OjUzICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwOC8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIGZpbGVfb3BzLmMKClRoaXMgY29tbWl0IGZpeGVzIHNldmVyYWwgY2Fz ZXMgaW4gZmlsZV9vcHMuYyB3aGVyZSBsb2NhbCB2YXJpYWJsZXMgdXNlZApuYW1lcyB0aGF0IGNv bmZsaWN0ZWQgd2l0aCBzdGF0aWMgdmFyaWFibGVzIGRlZmluZWQgYXQgZmlsZSBzY29wZS4gVGhl CmxvY2FsIGlkZW50aWZpZXJzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFk b3dlZCBieSB0aGUgZmlsZS0Kc2NvcGUgdmFyaWFibGVzIGFuZCByZW1haW4gdW5hbWJpZ3VvdXMg d2l0aGluIHRoZWlyIHJlc3BlY3RpdmUgYmxvY2tzLgoKQXV0aG9yOiBDaGFvIExpIDxsaWNAaGln aGdvLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUVvV3gya1EyeDVnTWFq OHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFpbC5nbWFpbC5jb20KLS0tCiBz cmMvYmluL3BnX3Jld2luZC9maWxlX29wcy5jIHwgNTAgKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZV9vcHMuYyBiL3NyYy9i aW4vcGdfcmV3aW5kL2ZpbGVfb3BzLmMKaW5kZXggNTU2NTljZTIwMWYuLjM4NjcyMzNlOGE4IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3Jld2luZC9maWxlX29wcy5jCisrKyBiL3NyYy9iaW4vcGdf cmV3aW5kL2ZpbGVfb3BzLmMKQEAgLTE4Niw0MSArMTg2LDQxIEBAIGNyZWF0ZV90YXJnZXQoZmls ZV9lbnRyeV90ICplbnRyeSkKIHZvaWQKIHJlbW92ZV90YXJnZXRfZmlsZShjb25zdCBjaGFyICpw YXRoLCBib29sIG1pc3Npbmdfb2spCiB7Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhdOworCWNo YXIJCXBhdGhidWZbTUFYUEdQQVRIXTsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47CiAKLQlz bnByaW50Zihkc3RwYXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0 LCBwYXRoKTsKLQlpZiAodW5saW5rKGRzdHBhdGgpICE9IDApCisJc25wcmludGYocGF0aGJ1Ziwg c2l6ZW9mKHBhdGhidWYpLCAiJXMvJXMiLCBkYXRhZGlyX3RhcmdldCwgcGF0aCk7CisJaWYgKHVu bGluayhwYXRoYnVmKSAhPSAwKQogCXsKIAkJaWYgKGVycm5vID09IEVOT0VOVCAmJiBtaXNzaW5n X29rKQogCQkJcmV0dXJuOwogCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVtb3ZlIGZpbGUgXCIl c1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsKIAl9CiB9CiAKIHZvaWQK IHRydW5jYXRlX3RhcmdldF9maWxlKGNvbnN0IGNoYXIgKnBhdGgsIG9mZl90IG5ld3NpemUpCiB7 Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhdOworCWNoYXIJCXBhdGhidWZbTUFYUEdQQVRIXTsK IAlpbnQJCQlmZDsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47CiAKLQlzbnByaW50Zihkc3Rw YXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlz bnByaW50ZihwYXRoYnVmLCBzaXplb2YocGF0aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0 LCBwYXRoKTsKIAotCWZkID0gb3Blbihkc3RwYXRoLCBPX1dST05MWSwgcGdfZmlsZV9jcmVhdGVf bW9kZSk7CisJZmQgPSBvcGVuKHBhdGhidWYsIE9fV1JPTkxZLCBwZ19maWxlX2NyZWF0ZV9tb2Rl KTsKIAlpZiAoZmQgPCAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIg Zm9yIHRydW5jYXRpb246ICVtIiwKLQkJCQkgZHN0cGF0aCk7CisJCQkJIHBhdGhidWYpOwogCiAJ aWYgKGZ0cnVuY2F0ZShmZCwgbmV3c2l6ZSkgIT0gMCkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCB0 cnVuY2F0ZSBmaWxlIFwiJXNcIiB0byAldTogJW0iLAotCQkJCSBkc3RwYXRoLCAodW5zaWduZWQg aW50KSBuZXdzaXplKTsKKwkJCQkgcGF0aGJ1ZiwgKHVuc2lnbmVkIGludCkgbmV3c2l6ZSk7CiAK IAljbG9zZShmZCk7CiB9CkBAIC0yMjgsNTcgKzIyOCw1NyBAQCB0cnVuY2F0ZV90YXJnZXRfZmls ZShjb25zdCBjaGFyICpwYXRoLCBvZmZfdCBuZXdzaXplKQogc3RhdGljIHZvaWQKIGNyZWF0ZV90 YXJnZXRfZGlyKGNvbnN0IGNoYXIgKnBhdGgpCiB7Ci0JY2hhcgkJZHN0cGF0aFtNQVhQR1BBVEhd OworCWNoYXIJCXBhdGhidWZbTUFYUEdQQVRIXTsKIAogCWlmIChkcnlfcnVuKQogCQlyZXR1cm47 CiAKLQlzbnByaW50Zihkc3RwYXRoLCBzaXplb2YoZHN0cGF0aCksICIlcy8lcyIsIGRhdGFkaXJf dGFyZ2V0LCBwYXRoKTsKLQlpZiAobWtkaXIoZHN0cGF0aCwgcGdfZGlyX2NyZWF0ZV9tb2RlKSAh PSAwKQorCXNucHJpbnRmKHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgIiVzLyVzIiwgZGF0YWRp cl90YXJnZXQsIHBhdGgpOworCWlmIChta2RpcihwYXRoYnVmLCBwZ19kaXJfY3JlYXRlX21vZGUp ICE9IDApCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVt IiwKLQkJCQkgZHN0cGF0aCk7CisJCQkJIHBhdGhidWYpOwogfQogCiBzdGF0aWMgdm9pZAogcmVt b3ZlX3RhcmdldF9kaXIoY29uc3QgY2hhciAqcGF0aCkKIHsKLQljaGFyCQlkc3RwYXRoW01BWFBH UEFUSF07CisJY2hhcgkJcGF0aGJ1ZltNQVhQR1BBVEhdOwogCiAJaWYgKGRyeV9ydW4pCiAJCXJl dHVybjsKIAotCXNucHJpbnRmKGRzdHBhdGgsIHNpemVvZihkc3RwYXRoKSwgIiVzLyVzIiwgZGF0 YWRpcl90YXJnZXQsIHBhdGgpOwotCWlmIChybWRpcihkc3RwYXRoKSAhPSAwKQorCXNucHJpbnRm KHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgIiVzLyVzIiwgZGF0YWRpcl90YXJnZXQsIHBhdGgp OworCWlmIChybWRpcihwYXRoYnVmKSAhPSAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IHJlbW92 ZSBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsK IH0KIAogc3RhdGljIHZvaWQKIGNyZWF0ZV90YXJnZXRfc3ltbGluayhjb25zdCBjaGFyICpwYXRo LCBjb25zdCBjaGFyICpsaW5rKQogewotCWNoYXIJCWRzdHBhdGhbTUFYUEdQQVRIXTsKKwljaGFy CQlwYXRoYnVmW01BWFBHUEFUSF07CiAKIAlpZiAoZHJ5X3J1bikKIAkJcmV0dXJuOwogCi0Jc25w cmludGYoZHN0cGF0aCwgc2l6ZW9mKGRzdHBhdGgpLCAiJXMvJXMiLCBkYXRhZGlyX3RhcmdldCwg cGF0aCk7Ci0JaWYgKHN5bWxpbmsobGluaywgZHN0cGF0aCkgIT0gMCkKKwlzbnByaW50ZihwYXRo YnVmLCBzaXplb2YocGF0aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlp ZiAoc3ltbGluayhsaW5rLCBwYXRoYnVmKSAhPSAwKQogCQlwZ19mYXRhbCgiY291bGQgbm90IGNy ZWF0ZSBzeW1ib2xpYyBsaW5rIGF0IFwiJXNcIjogJW0iLAotCQkJCSBkc3RwYXRoKTsKKwkJCQkg cGF0aGJ1Zik7CiB9CiAKIHN0YXRpYyB2b2lkCiByZW1vdmVfdGFyZ2V0X3N5bWxpbmsoY29uc3Qg Y2hhciAqcGF0aCkKIHsKLQljaGFyCQlkc3RwYXRoW01BWFBHUEFUSF07CisJY2hhcgkJcGF0aGJ1 ZltNQVhQR1BBVEhdOwogCiAJaWYgKGRyeV9ydW4pCiAJCXJldHVybjsKIAotCXNucHJpbnRmKGRz dHBhdGgsIHNpemVvZihkc3RwYXRoKSwgIiVzLyVzIiwgZGF0YWRpcl90YXJnZXQsIHBhdGgpOwot CWlmICh1bmxpbmsoZHN0cGF0aCkgIT0gMCkKKwlzbnByaW50ZihwYXRoYnVmLCBzaXplb2YocGF0 aGJ1ZiksICIlcy8lcyIsIGRhdGFkaXJfdGFyZ2V0LCBwYXRoKTsKKwlpZiAodW5saW5rKHBhdGhi dWYpICE9IDApCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmVtb3ZlIHN5bWJvbGljIGxpbmsgXCIl c1wiOiAlbSIsCi0JCQkJIGRzdHBhdGgpOworCQkJCSBwYXRoYnVmKTsKIH0KIAogLyoKLS0gCjIu MzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0010-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v4-0010-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7lm9 RnJvbSA2NmNkYzY3YjIwYjJjOTJmYzdlZjg1MWU0YmEwMWQ3NmQyZDE5M2ZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE1OjI2OjUxICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAxMC8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIHNldmVyYWwgZmlsZXMKClRoaXMgY29tbWl0IGZpeGVzIG11bHRpcGxl IGNhc2VzIHdoZXJlIGxvY2FsIHZhcmlhYmxlcyB1c2VkIG5hbWVzIHRoYXQKY29uZmxpY3RlZCB3 aXRoIHN0YXRpYyB2YXJpYWJsZXMgZGVmaW5lZCBhdCBmaWxlIHNjb3BlLiBUaGUgYWZmZWN0ZWQK bG9jYWxzIGFyZSByZW5hbWVkIHNvIHRoZXkgYXJlIG5vIGxvbmdlciBzaGFkb3dlZCBieSB0aGUg ZmlsZS1zY29wZQppZGVudGlmaWVycyBhbmQgcmVtYWluIHVuYW1iaWd1b3VzIHdpdGhpbiB0aGVp ciByZXNwZWN0aXZlIHNjb3Blcy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hnby5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0SExKMz1qZkMr cDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8IDYgKysrLS0tCiBzcmMvYmluL3BnX2N0bC9wZ19j dGwuYyAgICAgICAgICAgICAgIHwgNiArKystLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxs LmMgICAgICAgICAgfCA2ICsrKy0tLQogc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5j ICAgICB8IDYgKysrLS0tCiBzcmMvYmluL3BnX3Rlc3RfZnN5bmMvcGdfdGVzdF9mc3luYy5jIHwg NiArKystLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggNWU3YmQ5MzNhZmMu LmRhOGE3NjA5ZDg2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwcklu dGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTQ3 MSw3ICs0NzEsNyBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4 dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkgKiBUaGlzIGFycmF5IGhhcyB0byBiZSBpbiB0 aGUgc2FtZSBvcmRlciBhcyBlbnVtIEV4cHJFdmFsT3AuCiAJICovCiAjaWYgZGVmaW5lZChFRU9f VVNFX0NPTVBVVEVEX0dPVE8pCi0Jc3RhdGljIGNvbnN0IHZvaWQgKmNvbnN0IGRpc3BhdGNoX3Rh YmxlW10gPSB7CisJc3RhdGljIGNvbnN0IHZvaWQgKmNvbnN0IF9kaXNwYXRjaF90YWJsZVtdID0g ewogCQkmJkNBU0VfRUVPUF9ET05FX1JFVFVSTiwKIAkJJiZDQVNFX0VFT1BfRE9ORV9OT19SRVRV Uk4sCiAJCSYmQ0FTRV9FRU9QX0lOTkVSX0ZFVENIU09NRSwKQEAgLTU5NSwxMSArNTk1LDExIEBA IEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwg Ym9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9MQVNUCiAJfTsKIAotCVN0YXRpY0Fzc2VydERl Y2wobGVuZ3Rob2YoZGlzcGF0Y2hfdGFibGUpID09IEVFT1BfTEFTVCArIDEsCisJU3RhdGljQXNz ZXJ0RGVjbChsZW5ndGhvZihfZGlzcGF0Y2hfdGFibGUpID09IEVFT1BfTEFTVCArIDEsCiAJCQkJ CSAiZGlzcGF0Y2hfdGFibGUgb3V0IG9mIHdoYWNrIHdpdGggRXhwckV2YWxPcCIpOwogCiAJaWYg KHVubGlrZWx5KHN0YXRlID09IE5VTEwpKQotCQlyZXR1cm4gUG9pbnRlckdldERhdHVtKGRpc3Bh dGNoX3RhYmxlKTsKKwkJcmV0dXJuIFBvaW50ZXJHZXREYXR1bShfZGlzcGF0Y2hfdGFibGUpOwog I2Vsc2UKIAlBc3NlcnQoc3RhdGUgIT0gTlVMTCk7CiAjZW5kaWYJCQkJCQkJLyogRUVPX1VTRV9D T01QVVRFRF9HT1RPICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYyBiL3Ny Yy9iaW4vcGdfY3RsL3BnX2N0bC5jCmluZGV4IDRmNjY2ZDkxMDM2Li5kMmI4ZDgzZDFjYSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKKysrIGIvc3JjL2Jpbi9wZ19jdGwvcGdf Y3RsLmMKQEAgLTg3MywxOCArODczLDE4IEBAIHRyYXBfc2lnaW50X2R1cmluZ19zdGFydHVwKFNJ R05BTF9BUkdTKQogfQogCiBzdGF0aWMgY2hhciAqCi1maW5kX290aGVyX2V4ZWNfb3JfZGllKGNv bnN0IGNoYXIgKmFyZ3YwLCBjb25zdCBjaGFyICp0YXJnZXQsIGNvbnN0IGNoYXIgKnZlcnNpb25z dHIpCitmaW5kX290aGVyX2V4ZWNfb3JfZGllKGNvbnN0IGNoYXIgKm15YXJndjAsIGNvbnN0IGNo YXIgKnRhcmdldCwgY29uc3QgY2hhciAqdmVyc2lvbnN0cikKIHsKIAlpbnQJCQlyZXQ7CiAJY2hh cgkgICAqZm91bmRfcGF0aDsKIAogCWZvdW5kX3BhdGggPSBwZ19tYWxsb2MoTUFYUEdQQVRIKTsK IAotCWlmICgocmV0ID0gZmluZF9vdGhlcl9leGVjKGFyZ3YwLCB0YXJnZXQsIHZlcnNpb25zdHIs IGZvdW5kX3BhdGgpKSA8IDApCisJaWYgKChyZXQgPSBmaW5kX290aGVyX2V4ZWMobXlhcmd2MCwg dGFyZ2V0LCB2ZXJzaW9uc3RyLCBmb3VuZF9wYXRoKSkgPCAwKQogCXsKIAkJY2hhcgkJZnVsbF9w YXRoW01BWFBHUEFUSF07CiAKLQkJaWYgKGZpbmRfbXlfZXhlYyhhcmd2MCwgZnVsbF9wYXRoKSA8 IDApCisJCWlmIChmaW5kX215X2V4ZWMobXlhcmd2MCwgZnVsbF9wYXRoKSA8IDApCiAJCQlzdHJs Y3B5KGZ1bGxfcGF0aCwgcHJvZ25hbWUsIHNpemVvZihmdWxsX3BhdGgpKTsKIAogCQlpZiAocmV0 ID09IC0xKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKaW5kZXggYmI0NTFjMWJhZTEuLjVkYzA2YjRkMmI5IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wYWxsLmMKQEAgLTE4MTQsMjAgKzE4MTQsMjAgQEAgZHVtcFRpbWVzdGFtcChj b25zdCBjaGFyICptc2cpCiAgKiByZWFkX2R1bXBhbGxfZmlsdGVycyAtIHJldHJpZXZlIGRhdGFi YXNlIGlkZW50aWZpZXIgcGF0dGVybnMgZnJvbSBmaWxlCiAgKgogICogUGFyc2UgdGhlIHNwZWNp ZmllZCBmaWx0ZXIgZmlsZSBmb3IgaW5jbHVkZSBhbmQgZXhjbHVkZSBwYXR0ZXJucywgYW5kIGFk ZAotICogdGhlbSB0byB0aGUgcmVsZXZhbnQgbGlzdHMuICBJZiB0aGUgZmlsZW5hbWUgaXMgIi0i IHRoZW4gZmlsdGVycyB3aWxsIGJlCisgKiB0aGVtIHRvIHRoZSByZWxldmFudCBsaXN0cy4gIElm IHRoZSBmbmFtZSBpcyAiLSIgdGhlbiBmaWx0ZXJzIHdpbGwgYmUKICAqIHJlYWQgZnJvbSBTVERJ TiByYXRoZXIgdGhhbiBhIGZpbGUuCiAgKgogICogQXQgdGhlIG1vbWVudCwgdGhlIG9ubHkgYWxs b3dlZCBmaWx0ZXIgaXMgZm9yIGRhdGFiYXNlIGV4Y2x1c2lvbi4KICAqLwogc3RhdGljIHZvaWQK LXJlYWRfZHVtcGFsbF9maWx0ZXJzKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBTaW1wbGVTdHJpbmdM aXN0ICpwYXR0ZXJuKQorcmVhZF9kdW1wYWxsX2ZpbHRlcnMoY29uc3QgY2hhciAqZm5hbWUsIFNp bXBsZVN0cmluZ0xpc3QgKnBhdHRlcm4pCiB7CiAJRmlsdGVyU3RhdGVEYXRhIGZzdGF0ZTsKIAlj aGFyCSAgICpvYmpuYW1lOwogCUZpbHRlckNvbW1hbmRUeXBlIGNvbXR5cGU7CiAJRmlsdGVyT2Jq ZWN0VHlwZSBvYmp0eXBlOwogCi0JZmlsdGVyX2luaXQoJmZzdGF0ZSwgZmlsZW5hbWUsIGV4aXQp OworCWZpbHRlcl9pbml0KCZmc3RhdGUsIGZuYW1lLCBleGl0KTsKIAogCXdoaWxlIChmaWx0ZXJf cmVhZF9pdGVtKCZmc3RhdGUsICZvYmpuYW1lLCAmY29tdHlwZSwgJm9ianR5cGUpKQogCXsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdf cmVzZXR3YWwvcGdfcmVzZXR3YWwuYwppbmRleCA4ZDVkOTgwNTI3OS4uNWI1MjQ5NTM3ZTYgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYworKysgYi9zcmMvYmlu L3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKQEAgLTcxOSwxNSArNzE5LDE1IEBAIEd1ZXNzQ29u dHJvbFZhbHVlcyh2b2lkKQogCiAKIC8qCi0gKiBQcmludCB0aGUgZ3Vlc3NlZCBwZ19jb250cm9s IHZhbHVlcyB3aGVuIHdlIGhhZCB0byBndWVzcy4KKyAqIFByaW50IHRoZSBiR3Vlc3NlZCBwZ19j b250cm9sIHZhbHVlcyB3aGVuIHdlIGhhZCB0byBndWVzcy4KICAqCiAgKiBOQjogdGhpcyBkaXNw bGF5IHNob3VsZCBiZSBqdXN0IHRob3NlIGZpZWxkcyB0aGF0IHdpbGwgbm90IGJlCiAgKiByZXNl dCBieSBSZXdyaXRlQ29udHJvbEZpbGUoKS4KICAqLwogc3RhdGljIHZvaWQKLVByaW50Q29udHJv bFZhbHVlcyhib29sIGd1ZXNzZWQpCitQcmludENvbnRyb2xWYWx1ZXMoYm9vbCBiR3Vlc3NlZCkK IHsKLQlpZiAoZ3Vlc3NlZCkKKwlpZiAoYkd1ZXNzZWQpCiAJCXByaW50ZihfKCJHdWVzc2VkIHBn X2NvbnRyb2wgdmFsdWVzOlxuXG4iKSk7CiAJZWxzZQogCQlwcmludGYoXygiQ3VycmVudCBwZ19j b250cm9sIHZhbHVlczpcblxuIikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ190ZXN0X2ZzeW5j L3BnX3Rlc3RfZnN5bmMuYyBiL3NyYy9iaW4vcGdfdGVzdF9mc3luYy9wZ190ZXN0X2ZzeW5jLmMK aW5kZXggMDA2MGVhMTU5MDIuLmQzOTNiMGVjZmIwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Rl c3RfZnN5bmMvcGdfdGVzdF9mc3luYy5jCisrKyBiL3NyYy9iaW4vcGdfdGVzdF9mc3luYy9wZ190 ZXN0X2ZzeW5jLmMKQEAgLTYyNSwxMCArNjI1LDEwIEBAIHBnX2ZzeW5jX3dyaXRldGhyb3VnaChp bnQgZmQpCiAgKiBwcmludCBvdXQgdGhlIHdyaXRlcyBwZXIgc2Vjb25kIGZvciB0ZXN0cwogICov CiBzdGF0aWMgdm9pZAotcHJpbnRfZWxhcHNlKHN0cnVjdCB0aW1ldmFsIHN0YXJ0X3QsIHN0cnVj dCB0aW1ldmFsIHN0b3BfdCwgaW50IG9wcykKK3ByaW50X2VsYXBzZShzdHJ1Y3QgdGltZXZhbCBz dGFydF90aW1lLCBzdHJ1Y3QgdGltZXZhbCBzdG9wX3RpbWUsIGludCBvcHMpCiB7Ci0JZG91Ymxl CQl0b3RhbF90aW1lID0gKHN0b3BfdC50dl9zZWMgLSBzdGFydF90LnR2X3NlYykgKwotCQkoc3Rv cF90LnR2X3VzZWMgLSBzdGFydF90LnR2X3VzZWMpICogMC4wMDAwMDE7CisJZG91YmxlCQl0b3Rh bF90aW1lID0gKHN0b3BfdGltZS50dl9zZWMgLSBzdGFydF90aW1lLnR2X3NlYykgKworCQkoc3Rv cF90aW1lLnR2X3VzZWMgLSBzdGFydF90aW1lLnR2X3VzZWMpICogMC4wMDAwMDE7CiAJZG91Ymxl CQlwZXJfc2Vjb25kID0gb3BzIC8gdG90YWxfdGltZTsKIAlkb3VibGUJCWF2Z19vcF90aW1lX3Vz ID0gKHRvdGFsX3RpbWUgLyBvcHMpICogVVNFQ1NfU0VDOwogCi0tIAoyLjM5LjUgKEFwcGxlIEdp dC0xNTQpCgo= --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0007-cleanup-rename-local-progname-variables-to-avoid-.patch" Content-Disposition: attachment; filename="v4-0007-cleanup-rename-local-progname-variables-to-avoid-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7lj6 RnJvbSAzMmQxZGY3MzRhYWYyNTE0MTZlODNmOWY4YWFkOTU4YWQxM2ZjYTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjU5OjQzICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwNy8x M10gY2xlYW51cDogcmVuYW1lIGxvY2FsIHByb2duYW1lIHZhcmlhYmxlcyB0byBhdm9pZAogc2hh ZG93aW5nIHRoZSBnbG9iYWwKClRoaXMgY29tbWl0IHVwZGF0ZXMgYWxsIGZ1bmN0aW9ucyB0aGF0 IGRlY2xhcmVkIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQKJ3Byb2duYW1lJywgcmVuYW1pbmcgZWFj aCB0byAnbXlwcm9nbmFtZScuIFRoZSBjaGFuZ2UgcHJldmVudHMgc2hhZG93aW5nCm9mIHRoZSBn bG9iYWwgcHJvZ25hbWUgdmFyaWFibGUgYW5kIGtlZXBzIGlkZW50aWZpZXIgdXNhZ2UgdW5hbWJp Z3VvdXMKd2l0aGluIGVhY2ggc2NvcGUuCgpBIGZldyBhZGRpdGlvbmFsIHNoYWRvd2luZyBmaXhl cyBpbiB0aGUgc2FtZSBmaWxlcyBhcmUgaW5jbHVkZWQgYXMgd2VsbC4KVGhlc2UgdW5yZWxhdGVk IGNhc2VzIGFyZSBhZGRyZXNzZWQgaGVyZSBvbmx5IGJlY2F1c2UgdGhleSBvY2N1ciBpbiB0aGUK c2FtZSBjb2RlIGxvY2F0aW9ucyB0b3VjaGVkIGJ5IHRoZSBwcm9nbmFtZSBjaGFuZ2UsIGFuZCBi dW5kbGluZyB0aGVtCmtlZXBzIHRoZSBjb21taXQgc2VsZi1jb250YWluZWQuCgpBdXRob3I6IENo YW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NB RW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdt YWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYyAgICAgICAgICAg fCAgOCArLQogc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMgICAgICAgICAgICAgICAgICAgICB8IDE0 ICsrLS0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5jICAgICAgICAgICAgICAgICAgICAgfCA2MCAr KysrKysrLS0tLS0tLQogc3JjL2Jpbi9wZ19hbWNoZWNrL3BnX2FtY2hlY2suYyAgICAgICAgICAg ICB8ICA2ICstCiBzcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jIHwg MTQgKystLQogc3JjL2Jpbi9wZ19kdW1wL2Nvbm5lY3RkYi5jICAgICAgICAgICAgICAgICB8ICA0 ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgIHwgOTAgKysr KysrKysrKy0tLS0tLS0tLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jICAgICAgICAg ICAgICAgIHwgIDYgKy0KIHNyYy9iaW4vcGdfcmV3aW5kL3BnX3Jld2luZC5jICAgICAgICAgICAg ICAgfCAyMiArKy0tLQogc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcuYyAgICAgICAg ICB8ICA2ICstCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgMTE1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYyBi L3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYwppbmRleCBmYzg2MzhjMWI2MS4uZjY0 OWMwMDExM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYwor KysgYi9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMKQEAgLTIwMCw3ICsyMDAsNyBA QCB2b2lkCiBCb290c3RyYXBNb2RlTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBib29sIGNo ZWNrX29ubHkpCiB7CiAJaW50CQkJaTsKLQljaGFyCSAgICpwcm9nbmFtZSA9IGFyZ3ZbMF07CisJ Y2hhcgkgICAqbXlwcm9nbmFtZSA9IGFyZ3ZbMF07CiAJaW50CQkJZmxhZzsKIAljaGFyCSAgICp1 c2VyRG9wdGlvbiA9IE5VTEw7CiAJdWludDMyCQlib290c3RyYXBfZGF0YV9jaGVja3N1bV92ZXJz aW9uID0gMDsJLyogTm8gY2hlY2tzdW0gKi8KQEAgLTI5Niw3ICsyOTYsNyBAQCBCb290c3RyYXBN b2RlTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBib29sIGNoZWNrX29ubHkpCiAJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCXdyaXRlX3N0ZGVycigiVHJ5IFwiJXMgLS1oZWxwXCIgZm9y IG1vcmUgaW5mb3JtYXRpb24uXG4iLAotCQkJCQkJCSBwcm9nbmFtZSk7CisJCQkJCQkJIG15cHJv Z25hbWUpOwogCQkJCXByb2NfZXhpdCgxKTsKIAkJCQlicmVhazsKIAkJfQpAQCAtMzA0LDEyICsz MDQsMTIgQEAgQm9vdHN0cmFwTW9kZU1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgYm9vbCBj aGVja19vbmx5KQogCiAJaWYgKGFyZ2MgIT0gb3B0aW5kKQogCXsKLQkJd3JpdGVfc3RkZXJyKCIl czogaW52YWxpZCBjb21tYW5kLWxpbmUgYXJndW1lbnRzXG4iLCBwcm9nbmFtZSk7CisJCXdyaXRl X3N0ZGVycigiJXM6IGludmFsaWQgY29tbWFuZC1saW5lIGFyZ3VtZW50c1xuIiwgbXlwcm9nbmFt ZSk7CiAJCXByb2NfZXhpdCgxKTsKIAl9CiAKIAkvKiBBY3F1aXJlIGNvbmZpZ3VyYXRpb24gcGFy YW1ldGVycyAqLwotCWlmICghU2VsZWN0Q29uZmlnRmlsZXModXNlckRvcHRpb24sIHByb2duYW1l KSkKKwlpZiAoIVNlbGVjdENvbmZpZ0ZpbGVzKHVzZXJEb3B0aW9uLCBteXByb2duYW1lKSkKIAkJ cHJvY19leGl0KDEpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL21haW4vbWFpbi5j IGIvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKaW5kZXggNzJhYWVlMzZhNjguLmVlYjY0ZDA5NjA4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9tYWluL21haW4uYworKysgYi9zcmMvYmFja2VuZC9t YWluL21haW4uYwpAQCAtMjgxLDcgKzI4MSw3IEBAIHBhcnNlX2Rpc3BhdGNoX29wdGlvbihjb25z dCBjaGFyICpuYW1lKQogICogd2l0aG91dCBoZWxwLiAgQXZvaWQgYWRkaW5nIG1vcmUgaGVyZSwg aWYgeW91IGNhbi4KICAqLwogc3RhdGljIHZvaWQKLXN0YXJ0dXBfaGFja3MoY29uc3QgY2hhciAq cHJvZ25hbWUpCitzdGFydHVwX2hhY2tzKGNvbnN0IGNoYXIgKm15cHJvZ25hbWUpCiB7CiAJLyoK IAkgKiBXaW5kb3dzLXNwZWNpZmljIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBoYWNraW5nLgpAQCAt MzAwLDcgKzMwMCw3IEBAIHN0YXJ0dXBfaGFja3MoY29uc3QgY2hhciAqcHJvZ25hbWUpCiAJCWlm IChlcnIgIT0gMCkKIAkJewogCQkJd3JpdGVfc3RkZXJyKCIlczogV1NBU3RhcnR1cCBmYWlsZWQ6 ICVkXG4iLAotCQkJCQkJIHByb2duYW1lLCBlcnIpOworCQkJCQkJIG15cHJvZ25hbWUsIGVycik7 CiAJCQlleGl0KDEpOwogCQl9CiAKQEAgLTM4NSwxMCArMzg1LDEwIEBAIGluaXRfbG9jYWxlKGNv bnN0IGNoYXIgKmNhdGVnb3J5bmFtZSwgaW50IGNhdGVnb3J5LCBjb25zdCBjaGFyICpsb2NhbGUp CiAgKiBNZXNzYWdlcyBlbWl0dGVkIGluIHdyaXRlX2NvbnNvbGUoKSBkbyBub3QgZXhoaWJpdCB0 aGlzIHByb2JsZW0uCiAgKi8KIHN0YXRpYyB2b2lkCi1oZWxwKGNvbnN0IGNoYXIgKnByb2duYW1l KQoraGVscChjb25zdCBjaGFyICpteXByb2duYW1lKQogewotCXByaW50ZihfKCIlcyBpcyB0aGUg UG9zdGdyZVNRTCBzZXJ2ZXIuXG5cbiIpLCBwcm9nbmFtZSk7Ci0JcHJpbnRmKF8oIlVzYWdlOlxu ICAlcyBbT1BUSU9OXS4uLlxuXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZihfKCIlcyBpcyB0aGUg UG9zdGdyZVNRTCBzZXJ2ZXIuXG5cbiIpLCBteXByb2duYW1lKTsKKwlwcmludGYoXygiVXNhZ2U6 XG4gICVzIFtPUFRJT05dLi4uXG5cbiIpLCBteXByb2duYW1lKTsKIAlwcmludGYoXygiT3B0aW9u czpcbiIpKTsKIAlwcmludGYoXygiICAtQiBOQlVGRkVSUyAgICAgICAgbnVtYmVyIG9mIHNoYXJl ZCBidWZmZXJzXG4iKSk7CiAJcHJpbnRmKF8oIiAgLWMgTkFNRT1WQUxVRSAgICAgIHNldCBydW4t dGltZSBwYXJhbWV0ZXJcbiIpKTsKQEAgLTQ0NCw3ICs0NDQsNyBAQCBoZWxwKGNvbnN0IGNoYXIg KnByb2duYW1lKQogCiAKIHN0YXRpYyB2b2lkCi1jaGVja19yb290KGNvbnN0IGNoYXIgKnByb2du YW1lKQorY2hlY2tfcm9vdChjb25zdCBjaGFyICpteXByb2duYW1lKQogewogI2lmbmRlZiBXSU4z MgogCWlmIChnZXRldWlkKCkgPT0gMCkKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBjaGVja19yb290KGNv bnN0IGNoYXIgKnByb2duYW1lKQogCWlmIChnZXR1aWQoKSAhPSBnZXRldWlkKCkpCiAJewogCQl3 cml0ZV9zdGRlcnIoIiVzOiByZWFsIGFuZCBlZmZlY3RpdmUgdXNlciBJRHMgbXVzdCBtYXRjaFxu IiwKLQkJCQkJIHByb2duYW1lKTsKKwkJCQkJIG15cHJvZ25hbWUpOwogCQlleGl0KDEpOwogCX0K ICNlbHNlCQkJCQkJCS8qIFdJTjMyICovCmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi9pbml0 ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IDkyZmUyZjUzMWY3Li5kOGU5NWNh MmZlMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9p bml0ZGIvaW5pdGRiLmMKQEAgLTgxNCw3ICs4MTQsNyBAQCBjbGVhbnVwX2RpcmVjdG9yaWVzX2F0 ZXhpdCh2b2lkKQogc3RhdGljIGNoYXIgKgogZ2V0X2lkKHZvaWQpCiB7Ci0JY29uc3QgY2hhciAq dXNlcm5hbWU7CisJY29uc3QgY2hhciAqdXNlcjsKIAogI2lmbmRlZiBXSU4zMgogCWlmIChnZXRl dWlkKCkgPT0gMCkJCQkvKiAwIGlzIHJvb3QncyB1aWQgKi8KQEAgLTgyNSw5ICs4MjUsOSBAQCBn ZXRfaWQodm9pZCkKIAl9CiAjZW5kaWYKIAotCXVzZXJuYW1lID0gZ2V0X3VzZXJfbmFtZV9vcl9l eGl0KHByb2duYW1lKTsKKwl1c2VyID0gZ2V0X3VzZXJfbmFtZV9vcl9leGl0KHByb2duYW1lKTsK IAotCXJldHVybiBwZ19zdHJkdXAodXNlcm5hbWUpOworCXJldHVybiBwZ19zdHJkdXAodXNlcik7 CiB9CiAKIHN0YXRpYyBjaGFyICoKQEAgLTEwNDYsMTQgKzEwNDYsMTQgQEAgd3JpdGVfdmVyc2lv bl9maWxlKGNvbnN0IGNoYXIgKmV4dHJhcGF0aCkKIHN0YXRpYyB2b2lkCiBzZXRfbnVsbF9jb25m KHZvaWQpCiB7Ci0JRklMRQkgICAqY29uZl9maWxlOworCUZJTEUJICAgKmZpbGU7CiAJY2hhcgkg ICAqcGF0aDsKIAogCXBhdGggPSBwc3ByaW50ZigiJXMvcG9zdGdyZXNxbC5jb25mIiwgcGdfZGF0 YSk7Ci0JY29uZl9maWxlID0gZm9wZW4ocGF0aCwgUEdfQklOQVJZX1cpOwotCWlmIChjb25mX2Zp bGUgPT0gTlVMTCkKKwlmaWxlID0gZm9wZW4ocGF0aCwgUEdfQklOQVJZX1cpOworCWlmIChmaWxl ID09IE5VTEwpCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIiBmb3Igd3Jp dGluZzogJW0iLCBwYXRoKTsKLQlpZiAoZmNsb3NlKGNvbmZfZmlsZSkpCisJaWYgKGZjbG9zZShm aWxlKSkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCB3cml0ZSBmaWxlIFwiJXNcIjogJW0iLCBwYXRo KTsKIAlmcmVlKHBhdGgpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgbXlfc3RyZnRpbWUoY2hh ciAqcywgc2l6ZV90IG1heCwgY29uc3QgY2hhciAqZm10LCBjb25zdCBzdHJ1Y3QgdG0gKnRtKQog ICogRGV0ZXJtaW5lIGxpa2VseSBkYXRlIG9yZGVyIGZyb20gbG9jYWxlCiAgKi8KIHN0YXRpYyBp bnQKLWxvY2FsZV9kYXRlX29yZGVyKGNvbnN0IGNoYXIgKmxvY2FsZSkKK2xvY2FsZV9kYXRlX29y ZGVyKGNvbnN0IGNoYXIgKm15bG9jYWxlKQogewogCXN0cnVjdCB0bQl0ZXN0dGltZTsKIAljaGFy CQlidWZbMTI4XTsKQEAgLTIxNTIsNyArMjE1Miw3IEBAIGxvY2FsZV9kYXRlX29yZGVyKGNvbnN0 IGNoYXIgKmxvY2FsZSkKIAogCXNhdmUgPSBzYXZlX2dsb2JhbF9sb2NhbGUoTENfVElNRSk7CiAK LQlzZXRsb2NhbGUoTENfVElNRSwgbG9jYWxlKTsKKwlzZXRsb2NhbGUoTENfVElNRSwgbXlsb2Nh bGUpOwogCiAJbWVtc2V0KCZ0ZXN0dGltZSwgMCwgc2l6ZW9mKHRlc3R0aW1lKSk7CiAJdGVzdHRp bWUudG1fbWRheSA9IDIyOwpAQCAtMjE5NiwxNCArMjE5NiwxNCBAQCBsb2NhbGVfZGF0ZV9vcmRl cihjb25zdCBjaGFyICpsb2NhbGUpCiAgKiB0aGlzIHNob3VsZCBtYXRjaCB0aGUgYmFja2VuZCdz IGNoZWNrX2xvY2FsZSgpIGZ1bmN0aW9uCiAgKi8KIHN0YXRpYyB2b2lkCi1jaGVja19sb2NhbGVf bmFtZShpbnQgY2F0ZWdvcnksIGNvbnN0IGNoYXIgKmxvY2FsZSwgY2hhciAqKmNhbm9ubmFtZSkK K2NoZWNrX2xvY2FsZV9uYW1lKGludCBjYXRlZ29yeSwgY29uc3QgY2hhciAqbXlsb2NhbGUsIGNo YXIgKipjYW5vbm5hbWUpCiB7CiAJc2F2ZV9sb2NhbGVfdCBzYXZlOwogCWNoYXIJICAgKnJlczsK IAogCS8qIERvbid0IGxldCBXaW5kb3dzJyBub24tQVNDSUkgbG9jYWxlIG5hbWVzIGluLiAqLwot CWlmIChsb2NhbGUgJiYgIXBnX2lzX2FzY2lpKGxvY2FsZSkpCi0JCXBnX2ZhdGFsKCJsb2NhbGUg bmFtZSBcIiVzXCIgY29udGFpbnMgbm9uLUFTQ0lJIGNoYXJhY3RlcnMiLCBsb2NhbGUpOworCWlm IChteWxvY2FsZSAmJiAhcGdfaXNfYXNjaWkobXlsb2NhbGUpKQorCQlwZ19mYXRhbCgibG9jYWxl IG5hbWUgXCIlc1wiIGNvbnRhaW5zIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIiwgbXlsb2NhbGUpOwog CiAJaWYgKGNhbm9ubmFtZSkKIAkJKmNhbm9ubmFtZSA9IE5VTEw7CQkvKiBpbiBjYXNlIG9mIGZh aWx1cmUgKi8KQEAgLTIyMTEsMTEgKzIyMTEsMTEgQEAgY2hlY2tfbG9jYWxlX25hbWUoaW50IGNh dGVnb3J5LCBjb25zdCBjaGFyICpsb2NhbGUsIGNoYXIgKipjYW5vbm5hbWUpCiAJc2F2ZSA9IHNh dmVfZ2xvYmFsX2xvY2FsZShjYXRlZ29yeSk7CiAKIAkvKiBmb3Igc2V0bG9jYWxlKCkgY2FsbCAq LwotCWlmICghbG9jYWxlKQotCQlsb2NhbGUgPSAiIjsKKwlpZiAoIW15bG9jYWxlKQorCQlteWxv Y2FsZSA9ICIiOwogCiAJLyogc2V0IHRoZSBsb2NhbGUgd2l0aCBzZXRsb2NhbGUsIHRvIHNlZSBp ZiBpdCBhY2NlcHRzIGl0LiAqLwotCXJlcyA9IHNldGxvY2FsZShjYXRlZ29yeSwgbG9jYWxlKTsK KwlyZXMgPSBzZXRsb2NhbGUoY2F0ZWdvcnksIG15bG9jYWxlKTsKIAogCS8qIHNhdmUgY2Fub25p Y2FsIG5hbWUgaWYgcmVxdWVzdGVkLiAqLwogCWlmIChyZXMgJiYgY2Fub25uYW1lKQpAQCAtMjIy Nyw5ICsyMjI3LDkgQEAgY2hlY2tfbG9jYWxlX25hbWUoaW50IGNhdGVnb3J5LCBjb25zdCBjaGFy ICpsb2NhbGUsIGNoYXIgKipjYW5vbm5hbWUpCiAJLyogY29tcGxhaW4gaWYgbG9jYWxlIHdhc24n dCB2YWxpZCAqLwogCWlmIChyZXMgPT0gTlVMTCkKIAl7Ci0JCWlmICgqbG9jYWxlKQorCQlpZiAo Km15bG9jYWxlKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImludmFsaWQgbG9jYWxlIG5hbWUgXCIl c1wiIiwgbG9jYWxlKTsKKwkJCXBnX2xvZ19lcnJvcigiaW52YWxpZCBsb2NhbGUgbmFtZSBcIiVz XCIiLCBteWxvY2FsZSk7CiAJCQlwZ19sb2dfZXJyb3JfaGludCgiSWYgdGhlIGxvY2FsZSBuYW1l IGlzIHNwZWNpZmljIHRvIElDVSwgdXNlIC0taWN1LWxvY2FsZS4iKTsKIAkJCWV4aXQoMSk7CiAJ CX0KQEAgLTIyNTksMTEgKzIyNTksMTEgQEAgY2hlY2tfbG9jYWxlX25hbWUoaW50IGNhdGVnb3J5 LCBjb25zdCBjaGFyICpsb2NhbGUsIGNoYXIgKipjYW5vbm5hbWUpCiAgKiB0aGlzIHNob3VsZCBt YXRjaCB0aGUgc2ltaWxhciBjaGVjayBpbiB0aGUgYmFja2VuZCBjcmVhdGVkYigpIGZ1bmN0aW9u CiAgKi8KIHN0YXRpYyBib29sCi1jaGVja19sb2NhbGVfZW5jb2RpbmcoY29uc3QgY2hhciAqbG9j YWxlLCBpbnQgdXNlcl9lbmMpCitjaGVja19sb2NhbGVfZW5jb2RpbmcoY29uc3QgY2hhciAqbXls b2NhbGUsIGludCB1c2VyX2VuYykKIHsKIAlpbnQJCQlsb2NhbGVfZW5jOwogCi0JbG9jYWxlX2Vu YyA9IHBnX2dldF9lbmNvZGluZ19mcm9tX2xvY2FsZShsb2NhbGUsIHRydWUpOworCWxvY2FsZV9l bmMgPSBwZ19nZXRfZW5jb2RpbmdfZnJvbV9sb2NhbGUobXlsb2NhbGUsIHRydWUpOwogCiAJLyog U2VlIG5vdGVzIGluIGNyZWF0ZWRiKCkgdG8gdW5kZXJzdGFuZCB0aGVzZSB0ZXN0cyAqLwogCWlm ICghKGxvY2FsZV9lbmMgPT0gdXNlcl9lbmMgfHwKQEAgLTI1MTEsMTEgKzI1MTEsMTEgQEAgc2V0 bG9jYWxlcyh2b2lkKQogICogcHJpbnQgaGVscCB0ZXh0CiAgKi8KIHN0YXRpYyB2b2lkCi11c2Fn ZShjb25zdCBjaGFyICpwcm9nbmFtZSkKK3VzYWdlKGNvbnN0IGNoYXIgKm15cHJvZ25hbWUpCiB7 Ci0JcHJpbnRmKF8oIiVzIGluaXRpYWxpemVzIGEgUG9zdGdyZVNRTCBkYXRhYmFzZSBjbHVzdGVy LlxuXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZihfKCIlcyBpbml0aWFsaXplcyBhIFBvc3RncmVT UUwgZGF0YWJhc2UgY2x1c3Rlci5cblxuIiksIG15cHJvZ25hbWUpOwogCXByaW50ZihfKCJVc2Fn ZTpcbiIpKTsKLQlwcmludGYoXygiICAlcyBbT1BUSU9OXS4uLiBbREFUQURJUl1cbiIpLCBwcm9n bmFtZSk7CisJcHJpbnRmKF8oIiAgJXMgW09QVElPTl0uLi4gW0RBVEFESVJdXG4iKSwgbXlwcm9n bmFtZSk7CiAJcHJpbnRmKF8oIlxuT3B0aW9uczpcbiIpKTsKIAlwcmludGYoXygiICAtQSwgLS1h dXRoPU1FVEhPRCAgICAgICAgIGRlZmF1bHQgYXV0aGVudGljYXRpb24gbWV0aG9kIGZvciBsb2Nh bCBjb25uZWN0aW9uc1xuIikpOwogCXByaW50ZihfKCIgICAgICAtLWF1dGgtaG9zdD1NRVRIT0Qg ICAgZGVmYXVsdCBhdXRoZW50aWNhdGlvbiBtZXRob2QgZm9yIGxvY2FsIFRDUC9JUCBjb25uZWN0 aW9uc1xuIikpOwpAQCAtMjU5MSwxNCArMjU5MSwxNCBAQCBjaGVja19hdXRobWV0aG9kX3ZhbGlk KGNvbnN0IGNoYXIgKmF1dGhtZXRob2QsIGNvbnN0IGNoYXIgKmNvbnN0ICp2YWxpZF9tZXRob2Rz LAogfQogCiBzdGF0aWMgdm9pZAotY2hlY2tfbmVlZF9wYXNzd29yZChjb25zdCBjaGFyICphdXRo bWV0aG9kbG9jYWwsIGNvbnN0IGNoYXIgKmF1dGhtZXRob2Rob3N0KQotewotCWlmICgoc3RyY21w KGF1dGhtZXRob2Rsb2NhbCwgIm1kNSIpID09IDAgfHwKLQkJIHN0cmNtcChhdXRobWV0aG9kbG9j YWwsICJwYXNzd29yZCIpID09IDAgfHwKLQkJIHN0cmNtcChhdXRobWV0aG9kbG9jYWwsICJzY3Jh bS1zaGEtMjU2IikgPT0gMCkgJiYKLQkJKHN0cmNtcChhdXRobWV0aG9kaG9zdCwgIm1kNSIpID09 IDAgfHwKLQkJIHN0cmNtcChhdXRobWV0aG9kaG9zdCwgInBhc3N3b3JkIikgPT0gMCB8fAotCQkg c3RyY21wKGF1dGhtZXRob2Rob3N0LCAic2NyYW0tc2hhLTI1NiIpID09IDApICYmCitjaGVja19u ZWVkX3Bhc3N3b3JkKGNvbnN0IGNoYXIgKm15YXV0aG1ldGhvZGxvY2FsLCBjb25zdCBjaGFyICpt eWF1dGhtZXRob2Rob3N0KQoreworCWlmICgoc3RyY21wKG15YXV0aG1ldGhvZGxvY2FsLCAibWQ1 IikgPT0gMCB8fAorCQkgc3RyY21wKG15YXV0aG1ldGhvZGxvY2FsLCAicGFzc3dvcmQiKSA9PSAw IHx8CisJCSBzdHJjbXAobXlhdXRobWV0aG9kbG9jYWwsICJzY3JhbS1zaGEtMjU2IikgPT0gMCkg JiYKKwkJKHN0cmNtcChteWF1dGhtZXRob2Rob3N0LCAibWQ1IikgPT0gMCB8fAorCQkgc3RyY21w KG15YXV0aG1ldGhvZGhvc3QsICJwYXNzd29yZCIpID09IDAgfHwKKwkJIHN0cmNtcChteWF1dGht ZXRob2Rob3N0LCAic2NyYW0tc2hhLTI1NiIpID09IDApICYmCiAJCSEocHdwcm9tcHQgfHwgcHdm aWxlbmFtZSkpCiAJCXBnX2ZhdGFsKCJtdXN0IHNwZWNpZnkgYSBwYXNzd29yZCBmb3IgdGhlIHN1 cGVydXNlciB0byBlbmFibGUgcGFzc3dvcmQgYXV0aGVudGljYXRpb24iKTsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfYW1jaGVjay9wZ19hbWNoZWNrLmMgYi9zcmMvYmluL3BnX2FtY2hlY2sv cGdfYW1jaGVjay5jCmluZGV4IDJiMWZkNTY2YzM1Li4wNmE5NzcxMmUxOCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19hbWNoZWNrL3BnX2FtY2hlY2suYworKysgYi9zcmMvYmluL3BnX2FtY2hlY2sv cGdfYW1jaGVjay5jCkBAIC0xMTgwLDExICsxMTgwLDExIEBAIHZlcmlmeV9idHJlZV9zbG90X2hh bmRsZXIoUEdyZXN1bHQgKnJlcywgUEdjb25uICpjb25uLCB2b2lkICpjb250ZXh0KQogICogcHJv Z25hbWU6IHRoZSBuYW1lIG9mIHRoZSBleGVjdXRlZCBwcm9ncmFtLCBzdWNoIGFzICJwZ19hbWNo ZWNrIgogICovCiBzdGF0aWMgdm9pZAotaGVscChjb25zdCBjaGFyICpwcm9nbmFtZSkKK2hlbHAo Y29uc3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKLQlwcmludGYoXygiJXMgY2hlY2tzIG9iamVjdHMg aW4gYSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGZvciBjb3JydXB0aW9uLlxuXG4iKSwgcHJvZ25hbWUp OworCXByaW50ZihfKCIlcyBjaGVja3Mgb2JqZWN0cyBpbiBhIFBvc3RncmVTUUwgZGF0YWJhc2Ug Zm9yIGNvcnJ1cHRpb24uXG5cbiIpLCBteXByb2duYW1lKTsKIAlwcmludGYoXygiVXNhZ2U6XG4i KSk7Ci0JcHJpbnRmKF8oIiAgJXMgW09QVElPTl0uLi4gW0RCTkFNRV1cbiIpLCBwcm9nbmFtZSk7 CisJcHJpbnRmKF8oIiAgJXMgW09QVElPTl0uLi4gW0RCTkFNRV1cbiIpLCBteXByb2duYW1lKTsK IAlwcmludGYoXygiXG5UYXJnZXQgb3B0aW9uczpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1h bGwgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrIGFsbCBkYXRhYmFzZXNcbiIpKTsKIAlwcmlu dGYoXygiICAtZCwgLS1kYXRhYmFzZT1QQVRURVJOICAgICAgICAgIGNoZWNrIG1hdGNoaW5nIGRh dGFiYXNlKHMpXG4iKSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3Jl YXRlc3Vic2NyaWJlci5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmli ZXIuYwppbmRleCA0M2RjNmZmNzY5My4uMDQyMTBlNjBiY2EgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNl YmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwpAQCAtMzYzLDMyICszNjMsMzIgQEAgZ2V0X3N1 Yl9jb25uaW5mbyhjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCkKICAq IHBhdGggb2YgdGhlIHByb2duYW1lLgogICovCiBzdGF0aWMgY2hhciAqCi1nZXRfZXhlY19wYXRo KGNvbnN0IGNoYXIgKmFyZ3YwLCBjb25zdCBjaGFyICpwcm9nbmFtZSkKK2dldF9leGVjX3BhdGgo Y29uc3QgY2hhciAqYXJndjAsIGNvbnN0IGNoYXIgKm15cHJvZ25hbWUpCiB7CiAJY2hhcgkgICAq dmVyc2lvbnN0cjsKIAljaGFyCSAgICpleGVjX3BhdGg7CiAJaW50CQkJcmV0OwogCi0JdmVyc2lv bnN0ciA9IHBzcHJpbnRmKCIlcyAoUG9zdGdyZVNRTCkgJXNcbiIsIHByb2duYW1lLCBQR19WRVJT SU9OKTsKKwl2ZXJzaW9uc3RyID0gcHNwcmludGYoIiVzIChQb3N0Z3JlU1FMKSAlc1xuIiwgbXlw cm9nbmFtZSwgUEdfVkVSU0lPTik7CiAJZXhlY19wYXRoID0gcGdfbWFsbG9jKE1BWFBHUEFUSCk7 Ci0JcmV0ID0gZmluZF9vdGhlcl9leGVjKGFyZ3YwLCBwcm9nbmFtZSwgdmVyc2lvbnN0ciwgZXhl Y19wYXRoKTsKKwlyZXQgPSBmaW5kX290aGVyX2V4ZWMoYXJndjAsIG15cHJvZ25hbWUsIHZlcnNp b25zdHIsIGV4ZWNfcGF0aCk7CiAKIAlpZiAocmV0IDwgMCkKIAl7CiAJCWNoYXIJCWZ1bGxfcGF0 aFtNQVhQR1BBVEhdOwogCiAJCWlmIChmaW5kX215X2V4ZWMoYXJndjAsIGZ1bGxfcGF0aCkgPCAw KQotCQkJc3RybGNweShmdWxsX3BhdGgsIHByb2duYW1lLCBzaXplb2YoZnVsbF9wYXRoKSk7CisJ CQlzdHJsY3B5KGZ1bGxfcGF0aCwgbXlwcm9nbmFtZSwgc2l6ZW9mKGZ1bGxfcGF0aCkpOwogCiAJ CWlmIChyZXQgPT0gLTEpCiAJCQlwZ19mYXRhbCgicHJvZ3JhbSBcIiVzXCIgaXMgbmVlZGVkIGJ5 ICVzIGJ1dCB3YXMgbm90IGZvdW5kIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyBcIiVzXCIiLAot CQkJCQkgcHJvZ25hbWUsICJwZ19jcmVhdGVzdWJzY3JpYmVyIiwgZnVsbF9wYXRoKTsKKwkJCQkJ IG15cHJvZ25hbWUsICJwZ19jcmVhdGVzdWJzY3JpYmVyIiwgZnVsbF9wYXRoKTsKIAkJZWxzZQog CQkJcGdfZmF0YWwoInByb2dyYW0gXCIlc1wiIHdhcyBmb3VuZCBieSBcIiVzXCIgYnV0IHdhcyBu b3QgdGhlIHNhbWUgdmVyc2lvbiBhcyAlcyIsCi0JCQkJCSBwcm9nbmFtZSwgZnVsbF9wYXRoLCAi cGdfY3JlYXRlc3Vic2NyaWJlciIpOworCQkJCQkgbXlwcm9nbmFtZSwgZnVsbF9wYXRoLCAicGdf Y3JlYXRlc3Vic2NyaWJlciIpOwogCX0KIAotCXBnX2xvZ19kZWJ1ZygiJXMgcGF0aCBpczogICVz IiwgcHJvZ25hbWUsIGV4ZWNfcGF0aCk7CisJcGdfbG9nX2RlYnVnKCIlcyBwYXRoIGlzOiAgJXMi LCBteXByb2duYW1lLCBleGVjX3BhdGgpOwogCiAJcmV0dXJuIGV4ZWNfcGF0aDsKIH0KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb25uZWN0ZGIuYyBiL3NyYy9iaW4vcGdfZHVtcC9jb25u ZWN0ZGIuYwppbmRleCBkNTVkNTNkYmVlYS4uYTJhMWJhZDI1NGIgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9jb25uZWN0ZGIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29ubmVjdGRiLmMK QEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIGNoYXIgKmNvbnN0cnVjdENvbm5TdHIoY29uc3QgY2hh ciAqKmtleXdvcmRzLCBjb25zdCBjaGFyICoqdmFsdWVzKTsKIFBHY29ubiAqCiBDb25uZWN0RGF0 YWJhc2UoY29uc3QgY2hhciAqZGJuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX3N0cmluZywK IAkJCQljb25zdCBjaGFyICpwZ2hvc3QsIGNvbnN0IGNoYXIgKnBncG9ydCwgY29uc3QgY2hhciAq cGd1c2VyLAotCQkJCXRyaXZhbHVlIHByb21wdF9wYXNzd29yZCwgYm9vbCBmYWlsX29uX2Vycm9y LCBjb25zdCBjaGFyICpwcm9nbmFtZSwKKwkJCQl0cml2YWx1ZSBwcm9tcHRfcGFzc3dvcmQsIGJv b2wgZmFpbF9vbl9lcnJvciwgY29uc3QgY2hhciAqbXlwcm9nbmFtZSwKIAkJCQljb25zdCBjaGFy ICoqY29ubnN0ciwgaW50ICpzZXJ2ZXJfdmVyc2lvbiwgY2hhciAqcGFzc3dvcmQsCiAJCQkJY2hh ciAqb3ZlcnJpZGVfZGJuYW1lKQogewpAQCAtMjIxLDcgKzIyMSw3IEBAIENvbm5lY3REYXRhYmFz ZShjb25zdCBjaGFyICpkYm5hbWUsIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fc3RyaW5nLAogCXsK IAkJcGdfbG9nX2Vycm9yKCJhYm9ydGluZyBiZWNhdXNlIG9mIHNlcnZlciB2ZXJzaW9uIG1pc21h dGNoIik7CiAJCXBnX2xvZ19lcnJvcl9kZXRhaWwoInNlcnZlciB2ZXJzaW9uOiAlczsgJXMgdmVy c2lvbjogJXMiLAotCQkJCQkJCXJlbW90ZXZlcnNpb25fc3RyLCBwcm9nbmFtZSwgUEdfVkVSU0lP Tik7CisJCQkJCQkJcmVtb3RldmVyc2lvbl9zdHIsIG15cHJvZ25hbWUsIFBHX1ZFUlNJT04pOwog CQlleGl0X25pY2VseSgxKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDI0NDUwODVkYmJkLi5kMmI1 NDkxNmEwZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xMzAxLDExICsxMzAxLDExIEBAIG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCiAKIHN0YXRpYyB2b2lkCi1oZWxwKGNvbnN0IGNoYXIgKnByb2du YW1lKQoraGVscChjb25zdCBjaGFyICpteXByb2duYW1lKQogewotCXByaW50ZihfKCIlcyBleHBv cnRzIGEgUG9zdGdyZVNRTCBkYXRhYmFzZSBhcyBhbiBTUUwgc2NyaXB0IG9yIHRvIG90aGVyIGZv cm1hdHMuXG5cbiIpLCBwcm9nbmFtZSk7CisJcHJpbnRmKF8oIiVzIGV4cG9ydHMgYSBQb3N0Z3Jl U1FMIGRhdGFiYXNlIGFzIGFuIFNRTCBzY3JpcHQgb3IgdG8gb3RoZXIgZm9ybWF0cy5cblxuIiks IG15cHJvZ25hbWUpOwogCXByaW50ZihfKCJVc2FnZTpcbiIpKTsKLQlwcmludGYoXygiICAlcyBb T1BUSU9OXS4uLiBbREJOQU1FXVxuIiksIHByb2duYW1lKTsKKwlwcmludGYoXygiICAlcyBbT1BU SU9OXS4uLiBbREJOQU1FXVxuIiksIG15cHJvZ25hbWUpOwogCiAJcHJpbnRmKF8oIlxuR2VuZXJh bCBvcHRpb25zOlxuIikpOwogCXByaW50ZihfKCIgIC1mLCAtLWZpbGU9RklMRU5BTUUgICAgICAg ICAgb3V0cHV0IGZpbGUgb3IgZGlyZWN0b3J5IG5hbWVcbiIpKTsKQEAgLTE2NDksNyArMTY0OSw3 IEBAIHN0YXRpYyB2b2lkCiBleHBhbmRfc2NoZW1hX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91 dCwKIAkJCQkJCQlTaW1wbGVTdHJpbmdMaXN0ICpwYXR0ZXJucywKIAkJCQkJCQlTaW1wbGVPaWRM aXN0ICpvaWRzLAotCQkJCQkJCWJvb2wgc3RyaWN0X25hbWVzKQorCQkJCQkJCWJvb2wgc3RyaWN0 KQogewogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCVBHcmVzdWx0ICAgKnJlczsKQEAgLTE2ODUsNyAr MTY4NSw3IEBAIGV4cGFuZF9zY2hlbWFfbmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0LAogCQl0 ZXJtUFFFeHBCdWZmZXIoJmRiYnVmKTsKIAogCQlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwg cXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7Ci0JCWlmIChzdHJpY3RfbmFtZXMgJiYgUFFu dHVwbGVzKHJlcykgPT0gMCkKKwkJaWYgKHN0cmljdCAmJiBQUW50dXBsZXMocmVzKSA9PSAwKQog CQkJcGdfZmF0YWwoIm5vIG1hdGNoaW5nIHNjaGVtYXMgd2VyZSBmb3VuZCBmb3IgcGF0dGVybiBc IiVzXCIiLCBjZWxsLT52YWwpOwogCiAJCWZvciAoaSA9IDA7IGkgPCBQUW50dXBsZXMocmVzKTsg aSsrKQpAQCAtMTcwOCw3ICsxNzA4LDcgQEAgc3RhdGljIHZvaWQKIGV4cGFuZF9leHRlbnNpb25f bmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0LAogCQkJCQkJCSAgIFNpbXBsZVN0cmluZ0xpc3Qg KnBhdHRlcm5zLAogCQkJCQkJCSAgIFNpbXBsZU9pZExpc3QgKm9pZHMsCi0JCQkJCQkJICAgYm9v bCBzdHJpY3RfbmFtZXMpCisJCQkJCQkJICAgYm9vbCBzdHJpY3QpCiB7CiAJUFFFeHBCdWZmZXIg cXVlcnk7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtMTczOCw3ICsxNzM4LDcgQEAgZXhwYW5kX2V4 dGVuc2lvbl9uYW1lX3BhdHRlcm5zKEFyY2hpdmUgKmZvdXQsCiAJCQkJCSBjZWxsLT52YWwpOwog CiAJCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVT X09LKTsKLQkJaWYgKHN0cmljdF9uYW1lcyAmJiBQUW50dXBsZXMocmVzKSA9PSAwKQorCQlpZiAo c3RyaWN0ICYmIFBRbnR1cGxlcyhyZXMpID09IDApCiAJCQlwZ19mYXRhbCgibm8gbWF0Y2hpbmcg ZXh0ZW5zaW9ucyB3ZXJlIGZvdW5kIGZvciBwYXR0ZXJuIFwiJXNcIiIsIGNlbGwtPnZhbCk7CiAK IAkJZm9yIChpID0gMDsgaSA8IFBRbnR1cGxlcyhyZXMpOyBpKyspCkBAIC0xODEyLDcgKzE4MTIs NyBAQCBleHBhbmRfZm9yZWlnbl9zZXJ2ZXJfbmFtZV9wYXR0ZXJucyhBcmNoaXZlICpmb3V0LAog c3RhdGljIHZvaWQKIGV4cGFuZF90YWJsZV9uYW1lX3BhdHRlcm5zKEFyY2hpdmUgKmZvdXQsCiAJ CQkJCQkgICBTaW1wbGVTdHJpbmdMaXN0ICpwYXR0ZXJucywgU2ltcGxlT2lkTGlzdCAqb2lkcywK LQkJCQkJCSAgIGJvb2wgc3RyaWN0X25hbWVzLCBib29sIHdpdGhfY2hpbGRfdGFibGVzKQorCQkJ CQkJICAgYm9vbCBzdHJpY3QsIGJvb2wgd2l0aF9jaGlsZF90YWJsZXMpCiB7CiAJUFFFeHBCdWZm ZXIgcXVlcnk7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtMTg4NCw3ICsxODg0LDcgQEAgZXhwYW5k X3RhYmxlX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91dCwKIAkJcmVzID0gRXhlY3V0ZVNxbFF1 ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwogCQlQUWNsZWFyKEV4ZWN1 dGVTcWxRdWVyeUZvclNpbmdsZVJvdyhmb3V0LAogCQkJCQkJCQkJCQlBTFdBWVNfU0VDVVJFX1NF QVJDSF9QQVRIX1NRTCkpOwotCQlpZiAoc3RyaWN0X25hbWVzICYmIFBRbnR1cGxlcyhyZXMpID09 IDApCisJCWlmIChzdHJpY3QgJiYgUFFudHVwbGVzKHJlcykgPT0gMCkKIAkJCXBnX2ZhdGFsKCJu byBtYXRjaGluZyB0YWJsZXMgd2VyZSBmb3VuZCBmb3IgcGF0dGVybiBcIiVzXCIiLCBjZWxsLT52 YWwpOwogCiAJCWZvciAoaSA9IDA7IGkgPCBQUW50dXBsZXMocmVzKTsgaSsrKQpAQCAtMTA4NzAs OCArMTA4NzAsOCBAQCBkdW1wQ29tbWVudEV4dGVuZGVkKEFyY2hpdmUgKmZvdXQsIGNvbnN0IGNo YXIgKnR5cGUsCiAJCQkJCWNvbnN0IGNoYXIgKmluaXRkYl9jb21tZW50KQogewogCUR1bXBPcHRp b25zICpkb3B0ID0gZm91dC0+ZG9wdDsKLQlDb21tZW50SXRlbSAqY29tbWVudHM7Ci0JaW50CQkJ bmNvbW1lbnRzOworCUNvbW1lbnRJdGVtICpjb21tZW50X2l0ZW1zOworCWludAkJCW5fY29tbWVu dF9pdGVtczsKIAogCS8qIGRvIG5vdGhpbmcsIGlmIC0tbm8tY29tbWVudHMgaXMgc3VwcGxpZWQg Ki8KIAlpZiAoZG9wdC0+bm9fY29tbWVudHMpCkBAIC0xMDg5MSwxNiArMTA4OTEsMTYgQEAgZHVt cENvbW1lbnRFeHRlbmRlZChBcmNoaXZlICpmb3V0LCBjb25zdCBjaGFyICp0eXBlLAogCX0KIAog CS8qIFNlYXJjaCBmb3IgY29tbWVudHMgYXNzb2NpYXRlZCB3aXRoIGNhdGFsb2dJZCwgdXNpbmcg dGFibGUgKi8KLQluY29tbWVudHMgPSBmaW5kQ29tbWVudHMoY2F0YWxvZ0lkLnRhYmxlb2lkLCBj YXRhbG9nSWQub2lkLAotCQkJCQkJCSAmY29tbWVudHMpOworCW5fY29tbWVudF9pdGVtcyA9IGZp bmRDb21tZW50cyhjYXRhbG9nSWQudGFibGVvaWQsIGNhdGFsb2dJZC5vaWQsCisJCQkJCQkJCSAg ICZjb21tZW50X2l0ZW1zKTsKIAogCS8qIElzIHRoZXJlIG9uZSBtYXRjaGluZyB0aGUgc3ViaWQ/ ICovCi0Jd2hpbGUgKG5jb21tZW50cyA+IDApCisJd2hpbGUgKG5fY29tbWVudF9pdGVtcyA+IDAp CiAJewotCQlpZiAoY29tbWVudHMtPm9ianN1YmlkID09IHN1YmlkKQorCQlpZiAoY29tbWVudF9p dGVtcy0+b2Jqc3ViaWQgPT0gc3ViaWQpCiAJCQlicmVhazsKLQkJY29tbWVudHMrKzsKLQkJbmNv bW1lbnRzLS07CisJCWNvbW1lbnRfaXRlbXMrKzsKKwkJbl9jb21tZW50X2l0ZW1zLS07CiAJfQog CiAJaWYgKGluaXRkYl9jb21tZW50ICE9IE5VTEwpCkBAIC0xMDkxMywxNyArMTA5MTMsMTcgQEAg ZHVtcENvbW1lbnRFeHRlbmRlZChBcmNoaXZlICpmb3V0LCBjb25zdCBjaGFyICp0eXBlLAogCQkg KiBub24tc3VwZXJ1c2VyIHVzZSBvZiBwZ19kdW1wLiAgV2hlbiB0aGUgREJBIGhhcyByZW1vdmVk IGluaXRkYidzCiAJCSAqIGNvbW1lbnQsIHJlcGxpY2F0ZSB0aGF0LgogCQkgKi8KLQkJaWYgKG5j b21tZW50cyA9PSAwKQorCQlpZiAobl9jb21tZW50X2l0ZW1zID09IDApCiAJCXsKLQkJCWNvbW1l bnRzID0gJmVtcHR5X2NvbW1lbnQ7Ci0JCQluY29tbWVudHMgPSAxOworCQkJY29tbWVudF9pdGVt cyA9ICZlbXB0eV9jb21tZW50OworCQkJbl9jb21tZW50X2l0ZW1zID0gMTsKIAkJfQotCQllbHNl IGlmIChzdHJjbXAoY29tbWVudHMtPmRlc2NyLCBpbml0ZGJfY29tbWVudCkgPT0gMCkKLQkJCW5j b21tZW50cyA9IDA7CisJCWVsc2UgaWYgKHN0cmNtcChjb21tZW50X2l0ZW1zLT5kZXNjciwgaW5p dGRiX2NvbW1lbnQpID09IDApCisJCQluX2NvbW1lbnRfaXRlbXMgPSAwOwogCX0KIAogCS8qIElm IGEgY29tbWVudCBleGlzdHMsIGJ1aWxkIENPTU1FTlQgT04gc3RhdGVtZW50ICovCi0JaWYgKG5j b21tZW50cyA+IDApCisJaWYgKG5fY29tbWVudF9pdGVtcyA+IDApCiAJewogCQlQUUV4cEJ1ZmZl ciBxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAJCVBRRXhwQnVmZmVyIHRhZyA9IGNyZWF0 ZVBRRXhwQnVmZmVyKCk7CkBAIC0xMDkzMiw3ICsxMDkzMiw3IEBAIGR1bXBDb21tZW50RXh0ZW5k ZWQoQXJjaGl2ZSAqZm91dCwgY29uc3QgY2hhciAqdHlwZSwKIAkJaWYgKG5hbWVzcGFjZSAmJiAq bmFtZXNwYWNlKQogCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIlcy4iLCBmbXRJZChuYW1l c3BhY2UpKTsKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIlcyBJUyAiLCBuYW1lKTsKLQkJ YXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBjb21tZW50cy0+ZGVzY3IsIGZvdXQpOworCQlh cHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIGNvbW1lbnRfaXRlbXMtPmRlc2NyLCBmb3V0KTsK IAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICI7XG4iKTsKIAogCQlhcHBlbmRQUUV4cEJ1 ZmZlcih0YWcsICIlcyAlcyIsIHR5cGUsIG5hbWUpOwpAQCAtMTEzODgsOCArMTEzODgsOCBAQCBk dW1wVGFibGVDb21tZW50KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvLAog CQkJCSBjb25zdCBjaGFyICpyZWx0eXBlbmFtZSkKIHsKIAlEdW1wT3B0aW9ucyAqZG9wdCA9IGZv dXQtPmRvcHQ7Ci0JQ29tbWVudEl0ZW0gKmNvbW1lbnRzOwotCWludAkJCW5jb21tZW50czsKKwlD b21tZW50SXRlbSAqY29tbWVudF9pdGVtczsKKwlpbnQJCQluX2NvbW1lbnRfaXRlbXM7CiAJUFFF eHBCdWZmZXIgcXVlcnk7CiAJUFFFeHBCdWZmZXIgdGFnOwogCkBAIC0xMTQwMiwyMSArMTE0MDIs MjEgQEAgZHVtcFRhYmxlQ29tbWVudChBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRi aW5mbywKIAkJcmV0dXJuOwogCiAJLyogU2VhcmNoIGZvciBjb21tZW50cyBhc3NvY2lhdGVkIHdp dGggcmVsYXRpb24sIHVzaW5nIHRhYmxlICovCi0JbmNvbW1lbnRzID0gZmluZENvbW1lbnRzKHRi aW5mby0+ZG9iai5jYXRJZC50YWJsZW9pZCwKLQkJCQkJCQkgdGJpbmZvLT5kb2JqLmNhdElkLm9p ZCwKLQkJCQkJCQkgJmNvbW1lbnRzKTsKKwluX2NvbW1lbnRfaXRlbXMgPSBmaW5kQ29tbWVudHMo dGJpbmZvLT5kb2JqLmNhdElkLnRhYmxlb2lkLAorCQkJCQkJCQkgICB0YmluZm8tPmRvYmouY2F0 SWQub2lkLAorCQkJCQkJCQkgICAmY29tbWVudF9pdGVtcyk7CiAKIAkvKiBJZiBjb21tZW50cyBl eGlzdCwgYnVpbGQgQ09NTUVOVCBPTiBzdGF0ZW1lbnRzICovCi0JaWYgKG5jb21tZW50cyA8PSAw KQorCWlmIChuX2NvbW1lbnRfaXRlbXMgPD0gMCkKIAkJcmV0dXJuOwogCiAJcXVlcnkgPSBjcmVh dGVQUUV4cEJ1ZmZlcigpOwogCXRhZyA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAKLQl3aGlsZSAo bmNvbW1lbnRzID4gMCkKKwl3aGlsZSAobl9jb21tZW50X2l0ZW1zID4gMCkKIAl7Ci0JCWNvbnN0 IGNoYXIgKmRlc2NyID0gY29tbWVudHMtPmRlc2NyOwotCQlpbnQJCQlvYmpzdWJpZCA9IGNvbW1l bnRzLT5vYmpzdWJpZDsKKwkJY29uc3QgY2hhciAqZGVzY3IgPSBjb21tZW50X2l0ZW1zLT5kZXNj cjsKKwkJaW50CQkJb2Jqc3ViaWQgPSBjb21tZW50X2l0ZW1zLT5vYmpzdWJpZDsKIAogCQlpZiAo b2Jqc3ViaWQgPT0gMCkKIAkJewpAQCAtMTE0NjYsOCArMTE0NjYsOCBAQCBkdW1wVGFibGVDb21t ZW50KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvLAogCQkJCQkJCQkJICAu bkRlcHMgPSAxKSk7CiAJCX0KIAotCQljb21tZW50cysrOwotCQluY29tbWVudHMtLTsKKwkJY29t bWVudF9pdGVtcysrOworCQluX2NvbW1lbnRfaXRlbXMtLTsKIAl9CiAKIAlkZXN0cm95UFFFeHBC dWZmZXIocXVlcnkpOwpAQCAtMTMxMTYsOCArMTMxMTYsOCBAQCBzdGF0aWMgdm9pZAogZHVtcENv bXBvc2l0ZVR5cGVDb2xDb21tZW50cyhBcmNoaXZlICpmb3V0LCBjb25zdCBUeXBlSW5mbyAqdHlp bmZvLAogCQkJCQkJCSBQR3Jlc3VsdCAqcmVzKQogewotCUNvbW1lbnRJdGVtICpjb21tZW50czsK LQlpbnQJCQluY29tbWVudHM7CisJQ29tbWVudEl0ZW0gKmNvbW1lbnRfaXRlbXM7CisJaW50CQkJ bl9jb21tZW50X2l0ZW1zOwogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCVBRRXhwQnVmZmVyIHRhcmdl dDsKIAlpbnQJCQlpOwpAQCAtMTMxMzEsMTEgKzEzMTMxLDExIEBAIGR1bXBDb21wb3NpdGVUeXBl Q29sQ29tbWVudHMoQXJjaGl2ZSAqZm91dCwgY29uc3QgVHlwZUluZm8gKnR5aW5mbywKIAkJcmV0 dXJuOwogCiAJLyogU2VhcmNoIGZvciBjb21tZW50cyBhc3NvY2lhdGVkIHdpdGggdHlwZSdzIHBn X2NsYXNzIE9JRCAqLwotCW5jb21tZW50cyA9IGZpbmRDb21tZW50cyhSZWxhdGlvblJlbGF0aW9u SWQsIHR5aW5mby0+dHlwcmVsaWQsCi0JCQkJCQkJICZjb21tZW50cyk7CisJbl9jb21tZW50X2l0 ZW1zID0gZmluZENvbW1lbnRzKFJlbGF0aW9uUmVsYXRpb25JZCwgdHlpbmZvLT50eXByZWxpZCwK KwkJCQkJCQkJICAgJmNvbW1lbnRfaXRlbXMpOwogCiAJLyogSWYgbm8gY29tbWVudHMgZXhpc3Qs IHdlJ3JlIGRvbmUgKi8KLQlpZiAobmNvbW1lbnRzIDw9IDApCisJaWYgKG5fY29tbWVudF9pdGVt cyA8PSAwKQogCQlyZXR1cm47CiAKIAkvKiBCdWlsZCBDT01NRU5UIE9OIHN0YXRlbWVudHMgKi8K QEAgLTEzMTQ2LDE0ICsxMzE0NiwxNCBAQCBkdW1wQ29tcG9zaXRlVHlwZUNvbENvbW1lbnRzKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFR5cGVJbmZvICp0eWluZm8sCiAJaV9hdHRudW0gPSBQUWZudW1i ZXIocmVzLCAiYXR0bnVtIik7CiAJaV9hdHRuYW1lID0gUFFmbnVtYmVyKHJlcywgImF0dG5hbWUi KTsKIAlpX2F0dGlzZHJvcHBlZCA9IFBRZm51bWJlcihyZXMsICJhdHRpc2Ryb3BwZWQiKTsKLQl3 aGlsZSAobmNvbW1lbnRzID4gMCkKKwl3aGlsZSAobl9jb21tZW50X2l0ZW1zID4gMCkKIAl7CiAJ CWNvbnN0IGNoYXIgKmF0dG5hbWU7CiAKIAkJYXR0bmFtZSA9IE5VTEw7CiAJCWZvciAoaSA9IDA7 IGkgPCBudHVwczsgaSsrKQogCQl7Ci0JCQlpZiAoYXRvaShQUWdldHZhbHVlKHJlcywgaSwgaV9h dHRudW0pKSA9PSBjb21tZW50cy0+b2Jqc3ViaWQgJiYKKwkJCWlmIChhdG9pKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX2F0dG51bSkpID09IGNvbW1lbnRfaXRlbXMtPm9ianN1YmlkICYmCiAJCQkJUFFn ZXR2YWx1ZShyZXMsIGksIGlfYXR0aXNkcm9wcGVkKVswXSAhPSAndCcpCiAJCQl7CiAJCQkJYXR0 bmFtZSA9IFBRZ2V0dmFsdWUocmVzLCBpLCBpX2F0dG5hbWUpOwpAQCAtMTMxNjIsNyArMTMxNjIs NyBAQCBkdW1wQ29tcG9zaXRlVHlwZUNvbENvbW1lbnRzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFR5 cGVJbmZvICp0eWluZm8sCiAJCX0KIAkJaWYgKGF0dG5hbWUpCQkJLyoganVzdCBpbiBjYXNlIHdl IGRvbid0IGZpbmQgaXQgKi8KIAkJewotCQkJY29uc3QgY2hhciAqZGVzY3IgPSBjb21tZW50cy0+ ZGVzY3I7CisJCQljb25zdCBjaGFyICpkZXNjciA9IGNvbW1lbnRfaXRlbXMtPmRlc2NyOwogCiAJ CQlyZXNldFBRRXhwQnVmZmVyKHRhcmdldCk7CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcih0YXJnZXQs ICJDT0xVTU4gJXMuIiwKQEAgLTEzMTg3LDggKzEzMTg3LDggQEAgZHVtcENvbXBvc2l0ZVR5cGVD b2xDb21tZW50cyhBcmNoaXZlICpmb3V0LCBjb25zdCBUeXBlSW5mbyAqdHlpbmZvLAogCQkJCQkJ CQkJICAubkRlcHMgPSAxKSk7CiAJCX0KIAotCQljb21tZW50cysrOwotCQluY29tbWVudHMtLTsK KwkJY29tbWVudF9pdGVtcysrOworCQluX2NvbW1lbnRfaXRlbXMtLTsKIAl9CiAKIAlkZXN0cm95 UFFFeHBCdWZmZXIocXVlcnkpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3Rv cmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggYzk3NzYzMDZjNWMuLjVm Nzc4ZWM5ZTc3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTUxNywxMSArNTE3LDExIEBAIG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogfQogCiBzdGF0aWMgdm9pZAotdXNhZ2UoY29uc3QgY2hh ciAqcHJvZ25hbWUpCit1c2FnZShjb25zdCBjaGFyICpteXByb2duYW1lKQogewotCXByaW50Zihf KCIlcyByZXN0b3JlcyBhIFBvc3RncmVTUUwgZGF0YWJhc2UgZnJvbSBhbiBhcmNoaXZlIGNyZWF0 ZWQgYnkgcGdfZHVtcC5cblxuIiksIHByb2duYW1lKTsKKwlwcmludGYoXygiJXMgcmVzdG9yZXMg YSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGZyb20gYW4gYXJjaGl2ZSBjcmVhdGVkIGJ5IHBnX2R1bXAu XG5cbiIpLCBteXByb2duYW1lKTsKIAlwcmludGYoXygiVXNhZ2U6XG4iKSk7Ci0JcHJpbnRmKF8o IiAgJXMgW09QVElPTl0uLi4gW0ZJTEVdXG4iKSwgcHJvZ25hbWUpOworCXByaW50ZihfKCIgICVz IFtPUFRJT05dLi4uIFtGSUxFXVxuIiksIG15cHJvZ25hbWUpOwogCiAJcHJpbnRmKF8oIlxuR2Vu ZXJhbCBvcHRpb25zOlxuIikpOwogCXByaW50ZihfKCIgIC1kLCAtLWRibmFtZT1OQU1FICAgICAg ICBjb25uZWN0IHRvIGRhdGFiYXNlIG5hbWVcbiIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf cmV3aW5kL3BnX3Jld2luZC5jIGIvc3JjL2Jpbi9wZ19yZXdpbmQvcGdfcmV3aW5kLmMKaW5kZXgg ZTkzNjRkMDRmNzYuLjRiYWNkOWU5ZDM0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Jld2luZC9w Z19yZXdpbmQuYworKysgYi9zcmMvYmluL3BnX3Jld2luZC9wZ19yZXdpbmQuYwpAQCAtODksOSAr ODksOSBAQCBzdGF0aWMgUEdjb25uICpjb25uOwogc3RhdGljIHJld2luZF9zb3VyY2UgKnNvdXJj ZTsKIAogc3RhdGljIHZvaWQKLXVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQordXNhZ2UoY29u c3QgY2hhciAqbXlwcm9nbmFtZSkKIHsKLQlwcmludGYoXygiJXMgcmVzeW5jaHJvbml6ZXMgYSBQ b3N0Z3JlU1FMIGNsdXN0ZXIgd2l0aCBhbm90aGVyIGNvcHkgb2YgdGhlIGNsdXN0ZXIuXG5cbiIp LCBwcm9nbmFtZSk7CisJcHJpbnRmKF8oIiVzIHJlc3luY2hyb25pemVzIGEgUG9zdGdyZVNRTCBj bHVzdGVyIHdpdGggYW5vdGhlciBjb3B5IG9mIHRoZSBjbHVzdGVyLlxuXG4iKSwgbXlwcm9nbmFt ZSk7CiAJcHJpbnRmKF8oIlVzYWdlOlxuICAlcyBbT1BUSU9OXS4uLlxuXG4iKSwgcHJvZ25hbWUp OwogCXByaW50ZihfKCJPcHRpb25zOlxuIikpOwogCXByaW50ZihfKCIgIC1jLCAtLXJlc3RvcmUt dGFyZ2V0LXdhbCAgICAgICB1c2UgXCJyZXN0b3JlX2NvbW1hbmRcIiBpbiB0YXJnZXQgY29uZmln dXJhdGlvbiB0b1xuIgpAQCAtNTYxLDcgKzU2MSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogICogdGFyZ2V0IGFuZCB0aGUgc291cmNlLgogICovCiBzdGF0aWMgdm9pZAotcGVyZm9y bV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFwLCByZXdpbmRfc291cmNlICpzb3VyY2UsCitwZXJm b3JtX3Jld2luZChmaWxlbWFwX3QgKmZpbGVtYXAsIHJld2luZF9zb3VyY2UgKnJld2luZHNvdXJj ZSwKIAkJCSAgIFhMb2dSZWNQdHIgY2hrcHRyZWMsCiAJCQkgICBUaW1lTGluZUlEIGNoa3B0dGxp LAogCQkJICAgWExvZ1JlY1B0ciBjaGtwdHJlZG8pCkBAIC01OTUsNyArNTk1LDcgQEAgcGVyZm9y bV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFwLCByZXdpbmRfc291cmNlICpzb3VyY2UsCiAJCQl3 aGlsZSAoZGF0YXBhZ2VtYXBfbmV4dChpdGVyLCAmYmxrbm8pKQogCQkJewogCQkJCW9mZnNldCA9 IGJsa25vICogQkxDS1NaOwotCQkJCXNvdXJjZS0+cXVldWVfZmV0Y2hfcmFuZ2Uoc291cmNlLCBl bnRyeS0+cGF0aCwgb2Zmc2V0LCBCTENLU1opOworCQkJCXJld2luZHNvdXJjZS0+cXVldWVfZmV0 Y2hfcmFuZ2UocmV3aW5kc291cmNlLCBlbnRyeS0+cGF0aCwgb2Zmc2V0LCBCTENLU1opOwogCQkJ fQogCQkJcGdfZnJlZShpdGVyKTsKIAkJfQpAQCAtNjA3LDcgKzYwNyw3IEBAIHBlcmZvcm1fcmV3 aW5kKGZpbGVtYXBfdCAqZmlsZW1hcCwgcmV3aW5kX3NvdXJjZSAqc291cmNlLAogCQkJCWJyZWFr OwogCiAJCQljYXNlIEZJTEVfQUNUSU9OX0NPUFk6Ci0JCQkJc291cmNlLT5xdWV1ZV9mZXRjaF9m aWxlKHNvdXJjZSwgZW50cnktPnBhdGgsIGVudHJ5LT5zb3VyY2Vfc2l6ZSk7CisJCQkJcmV3aW5k c291cmNlLT5xdWV1ZV9mZXRjaF9maWxlKHJld2luZHNvdXJjZSwgZW50cnktPnBhdGgsIGVudHJ5 LT5zb3VyY2Vfc2l6ZSk7CiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgRklMRV9BQ1RJT05fVFJVTkNB VEU6CkBAIC02MTUsOSArNjE1LDkgQEAgcGVyZm9ybV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFw LCByZXdpbmRfc291cmNlICpzb3VyY2UsCiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgRklMRV9BQ1RJ T05fQ09QWV9UQUlMOgotCQkJCXNvdXJjZS0+cXVldWVfZmV0Y2hfcmFuZ2Uoc291cmNlLCBlbnRy eS0+cGF0aCwKLQkJCQkJCQkJCQkgIGVudHJ5LT50YXJnZXRfc2l6ZSwKLQkJCQkJCQkJCQkgIGVu dHJ5LT5zb3VyY2Vfc2l6ZSAtIGVudHJ5LT50YXJnZXRfc2l6ZSk7CisJCQkJcmV3aW5kc291cmNl LT5xdWV1ZV9mZXRjaF9yYW5nZShyZXdpbmRzb3VyY2UsIGVudHJ5LT5wYXRoLAorCQkJCQkJCQkJ CQkJZW50cnktPnRhcmdldF9zaXplLAorCQkJCQkJCQkJCQkJZW50cnktPnNvdXJjZV9zaXplIC0g ZW50cnktPnRhcmdldF9zaXplKTsKIAkJCQlicmVhazsKIAogCQkJY2FzZSBGSUxFX0FDVElPTl9S RU1PVkU6CkBAIC02MzUsNyArNjM1LDcgQEAgcGVyZm9ybV9yZXdpbmQoZmlsZW1hcF90ICpmaWxl bWFwLCByZXdpbmRfc291cmNlICpzb3VyY2UsCiAJfQogCiAJLyogQ29tcGxldGUgYW55IHJlbWFp bmluZyByYW5nZS1mZXRjaGVzIHRoYXQgd2UgcXVldWVkIHVwIGFib3ZlLiAqLwotCXNvdXJjZS0+ ZmluaXNoX2ZldGNoKHNvdXJjZSk7CisJcmV3aW5kc291cmNlLT5maW5pc2hfZmV0Y2gocmV3aW5k c291cmNlKTsKIAogCWNsb3NlX3RhcmdldF9maWxlKCk7CiAKQEAgLTY0NSw3ICs2NDUsNyBAQCBw ZXJmb3JtX3Jld2luZChmaWxlbWFwX3QgKmZpbGVtYXAsIHJld2luZF9zb3VyY2UgKnNvdXJjZSwK IAkgKiBGZXRjaCB0aGUgY29udHJvbCBmaWxlIGZyb20gdGhlIHNvdXJjZSBsYXN0LiBUaGlzIGVu c3VyZXMgdGhhdCB0aGUKIAkgKiBtaW5SZWNvdmVyeVBvaW50IGlzIHVwLXRvLWRhdGUuCiAJICov Ci0JYnVmZmVyID0gc291cmNlLT5mZXRjaF9maWxlKHNvdXJjZSwgWExPR19DT05UUk9MX0ZJTEUs ICZzaXplKTsKKwlidWZmZXIgPSByZXdpbmRzb3VyY2UtPmZldGNoX2ZpbGUocmV3aW5kc291cmNl LCBYTE9HX0NPTlRST0xfRklMRSwgJnNpemUpOwogCWRpZ2VzdENvbnRyb2xGaWxlKCZDb250cm9s RmlsZV9zb3VyY2VfYWZ0ZXIsIGJ1ZmZlciwgc2l6ZSk7CiAJcGdfZnJlZShidWZmZXIpOwogCkBA IC03MTcsNyArNzE3LDcgQEAgcGVyZm9ybV9yZXdpbmQoZmlsZW1hcF90ICpmaWxlbWFwLCByZXdp bmRfc291cmNlICpzb3VyY2UsCiAJCQlpZiAoQ29udHJvbEZpbGVfc291cmNlX2FmdGVyLnN0YXRl ICE9IERCX0lOX1BST0RVQ1RJT04pCiAJCQkJcGdfZmF0YWwoInNvdXJjZSBzeXN0ZW0gd2FzIGlu IHVuZXhwZWN0ZWQgc3RhdGUgYXQgZW5kIG9mIHJld2luZCIpOwogCi0JCQllbmRyZWMgPSBzb3Vy Y2UtPmdldF9jdXJyZW50X3dhbF9pbnNlcnRfbHNuKHNvdXJjZSk7CisJCQllbmRyZWMgPSByZXdp bmRzb3VyY2UtPmdldF9jdXJyZW50X3dhbF9pbnNlcnRfbHNuKHJld2luZHNvdXJjZSk7CiAJCQll bmR0bGkgPSBNYXgoQ29udHJvbEZpbGVfc291cmNlX2FmdGVyLmNoZWNrUG9pbnRDb3B5LlRoaXNU aW1lTGluZUlELAogCQkJCQkJIENvbnRyb2xGaWxlX3NvdXJjZV9hZnRlci5taW5SZWNvdmVyeVBv aW50VExJKTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2Vj cGcuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3BnLmMKaW5kZXggM2YwZjEwZTY1 NGEuLjUyNTk4OGEyMzAyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2Mv ZWNwZy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3BnLmMKQEAgLTMyLDEz ICszMiwxMyBAQCBzdHJ1Y3QgX2RlZmluZXMgKmRlZmluZXMgPSBOVUxMOwogc3RydWN0IGRlY2xh cmVkX2xpc3QgKmdfZGVjbGFyZWRfbGlzdCA9IE5VTEw7CiAKIHN0YXRpYyB2b2lkCi1oZWxwKGNv bnN0IGNoYXIgKnByb2duYW1lKQoraGVscChjb25zdCBjaGFyICpteXByb2duYW1lKQogewogCXBy aW50ZihfKCIlcyBpcyB0aGUgUG9zdGdyZVNRTCBlbWJlZGRlZCBTUUwgcHJlcHJvY2Vzc29yIGZv ciBDIHByb2dyYW1zLlxuXG4iKSwKLQkJICAgcHJvZ25hbWUpOworCQkgICBteXByb2duYW1lKTsK IAlwcmludGYoXygiVXNhZ2U6XG4iCiAJCQkgIiAgJXMgW09QVElPTl0uLi4gRklMRS4uLlxuXG4i KSwKLQkJICAgcHJvZ25hbWUpOworCQkgICBteXByb2duYW1lKTsKIAlwcmludGYoXygiT3B0aW9u czpcbiIpKTsKIAlwcmludGYoXygiICAtYyAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGdlbmVy YXRlIEMgY29kZSBmcm9tIGVtYmVkZGVkIFNRTCBjb2RlO1xuIgogCQkJICIgICAgICAgICAgICAg ICAgIHRoaXMgYWZmZWN0cyBFWEVDIFNRTCBUWVBFXG4iKSk7Ci0tIAoyLjM5LjUgKEFwcGxlIEdp dC0xNTQpCgo= --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0006-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Disposition: attachment; filename="v4-0006-cleanup-avoid-local-variables-shadowed-by-static-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7li5 RnJvbSAzN2RkZTViNzc3ODZlNmViZDc4ODNkZmYyYTc5ZWZiM2FmODM5MmFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE0OjAxOjMxICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwNi8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IHN0YXRpYwogZmls ZS1zY29wZSBvbmVzIGluIHhsb2dyZWNvdmVyeS5jCgpUaGlzIGNvbW1pdCBmaXhlcyBzZXZlcmFs IGNhc2VzIGluIHhsb2dyZWNvdmVyeS5jIHdoZXJlIGxvY2FsIHZhcmlhYmxlcwp1c2VkIG5hbWVz IHRoYXQgY29uZmxpY3RlZCB3aXRoIHN0YXRpYyB2YXJpYWJsZXMgZGVmaW5lZCBhdCBmaWxlIHNj b3BlLgpUaGUgbG9jYWwgaWRlbnRpZmllcnMgYXJlIHJlbmFtZWQgc28gdGhleSBhcmUgbm8gbG9u Z2VyIHNoYWRvd2VkIGJ5IHRoZQpzdGF0aWMgb25lcy4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhp Z2hnby5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01h ajh0SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgfCAxMDAgKysrKysrKysr KystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDUwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNv dmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXgg MjFiOGYxNzliYTAuLjkwM2UyYWZlNWVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9ncmVjb3ZlcnkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9ncmVjb3ZlcnkuYwpAQCAtMTIwOCw3ICsxMjA4LDcgQEAgdmFsaWRhdGVSZWNvdmVyeVBhcmFt ZXRlcnModm9pZCkKICAqIFJldHVybnMgdHJ1ZSBpZiBhIGJhY2t1cF9sYWJlbCB3YXMgZm91bmQg KGFuZCBmaWxscyB0aGUgY2hlY2twb2ludAogICogbG9jYXRpb24gYW5kIFRMSSBpbnRvICpjaGVj a1BvaW50TG9jIGFuZCAqYmFja3VwTGFiZWxUTEksIHJlc3BlY3RpdmVseSk7CiAgKiByZXR1cm5z IGZhbHNlIGlmIG5vdC4gSWYgdGhpcyBiYWNrdXBfbGFiZWwgY2FtZSBmcm9tIGEgc3RyZWFtZWQg YmFja3VwLAotICogKmJhY2t1cEVuZFJlcXVpcmVkIGlzIHNldCB0byB0cnVlLiBJZiB0aGlzIGJh Y2t1cF9sYWJlbCB3YXMgY3JlYXRlZCBkdXJpbmcKKyAqICpiYWNrdXBFbmROZWVkZWQgaXMgc2V0 IHRvIHRydWUuIElmIHRoaXMgYmFja3VwX2xhYmVsIHdhcyBjcmVhdGVkIGR1cmluZwogICogcmVj b3ZlcnksICpiYWNrdXBGcm9tU3RhbmRieSBpcyBzZXQgdG8gdHJ1ZS4KICAqCiAgKiBBbHNvIHNl dHMgdGhlIGdsb2JhbCB2YXJpYWJsZXMgUmVkb1N0YXJ0TFNOIGFuZCBSZWRvU3RhcnRUTEkgd2l0 aCB0aGUgTFNOCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCB2YWxpZGF0ZVJlY292ZXJ5UGFyYW1ldGVy cyh2b2lkKQogICovCiBzdGF0aWMgYm9vbAogcmVhZF9iYWNrdXBfbGFiZWwoWExvZ1JlY1B0ciAq Y2hlY2tQb2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFiZWxUTEksCi0JCQkJICBib29sICpi YWNrdXBFbmRSZXF1aXJlZCwgYm9vbCAqYmFja3VwRnJvbVN0YW5kYnkpCisJCQkJICBib29sICpi YWNrdXBFbmROZWVkZWQsIGJvb2wgKmJhY2t1cEZyb21TdGFuZGJ5KQogewogCWNoYXIJCXN0YXJ0 eGxvZ2ZpbGVuYW1lW01BWEZOQU1FTEVOXTsKIAlUaW1lTGluZUlECXRsaV9mcm9tX3dhbHNlZywK QEAgLTEyMzMsNyArMTIzMyw3IEBAIHJlYWRfYmFja3VwX2xhYmVsKFhMb2dSZWNQdHIgKmNoZWNr UG9pbnRMb2MsIFRpbWVMaW5lSUQgKmJhY2t1cExhYmVsVExJLAogCS8qIHN1cHByZXNzIHBvc3Np YmxlIHVuaW5pdGlhbGl6ZWQtdmFyaWFibGUgd2FybmluZ3MgKi8KIAkqY2hlY2tQb2ludExvYyA9 IEludmFsaWRYTG9nUmVjUHRyOwogCSpiYWNrdXBMYWJlbFRMSSA9IDA7Ci0JKmJhY2t1cEVuZFJl cXVpcmVkID0gZmFsc2U7CisJKmJhY2t1cEVuZE5lZWRlZCA9IGZhbHNlOwogCSpiYWNrdXBGcm9t U3RhbmRieSA9IGZhbHNlOwogCiAJLyoKQEAgLTEyNzcsMTMgKzEyNzcsMTMgQEAgcmVhZF9iYWNr dXBfbGFiZWwoWExvZ1JlY1B0ciAqY2hlY2tQb2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFi ZWxUTEksCiAJICogb3RoZXIgb3B0aW9uIHRvZGF5IGJlaW5nIGZyb20gcGdfcmV3aW5kKS4gIElm IHRoaXMgd2FzIGEgc3RyZWFtZWQKIAkgKiBiYWNrdXAgdGhlbiB3ZSBrbm93IHRoYXQgd2UgbmVl ZCB0byBwbGF5IHRocm91Z2ggdW50aWwgd2UgZ2V0IHRvIHRoZQogCSAqIGVuZCBvZiB0aGUgV0FM IHdoaWNoIHdhcyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBiYWNrdXAgKGF0IHdoaWNoIHBvaW50IHdl Ci0JICogd2lsbCBoYXZlIHJlYWNoZWQgY29uc2lzdGVuY3kgYW5kIGJhY2t1cEVuZFJlcXVpcmVk IHdpbGwgYmUgcmVzZXQgdG8gYmUKKwkgKiB3aWxsIGhhdmUgcmVhY2hlZCBjb25zaXN0ZW5jeSBh bmQgYmFja3VwRW5kTmVlZGVkIHdpbGwgYmUgcmVzZXQgdG8gYmUKIAkgKiBmYWxzZSkuCiAJICov CiAJaWYgKGZzY2FuZihsZnAsICJCQUNLVVAgTUVUSE9EOiAlMTlzXG4iLCBiYWNrdXB0eXBlKSA9 PSAxKQogCXsKIAkJaWYgKHN0cmNtcChiYWNrdXB0eXBlLCAic3RyZWFtZWQiKSA9PSAwKQotCQkJ KmJhY2t1cEVuZFJlcXVpcmVkID0gdHJ1ZTsKKwkJCSpiYWNrdXBFbmROZWVkZWQgPSB0cnVlOwog CX0KIAogCS8qCkBAIC0xOTI3LDE0ICsxOTI3LDE0IEBAIFBlcmZvcm1XYWxSZWNvdmVyeSh2b2lk KQogICogU3Vicm91dGluZSBvZiBQZXJmb3JtV2FsUmVjb3ZlcnksIHRvIGFwcGx5IG9uZSBXQUwg cmVjb3JkLgogICovCiBzdGF0aWMgdm9pZAotQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRlclN0YXRl ICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGxheVRMSSkK K0FwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqcmVhZGVyLCBYTG9nUmVjb3JkICpyZWNv cmQsIFRpbWVMaW5lSUQgKnJlcGxheVRMSSkKIHsKIAlFcnJvckNvbnRleHRDYWxsYmFjayBlcnJj YWxsYmFjazsKIAlib29sCQlzd2l0Y2hlZFRMSSA9IGZhbHNlOwogCiAJLyogU2V0dXAgZXJyb3Ig dHJhY2ViYWNrIHN1cHBvcnQgZm9yIGVyZXBvcnQoKSAqLwogCWVycmNhbGxiYWNrLmNhbGxiYWNr ID0gcm1fcmVkb19lcnJvcl9jYWxsYmFjazsKLQllcnJjYWxsYmFjay5hcmcgPSB4bG9ncmVhZGVy OworCWVycmNhbGxiYWNrLmFyZyA9IHJlYWRlcjsKIAllcnJjYWxsYmFjay5wcmV2aW91cyA9IGVy cm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZlcnJjYWxsYmFjazsK IApAQCAtMTk2MSw3ICsxOTYxLDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGwKIAkJewogCQkJ Q2hlY2tQb2ludAljaGVja1BvaW50OwogCi0JCQltZW1jcHkoJmNoZWNrUG9pbnQsIFhMb2dSZWNH ZXREYXRhKHhsb2dyZWFkZXIpLCBzaXplb2YoQ2hlY2tQb2ludCkpOworCQkJbWVtY3B5KCZjaGVj a1BvaW50LCBYTG9nUmVjR2V0RGF0YShyZWFkZXIpLCBzaXplb2YoQ2hlY2tQb2ludCkpOwogCQkJ bmV3UmVwbGF5VExJID0gY2hlY2tQb2ludC5UaGlzVGltZUxpbmVJRDsKIAkJCXByZXZSZXBsYXlU TEkgPSBjaGVja1BvaW50LlByZXZUaW1lTGluZUlEOwogCQl9CkBAIC0xOTY5LDcgKzE5NjksNyBA QCBBcHBseVdhbFJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQg KnJlY29yZCwgVGltZUxpbmVJRCAqcmVwbAogCQl7CiAJCQl4bF9lbmRfb2ZfcmVjb3ZlcnkgeGxy ZWM7CiAKLQkJCW1lbWNweSgmeGxyZWMsIFhMb2dSZWNHZXREYXRhKHhsb2dyZWFkZXIpLCBzaXpl b2YoeGxfZW5kX29mX3JlY292ZXJ5KSk7CisJCQltZW1jcHkoJnhscmVjLCBYTG9nUmVjR2V0RGF0 YShyZWFkZXIpLCBzaXplb2YoeGxfZW5kX29mX3JlY292ZXJ5KSk7CiAJCQluZXdSZXBsYXlUTEkg PSB4bHJlYy5UaGlzVGltZUxpbmVJRDsKIAkJCXByZXZSZXBsYXlUTEkgPSB4bHJlYy5QcmV2VGlt ZUxpbmVJRDsKIAkJfQpAQCAtMTk3Nyw3ICsxOTc3LDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1Jl YWRlclN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJl cGwKIAkJaWYgKG5ld1JlcGxheVRMSSAhPSAqcmVwbGF5VExJKQogCQl7CiAJCQkvKiBDaGVjayB0 aGF0IGl0J3MgT0sgdG8gc3dpdGNoIHRvIHRoaXMgVExJICovCi0JCQljaGVja1RpbWVMaW5lU3dp dGNoKHhsb2dyZWFkZXItPkVuZFJlY1B0ciwKKwkJCWNoZWNrVGltZUxpbmVTd2l0Y2gocmVhZGVy LT5FbmRSZWNQdHIsCiAJCQkJCQkJCW5ld1JlcGxheVRMSSwgcHJldlJlcGxheVRMSSwgKnJlcGxh eVRMSSk7CiAKIAkJCS8qIEZvbGxvd2luZyBXQUwgcmVjb3JkcyBzaG91bGQgYmUgcnVuIHdpdGgg bmV3IFRMSSAqLwpAQCAtMTk5MSw3ICsxOTkxLDcgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRl clN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJlcGwK IAkgKiBYTG9nRmx1c2ggd2lsbCB1cGRhdGUgbWluUmVjb3ZlcnlQb2ludCBjb3JyZWN0bHkuCiAJ ICovCiAJU3BpbkxvY2tBY3F1aXJlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKLQlYTG9n UmVjb3ZlcnlDdGwtPnJlcGxheUVuZFJlY1B0ciA9IHhsb2dyZWFkZXItPkVuZFJlY1B0cjsKKwlY TG9nUmVjb3ZlcnlDdGwtPnJlcGxheUVuZFJlY1B0ciA9IHJlYWRlci0+RW5kUmVjUHRyOwogCVhM b2dSZWNvdmVyeUN0bC0+cmVwbGF5RW5kVExJID0gKnJlcGxheVRMSTsKIAlTcGluTG9ja1JlbGVh c2UoJlhMb2dSZWNvdmVyeUN0bC0+aW5mb19sY2spOwogCkBAIC0yMDA3LDEwICsyMDA3LDEwIEBA IEFwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqeGxvZ3JlYWRlciwgWExvZ1JlY29yZCAq cmVjb3JkLCBUaW1lTGluZUlEICpyZXBsCiAJICogZGlyZWN0bHkgaGVyZSwgcmF0aGVyIHRoYW4g aW4geGxvZ19yZWRvKCkKIAkgKi8KIAlpZiAocmVjb3JkLT54bF9ybWlkID09IFJNX1hMT0dfSUQp Ci0JCXhsb2dyZWNvdmVyeV9yZWRvKHhsb2dyZWFkZXIsICpyZXBsYXlUTEkpOworCQl4bG9ncmVj b3ZlcnlfcmVkbyhyZWFkZXIsICpyZXBsYXlUTEkpOwogCiAJLyogTm93IGFwcGx5IHRoZSBXQUwg cmVjb3JkIGl0c2VsZiAqLwotCUdldFJtZ3IocmVjb3JkLT54bF9ybWlkKS5ybV9yZWRvKHhsb2dy ZWFkZXIpOworCUdldFJtZ3IocmVjb3JkLT54bF9ybWlkKS5ybV9yZWRvKHJlYWRlcik7CiAKIAkv KgogCSAqIEFmdGVyIHJlZG8sIGNoZWNrIHdoZXRoZXIgdGhlIGJhY2t1cCBwYWdlcyBhc3NvY2lh dGVkIHdpdGggdGhlIFdBTApAQCAtMjAxOCw3ICsyMDE4LDcgQEAgQXBwbHlXYWxSZWNvcmQoWExv Z1JlYWRlclN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQg KnJlcGwKIAkgKiBpZiBjb25zaXN0ZW5jeSBjaGVjayBpcyBlbmFibGVkIGZvciB0aGlzIHJlY29y ZC4KIAkgKi8KIAlpZiAoKHJlY29yZC0+eGxfaW5mbyAmIFhMUl9DSEVDS19DT05TSVNURU5DWSkg IT0gMCkKLQkJdmVyaWZ5QmFja3VwUGFnZUNvbnNpc3RlbmN5KHhsb2dyZWFkZXIpOworCQl2ZXJp ZnlCYWNrdXBQYWdlQ29uc2lzdGVuY3kocmVhZGVyKTsKIAogCS8qIFBvcCB0aGUgZXJyb3IgY29u dGV4dCBzdGFjayAqLwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxsYmFjay5wcmV2aW91 czsKQEAgLTIwMjgsOCArMjAyOCw4IEBAIEFwcGx5V2FsUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAq eGxvZ3JlYWRlciwgWExvZ1JlY29yZCAqcmVjb3JkLCBUaW1lTGluZUlEICpyZXBsCiAJICogcmVw bGF5ZWQuCiAJICovCiAJU3BpbkxvY2tBY3F1aXJlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNr KTsKLQlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBsYXllZFJlYWRSZWNQdHIgPSB4bG9ncmVhZGVy LT5SZWFkUmVjUHRyOwotCVhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkRW5kUmVjUHRyID0g eGxvZ3JlYWRlci0+RW5kUmVjUHRyOworCVhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkUmVh ZFJlY1B0ciA9IHJlYWRlci0+UmVhZFJlY1B0cjsKKwlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBs YXllZEVuZFJlY1B0ciA9IHJlYWRlci0+RW5kUmVjUHRyOwogCVhMb2dSZWNvdmVyeUN0bC0+bGFz dFJlcGxheWVkVExJID0gKnJlcGxheVRMSTsKIAlTcGluTG9ja1JlbGVhc2UoJlhMb2dSZWNvdmVy eUN0bC0+aW5mb19sY2spOwogCkBAIC0yMDc5LDcgKzIwNzksNyBAQCBBcHBseVdhbFJlY29yZChY TG9nUmVhZGVyU3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQgKnJlY29yZCwgVGltZUxpbmVJ RCAqcmVwbAogCQkgKiBCZWZvcmUgd2UgY29udGludWUgb24gdGhlIG5ldyB0aW1lbGluZSwgY2xl YW4gdXAgYW55IChwb3NzaWJseQogCQkgKiBib2d1cykgZnV0dXJlIFdBTCBzZWdtZW50cyBvbiB0 aGUgb2xkIHRpbWVsaW5lLgogCQkgKi8KLQkJUmVtb3ZlTm9uUGFyZW50WGxvZ0ZpbGVzKHhsb2dy ZWFkZXItPkVuZFJlY1B0ciwgKnJlcGxheVRMSSk7CisJCVJlbW92ZU5vblBhcmVudFhsb2dGaWxl cyhyZWFkZXItPkVuZFJlY1B0ciwgKnJlcGxheVRMSSk7CiAKIAkJLyogUmVzZXQgdGhlIHByZWZl dGNoZXIuICovCiAJCVhMb2dQcmVmZXRjaFJlY29uZmlndXJlKCk7CkBAIC0zMTUyLDE5ICszMTUy LDE5IEBAIENvbmZpcm1SZWNvdmVyeVBhdXNlZCh2b2lkKQogICogcmVjb3JkIGlzIGF2YWlsYWJs ZS4KICAqLwogc3RhdGljIFhMb2dSZWNvcmQgKgotUmVhZFJlY29yZChYTG9nUHJlZmV0Y2hlciAq eGxvZ3ByZWZldGNoZXIsIGludCBlbW9kZSwKK1JlYWRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnBy ZWZldGNoZXIsIGludCBlbW9kZSwKIAkJICAgYm9vbCBmZXRjaGluZ19ja3B0LCBUaW1lTGluZUlE IHJlcGxheVRMSSkKIHsKIAlYTG9nUmVjb3JkICpyZWNvcmQ7Ci0JWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyID0gWExvZ1ByZWZldGNoZXJHZXRSZWFkZXIoeGxvZ3ByZWZldGNoZXIpOwotCVhM b2dQYWdlUmVhZFByaXZhdGUgKnByaXZhdGUgPSAoWExvZ1BhZ2VSZWFkUHJpdmF0ZSAqKSB4bG9n cmVhZGVyLT5wcml2YXRlX2RhdGE7CisJWExvZ1JlYWRlclN0YXRlICpyZWFkZXIgPSBYTG9nUHJl ZmV0Y2hlckdldFJlYWRlcihwcmVmZXRjaGVyKTsKKwlYTG9nUGFnZVJlYWRQcml2YXRlICpwcml2 YXRlID0gKFhMb2dQYWdlUmVhZFByaXZhdGUgKikgcmVhZGVyLT5wcml2YXRlX2RhdGE7CiAKIAlB c3NlcnQoQW1TdGFydHVwUHJvY2VzcygpIHx8ICFJc1VuZGVyUG9zdG1hc3Rlcik7CiAKIAkvKiBQ YXNzIHRocm91Z2ggcGFyYW1ldGVycyB0byBYTG9nUGFnZVJlYWQgKi8KIAlwcml2YXRlLT5mZXRj aGluZ19ja3B0ID0gZmV0Y2hpbmdfY2twdDsKIAlwcml2YXRlLT5lbW9kZSA9IGVtb2RlOwotCXBy aXZhdGUtPnJhbmRBY2Nlc3MgPSAhWExvZ1JlY1B0cklzVmFsaWQoeGxvZ3JlYWRlci0+UmVhZFJl Y1B0cik7CisJcHJpdmF0ZS0+cmFuZEFjY2VzcyA9ICFYTG9nUmVjUHRySXNWYWxpZChyZWFkZXIt PlJlYWRSZWNQdHIpOwogCXByaXZhdGUtPnJlcGxheVRMSSA9IHJlcGxheVRMSTsKIAogCS8qIFRo aXMgaXMgdGhlIGZpcnN0IGF0dGVtcHQgdG8gcmVhZCB0aGlzIHBhZ2UuICovCkBAIC0zMTc0LDcg KzMxNzQsNyBAQCBSZWFkUmVjb3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50 IGVtb2RlLAogCXsKIAkJY2hhcgkgICAqZXJyb3Jtc2c7CiAKLQkJcmVjb3JkID0gWExvZ1ByZWZl dGNoZXJSZWFkUmVjb3JkKHhsb2dwcmVmZXRjaGVyLCAmZXJyb3Jtc2cpOworCQlyZWNvcmQgPSBY TG9nUHJlZmV0Y2hlclJlYWRSZWNvcmQocHJlZmV0Y2hlciwgJmVycm9ybXNnKTsKIAkJaWYgKHJl Y29yZCA9PSBOVUxMKQogCQl7CiAJCQkvKgpAQCAtMzE5MCwxMCArMzE5MCwxMCBAQCBSZWFkUmVj b3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50IGVtb2RlLAogCQkJICogb3Zl cndyaXRlIGNvbnRyZWNvcmQgaW4gdGhlIHdyb25nIHBsYWNlLCBicmVha2luZyBldmVyeXRoaW5n LgogCQkJICovCiAJCQlpZiAoIUFyY2hpdmVSZWNvdmVyeVJlcXVlc3RlZCAmJgotCQkJCVhMb2dS ZWNQdHJJc1ZhbGlkKHhsb2dyZWFkZXItPmFib3J0ZWRSZWNQdHIpKQorCQkJCVhMb2dSZWNQdHJJ c1ZhbGlkKHJlYWRlci0+YWJvcnRlZFJlY1B0cikpCiAJCQl7Ci0JCQkJYWJvcnRlZFJlY1B0ciA9 IHhsb2dyZWFkZXItPmFib3J0ZWRSZWNQdHI7Ci0JCQkJbWlzc2luZ0NvbnRyZWNQdHIgPSB4bG9n cmVhZGVyLT5taXNzaW5nQ29udHJlY1B0cjsKKwkJCQlhYm9ydGVkUmVjUHRyID0gcmVhZGVyLT5h Ym9ydGVkUmVjUHRyOworCQkJCW1pc3NpbmdDb250cmVjUHRyID0gcmVhZGVyLT5taXNzaW5nQ29u dHJlY1B0cjsKIAkJCX0KIAogCQkJaWYgKHJlYWRGaWxlID49IDApCkBAIC0zMjA5LDI5ICszMjA5 LDI5IEBAIFJlYWRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnhsb2dwcmVmZXRjaGVyLCBpbnQgZW1v ZGUsCiAJCQkgKiBzaG91bGRuJ3QgbG9vcCBhbnltb3JlIGluIHRoYXQgY2FzZS4KIAkJCSAqLwog CQkJaWYgKGVycm9ybXNnKQotCQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRfcmVjb3JkKGVt b2RlLCB4bG9ncmVhZGVyLT5FbmRSZWNQdHIpLAorCQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1 cHRfcmVjb3JkKGVtb2RlLCByZWFkZXItPkVuZFJlY1B0ciksCiAJCQkJCQkoZXJybXNnX2ludGVy bmFsKCIlcyIsIGVycm9ybXNnKSAvKiBhbHJlYWR5IHRyYW5zbGF0ZWQgKi8gKSk7CiAJCX0KIAog CQkvKgogCQkgKiBDaGVjayBwYWdlIFRMSSBpcyBvbmUgb2YgdGhlIGV4cGVjdGVkIHZhbHVlcy4K IAkJICovCi0JCWVsc2UgaWYgKCF0bGlJbkhpc3RvcnkoeGxvZ3JlYWRlci0+bGF0ZXN0UGFnZVRM SSwgZXhwZWN0ZWRUTEVzKSkKKwkJZWxzZSBpZiAoIXRsaUluSGlzdG9yeShyZWFkZXItPmxhdGVz dFBhZ2VUTEksIGV4cGVjdGVkVExFcykpCiAJCXsKIAkJCWNoYXIJCWZuYW1lW01BWEZOQU1FTEVO XTsKIAkJCVhMb2dTZWdObwlzZWdubzsKIAkJCWludDMyCQlvZmZzZXQ7CiAKLQkJCVhMQnl0ZVRv U2VnKHhsb2dyZWFkZXItPmxhdGVzdFBhZ2VQdHIsIHNlZ25vLCB3YWxfc2VnbWVudF9zaXplKTsK LQkJCW9mZnNldCA9IFhMb2dTZWdtZW50T2Zmc2V0KHhsb2dyZWFkZXItPmxhdGVzdFBhZ2VQdHIs CisJCQlYTEJ5dGVUb1NlZyhyZWFkZXItPmxhdGVzdFBhZ2VQdHIsIHNlZ25vLCB3YWxfc2VnbWVu dF9zaXplKTsKKwkJCW9mZnNldCA9IFhMb2dTZWdtZW50T2Zmc2V0KHJlYWRlci0+bGF0ZXN0UGFn ZVB0ciwKIAkJCQkJCQkJCSAgIHdhbF9zZWdtZW50X3NpemUpOwotCQkJWExvZ0ZpbGVOYW1lKGZu YW1lLCB4bG9ncmVhZGVyLT5zZWcud3NfdGxpLCBzZWdubywKKwkJCVhMb2dGaWxlTmFtZShmbmFt ZSwgcmVhZGVyLT5zZWcud3NfdGxpLCBzZWdubywKIAkJCQkJCSB3YWxfc2VnbWVudF9zaXplKTsK LQkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRfcmVjb3JkKGVtb2RlLCB4bG9ncmVhZGVyLT5F bmRSZWNQdHIpLAorCQkJZXJlcG9ydChlbW9kZV9mb3JfY29ycnVwdF9yZWNvcmQoZW1vZGUsIHJl YWRlci0+RW5kUmVjUHRyKSwKIAkJCQkJZXJybXNnKCJ1bmV4cGVjdGVkIHRpbWVsaW5lIElEICV1 IGluIFdBTCBzZWdtZW50ICVzLCBMU04gJVgvJTA4WCwgb2Zmc2V0ICV1IiwKLQkJCQkJCSAgIHhs b2dyZWFkZXItPmxhdGVzdFBhZ2VUTEksCisJCQkJCQkgICByZWFkZXItPmxhdGVzdFBhZ2VUTEks CiAJCQkJCQkgICBmbmFtZSwKLQkJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyh4bG9ncmVhZGVyLT5s YXRlc3RQYWdlUHRyKSwKKwkJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhyZWFkZXItPmxhdGVzdFBh Z2VQdHIpLAogCQkJCQkJICAgb2Zmc2V0KSk7CiAJCQlyZWNvcmQgPSBOVUxMOwogCQl9CkBAIC0z MjY3LDggKzMyNjcsOCBAQCBSZWFkUmVjb3JkKFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hl ciwgaW50IGVtb2RlLAogCQkJCWlmIChTdGFuZGJ5TW9kZVJlcXVlc3RlZCkKIAkJCQkJRW5hYmxl U3RhbmRieU1vZGUoKTsKIAotCQkJCVN3aXRjaEludG9BcmNoaXZlUmVjb3ZlcnkoeGxvZ3JlYWRl ci0+RW5kUmVjUHRyLCByZXBsYXlUTEkpOwotCQkJCW1pblJlY292ZXJ5UG9pbnQgPSB4bG9ncmVh ZGVyLT5FbmRSZWNQdHI7CisJCQkJU3dpdGNoSW50b0FyY2hpdmVSZWNvdmVyeShyZWFkZXItPkVu ZFJlY1B0ciwgcmVwbGF5VExJKTsKKwkJCQltaW5SZWNvdmVyeVBvaW50ID0gcmVhZGVyLT5FbmRS ZWNQdHI7CiAJCQkJbWluUmVjb3ZlcnlQb2ludFRMSSA9IHJlcGxheVRMSTsKIAogCQkJCUNoZWNr UmVjb3ZlcnlDb25zaXN0ZW5jeSgpOwpAQCAtMzMyMSwxMSArMzMyMSwxMSBAQCBSZWFkUmVjb3Jk KFhMb2dQcmVmZXRjaGVyICp4bG9ncHJlZmV0Y2hlciwgaW50IGVtb2RlLAogICogc2xlZXAgYW5k IHJldHJ5LgogICovCiBzdGF0aWMgaW50Ci1YTG9nUGFnZVJlYWQoWExvZ1JlYWRlclN0YXRlICp4 bG9ncmVhZGVyLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsIGludCByZXFMZW4sCitYTG9nUGFn ZVJlYWQoWExvZ1JlYWRlclN0YXRlICpyZWFkZXIsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwg aW50IHJlcUxlbiwKIAkJCSBYTG9nUmVjUHRyIHRhcmdldFJlY1B0ciwgY2hhciAqcmVhZEJ1ZikK IHsKIAlYTG9nUGFnZVJlYWRQcml2YXRlICpwcml2YXRlID0KLQkJKFhMb2dQYWdlUmVhZFByaXZh dGUgKikgeGxvZ3JlYWRlci0+cHJpdmF0ZV9kYXRhOworCQkoWExvZ1BhZ2VSZWFkUHJpdmF0ZSAq KSByZWFkZXItPnByaXZhdGVfZGF0YTsKIAlpbnQJCQllbW9kZSA9IHByaXZhdGUtPmVtb2RlOwog CXVpbnQzMgkJdGFyZ2V0UGFnZU9mZjsKIAlYTG9nU2VnTm8JdGFyZ2V0U2VnTm8gUEdfVVNFRF9G T1JfQVNTRVJUU19PTkxZOwpAQCAtMzM3Miw3ICszMzcyLDcgQEAgcmV0cnk6CiAJCSBmbHVzaGVk VXB0byA8IHRhcmdldFBhZ2VQdHIgKyByZXFMZW4pKQogCXsKIAkJaWYgKHJlYWRGaWxlID49IDAg JiYKLQkJCXhsb2dyZWFkZXItPm5vbmJsb2NraW5nICYmCisJCQlyZWFkZXItPm5vbmJsb2NraW5n ICYmCiAJCQlyZWFkU291cmNlID09IFhMT0dfRlJPTV9TVFJFQU0gJiYKIAkJCWZsdXNoZWRVcHRv IDwgdGFyZ2V0UGFnZVB0ciArIHJlcUxlbikKIAkJCXJldHVybiBYTFJFQURfV09VTERCTE9DSzsK QEAgLTMzODIsOCArMzM4Miw4IEBAIHJldHJ5OgogCQkJCQkJCQkJCQlwcml2YXRlLT5mZXRjaGlu Z19ja3B0LAogCQkJCQkJCQkJCQl0YXJnZXRSZWNQdHIsCiAJCQkJCQkJCQkJCXByaXZhdGUtPnJl cGxheVRMSSwKLQkJCQkJCQkJCQkJeGxvZ3JlYWRlci0+RW5kUmVjUHRyLAotCQkJCQkJCQkJCQl4 bG9ncmVhZGVyLT5ub25ibG9ja2luZykpCisJCQkJCQkJCQkJCXJlYWRlci0+RW5kUmVjUHRyLAor CQkJCQkJCQkJCQlyZWFkZXItPm5vbmJsb2NraW5nKSkKIAkJewogCQkJY2FzZSBYTFJFQURfV09V TERCTE9DSzoKIAkJCQlyZXR1cm4gWExSRUFEX1dPVUxEQkxPQ0s7CkBAIC0zNDY3LDcgKzM0Njcs NyBAQCByZXRyeToKIAlBc3NlcnQodGFyZ2V0UGFnZU9mZiA9PSByZWFkT2ZmKTsKIAlBc3NlcnQo cmVxTGVuIDw9IHJlYWRMZW4pOwogCi0JeGxvZ3JlYWRlci0+c2VnLndzX3RsaSA9IGN1ckZpbGVU TEk7CisJcmVhZGVyLT5zZWcud3NfdGxpID0gY3VyRmlsZVRMSTsKIAogCS8qCiAJICogQ2hlY2sg dGhlIHBhZ2UgaGVhZGVyIGltbWVkaWF0ZWx5LCBzbyB0aGF0IHdlIGNhbiByZXRyeSBpbW1lZGlh dGVseSBpZgpAQCAtMzUwMywxOCArMzUwMywxOCBAQCByZXRyeToKIAkgKi8KIAlpZiAoU3RhbmRi eU1vZGUgJiYKIAkJKHRhcmdldFBhZ2VQdHIgJSB3YWxfc2VnbWVudF9zaXplKSA9PSAwICYmCi0J CSFYTG9nUmVhZGVyVmFsaWRhdGVQYWdlSGVhZGVyKHhsb2dyZWFkZXIsIHRhcmdldFBhZ2VQdHIs IHJlYWRCdWYpKQorCQkhWExvZ1JlYWRlclZhbGlkYXRlUGFnZUhlYWRlcihyZWFkZXIsIHRhcmdl dFBhZ2VQdHIsIHJlYWRCdWYpKQogCXsKIAkJLyoKIAkJICogRW1pdCB0aGlzIGVycm9yIHJpZ2h0 IG5vdyB0aGVuIHJldHJ5IHRoaXMgcGFnZSBpbW1lZGlhdGVseS4gVXNlCiAJCSAqIGVycm1zZ19p bnRlcm5hbCgpIGJlY2F1c2UgdGhlIG1lc3NhZ2Ugd2FzIGFscmVhZHkgdHJhbnNsYXRlZC4KIAkJ ICovCi0JCWlmICh4bG9ncmVhZGVyLT5lcnJvcm1zZ19idWZbMF0pCi0JCQllcmVwb3J0KGVtb2Rl X2Zvcl9jb3JydXB0X3JlY29yZChlbW9kZSwgeGxvZ3JlYWRlci0+RW5kUmVjUHRyKSwKLQkJCQkJ KGVycm1zZ19pbnRlcm5hbCgiJXMiLCB4bG9ncmVhZGVyLT5lcnJvcm1zZ19idWYpKSk7CisJCWlm IChyZWFkZXItPmVycm9ybXNnX2J1ZlswXSkKKwkJCWVyZXBvcnQoZW1vZGVfZm9yX2NvcnJ1cHRf cmVjb3JkKGVtb2RlLCByZWFkZXItPkVuZFJlY1B0ciksCisJCQkJCShlcnJtc2dfaW50ZXJuYWwo IiVzIiwgcmVhZGVyLT5lcnJvcm1zZ19idWYpKSk7CiAKIAkJLyogcmVzZXQgYW55IGVycm9yIFhM b2dSZWFkZXJWYWxpZGF0ZVBhZ2VIZWFkZXIoKSBtaWdodCBoYXZlIHNldCAqLwotCQlYTG9nUmVh ZGVyUmVzZXRFcnJvcih4bG9ncmVhZGVyKTsKKwkJWExvZ1JlYWRlclJlc2V0RXJyb3IocmVhZGVy KTsKIAkJZ290byBuZXh0X3JlY29yZF9pc19pbnZhbGlkOwogCX0KIApAQCAtMzUyNiw3ICszNTI2 LDcgQEAgbmV4dF9yZWNvcmRfaXNfaW52YWxpZDoKIAkgKiBJZiB3ZSdyZSByZWFkaW5nIGFoZWFk LCBnaXZlIHVwIGZhc3QuICBSZXRyaWVzIGFuZCBlcnJvciByZXBvcnRpbmcgd2lsbAogCSAqIGJl IGhhbmRsZWQgYnkgYSBsYXRlciByZWFkIHdoZW4gcmVjb3ZlcnkgY2F0Y2hlcyB1cCB0byB0aGlz IHBvaW50LgogCSAqLwotCWlmICh4bG9ncmVhZGVyLT5ub25ibG9ja2luZykKKwlpZiAocmVhZGVy LT5ub25ibG9ja2luZykKIAkJcmV0dXJuIFhMUkVBRF9XT1VMREJMT0NLOwogCiAJbGFzdFNvdXJj ZUZhaWxlZCA9IHRydWU7CkBAIC00MTA0LDcgKzQxMDQsNyBAQCBlbW9kZV9mb3JfY29ycnVwdF9y ZWNvcmQoaW50IGVtb2RlLCBYTG9nUmVjUHRyIFJlY1B0cikKICAqIFN1YnJvdXRpbmUgdG8gdHJ5 IHRvIGZldGNoIGFuZCB2YWxpZGF0ZSBhIHByaW9yIGNoZWNrcG9pbnQgcmVjb3JkLgogICovCiBz dGF0aWMgWExvZ1JlY29yZCAqCi1SZWFkQ2hlY2twb2ludFJlY29yZChYTG9nUHJlZmV0Y2hlciAq eGxvZ3ByZWZldGNoZXIsIFhMb2dSZWNQdHIgUmVjUHRyLAorUmVhZENoZWNrcG9pbnRSZWNvcmQo WExvZ1ByZWZldGNoZXIgKnByZWZldGNoZXIsIFhMb2dSZWNQdHIgUmVjUHRyLAogCQkJCQkgVGlt ZUxpbmVJRCByZXBsYXlUTEkpCiB7CiAJWExvZ1JlY29yZCAqcmVjb3JkOwpAQCAtNDExOSw4ICs0 MTE5LDggQEAgUmVhZENoZWNrcG9pbnRSZWNvcmQoWExvZ1ByZWZldGNoZXIgKnhsb2dwcmVmZXRj aGVyLCBYTG9nUmVjUHRyIFJlY1B0ciwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JWExvZ1ByZWZl dGNoZXJCZWdpblJlYWQoeGxvZ3ByZWZldGNoZXIsIFJlY1B0cik7Ci0JcmVjb3JkID0gUmVhZFJl Y29yZCh4bG9ncHJlZmV0Y2hlciwgTE9HLCB0cnVlLCByZXBsYXlUTEkpOworCVhMb2dQcmVmZXRj aGVyQmVnaW5SZWFkKHByZWZldGNoZXIsIFJlY1B0cik7CisJcmVjb3JkID0gUmVhZFJlY29yZChw cmVmZXRjaGVyLCBMT0csIHRydWUsIHJlcGxheVRMSSk7CiAKIAlpZiAocmVjb3JkID09IE5VTEwp CiAJewotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0009-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v4-0009-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7ll8 RnJvbSAxYThlYmY1Mzg0Mzk4YTMyZWUzYzdhNjdmNDhmZmMyZmEyMTQ1NGU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE1OjA1OjA1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAwOS8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGFj cm9zcyBzZXZlcmFsIGZpbGVzCgpUaGlzIGNvbW1pdCBmaXhlcyBtdWx0aXBsZSBpbnN0YW5jZXMg d2hlcmUgbG9jYWwgdmFyaWFibGVzIHVzZWQgdGhlIHNhbWUKbmFtZXMgYXMgZ2xvYmFsIGlkZW50 aWZpZXJzIGluIHZhcmlvdXMgbW9kdWxlcy4gVGhlIGFmZmVjdGVkIGxvY2FscyBhcmUKcmVuYW1l ZCBzbyB0aGV5IGFyZSBubyBsb25nZXIgc2hhZG93ZWQgYnkgdGhlIGdsb2JhbHMgYW5kIHJlbWFp biBjbGVhcgp3aXRoaW4gdGhlaXIgcmVzcGVjdGl2ZSBzY29wZXMuCgpBdXRob3I6IENoYW8gTGkg PGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJr UTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNv bQotLS0KIHNyYy9iYWNrZW5kL2xpYnBxL2JlLXNlY3VyZS1jb21tb24uYyAgICAgfCAxMiArKysr LS0tLS0KIHNyYy9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuYyAgICAgICAgICAgfCAgOCArKyst LS0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9kZXNjcmlwdG9yLmMgfCAzNCArKysrKysr KysrKystLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2VjdXJlLWNv bW1vbi5jIGIvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2VjdXJlLWNvbW1vbi5jCmluZGV4IGU4Yjgz N2QxZmE3Li44YjY3NDQzNWJkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbGlicHEvYmUtc2Vj dXJlLWNvbW1vbi5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2JlLXNlY3VyZS1jb21tb24uYwpA QCAtMTExLDE3ICsxMTEsMTcgQEAgZXJyb3I6CiAgKiBDaGVjayBwZXJtaXNzaW9ucyBmb3IgU1NM IGtleSBmaWxlcy4KICAqLwogYm9vbAotY2hlY2tfc3NsX2tleV9maWxlX3Blcm1pc3Npb25zKGNv bnN0IGNoYXIgKnNzbF9rZXlfZmlsZSwgYm9vbCBpc1NlcnZlclN0YXJ0KQorY2hlY2tfc3NsX2tl eV9maWxlX3Blcm1pc3Npb25zKGNvbnN0IGNoYXIgKnNzbEtleUZpbGUsIGJvb2wgaXNTZXJ2ZXJT dGFydCkKIHsKIAlpbnQJCQlsb2dsZXZlbCA9IGlzU2VydmVyU3RhcnQgPyBGQVRBTCA6IExPRzsK IAlzdHJ1Y3Qgc3RhdCBidWY7CiAKLQlpZiAoc3RhdChzc2xfa2V5X2ZpbGUsICZidWYpICE9IDAp CisJaWYgKHN0YXQoc3NsS2V5RmlsZSwgJmJ1ZikgIT0gMCkKIAl7CiAJCWVyZXBvcnQobG9nbGV2 ZWwsCiAJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCiAJCQkJIGVycm1zZygiY291bGQg bm90IGFjY2VzcyBwcml2YXRlIGtleSBmaWxlIFwiJXNcIjogJW0iLAotCQkJCQkJc3NsX2tleV9m aWxlKSkpOworCQkJCQkJc3NsS2V5RmlsZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAt MTMxLDcgKzEzMSw3IEBAIGNoZWNrX3NzbF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25zdCBjaGFy ICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNTZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2dsZXZlbCwK IAkJCQkoZXJyY29kZShFUlJDT0RFX0NPTkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJybXNnKCJw cml2YXRlIGtleSBmaWxlIFwiJXNcIiBpcyBub3QgYSByZWd1bGFyIGZpbGUiLAotCQkJCQkJc3Ns X2tleV9maWxlKSkpOworCQkJCQkJc3NsS2V5RmlsZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0K IApAQCAtMTU3LDcgKzE1Nyw3IEBAIGNoZWNrX3NzbF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25z dCBjaGFyICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNTZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2ds ZXZlbCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0NPTkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJy bXNnKCJwcml2YXRlIGtleSBmaWxlIFwiJXNcIiBtdXN0IGJlIG93bmVkIGJ5IHRoZSBkYXRhYmFz ZSB1c2VyIG9yIHJvb3QiLAotCQkJCQkJc3NsX2tleV9maWxlKSkpOworCQkJCQkJc3NsS2V5Rmls ZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAtMTY3LDcgKzE2Nyw3IEBAIGNoZWNrX3Nz bF9rZXlfZmlsZV9wZXJtaXNzaW9ucyhjb25zdCBjaGFyICpzc2xfa2V5X2ZpbGUsIGJvb2wgaXNT ZXJ2ZXJTdGFydCkKIAkJZXJlcG9ydChsb2dsZXZlbCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0NP TkZJR19GSUxFX0VSUk9SKSwKIAkJCQkgZXJybXNnKCJwcml2YXRlIGtleSBmaWxlIFwiJXNcIiBo YXMgZ3JvdXAgb3Igd29ybGQgYWNjZXNzIiwKLQkJCQkJCXNzbF9rZXlfZmlsZSksCisJCQkJCQlz c2xLZXlGaWxlKSwKIAkJCQkgZXJyZGV0YWlsKCJGaWxlIG11c3QgaGF2ZSBwZXJtaXNzaW9ucyB1 PXJ3ICgwNjAwKSBvciBsZXNzIGlmIG93bmVkIGJ5IHRoZSBkYXRhYmFzZSB1c2VyLCBvciBwZXJt aXNzaW9ucyB1PXJ3LGc9ciAoMDY0MCkgb3IgbGVzcyBpZiBvd25lZCBieSByb290LiIpKSk7CiAJ CXJldHVybiBmYWxzZTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0 aWxzLmMgYi9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMKaW5kZXggZmEzNzVkYzkxMjku Ljc4NDY0ZTgyMzdmIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMK KysrIGIvc3JjL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jCkBAIC00OSwxMSArNDksMTEgQEAK ICAqIGZpbGUgZGF0YSBpcyBjb3JyZWN0LgogICovCiBDb250cm9sRmlsZURhdGEgKgotZ2V0X2Nv bnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRhdGFEaXIsIGJvb2wgKmNyY19va19wKQorZ2V0X2NvbnRy b2xmaWxlKGNvbnN0IGNoYXIgKmRhdGFfZGlyLCBib29sICpjcmNfb2tfcCkKIHsKIAljaGFyCQlD b250cm9sRmlsZVBhdGhbTUFYUEdQQVRIXTsKIAotCXNucHJpbnRmKENvbnRyb2xGaWxlUGF0aCwg TUFYUEdQQVRILCAiJXMvJXMiLCBEYXRhRGlyLCBYTE9HX0NPTlRST0xfRklMRSk7CisJc25wcmlu dGYoQ29udHJvbEZpbGVQYXRoLCBNQVhQR1BBVEgsICIlcy8lcyIsIGRhdGFfZGlyLCBYTE9HX0NP TlRST0xfRklMRSk7CiAKIAlyZXR1cm4gZ2V0X2NvbnRyb2xmaWxlX2J5X2V4YWN0X3BhdGgoQ29u dHJvbEZpbGVQYXRoLCBjcmNfb2tfcCk7CiB9CkBAIC0xODYsNyArMTg2LDcgQEAgcmV0cnk6CiAg KiByb3V0aW5lIGluIHRoZSBiYWNrZW5kLgogICovCiB2b2lkCi11cGRhdGVfY29udHJvbGZpbGUo Y29uc3QgY2hhciAqRGF0YURpciwKK3VwZGF0ZV9jb250cm9sZmlsZShjb25zdCBjaGFyICpkYXRh X2RpciwKIAkJCQkgICBDb250cm9sRmlsZURhdGEgKkNvbnRyb2xGaWxlLCBib29sIGRvX3N5bmMp CiB7CiAJaW50CQkJZmQ7CkBAIC0yMTEsNyArMjExLDcgQEAgdXBkYXRlX2NvbnRyb2xmaWxlKGNv bnN0IGNoYXIgKkRhdGFEaXIsCiAJbWVtc2V0KGJ1ZmZlciwgMCwgUEdfQ09OVFJPTF9GSUxFX1NJ WkUpOwogCW1lbWNweShidWZmZXIsIENvbnRyb2xGaWxlLCBzaXplb2YoQ29udHJvbEZpbGVEYXRh KSk7CiAKLQlzbnByaW50ZihDb250cm9sRmlsZVBhdGgsIHNpemVvZihDb250cm9sRmlsZVBhdGgp LCAiJXMvJXMiLCBEYXRhRGlyLCBYTE9HX0NPTlRST0xfRklMRSk7CisJc25wcmludGYoQ29udHJv bEZpbGVQYXRoLCBzaXplb2YoQ29udHJvbEZpbGVQYXRoKSwgIiVzLyVzIiwgZGF0YV9kaXIsIFhM T0dfQ09OVFJPTF9GSUxFKTsKIAogI2lmbmRlZiBGUk9OVEVORAogCmRpZmYgLS1naXQgYS9zcmMv aW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZGVzY3JpcHRvci5jIGIvc3JjL2ludGVyZmFjZXMvZWNw Zy9wcmVwcm9jL2Rlc2NyaXB0b3IuYwppbmRleCBlOGM3MDE2YmRjMS4uOWRhYzc2MWUzOTMgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9kZXNjcmlwdG9yLmMKKysrIGIv c3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2Rlc2NyaXB0b3IuYwpAQCAtNzIsNyArNzIsNyBA QCBFQ1BHbnVtZXJpY19sdmFsdWUoY2hhciAqbmFtZSkKIHN0YXRpYyBzdHJ1Y3QgZGVzY3JpcHRv ciAqZGVzY3JpcHRvcnM7CiAKIHZvaWQKLWFkZF9kZXNjcmlwdG9yKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IGNoYXIgKmNvbm5lY3Rpb24pCithZGRfZGVzY3JpcHRvcihjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICpjb25uX3N0cikKIHsKIAlzdHJ1Y3QgZGVzY3JpcHRvciAqbmV3OwogCkBA IC04MywxNSArODMsMTUgQEAgYWRkX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqY29ubmVjdGlvbikKIAogCW5ldy0+bmV4dCA9IGRlc2NyaXB0b3JzOwogCW5ldy0+bmFt ZSA9IG1tX3N0cmR1cChuYW1lKTsKLQlpZiAoY29ubmVjdGlvbikKLQkJbmV3LT5jb25uZWN0aW9u ID0gbW1fc3RyZHVwKGNvbm5lY3Rpb24pOworCWlmIChjb25uX3N0cikKKwkJbmV3LT5jb25uZWN0 aW9uID0gbW1fc3RyZHVwKGNvbm5fc3RyKTsKIAllbHNlCiAJCW5ldy0+Y29ubmVjdGlvbiA9IE5V TEw7CiAJZGVzY3JpcHRvcnMgPSBuZXc7CiB9CiAKIHZvaWQKLWRyb3BfZGVzY3JpcHRvcihjb25z dCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9uKQorZHJvcF9kZXNjcmlwdG9yKGNv bnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmNvbm5fc3RyKQogewogCXN0cnVjdCBkZXNjcmlw dG9yICppOwogCXN0cnVjdCBkZXNjcmlwdG9yICoqbGFzdHB0ciA9ICZkZXNjcmlwdG9yczsKQEAg LTEwMyw5ICsxMDMsOSBAQCBkcm9wX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqY29ubmVjdGlvbikKIAl7CiAJCWlmIChzdHJjbXAobmFtZSwgaS0+bmFtZSkgPT0gMCkK IAkJewotCQkJaWYgKCghY29ubmVjdGlvbiAmJiAhaS0+Y29ubmVjdGlvbikKLQkJCQl8fCAoY29u bmVjdGlvbiAmJiBpLT5jb25uZWN0aW9uCi0JCQkJCSYmIHN0cmNtcChjb25uZWN0aW9uLCBpLT5j b25uZWN0aW9uKSA9PSAwKSkKKwkJCWlmICgoIWNvbm5fc3RyICYmICFpLT5jb25uZWN0aW9uKQor CQkJCXx8IChjb25uX3N0ciAmJiBpLT5jb25uZWN0aW9uCisJCQkJCSYmIHN0cmNtcChjb25uX3N0 ciwgaS0+Y29ubmVjdGlvbikgPT0gMCkpCiAJCQl7CiAJCQkJKmxhc3RwdHIgPSBpLT5uZXh0Owog CQkJCWZyZWUoaS0+Y29ubmVjdGlvbik7CkBAIC0xMTUsMTQgKzExNSwxNCBAQCBkcm9wX2Rlc2Ny aXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY29ubmVjdGlvbikKIAkJCX0KIAkJ fQogCX0KLQlpZiAoY29ubmVjdGlvbikKLQkJbW1lcnJvcihQQVJTRV9FUlJPUiwgRVRfV0FSTklO RywgImRlc2NyaXB0b3IgJXMgYm91bmQgdG8gY29ubmVjdGlvbiAlcyBkb2VzIG5vdCBleGlzdCIs IG5hbWUsIGNvbm5lY3Rpb24pOworCWlmIChjb25uX3N0cikKKwkJbW1lcnJvcihQQVJTRV9FUlJP UiwgRVRfV0FSTklORywgImRlc2NyaXB0b3IgJXMgYm91bmQgdG8gY29ubmVjdGlvbiAlcyBkb2Vz IG5vdCBleGlzdCIsIG5hbWUsIGNvbm5fc3RyKTsKIAllbHNlCiAJCW1tZXJyb3IoUEFSU0VfRVJS T1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9yICVzIGJvdW5kIHRvIHRoZSBkZWZhdWx0IGNvbm5l Y3Rpb24gZG9lcyBub3QgZXhpc3QiLCBuYW1lKTsKIH0KIAogc3RydWN0IGRlc2NyaXB0b3IgKgot bG9va3VwX2Rlc2NyaXB0b3IoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY29ubmVjdGlv bikKK2xvb2t1cF9kZXNjcmlwdG9yKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmNvbm5f c3RyKQogewogCXN0cnVjdCBkZXNjcmlwdG9yICppOwogCkBAIC0xMzMsMjAgKzEzMywyMCBAQCBs b29rdXBfZGVzY3JpcHRvcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9u KQogCXsKIAkJaWYgKHN0cmNtcChuYW1lLCBpLT5uYW1lKSA9PSAwKQogCQl7Ci0JCQlpZiAoKCFj b25uZWN0aW9uICYmICFpLT5jb25uZWN0aW9uKQotCQkJCXx8IChjb25uZWN0aW9uICYmIGktPmNv bm5lY3Rpb24KLQkJCQkJJiYgc3RyY21wKGNvbm5lY3Rpb24sIGktPmNvbm5lY3Rpb24pID09IDAp KQorCQkJaWYgKCghY29ubl9zdHIgJiYgIWktPmNvbm5lY3Rpb24pCisJCQkJfHwgKGNvbm5fc3Ry ICYmIGktPmNvbm5lY3Rpb24KKwkJCQkJJiYgc3RyY21wKGNvbm5fc3RyLCBpLT5jb25uZWN0aW9u KSA9PSAwKSkKIAkJCQlyZXR1cm4gaTsKLQkJCWlmIChjb25uZWN0aW9uICYmICFpLT5jb25uZWN0 aW9uKQorCQkJaWYgKGNvbm5fc3RyICYmICFpLT5jb25uZWN0aW9uKQogCQkJewogCQkJCS8qIG92 ZXJ3cml0ZSBkZXNjcmlwdG9yJ3MgY29ubmVjdGlvbiAqLwotCQkJCWktPmNvbm5lY3Rpb24gPSBt bV9zdHJkdXAoY29ubmVjdGlvbik7CisJCQkJaS0+Y29ubmVjdGlvbiA9IG1tX3N0cmR1cChjb25u X3N0cik7CiAJCQkJcmV0dXJuIGk7CiAJCQl9CiAJCX0KIAl9Ci0JaWYgKGNvbm5lY3Rpb24pCi0J CW1tZXJyb3IoUEFSU0VfRVJST1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9yICVzIGJvdW5kIHRv IGNvbm5lY3Rpb24gJXMgZG9lcyBub3QgZXhpc3QiLCBuYW1lLCBjb25uZWN0aW9uKTsKKwlpZiAo Y29ubl9zdHIpCisJCW1tZXJyb3IoUEFSU0VfRVJST1IsIEVUX1dBUk5JTkcsICJkZXNjcmlwdG9y ICVzIGJvdW5kIHRvIGNvbm5lY3Rpb24gJXMgZG9lcyBub3QgZXhpc3QiLCBuYW1lLCBjb25uX3N0 cik7CiAJZWxzZQogCQltbWVycm9yKFBBUlNFX0VSUk9SLCBFVF9XQVJOSU5HLCAiZGVzY3JpcHRv ciAlcyBib3VuZCB0byB0aGUgZGVmYXVsdCBjb25uZWN0aW9uIGRvZXMgbm90IGV4aXN0IiwgbmFt ZSk7CiAJcmV0dXJuIE5VTEw7Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0013-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v4-0013-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7lp12 RnJvbSA1YTg5N2ViN2E5NmRmOTU4YzVkZTRjNDU2N2RlYTZhZDY5YjM3ODk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogV2VkLCAzIERlYyAyMDI1IDA4OjQ0OjQ2ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAxMy8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGFj cm9zcyB0aW1lLXJlbGF0ZWQgbW9kdWxlcwoKVGhpcyBjb21taXQgcmVuYW1lcyBzZXZlcmFsIGxv Y2FsIHZhcmlhYmxlcyBpbiBkYXRlL3RpbWUgYW5kIHRpbWV6b25lCmNvZGUgdGhhdCB3ZXJlIHNo YWRvd2VkIGJ5IGdsb2JhbCBpZGVudGlmaWVycyBvZiB0aGUgc2FtZSBuYW1lcy4gVGhlCnVwZGF0 ZWQgbG9jYWwgaWRlbnRpZmllcnMgZW5zdXJlIGNsZWFyZXIgc2VwYXJhdGlvbiBvZiBzY29wZSB0 aHJvdWdob3V0CnRoZSBhZmZlY3RlZCBtb2R1bGVzLgoKQSBmZXcgYWRkaXRpb25hbCBzaGFkb3dp bmcgZml4ZXMgaW4gdGhlIHNhbWUgY29kZSBhcmVhcyBhcmUgaW5jbHVkZWQgYXMKd2VsbC4gVGhl c2UgYXJlIHVucmVsYXRlZCB0byB0aGUgY29ubiByZW5hbWluZyBidXQgb2NjdXIgaW4gdGhlIHNh bWUKZmlsZXMsIHNvIHRoZXkgYXJlIGJ1bmRsZWQgaGVyZSB0byBrZWVwIHRoZSBjb21taXQgc2Vs Zi1jb250YWluZWQuCgpBdXRob3I6IENoYW8gTGkgPGxpY0BoaWdoZ28uY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRW9XeDJrUTJ4NWdNYWo4dEhMSjM9amZDK3A1WVhIa0p5 SHJEVGlRdzJubjJGSlRtUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9kYXRlLmMgICAgICAgfCAyMCArKystLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZXRp bWUuYyAgIHwgMjAgKysrLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYyB8 ICA4ICstLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jICB8IDkyICsrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLQogc3JjL2Jpbi9pbml0ZGIvZmluZHRpbWV6b25lLmMgICAg ICB8IDM4ICsrKysrKy0tLS0tLQogc3JjL3RpbWV6b25lL3BndHouYyAgICAgICAgICAgICAgICB8 IDE2ICsrKy0tLQogNiBmaWxlcyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCA5NyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBjNGI4MTI1ZGQ2Ni4uNmFmYmZiYWJjY2IgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdGUuYwpAQCAtNTcwLDE2ICs1NzAsMTYgQEAgRGF0dW0KIGRhdGVfcGxpKFBH X0ZVTkNUSU9OX0FSR1MpCiB7CiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFSR19EQVRFQURU KDApOwotCWludDMyCQlkYXlzID0gUEdfR0VUQVJHX0lOVDMyKDEpOworCWludDMyCQlkYXlWYWwg PSBQR19HRVRBUkdfSU5UMzIoMSk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCiAJaWYgKERBVEVfTk9U X0ZJTklURShkYXRlVmFsKSkKIAkJUEdfUkVUVVJOX0RBVEVBRFQoZGF0ZVZhbCk7IC8qIGNhbid0 IGNoYW5nZSBpbmZpbml0eSAqLwogCi0JcmVzdWx0ID0gZGF0ZVZhbCArIGRheXM7CisJcmVzdWx0 ID0gZGF0ZVZhbCArIGRheVZhbDsKIAogCS8qIENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IGFu ZCBvdXQtb2YtYWxsb3dlZC1yYW5nZSAqLwotCWlmICgoZGF5cyA+PSAwID8gKHJlc3VsdCA8IGRh dGVWYWwpIDogKHJlc3VsdCA+IGRhdGVWYWwpKSB8fAorCWlmICgoZGF5VmFsID49IDAgPyAocmVz dWx0IDwgZGF0ZVZhbCkgOiAocmVzdWx0ID4gZGF0ZVZhbCkpIHx8CiAJCSFJU19WQUxJRF9EQVRF KHJlc3VsdCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElN RV9WQUxVRV9PVVRfT0ZfUkFOR0UpLApAQCAtNTk0LDE2ICs1OTQsMTYgQEAgRGF0dW0KIGRhdGVf bWlpKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFSR19E QVRFQURUKDApOwotCWludDMyCQlkYXlzID0gUEdfR0VUQVJHX0lOVDMyKDEpOworCWludDMyCQlk YXlWYWwgPSBQR19HRVRBUkdfSU5UMzIoMSk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCiAJaWYgKERB VEVfTk9UX0ZJTklURShkYXRlVmFsKSkKIAkJUEdfUkVUVVJOX0RBVEVBRFQoZGF0ZVZhbCk7IC8q IGNhbid0IGNoYW5nZSBpbmZpbml0eSAqLwogCi0JcmVzdWx0ID0gZGF0ZVZhbCAtIGRheXM7CisJ cmVzdWx0ID0gZGF0ZVZhbCAtIGRheVZhbDsKIAogCS8qIENoZWNrIGZvciBpbnRlZ2VyIG92ZXJm bG93IGFuZCBvdXQtb2YtYWxsb3dlZC1yYW5nZSAqLwotCWlmICgoZGF5cyA+PSAwID8gKHJlc3Vs dCA+IGRhdGVWYWwpIDogKHJlc3VsdCA8IGRhdGVWYWwpKSB8fAorCWlmICgoZGF5VmFsID49IDAg PyAocmVzdWx0ID4gZGF0ZVZhbCkgOiAocmVzdWx0IDwgZGF0ZVZhbCkpIHx8CiAJCSFJU19WQUxJ RF9EQVRFKHJlc3VsdCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLApAQCAtMzE1OSw3ICszMTU5LDcgQEAgdGltZXR6 X3pvbmUoUEdfRlVOQ1RJT05fQVJHUykKIAlUaW1lVHpBRFQgICp0ID0gUEdfR0VUQVJHX1RJTUVU WkFEVF9QKDEpOwogCVRpbWVUekFEVCAgKnJlc3VsdDsKIAlpbnQJCQl0ejsKLQljaGFyCQl0em5h bWVbVFpfU1RSTEVOX01BWCArIDFdOworCWNoYXIJCXR6X25hbWVbVFpfU1RSTEVOX01BWCArIDFd OwogCWludAkJCXR5cGUsCiAJCQkJdmFsOwogCXBnX3R6CSAgICp0enA7CkBAIC0zMTY3LDkgKzMx NjcsOSBAQCB0aW1ldHpfem9uZShQR19GVU5DVElPTl9BUkdTKQogCS8qCiAJICogTG9vayB1cCB0 aGUgcmVxdWVzdGVkIHRpbWV6b25lLgogCSAqLwotCXRleHRfdG9fY3N0cmluZ19idWZmZXIoem9u ZSwgdHpuYW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZlcih6b25l LCB0el9uYW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JdHlwZSA9IERlY29kZVRpbWV6b25lTmFt ZSh0em5hbWUsICZ2YWwsICZ0enApOworCXR5cGUgPSBEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFt ZSwgJnZhbCwgJnR6cCk7CiAKIAlpZiAodHlwZSA9PSBUWk5BTUVfRklYRURfT0ZGU0VUKQogCXsK QEAgLTMxODIsNyArMzE4Miw3IEBAIHRpbWV0el96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVRp bWVzdGFtcFR6IG5vdyA9IEdldEN1cnJlbnRUcmFuc2FjdGlvblN0YXJ0VGltZXN0YW1wKCk7CiAJ CWludAkJCWlzZHN0OwogCi0JCXR6ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXRUUyhu b3csIHR6bmFtZSwgdHpwLCAmaXNkc3QpOworCQl0eiA9IERldGVybWluZVRpbWVab25lQWJicmV2 T2Zmc2V0VFMobm93LCB0el9uYW1lLCB0enAsICZpc2RzdCk7CiAJfQogCWVsc2UKIAl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZXRpbWUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9kYXRldGltZS5jCmluZGV4IDY4MGZlZTJhODQ0Li5kODI0MGJlYWZjMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGV0aW1lLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdGV0aW1lLmMKQEAgLTY0MiwxMiArNjQyLDEyIEBAIEFkanVzdE1pY3Jvc2Vj b25kcyhpbnQ2NCB2YWwsIGRvdWJsZSBmdmFsLCBpbnQ2NCBzY2FsZSwKIHN0YXRpYyBib29sCiBB ZGp1c3REYXlzKGludDY0IHZhbCwgaW50IHNjYWxlLCBzdHJ1Y3QgcGdfaXRtX2luICppdG1faW4p CiB7Ci0JaW50CQkJZGF5czsKKwlpbnQJCQlkYXlWYWw7CiAKIAlpZiAodmFsIDwgSU5UX01JTiB8 fCB2YWwgPiBJTlRfTUFYKQogCQlyZXR1cm4gZmFsc2U7Ci0JcmV0dXJuICFwZ19tdWxfczMyX292 ZXJmbG93KChpbnQzMikgdmFsLCBzY2FsZSwgJmRheXMpICYmCi0JCSFwZ19hZGRfczMyX292ZXJm bG93KGl0bV9pbi0+dG1fbWRheSwgZGF5cywgJml0bV9pbi0+dG1fbWRheSk7CisJcmV0dXJuICFw Z19tdWxfczMyX292ZXJmbG93KChpbnQzMikgdmFsLCBzY2FsZSwgJmRheVZhbCkgJiYKKwkJIXBn X2FkZF9zMzJfb3ZlcmZsb3coaXRtX2luLT50bV9tZGF5LCBkYXlWYWwsICZpdG1faW4tPnRtX21k YXkpOwogfQogCiAvKgpAQCAtMzI4NSw3ICszMjg1LDcgQEAgRGVjb2RlU3BlY2lhbChpbnQgZmll bGQsIGNvbnN0IGNoYXIgKmxvd3Rva2VuLCBpbnQgKnZhbCkKICAqIHRoZSB6b25lIG5hbWUgb3Ig dGhlIGFiYnJldmlhdGlvbidzIHVuZGVybHlpbmcgem9uZS4KICAqLwogaW50Ci1EZWNvZGVUaW1l em9uZU5hbWUoY29uc3QgY2hhciAqdHpuYW1lLCBpbnQgKm9mZnNldCwgcGdfdHogKip0eikKK0Rl Y29kZVRpbWV6b25lTmFtZShjb25zdCBjaGFyICp0el9uYW1lLCBpbnQgKm9mZnNldCwgcGdfdHog Kip0eikKIHsKIAljaGFyCSAgICpsb3d6b25lOwogCWludAkJCWR0ZXJyLApAQCAtMzMwMiw4ICsz MzAyLDggQEAgRGVjb2RlVGltZXpvbmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50ICpvZmZz ZXQsIHBnX3R6ICoqdHopCiAJICovCiAKIAkvKiBEZWNvZGVUaW1lem9uZUFiYnJldiByZXF1aXJl cyBsb3dlcmNhc2UgaW5wdXQgKi8KLQlsb3d6b25lID0gZG93bmNhc2VfdHJ1bmNhdGVfaWRlbnRp Zmllcih0em5hbWUsCi0JCQkJCQkJCQkJICAgc3RybGVuKHR6bmFtZSksCisJbG93em9uZSA9IGRv d25jYXNlX3RydW5jYXRlX2lkZW50aWZpZXIodHpfbmFtZSwKKwkJCQkJCQkJCQkgICBzdHJsZW4o dHpfbmFtZSksCiAJCQkJCQkJCQkJICAgZmFsc2UpOwogCiAJZHRlcnIgPSBEZWNvZGVUaW1lem9u ZUFiYnJldigwLCBsb3d6b25lLCAmdHlwZSwgb2Zmc2V0LCB0eiwgJmV4dHJhKTsKQEAgLTMzMjMs MTEgKzMzMjMsMTEgQEAgRGVjb2RlVGltZXpvbmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50 ICpvZmZzZXQsIHBnX3R6ICoqdHopCiAJZWxzZQogCXsKIAkJLyogdHJ5IGl0IGFzIGEgZnVsbCB6 b25lIG5hbWUgKi8KLQkJKnR6ID0gcGdfdHpzZXQodHpuYW1lKTsKKwkJKnR6ID0gcGdfdHpzZXQo dHpfbmFtZSk7CiAJCWlmICgqdHogPT0gTlVMTCkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkgZXJybXNnKCJ0 aW1lIHpvbmUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgdHpuYW1lKSkpOworCQkJCQkgZXJybXNn KCJ0aW1lIHpvbmUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgdHpfbmFtZSkpKTsKIAkJcmV0dXJu IFRaTkFNRV9aT05FOwogCX0KIH0KQEAgLTMzNDAsMTIgKzMzNDAsMTIgQEAgRGVjb2RlVGltZXpv bmVOYW1lKGNvbnN0IGNoYXIgKnR6bmFtZSwgaW50ICpvZmZzZXQsIHBnX3R6ICoqdHopCiAgKiBy ZXN1bHQgaW4gYWxsIGNhc2VzLgogICovCiBwZ190eiAqCi1EZWNvZGVUaW1lem9uZU5hbWVUb1R6 KGNvbnN0IGNoYXIgKnR6bmFtZSkKK0RlY29kZVRpbWV6b25lTmFtZVRvVHooY29uc3QgY2hhciAq dHpfbmFtZSkKIHsKIAlwZ190egkgICAqcmVzdWx0OwogCWludAkJCW9mZnNldDsKIAotCWlmIChE ZWNvZGVUaW1lem9uZU5hbWUodHpuYW1lLCAmb2Zmc2V0LCAmcmVzdWx0KSA9PSBUWk5BTUVfRklY RURfT0ZGU0VUKQorCWlmIChEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFtZSwgJm9mZnNldCwgJnJl c3VsdCkgPT0gVFpOQU1FX0ZJWEVEX09GRlNFVCkKIAl7CiAJCS8qIGZpeGVkLW9mZnNldCBhYmJy ZXZpYXRpb24sIGdldCBhIHBnX3R6IGRlc2NyaXB0b3IgZm9yIHRoYXQgKi8KIAkJcmVzdWx0ID0g cGdfdHpzZXRfb2Zmc2V0KC1vZmZzZXQpOwkvKiBmbGlwIHRvIFBPU0lYIHNpZ24gY29udmVudGlv biAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5nLmMKaW5kZXggNWJmZWRhMmZmZGUuLmQzODU1 OTFiNTNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZm9ybWF0dGluZy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5nLmMKQEAgLTMwNDEsMTIgKzMwNDEs MTIgQEAgRENIX3RvX2NoYXIoRm9ybWF0Tm9kZSAqbm9kZSwgYm9vbCBpc19pbnRlcnZhbCwgVG1U b0NoYXIgKmluLCBjaGFyICpvdXQsIE9pZCBjb2wKIAkJCQllbHNlCiAJCQkJewogCQkJCQlpbnQJ CQltb24gPSAwOwotCQkJCQljb25zdCBjaGFyICpjb25zdCAqbW9udGhzOworCQkJCQljb25zdCBj aGFyICpjb25zdCAqcG1vbnRoczsKIAogCQkJCQlpZiAobi0+a2V5LT5pZCA9PSBEQ0hfUk0pCi0J CQkJCQltb250aHMgPSBybV9tb250aHNfdXBwZXI7CisJCQkJCQlwbW9udGhzID0gcm1fbW9udGhz X3VwcGVyOwogCQkJCQllbHNlCi0JCQkJCQltb250aHMgPSBybV9tb250aHNfbG93ZXI7CisJCQkJ CQlwbW9udGhzID0gcm1fbW9udGhzX2xvd2VyOwogCiAJCQkJCS8qCiAJCQkJCSAqIENvbXB1dGUg dGhlIHBvc2l0aW9uIGluIHRoZSByb21hbi1udW1lcmFsIGFycmF5LiAgTm90ZQpAQCAtMzA4MSw3 ICszMDgxLDcgQEAgRENIX3RvX2NoYXIoRm9ybWF0Tm9kZSAqbm9kZSwgYm9vbCBpc19pbnRlcnZh bCwgVG1Ub0NoYXIgKmluLCBjaGFyICpvdXQsIE9pZCBjb2wKIAkJCQkJfQogCiAJCQkJCXNwcmlu dGYocywgIiUqcyIsIElTX1NVRkZJWF9GTShuLT5zdWZmaXgpID8gMCA6IC00LAotCQkJCQkJCW1v bnRoc1ttb25dKTsKKwkJCQkJCQlwbW9udGhzW21vbl0pOwogCQkJCQlzICs9IHN0cmxlbihzKTsK IAkJCQl9CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMmRjOTBh MmI4YTkuLjAyNzcxMWE5OWNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC00OTAs MTEgKzQ5MCwxMSBAQCB0aW1lc3RhbXB0el9pbihQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGlu dAogcGFyc2Vfc2FuZV90aW1lem9uZShzdHJ1Y3QgcGdfdG0gKnRtLCB0ZXh0ICp6b25lKQogewot CWNoYXIJCXR6bmFtZVtUWl9TVFJMRU5fTUFYICsgMV07CisJY2hhcgkJdHpfbmFtZVtUWl9TVFJM RU5fTUFYICsgMV07CiAJaW50CQkJZHRlcnI7CiAJaW50CQkJdHo7CiAKLQl0ZXh0X3RvX2NzdHJp bmdfYnVmZmVyKHpvbmUsIHR6bmFtZSwgc2l6ZW9mKHR6bmFtZSkpOworCXRleHRfdG9fY3N0cmlu Z19idWZmZXIoem9uZSwgdHpfbmFtZSwgc2l6ZW9mKHR6X25hbWUpKTsKIAogCS8qCiAJICogTG9v ayB1cCB0aGUgcmVxdWVzdGVkIHRpbWV6b25lLiAgRmlyc3Qgd2UgdHJ5IHRvIGludGVycHJldCBp dCBhcyBhCkBAIC01MDYsMTQgKzUwNiwxNCBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBw Z190bSAqdG0sIHRleHQgKnpvbmUpCiAJICogYXMgaW52YWxpZCwgaXQncyBlbm91Z2ggdG8gZGlz YWxsb3cgaGF2aW5nIGEgZGlnaXQgaW4gdGhlIGZpcnN0CiAJICogcG9zaXRpb24gb2Ygb3VyIGlu cHV0IHN0cmluZy4KIAkgKi8KLQlpZiAoaXNkaWdpdCgodW5zaWduZWQgY2hhcikgKnR6bmFtZSkp CisJaWYgKGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpICp0el9uYW1lKSkKIAkJZXJlcG9ydChFUlJP UiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkg ZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSAlczogXCIlc1wiIiwKLQkJCQkJ CSJudW1lcmljIHRpbWUgem9uZSIsIHR6bmFtZSksCisJCQkJCQkibnVtZXJpYyB0aW1lIHpvbmUi LCB0el9uYW1lKSwKIAkJCQkgZXJyaGludCgiTnVtZXJpYyB0aW1lIHpvbmVzIG11c3QgaGF2ZSBc Ii1cIiBvciBcIitcIiBhcyBmaXJzdCBjaGFyYWN0ZXIuIikpKTsKIAotCWR0ZXJyID0gRGVjb2Rl VGltZXpvbmUodHpuYW1lLCAmdHopOworCWR0ZXJyID0gRGVjb2RlVGltZXpvbmUodHpfbmFtZSwg JnR6KTsKIAlpZiAoZHRlcnIgIT0gMCkKIAl7CiAJCWludAkJCXR5cGUsCkBAIC01MjMsMTMgKzUy MywxMyBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUp CiAJCWlmIChkdGVyciA9PSBEVEVSUl9UWkRJU1BfT1ZFUkZMT1cpCiAJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJ IGVycm1zZygibnVtZXJpYyB0aW1lIHpvbmUgXCIlc1wiIG91dCBvZiByYW5nZSIsIHR6bmFtZSkp KTsKKwkJCQkJIGVycm1zZygibnVtZXJpYyB0aW1lIHpvbmUgXCIlc1wiIG91dCBvZiByYW5nZSIs IHR6X25hbWUpKSk7CiAJCWVsc2UgaWYgKGR0ZXJyICE9IERURVJSX0JBRF9GT1JNQVQpCiAJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZB TFVFKSwKLQkJCQkJIGVycm1zZygidGltZSB6b25lIFwiJXNcIiBub3QgcmVjb2duaXplZCIsIHR6 bmFtZSkpKTsKKwkJCQkJIGVycm1zZygidGltZSB6b25lIFwiJXNcIiBub3QgcmVjb2duaXplZCIs IHR6X25hbWUpKSk7CiAKLQkJdHlwZSA9IERlY29kZVRpbWV6b25lTmFtZSh0em5hbWUsICZ2YWws ICZ0enApOworCQl0eXBlID0gRGVjb2RlVGltZXpvbmVOYW1lKHR6X25hbWUsICZ2YWwsICZ0enAp OwogCiAJCWlmICh0eXBlID09IFRaTkFNRV9GSVhFRF9PRkZTRVQpCiAJCXsKQEAgLTUzOSw3ICs1 MzksNyBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUp CiAJCWVsc2UgaWYgKHR5cGUgPT0gVFpOQU1FX0RZTlRaKQogCQl7CiAJCQkvKiBkeW5hbWljLW9m ZnNldCBhYmJyZXZpYXRpb24sIHJlc29sdmUgdXNpbmcgc3BlY2lmaWVkIHRpbWUgKi8KLQkJCXR6 ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXQodG0sIHR6bmFtZSwgdHpwKTsKKwkJCXR6 ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZzZXQodG0sIHR6X25hbWUsIHR6cCk7CiAJCX0K IAkJZWxzZQogCQl7CkBAIC01NTksMTEgKzU1OSwxMSBAQCBwYXJzZV9zYW5lX3RpbWV6b25lKHN0 cnVjdCBwZ190bSAqdG0sIHRleHQgKnpvbmUpCiBzdGF0aWMgcGdfdHogKgogbG9va3VwX3RpbWV6 b25lKHRleHQgKnpvbmUpCiB7Ci0JY2hhcgkJdHpuYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKKwlj aGFyCQl0el9uYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKIAotCXRleHRfdG9fY3N0cmluZ19idWZm ZXIoem9uZSwgdHpuYW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZl cih6b25lLCB0el9uYW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JcmV0dXJuIERlY29kZVRpbWV6 b25lTmFtZVRvVHoodHpuYW1lKTsKKwlyZXR1cm4gRGVjb2RlVGltZXpvbmVOYW1lVG9Ueih0el9u YW1lKTsKIH0KIAogLyoKQEAgLTE1MjksNDEgKzE1MjksNDEgQEAgQWRqdXN0SW50ZXJ2YWxGb3JU eXBtb2QoSW50ZXJ2YWwgKmludGVydmFsLCBpbnQzMiB0eXBtb2QsCiBEYXR1bQogbWFrZV9pbnRl cnZhbChQR19GVU5DVElPTl9BUkdTKQogewotCWludDMyCQl5ZWFycyA9IFBHX0dFVEFSR19JTlQz MigwKTsKLQlpbnQzMgkJbW9udGhzID0gUEdfR0VUQVJHX0lOVDMyKDEpOwotCWludDMyCQl3ZWVr cyA9IFBHX0dFVEFSR19JTlQzMigyKTsKLQlpbnQzMgkJZGF5cyA9IFBHX0dFVEFSR19JTlQzMigz KTsKLQlpbnQzMgkJaG91cnMgPSBQR19HRVRBUkdfSU5UMzIoNCk7Ci0JaW50MzIJCW1pbnMgPSBQ R19HRVRBUkdfSU5UMzIoNSk7Ci0JZG91YmxlCQlzZWNzID0gUEdfR0VUQVJHX0ZMT0FUOCg2KTsK KwlpbnQzMgkJeWVhclZhbCA9IFBHX0dFVEFSR19JTlQzMigwKTsKKwlpbnQzMgkJbW9udGhWYWwg PSBQR19HRVRBUkdfSU5UMzIoMSk7CisJaW50MzIJCXdlZWtWYWwgPSBQR19HRVRBUkdfSU5UMzIo Mik7CisJaW50MzIJCWRheVZhbCA9IFBHX0dFVEFSR19JTlQzMigzKTsKKwlpbnQzMgkJaG91clZh bCA9IFBHX0dFVEFSR19JTlQzMig0KTsKKwlpbnQzMgkJbWluVmFsID0gUEdfR0VUQVJHX0lOVDMy KDUpOworCWRvdWJsZQkJc2VjVmFsID0gUEdfR0VUQVJHX0ZMT0FUOCg2KTsKIAlJbnRlcnZhbCAg ICpyZXN1bHQ7CiAKIAkvKgogCSAqIFJlamVjdCBvdXQtb2YtcmFuZ2UgaW5wdXRzLiAgV2UgcmVq ZWN0IGFueSBpbnB1dCB2YWx1ZXMgdGhhdCBjYXVzZQogCSAqIGludGVnZXIgb3ZlcmZsb3cgb2Yg dGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJ2YWwgZmllbGRzLgogCSAqLwotCWlmIChpc2luZihzZWNz KSB8fCBpc25hbihzZWNzKSkKKwlpZiAoaXNpbmYoc2VjVmFsKSB8fCBpc25hbihzZWNWYWwpKQog CQlnb3RvIG91dF9vZl9yYW5nZTsKIAogCXJlc3VsdCA9IChJbnRlcnZhbCAqKSBwYWxsb2Moc2l6 ZW9mKEludGVydmFsKSk7CiAKIAkvKiB5ZWFycyBhbmQgbW9udGhzIC0+IG1vbnRocyAqLwotCWlm IChwZ19tdWxfczMyX292ZXJmbG93KHllYXJzLCBNT05USFNfUEVSX1lFQVIsICZyZXN1bHQtPm1v bnRoKSB8fAotCQlwZ19hZGRfczMyX292ZXJmbG93KHJlc3VsdC0+bW9udGgsIG1vbnRocywgJnJl c3VsdC0+bW9udGgpKQorCWlmIChwZ19tdWxfczMyX292ZXJmbG93KHllYXJWYWwsIE1PTlRIU19Q RVJfWUVBUiwgJnJlc3VsdC0+bW9udGgpIHx8CisJCXBnX2FkZF9zMzJfb3ZlcmZsb3cocmVzdWx0 LT5tb250aCwgbW9udGhWYWwsICZyZXN1bHQtPm1vbnRoKSkKIAkJZ290byBvdXRfb2ZfcmFuZ2U7 CiAKIAkvKiB3ZWVrcyBhbmQgZGF5cyAtPiBkYXlzICovCi0JaWYgKHBnX211bF9zMzJfb3ZlcmZs b3cod2Vla3MsIERBWVNfUEVSX1dFRUssICZyZXN1bHQtPmRheSkgfHwKLQkJcGdfYWRkX3MzMl9v dmVyZmxvdyhyZXN1bHQtPmRheSwgZGF5cywgJnJlc3VsdC0+ZGF5KSkKKwlpZiAocGdfbXVsX3Mz Ml9vdmVyZmxvdyh3ZWVrVmFsLCBEQVlTX1BFUl9XRUVLLCAmcmVzdWx0LT5kYXkpIHx8CisJCXBn X2FkZF9zMzJfb3ZlcmZsb3cocmVzdWx0LT5kYXksIGRheVZhbCwgJnJlc3VsdC0+ZGF5KSkKIAkJ Z290byBvdXRfb2ZfcmFuZ2U7CiAKIAkvKiBob3VycyBhbmQgbWlucyAtPiB1c2VjcyAoY2Fubm90 IG92ZXJmbG93IDY0LWJpdCkgKi8KLQlyZXN1bHQtPnRpbWUgPSBob3VycyAqIFVTRUNTX1BFUl9I T1VSICsgbWlucyAqIFVTRUNTX1BFUl9NSU5VVEU7CisJcmVzdWx0LT50aW1lID0gaG91clZhbCAq IFVTRUNTX1BFUl9IT1VSICsgbWluVmFsICogVVNFQ1NfUEVSX01JTlVURTsKIAogCS8qIHNlY3Mg LT4gdXNlY3MgKi8KLQlzZWNzID0gcmludChmbG9hdDhfbXVsKHNlY3MsIFVTRUNTX1BFUl9TRUMp KTsKLQlpZiAoIUZMT0FUOF9GSVRTX0lOX0lOVDY0KHNlY3MpIHx8Ci0JCXBnX2FkZF9zNjRfb3Zl cmZsb3cocmVzdWx0LT50aW1lLCAoaW50NjQpIHNlY3MsICZyZXN1bHQtPnRpbWUpKQorCXNlY1Zh bCA9IHJpbnQoZmxvYXQ4X211bChzZWNWYWwsIFVTRUNTX1BFUl9TRUMpKTsKKwlpZiAoIUZMT0FU OF9GSVRTX0lOX0lOVDY0KHNlY1ZhbCkgfHwKKwkJcGdfYWRkX3M2NF9vdmVyZmxvdyhyZXN1bHQt PnRpbWUsIChpbnQ2NCkgc2VjVmFsLCAmcmVzdWx0LT50aW1lKSkKIAkJZ290byBvdXRfb2ZfcmFu Z2U7CiAKIAkvKiBtYWtlIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIGZpbml0ZSAqLwpAQCAtMjEz MSw5ICsyMTMxLDkgQEAgdGltZTJ0KGNvbnN0IGludCBob3VyLCBjb25zdCBpbnQgbWluLCBjb25z dCBpbnQgc2VjLCBjb25zdCBmc2VjX3QgZnNlYykKIH0KIAogc3RhdGljIFRpbWVzdGFtcAotZHQy bG9jYWwoVGltZXN0YW1wIGR0LCBpbnQgdGltZXpvbmUpCitkdDJsb2NhbChUaW1lc3RhbXAgZHQs IGludCB0eikKIHsKLQlkdCAtPSAodGltZXpvbmUgKiBVU0VDU19QRVJfU0VDKTsKKwlkdCAtPSAo dHogKiBVU0VDU19QRVJfU0VDKTsKIAlyZXR1cm4gZHQ7CiB9CiAKQEAgLTI1MjQsMjAgKzI1MjQs MjAgQEAgc3RhdGljIGlubGluZSBJTlQxMjgKIGludGVydmFsX2NtcF92YWx1ZShjb25zdCBJbnRl cnZhbCAqaW50ZXJ2YWwpCiB7CiAJSU5UMTI4CQlzcGFuOwotCWludDY0CQlkYXlzOworCWludDY0 CQlkYXlWYWw7CiAKIAkvKgogCSAqIENvbWJpbmUgdGhlIG1vbnRoIGFuZCBkYXkgZmllbGRzIGlu dG8gYW4gaW50ZWdyYWwgbnVtYmVyIG9mIGRheXMuCiAJICogQmVjYXVzZSB0aGUgaW5wdXRzIGFy ZSBpbnQzMiwgaW50NjQgYXJpdGhtZXRpYyBzdWZmaWNlcyBoZXJlLgogCSAqLwotCWRheXMgPSBp bnRlcnZhbC0+bW9udGggKiBJTlQ2NENPTlNUKDMwKTsKLQlkYXlzICs9IGludGVydmFsLT5kYXk7 CisJZGF5VmFsID0gaW50ZXJ2YWwtPm1vbnRoICogSU5UNjRDT05TVCgzMCk7CisJZGF5VmFsICs9 IGludGVydmFsLT5kYXk7CiAKIAkvKiBXaWRlbiB0aW1lIGZpZWxkIHRvIDEyOCBiaXRzICovCiAJ c3BhbiA9IGludDY0X3RvX2ludDEyOChpbnRlcnZhbC0+dGltZSk7CiAKIAkvKiBTY2FsZSB1cCBk YXlzIHRvIG1pY3Jvc2Vjb25kcywgZm9ybWluZyBhIDEyOC1iaXQgcHJvZHVjdCAqLwotCWludDEy OF9hZGRfaW50NjRfbXVsX2ludDY0KCZzcGFuLCBkYXlzLCBVU0VDU19QRVJfREFZKTsKKwlpbnQx MjhfYWRkX2ludDY0X211bF9pbnQ2NCgmc3BhbiwgZGF5VmFsLCBVU0VDU19QRVJfREFZKTsKIAog CXJldHVybiBzcGFuOwogfQpAQCAtNjIyMiw3ICs2MjIyLDcgQEAgaW50ZXJ2YWxfcGFydF9jb21t b24oUEdfRlVOQ1RJT05fQVJHUywgYm9vbCByZXRudW1lcmljKQogCQl7CiAJCQlOdW1lcmljCQly ZXN1bHQ7CiAJCQlpbnQ2NAkJc2Vjc19mcm9tX2RheV9tb250aDsKLQkJCWludDY0CQl2YWw7CisJ CQlpbnQ2NAkJdmFsdWU7CiAKIAkJCS8qCiAJCQkgKiBUbyBkbyB0aGlzIGNhbGN1bGF0aW9uIGlu IGludGVnZXIgYXJpdGhtZXRpYyBldmVuIHRob3VnaApAQCAtNjI0NSw5ICs2MjQ1LDkgQEAgaW50 ZXJ2YWxfcGFydF9jb21tb24oUEdfRlVOQ1RJT05fQVJHUywgYm9vbCByZXRudW1lcmljKQogCQkJ ICogbnVtZXJpYyAoc2xvd2VyKS4gIFRoaXMgb3ZlcmZsb3cgaGFwcGVucyBhcm91bmQgMTBeOSBk YXlzLCBzbwogCQkJICogbm90IGNvbW1vbiBpbiBwcmFjdGljZS4KIAkJCSAqLwotCQkJaWYgKCFw Z19tdWxfczY0X292ZXJmbG93KHNlY3NfZnJvbV9kYXlfbW9udGgsIDEwMDAwMDAsICZ2YWwpICYm Ci0JCQkJIXBnX2FkZF9zNjRfb3ZlcmZsb3codmFsLCBpbnRlcnZhbC0+dGltZSwgJnZhbCkpCi0J CQkJcmVzdWx0ID0gaW50NjRfZGl2X2Zhc3RfdG9fbnVtZXJpYyh2YWwsIDYpOworCQkJaWYgKCFw Z19tdWxfczY0X292ZXJmbG93KHNlY3NfZnJvbV9kYXlfbW9udGgsIDEwMDAwMDAsICZ2YWx1ZSkg JiYKKwkJCQkhcGdfYWRkX3M2NF9vdmVyZmxvdyh2YWx1ZSwgaW50ZXJ2YWwtPnRpbWUsICZ2YWx1 ZSkpCisJCQkJcmVzdWx0ID0gaW50NjRfZGl2X2Zhc3RfdG9fbnVtZXJpYyh2YWx1ZSwgNik7CiAJ CQllbHNlCiAJCQkJcmVzdWx0ID0KIAkJCQkJbnVtZXJpY19hZGRfc2FmZShpbnQ2NF9kaXZfZmFz dF90b19udW1lcmljKGludGVydmFsLT50aW1lLCA2KSwKQEAgLTYzMTEsNyArNjMxMSw3IEBAIHRp bWVzdGFtcF96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZXN0YW1wCXRpbWVzdGFtcCA9IFBH X0dFVEFSR19USU1FU1RBTVAoMSk7CiAJVGltZXN0YW1wVHogcmVzdWx0OwogCWludAkJCXR6Owot CWNoYXIJCXR6bmFtZVtUWl9TVFJMRU5fTUFYICsgMV07CisJY2hhcgkJdHpfbmFtZVtUWl9TVFJM RU5fTUFYICsgMV07CiAJaW50CQkJdHlwZSwKIAkJCQl2YWw7CiAJcGdfdHoJICAgKnR6cDsKQEAg LTYzMjQsOSArNjMyNCw5IEBAIHRpbWVzdGFtcF96b25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJLyoK IAkgKiBMb29rIHVwIHRoZSByZXF1ZXN0ZWQgdGltZXpvbmUuCiAJICovCi0JdGV4dF90b19jc3Ry aW5nX2J1ZmZlcih6b25lLCB0em5hbWUsIHNpemVvZih0em5hbWUpKTsKKwl0ZXh0X3RvX2NzdHJp bmdfYnVmZmVyKHpvbmUsIHR6X25hbWUsIHNpemVvZih0el9uYW1lKSk7CiAKLQl0eXBlID0gRGVj b2RlVGltZXpvbmVOYW1lKHR6bmFtZSwgJnZhbCwgJnR6cCk7CisJdHlwZSA9IERlY29kZVRpbWV6 b25lTmFtZSh0el9uYW1lLCAmdmFsLCAmdHpwKTsKIAogCWlmICh0eXBlID09IFRaTkFNRV9GSVhF RF9PRkZTRVQpCiAJewpAQCAtNjM0MSw3ICs2MzQxLDcgQEAgdGltZXN0YW1wX3pvbmUoUEdfRlVO Q1RJT05fQVJHUykKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFU RVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkJIGVycm1zZygidGltZXN0YW1wIG91dCBv ZiByYW5nZSIpKSk7Ci0JCXR6ID0gLURldGVybWluZVRpbWVab25lQWJicmV2T2Zmc2V0KCZ0bSwg dHpuYW1lLCB0enApOworCQl0eiA9IC1EZXRlcm1pbmVUaW1lWm9uZUFiYnJldk9mZnNldCgmdG0s IHR6X25hbWUsIHR6cCk7CiAJCXJlc3VsdCA9IGR0MmxvY2FsKHRpbWVzdGFtcCwgdHopOwogCX0K IAllbHNlCkBAIC02NTY2LDcgKzY1NjYsNyBAQCB0aW1lc3RhbXB0el96b25lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJVGltZXN0YW1wVHogdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUFRaKDEp OwogCVRpbWVzdGFtcAlyZXN1bHQ7CiAJaW50CQkJdHo7Ci0JY2hhcgkJdHpuYW1lW1RaX1NUUkxF Tl9NQVggKyAxXTsKKwljaGFyCQl0el9uYW1lW1RaX1NUUkxFTl9NQVggKyAxXTsKIAlpbnQJCQl0 eXBlLAogCQkJCXZhbDsKIAlwZ190egkgICAqdHpwOwpAQCAtNjU3Nyw5ICs2NTc3LDkgQEAgdGlt ZXN0YW1wdHpfem9uZShQR19GVU5DVElPTl9BUkdTKQogCS8qCiAJICogTG9vayB1cCB0aGUgcmVx dWVzdGVkIHRpbWV6b25lLgogCSAqLwotCXRleHRfdG9fY3N0cmluZ19idWZmZXIoem9uZSwgdHpu YW1lLCBzaXplb2YodHpuYW1lKSk7CisJdGV4dF90b19jc3RyaW5nX2J1ZmZlcih6b25lLCB0el9u YW1lLCBzaXplb2YodHpfbmFtZSkpOwogCi0JdHlwZSA9IERlY29kZVRpbWV6b25lTmFtZSh0em5h bWUsICZ2YWwsICZ0enApOworCXR5cGUgPSBEZWNvZGVUaW1lem9uZU5hbWUodHpfbmFtZSwgJnZh bCwgJnR6cCk7CiAKIAlpZiAodHlwZSA9PSBUWk5BTUVfRklYRURfT0ZGU0VUKQogCXsKQEAgLTY1 OTIsNyArNjU5Miw3IEBAIHRpbWVzdGFtcHR6X3pvbmUoUEdfRlVOQ1RJT05fQVJHUykKIAkJLyog ZHluYW1pYy1vZmZzZXQgYWJicmV2aWF0aW9uLCByZXNvbHZlIHVzaW5nIHNwZWNpZmllZCB0aW1l ICovCiAJCWludAkJCWlzZHN0OwogCi0JCXR6ID0gRGV0ZXJtaW5lVGltZVpvbmVBYmJyZXZPZmZz ZXRUUyh0aW1lc3RhbXAsIHR6bmFtZSwgdHpwLCAmaXNkc3QpOworCQl0eiA9IERldGVybWluZVRp bWVab25lQWJicmV2T2Zmc2V0VFModGltZXN0YW1wLCB0el9uYW1lLCB0enAsICZpc2RzdCk7CiAJ CXJlc3VsdCA9IGR0MmxvY2FsKHRpbWVzdGFtcCwgdHopOwogCX0KIAllbHNlCmRpZmYgLS1naXQg YS9zcmMvYmluL2luaXRkYi9maW5kdGltZXpvbmUuYyBiL3NyYy9iaW4vaW5pdGRiL2ZpbmR0aW1l em9uZS5jCmluZGV4IDJiMmFlMzlhZGYzLi45N2Q1NWUxOWMxMyAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9pbml0ZGIvZmluZHRpbWV6b25lLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvZmluZHRpbWV6b25l LmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBjb21wYXJlX3RtKHN0cnVjdCB0bSAqcywgc3RydWN0IHBn X3RtICpwKQogICogdGVzdCB0aW1lLgogICovCiBzdGF0aWMgaW50Ci1zY29yZV90aW1lem9uZShj b25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAqdHQpCitzY29yZV90aW1lem9uZShjb25z dCBjaGFyICp0el9uYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogewogCWludAkJCWk7CiAJcGdfdGlt ZV90CXBndHQ7CkBAIC0yNDEsNyArMjQxLDcgQEAgc2NvcmVfdGltZXpvbmUoY29uc3QgY2hhciAq dHpuYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogCXBnX3R6CSAgICp0ejsKIAogCS8qIExvYWQgdGlt ZXpvbmUgZGVmaW5pdGlvbiAqLwotCXR6ID0gcGdfbG9hZF90eih0em5hbWUpOworCXR6ID0gcGdf bG9hZF90eih0el9uYW1lKTsKIAlpZiAoIXR6KQogCQlyZXR1cm4gLTE7CQkJCS8qIHVucmVjb2du aXplZCB6b25lIG5hbWUgKi8KIApAQCAtMjQ5LDcgKzI0OSw3IEBAIHNjb3JlX3RpbWV6b25lKGNv bnN0IGNoYXIgKnR6bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAlpZiAoIXBnX3R6X2FjY2VwdGFi bGUodHopKQogCXsKICNpZmRlZiBERUJVR19JREVOVElGWV9USU1FWk9ORQotCQlmcHJpbnRmKHN0 ZGVyciwgIlJlamVjdCBUWiBcIiVzXCI6IHVzZXMgbGVhcCBzZWNvbmRzXG4iLCB0em5hbWUpOwor CQlmcHJpbnRmKHN0ZGVyciwgIlJlamVjdCBUWiBcIiVzXCI6IHVzZXMgbGVhcCBzZWNvbmRzXG4i LCB0el9uYW1lKTsKICNlbmRpZgogCQlyZXR1cm4gLTE7CiAJfQpAQCAtMjY2LDcgKzI2Niw3IEBA IHNjb3JlX3RpbWV6b25lKGNvbnN0IGNoYXIgKnR6bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAkJ ewogI2lmZGVmIERFQlVHX0lERU5USUZZX1RJTUVaT05FCiAJCQlmcHJpbnRmKHN0ZGVyciwgIlRa IFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCAlMDRkLSUwMmQtJTAyZCAlMDJkOiUwMmQ6JTAyZCAl cywgc3lzdGVtIGhhZCBubyBkYXRhXG4iLAotCQkJCQl0em5hbWUsIGksIChsb25nKSBwZ3R0LAor CQkJCQl0el9uYW1lLCBpLCAobG9uZykgcGd0dCwKIAkJCQkJcGd0bS0+dG1feWVhciArIDE5MDAs IHBndG0tPnRtX21vbiArIDEsIHBndG0tPnRtX21kYXksCiAJCQkJCXBndG0tPnRtX2hvdXIsIHBn dG0tPnRtX21pbiwgcGd0bS0+dG1fc2VjLAogCQkJCQlwZ3RtLT50bV9pc2RzdCA/ICJkc3QiIDog InN0ZCIpOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHNjb3JlX3RpbWV6b25lKGNvbnN0IGNoYXIgKnR6 bmFtZSwgc3RydWN0IHR6dHJ5ICp0dCkKIAkJewogI2lmZGVmIERFQlVHX0lERU5USUZZX1RJTUVa T05FCiAJCQlmcHJpbnRmKHN0ZGVyciwgIlRaIFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCAlMDRk LSUwMmQtJTAyZCAlMDJkOiUwMmQ6JTAyZCAlcyB2ZXJzdXMgJTA0ZC0lMDJkLSUwMmQgJTAyZDol MDJkOiUwMmQgJXNcbiIsCi0JCQkJCXR6bmFtZSwgaSwgKGxvbmcpIHBndHQsCisJCQkJCXR6X25h bWUsIGksIChsb25nKSBwZ3R0LAogCQkJCQlwZ3RtLT50bV95ZWFyICsgMTkwMCwgcGd0bS0+dG1f bW9uICsgMSwgcGd0bS0+dG1fbWRheSwKIAkJCQkJcGd0bS0+dG1faG91ciwgcGd0bS0+dG1fbWlu LCBwZ3RtLT50bV9zZWMsCiAJCQkJCXBndG0tPnRtX2lzZHN0ID8gImRzdCIgOiAic3RkIiwKQEAg LTI5OCw3ICsyOTgsNyBAQCBzY29yZV90aW1lem9uZShjb25zdCBjaGFyICp0em5hbWUsIHN0cnVj dCB0enRyeSAqdHQpCiAJCQl7CiAjaWZkZWYgREVCVUdfSURFTlRJRllfVElNRVpPTkUKIAkJCQlm cHJpbnRmKHN0ZGVyciwgIlRaIFwiJXNcIiBzY29yZXMgJWQ6IGF0ICVsZCBcIiVzXCIgdmVyc3Vz IFwiJXNcIlxuIiwKLQkJCQkJCXR6bmFtZSwgaSwgKGxvbmcpIHBndHQsCisJCQkJCQl0el9uYW1l LCBpLCAobG9uZykgcGd0dCwKIAkJCQkJCXBndG0tPnRtX3pvbmUsIGNidWYpOwogI2VuZGlmCiAJ CQkJcmV0dXJuIGk7CkBAIC0zMDcsNyArMzA3LDcgQEAgc2NvcmVfdGltZXpvbmUoY29uc3QgY2hh ciAqdHpuYW1lLCBzdHJ1Y3QgdHp0cnkgKnR0KQogCX0KIAogI2lmZGVmIERFQlVHX0lERU5USUZZ X1RJTUVaT05FCi0JZnByaW50ZihzdGRlcnIsICJUWiBcIiVzXCIgZ2V0cyBtYXggc2NvcmUgJWRc biIsIHR6bmFtZSwgaSk7CisJZnByaW50ZihzdGRlcnIsICJUWiBcIiVzXCIgZ2V0cyBtYXggc2Nv cmUgJWRcbiIsIHR6X25hbWUsIGkpOwogI2VuZGlmCiAKIAlyZXR1cm4gaTsKQEAgLTMxNyw5ICsz MTcsOSBAQCBzY29yZV90aW1lem9uZShjb25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAq dHQpCiAgKiBUZXN0IHdoZXRoZXIgZ2l2ZW4gem9uZSBuYW1lIGlzIGEgcGVyZmVjdCBtYXRjaCB0 byBsb2NhbHRpbWUoKSBiZWhhdmlvcgogICovCiBzdGF0aWMgYm9vbAotcGVyZmVjdF90aW1lem9u ZV9tYXRjaChjb25zdCBjaGFyICp0em5hbWUsIHN0cnVjdCB0enRyeSAqdHQpCitwZXJmZWN0X3Rp bWV6b25lX21hdGNoKGNvbnN0IGNoYXIgKnR6X25hbWUsIHN0cnVjdCB0enRyeSAqdHQpCiB7Ci0J cmV0dXJuIChzY29yZV90aW1lem9uZSh0em5hbWUsIHR0KSA9PSB0dC0+bl90ZXN0X3RpbWVzKTsK KwlyZXR1cm4gKHNjb3JlX3RpbWV6b25lKHR6X25hbWUsIHR0KSA9PSB0dC0+bl90ZXN0X3RpbWVz KTsKIH0KIAogCkBAIC0xNzI1LDE0ICsxNzI1LDE0IEBAIGlkZW50aWZ5X3N5c3RlbV90aW1lem9u ZSh2b2lkKQogICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHpvbmUgbmFtZSBpcyB2YWxpZCBh bmQgaXMgYW4gImFjY2VwdGFibGUiIHpvbmUuCiAgKi8KIHN0YXRpYyBib29sCi12YWxpZGF0ZV96 b25lKGNvbnN0IGNoYXIgKnR6bmFtZSkKK3ZhbGlkYXRlX3pvbmUoY29uc3QgY2hhciAqem9uZSkK IHsKIAlwZ190egkgICAqdHo7CiAKLQlpZiAoIXR6bmFtZSB8fCAhdHpuYW1lWzBdKQorCWlmICgh em9uZSB8fCAhem9uZVswXSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JdHogPSBwZ19sb2FkX3R6KHR6 bmFtZSk7CisJdHogPSBwZ19sb2FkX3R6KHpvbmUpOwogCWlmICghdHopCiAJCXJldHVybiBmYWxz ZTsKIApAQCAtMTc1Niw3ICsxNzU2LDcgQEAgdmFsaWRhdGVfem9uZShjb25zdCBjaGFyICp0em5h bWUpCiBjb25zdCBjaGFyICoKIHNlbGVjdF9kZWZhdWx0X3RpbWV6b25lKGNvbnN0IGNoYXIgKnNo YXJlX3BhdGgpCiB7Ci0JY29uc3QgY2hhciAqdHpuYW1lOworCWNvbnN0IGNoYXIgKnR6OwogCiAJ LyogSW5pdGlhbGl6ZSB0aW1lem9uZSBkaXJlY3RvcnkgcGF0aCwgaWYgbmVlZGVkICovCiAjaWZu ZGVmIFNZU1RFTVRaRElSCkBAIC0xNzY0LDE0ICsxNzY0LDE0IEBAIHNlbGVjdF9kZWZhdWx0X3Rp bWV6b25lKGNvbnN0IGNoYXIgKnNoYXJlX3BhdGgpCiAjZW5kaWYKIAogCS8qIENoZWNrIFRaIGVu dmlyb25tZW50IHZhcmlhYmxlICovCi0JdHpuYW1lID0gZ2V0ZW52KCJUWiIpOwotCWlmICh2YWxp ZGF0ZV96b25lKHR6bmFtZSkpCi0JCXJldHVybiB0em5hbWU7CisJdHogPSBnZXRlbnYoIlRaIik7 CisJaWYgKHZhbGlkYXRlX3pvbmUodHopKQorCQlyZXR1cm4gdHo7CiAKIAkvKiBOb3BlLCBzbyB0 cnkgdG8gaWRlbnRpZnkgdGhlIHN5c3RlbSB0aW1lem9uZSAqLwotCXR6bmFtZSA9IGlkZW50aWZ5 X3N5c3RlbV90aW1lem9uZSgpOwotCWlmICh2YWxpZGF0ZV96b25lKHR6bmFtZSkpCi0JCXJldHVy biB0em5hbWU7CisJdHogPSBpZGVudGlmeV9zeXN0ZW1fdGltZXpvbmUoKTsKKwlpZiAodmFsaWRh dGVfem9uZSh0eikpCisJCXJldHVybiB0ejsKIAogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL3RpbWV6b25lL3BndHouYyBiL3NyYy90aW1lem9uZS9wZ3R6LmMKaW5kZXggNTA0YzAy MzVmZmIuLmE0NGJkMjMwZDgwIDEwMDY0NAotLS0gYS9zcmMvdGltZXpvbmUvcGd0ei5jCisrKyBi L3NyYy90aW1lem9uZS9wZ3R6LmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBpbml0X3RpbWV6b25lX2hh c2h0YWJsZSh2b2lkKQogICogZGVmYXVsdCB0aW1lem9uZSBzZXR0aW5nIGlzIGxhdGVyIG92ZXJy aWRkZW4gZnJvbSBwb3N0Z3Jlc3FsLmNvbmYuCiAgKi8KIHBnX3R6ICoKLXBnX3R6c2V0KGNvbnN0 IGNoYXIgKnR6bmFtZSkKK3BnX3R6c2V0KGNvbnN0IGNoYXIgKnpvbmUpCiB7CiAJcGdfdHpfY2Fj aGUgKnR6cDsKIAlzdHJ1Y3Qgc3RhdGUgdHpzdGF0ZTsKQEAgLTIzOSw3ICsyMzksNyBAQCBwZ190 enNldChjb25zdCBjaGFyICp0em5hbWUpCiAJY2hhcgkJY2Fub25uYW1lW1RaX1NUUkxFTl9NQVgg KyAxXTsKIAljaGFyCSAgICpwOwogCi0JaWYgKHN0cmxlbih0em5hbWUpID4gVFpfU1RSTEVOX01B WCkKKwlpZiAoc3RybGVuKHpvbmUpID4gVFpfU1RSTEVOX01BWCkKIAkJcmV0dXJuIE5VTEw7CQkJ Lyogbm90IGdvaW5nIHRvIGZpdCAqLwogCiAJaWYgKCF0aW1lem9uZV9jYWNoZSkKQEAgLTI1Myw4 ICsyNTMsOCBAQCBwZ190enNldChjb25zdCBjaGFyICp0em5hbWUpCiAJICogYSBQT1NJWC1zdHls ZSB0aW1lem9uZSBzcGVjLikKIAkgKi8KIAlwID0gdXBwZXJuYW1lOwotCXdoaWxlICgqdHpuYW1l KQotCQkqcCsrID0gcGdfdG91cHBlcigodW5zaWduZWQgY2hhcikgKnR6bmFtZSsrKTsKKwl3aGls ZSAoKnpvbmUpCisJCSpwKysgPSBwZ190b3VwcGVyKCh1bnNpZ25lZCBjaGFyKSAqem9uZSsrKTsK IAkqcCA9ICdcMCc7CiAKIAl0enAgPSAocGdfdHpfY2FjaGUgKikgaGFzaF9zZWFyY2godGltZXpv bmVfY2FjaGUsCkBAIC0zMjEsNyArMzIxLDcgQEAgcGdfdHpzZXRfb2Zmc2V0KGxvbmcgZ210b2Zm c2V0KQogewogCWxvbmcJCWFic29mZnNldCA9IChnbXRvZmZzZXQgPCAwKSA/IC1nbXRvZmZzZXQg OiBnbXRvZmZzZXQ7CiAJY2hhcgkJb2Zmc2V0c3RyWzY0XTsKLQljaGFyCQl0em5hbWVbMTI4XTsK KwljaGFyCQl6b25lWzEyOF07CiAKIAlzbnByaW50ZihvZmZzZXRzdHIsIHNpemVvZihvZmZzZXRz dHIpLAogCQkJICIlMDJsZCIsIGFic29mZnNldCAvIFNFQ1NfUEVSX0hPVVIpOwpAQCAtMzM4LDEz ICszMzgsMTMgQEAgcGdfdHpzZXRfb2Zmc2V0KGxvbmcgZ210b2Zmc2V0KQogCQkJCQkgIjolMDJs ZCIsIGFic29mZnNldCk7CiAJfQogCWlmIChnbXRvZmZzZXQgPiAwKQotCQlzbnByaW50Zih0em5h bWUsIHNpemVvZih0em5hbWUpLCAiPC0lcz4rJXMiLAorCQlzbnByaW50Zih6b25lLCBzaXplb2Yo em9uZSksICI8LSVzPislcyIsCiAJCQkJIG9mZnNldHN0ciwgb2Zmc2V0c3RyKTsKIAllbHNlCi0J CXNucHJpbnRmKHR6bmFtZSwgc2l6ZW9mKHR6bmFtZSksICI8KyVzPi0lcyIsCisJCXNucHJpbnRm KHpvbmUsIHNpemVvZih6b25lKSwgIjwrJXM+LSVzIiwKIAkJCQkgb2Zmc2V0c3RyLCBvZmZzZXRz dHIpOwogCi0JcmV0dXJuIHBnX3R6c2V0KHR6bmFtZSk7CisJcmV0dXJuIHBnX3R6c2V0KHpvbmUp OwogfQogCiAKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0012-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Disposition: attachment; filename="v4-0012-cleanup-avoid-local-variables-shadowed-by-globals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7lo11 RnJvbSA0ZDkxMWY0OTdmNjU5NmE3MzY2NDIxNmQ0Y2E1OTE0NTQzMjQ5M2MzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogV2VkLCAzIERlYyAyMDI1IDA3OjQwOjI2ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAxMi8x M10gY2xlYW51cDogYXZvaWQgbG9jYWwgdmFyaWFibGVzIHNoYWRvd2VkIGJ5IGdsb2JhbHMKIGlu IGVjcGcuaGVhZGVyCgpUaGlzIGNvbW1pdCByZW5hbWVzIGxvY2FsIHZhcmlhYmxlcyBpbiBlY3Bn LmhlYWRlciB0aGF0IHdlcmUgc2hhZG93ZWQgYnkKZ2xvYmFsIGlkZW50aWZpZXJzIG9mIHRoZSBz YW1lIG5hbWVzLiBUaGUgdXBkYXRlZCBsb2NhbCBuYW1lcyBlbnN1cmUgdGhlCmlkZW50aWZpZXJz IHJlbWFpbiBkaXN0aW5jdCBhbmQgdW5hbWJpZ3VvdXMgd2l0aGluIHRoZSBmaWxlLgoKQXV0aG9y OiBDaGFvIExpIDxsaWNAaGlnaGdvLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQUVvV3gya1EyeDVnTWFqOHRITEozPWpmQytwNVlYSGtKeUhyRFRpUXcybm4yRkpUbVFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZWNwZy5oZWFkZXIg fCAxMiArKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcu aGVhZGVyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcuaGVhZGVyCmluZGV4IGRk ZTY5YTM5Njk1Li5hNThkZGEzMmY0OCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9w cmVwcm9jL2VjcGcuaGVhZGVyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3Bn LmhlYWRlcgpAQCAtMTc4LDcgKzE3OCw3IEBAIGNyZWF0ZV9xdWVzdGlvbm1hcmtzKGNvbnN0IGNo YXIgKm5hbWUsIGJvb2wgYXJyYXkpCiB9CiAKIHN0YXRpYyBjaGFyICoKLWFkanVzdF9vdXRvZnNj b3BlX2N1cnNvcl92YXJzKHN0cnVjdCBjdXJzb3IgKmN1cikKK2FkanVzdF9vdXRvZnNjb3BlX2N1 cnNvcl92YXJzKHN0cnVjdCBjdXJzb3IgKnBjdXIpCiB7CiAJLyoKIAkgKiBJbmZvcm1peCBhY2Nl cHRzIERFQ0xBUkUgd2l0aCB2YXJpYWJsZXMgdGhhdCBhcmUgb3V0IG9mIHNjb3BlIHdoZW4gT1BF TgpAQCAtMjAzLDcgKzIwMyw3IEBAIGFkanVzdF9vdXRvZnNjb3BlX2N1cnNvcl92YXJzKHN0cnVj dCBjdXJzb3IgKmN1cikKIAkJc3RydWN0IHZhcmlhYmxlICpuZXd2YXIsCiAJCQkJICAgKm5ld2lu ZDsKIAotCQlsaXN0ID0gKGluc2VydCA/IGN1ci0+YXJnc2luc2VydCA6IGN1ci0+YXJnc3Jlc3Vs dCk7CisJCWxpc3QgPSAoaW5zZXJ0ID8gcGN1ci0+YXJnc2luc2VydCA6IHBjdXItPmFyZ3NyZXN1 bHQpOwogCiAJCWZvciAocHRyID0gbGlzdDsgcHRyICE9IE5VTEw7IHB0ciA9IHB0ci0+bmV4dCkK IAkJewpAQCAtNDM0LDkgKzQzNCw5IEBAIGFkanVzdF9vdXRvZnNjb3BlX2N1cnNvcl92YXJzKHN0 cnVjdCBjdXJzb3IgKmN1cikKIAkJfQogCiAJCWlmIChpbnNlcnQpCi0JCQljdXItPmFyZ3NpbnNl cnRfb29zID0gbmV3bGlzdDsKKwkJCXBjdXItPmFyZ3NpbnNlcnRfb29zID0gbmV3bGlzdDsKIAkJ ZWxzZQotCQkJY3VyLT5hcmdzcmVzdWx0X29vcyA9IG5ld2xpc3Q7CisJCQlwY3VyLT5hcmdzcmVz dWx0X29vcyA9IG5ld2xpc3Q7CiAJfQogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTQ5MCw3ICs0OTAs NyBAQCBzdGF0aWMgdm9pZAogYWRkX3R5cGVkZWYoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh ciAqZGltZW5zaW9uLCBjb25zdCBjaGFyICpsZW5ndGgsCiAJCQllbnVtIEVDUEd0dHlwZSB0eXBl X2VudW0sCiAJCQljb25zdCBjaGFyICp0eXBlX2RpbWVuc2lvbiwgY29uc3QgY2hhciAqdHlwZV9p bmRleCwKLQkJCWludCBpbml0aWFsaXplciwgaW50IGFycmF5KQorCQkJaW50IGluaXRpYWxfdmFs dWUsIGludCBhcnJheSkKIHsKIAkvKiBhZGQgZW50cnkgdG8gbGlzdCAqLwogCXN0cnVjdCB0eXBl ZGVmcyAqcHRyLApAQCAtNDk4LDcgKzQ5OCw3IEBAIGFkZF90eXBlZGVmKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKmRpbWVuc2lvbiwgY29uc3QgY2hhciAqbGVuZ3RoLAogCiAJaWYgKCh0 eXBlX2VudW0gPT0gRUNQR3Rfc3RydWN0IHx8CiAJCSB0eXBlX2VudW0gPT0gRUNQR3RfdW5pb24p ICYmCi0JCWluaXRpYWxpemVyID09IDEpCisJCWluaXRpYWxfdmFsdWUgPT0gMSkKIAkJbW1lcnJv cihQQVJTRV9FUlJPUiwgRVRfRVJST1IsICJpbml0aWFsaXplciBub3QgYWxsb3dlZCBpbiB0eXBl IGRlZmluaXRpb24iKTsKIAllbHNlIGlmIChJTkZPUk1JWF9NT0RFICYmIHN0cmNtcChuYW1lLCAi c3RyaW5nIikgPT0gMCkKIAkJbW1lcnJvcihQQVJTRV9FUlJPUiwgRVRfRVJST1IsICJ0eXBlIG5h bWUgXCJzdHJpbmdcIiBpcyByZXNlcnZlZCBpbiBJbmZvcm1peCBtb2RlIik7Ci0tIAoyLjM5LjUg KEFwcGxlIEdpdC0xNTQpCgo= --000000000000d21eb2064514843d Content-Type: application/octet-stream; name="v4-0011-cleanup-rename-local-conn-variables-to-avoid-shad.patch" Content-Disposition: attachment; filename="v4-0011-cleanup-rename-local-conn-variables-to-avoid-shad.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miqmw7ln10 RnJvbSA3YzdmNTMzNDBiZWM1MTQ3YTdiMGU4OTZjMmVlNjQ5YzczYzc1MjA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQ2hhbyBMaSAoRXZhbikiIDxsaWNAaGlnaGdvLmNvbT4KRGF0 ZTogVHVlLCAyIERlYyAyMDI1IDE2OjAzOjE5ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NCAxMS8x M10gY2xlYW51cDogcmVuYW1lIGxvY2FsIGNvbm4gdmFyaWFibGVzIHRvIGF2b2lkCiBzaGFkb3dp bmcgdGhlIGdsb2JhbAoKVGhpcyBjb21taXQgcmVuYW1lcyBhbGwgbG9jYWwgdmFyaWFibGVzIG5h bWVkICdjb25uJyB0byAnbXljb25uJyB0byBhdm9pZApzaGFkb3dpbmcgdGhlIGdsb2JhbCBjb25u ZWN0aW9uIHZhcmlhYmxlLiBUaGlzIGVuc3VyZXMgdGhlIGxvY2FsIGFuZApnbG9iYWwgaWRlbnRp ZmllcnMgcmVtYWluIGNsZWFybHkgZGlzdGluY3Qgd2l0aGluIGVhY2ggc2NvcGUuCgpBIGZldyBh ZGRpdGlvbmFsIHNoYWRvd2luZyBmaXhlcyBpbiB0aGUgc2FtZSBjb2RlIGFyZWFzIGFyZSBpbmNs dWRlZCBhcwp3ZWxsLiBUaGVzZSBhcmUgdW5yZWxhdGVkIHRvIHRoZSBjb25uIHJlbmFtaW5nIGJ1 dCBvY2N1ciBpbiB0aGUgc2FtZQpmaWxlcywgc28gdGhleSBhcmUgYnVuZGxlZCBoZXJlIHRvIGtl ZXAgdGhlIGNvbW1pdCBzZWxmLWNvbnRhaW5lZC4KCkF1dGhvcjogQ2hhbyBMaSA8bGljQGhpZ2hn by5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FFb1d4MmtRMng1Z01hajh0 SExKMz1qZkMrcDVZWEhrSnlIckRUaVF3Mm5uMkZKVG1RQG1haWwuZ21haWwuY29tCi0tLQogc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYyAgfCAgMzIgKysrKy0tLS0KIHNyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5jIHwgIDI0ICsrKy0tLQogc3JjL2Jpbi9w Z19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYyAgICAgfCAxMDggKysrKysrKysrKysrLS0tLS0tLS0t LS0tLQogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3N0cmVhbXV0aWwuYyAgICAgfCAgNTggKysrKysr LS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgMTExIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMg Yi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCmluZGV4IDBhM2NhNDMxNWRl Li41YTU3YzY0ZGNkMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2Vi YWNrdXAuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCkBAIC0x MDEzLDE2ICsxMDEzLDE2IEBAIGJhY2t1cF9wYXJzZV9jb21wcmVzc19vcHRpb25zKGNoYXIgKm9w dGlvbiwgY2hhciAqKmFsZ29yaXRobSwgY2hhciAqKmRldGFpbCwKICAqIGNodW5rLgogICovCiBz dGF0aWMgdm9pZAotUmVjZWl2ZUNvcHlEYXRhKFBHY29ubiAqY29ubiwgV3JpdGVEYXRhQ2FsbGJh Y2sgY2FsbGJhY2ssCitSZWNlaXZlQ29weURhdGEoUEdjb25uICpteWNvbm4sIFdyaXRlRGF0YUNh bGxiYWNrIGNhbGxiYWNrLAogCQkJCXZvaWQgKmNhbGxiYWNrX2RhdGEpCiB7CiAJUEdyZXN1bHQg ICAqcmVzOwogCiAJLyogR2V0IHRoZSBDT1BZIGRhdGEgc3RyZWFtLiAqLwotCXJlcyA9IFBRZ2V0 UmVzdWx0KGNvbm4pOworCXJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7CiAJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09QWV9PVVQpCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZ2V0 IENPUFkgZGF0YSBzdHJlYW06ICVzIiwKLQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJ CSBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAlQUWNsZWFyKHJlcyk7CiAKIAkvKiBMb29wIG92 ZXIgY2h1bmtzIHVudGlsIGRvbmUuICovCkBAIC0xMDMxLDcgKzEwMzEsNyBAQCBSZWNlaXZlQ29w eURhdGEoUEdjb25uICpjb25uLCBXcml0ZURhdGFDYWxsYmFjayBjYWxsYmFjaywKIAkJaW50CQkJ cjsKIAkJY2hhcgkgICAqY29weWJ1ZjsKIAotCQlyID0gUFFnZXRDb3B5RGF0YShjb25uLCAmY29w eWJ1ZiwgMCk7CisJCXIgPSBQUWdldENvcHlEYXRhKG15Y29ubiwgJmNvcHlidWYsIDApOwogCQlp ZiAociA9PSAtMSkKIAkJewogCQkJLyogRW5kIG9mIGNodW5rLiAqLwpAQCAtMTAzOSw3ICsxMDM5 LDcgQEAgUmVjZWl2ZUNvcHlEYXRhKFBHY29ubiAqY29ubiwgV3JpdGVEYXRhQ2FsbGJhY2sgY2Fs bGJhY2ssCiAJCX0KIAkJZWxzZSBpZiAociA9PSAtMikKIAkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qg cmVhZCBDT1BZIGRhdGE6ICVzIiwKLQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJCQkJ IFBRZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCiAJCWlmIChiZ2NoaWxkX2V4aXRlZCkKIAkJCXBn X2ZhdGFsKCJiYWNrZ3JvdW5kIHByb2Nlc3MgdGVybWluYXRlZCB1bmV4cGVjdGVkbHkiKTsKQEAg LTEyODMsNyArMTI4Myw3IEBAIENyZWF0ZUJhY2t1cFN0cmVhbWVyKGNoYXIgKmFyY2hpdmVfbmFt ZSwgY2hhciAqc3BjbG9jYXRpb24sCiAgKiBtYW5pZmVzdCBpZiBwcmVzZW50IC0gYXMgYSBzaW5n bGUgQ09QWSBzdHJlYW0uCiAgKi8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlQXJjaGl2ZVN0cmVhbShQ R2Nvbm4gKmNvbm4sIHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24gKmNvbXByZXNzKQorUmVjZWl2 ZUFyY2hpdmVTdHJlYW0oUEdjb25uICpteWNvbm4sIHBnX2NvbXByZXNzX3NwZWNpZmljYXRpb24g KmNvbXByZXNzKQogewogCUFyY2hpdmVTdHJlYW1TdGF0ZSBzdGF0ZTsKIApAQCAtMTI5Myw3ICsx MjkzLDcgQEAgUmVjZWl2ZUFyY2hpdmVTdHJlYW0oUEdjb25uICpjb25uLCBwZ19jb21wcmVzc19z cGVjaWZpY2F0aW9uICpjb21wcmVzcykKIAlzdGF0ZS5jb21wcmVzcyA9IGNvbXByZXNzOwogCiAJ LyogQWxsIHRoZSByZWFsIHdvcmsgaGFwcGVucyBpbiBSZWNlaXZlQXJjaGl2ZVN0cmVhbUNodW5r LiAqLwotCVJlY2VpdmVDb3B5RGF0YShjb25uLCBSZWNlaXZlQXJjaGl2ZVN0cmVhbUNodW5rLCAm c3RhdGUpOworCVJlY2VpdmVDb3B5RGF0YShteWNvbm4sIFJlY2VpdmVBcmNoaXZlU3RyZWFtQ2h1 bmssICZzdGF0ZSk7CiAKIAkvKiBJZiB3ZSB3cm90ZSB0aGUgYmFja3VwIG1hbmlmZXN0IHRvIGEg ZmlsZSwgY2xvc2UgdGhlIGZpbGUuICovCiAJaWYgKHN0YXRlLm1hbmlmZXN0X2ZpbGUgIT1OVUxM KQpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgUmVwb3J0Q29weURhdGFQYXJzZUVycm9yKHNpemVfdCBy LCBjaGFyICpjb3B5YnVmKQogICogcmVjZWl2ZSB0aGUgYmFja3VwIG1hbmlmZXN0IGFuZCBpbmpl Y3QgaXQgaW50byB0aGF0IHRhcmZpbGUuCiAgKi8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlVGFyRmls ZShQR2Nvbm4gKmNvbm4sIGNoYXIgKmFyY2hpdmVfbmFtZSwgY2hhciAqc3BjbG9jYXRpb24sCitS ZWNlaXZlVGFyRmlsZShQR2Nvbm4gKm15Y29ubiwgY2hhciAqYXJjaGl2ZV9uYW1lLCBjaGFyICpz cGNsb2NhdGlvbiwKIAkJCSAgIGJvb2wgdGFibGVzcGFjZW51bSwgcGdfY29tcHJlc3Nfc3BlY2lm aWNhdGlvbiAqY29tcHJlc3MpCiB7CiAJV3JpdGVUYXJTdGF0ZSBzdGF0ZTsKQEAgLTE2MDksMTYg KzE2MDksMTYgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBjaGFyICphcmNoaXZlX25h bWUsIGNoYXIgKnNwY2xvY2F0aW9uLAogCS8qIFBhc3MgYWxsIENPUFkgZGF0YSB0aHJvdWdoIHRv IHRoZSBiYWNrdXAgc3RyZWFtZXIuICovCiAJbWVtc2V0KCZzdGF0ZSwgMCwgc2l6ZW9mKHN0YXRl KSk7CiAJaXNfcmVjb3ZlcnlfZ3VjX3N1cHBvcnRlZCA9Ci0JCVBRc2VydmVyVmVyc2lvbihjb25u KSA+PSBNSU5JTVVNX1ZFUlNJT05fRk9SX1JFQ09WRVJZX0dVQzsKKwkJUFFzZXJ2ZXJWZXJzaW9u KG15Y29ubikgPj0gTUlOSU1VTV9WRVJTSU9OX0ZPUl9SRUNPVkVSWV9HVUM7CiAJZXhwZWN0X3Vu dGVybWluYXRlZF90YXJmaWxlID0KLQkJUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pIDwgTUlOSU1VTV9W RVJTSU9OX0ZPUl9URVJNSU5BVEVEX1RBUkZJTEU7CisJCVBRc2VydmVyVmVyc2lvbihteWNvbm4p IDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9URVJNSU5BVEVEX1RBUkZJTEU7CiAJc3RhdGUuc3RyZWFt ZXIgPSBDcmVhdGVCYWNrdXBTdHJlYW1lcihhcmNoaXZlX25hbWUsIHNwY2xvY2F0aW9uLAogCQkJ CQkJCQkJCSAgJm1hbmlmZXN0X2luamVjdF9zdHJlYW1lciwKIAkJCQkJCQkJCQkgIGlzX3JlY292 ZXJ5X2d1Y19zdXBwb3J0ZWQsCiAJCQkJCQkJCQkJICBleHBlY3RfdW50ZXJtaW5hdGVkX3RhcmZp bGUsCiAJCQkJCQkJCQkJICBjb21wcmVzcyk7CiAJc3RhdGUudGFibGVzcGFjZW51bSA9IHRhYmxl c3BhY2VudW07Ci0JUmVjZWl2ZUNvcHlEYXRhKGNvbm4sIFJlY2VpdmVUYXJDb3B5Q2h1bmssICZz dGF0ZSk7CisJUmVjZWl2ZUNvcHlEYXRhKG15Y29ubiwgUmVjZWl2ZVRhckNvcHlDaHVuaywgJnN0 YXRlKTsKIAlwcm9ncmVzc191cGRhdGVfZmlsZW5hbWUoTlVMTCk7CiAKIAkvKgpAQCAtMTYzMyw3 ICsxNjMzLDcgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBjaGFyICphcmNoaXZlX25h bWUsIGNoYXIgKnNwY2xvY2F0aW9uLAogCiAJCS8qIFNsdXJwIHRoZSBlbnRpcmUgYmFja3VwIG1h bmlmZXN0IGludG8gYSBidWZmZXIuICovCiAJCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKLQkJUmVj ZWl2ZUJhY2t1cE1hbmlmZXN0SW5NZW1vcnkoY29ubiwgJmJ1Zik7CisJCVJlY2VpdmVCYWNrdXBN YW5pZmVzdEluTWVtb3J5KG15Y29ubiwgJmJ1Zik7CiAJCWlmIChQUUV4cEJ1ZmZlckRhdGFCcm9r ZW4oYnVmKSkKIAkJCXBnX2ZhdGFsKCJvdXQgb2YgbWVtb3J5Iik7CiAKQEAgLTE2OTcsNyArMTY5 Nyw3IEBAIGdldF90YWJsZXNwYWNlX21hcHBpbmcoY29uc3QgY2hhciAqZGlyKQogICogUmVjZWl2 ZSB0aGUgYmFja3VwIG1hbmlmZXN0IGZpbGUgYW5kIHdyaXRlIGl0IG91dCB0byBhIGZpbGUuCiAg Ki8KIHN0YXRpYyB2b2lkCi1SZWNlaXZlQmFja3VwTWFuaWZlc3QoUEdjb25uICpjb25uKQorUmVj ZWl2ZUJhY2t1cE1hbmlmZXN0KFBHY29ubiAqbXljb25uKQogewogCVdyaXRlTWFuaWZlc3RTdGF0 ZSBzdGF0ZTsKIApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0KFBH Y29ubiAqY29ubikKIAlpZiAoc3RhdGUuZmlsZSA9PSBOVUxMKQogCQlwZ19mYXRhbCgiY291bGQg bm90IGNyZWF0ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS5maWxlbmFtZSk7CiAKLQlSZWNlaXZl Q29weURhdGEoY29ubiwgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0Q2h1bmssICZzdGF0ZSk7CisJUmVj ZWl2ZUNvcHlEYXRhKG15Y29ubiwgUmVjZWl2ZUJhY2t1cE1hbmlmZXN0Q2h1bmssICZzdGF0ZSk7 CiAKIAlmY2xvc2Uoc3RhdGUuZmlsZSk7CiB9CkBAIC0xNzM0LDkgKzE3MzQsOSBAQCBSZWNlaXZl QmFja3VwTWFuaWZlc3RDaHVuayhzaXplX3QgciwgY2hhciAqY29weWJ1Ziwgdm9pZCAqY2FsbGJh Y2tfZGF0YSkKICAqIFJlY2VpdmUgdGhlIGJhY2t1cCBtYW5pZmVzdCBmaWxlIGFuZCB3cml0ZSBp dCBvdXQgdG8gYSBmaWxlLgogICovCiBzdGF0aWMgdm9pZAotUmVjZWl2ZUJhY2t1cE1hbmlmZXN0 SW5NZW1vcnkoUEdjb25uICpjb25uLCBQUUV4cEJ1ZmZlciBidWYpCitSZWNlaXZlQmFja3VwTWFu aWZlc3RJbk1lbW9yeShQR2Nvbm4gKm15Y29ubiwgUFFFeHBCdWZmZXIgYnVmKQogewotCVJlY2Vp dmVDb3B5RGF0YShjb25uLCBSZWNlaXZlQmFja3VwTWFuaWZlc3RJbk1lbW9yeUNodW5rLCBidWYp OworCVJlY2VpdmVDb3B5RGF0YShteWNvbm4sIFJlY2VpdmVCYWNrdXBNYW5pZmVzdEluTWVtb3J5 Q2h1bmssIGJ1Zik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAv cGdfcmVjdmxvZ2ljYWwuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19yZWN2bG9naWNhbC5j CmluZGV4IDE0YWQxNTA0Njc4Li43ODAxNjIzZmVjOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX3JlY3Zsb2dpY2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Bn X3JlY3Zsb2dpY2FsLmMKQEAgLTczLDggKzczLDggQEAgc3RhdGljIFhMb2dSZWNQdHIgb3V0cHV0 X2ZzeW5jX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCiBzdGF0aWMgdm9pZCB1c2FnZSh2b2lk KTsKIHN0YXRpYyB2b2lkIFN0cmVhbUxvZ2ljYWxMb2codm9pZCk7Ci1zdGF0aWMgYm9vbCBmbHVz aEFuZFNlbmRGZWVkYmFjayhQR2Nvbm4gKmNvbm4sIFRpbWVzdGFtcFR6ICpub3cpOwotc3RhdGlj IHZvaWQgcHJlcGFyZVRvVGVybWluYXRlKFBHY29ubiAqY29ubiwgWExvZ1JlY1B0ciBlbmRwb3Ms CitzdGF0aWMgYm9vbCBmbHVzaEFuZFNlbmRGZWVkYmFjayhQR2Nvbm4gKm15Y29ubiwgVGltZXN0 YW1wVHogKm5vdyk7CitzdGF0aWMgdm9pZCBwcmVwYXJlVG9UZXJtaW5hdGUoUEdjb25uICpteWNv bm4sIFhMb2dSZWNQdHIgZW5kcG9zLAogCQkJCQkJCSAgIFN0cmVhbVN0b3BSZWFzb24gcmVhc29u LAogCQkJCQkJCSAgIFhMb2dSZWNQdHIgbHNuKTsKIApAQCAtMTI2LDcgKzEyNiw3IEBAIHVzYWdl KHZvaWQpCiAgKiBTZW5kIGEgU3RhbmRieSBTdGF0dXMgVXBkYXRlIG1lc3NhZ2UgdG8gc2VydmVy LgogICovCiBzdGF0aWMgYm9vbAotc2VuZEZlZWRiYWNrKFBHY29ubiAqY29ubiwgVGltZXN0YW1w VHogbm93LCBib29sIGZvcmNlLCBib29sIHJlcGx5UmVxdWVzdGVkKQorc2VuZEZlZWRiYWNrKFBH Y29ubiAqbXljb25uLCBUaW1lc3RhbXBUeiBub3csIGJvb2wgZm9yY2UsIGJvb2wgcmVwbHlSZXF1 ZXN0ZWQpCiB7CiAJc3RhdGljIFhMb2dSZWNQdHIgbGFzdF93cml0dGVuX2xzbiA9IEludmFsaWRY TG9nUmVjUHRyOwogCXN0YXRpYyBYTG9nUmVjUHRyIGxhc3RfZnN5bmNfbHNuID0gSW52YWxpZFhM b2dSZWNQdHI7CkBAIC0xNjcsMTAgKzE2NywxMCBAQCBzZW5kRmVlZGJhY2soUEdjb25uICpjb25u LCBUaW1lc3RhbXBUeiBub3csIGJvb2wgZm9yY2UsIGJvb2wgcmVwbHlSZXF1ZXN0ZWQpCiAJbGFz dF93cml0dGVuX2xzbiA9IG91dHB1dF93cml0dGVuX2xzbjsKIAlsYXN0X2ZzeW5jX2xzbiA9IG91 dHB1dF9mc3luY19sc247CiAKLQlpZiAoUFFwdXRDb3B5RGF0YShjb25uLCByZXBseWJ1ZiwgbGVu KSA8PSAwIHx8IFBRZmx1c2goY29ubikpCisJaWYgKFBRcHV0Q29weURhdGEobXljb25uLCByZXBs eWJ1ZiwgbGVuKSA8PSAwIHx8IFBRZmx1c2gobXljb25uKSkKIAl7CiAJCXBnX2xvZ19lcnJvcigi Y291bGQgbm90IHNlbmQgZmVlZGJhY2sgcGFja2V0OiAlcyIsCi0JCQkJCSBQUWVycm9yTWVzc2Fn ZShjb25uKSk7CisJCQkJCSBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAkJcmV0dXJuIGZhbHNl OwogCX0KIApAQCAtMTA0NSwxMyArMTA0NSwxMyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKICAqIGZlZWRiYWNrLgogICovCiBzdGF0aWMgYm9vbAotZmx1c2hBbmRTZW5kRmVlZGJhY2so UEdjb25uICpjb25uLCBUaW1lc3RhbXBUeiAqbm93KQorZmx1c2hBbmRTZW5kRmVlZGJhY2soUEdj b25uICpteWNvbm4sIFRpbWVzdGFtcFR6ICpub3cpCiB7CiAJLyogZmx1c2ggZGF0YSB0byBkaXNr LCBzbyB0aGF0IHdlIHNlbmQgYSByZWNlbnQgZmx1c2ggcG9pbnRlciAqLwogCWlmICghT3V0cHV0 RnN5bmMoKm5vdykpCiAJCXJldHVybiBmYWxzZTsKIAkqbm93ID0gZmVHZXRDdXJyZW50VGltZXN0 YW1wKCk7Ci0JaWYgKCFzZW5kRmVlZGJhY2soY29ubiwgKm5vdywgdHJ1ZSwgZmFsc2UpKQorCWlm ICghc2VuZEZlZWRiYWNrKG15Y29ubiwgKm5vdywgdHJ1ZSwgZmFsc2UpKQogCQlyZXR1cm4gZmFs c2U7CiAKIAlyZXR1cm4gdHJ1ZTsKQEAgLTEwNjIsMTEgKzEwNjIsMTEgQEAgZmx1c2hBbmRTZW5k RmVlZGJhY2soUEdjb25uICpjb25uLCBUaW1lc3RhbXBUeiAqbm93KQogICogcmV0cnkgb24gZmFp bHVyZS4KICAqLwogc3RhdGljIHZvaWQKLXByZXBhcmVUb1Rlcm1pbmF0ZShQR2Nvbm4gKmNvbm4s IFhMb2dSZWNQdHIgZW5kcG9zLCBTdHJlYW1TdG9wUmVhc29uIHJlYXNvbiwKK3ByZXBhcmVUb1Rl cm1pbmF0ZShQR2Nvbm4gKm15Y29ubiwgWExvZ1JlY1B0ciBlbmRfcG9zLCBTdHJlYW1TdG9wUmVh c29uIHJlYXNvbiwKIAkJCQkgICBYTG9nUmVjUHRyIGxzbikKIHsKLQkodm9pZCkgUFFwdXRDb3B5 RW5kKGNvbm4sIE5VTEwpOwotCSh2b2lkKSBQUWZsdXNoKGNvbm4pOworCSh2b2lkKSBQUXB1dENv cHlFbmQobXljb25uLCBOVUxMKTsKKwkodm9pZCkgUFFmbHVzaChteWNvbm4pOwogCiAJaWYgKHZl cmJvc2UpCiAJewpAQCAtMTA3NywxMiArMTA3NywxMiBAQCBwcmVwYXJlVG9UZXJtaW5hdGUoUEdj b25uICpjb25uLCBYTG9nUmVjUHRyIGVuZHBvcywgU3RyZWFtU3RvcFJlYXNvbiByZWFzb24sCiAJ CQkJYnJlYWs7CiAJCQljYXNlIFNUUkVBTV9TVE9QX0tFRVBBTElWRToKIAkJCQlwZ19sb2dfaW5m bygiZW5kIHBvc2l0aW9uICVYLyUwOFggcmVhY2hlZCBieSBrZWVwYWxpdmUiLAotCQkJCQkJCUxT Tl9GT1JNQVRfQVJHUyhlbmRwb3MpKTsKKwkJCQkJCQlMU05fRk9STUFUX0FSR1MoZW5kX3Bvcykp OwogCQkJCWJyZWFrOwogCQkJY2FzZSBTVFJFQU1fU1RPUF9FTkRfT0ZfV0FMOgogCQkJCUFzc2Vy dChYTG9nUmVjUHRySXNWYWxpZChsc24pKTsKIAkJCQlwZ19sb2dfaW5mbygiZW5kIHBvc2l0aW9u ICVYLyUwOFggcmVhY2hlZCBieSBXQUwgcmVjb3JkIGF0ICVYLyUwOFgiLAotCQkJCQkJCUxTTl9G T1JNQVRfQVJHUyhlbmRwb3MpLCBMU05fRk9STUFUX0FSR1MobHNuKSk7CisJCQkJCQkJTFNOX0ZP Uk1BVF9BUkdTKGVuZF9wb3MpLCBMU05fRk9STUFUX0FSR1MobHNuKSk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIFNUUkVBTV9TVE9QX05PTkU6CiAJCQkJQXNzZXJ0KGZhbHNlKTsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9yZWNlaXZlbG9nLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNr dXAvcmVjZWl2ZWxvZy5jCmluZGV4IDI1YjEzYzdmNTVjLi45ZWMxZWVlMDg4YiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYworKysgYi9zcmMvYmluL3BnX2Jh c2ViYWNrdXAvcmVjZWl2ZWxvZy5jCkBAIC0zMiwxOCArMzIsMTggQEAgc3RhdGljIFhMb2dSZWNQ dHIgbGFzdEZsdXNoUG9zaXRpb24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAogc3RhdGljIGJvb2wg c3RpbGxfc2VuZGluZyA9IHRydWU7CS8qIGZlZWRiYWNrIHN0aWxsIG5lZWRzIHRvIGJlIHNlbnQ/ ICovCiAKLXN0YXRpYyBQR3Jlc3VsdCAqSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtLAorc3RhdGljIFBHcmVzdWx0ICpIYW5kbGVDb3B5U3RyZWFtKFBHY29u biAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwKIAkJCQkJCQkJICBYTG9nUmVjUHRyICpzdG9w cG9zKTsKLXN0YXRpYyBpbnQJQ29weVN0cmVhbVBvbGwoUEdjb25uICpjb25uLCBsb25nIHRpbWVv dXRfbXMsIHBnc29ja2V0IHN0b3Bfc29ja2V0KTsKLXN0YXRpYyBpbnQJQ29weVN0cmVhbVJlY2Vp dmUoUEdjb25uICpjb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAorc3Rh dGljIGludAlDb3B5U3RyZWFtUG9sbChQR2Nvbm4gKm15Y29ubiwgbG9uZyB0aW1lb3V0X21zLCBw Z3NvY2tldCBzdG9wX3NvY2tldCk7CitzdGF0aWMgaW50CUNvcHlTdHJlYW1SZWNlaXZlKFBHY29u biAqbXljb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAogCQkJCQkJCSAg Y2hhciAqKmJ1ZmZlcik7Ci1zdGF0aWMgYm9vbCBQcm9jZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAq Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsCitzdGF0aWMgYm9vbCBQcm9j ZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAq Y29weWJ1ZiwKIAkJCQkJCQkJaW50IGxlbiwgWExvZ1JlY1B0ciBibG9ja3BvcywgVGltZXN0YW1w VHogKmxhc3Rfc3RhdHVzKTsKLXN0YXRpYyBib29sIFByb2Nlc3NXQUxEYXRhTXNnKFBHY29ubiAq Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGludCBsZW4sCitzdGF0aWMg Ym9vbCBQcm9jZXNzV0FMRGF0YU1zZyhQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0s IGNoYXIgKmNvcHlidWYsIGludCBsZW4sCiAJCQkJCQkJICBYTG9nUmVjUHRyICpibG9ja3Bvcyk7 Ci1zdGF0aWMgUEdyZXN1bHQgKkhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpjb3B5YnVmLAorc3RhdGljIFBHcmVzdWx0ICpIYW5kbGVF bmRPZkNvcHlTdHJlYW0oUEdjb25uICpteWNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpj b3B5YnVmLAogCQkJCQkJCQkJICAgWExvZ1JlY1B0ciBibG9ja3BvcywgWExvZ1JlY1B0ciAqc3Rv cHBvcyk7Ci1zdGF0aWMgYm9vbCBDaGVja0NvcHlTdHJlYW1TdG9wKFBHY29ubiAqY29ubiwgU3Ry ZWFtQ3RsICpzdHJlYW0sIFhMb2dSZWNQdHIgYmxvY2twb3MpOworc3RhdGljIGJvb2wgQ2hlY2tD b3B5U3RyZWFtU3RvcChQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIFhMb2dSZWNQ dHIgYmxvY2twb3MpOwogc3RhdGljIGxvbmcgQ2FsY3VsYXRlQ29weVN0cmVhbVNsZWVwdGltZShU aW1lc3RhbXBUeiBub3csIGludCBzdGFuZGJ5X21lc3NhZ2VfdGltZW91dCwKIAkJCQkJCQkJCQkg VGltZXN0YW1wVHogbGFzdF9zdGF0dXMpOwogCkBAIC0zMzQsNyArMzM0LDcgQEAgd3JpdGVUaW1l TGluZUhpc3RvcnlGaWxlKFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpmaWxlbmFtZSwgY2hhciAq Y29udGVudCkKICAqIFNlbmQgYSBTdGFuZGJ5IFN0YXR1cyBVcGRhdGUgbWVzc2FnZSB0byBzZXJ2 ZXIuCiAgKi8KIHN0YXRpYyBib29sCi1zZW5kRmVlZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVj UHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBub3csIGJvb2wgcmVwbHlSZXF1ZXN0ZWQpCitzZW5k RmVlZGJhY2soUEdjb25uICpteWNvbm4sIFhMb2dSZWNQdHIgYmxvY2twb3MsIFRpbWVzdGFtcFR6 IG5vdywgYm9vbCByZXBseVJlcXVlc3RlZCkKIHsKIAljaGFyCQlyZXBseWJ1ZlsxICsgOCArIDgg KyA4ICsgOCArIDFdOwogCWludAkJCWxlbiA9IDA7CkBAIC0zNTUsMTAgKzM1NSwxMCBAQCBzZW5k RmVlZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVjUHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBu b3csIGJvb2wgcmVwbHlSZXF1ZQogCXJlcGx5YnVmW2xlbl0gPSByZXBseVJlcXVlc3RlZCA/IDEg OiAwOyAvKiByZXBseVJlcXVlc3RlZCAqLwogCWxlbiArPSAxOwogCi0JaWYgKFBRcHV0Q29weURh dGEoY29ubiwgcmVwbHlidWYsIGxlbikgPD0gMCB8fCBQUWZsdXNoKGNvbm4pKQorCWlmIChQUXB1 dENvcHlEYXRhKG15Y29ubiwgcmVwbHlidWYsIGxlbikgPD0gMCB8fCBQUWZsdXNoKG15Y29ubikp CiAJewogCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBzZW5kIGZlZWRiYWNrIHBhY2tldDogJXMi LAotCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkgUFFlcnJvck1lc3NhZ2UobXlj b25uKSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTM3Miw3ICszNzIsNyBAQCBzZW5kRmVl ZGJhY2soUEdjb25uICpjb25uLCBYTG9nUmVjUHRyIGJsb2NrcG9zLCBUaW1lc3RhbXBUeiBub3cs IGJvb2wgcmVwbHlSZXF1ZQogICogSWYgaXQncyBub3QsIGFuIGVycm9yIG1lc3NhZ2UgaXMgcHJp bnRlZCB0byBzdGRlcnIsIGFuZCBmYWxzZSBpcyByZXR1cm5lZC4KICAqLwogYm9vbAotQ2hlY2tT ZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKFBHY29ubiAqY29ubikKK0NoZWNrU2VydmVyVmVyc2lv bkZvclN0cmVhbWluZyhQR2Nvbm4gKm15Y29ubikKIHsKIAlpbnQJCQltaW5TZXJ2ZXJNYWpvciwK IAkJCQltYXhTZXJ2ZXJNYWpvcjsKQEAgLTM4NiwxMCArMzg2LDEwIEBAIENoZWNrU2VydmVyVmVy c2lvbkZvclN0cmVhbWluZyhQR2Nvbm4gKmNvbm4pCiAJICovCiAJbWluU2VydmVyTWFqb3IgPSA5 MDM7CiAJbWF4U2VydmVyTWFqb3IgPSBQR19WRVJTSU9OX05VTSAvIDEwMDsKLQlzZXJ2ZXJNYWpv ciA9IFBRc2VydmVyVmVyc2lvbihjb25uKSAvIDEwMDsKKwlzZXJ2ZXJNYWpvciA9IFBRc2VydmVy VmVyc2lvbihteWNvbm4pIC8gMTAwOwogCWlmIChzZXJ2ZXJNYWpvciA8IG1pblNlcnZlck1ham9y KQogCXsKLQkJY29uc3QgY2hhciAqc2VydmVydmVyID0gUFFwYXJhbWV0ZXJTdGF0dXMoY29ubiwg InNlcnZlcl92ZXJzaW9uIik7CisJCWNvbnN0IGNoYXIgKnNlcnZlcnZlciA9IFBRcGFyYW1ldGVy U3RhdHVzKG15Y29ubiwgInNlcnZlcl92ZXJzaW9uIik7CiAKIAkJcGdfbG9nX2Vycm9yKCJpbmNv bXBhdGlibGUgc2VydmVyIHZlcnNpb24gJXM7IGNsaWVudCBkb2VzIG5vdCBzdXBwb3J0IHN0cmVh bWluZyBmcm9tIHNlcnZlciB2ZXJzaW9ucyBvbGRlciB0aGFuICVzIiwKIAkJCQkJIHNlcnZlcnZl ciA/IHNlcnZlcnZlciA6ICIndW5rbm93biciLApAQCAtMzk4LDcgKzM5OCw3IEBAIENoZWNrU2Vy dmVyVmVyc2lvbkZvclN0cmVhbWluZyhQR2Nvbm4gKmNvbm4pCiAJfQogCWVsc2UgaWYgKHNlcnZl ck1ham9yID4gbWF4U2VydmVyTWFqb3IpCiAJewotCQljb25zdCBjaGFyICpzZXJ2ZXJ2ZXIgPSBQ UXBhcmFtZXRlclN0YXR1cyhjb25uLCAic2VydmVyX3ZlcnNpb24iKTsKKwkJY29uc3QgY2hhciAq c2VydmVydmVyID0gUFFwYXJhbWV0ZXJTdGF0dXMobXljb25uLCAic2VydmVyX3ZlcnNpb24iKTsK IAogCQlwZ19sb2dfZXJyb3IoImluY29tcGF0aWJsZSBzZXJ2ZXIgdmVyc2lvbiAlczsgY2xpZW50 IGRvZXMgbm90IHN1cHBvcnQgc3RyZWFtaW5nIGZyb20gc2VydmVyIHZlcnNpb25zIG5ld2VyIHRo YW4gJXMiLAogCQkJCQkgc2VydmVydmVyID8gc2VydmVydmVyIDogIid1bmtub3duJyIsCkBAIC00 NTAsNyArNDUwLDcgQEAgQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKFBHY29ubiAqY29u bikKICAqIE5vdGU6IFRoZSBXQUwgbG9jYXRpb24gKm11c3QqIGJlIGF0IGEgbG9nIHNlZ21lbnQg c3RhcnQhCiAgKi8KIGJvb2wKLVJlY2VpdmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFt Q3RsICpzdHJlYW0pCitSZWNlaXZlWGxvZ1N0cmVhbShQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3Rs ICpzdHJlYW0pCiB7CiAJY2hhcgkJcXVlcnlbMTI4XTsKIAljaGFyCQlzbG90Y21kWzEyOF07CkBA IC00NjEsNyArNDYxLDcgQEAgUmVjZWl2ZVhsb2dTdHJlYW0oUEdjb25uICpjb25uLCBTdHJlYW1D dGwgKnN0cmVhbSkKIAkgKiBUaGUgY2FsbGVyIHNob3VsZCd2ZSBjaGVja2VkIHRoZSBzZXJ2ZXIg dmVyc2lvbiBhbHJlYWR5LCBidXQgZG9lc24ndCBkbwogCSAqIGFueSBoYXJtIHRvIGNoZWNrIGl0 IGhlcmUgdG9vLgogCSAqLwotCWlmICghQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKGNv bm4pKQorCWlmICghQ2hlY2tTZXJ2ZXJWZXJzaW9uRm9yU3RyZWFtaW5nKG15Y29ubikpCiAJCXJl dHVybiBmYWxzZTsKIAogCS8qCkBAIC00OTcsNyArNDk3LDcgQEAgUmVjZWl2ZVhsb2dTdHJlYW0o UEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSkKIAkJLyoKIAkJICogR2V0IHRoZSBzZXJ2 ZXIgc3lzdGVtIGlkZW50aWZpZXIgYW5kIHRpbWVsaW5lLCBhbmQgdmFsaWRhdGUgdGhlbS4KIAkJ ICovCi0JCWlmICghUnVuSWRlbnRpZnlTeXN0ZW0oY29ubiwgJnN5c2lkZW50aWZpZXIsICZzZXJ2 ZXJ0bGksIE5VTEwsIE5VTEwpKQorCQlpZiAoIVJ1bklkZW50aWZ5U3lzdGVtKG15Y29ubiwgJnN5 c2lkZW50aWZpZXIsICZzZXJ2ZXJ0bGksIE5VTEwsIE5VTEwpKQogCQl7CiAJCQlwZ19mcmVlKHN5 c2lkZW50aWZpZXIpOwogCQkJcmV0dXJuIGZhbHNlOwpAQCAtNTM2LDcgKzUzNiw3IEBAIFJlY2Vp dmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0pCiAJCWlmICghZXhp c3RzVGltZUxpbmVIaXN0b3J5RmlsZShzdHJlYW0pKQogCQl7CiAJCQlzbnByaW50ZihxdWVyeSwg c2l6ZW9mKHF1ZXJ5KSwgIlRJTUVMSU5FX0hJU1RPUlkgJXUiLCBzdHJlYW0tPnRpbWVsaW5lKTsK LQkJCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeSk7CisJCQlyZXMgPSBQUWV4ZWMobXljb25uLCBx dWVyeSk7CiAJCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCiAJ CQl7CiAJCQkJLyogRklYTUU6IHdlIG1pZ2h0IHNlbmQgaXQgb2ssIGJ1dCBnZXQgYW4gZXJyb3Ig Ki8KQEAgLTU3Niw3ICs1NzYsNyBAQCBSZWNlaXZlWGxvZ1N0cmVhbShQR2Nvbm4gKmNvbm4sIFN0 cmVhbUN0bCAqc3RyZWFtKQogCQkJCSBzbG90Y21kLAogCQkJCSBMU05fRk9STUFUX0FSR1Moc3Ry ZWFtLT5zdGFydHBvcyksCiAJCQkJIHN0cmVhbS0+dGltZWxpbmUpOwotCQlyZXMgPSBQUWV4ZWMo Y29ubiwgcXVlcnkpOworCQlyZXMgPSBQUWV4ZWMobXljb25uLCBxdWVyeSk7CiAJCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPUFlfQk9USCkKIAkJewogCQkJcGdfbG9nX2Vycm9y KCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLApAQCAtNTg3 LDcgKzU4Nyw3IEBAIFJlY2VpdmVYbG9nU3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpz dHJlYW0pCiAJCVBRY2xlYXIocmVzKTsKIAogCQkvKiBTdHJlYW0gdGhlIFdBTCAqLwotCQlyZXMg PSBIYW5kbGVDb3B5U3RyZWFtKGNvbm4sIHN0cmVhbSwgJnN0b3Bwb3MpOworCQlyZXMgPSBIYW5k bGVDb3B5U3RyZWFtKG15Y29ubiwgc3RyZWFtLCAmc3RvcHBvcyk7CiAJCWlmIChyZXMgPT0gTlVM TCkKIAkJCWdvdG8gZXJyb3I7CiAKQEAgLTYzNiw3ICs2MzYsNyBAQCBSZWNlaXZlWGxvZ1N0cmVh bShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtKQogCQkJfQogCiAJCQkvKiBSZWFkIHRo ZSBmaW5hbCByZXN1bHQsIHdoaWNoIHNob3VsZCBiZSBDb21tYW5kQ29tcGxldGUuICovCi0JCQly ZXMgPSBQUWdldFJlc3VsdChjb25uKTsKKwkJCXJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7CiAJ CQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQogCQkJewogCQkJ CXBnX2xvZ19lcnJvcigidW5leHBlY3RlZCB0ZXJtaW5hdGlvbiBvZiByZXBsaWNhdGlvbiBzdHJl YW06ICVzIiwKQEAgLTc0Miw3ICs3NDIsNyBAQCBSZWFkRW5kT2ZTdHJlYW1pbmdSZXN1bHQoUEdy ZXN1bHQgKnJlcywgWExvZ1JlY1B0ciAqc3RhcnRwb3MsIHVpbnQzMiAqdGltZWxpbmUpCiAgKiBP biBhbnkgb3RoZXIgc29ydCBvZiBlcnJvciwgcmV0dXJucyBOVUxMLgogICovCiBzdGF0aWMgUEdy ZXN1bHQgKgotSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFt LAorSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKm15Y29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sCiAJ CQkJIFhMb2dSZWNQdHIgKnN0b3Bwb3MpCiB7CiAJY2hhcgkgICAqY29weWJ1ZiA9IE5VTEw7CkBA IC03NjAsNyArNzYwLDcgQEAgSGFuZGxlQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0 bCAqc3RyZWFtLAogCQkvKgogCQkgKiBDaGVjayBpZiB3ZSBzaG91bGQgY29udGludWUgc3RyZWFt aW5nLCBvciBhYm9ydCBhdCB0aGlzIHBvaW50LgogCQkgKi8KLQkJaWYgKCFDaGVja0NvcHlTdHJl YW1TdG9wKGNvbm4sIHN0cmVhbSwgYmxvY2twb3MpKQorCQlpZiAoIUNoZWNrQ29weVN0cmVhbVN0 b3AobXljb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKIAkJCWdvdG8gZXJyb3I7CiAKIAkJbm93ID0g ZmVHZXRDdXJyZW50VGltZXN0YW1wKCk7CkBAIC03ODAsNyArNzgwLDcgQEAgSGFuZGxlQ29weVN0 cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLAogCQkJICogU2VuZCBmZWVkYmFj ayBzbyB0aGF0IHRoZSBzZXJ2ZXIgc2VlcyB0aGUgbGF0ZXN0IFdBTCBsb2NhdGlvbnMKIAkJCSAq IGltbWVkaWF0ZWx5LgogCQkJICovCi0JCQlpZiAoIXNlbmRGZWVkYmFjayhjb25uLCBibG9ja3Bv cywgbm93LCBmYWxzZSkpCisJCQlpZiAoIXNlbmRGZWVkYmFjayhteWNvbm4sIGJsb2NrcG9zLCBu b3csIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yOwogCQkJbGFzdF9zdGF0dXMgPSBub3c7CiAJCX0K QEAgLTc5Myw3ICs3OTMsNyBAQCBIYW5kbGVDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFt Q3RsICpzdHJlYW0sCiAJCQkJCQkJCQkJIHN0cmVhbS0+c3RhbmRieV9tZXNzYWdlX3RpbWVvdXQp KQogCQl7CiAJCQkvKiBUaW1lIHRvIHNlbmQgZmVlZGJhY2shICovCi0JCQlpZiAoIXNlbmRGZWVk YmFjayhjb25uLCBibG9ja3Bvcywgbm93LCBmYWxzZSkpCisJCQlpZiAoIXNlbmRGZWVkYmFjayht eWNvbm4sIGJsb2NrcG9zLCBub3csIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yOwogCQkJbGFzdF9z dGF0dXMgPSBub3c7CiAJCX0KQEAgLTgwOCwxNCArODA4LDE0IEBAIEhhbmRsZUNvcHlTdHJlYW0o UEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwKIAkJUFFmcmVlbWVtKGNvcHlidWYpOwog CQljb3B5YnVmID0gTlVMTDsKIAotCQlyID0gQ29weVN0cmVhbVJlY2VpdmUoY29ubiwgc2xlZXB0 aW1lLCBzdHJlYW0tPnN0b3Bfc29ja2V0LCAmY29weWJ1Zik7CisJCXIgPSBDb3B5U3RyZWFtUmVj ZWl2ZShteWNvbm4sIHNsZWVwdGltZSwgc3RyZWFtLT5zdG9wX3NvY2tldCwgJmNvcHlidWYpOwog CQl3aGlsZSAociAhPSAwKQogCQl7CiAJCQlpZiAociA9PSAtMSkKIAkJCQlnb3RvIGVycm9yOwog CQkJaWYgKHIgPT0gLTIpCiAJCQl7Ci0JCQkJUEdyZXN1bHQgICAqcmVzID0gSGFuZGxlRW5kT2ZD b3B5U3RyZWFtKGNvbm4sIHN0cmVhbSwgY29weWJ1ZiwgYmxvY2twb3MsIHN0b3Bwb3MpOworCQkJ CVBHcmVzdWx0ICAgKnJlcyA9IEhhbmRsZUVuZE9mQ29weVN0cmVhbShteWNvbm4sIHN0cmVhbSwg Y29weWJ1ZiwgYmxvY2twb3MsIHN0b3Bwb3MpOwogCiAJCQkJaWYgKHJlcyA9PSBOVUxMKQogCQkJ CQlnb3RvIGVycm9yOwpAQCAtODI2LDIwICs4MjYsMjAgQEAgSGFuZGxlQ29weVN0cmVhbShQR2Nv bm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLAogCQkJLyogQ2hlY2sgdGhlIG1lc3NhZ2UgdHlw ZS4gKi8KIAkJCWlmIChjb3B5YnVmWzBdID09IFBxUmVwbE1zZ19LZWVwYWxpdmUpCiAJCQl7Ci0J CQkJaWYgKCFQcm9jZXNzS2VlcGFsaXZlTXNnKGNvbm4sIHN0cmVhbSwgY29weWJ1ZiwgciwgYmxv Y2twb3MsCisJCQkJaWYgKCFQcm9jZXNzS2VlcGFsaXZlTXNnKG15Y29ubiwgc3RyZWFtLCBjb3B5 YnVmLCByLCBibG9ja3BvcywKIAkJCQkJCQkJCQkgJmxhc3Rfc3RhdHVzKSkKIAkJCQkJZ290byBl cnJvcjsKIAkJCX0KIAkJCWVsc2UgaWYgKGNvcHlidWZbMF0gPT0gUHFSZXBsTXNnX1dBTERhdGEp CiAJCQl7Ci0JCQkJaWYgKCFQcm9jZXNzV0FMRGF0YU1zZyhjb25uLCBzdHJlYW0sIGNvcHlidWYs IHIsICZibG9ja3BvcykpCisJCQkJaWYgKCFQcm9jZXNzV0FMRGF0YU1zZyhteWNvbm4sIHN0cmVh bSwgY29weWJ1ZiwgciwgJmJsb2NrcG9zKSkKIAkJCQkJZ290byBlcnJvcjsKIAogCQkJCS8qCiAJ CQkJICogQ2hlY2sgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHN0cmVhbWluZywgb3IgYWJvcnQgYXQg dGhpcwogCQkJCSAqIHBvaW50LgogCQkJCSAqLwotCQkJCWlmICghQ2hlY2tDb3B5U3RyZWFtU3Rv cChjb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKKwkJCQlpZiAoIUNoZWNrQ29weVN0cmVhbVN0b3Ao bXljb25uLCBzdHJlYW0sIGJsb2NrcG9zKSkKIAkJCQkJZ290byBlcnJvcjsKIAkJCX0KIAkJCWVs c2UKQEAgLTg1Nyw3ICs4NTcsNyBAQCBIYW5kbGVDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3Ry ZWFtQ3RsICpzdHJlYW0sCiAJCQkgKiBQcm9jZXNzIHRoZSByZWNlaXZlZCBkYXRhLCBhbmQgYW55 IHN1YnNlcXVlbnQgZGF0YSB3ZSBjYW4gcmVhZAogCQkJICogd2l0aG91dCBibG9ja2luZy4KIAkJ CSAqLwotCQkJciA9IENvcHlTdHJlYW1SZWNlaXZlKGNvbm4sIDAsIHN0cmVhbS0+c3RvcF9zb2Nr ZXQsICZjb3B5YnVmKTsKKwkJCXIgPSBDb3B5U3RyZWFtUmVjZWl2ZShteWNvbm4sIDAsIHN0cmVh bS0+c3RvcF9zb2NrZXQsICZjb3B5YnVmKTsKIAkJfQogCX0KIApAQCAtODc1LDcgKzg3NSw3IEBA IGVycm9yOgogICogb3IgaW50ZXJydXB0ZWQgYnkgc2lnbmFsIG9yIHN0b3Bfc29ja2V0IGlucHV0 LCBhbmQgLTEgb24gYW4gZXJyb3IuCiAgKi8KIHN0YXRpYyBpbnQKLUNvcHlTdHJlYW1Qb2xsKFBH Y29ubiAqY29ubiwgbG9uZyB0aW1lb3V0X21zLCBwZ3NvY2tldCBzdG9wX3NvY2tldCkKK0NvcHlT dHJlYW1Qb2xsKFBHY29ubiAqbXljb25uLCBsb25nIHRpbWVvdXRfbXMsIHBnc29ja2V0IHN0b3Bf c29ja2V0KQogewogCWludAkJCXJldDsKIAlmZF9zZXQJCWlucHV0X21hc2s7CkBAIC04ODQsMTAg Kzg4NCwxMCBAQCBDb3B5U3RyZWFtUG9sbChQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91dF9tcywg cGdzb2NrZXQgc3RvcF9zb2NrZXQpCiAJc3RydWN0IHRpbWV2YWwgdGltZW91dDsKIAlzdHJ1Y3Qg dGltZXZhbCAqdGltZW91dHB0cjsKIAotCWNvbm5zb2NrZXQgPSBQUXNvY2tldChjb25uKTsKKwlj b25uc29ja2V0ID0gUFFzb2NrZXQobXljb25uKTsKIAlpZiAoY29ubnNvY2tldCA8IDApCiAJewot CQlwZ19sb2dfZXJyb3IoImludmFsaWQgc29ja2V0OiAlcyIsIFBRZXJyb3JNZXNzYWdlKGNvbm4p KTsKKwkJcGdfbG9nX2Vycm9yKCJpbnZhbGlkIHNvY2tldDogJXMiLCBQUWVycm9yTWVzc2FnZSht eWNvbm4pKTsKIAkJcmV0dXJuIC0xOwogCX0KIApAQCAtOTM3LDcgKzkzNyw3IEBAIENvcHlTdHJl YW1Qb2xsKFBHY29ubiAqY29ubiwgbG9uZyB0aW1lb3V0X21zLCBwZ3NvY2tldCBzdG9wX3NvY2tl dCkKICAqIC0xIG9uIGVycm9yLiAtMiBpZiB0aGUgc2VydmVyIGVuZGVkIHRoZSBDT1BZLgogICov CiBzdGF0aWMgaW50Ci1Db3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91 dCwgcGdzb2NrZXQgc3RvcF9zb2NrZXQsCitDb3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKm15Y29u biwgbG9uZyB0aW1lb3V0LCBwZ3NvY2tldCBzdG9wX3NvY2tldCwKIAkJCQkgIGNoYXIgKipidWZm ZXIpCiB7CiAJY2hhcgkgICAqY29weWJ1ZiA9IE5VTEw7CkBAIC05NDcsNyArOTQ3LDcgQEAgQ29w eVN0cmVhbVJlY2VpdmUoUEdjb25uICpjb25uLCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bf c29ja2V0LAogCUFzc2VydCgqYnVmZmVyID09IE5VTEwpOwogCiAJLyogVHJ5IHRvIHJlY2VpdmUg YSBDb3B5RGF0YSBtZXNzYWdlICovCi0JcmF3bGVuID0gUFFnZXRDb3B5RGF0YShjb25uLCAmY29w eWJ1ZiwgMSk7CisJcmF3bGVuID0gUFFnZXRDb3B5RGF0YShteWNvbm4sICZjb3B5YnVmLCAxKTsK IAlpZiAocmF3bGVuID09IDApCiAJewogCQlpbnQJCQlyZXQ7CkBAIC05NTcsMjAgKzk1NywyMCBA QCBDb3B5U3RyZWFtUmVjZWl2ZShQR2Nvbm4gKmNvbm4sIGxvbmcgdGltZW91dCwgcGdzb2NrZXQg c3RvcF9zb2NrZXQsCiAJCSAqIHRoZSBzcGVjaWZpZWQgdGltZW91dCwgc28gdGhhdCB3ZSBjYW4g cGluZyB0aGUgc2VydmVyLiAgQWxzbyBzdG9wCiAJCSAqIHdhaXRpbmcgaWYgaW5wdXQgYXBwZWFy cyBvbiBzdG9wX3NvY2tldC4KIAkJICovCi0JCXJldCA9IENvcHlTdHJlYW1Qb2xsKGNvbm4sIHRp bWVvdXQsIHN0b3Bfc29ja2V0KTsKKwkJcmV0ID0gQ29weVN0cmVhbVBvbGwobXljb25uLCB0aW1l b3V0LCBzdG9wX3NvY2tldCk7CiAJCWlmIChyZXQgPD0gMCkKIAkJCXJldHVybiByZXQ7CiAKIAkJ LyogTm93IHRoZXJlIGlzIGFjdHVhbGx5IGRhdGEgb24gdGhlIHNvY2tldCAqLwotCQlpZiAoUFFj b25zdW1lSW5wdXQoY29ubikgPT0gMCkKKwkJaWYgKFBRY29uc3VtZUlucHV0KG15Y29ubikgPT0g MCkKIAkJewogCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgcmVjZWl2ZSBkYXRhIGZyb20gV0FM IHN0cmVhbTogJXMiLAotCQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJCQkJCSBQUWVy cm9yTWVzc2FnZShteWNvbm4pKTsKIAkJCXJldHVybiAtMTsKIAkJfQogCiAJCS8qIE5vdyB0aGF0 IHdlJ3ZlIGNvbnN1bWVkIHNvbWUgaW5wdXQsIHRyeSBhZ2FpbiAqLwotCQlyYXdsZW4gPSBQUWdl dENvcHlEYXRhKGNvbm4sICZjb3B5YnVmLCAxKTsKKwkJcmF3bGVuID0gUFFnZXRDb3B5RGF0YSht eWNvbm4sICZjb3B5YnVmLCAxKTsKIAkJaWYgKHJhd2xlbiA9PSAwKQogCQkJcmV0dXJuIDA7CiAJ fQpAQCAtOTc4LDcgKzk3OCw3IEBAIENvcHlTdHJlYW1SZWNlaXZlKFBHY29ubiAqY29ubiwgbG9u ZyB0aW1lb3V0LCBwZ3NvY2tldCBzdG9wX3NvY2tldCwKIAkJcmV0dXJuIC0yOwogCWlmIChyYXds ZW4gPT0gLTIpCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCByZWFkIENPUFkgZGF0YTog JXMiLCBQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHJl YWQgQ09QWSBkYXRhOiAlcyIsIFBRZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCQlyZXR1cm4gLTE7 CiAJfQogCkBAIC05OTEsNyArOTkxLDcgQEAgQ29weVN0cmVhbVJlY2VpdmUoUEdjb25uICpjb25u LCBsb25nIHRpbWVvdXQsIHBnc29ja2V0IHN0b3Bfc29ja2V0LAogICogUHJvY2VzcyB0aGUga2Vl cGFsaXZlIG1lc3NhZ2UuCiAgKi8KIHN0YXRpYyBib29sCi1Qcm9jZXNzS2VlcGFsaXZlTXNnKFBH Y29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGludCBsZW4sCitQ cm9jZXNzS2VlcGFsaXZlTXNnKFBHY29ubiAqbXljb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hh ciAqY29weWJ1ZiwgaW50IGxlbiwKIAkJCQkJWExvZ1JlY1B0ciBibG9ja3BvcywgVGltZXN0YW1w VHogKmxhc3Rfc3RhdHVzKQogewogCWludAkJCXBvczsKQEAgLTEwMzMsNyArMTAzMyw3IEBAIFBy b2Nlc3NLZWVwYWxpdmVNc2coUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAq Y29weWJ1ZiwgaW50IGxlbiwKIAkJfQogCiAJCW5vdyA9IGZlR2V0Q3VycmVudFRpbWVzdGFtcCgp OwotCQlpZiAoIXNlbmRGZWVkYmFjayhjb25uLCBibG9ja3Bvcywgbm93LCBmYWxzZSkpCisJCWlm ICghc2VuZEZlZWRiYWNrKG15Y29ubiwgYmxvY2twb3MsIG5vdywgZmFsc2UpKQogCQkJcmV0dXJu IGZhbHNlOwogCQkqbGFzdF9zdGF0dXMgPSBub3c7CiAJfQpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAg UHJvY2Vzc0tlZXBhbGl2ZU1zZyhQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFy ICpjb3B5YnVmLCBpbnQgbGVuLAogICogUHJvY2VzcyBXQUxEYXRhIG1lc3NhZ2UuCiAgKi8KIHN0 YXRpYyBib29sCi1Qcm9jZXNzV0FMRGF0YU1zZyhQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3Ry ZWFtLCBjaGFyICpjb3B5YnVmLCBpbnQgbGVuLAorUHJvY2Vzc1dBTERhdGFNc2coUEdjb25uICpt eWNvbm4sIFN0cmVhbUN0bCAqc3RyZWFtLCBjaGFyICpjb3B5YnVmLCBpbnQgbGVuLAogCQkJCSAg WExvZ1JlY1B0ciAqYmxvY2twb3MpCiB7CiAJaW50CQkJeGxvZ29mZjsKQEAgLTExNTYsMTAgKzEx NTYsMTAgQEAgUHJvY2Vzc1dBTERhdGFNc2coUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVh bSwgY2hhciAqY29weWJ1ZiwgaW50IGxlbiwKIAogCQkJaWYgKHN0aWxsX3NlbmRpbmcgJiYgc3Ry ZWFtLT5zdHJlYW1fc3RvcCgqYmxvY2twb3MsIHN0cmVhbS0+dGltZWxpbmUsIHRydWUpKQogCQkJ ewotCQkJCWlmIChQUXB1dENvcHlFbmQoY29ubiwgTlVMTCkgPD0gMCB8fCBQUWZsdXNoKGNvbm4p KQorCQkJCWlmIChQUXB1dENvcHlFbmQobXljb25uLCBOVUxMKSA8PSAwIHx8IFBRZmx1c2gobXlj b25uKSkKIAkJCQl7CiAJCQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNlbmQgY29weS1lbmQg cGFja2V0OiAlcyIsCi0JCQkJCQkJCSBQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCQkJCQkJCSBQ UWVycm9yTWVzc2FnZShteWNvbm4pKTsKIAkJCQkJcmV0dXJuIGZhbHNlOwogCQkJCX0KIAkJCQlz dGlsbF9zZW5kaW5nID0gZmFsc2U7CkBAIC0xMTc2LDEwICsxMTc2LDEwIEBAIFByb2Nlc3NXQUxE YXRhTXNnKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHlidWYsIGlu dCBsZW4sCiAgKiBIYW5kbGUgZW5kIG9mIHRoZSBjb3B5IHN0cmVhbS4KICAqLwogc3RhdGljIFBH cmVzdWx0ICoKLUhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAq c3RyZWFtLCBjaGFyICpjb3B5YnVmLAorSGFuZGxlRW5kT2ZDb3B5U3RyZWFtKFBHY29ubiAqbXlj b25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgY2hhciAqY29weWJ1ZiwKIAkJCQkJICBYTG9nUmVjUHRy IGJsb2NrcG9zLCBYTG9nUmVjUHRyICpzdG9wcG9zKQogewotCVBHcmVzdWx0ICAgKnJlcyA9IFBR Z2V0UmVzdWx0KGNvbm4pOworCVBHcmVzdWx0ICAgKnJlcyA9IFBRZ2V0UmVzdWx0KG15Y29ubik7 CiAKIAkvKgogCSAqIFRoZSBzZXJ2ZXIgY2xvc2VkIGl0cyBlbmQgb2YgdGhlIGNvcHkgc3RyZWFt LiAgSWYgd2UgaGF2ZW4ndCBjbG9zZWQKQEAgLTExOTYsMTQgKzExOTYsMTQgQEAgSGFuZGxlRW5k T2ZDb3B5U3RyZWFtKFBHY29ubiAqY29ubiwgU3RyZWFtQ3RsICpzdHJlYW0sIGNoYXIgKmNvcHli dWYsCiAJCX0KIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNfQ09QWV9JTikKIAkJ ewotCQkJaWYgKFBRcHV0Q29weUVuZChjb25uLCBOVUxMKSA8PSAwIHx8IFBRZmx1c2goY29ubikp CisJCQlpZiAoUFFwdXRDb3B5RW5kKG15Y29ubiwgTlVMTCkgPD0gMCB8fCBQUWZsdXNoKG15Y29u bikpCiAJCQl7CiAJCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCBjb3B5LWVuZCBwYWNr ZXQ6ICVzIiwKLQkJCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkJCSBQUWVycm9y TWVzc2FnZShteWNvbm4pKTsKIAkJCQlQUWNsZWFyKHJlcyk7CiAJCQkJcmV0dXJuIE5VTEw7CiAJ CQl9Ci0JCQlyZXMgPSBQUWdldFJlc3VsdChjb25uKTsKKwkJCXJlcyA9IFBRZ2V0UmVzdWx0KG15 Y29ubik7CiAJCX0KIAkJc3RpbGxfc2VuZGluZyA9IGZhbHNlOwogCX0KQEAgLTEyMTUsNyArMTIx NSw3IEBAIEhhbmRsZUVuZE9mQ29weVN0cmVhbShQR2Nvbm4gKmNvbm4sIFN0cmVhbUN0bCAqc3Ry ZWFtLCBjaGFyICpjb3B5YnVmLAogICogQ2hlY2sgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHN0cmVh bWluZywgb3IgYWJvcnQgYXQgdGhpcyBwb2ludC4KICAqLwogc3RhdGljIGJvb2wKLUNoZWNrQ29w eVN0cmVhbVN0b3AoUEdjb25uICpjb25uLCBTdHJlYW1DdGwgKnN0cmVhbSwgWExvZ1JlY1B0ciBi bG9ja3BvcykKK0NoZWNrQ29weVN0cmVhbVN0b3AoUEdjb25uICpteWNvbm4sIFN0cmVhbUN0bCAq c3RyZWFtLCBYTG9nUmVjUHRyIGJsb2NrcG9zKQogewogCWlmIChzdGlsbF9zZW5kaW5nICYmIHN0 cmVhbS0+c3RyZWFtX3N0b3AoYmxvY2twb3MsIHN0cmVhbS0+dGltZWxpbmUsIGZhbHNlKSkKIAl7 CkBAIC0xMjI0LDEwICsxMjI0LDEwIEBAIENoZWNrQ29weVN0cmVhbVN0b3AoUEdjb25uICpjb25u LCBTdHJlYW1DdGwgKnN0cmVhbSwgWExvZ1JlY1B0ciBibG9ja3BvcykKIAkJCS8qIFBvdGVudGlh bCBlcnJvciBtZXNzYWdlIGlzIHdyaXR0ZW4gYnkgY2xvc2Vfd2FsZmlsZSAqLwogCQkJcmV0dXJu IGZhbHNlOwogCQl9Ci0JCWlmIChQUXB1dENvcHlFbmQoY29ubiwgTlVMTCkgPD0gMCB8fCBQUWZs dXNoKGNvbm4pKQorCQlpZiAoUFFwdXRDb3B5RW5kKG15Y29ubiwgTlVMTCkgPD0gMCB8fCBQUWZs dXNoKG15Y29ubikpCiAJCXsKIAkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNlbmQgY29weS1l bmQgcGFja2V0OiAlcyIsCi0JCQkJCQkgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkJIFBR ZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJCXN0aWxsX3Nl bmRpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9zdHJlYW11 dGlsLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jCmluZGV4IGU1YTdjYjZl NWIxLi4zNDJhZDJjYmQ0ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3N0cmVh bXV0aWwuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvc3RyZWFtdXRpbC5jCkBAIC0zMSw3 ICszMSw3IEBACiAKIGludAkJCVdhbFNlZ1N6OwogCi1zdGF0aWMgYm9vbCBSZXRyaWV2ZURhdGFE aXJDcmVhdGVQZXJtKFBHY29ubiAqY29ubik7CitzdGF0aWMgYm9vbCBSZXRyaWV2ZURhdGFEaXJD cmVhdGVQZXJtKFBHY29ubiAqbXljb25uKTsKIAogLyogU0hPVyBjb21tYW5kIGZvciByZXBsaWNh dGlvbiBjb25uZWN0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gMTAgKi8KICNkZWZpbmUg TUlOSU1VTV9WRVJTSU9OX0ZPUl9TSE9XX0NNRCAxMDAwMDAKQEAgLTI3Myw3ICsyNzMsNyBAQCBH ZXRDb25uZWN0aW9uKHZvaWQpCiAgKiBzaW5jZSBDb250cm9sRmlsZSBpcyBub3QgYWNjZXNzaWJs ZSBoZXJlLgogICovCiBib29sCi1SZXRyaWV2ZVdhbFNlZ1NpemUoUEdjb25uICpjb25uKQorUmV0 cmlldmVXYWxTZWdTaXplKFBHY29ubiAqbXljb25uKQogewogCVBHcmVzdWx0ICAgKnJlczsKIAlj aGFyCQl4bG9nX3VuaXRbM107CkBAIC0yODEsMjAgKzI4MSwyMCBAQCBSZXRyaWV2ZVdhbFNlZ1Np emUoUEdjb25uICpjb25uKQogCQkJCW11bHRpcGxpZXIgPSAxOwogCiAJLyogY2hlY2sgY29ubmVj dGlvbiBleGlzdGVuY2UgKi8KLQlBc3NlcnQoY29ubiAhPSBOVUxMKTsKKwlBc3NlcnQobXljb25u ICE9IE5VTEwpOwogCiAJLyogZm9yIHByZXZpb3VzIHZlcnNpb25zIHNldCB0aGUgZGVmYXVsdCB4 bG9nIHNlZyBzaXplICovCi0JaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA8IE1JTklNVU1fVkVS U0lPTl9GT1JfU0hPV19DTUQpCisJaWYgKFBRc2VydmVyVmVyc2lvbihteWNvbm4pIDwgTUlOSU1V TV9WRVJTSU9OX0ZPUl9TSE9XX0NNRCkKIAl7CiAJCVdhbFNlZ1N6ID0gREVGQVVMVF9YTE9HX1NF R19TSVpFOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKLQlyZXMgPSBQUWV4ZWMoY29ubiwgIlNIT1cg d2FsX3NlZ21lbnRfc2l6ZSIpOworCXJlcyA9IFBRZXhlYyhteWNvbm4sICJTSE9XIHdhbF9zZWdt ZW50X3NpemUiKTsKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0sp CiAJewogCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBzZW5kIHJlcGxpY2F0aW9uIGNvbW1hbmQg XCIlc1wiOiAlcyIsCi0JCQkJCSAiU0hPVyB3YWxfc2VnbWVudF9zaXplIiwgUFFlcnJvck1lc3Nh Z2UoY29ubikpOworCQkJCQkgIlNIT1cgd2FsX3NlZ21lbnRfc2l6ZSIsIFBRZXJyb3JNZXNzYWdl KG15Y29ubikpOwogCiAJCVBRY2xlYXIocmVzKTsKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMzUyLDIz ICszNTIsMjMgQEAgUmV0cmlldmVXYWxTZWdTaXplKFBHY29ubiAqY29ubikKICAqIG9uIHRoZSBk YXRhIGRpcmVjdG9yeS4KICAqLwogc3RhdGljIGJvb2wKLVJldHJpZXZlRGF0YURpckNyZWF0ZVBl cm0oUEdjb25uICpjb25uKQorUmV0cmlldmVEYXRhRGlyQ3JlYXRlUGVybShQR2Nvbm4gKm15Y29u bikKIHsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJaW50CQkJZGF0YV9kaXJlY3RvcnlfbW9kZTsKIAog CS8qIGNoZWNrIGNvbm5lY3Rpb24gZXhpc3RlbmNlICovCi0JQXNzZXJ0KGNvbm4gIT0gTlVMTCk7 CisJQXNzZXJ0KG15Y29ubiAhPSBOVUxMKTsKIAogCS8qIGZvciBwcmV2aW91cyB2ZXJzaW9ucyBs ZWF2ZSB0aGUgZGVmYXVsdCBncm91cCBhY2Nlc3MgKi8KLQlpZiAoUFFzZXJ2ZXJWZXJzaW9uKGNv bm4pIDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9HUk9VUF9BQ0NFU1MpCisJaWYgKFBRc2VydmVyVmVy c2lvbihteWNvbm4pIDwgTUlOSU1VTV9WRVJTSU9OX0ZPUl9HUk9VUF9BQ0NFU1MpCiAJCXJldHVy biB0cnVlOwogCi0JcmVzID0gUFFleGVjKGNvbm4sICJTSE9XIGRhdGFfZGlyZWN0b3J5X21vZGUi KTsKKwlyZXMgPSBQUWV4ZWMobXljb25uLCAiU0hPVyBkYXRhX2RpcmVjdG9yeV9tb2RlIik7CiAJ aWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKIAkJcGdfbG9n X2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLAot CQkJCQkgIlNIT1cgZGF0YV9kaXJlY3RvcnlfbW9kZSIsIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsK KwkJCQkJICJTSE9XIGRhdGFfZGlyZWN0b3J5X21vZGUiLCBQUWVycm9yTWVzc2FnZShteWNvbm4p KTsKIAogCQlQUWNsZWFyKHJlcyk7CiAJCXJldHVybiBmYWxzZTsKQEAgLTQwNiw3ICs0MDYsNyBA QCBSZXRyaWV2ZURhdGFEaXJDcmVhdGVQZXJtKFBHY29ubiAqY29ubikKICAqIC0gRGF0YWJhc2Ug bmFtZSAoTlVMTCBpbiBzZXJ2ZXJzIHByaW9yIHRvIDkuNCkKICAqLwogYm9vbAotUnVuSWRlbnRp ZnlTeXN0ZW0oUEdjb25uICpjb25uLCBjaGFyICoqc3lzaWQsIFRpbWVMaW5lSUQgKnN0YXJ0dGxp LAorUnVuSWRlbnRpZnlTeXN0ZW0oUEdjb25uICpteWNvbm4sIGNoYXIgKipzeXNpZCwgVGltZUxp bmVJRCAqc3RhcnR0bGksCiAJCQkJICBYTG9nUmVjUHRyICpzdGFydHBvcywgY2hhciAqKmRiX25h bWUpCiB7CiAJUEdyZXN1bHQgICAqcmVzOwpAQCAtNDE0LDEzICs0MTQsMTMgQEAgUnVuSWRlbnRp ZnlTeXN0ZW0oUEdjb25uICpjb25uLCBjaGFyICoqc3lzaWQsIFRpbWVMaW5lSUQgKnN0YXJ0dGxp LAogCQkJCWxvOwogCiAJLyogQ2hlY2sgY29ubmVjdGlvbiBleGlzdGVuY2UgKi8KLQlBc3NlcnQo Y29ubiAhPSBOVUxMKTsKKwlBc3NlcnQobXljb25uICE9IE5VTEwpOwogCi0JcmVzID0gUFFleGVj KGNvbm4sICJJREVOVElGWV9TWVNURU0iKTsKKwlyZXMgPSBQUWV4ZWMobXljb25uLCAiSURFTlRJ RllfU1lTVEVNIik7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09L KQogCXsKIAkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5k IFwiJXNcIjogJXMiLAotCQkJCQkgIklERU5USUZZX1NZU1RFTSIsIFBRZXJyb3JNZXNzYWdlKGNv bm4pKTsKKwkJCQkJICJJREVOVElGWV9TWVNURU0iLCBQUWVycm9yTWVzc2FnZShteWNvbm4pKTsK IAogCQlQUWNsZWFyKHJlcyk7CiAJCXJldHVybiBmYWxzZTsKQEAgLTQ2MCw3ICs0NjAsNyBAQCBS dW5JZGVudGlmeVN5c3RlbShQR2Nvbm4gKmNvbm4sIGNoYXIgKipzeXNpZCwgVGltZUxpbmVJRCAq c3RhcnR0bGksCiAJaWYgKGRiX25hbWUgIT0gTlVMTCkKIAl7CiAJCSpkYl9uYW1lID0gTlVMTDsK LQkJaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA+PSA5MDQwMCkKKwkJaWYgKFBRc2VydmVyVmVy c2lvbihteWNvbm4pID49IDkwNDAwKQogCQl7CiAJCQlpZiAoUFFuZmllbGRzKHJlcykgPCA0KQog CQkJewpAQCAtNDg3LDcgKzQ4Nyw3IEBAIFJ1bklkZW50aWZ5U3lzdGVtKFBHY29ubiAqY29ubiwg Y2hhciAqKnN5c2lkLCBUaW1lTGluZUlEICpzdGFydHRsaSwKICAqIFJldHVybnMgZmFsc2Ugb24g ZmFpbHVyZSwgYW5kIHRydWUgb3RoZXJ3aXNlLgogICovCiBib29sCi1HZXRTbG90SW5mb3JtYXRp b24oUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90X25hbWUsCitHZXRTbG90SW5mb3JtYXRp b24oUEdjb25uICpteWNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwKIAkJCQkgICBYTG9nUmVj UHRyICpyZXN0YXJ0X2xzbiwgVGltZUxpbmVJRCAqcmVzdGFydF90bGkpCiB7CiAJUEdyZXN1bHQg ICAqcmVzOwpAQCAtNTAyLDEzICs1MDIsMTMgQEAgR2V0U2xvdEluZm9ybWF0aW9uKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLAogCiAJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZl cigpOwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiUkVBRF9SRVBMSUNBVElPTl9TTE9UICVz Iiwgc2xvdF9uYW1lKTsKLQlyZXMgPSBQUWV4ZWMoY29ubiwgcXVlcnktPmRhdGEpOworCXJlcyA9 IFBRZXhlYyhteWNvbm4sIHF1ZXJ5LT5kYXRhKTsKIAlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkp OwogCiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKIAkJ cGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCByZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjog JXMiLAotCQkJCQkgIlJFQURfUkVQTElDQVRJT05fU0xPVCIsIFBRZXJyb3JNZXNzYWdlKGNvbm4p KTsKKwkJCQkJICJSRUFEX1JFUExJQ0FUSU9OX1NMT1QiLCBQUWVycm9yTWVzc2FnZShteWNvbm4p KTsKIAkJUFFjbGVhcihyZXMpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtNTgxLDEzICs1ODEs MTMgQEAgR2V0U2xvdEluZm9ybWF0aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9u YW1lLAogICogcmV0dXJucyB0cnVlIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KICAqLwogYm9vbAotQ3Jl YXRlUmVwbGljYXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLCBj b25zdCBjaGFyICpwbHVnaW4sCitDcmVhdGVSZXBsaWNhdGlvblNsb3QoUEdjb25uICpteWNvbm4s IGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogCQkJCQkgIGJvb2wg aXNfdGVtcG9yYXJ5LCBib29sIGlzX3BoeXNpY2FsLCBib29sIHJlc2VydmVfd2FsLAogCQkJCQkg IGJvb2wgc2xvdF9leGlzdHNfb2ssIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVyKQogewog CVBRRXhwQnVmZmVyIHF1ZXJ5OwogCVBHcmVzdWx0ICAgKnJlczsKLQlib29sCQl1c2VfbmV3X29w dGlvbl9zeW50YXggPSAoUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE1MDAwMCk7CisJYm9vbAkJ dXNlX25ld19vcHRpb25fc3ludGF4ID0gKFBRc2VydmVyVmVyc2lvbihteWNvbm4pID49IDE1MDAw MCk7CiAKIAlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAKQEAgLTYxNywxNSArNjE3LDE1 IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3Rf bmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogCX0KIAllbHNlCiAJewotCQlpZiAoZmFpbG92ZXIg JiYgUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE3MDAwMCkKKwkJaWYgKGZhaWxvdmVyICYmIFBR c2VydmVyVmVyc2lvbihteWNvbm4pID49IDE3MDAwMCkKIAkJCUFwcGVuZFBsYWluQ29tbWFuZE9w dGlvbihxdWVyeSwgdXNlX25ld19vcHRpb25fc3ludGF4LAogCQkJCQkJCQkJICJGQUlMT1ZFUiIp OwogCi0JCWlmICh0d29fcGhhc2UgJiYgUFFzZXJ2ZXJWZXJzaW9uKGNvbm4pID49IDE1MDAwMCkK KwkJaWYgKHR3b19waGFzZSAmJiBQUXNlcnZlclZlcnNpb24obXljb25uKSA+PSAxNTAwMDApCiAJ CQlBcHBlbmRQbGFpbkNvbW1hbmRPcHRpb24ocXVlcnksIHVzZV9uZXdfb3B0aW9uX3N5bnRheCwK IAkJCQkJCQkJCSAiVFdPX1BIQVNFIik7CiAKLQkJaWYgKFBRc2VydmVyVmVyc2lvbihjb25uKSA+ PSAxMDAwMDApCisJCWlmIChQUXNlcnZlclZlcnNpb24obXljb25uKSA+PSAxMDAwMDApCiAJCXsK IAkJCS8qIHBnX3JlY3Zsb2dpY2FsIGRvZXNuJ3QgdXNlIGFuIGV4cG9ydGVkIHNuYXBzaG90LCBz byBzdXBwcmVzcyAqLwogCQkJaWYgKHVzZV9uZXdfb3B0aW9uX3N5bnRheCkKQEAgLTY0OSw3ICs2 NDksNyBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpz bG90X25hbWUsIGNvbnN0IGNoYXIgKnBsdWdpbiwKIAl9CiAKIAkvKiBOb3cgcnVuIHRoZSBxdWVy eSAqLwotCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeS0+ZGF0YSk7CisJcmVzID0gUFFleGVjKG15 Y29ubiwgcXVlcnktPmRhdGEpOwogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RV UExFU19PSykKIAl7CiAJCWNvbnN0IGNoYXIgKnNxbHN0YXRlID0gUFFyZXN1bHRFcnJvckZpZWxk KHJlcywgUEdfRElBR19TUUxTVEFURSk7CkBAIC02NjUsNyArNjY1LDcgQEAgQ3JlYXRlUmVwbGlj YXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lLCBjb25zdCBjaGFy ICpwbHVnaW4sCiAJCWVsc2UKIAkJewogCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2VuZCBy ZXBsaWNhdGlvbiBjb21tYW5kIFwiJXNcIjogJXMiLAotCQkJCQkJIHF1ZXJ5LT5kYXRhLCBQUWVy cm9yTWVzc2FnZShjb25uKSk7CisJCQkJCQkgcXVlcnktPmRhdGEsIFBRZXJyb3JNZXNzYWdlKG15 Y29ubikpOwogCiAJCQlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOwogCQkJUFFjbGVhcihyZXMp OwpAQCAtNjk0LDcgKzY5NCw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChQR2Nvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKnNsb3RfbmFtZSwgY29uc3QgY2hhciAqcGx1Z2luLAogICogcmV0dXJucyB0 cnVlIGluIGNhc2Ugb2Ygc3VjY2Vzcy4KICAqLwogYm9vbAotRHJvcFJlcGxpY2F0aW9uU2xvdChQ R2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSkKK0Ryb3BSZXBsaWNhdGlvblNsb3Qo UEdjb25uICpteWNvbm4sIGNvbnN0IGNoYXIgKnNsb3RfbmFtZSkKIHsKIAlQUUV4cEJ1ZmZlciBx dWVyeTsKIAlQR3Jlc3VsdCAgICpyZXM7CkBAIC03MDYsMTEgKzcwNiwxMSBAQCBEcm9wUmVwbGlj YXRpb25TbG90KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdF9uYW1lKQogCS8qIEJ1aWxk IHF1ZXJ5ICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJEUk9QX1JFUExJQ0FUSU9OX1NM T1QgXCIlc1wiIiwKIAkJCQkJICBzbG90X25hbWUpOwotCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVy eS0+ZGF0YSk7CisJcmVzID0gUFFleGVjKG15Y29ubiwgcXVlcnktPmRhdGEpOwogCWlmIChQUXJl c3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCiAJewogCQlwZ19sb2dfZXJyb3Io ImNvdWxkIG5vdCBzZW5kIHJlcGxpY2F0aW9uIGNvbW1hbmQgXCIlc1wiOiAlcyIsCi0JCQkJCSBx dWVyeS0+ZGF0YSwgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQkJCQkgcXVlcnktPmRhdGEsIFBR ZXJyb3JNZXNzYWdlKG15Y29ubikpOwogCiAJCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CiAJ CVBRY2xlYXIocmVzKTsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000d21eb2064514843d--