Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jul 2010 20:47:33 +0400
From:      pluknet <pluknet@gmail.com>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        freebsd-amd64@freebsd.org
Subject:   Re: PERFMON isn't operational on amd64
Message-ID:  <AANLkTi=V2h-0fyUZJxNJdCC%2BBGf-8X2%2BGRCNQ5mwLVh=@mail.gmail.com>
In-Reply-To: <20100727132350.GN22295@deviant.kiev.zoral.com.ua>
References:  <AANLkTim3m4VX3sy6diTNna2Yb7i%2B4RQZ0kT6U7e_wqTU@mail.gmail.com> <20100727132350.GN22295@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
--0016e659f3e6f5f5c7048c61417d
Content-Type: text/plain; charset=ISO-8859-1

On 27 July 2010 17:23, Kostik Belousov <kostikbel@gmail.com> wrote:
> On Tue, Jul 27, 2010 at 04:43:00PM +0400, pluknet wrote:
>> Hi.
>>
>> What is a status of "options PERFMON" on amd64?
>> AFAIK PERFMON opt. was inherited from i386 port and never worked.
>> Does it make sense to wipe out perfmon part on amd64?
>>
>> Looking at cvs I see amd64/include/perfmon.h was never here.
>
> I think perfmon should be removed from i386 too. Would you prepare
> the patch ?
>

Ok, attached.

-- 
wbr,
pluknet

--0016e659f3e6f5f5c7048c61417d
Content-Type: application/octet-stream; name="perfmon.0.diff"
Content-Disposition: attachment; filename="perfmon.0.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gc4yzwgv0

SW5kZXg6IHNoYXJlL21hbi9tYW40L21hbjQuaTM4Ni9wZXJmbW9uLjQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
c2hhcmUvbWFuL21hbjQvbWFuNC5pMzg2L3BlcmZtb24uNAkocmV2aXNpb24gMjEwNTM2KQorKysg
c2hhcmUvbWFuL21hbjQvbWFuNC5pMzg2L3BlcmZtb24uNAkod29ya2luZyBjb3B5KQpAQCAtMSwy
MTMgKzAsMCBAQAotLlwiCi0uXCIgQ29weXJpZ2h0IDE5OTYgTWFzc2FjaHVzZXR0cyBJbnN0aXR1
dGUgb2YgVGVjaG5vbG9neQotLlwiCi0uXCIgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlm
eSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQKLS5cIiBpdHMgZG9jdW1lbnRhdGlv
biBmb3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVieQotLlwiIGdyYW50ZWQs
IHByb3ZpZGVkIHRoYXQgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcwot
LlwiIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLCB0aGF0IGJvdGggdGhl
IGFib3ZlCi0uXCIgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBh
cHBlYXIgaW4gYWxsCi0uXCIgc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLCBhbmQgdGhhdCB0aGUg
bmFtZSBvZiBNLkkuVC4gbm90IGJlIHVzZWQKLS5cIiBpbiBhZHZlcnRpc2luZyBvciBwdWJsaWNp
dHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlCi0uXCIgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgTS5JLlQuIG1ha2VzCi0uXCIg
bm8gcmVwcmVzZW50YXRpb25zIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJl
IGZvciBhbnkKLS5cIiBwdXJwb3NlLiAgSXQgaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGV4
cHJlc3Mgb3IgaW1wbGllZAotLlwiIHdhcnJhbnR5LgotLlwiCi0uXCIgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBNLkkuVC4gYGBBUyBJUycnLiAgTS5JLlQuIERJU0NMQUlNUwotLlwiIEFM
TCBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRX
QVJFLAotLlwiIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GCi0uXCIgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gSU4gTk8gRVZFTlQKLS5cIiBTSEFMTCBNLkkuVC4gQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS5cIiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0uXCIgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RgotLlwiIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLS5cIiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLS5cIiBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKLS5cIiBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKLS5cIiBTVUNIIERBTUFHRS4KLS5cIgotLlwiICRGcmVlQlNEJAotLkRkIE1hcmNoIDI2
LCAxOTk2Ci0uRHQgUEVSRk1PTiA0IGkzODYKLS5PcwotLlNoIE5BTUUKLS5ObSBwZXJmbW9uCi0u
TmQgQ1BVIHBlcmZvcm1hbmNlLW1vbml0b3JpbmcgaW50ZXJmYWNlCi0uU2ggU1lOT1BTSVMKLS5D
ZCBjcHUgSTU4Nl9DUFUKLS5DZCBjcHUgSTY4Nl9DUFUKLS5DZCBvcHRpb25zIFBFUkZNT04KLS5T
aCBERVNDUklQVElPTgotVGhlCi0uTm0KLWRyaXZlciBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGlu
dGVybmFsIHBlcmZvcm1hbmNlLW1vbml0b3JpbmcKLWNhcGFiaWxpdGllcyBvZiB0aGUKLS5UbiBJ
bnRlbAotLlRuIFBlbnRpdW0KLWFuZAotLlRuICJQZW50aXVtIFBybyIKLUNQVXMuCi1UaGVzZSBw
cm9jZXNzb3JzIGltcGxlbWVudCB0d28gaW50ZXJuYWwgY291bnRlcnMgd2hpY2ggY2FuIGJlCi1j
b25maWd1cmVkIHRvIG1lYXN1cmUgYSB2YXJpZXR5IG9mIGV2ZW50cyBmb3IgZWl0aGVyIGNvdW50
IG9yIGR1cmF0aW9uCi0oaW4gQ1BVIGN5Y2xlcyksIGFzIHdlbGwgYXMgYSBjeWNsZSBjb3VudGVy
IHdoaWNoIGNvdW50cyBjbG9jayBjeWNsZXMuCi1UaGUKLS5ObQotZHJpdmVyIHByb3ZpZGVzIGEg
ZGV2aWNlLXN0eWxlIGludGVyZmFjZSB0byB0aGVzZSBjYXBhYmlsaXRpZXMuCi0uUHAKLUFsbCBh
Y2Nlc3MgdG8gdGhlIHBlcmZvcm1hbmNlLW1vbml0b3JpbmcgY291bnRlcnMgaXMgcGVyZm9ybWVk
IHRocm91Z2gKLXRoZSBzcGVjaWFsIGRldmljZSBmaWxlCi0uRHEgUGEgL2Rldi9wZXJmbW9uIC4K
LVRoaXMgZGV2aWNlIHN1cHBvcnRzIGEgbnVtYmVyIG9mCi0uWHIgaW9jdGwgMgotcmVxdWVzdHMs
IGRlZmluZWQgaW4KLS5JbiBtYWNoaW5lL3BlcmZtb24uaAotYWxvbmcgd2l0aCB0aGUgZGVmaW5p
dGlvbnMgb2YgdGhlIHZhcmlvdXMgY291bnRlcnMgZm9yIGJvdGgKLS5UbiBQZW50aXVtCi1hbmQK
LS5UbiAiUGVudGl1bSBQcm8iCi1wcm9jZXNzb3JzLgotLlBwCi0uU3kgTk9UQSBCRU5FIDoKLVRo
ZSBzZXQgb2YgYXZhaWxhYmxlIGV2ZW50cyBkaWZmZXJzIGZyb20gcHJvY2Vzc29yIHRvIHByb2Nl
c3Nvci4KLUl0Ci1pcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHByb2dyYW1tZXIgdG8gZW5z
dXJlIHRoYXQgdGhlIGV2ZW50Ci1udW1iZXJzIHVzZWQgYXJlIHRoZSBjb3JyZWN0IG9uZXMgZm9y
IHRoZSBDUFUgdHlwZSBiZWluZyBtZWFzdXJlZC4KLS5QcAotVGhlIGZvbGxvd2luZwotLlhyIGlv
Y3RsIDIKLXJlcXVlc3RzIGFyZSBkZWZpbmVkOgotLkJsIC10YWcgLXdpZHRoIFBNSU9UU1RBTVAK
LS5JdCBEdiBQTUlPU0VUVVAKLS5QcSBMaSAic3RydWN0IHBtYyIKLVNldCB1cCBhIGNvdW50ZXIg
d2l0aCBwYXJhbWV0ZXJzIGFuZCBmbGFncyBkZWZpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuCi1UaGUg
Zm9sbG93aW5nIGZpZWxkcyBhcmUgZGVmaW5lZCBpbgotLkxpIHN0cnVjdCBwbWMgOgotLkJsIC10
YWcgLXdpZHRoICJ1X2NoYXIgcG1jX2V2ZW50eCIKLS5JdCBMaSAiaW50IHBtY19udW0iCi10aGUg
bnVtYmVyIG9mIHRoZSBjb3VudGVyIGluIHF1ZXN0aW9uOyBtdXN0IGJlIGxlc3MgdGhhbgotLkR2
IE5QTUMKLShjdXJyZW50bHkgMikuCi0uSXQgTGkgInVfY2hhciBwbWNfZXZlbnQiCi10aGUgcGFy
dGljdWxhciBldmVudCBudW1iZXIgdG8gYmUgbW9uaXRvcmVkLCBhcyBkZWZpbmVkIGluCi0uSW4g
bWFjaGluZS9wZXJmbW9uLmggLgotLkl0IExpICJ1X2NoYXIgcG1jX3VuaXQiCi10aGUgdW5pdCBt
YXNrIHZhbHVlLCBzcGVjaWZpYyB0byB0aGUgZXZlbnQgdHlwZSAoc2VlIHRoZQotLlRuIEludGVs
Ci1kb2N1bWVudGF0aW9uKS4KLS5JdCBMaSAidV9jaGFyIHBtY19mbGFncyIKLWZsYWdzIG1vZGlm
eWluZyB0aGUgb3BlcmF0aW9uIG9mIHRoZSBjb3VudGVyIChzZWUgYmVsb3cpLgotLkl0IExpICJ1
X2NoYXIgcG1jX21hc2siCi10aGUgY291bnRlciBtYXNrIHZhbHVlOyBlc3NlbnRpYWxseSwgdGhp
cyBpcyBhIHRocmVzaG9sZCB1c2VkIHRvCi1yZXN0cmljdCB0aGUgY291bnQgdG8gZXZlbnRzIGxh
c3RpbmcgbW9yZSAob3IgbGVzcykgdGhhbiB0aGUgc3BlY2lmaWVkCi1udW1iZXIgb2YgY2xvY2tz
LgotLkVsCi0uUHAKLVRoZSBmb2xsb3dpbmcKLS5MaSBwbWNfZmxhZ3MKLXZhbHVlcyBhcmUgZGVm
aW5lZDoKLS5CbCAtdGFnIC1jb21wYWN0IC13aWR0aCBQTUNGX1VTUnh4Ci0uSXQgRHYgUE1DRl9V
U1IKLWNvdW50IGV2ZW50cyBpbiB1c2VyIG1vZGUKLS5JdCBEdiBQTUNGX09TCi1jb3VudCBldmVu
dHMgaW4ga2VybmVsIG1vZGUKLS5JdCBEdiBQTUNGX0UKLWNvdW50IG51bWJlciBvZiBldmVudHMg
cmF0aGVyIHRoYW4gdGhlaXIgZHVyYXRpb24KLS5JdCBEdiBQTUNGX0lOVgotaW52ZXJ0IHRoZSBz
ZW5zZSBvZiB0aGUgY291bnRlciBtYXNrIGNvbXBhcmlzb24KLS5FbAotLkl0IER2IFBNSU9HRVQK
LS5QcSBMaSAic3RydWN0IHBtYyIKLXJldHVybnMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBv
ZiB0aGUgc3BlY2lmaWVkIGNvdW50ZXIuCi0uSXQgRHYgUE1JT1NUQVJUCi0uSXQgRHYgUE1JT1NU
T1AKLS5QcSBMaSBpbnQKLXN0YXJ0cyAoc3RvcHMpIHRoZSBzcGVjaWZpZWQgY291bnRlci4KLUR1
ZSB0byBoYXJkd2FyZSBkZWZpY2llbmNpZXMsCi1jb3VudGVycyBtdXN0IGJlIHN0YXJ0ZWQgYW5k
IHN0b3BwZWQgaW4gbnVtZXJpY2FsIG9yZGVyLgotKFRoYXQgaXMgdG8KLXNheSwgY291bnRlciAw
IGNhbiBuZXZlciBiZSBzdG9wcGVkIHdpdGhvdXQgZmlyc3Qgc3RvcHBpbmcgY291bnRlciAxLikK
LVRoZSBkcml2ZXIgd2lsbAotLkVtIG5vdAotZW5mb3JjZSB0aGlzIHJlc3RyaWN0aW9uIChzaW5j
ZSBpdCBtYXkgbm90IGJlIHByZXNlbnQgaW4gZnV0dXJlIENQVXMpLgotLkl0IER2IFBNSU9SRVNF
VAotLlBxIExpIGludAotcmVzZXQgdGhlIHNwZWNpZmllZCBjb3VudGVyIHRvIHplcm8uCi1UaGUg
Y291bnRlciBzaG91bGQgYmUgc3RvcHBlZAotd2l0aAotLkR2IFBNSU9TVE9QCi1iZWZvcmUgaXQg
aXMgcmVzZXQuCi1BbGwgY291bnRlcnMgYXJlIGF1dG9tYXRpY2FsbHkgcmVzZXQgYnkKLS5EdiBQ
TUlPU0VUVVAgLgotLkl0IER2IFBNSU9SRUFECi0uUHEgTGkgInN0cnVjdCBwbWNfZGF0YSIKLWdl
dCB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY291bnRlci4KLVRoZQotLkxpIHBtY19kYXRhCi1z
dHJ1Y3R1cmUgZGVmaW5lcyB0d28gZmllbGRzOgotLlBwCi0uQmwgLXRhZyAtY29tcGFjdCAtd2lk
dGggInF1YWRfdCBwbWNkX3ZhbHVlIgotLkl0IExpICJpbnQgcG1jZF9udW0iCi10aGUgbnVtYmVy
IG9mIHRoZSBjb3VudGVyIHRvIHJlYWQKLS5JdCBMaSAicXVhZF90IHBtY2RfdmFsdWUiCi10aGUg
cmVzdWx0aW5nIHZhbHVlIGFzIGEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyCi0uRWwKLS5QcAotSW4g
dGhlIGZ1dHVyZSwgaXQgbWF5IGJlIHBvc3NpYmxlIHRvIHVzZSB0aGUKLS5MaSBSRFBNQwotaW5z
dHJ1Y3Rpb24gb24KLS5UbiAiUGVudGl1bSBQcm8iCi1wcm9jZXNzb3JzIHRvIHJlYWQgdGhlIGNv
dW50ZXJzIGRpcmVjdGx5LgotLkl0IER2IFBNSU9UU1RBTVAKLS5QcSBMaSAic3RydWN0IHBtY190
c3RhbXAiCi1yZWFkIHRoZSB0aW1lIHN0YW1wIGNvdW50ZXIuCi1UaGUKLS5MaSBwbWNfdHN0YW1w
Ci1zdHJ1Y3R1cmUgZGVmaW5lcyB0d28gZmllbGRzOgotLlBwCi0uQmwgLXRhZyAtY29tcGFjdCAt
d2lkdGggInF1YWRfdCBwbWN0X3ZhbHVlIgotLkl0IExpICJpbnQgcG1jdF9yYXRlIgotdGhlIGFw
cHJveGltYXRlIHJhdGUgb2YgdGhlIGNvdW50ZXIsIGluIE1IegotLkl0IExpICJxdWFkX3QgcG1j
dF92YWx1ZSIKLXRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBjb3VudGVyIGFzIGEgNjQtYml0IGlu
dGVnZXIKLS5FbAotLlBwCi1JdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoZSBjb3VudGVy
IHJhdGUsIGFzIHByb3ZpZGVkIGluIHRoZQotLkxpIHBtY3RfcmF0ZQotZmllbGQsIGlzIG9mdGVu
IGluY29ycmVjdCBiZWNhdXNlIG9mIGNhbGlicmF0aW9uIGRpZmZpY3VsdGllcyBhbmQKLW5vbi1p
bnRlZ3JhbCBjbG9jayByYXRlcy4KLVRoaXMgZmllbGQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgbW9y
ZSBvZiBhCi1oaW50IG9yIHNhbml0eS1jaGVjayB0aGFuIGFuIGFjdHVhbCByZXByZXNlbnRhdGlv
biBvZiB0aGUgcmF0ZSBvZgotY2xvY2sgdGlja3MuCi0uRWwKLS5TaCBGSUxFUwotLkJsIC10YWcg
LWNvbXBhY3QgLXdpZHRoICIvdXNyL2luY2x1ZGUvbWFjaGluZS9wZXJmbW9uLmgiCi0uSXQgUGEg
L2Rldi9wZXJmbW9uCi1jaGFyYWN0ZXIgZGV2aWNlIGludGVyZmFjZSB0byBjb3VudGVycwotLkl0
IFBhIC91c3IvaW5jbHVkZS9tYWNoaW5lL3BlcmZtb24uaAotaW5jbHVkZSBmaWxlIHdpdGggZGVm
aW5pdGlvbnMgb2Ygc3RydWN0dXJlcyBhbmQgZXZlbnQgdHlwZXMKLS5JdCBQYSAvdXNyL3NoYXJl
L2V4YW1wbGVzL3BlcmZtb24KLXNhbXBsZSBzb3VyY2UgY29kZSBkZW1vbnN0cmF0aW5nIHVzZSBv
ZiBhbGwgdGhlCi0uRm4gaW9jdGwKLWNvbW1hbmRzCi0uRWwKLS5TaCBTRUUgQUxTTwotLlhyIGlv
Y3RsIDIgLAotLlhyIGh3cG1jIDQKLS5ScwotLiVBIEludGVsIENvcnBvcmF0aW9uCi0uJUIgUGVu
dGl1bSBQcm8gRmFtaWx5IERldmVsb3BlcidzIE1hbnVhbAotLiVEIEphbnVhcnkgMTk5NgotLiVW
IHZvbC4gMwotLiVPIE9wZXJhdGluZyBTeXN0ZW0gV3JpdGVyJ3MgTWFudWFsCi0uUmUKLS5TaCBI
SVNUT1JZCi1UaGUKLS5ObQotZGV2aWNlIGZpcnN0IGFwcGVhcmVkIGluCi0uRnggMi4yIC4KLS5T
aCBBVVRIT1JTCi1UaGUKLS5ObQotZHJpdmVyIHdhcyB3cml0dGVuIGJ5Ci0uQW4gR2FycmV0dCBB
LiBXb2xsbWFuICwKLU1JVCBMYWJvcmF0b3J5IGZvciBDb21wdXRlciBTY2llbmNlLgpJbmRleDog
c2hhcmUvbWFuL21hbjQvbWFuNC5pMzg2L01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNoYXJlL21h
bi9tYW40L21hbjQuaTM4Ni9NYWtlZmlsZQkocmV2aXNpb24gMjEwNTM2KQorKysgc2hhcmUvbWFu
L21hbjQvbWFuNC5pMzg2L01ha2VmaWxlCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw2IEBA
CiAJbnB4LjQgXAogCXBhZS40IFwKIAlwYmlvLjQgXAotCXBlcmZtb24uNCBcCiAJcG5wLjQgXAog
CXBucGJpb3MuNCBcCiAJc2JuaS40IFwKSW5kZXg6IHNoYXJlL21hbi9tYW43L2Nsb2Nrcy43Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHNoYXJlL21hbi9tYW43L2Nsb2Nrcy43CShyZXZpc2lvbiAyMTA1MzYpCisr
KyBzaGFyZS9tYW4vbWFuNy9jbG9ja3MuNwkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDEwICsxNDQs
NiBAQAogLlZhIG1hY2hkZXAudHNjX2ZyZXEKIHN5c2N0bCwgaWYgaXQgaXMgYXZhaWxhYmxlLgog
SXQgaXMgdXNlZCB0byBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHZhbHVlcyBvZiB0aGUgc2NoZWR1bGlu
ZyBjbG9jay4KLUl0IGNhbiBiZSBhY2Nlc3NlZCB1c2luZyB0aGUKLS5EdiBQTUlPVFNUQU1QCi1y
ZXF1ZXN0IG9mCi0uWHIgcGVyZm1vbiA0IC4KIC5JdAogVGhlIEFDUEkgY2xvY2suCiBUaGlzIGlz
IGEgcmVhbCBjbG9jay90aW1lciB3aXRoIGEgbm9taW5hbCBmcmVxdWVuY3kgb2YgMzU3OTU0NS4K
SW5kZXg6IHNoYXJlL2V4YW1wbGVzL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNoYXJlL2V4YW1w
bGVzL01ha2VmaWxlCShyZXZpc2lvbiAyMTA1MzYpCisrKyBzaGFyZS9leGFtcGxlcy9NYWtlZmls
ZQkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBAQAogCW1kb2MgXAogCW5ldGdyYXBoIFwK
IAlud2NsaWVudCBcCi0JcGVyZm1vbiBcCiAJcG9ydGFsIFwKIAlwcGkgXAogCXBwcCBcCkBAIC0x
MTgsOSArMTE3LDYgQEAKIAluZXRncmFwaC91ZHAudHVubmVsIFwKIAlud2NsaWVudC9kb3Qubndm
c3JjIFwKIAlud2NsaWVudC9ud2ZzLnNoLnNhbXBsZSBcCi0JcGVyZm1vbi9NYWtlZmlsZSBcCi0J
cGVyZm1vbi9SRUFETUUgXAotCXBlcmZtb24vcGVyZm1vbi5jIFwKIAlwb3J0YWwvUkVBRE1FIFwK
IAlwb3J0YWwvcG9ydGFsLmNvbmYgXAogCXBwaS9NYWtlZmlsZSBcCkluZGV4OiBzaGFyZS9leGFt
cGxlcy9wZXJmbW9uL3BlcmZtb24uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzaGFyZS9leGFtcGxlcy9wZXJm
bW9uL3BlcmZtb24uYwkocmV2aXNpb24gMjEwNTM2KQorKysgc2hhcmUvZXhhbXBsZXMvcGVyZm1v
bi9wZXJmbW9uLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgMTk5NiBNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5Ci0gKgotICog
UGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0
d2FyZSBhbmQKLSAqIGl0cyBkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBhbmQgd2l0aG91
dCBmZWUgaXMgaGVyZWJ5Ci0gKiBncmFudGVkLCBwcm92aWRlZCB0aGF0IGJvdGggdGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMKLSAqIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBp
biBhbGwgY29waWVzLCB0aGF0IGJvdGggdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwKLSAqIHN1cHBvcnRpbmcgZG9j
dW1lbnRhdGlvbiwgYW5kIHRoYXQgdGhlIG5hbWUgb2YgTS5JLlQuIG5vdCBiZSB1c2VkCi0gKiBp
biBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2Yg
dGhlCi0gKiBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Np
b24uICBNLkkuVC4gbWFrZXMKLSAqIG5vIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0aGUgc3VpdGFi
aWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlLiAgSXQgaXMgcHJvdmlk
ZWQgImFzIGlzIiB3aXRob3V0IGV4cHJlc3Mgb3IgaW1wbGllZAotICogd2FycmFudHkuCi0gKiAK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTS5JLlQuIGBgQVMgSVMnJy4gIE0uSS5U
LiBESVNDTEFJTVMKLSAqIEFMTCBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUyBXSVRIIFJF
R0FSRCBUTyBUSElTIFNPRlRXQVJFLAotICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKLSAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIElOIE5PIEVWRU5UCi0gKiBTSEFMTCBNLkkuVC4g
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YKLSAqIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
Ci0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICoKLSAqICRGcmVlQlNEJAotICovCi0K
LSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLQotI2luY2x1
ZGUgPG1hY2hpbmUvY3B1Lmg+Ci0jaW5jbHVkZSA8bWFjaGluZS9wZXJmbW9uLmg+Ci0KLSNpbmNs
dWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgot
I2luY2x1ZGUgPGVyci5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+
Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLQotc3RhdGljIGludCBn
ZXRudW0oY29uc3QgY2hhciAqLCBpbnQsIGludCk7Ci1zdGF0aWMgdm9pZCB1c2FnZShjb25zdCBj
aGFyICopIF9fZGVhZDI7Ci0KLWludAotbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi17Ci0J
aW50IGMsIGZkLCBudW07Ci0JaW50IGxvb3BzLCBpLCBzbGVlcHRpbWU7Ci0JY2hhciAqY21kOwot
CXN0cnVjdCBwbWMgcG1jOwotCXN0cnVjdCBwbWNfdHN0YW1wIHRoZW4sIG5vdzsKLQlzdHJ1Y3Qg
cG1jX2RhdGEgdmFsdWU7Ci0JcXVhZF90ICpidWY7Ci0JZG91YmxlIHRvdGFsOwotCi0JcG1jLnBt
Y19udW0gPSAwOwotCXBtYy5wbWNfZXZlbnQgPSAwOwotCXBtYy5wbWNfdW5pdCA9IDA7Ci0JcG1j
LnBtY19mbGFncyA9IDA7Ci0JcG1jLnBtY19tYXNrID0gMDsKLQljbWQgPSBOVUxMOwotCWxvb3Bz
ID0gNTA7Ci0Jc2xlZXB0aW1lID0gMDsKLQotCXdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2
LCAiczpsOnVvZWlVOm06YzoiKSkgIT0gLTEpIHsKLQkJc3dpdGNoKGMpIHsKLQkJY2FzZSAndSc6
Ci0JCQlwbWMucG1jX2ZsYWdzIHw9IFBNQ0ZfVVNSOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ28nOgot
CQkJcG1jLnBtY19mbGFncyB8PSBQTUNGX09TOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ2UnOgotCQkJ
cG1jLnBtY19mbGFncyB8PSBQTUNGX0U7Ci0JCQlicmVhazsKLQkJY2FzZSAnaSc6Ci0JCQlwbWMu
cG1jX2ZsYWdzIHw9IFBNQ0ZfSU5WOwotCQkJYnJlYWs7Ci0JCWNhc2UgJ1UnOgotCQkJcG1jLnBt
Y191bml0ID0gZ2V0bnVtKG9wdGFyZywgMCwgMjU2KTsKLQkJCWJyZWFrOwotCQljYXNlICdtJzoK
LQkJCXBtYy5wbWNfbWFzayA9IGdldG51bShvcHRhcmcsIDAsIDI1Nik7Ci0JCQlicmVhazsKLQkJ
Y2FzZSAnbCc6Ci0JCQlsb29wcyA9IGdldG51bShvcHRhcmcsIDEsIElOVF9NQVggLSAxKTsKLQkJ
CWJyZWFrOwotCQljYXNlICdzJzoKLQkJCXNsZWVwdGltZSA9IGdldG51bShvcHRhcmcsIDAsIElO
VF9NQVggLSAxKTsKLQkJCWJyZWFrOwotCQljYXNlICdjJzoKLQkJCWNtZCA9IG9wdGFyZzsKLQkJ
CWJyZWFrOwotCQlkZWZhdWx0OgotCQkJdXNhZ2UoYXJndlswXSk7Ci0JCX0KLQl9Ci0KLQlpZiAo
YXJnYyAtIG9wdGluZCAhPSAxKQotCQl1c2FnZShhcmd2WzBdKTsKLQotCXBtYy5wbWNfZXZlbnQg
PSBnZXRudW0oYXJndltvcHRpbmRdLCAwLCAyNTUpOwotCi0JYnVmID0gbWFsbG9jKChsb29wcyAr
IDEpICogc2l6ZW9mICpidWYpOwotCWlmICghYnVmKQotCQllcnIoMSwgIm1hbGxvYyglbHUpIiwg
KHVuc2lnbmVkIGxvbmcpKGxvb3BzICsxKSAqIHNpemVvZiAqYnVmKTsKLQotCWZkID0gb3Blbihf
UEFUSF9QRVJGTU9OLCBPX1JEV1IsIDApOwotCWlmIChmZCA8IDApCi0JCWVycigxLCAib3Blbjog
IiBfUEFUSF9QRVJGTU9OKTsKLQotCWlmIChpb2N0bChmZCwgUE1JT1NFVFVQLCAmcG1jKSA8IDAp
Ci0JCWVycigxLCAiaW9jdGwoUE1JT1NFVFVQKSIpOwotCi0JaWYgKGlvY3RsKGZkLCBQTUlPVFNU
QU1QLCAmdGhlbikgPCAwKQotCQllcnIoMSwgImlvY3RsKFBNSU9UU1RBTVApIik7Ci0KLQludW0g
PSAwOwotCWlmIChpb2N0bChmZCwgUE1JT1NUQVJULCAmbnVtKSA8IDApCi0JCWVycigxLCAiaW9j
dGwoUE1JT1NUQVJUKSIpOwotCi0JdmFsdWUucG1jZF9udW0gPSAwOwotCWZvciAoaSA9IDA7IGkg
PCBsb29wczsgaSsrKSB7Ci0JCWlmIChpb2N0bChmZCwgUE1JT1NUT1AsICZudW0pIDwgMCkKLQkJ
CWVycigxLCAiaW9jdGwoUE1JT1NUT1ApIik7Ci0JCWlmIChpb2N0bChmZCwgUE1JT1JFQUQsICZ2
YWx1ZSkgPCAwKQotCQkJZXJyKDEsICJpb2N0bChQTUlPUkVBRCkiKTsKLQkJYnVmW2ldID0gdmFs
dWUucG1jZF92YWx1ZTsKLQkJaWYgKGlvY3RsKGZkLCBQTUlPUkVTRVQsICZ2YWx1ZS5wbWNkX251
bSkgPCAwKQotCQkJZXJyKDEsICJpb2N0bChQTUlPUkVTRVQpIik7Ci0JCWlmIChpb2N0bChmZCwg
UE1JT1NUQVJULCAmbnVtKSA8IDApCi0JCQllcnIoMSwgImlvY3RsKFBNSU9TVEFSVCkiKTsKLQkJ
aWYgKHNsZWVwdGltZSkKLQkJCXNsZWVwKHNsZWVwdGltZSk7Ci0JCWlmIChjbWQpCi0JCQlzeXN0
ZW0oY21kKTsKLQl9Ci0KLQlpZiAoaW9jdGwoZmQsIFBNSU9TVE9QLCAmbnVtKSA8IDApCi0JCWVy
cigxLCAiaW9jdGwoUE1JT1NUT1ApIik7Ci0JaWYgKGlvY3RsKGZkLCBQTUlPUkVBRCwgJnZhbHVl
KSA8IDApCi0JCWVycigxLCAiaW9jdGwoUE1JT1JFQUQpIik7Ci0JYnVmW2ldID0gdmFsdWUucG1j
ZF92YWx1ZTsKLQlpZiAoaW9jdGwoZmQsIFBNSU9UU1RBTVAsICZub3cpIDwgMCkKLQkJZXJyKDEs
ICJpb2N0bChQTUlPVFNUQU1QKSIpOwotCi0JdG90YWwgPSAwOwotCWZvciAoaSA9IDE7IGkgPD0g
bG9vcHM7IGkrKykgewotCQlwcmludGYoIiVkOiAlcWRcbiIsIGksIGJ1ZltpXSk7Ci0JCXRvdGFs
ICs9IGJ1ZltpXTsKLQl9Ci0JcHJpbnRmKCJ0b3RhbDogJWZcbm1lYW46ICVmXG4iLCB0b3RhbCwg
dG90YWwgLyBsb29wcyk7Ci0KLQlwcmludGYoImNsb2NrcyAoYXQgJWQtTUh6KTogJXFkXG4iLCBu
b3cucG1jdF9yYXRlLAotCSAgICAgICBub3cucG1jdF92YWx1ZSAtIHRoZW4ucG1jdF92YWx1ZSk7
Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotZ2V0bnVtKGNvbnN0IGNoYXIgKmJ1Ziwg
aW50IG1pbiwgaW50IG1heCkKLXsKLQljaGFyICplcDsKLQlsb25nIGw7Ci0KLQllcnJubyA9IDA7
Ci0JbCA9IHN0cnRvbChidWYsICZlcCwgMCk7Ci0JaWYgKCpidWYgJiYgISplcCAmJiAhZXJybm8p
IHsKLQkJaWYgKGwgPCBtaW4gfHwgbCA+IG1heCkgewotCQkJZXJyeCgxLCAiJXM6IG11c3QgYmUg
YmV0d2VlbiAlZCBhbmQgJWQiLCAKLQkJCSAgICAgYnVmLCBtaW4sIG1heCk7Ci0JCX0KLQkJcmV0
dXJuIChpbnQpbDsKLQl9IAotCi0JZXJyeCgxLCAiJXM6IHBhcmFtZXRlciBtdXN0IGJlIGFuIGlu
dGVnZXIiLCBidWYpOwotfQotCi1zdGF0aWMgdm9pZAotdXNhZ2UoY29uc3QgY2hhciAqcG5hbWUp
Ci17Ci0JZnByaW50ZihzdGRlcnIsIAotCSJ1c2FnZTogJXMgWy1laW91XSBbLWMgY29tbWFuZF0g
Wy1sIG5sb29wc10gWy1tIG1hc2tdIFstcyBzbGVlcHRpbWVdXG4iCi0JIiAgICAgICBbLVUgdW5p
dF0gY291bnRlclxuIiwKLQkJcG5hbWUpOwotCWV4aXQoMSk7Ci19CkluZGV4OiBzaGFyZS9leGFt
cGxlcy9wZXJmbW9uL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNoYXJlL2V4YW1wbGVzL3BlcmZt
b24vTWFrZWZpbGUJKHJldmlzaW9uIDIxMDUzNikKKysrIHNoYXJlL2V4YW1wbGVzL3BlcmZtb24v
TWFrZWZpbGUJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBACi0jICRGcmVlQlNEJAotCi1Q
Uk9HPQlwZXJmbW9uCi1OT19NQU49Ci0KLWluc3RhbGw6Ci0KLS5pbmNsdWRlIDxic2QucHJvZy5t
az4KSW5kZXg6IHNoYXJlL2V4YW1wbGVzL3BlcmZtb24vUkVBRE1FCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNo
YXJlL2V4YW1wbGVzL3BlcmZtb24vUkVBRE1FCShyZXZpc2lvbiAyMTA1MzYpCisrKyBzaGFyZS9l
eGFtcGxlcy9wZXJmbW9uL1JFQURNRQkod29ya2luZyBjb3B5KQpAQCAtMSwyNSArMCwwIEBACi1g
cGVyZm1vbicgaXMgYSBzYW1wbGUgcHJvZ3JhbSB0byBhY2Nlc3MgdGhlIHBlcmZvcm1hbmNlLW1v
bml0b3JpbmcKLWNvdW50ZXJzIG9uIFBlbnRpdW0gYW5kIFBlbnRpdW0gUHJvIENQVXMuICBTZWUg
cGVyZm1vbig0KSBmb3IgYQotZGVzY3JpcHRpb24gb2YgdGhpcyBmYWNpbGl0eS4KLQotVGhlIHBy
b2dyYW0gdGFrZXMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgotCi0JLXUJY291bnQgZXZlbnRzIGlu
IHVzZXIgbW9kZQotCS1vCWNvdW50IGV2ZW50cyBpbiBrZXJuZWwgbW9kZQotCQkodGhlc2UgdHdv
IGNhbiBiZSBjb21iaW5lZCkKLQotCS1lCWNvdW50IGV2ZW50cywgbm90IGR1cmF0aW9uCi0JLWwg
bglydW4gYG4nIGxvb3BzIChkZWZhdWx0IDUwKQotCS1zIG4Jc2xlZXAgYG4nIHNlY29uZHMgYmV0
d2VlbiBsb29wIGl0ZXJhdGlvbnMgKGRlZmF1bHQgMCkKLQotVGhlIGZvbGxvd2luZyBvcHRpb25z
IGFyZSBub3QgaW1wbGVtZW50ZWQgb24gUGVudGl1bSBDUFVzOgotCi0JLW0gbgl1c2UgY291bnQg
bWFzayBgbicKLQktaQlpbnZlcnQgc2Vuc2Ugb2YgY291bnQgbWFzayBjb21wYXJpc29uCi0JLVUg
bgl1c2UgdW5pdCBtYXNrIGBuJwotCi1UaGVyZSBpcyBvbmUgbWFuZGF0b3J5IGFyZ3VtZW50LCB3
aGljaCBpcyB0aGUgZXZlbnQgbnVtYmVyIHRvIGJlCi1tb25pdG9yZWQsIGRlZmluZWQgaW4gPG1h
Y2hpbmUvcGVyZm1vbi5oPi4gIEFsbCBudW1iZXJzIGNhbiBiZQotc3BlY2lmaWVkIGluIGFueSBm
b3JtYXQgYWNjZXB0YWJsZSB0byBzdHJ0b2woMykuCi0KLSRGcmVlQlNEJApJbmRleDogT2Jzb2xl
dGVGaWxlcy5pbmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gT2Jzb2xldGVGaWxlcy5pbmMJKHJldmlzaW9uIDIx
MDU0MikKKysrIE9ic29sZXRlRmlsZXMuaW5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw2ICsxNCwx
NSBAQAogIyBUaGUgZmlsZSBpcyBwYXJ0aXRpb25lZDogT0xEX0ZJTEVTIGZpcnN0LCB0aGVuIE9M
RF9MSUJTIGFuZCBPTERfRElSUyBsYXN0LgogIwogCisjIDIwMTAwNzI3OiBwZXJmbW9uKDQpIHJl
bW92YWwKKy5pZiAke1RBUkdFVF9BUkNIfSA9PSAiaTM4NiIKK09MRF9GSUxFUys9dXNyL3NoYXJl
L21hbi9tYW40L2kzODYvcGVyZm1vbi40Lmd6CisuZW5kaWYKK09MRF9GSUxFUys9dXNyL2luY2x1
ZGUvbWFjaGluZS9wZXJmbW9uLmgKK09MRF9GSUxFUys9dXNyL3NoYXJlL2V4YW1wbGVzL3BlcmZt
b24vTWFrZWZpbGUKK09MRF9GSUxFUys9dXNyL3NoYXJlL2V4YW1wbGVzL3BlcmZtb24vUkVBRE1F
CitPTERfRklMRVMrPXVzci9zaGFyZS9leGFtcGxlcy9wZXJmbW9uL3BlcmZtb24uYworT0xEX0RJ
UlMrPXVzci9zaGFyZS9leGFtcGxlcy9wZXJmbW9uCiAjIDIwMTAwNzI1OiBhY3BpX2FpYm9vc3Qo
NCkgcmVtb3ZhbC4KIE9MRF9GSUxFUys9dXNyL3NoYXJlL21hbi9tYW40L2FjcGlfYWlib29zdC40
Lmd6CiAjIDIwMTAwNzIwOiBuZXcgY2xhbmcgaW1wb3J0IHdoaWNoIGJ1bXBzIHZlcnNpb24gZnJv
bSAyLjAgdG8gMi44CkluZGV4OiBVUERBVElORwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBVUERBVElORwkocmV2
aXNpb24gMjEwNTM2KQorKysgVVBEQVRJTkcJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDEw
IEBACiAJbWFjaGluZXMgdG8gbWF4aW1pemUgcGVyZm9ybWFuY2UuICAoVG8gZGlzYWJsZSBtYWxs
b2MgZGVidWdnaW5nLCBydW4KIAlsbiAtcyBhaiAvZXRjL21hbGxvYy5jb25mLikKIAorMjAxMDA3
Mjc6CisJVGhlIHBlcmZtb24oNCkgZHJpdmVyIGhhcyBiZWVuIHJlbW92ZWQgaW4gZmF2b3Igb2Yg
dGhlIG1vcmUgYWR2YW5jZWQKKwlod3BtYyg0KSBkcml2ZXIuCisKIDIwMTAwNzI1OgogCVRoZSBh
Y3BpX2FpYm9vc3QoNCkgZHJpdmVyIGhhcyBiZWVuIHJlbW92ZWQgaW4gZmF2b3Igb2YgdGhlIG5l
dwogCWFpYnMoNCkgZHJpdmVyLiBZb3Ugc2hvdWxkIHVwZGF0ZSB5b3VyIGtlcm5lbCBjb25maWd1
cmF0aW9uIGZpbGUuCkluZGV4OiBldGMvbXRyZWUvQlNELnVzci5kaXN0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGV0Yy9tdHJlZS9CU0QudXNyLmRpc3QJKHJldmlzaW9uIDIxMDU0MikKKysrIGV0Yy9tdHJlZS9C
U0QudXNyLmRpc3QJKHdvcmtpbmcgY29weSkKQEAgLTI2Myw4ICsyNjMsNiBAQAogICAgICAgICAg
ICAgLi4KICAgICAgICAgICAgIHBjLXN5c2luc3RhbGwKICAgICAgICAgICAgIC4uCi0gICAgICAg
ICAgICBwZXJmbW9uCi0gICAgICAgICAgICAuLgogICAgICAgICAgICAgcGYKICAgICAgICAgICAg
IC4uCiAgICAgICAgICAgICBwb3J0YWwKSW5kZXg6IHN5cy9wb3dlcnBjL2FpbS9tYWNoZGVwLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gc3lzL3Bvd2VycGMvYWltL21hY2hkZXAuYwkocmV2aXNpb24gMjEwNTM2
KQorKysgc3lzL3Bvd2VycGMvYWltL21hY2hkZXAuYwkod29ya2luZyBjb3B5KQpAQCAtMTkwLDkg
KzE5MCw2IEBACiAJICovCiAJY3B1X3NldHVwKFBDUFVfR0VUKGNwdWlkKSk7CiAKLSNpZmRlZiBQ
RVJGTU9OCi0JcGVyZm1vbl9pbml0KCk7Ci0jZW5kaWYKIAlwcmludGYoInJlYWwgbWVtb3J5ICA9
ICVsZCAoJWxkIE1CKVxuIiwgcHRvYShwaHlzbWVtKSwKIAkgICAgcHRvYShwaHlzbWVtKSAvIDEw
NDg1NzYpOwogCXJlYWxtZW0gPSBwaHlzbWVtOwpJbmRleDogc3lzL2NvbmYvb3B0aW9ucy5pMzg2
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHN5cy9jb25mL29wdGlvbnMuaTM4NgkocmV2aXNpb24gMjEwNTM2KQor
Kysgc3lzL2NvbmYvb3B0aW9ucy5pMzg2CSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw2IEBA
CiBNUFRBQkxFX0ZPUkNFX0hUVAogTVBfV0FUQ0hET0cKIE5LUFQJCQlvcHRfcG1hcC5oCi1QRVJG
TU9OCiBQTUFQX1NIUEdQRVJQUk9DCW9wdF9wbWFwLmgKIFBPV0VSRkFJTF9OTUkJCW9wdF90cmFw
LmgKIApJbmRleDogc3lzL2NvbmYvZmlsZXMucGM5OAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvY29uZi9m
aWxlcy5wYzk4CShyZXZpc2lvbiAyMTA1MzYpCisrKyBzeXMvY29uZi9maWxlcy5wYzk4CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDYgQEAKIGkzODYvaTM4Ni9tcHRhYmxlLmMJCW9wdGlv
bmFsIGFwaWMKIGkzODYvaTM4Ni9tcHRhYmxlX3BjaS5jCQlvcHRpb25hbCBhcGljIHBjaQogaTM4
Ni9pMzg2L25leHVzLmMJCXN0YW5kYXJkCi1pMzg2L2kzODYvcGVyZm1vbi5jCQlvcHRpb25hbCBw
ZXJmbW9uCiBpMzg2L2kzODYvcG1hcC5jCQlzdGFuZGFyZAogaTM4Ni9pMzg2L3B0cmFjZV9tYWNo
ZGVwLmMJc3RhbmRhcmQKIGkzODYvaTM4Ni9zdGFja19tYWNoZGVwLmMJb3B0aW9uYWwgZGRiIHwg
c3RhY2sKSW5kZXg6IHN5cy9jb25mL2ZpbGVzLmkzODYKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL2NvbmYv
ZmlsZXMuaTM4NgkocmV2aXNpb24gMjEwNTM2KQorKysgc3lzL2NvbmYvZmlsZXMuaTM4Ngkod29y
a2luZyBjb3B5KQpAQCAtMjkxLDcgKzI5MSw2IEBACiBpMzg2L3hlbi9tcHRhYmxlLmMJCW9wdGlv
bmFsIGFwaWMgeGVuCiBpMzg2L2kzODYvbXB0YWJsZV9wY2kuYwkJb3B0aW9uYWwgYXBpYyBwY2kK
IGkzODYvaTM4Ni9uZXh1cy5jCQlzdGFuZGFyZAotaTM4Ni9pMzg2L3BlcmZtb24uYwkJb3B0aW9u
YWwgcGVyZm1vbgogaTM4Ni9pMzg2L3BtYXAuYwkJb3B0aW9uYWwgbmF0aXZlCiBpMzg2L3hlbi9w
bWFwLmMJCQlvcHRpb25hbCB4ZW4KIGkzODYvaTM4Ni9wdHJhY2VfbWFjaGRlcC5jCXN0YW5kYXJk
CkluZGV4OiBzeXMvY29uZi9vcHRpb25zLmFtZDY0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9jb25mL29w
dGlvbnMuYW1kNjQJKHJldmlzaW9uIDIxMDUzNikKKysrIHN5cy9jb25mL29wdGlvbnMuYW1kNjQJ
KHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw2IEBACiBDT1VOVF9YSU5WTFRMQl9ISVRTCW9wdF9z
bXAuaAogQ09VTlRfSVBJUwkJb3B0X3NtcC5oCiBNQVhNRU0KLVBFUkZNT04KIFBNQVBfU0hQR1BF
UlBST0MJb3B0X3BtYXAuaAogTVBfV0FUQ0hET0cKIApJbmRleDogc3lzL2NvbmYvb3B0aW9ucy5w
Yzk4Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHN5cy9jb25mL29wdGlvbnMucGM5OAkocmV2aXNpb24gMjEwNTM2
KQorKysgc3lzL2NvbmYvb3B0aW9ucy5wYzk4CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw2
IEBACiBNQVhNRU0KIE1QVEFCTEVfRk9SQ0VfSFRUCiBNUF9XQVRDSERPRwotUEVSRk1PTgogUE1B
UF9TSFBHUEVSUFJPQwlvcHRfcG1hcC5oCiBQT1dFUkZBSUxfTk1JCQlvcHRfdHJhcC5oCiAKSW5k
ZXg6IHN5cy9pYTY0L2lhNjQvbWFjaGRlcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9pYTY0L2lhNjQv
bWFjaGRlcC5jCShyZXZpc2lvbiAyMTA1MzYpCisrKyBzeXMvaWE2NC9pYTY0L21hY2hkZXAuYwko
d29ya2luZyBjb3B5KQpAQCAtMjY2LDkgKzI2Niw2IEBACiAJICovCiAJaWRlbnRpZnljcHUoKTsK
IAotI2lmZGVmIFBFUkZNT04KLQlwZXJmbW9uX2luaXQoKTsKLSNlbmRpZgogCXByaW50ZigicmVh
bCBtZW1vcnkgID0gJWxkICglbGQgTUIpXG4iLCBpYTY0X3B0b2IoTWF4bWVtKSwKIAkgICAgaWE2
NF9wdG9iKE1heG1lbSkgLyAxMDQ4NTc2KTsKIAlyZWFsbWVtID0gTWF4bWVtOwpJbmRleDogc3lz
L3BjOTgvaW5jbHVkZS9wZXJmbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL3BjOTgvaW5jbHVkZS9w
ZXJmbW9uLmgJKHJldmlzaW9uIDIxMDUzNikKKysrIHN5cy9wYzk4L2luY2x1ZGUvcGVyZm1vbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzAsMCBAQAotLyotCi0gKiBUaGlzIGZpbGUgaXMgaW4g
dGhlIHB1YmxpYyBkb21haW4uCi0gKi8KLS8qICRGcmVlQlNEJCAqLwotCi0jaW5jbHVkZSA8aTM4
Ni9wZXJmbW9uLmg+CkluZGV4OiBzeXMvcGM5OC9wYzk4L21hY2hkZXAuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBzeXMvcGM5OC9wYzk4L21hY2hkZXAuYwkocmV2aXNpb24gMjEwNTM2KQorKysgc3lzL3BjOTgv
cGM5OC9tYWNoZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRl
ICJvcHRfbWF4bWVtLmgiCiAjaW5jbHVkZSAib3B0X21zZ2J1Zi5oIgogI2luY2x1ZGUgIm9wdF9u
cHguaCIKLSNpbmNsdWRlICJvcHRfcGVyZm1vbi5oIgogCiAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+
CiAjaW5jbHVkZSA8c3lzL3Byb2MuaD4KQEAgLTEyMiw5ICsxMjEsNiBAQAogI2luY2x1ZGUgPG1h
Y2hpbmUvc2lnZnJhbWUuaD4KICNpbmNsdWRlIDxtYWNoaW5lL3NwZWNpYWxyZWcuaD4KICNpbmNs
dWRlIDxtYWNoaW5lL3ZtODYuaD4KLSNpZmRlZiBQRVJGTU9OCi0jaW5jbHVkZSA8bWFjaGluZS9w
ZXJmbW9uLmg+Ci0jZW5kaWYKICNpZmRlZiBTTVAKICNpbmNsdWRlIDxtYWNoaW5lL3NtcC5oPgog
I2VuZGlmCkBAIC0yMjIsOSArMjE4LDYgQEAKIAlzdGFydHJ0Y2xvY2soKTsKIAlwcmludGNwdWlu
Zm8oKTsKIAlwYW5pY2lmY3B1dW5zdXBwb3J0ZWQoKTsKLSNpZmRlZiBQRVJGTU9OCi0JcGVyZm1v
bl9pbml0KCk7Ci0jZW5kaWYKIAlyZWFsbWVtID0gTWF4bWVtOwogCiAJLyoKSW5kZXg6IHN5cy9w
Yzk4L2NvbmYvTk9URVMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL3BjOTgvY29uZi9OT1RFUwkocmV2aXNp
b24gMjEwNTM2KQorKysgc3lzL3BjOTgvY29uZi9OT1RFUwkod29ya2luZyBjb3B5KQpAQCAtMTU4
LDEyICsxNTgsNiBAQAogIyBEZWJ1ZyBvcHRpb25zCiBvcHRpb25zIAlOUFhfREVCVUcJIyBlbmFi
bGUgbnB4IGRlYnVnZ2luZwogCi0jCi0jIFBFUkZNT04gY2F1c2VzIHRoZSBkcml2ZXIgZm9yIFBl
bnRpdW0vUGVudGl1bSBQcm8gcGVyZm9ybWFuY2UgY291bnRlcnMKLSMgdG8gYmUgY29tcGlsZWQu
ICBTZWUgcGVyZm1vbig0KSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSMKLW9wdGlvbnMgCVBFUkZN
T04KLQogDAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIE5FVFdPUktJTkcgT1BUSU9OUwpJbmRleDogc3lzL2kz
ODYvaW5jbHVkZS9wZXJmbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL2kzODYvaW5jbHVkZS9wZXJm
bW9uLmgJKHJldmlzaW9uIDIxMDUzNikKKysrIHN5cy9pMzg2L2luY2x1ZGUvcGVyZm1vbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDI1NSArMCwwIEBACi0vKi0KLSAqIENvcHlyaWdodCAxOTk2IE1h
c3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kKLSAqCi0gKiBQZXJtaXNzaW9uIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZAotICog
aXRzIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGFuZCB3aXRob3V0IGZlZSBpcyBoZXJl
YnkKLSAqIGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSBhbmQgdGhpcwotICogcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMs
IHRoYXQgYm90aCB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbAotICogc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLCBh
bmQgdGhhdCB0aGUgbmFtZSBvZiBNLkkuVC4gbm90IGJlIHVzZWQKLSAqIGluIGFkdmVydGlzaW5n
IG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3RyaWJ1dGlvbiBvZiB0aGUKLSAqIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4gIE0uSS5ULiBt
YWtlcwotICogbm8gcmVwcmVzZW50YXRpb25zIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlz
IHNvZnR3YXJlIGZvciBhbnkKLSAqIHB1cnBvc2UuICBJdCBpcyBwcm92aWRlZCAiYXMgaXMiIHdp
dGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkCi0gKiB3YXJyYW50eS4KLSAqIAotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBNLkkuVC4gYGBBUyBJUycnLiAgTS5JLlQuIERJU0NMQUlNUwot
ICogQUxMIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTIFdJVEggUkVHQVJEIFRPIFRISVMg
U09GVFdBUkUsCi0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gSU4gTk8gRVZFTlQKLSAqIFNIQUxMIE0uSS5ULiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RgotICogVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKLSAqIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RgotICogU1VDSCBEQU1BR0UuCi0gKgotICogJEZyZWVCU0QkCi0gKi8KLQotLyoKLSAqIEludGVy
ZmFjZSB0byBwZXJmb3JtYW5jZS1tb25pdG9yaW5nIGNvdW50ZXJzIGZvciBJbnRlbCBQZW50aXVt
IGFuZAotICogUGVudGl1bSBQcm8gQ1BVcy4KLSAqLwotCi0jaWZuZGVmCV9NQUNISU5FX1BFUkZN
T05fSF8KLSNkZWZpbmUJX01BQ0hJTkVfUEVSRk1PTl9IXwotIAotI2lmbmRlZiBfS0VSTkVMCi0j
aW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxzeXMvaW9jY29tLmg+Ci0K
LSNkZWZpbmUJTlBNQwkyCi0KLSNkZWZpbmUJUE1JT1NFVFVQCV9JT1coJzUnLCAxLCBzdHJ1Y3Qg
cG1jKQotI2RlZmluZQlQTUlPR0VUCQlfSU9XUignNScsIDcsIHN0cnVjdCBwbWMpCi0jZGVmaW5l
CVBNSU9TVEFSVAlfSU9XKCc1JywgMiwgaW50KQotI2RlZmluZQlQTUlPU1RPUAlfSU9XKCc1Jywg
MywgaW50KQotI2RlZmluZSBQTUlPUkVBRAlfSU9XUignNScsIDQsIHN0cnVjdCBwbWNfZGF0YSkK
LSNkZWZpbmUJUE1JT1JFU0VUCV9JT1coJzUnLCA1LCBpbnQpCi0jZGVmaW5lCVBNSU9UU1RBTVAJ
X0lPUignNScsIDYsIHN0cnVjdCBwbWNfdHN0YW1wKQotCi1zdHJ1Y3QgcG1jIHsKLQlpbnQgcG1j
X251bTsKLQl1bmlvbiB7Ci0JCXN0cnVjdCB7Ci0JCQl1bnNpZ25lZCBjaGFyIHBtY3VzX2V2ZW50
OwotCQkJdW5zaWduZWQgY2hhciBwbWN1c191bml0OwotCQkJdW5zaWduZWQgY2hhciBwbWN1c19m
bGFnczsKLQkJCXVuc2lnbmVkIGNoYXIgcG1jdXNfbWFzazsKLQkJfSBwbWN1X3M7Ci0JCXVuc2ln
bmVkIGludCBwbWN1X3ZhbDsKLQl9IHBtY19wbWN1OwotfTsKLQotI2RlZmluZQlQTUNfQUxMCQko
LTEpCi0KLSNkZWZpbmUJcG1jX2V2ZW50CXBtY19wbWN1LnBtY3Vfcy5wbWN1c19ldmVudAotI2Rl
ZmluZQlwbWNfdW5pdAlwbWNfcG1jdS5wbWN1X3MucG1jdXNfdW5pdAotI2RlZmluZQlwbWNfZmxh
Z3MJcG1jX3BtY3UucG1jdV9zLnBtY3VzX2ZsYWdzCi0jZGVmaW5lCXBtY19tYXNrCXBtY19wbWN1
LnBtY3Vfcy5wbWN1c19tYXNrCi0jZGVmaW5lCXBtY192YWwJCXBtY19wbWN1LnBtY3VfdmFsCi0K
LSNkZWZpbmUJUE1DRl9VU1IJMHgwMQkvKiBjb3VudCBldmVudHMgaW4gdXNlciBtb2RlICovCi0j
ZGVmaW5lCVBNQ0ZfT1MJCTB4MDIJLyogY291bnQgZXZlbnRzIGluIGtlcm5lbCBtb2RlICovCi0j
ZGVmaW5lCVBNQ0ZfRQkJMHgwNAkvKiB1c2UgZWRnZS1kZXRlY3Rpb24gbW9kZSAqLwotI2RlZmlu
ZQlQTUNGX1BDCQkweDA4CS8qIFBNeCBvdXRwdXQgcGluIGNvbnRyb2wgKi8KLSNkZWZpbmUJUE1D
Rl9JTlQJMHgxMAkvKiBBUElDIGludGVycnVwdCBlbmFibGUgKGRvIG5vdCB1c2UpICovCi0jZGVm
aW5lCVBNQ0ZfRU4JCTB4NDAJLyogZW5hYmxlIGNvdW50ZXJzICovCi0jZGVmaW5lCVBNQ0ZfSU5W
CTB4ODAJLyogaW52ZXJ0IGNvdW50ZXIgbWFzayBjb21wYXJpc29uICovCi0KLSNkZWZpbmUJUE1D
Rl9TWVNfRkxBR1MJKFBNQ0ZfSU5UIHwgUE1DRl9FTikgLyogdXNlciBjYW5ub3Qgc2V0ICovCi0K
LXN0cnVjdCBwbWNfZGF0YSB7Ci0JaW50IHBtY2RfbnVtOwotCXF1YWRfdCBwbWNkX3ZhbHVlOwot
fTsKLQotc3RydWN0IHBtY190c3RhbXAgewotCWludCBwbWN0X3JhdGU7Ci0JcXVhZF90IHBtY3Rf
dmFsdWU7Ci19OwotCi0jaWZuZGVmIF9LRVJORUwKLQotI2RlZmluZQlfUEFUSF9QRVJGTU9OCSIv
ZGV2L3BlcmZtb24iCi0KLSNlbHNlCi0KLS8qCi0gKiBJbnRyYS1rZXJuZWwgaW50ZXJmYWNlIHRv
IHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgY291bnRlcnMKLSAqLwotdm9pZAlwZXJmbW9uX2luaXQo
dm9pZCk7Ci1pbnQJcGVyZm1vbl9hdmFpbCh2b2lkKTsKLWludAlwZXJmbW9uX3NldHVwKGludCwg
dW5zaWduZWQgaW50KTsKLWludAlwZXJmbW9uX2dldChpbnQsIHVuc2lnbmVkIGludCAqKTsKLWlu
dAlwZXJmbW9uX2ZpbmkoaW50KTsKLWludAlwZXJmbW9uX3N0YXJ0KGludCk7Ci1pbnQJcGVyZm1v
bl9zdG9wKGludCk7Ci1pbnQJcGVyZm1vbl9yZWFkKGludCwgcXVhZF90ICopOwotaW50CXBlcmZt
b25fcmVzZXQoaW50KTsKLQotI2VuZGlmIC8qIF9LRVJORUwgKi8KLQotLyoKLSAqIFBlbnRpdW0g
UHJvIHBlcmZvcm1hbmNlIGNvdW50ZXJzLCBmcm9tIEFwcGVuZGl4IEIuCi0gKi8KLS8qIERhdGEg
Q2FjaGUgVW5pdCAqLwotI2RlZmluZQlQTUM2X0RBVEFfTUVNX1JFRlMJMHg0MwotI2RlZmluZQlQ
TUM2X0RDVV9MSU5FU19JTgkweDQ1Ci0jZGVmaW5lCVBNQzZfRENVX01fTElORVNfSU4JMHg0Ngot
I2RlZmluZQlQTUM2X0RDVV9NX0xJTkVTX09VVAkweDQ3Ci0jZGVmaW5lCVBNQzZfRENVX01JU1Nf
T1VUU1RBTkRJTkcgMHg0OAotCi0vKiBJbnN0cnVjdGlvbiBGZXRjaCBVbml0ICovIAotI2RlZmlu
ZQlQTUM2X0lGVV9JRkVUQ0gJCTB4ODAKLSNkZWZpbmUJUE1DNl9JRlVfSUZFVENIX01JU1MJMHg4
MQotI2RlZmluZQlQTUM2X0lUTEJfTUlTUwkJMHg4NQotI2RlZmluZQlQTUM2X0lGVV9NRU1fU1RB
TEwJMHg4NgotI2RlZmluZQlQTUM2X0lMRF9TVEFMTAkJMHg4NwotCi0vKiBMMiBDYWNoZSAqLwot
I2RlZmluZQlQTUM2X0wyX0lGRVRDSAkJMHgyOCAvKiBNRVNJICovCi0jZGVmaW5lCVBNQzZfTDJf
TEQJCTB4MjkgLyogTUVTSSAqLwotI2RlZmluZQlQTUM2X0wyX1NUCQkweDJhIC8qIE1FU0kgKi8K
LSNkZWZpbmUJUE1DNl9MMl9MSU5FU19JTgkweDI0Ci0jZGVmaW5lCVBNQzZfTDJfTElORVNfT1VU
CTB4MjYKLSNkZWZpbmUJUE1DNl9MMl9NX0xJTkVTX0lOTQkweDI1Ci0jZGVmaW5lCVBNQzZfTDJf
TV9MSU5FU19PVVRNCTB4MjcKLSNkZWZpbmUJUE1DNl9MMl9SUVNUUwkJMHgyZSAvKiBNRVNJICov
Ci0jZGVmaW5lCVBNQzZfTDJfQURTCQkweDIxCi0jZGVmaW5lCVBNQzZfTDJfREJVU19CVVNZCTB4
MjIKLSNkZWZpbmUJUE1DNl9MMl9EQlVTX0JVU1lfUkQJMHgyMwotCi0vKiBFeHRlcm5hbCBCdXMg
TG9naWMgKi8KLSNkZWZpbmUJUE1DNl9CVVNfRFJEWV9DTE9DS1MJMHg2MgotI2RlZmluZQlQTUM2
X0JVU19MT0NLX0NMT0NLUwkweDYzCi0jZGVmaW5lCVBNQzZfQlVTX1JFUV9PVVRTVEFORElORyAw
eDYwCi0jZGVmaW5lCVBNQzZfQlVTX1RSQU5fQlJECTB4NjUKLSNkZWZpbmUJUE1DNl9CVVNfVFJB
Tl9SRk8JMHg2NgotI2RlZmluZQlQTUM2X0JVU19UUkFOX1dCCTB4NjcKLSNkZWZpbmUJUE1DNl9C
VVNfVFJBTl9JRkVUQ0gJMHg2OAotI2RlZmluZQlQTUM2X0JVU19UUkFOX0lOVkFMCTB4NjkKLSNk
ZWZpbmUJUE1DNl9CVVNfVFJBTl9QV1IJMHg2YQotI2RlZmluZQlQTUM2X0JVU19UUkFOX1AJCTB4
NmIKLSNkZWZpbmUJUE1DNl9CVVNfVFJBTl9JTwkweDZjCi0jZGVmaW5lCVBNQzZfQlVTX1RSQU5f
REVGCTB4NmQKLSNkZWZpbmUJUE1DNl9CVVNfVFJBTl9CVVJTVAkweDZlCi0jZGVmaW5lCVBNQzZf
QlVTX1RSQU5fQU5ZCTB4NzAKLSNkZWZpbmUJUE1DNl9CVVNfVFJBTl9NRU0JMHg2ZgotI2RlZmlu
ZQlQTUM2X0JVU19EQVRBX1JDVgkweDY0Ci0jZGVmaW5lCVBNQzZfQlVTX0JOUl9EUlYJMHg2MQot
I2RlZmluZQlQTUM2X0JVU19ISVRfRFJWCTB4N2EKLSNkZWZpbmUJUE1DNl9CVVNfSElUTV9EUlYJ
MHg3YgotI2RlZmluZQlQTUM2X0JVU19TTk9PUF9TVEFMTAkweDdlCi0KLS8qIEZsb2F0aW5nIFBv
aW50IFVuaXQgKi8KLSNkZWZpbmUJUE1DNl9GTE9QUwkJMHhjMSAvKiBjb3VudGVyIDAgb25seSAq
LwotI2RlZmluZQlQTUM2X0ZQX0NPTVBfT1BTX0VYRQkweDEwIC8qIGNvdW50ZXIgMCBvbmx5ICov
Ci0jZGVmaW5lCVBNQzZfRlBfQVNTSVNUCQkweDExIC8qIGNvdW50ZXIgMSBvbmx5ICovCi0jZGVm
aW5lCVBNQzZfTVVMCQkweDEyIC8qIGNvdW50ZXIgMSBvbmx5ICovCi0jZGVmaW5lCVBNQzZfRElW
CQkweDEzIC8qIGNvdW50ZXIgMSBvbmx5ICovCi0jZGVmaW5lCVBNQzZfQ1lDTEVTX0RJVl9CVVNZ
CTB4MTQgLyogY291bnRlciAwIG9ubHkgKi8KLQotLyogTWVtb3J5IE9yZGVyaW5nICovCi0jZGVm
aW5lCVBNQzZfTERfQkxPQ0tTCQkweDAzCi0jZGVmaW5lCVBNQzZfU0JfRFJBSU5TCQkweDA0Ci0j
ZGVmaW5lCVBNQzZfTUlTQUxJR05fTUVNX1JFRgkweDA1Ci0KLS8qIEluc3RydWN0aW9uIERlY29k
aW5nIGFuZCBSZXRpcmVtZW50ICovCi0jZGVmaW5lCVBNQzZfSU5TVF9SRVRJUkVECTB4YzAKLSNk
ZWZpbmUJUE1DNl9VT1BTX1JFVElSRUQJMHhjMgotI2RlZmluZQlQTUM2X0lOU1RfREVDT0RFUgkw
eGQwIC8qIChzaWMpICovCi0KLS8qIEludGVycnVwdHMgKi8KLSNkZWZpbmUJUE1DNl9IV19JTlRf
UlgJCTB4YzgKLSNkZWZpbmUJUE1DNl9DWUNMRVNfSU5UX01BU0tFRAkweGM2Ci0jZGVmaW5lCVBN
QzZfQ1lDTEVTX0lOVF9QRU5ESU5HX0FORF9NQVNLRUQgMHhjNwotCi0vKiBCcmFuY2hlcyAqLwot
I2RlZmluZQlQTUM2X0JSX0lOU1RfUkVUSVJFRAkweGM0Ci0jZGVmaW5lCVBNQzZfQlJfTUlTU19Q
UkVEX1JFVElSRUQgMHhjNQotI2RlZmluZQlQTUM2X0JSX1RBS0VOX1JFVElSRUQJMHhjOQotI2Rl
ZmluZQlQTUM2X0JSX01JU1NfUFJFRF9UQUtFTl9SRVQgMHhjYQotI2RlZmluZQlQTUM2X0JSX0lO
U1RfREVDT0RFRAkweGUwCi0jZGVmaW5lCVBNQzZfQlRCX01JU1NFUwkJMHhlMgotI2RlZmluZQlQ
TUM2X0JSX0JPR1VTCQkweGU0Ci0jZGVmaW5lCVBNQzZfQkFDTEVBUlMJCTB4ZTYKLQotLyogU3Rh
bGxzICovCi0jZGVmaW5lCVBNQzZfUkVTT1VSQ0VfU1RBTExTCTB4YTIKLSNkZWZpbmUJUE1DNl9Q
QVJUSUFMX1JBVF9TVEFMTFMJMHhkMgotCi0vKiBTZWdtZW50IFJlZ2lzdGVyIExvYWRzICovCi0j
ZGVmaW5lCVBNQzZfU0VHTUVOVF9SRUdfTE9BRFMJMHgwNgotCi0vKiBDbG9ja3MgKi8KLSNkZWZp
bmUJUE1DNl9DUFVfQ0xLX1VOSEFMVEVECTB4NzkKLQotLyoKLSAqIFBlbnRpdW0gUGVyZm9ybWFu
Y2UgQ291bnRlcnMKLSAqIFRoaXMgbGlzdCBjb21lcyBmcm9tIHRoZSBIYXJ2YXJkIHBlb3BsZSwg
bm90IEludGVsLgotICovCi0jZGVmaW5lCVBNQzVfREFUQV9SRUFECQkwCi0jZGVmaW5lCVBNQzVf
REFUQV9XUklURQkJMQotI2RlZmluZQlQTUM1X0RBVEFfVExCX01JU1MJMgotI2RlZmluZQlQTUM1
X0RBVEFfUkVBRF9NSVNTCTMKLSNkZWZpbmUJUE1DNV9EQVRBX1dSSVRFX01JU1MJNAotI2RlZmlu
ZQlQTUM1X1dSSVRFX01fRQkJNQotI2RlZmluZQlQTUM1X0RBVEFfTElORVNfV0JBQ0sJNgotI2Rl
ZmluZQlQTUM1X0RBVEFfQ0FDSEVfU05PT1AJNwotI2RlZmluZQlQTUM1X0RBVEFfQ0FDSEVfU05P
T1BfSElUIDgKLSNkZWZpbmUJUE1DNV9NRU1fQUNDRVNTX0JPVEgJOQotI2RlZmluZQlQTUM1X0JB
TktfQ09ORkxJQ1RTCTEwCi0jZGVmaW5lCVBNQzVfTUlTQUxJR05FRF9EQVRBCTExCi0jZGVmaW5l
CVBNQzVfSU5TVF9SRUFECQkxMgotI2RlZmluZQlQTUM1X0lOU1RfVExCX01JU1MJMTMKLSNkZWZp
bmUJUE1DNV9JTlNUX0NBQ0hFX01JU1MJMTQKLSNkZWZpbmUJUE1DNV9TRUdNRU5UX1JFR19MT0FE
CTE1Ci0jZGVmaW5lCVBNQzVfQlJBTkNIRVMJCTE4Ci0jZGVmaW5lCVBNQzVfQlRCX0hJVFMJCTE5
Ci0jZGVmaW5lCVBNQzVfQlJBTkNIX1RBS0VOCTIwCi0jZGVmaW5lCVBNQzVfUElQRUxJTkVfRkxV
U0gJMjEKLSNkZWZpbmUJUE1DNV9JTlNUX0VYRUNVVEVECTIyCi0jZGVmaW5lIFBNQzVfSU5TVF9F
WEVDVVRFRF9WCTIzCi0jZGVmaW5lCVBNQzVfQlVTX1VUSUxJWkFUSU9OCTI0Ci0jZGVmaW5lCVBN
QzVfV1JJVEVfQkFDS1VQX1NUQUxMCTI1Ci0jZGVmaW5lCVBNQzVfREFUQV9SRUFEX1NUQUxMCTI2
Ci0jZGVmaW5lCVBNQzVfV1JJVEVfRV9NX1NUQUxMCTI3Ci0jZGVmaW5lCVBNQzVfTE9DS0VEX0JV
UwkJMjgKLSNkZWZpbmUJUE1DNV9JT19DWUNMRQkJMjkKLSNkZWZpbmUJUE1DNV9OT05DQUNIRV9N
RU1PUlkJMzAKLSNkZWZpbmUJUE1DNV9BRERSX0dFTl9JTlRFUkxPQ0sJMzEKLSNkZWZpbmUJUE1D
NV9GTE9QUwkJMzQKLSNkZWZpbmUJUE1DNV9CUDBfTUFUQ0gJCTM1Ci0jZGVmaW5lCVBNQzVfQlAx
X01BVENICQkzNgotI2RlZmluZQlQTUM1X0JQMl9NQVRDSAkJMzcKLSNkZWZpbmUJUE1DNV9CUDNf
TUFUQ0gJCTM4Ci0jZGVmaW5lCVBNQzVfSFdfSU5UUgkJMzkKLSNkZWZpbmUJUE1DNV9EQVRBX1JX
CQk0MAotI2RlZmluZQlQTUM1X0RBVEFfUldfTUlTUwk0MQotCi0jZW5kaWYgLyogIV9NQUNISU5F
X1BFUkZNT05fSF8gKi8KSW5kZXg6IHN5cy9pMzg2L2NvbmYvTk9URVMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
c3lzL2kzODYvY29uZi9OT1RFUwkocmV2aXNpb24gMjEwNTM2KQorKysgc3lzL2kzODYvY29uZi9O
T1RFUwkod29ya2luZyBjb3B5KQpAQCAtMjExLDEyICsyMTEsNiBAQAogb3B0aW9ucyAJTlBYX0RF
QlVHCSMgZW5hYmxlIG5weCBkZWJ1Z2dpbmcKIAogIwotIyBQRVJGTU9OIGNhdXNlcyB0aGUgZHJp
dmVyIGZvciBQZW50aXVtL1BlbnRpdW0gUHJvIHBlcmZvcm1hbmNlIGNvdW50ZXJzCi0jIHRvIGJl
IGNvbXBpbGVkLiAgU2VlIHBlcmZtb24oNCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0jCi1vcHRp
b25zIAlQRVJGTU9OCi0KLSMKICMgWEJPWCBjYXVzZXMgdGhlIGtlcm5lbCB0byBiZSBib290YWJs
ZSBvbiB0aGUgTWljcm9zb2Z0IFhCb3ggY29uc29sZSBzeXN0ZW0uCiAjIFRoZSByZXN1bHRpbmcg
a2VybmVsIHdpbGwgYXV0by1kZXRlY3Qgd2hldGhlciBpdCBpcyBiZWluZyBib290ZWQgb24gYSBY
Qm94LAogIyBzbyBrZXJuZWxzIGNvbXBpbGVkIHdpdGggdGhpcyBvcHRpb24gd2lsbCBhbHNvIHdv
cmsgb24gYW4gb3JkaW5hcnkgUEMuCkluZGV4OiBzeXMvaTM4Ni9pMzg2L3BlcmZtb24uYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBzeXMvaTM4Ni9pMzg2L3BlcmZtb24uYwkocmV2aXNpb24gMjEwNTM2KQorKysg
c3lzL2kzODYvaTM4Ni9wZXJmbW9uLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNDA0ICswLDAgQEAK
LS8qLQotICogQ29weXJpZ2h0IDE5OTYgTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5v
bG9neQotICoKLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmli
dXRlIHRoaXMgc29mdHdhcmUgYW5kCi0gKiBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBv
c2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVieQotICogZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCBi
b3RoIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzCi0gKiBwZXJtaXNzaW9uIG5v
dGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcywgdGhhdCBib3RoIHRoZSBhYm92ZQotICogY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsCi0gKiBz
dXBwb3J0aW5nIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIE0uSS5ULiBub3Qg
YmUgdXNlZAotICogaW4gYWR2ZXJ0aXNpbmcgb3IgcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gZGlz
dHJpYnV0aW9uIG9mIHRoZQotICogc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYywgd3JpdHRlbiBw
cmlvciBwZXJtaXNzaW9uLiAgTS5JLlQuIG1ha2VzCi0gKiBubyByZXByZXNlbnRhdGlvbnMgYWJv
dXQgdGhlIHN1aXRhYmlsaXR5IG9mIHRoaXMgc29mdHdhcmUgZm9yIGFueQotICogcHVycG9zZS4g
IEl0IGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQKLSAqIHdh
cnJhbnR5LgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE0uSS5ULiBgYEFT
IElTJycuICBNLkkuVC4gRElTQ0xBSU1TCi0gKiBBTEwgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSwKLSAqIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBJTiBOTyBFVkVOVAotICog
U0hBTEwgTS5JLlQuIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GCi0gKiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
LSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSA8c3lzL2NkZWZzLmg+Ci1fX0ZCU0RJRCgiJEZyZWVCU0QkIik7Ci0KLSNpbmNsdWRlIDxz
eXMvcGFyYW0uaD4KLSNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KLSNpbmNsdWRlIDxzeXMvY29uZi5o
PgotI2luY2x1ZGUgPHN5cy9mY250bC5oPgotI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KLQotI2lm
bmRlZiBTTVAKLSNpbmNsdWRlIDxtYWNoaW5lL2NwdXR5cGVzLmg+Ci0jZW5kaWYKLSNpbmNsdWRl
IDxtYWNoaW5lL2Nsb2NrLmg+Ci0jaW5jbHVkZSA8bWFjaGluZS9wZXJmbW9uLmg+Ci0jaW5jbHVk
ZSA8bWFjaGluZS9zcGVjaWFscmVnLmg+Ci0KLXN0YXRpYyBpbnQgcGVyZm1vbl9pbnVzZTsKLXN0
YXRpYyBpbnQgcGVyZm1vbl9jcHVvazsKLSNpZm5kZWYgU01QCi1zdGF0aWMgaW50IG1zcl9jdGxb
TlBNQ107Ci0jZW5kaWYKLXN0YXRpYyBpbnQgbXNyX3BtY1tOUE1DXTsKLXN0YXRpYyB1bnNpZ25l
ZCBpbnQgY3RsX3NoYWRvd1tOUE1DXTsKLXN0YXRpYyBxdWFkX3QgcG1jX3NoYWRvd1tOUE1DXTsJ
LyogdXNlZCB3aGVuIGN0ciBpcyBzdG9wcGVkIG9uIFA1ICovCi1zdGF0aWMgaW50ICgqd3JpdGVj
dGwpKGludCk7Ci0jaWZuZGVmIFNNUAotc3RhdGljIGludCB3cml0ZWN0bDUoaW50KTsKLXN0YXRp
YyBpbnQgd3JpdGVjdGw2KGludCk7Ci0jZW5kaWYKLQotc3RhdGljIGRfY2xvc2VfdCBwZXJmbW9u
X2Nsb3NlOwotc3RhdGljIGRfb3Blbl90CXBlcmZtb25fb3BlbjsKLXN0YXRpYyBkX2lvY3RsX3Qg
cGVyZm1vbl9pb2N0bDsKLQotLyoKLSAqIFhYWCBwZXJmbW9uX2luaXRfZGV2KHZvaWQgKikgaXMg
YSBzcGxpdCBmcm9tIHRoZSBwZXJmbW9uX2luaXQoKSBmdW50aW9uLiAKLSAqIFRoaXMgc29sdmVz
IGEgcHJvYmxlbSBmb3IgREVWRlMgdXNlcnMuICBJdCBsb2FkcyB0aGUgInBlcmZtb24iIGRyaXZl
ciBhZnRlcgotICogdGhlIERFVkZTIHN1YnN5c3RlbSBoYXMgYmVlbiBraWNrZWQgaW50byBhY3Rp
b24uICBUaGUgU0lfT1JERVJfQU5ZIGlzIHRvCi0gKiBhc3N1cmUgdGhhdCBpdCBpcyB0aGUgbW9z
dCBsb3dlc3QgcHJpb3JpdHkgdGFzayB3aGljaCwgZ3VhcmFudGVlcyB0aGUKLSAqIGFib3ZlLgot
ICovCi1zdGF0aWMgdm9pZCBwZXJmbW9uX2luaXRfZGV2KHZvaWQgKik7Ci1TWVNJTklUKGNwdSwg
U0lfU1VCX0RSSVZFUlMsIFNJX09SREVSX0FOWSwgcGVyZm1vbl9pbml0X2RldiwgTlVMTCk7Ci0K
LXN0YXRpYyBzdHJ1Y3QgY2RldnN3IHBlcmZtb25fY2RldnN3ID0gewotCS5kX3ZlcnNpb24gPQlE
X1ZFUlNJT04sCi0JLmRfZmxhZ3MgPQlEX05FRURHSUFOVCwKLQkuZF9vcGVuID0JcGVyZm1vbl9v
cGVuLAotCS5kX2Nsb3NlID0JcGVyZm1vbl9jbG9zZSwKLQkuZF9pb2N0bCA9CXBlcmZtb25faW9j
dGwsCi0JLmRfbmFtZSA9CSJwZXJmbW9uIiwKLX07Ci0KLS8qCi0gKiBNdXN0IGJlIGNhbGxlZCBh
ZnRlciBjcHVfY2xhc3MgaXMgc2V0IHVwLgotICovCi12b2lkCi1wZXJmbW9uX2luaXQodm9pZCkK
LXsKLSNpZm5kZWYgU01QCi0Jc3dpdGNoKGNwdV9jbGFzcykgewotCWNhc2UgQ1BVQ0xBU1NfNTg2
OgotCQlwZXJmbW9uX2NwdW9rID0gMTsKLQkJbXNyX2N0bFswXSA9IE1TUl9QNV9DRVNSOwotCQlt
c3JfY3RsWzFdID0gTVNSX1A1X0NFU1I7Ci0JCW1zcl9wbWNbMF0gPSBNU1JfUDVfQ1RSMDsKLQkJ
bXNyX3BtY1sxXSA9IE1TUl9QNV9DVFIxOwotCQl3cml0ZWN0bCA9IHdyaXRlY3RsNTsKLQkJYnJl
YWs7Ci0JY2FzZSBDUFVDTEFTU182ODY6Ci0JCXBlcmZtb25fY3B1b2sgPSAxOwotCQltc3JfY3Rs
WzBdID0gTVNSX0VWTlRTRUwwOwotCQltc3JfY3RsWzFdID0gTVNSX0VWTlRTRUwxOwotCQltc3Jf
cG1jWzBdID0gTVNSX1BFUkZDVFIwOwotCQltc3JfcG1jWzFdID0gTVNSX1BFUkZDVFIxOwotCQl3
cml0ZWN0bCA9IHdyaXRlY3RsNjsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlwZXJmbW9uX2Nw
dW9rID0gMDsKLQkJYnJlYWs7Ci0JfQotI2VuZGlmIC8qIFNNUCAqLwotfQotCi1zdGF0aWMgdm9p
ZAotcGVyZm1vbl9pbml0X2RldihkdW1teSkKLQl2b2lkICpkdW1teTsKLXsKLQltYWtlX2Rldigm
cGVyZm1vbl9jZGV2c3csIDMyLCBVSURfUk9PVCwgR0lEX0tNRU0sIDA2NDAsICJwZXJmbW9uIik7
Ci19Ci0KLWludAotcGVyZm1vbl9hdmFpbCh2b2lkKQotewotCXJldHVybiBwZXJmbW9uX2NwdW9r
OwotfQotCi1pbnQKLXBlcmZtb25fc2V0dXAoaW50IHBtYywgdW5zaWduZWQgaW50IGNvbnRyb2wp
Ci17Ci0JcmVnaXN0ZXJfdAlzYXZlY3JpdDsKLQotCWlmIChwbWMgPCAwIHx8IHBtYyA+PSBOUE1D
KQotCQlyZXR1cm4gRUlOVkFMOwotCi0JcGVyZm1vbl9pbnVzZSB8PSAoMSA8PCBwbWMpOwotCWNv
bnRyb2wgJj0gfihQTUNGX1NZU19GTEFHUyA8PCAxNik7Ci0Jc2F2ZWNyaXQgPSBpbnRyX2Rpc2Fi
bGUoKTsKLQljdGxfc2hhZG93W3BtY10gPSBjb250cm9sOwotCXdyaXRlY3RsKHBtYyk7Ci0Jd3Jt
c3IobXNyX3BtY1twbWNdLCBwbWNfc2hhZG93W3BtY10gPSAwKTsKLQlpbnRyX3Jlc3RvcmUoc2F2
ZWNyaXQpOwotCXJldHVybiAwOwotfQotCi1pbnQKLXBlcmZtb25fZ2V0KGludCBwbWMsIHVuc2ln
bmVkIGludCAqY29udHJvbCkKLXsKLQlpZiAocG1jIDwgMCB8fCBwbWMgPj0gTlBNQykKLQkJcmV0
dXJuIEVJTlZBTDsKLQotCWlmIChwZXJmbW9uX2ludXNlICYgKDEgPDwgcG1jKSkgewotCQkqY29u
dHJvbCA9IGN0bF9zaGFkb3dbcG1jXTsKLQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiBFQlVTWTsJ
CS8qIFhYWCByZXZlcnNlZCBzZW5zZSAqLwotfQotCi1pbnQKLXBlcmZtb25fZmluaShpbnQgcG1j
KQotewotCWlmIChwbWMgPCAwIHx8IHBtYyA+PSBOUE1DKQotCQlyZXR1cm4gRUlOVkFMOwotCi0J
aWYgKHBlcmZtb25faW51c2UgJiAoMSA8PCBwbWMpKSB7Ci0JCXBlcmZtb25fc3RvcChwbWMpOwot
CQljdGxfc2hhZG93W3BtY10gPSAwOwotCQlwZXJmbW9uX2ludXNlICY9IH4oMSA8PCBwbWMpOwot
CQlyZXR1cm4gMDsKLQl9Ci0JcmV0dXJuIEVCVVNZOwkJLyogWFhYIHJldmVyc2VkIHNlbnNlICov
Ci19Ci0KLWludAotcGVyZm1vbl9zdGFydChpbnQgcG1jKQotewotCXJlZ2lzdGVyX3QJc2F2ZWNy
aXQ7Ci0KLQlpZiAocG1jIDwgMCB8fCBwbWMgPj0gTlBNQykKLQkJcmV0dXJuIEVJTlZBTDsKLQot
CWlmIChwZXJmbW9uX2ludXNlICYgKDEgPDwgcG1jKSkgewotCQlzYXZlY3JpdCA9IGludHJfZGlz
YWJsZSgpOwotCQljdGxfc2hhZG93W3BtY10gfD0gKFBNQ0ZfRU4gPDwgMTYpOwotCQl3cm1zciht
c3JfcG1jW3BtY10sIHBtY19zaGFkb3dbcG1jXSk7Ci0JCXdyaXRlY3RsKHBtYyk7Ci0JCWludHJf
cmVzdG9yZShzYXZlY3JpdCk7Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gRUJVU1k7Ci19Ci0K
LWludAotcGVyZm1vbl9zdG9wKGludCBwbWMpCi17Ci0JcmVnaXN0ZXJfdAlzYXZlY3JpdDsKLQot
CWlmIChwbWMgPCAwIHx8IHBtYyA+PSBOUE1DKQotCQlyZXR1cm4gRUlOVkFMOwotCi0JaWYgKHBl
cmZtb25faW51c2UgJiAoMSA8PCBwbWMpKSB7Ci0JCXNhdmVjcml0ID0gaW50cl9kaXNhYmxlKCk7
Ci0JCXBtY19zaGFkb3dbcG1jXSA9IHJkbXNyKG1zcl9wbWNbcG1jXSkgJiAweGZmZmZmZmZmZmZV
TEw7Ci0JCWN0bF9zaGFkb3dbcG1jXSAmPSB+KFBNQ0ZfRU4gPDwgMTYpOwotCQl3cml0ZWN0bChw
bWMpOwotCQlpbnRyX3Jlc3RvcmUoc2F2ZWNyaXQpOwotCQlyZXR1cm4gMDsKLQl9Ci0JcmV0dXJu
IEVCVVNZOwotfQotCi1pbnQKLXBlcmZtb25fcmVhZChpbnQgcG1jLCBxdWFkX3QgKnZhbCkKLXsK
LQlpZiAocG1jIDwgMCB8fCBwbWMgPj0gTlBNQykKLQkJcmV0dXJuIEVJTlZBTDsKLQotCWlmIChw
ZXJmbW9uX2ludXNlICYgKDEgPDwgcG1jKSkgewotCQlpZiAoY3RsX3NoYWRvd1twbWNdICYgKFBN
Q0ZfRU4gPDwgMTYpKQotCQkJKnZhbCA9IHJkbXNyKG1zcl9wbWNbcG1jXSkgJiAweGZmZmZmZmZm
ZmZVTEw7Ci0JCWVsc2UKLQkJCSp2YWwgPSBwbWNfc2hhZG93W3BtY107Ci0JCXJldHVybiAwOwot
CX0KLQotCXJldHVybiBFQlVTWTsKLX0KLQotaW50Ci1wZXJmbW9uX3Jlc2V0KGludCBwbWMpCi17
Ci0JaWYgKHBtYyA8IDAgfHwgcG1jID49IE5QTUMpCi0JCXJldHVybiBFSU5WQUw7Ci0KLQlpZiAo
cGVyZm1vbl9pbnVzZSAmICgxIDw8IHBtYykpIHsKLQkJd3Jtc3IobXNyX3BtY1twbWNdLCBwbWNf
c2hhZG93W3BtY10gPSAwKTsKLQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiBFQlVTWTsKLX0KLQot
I2lmbmRlZiBTTVAKLS8qCi0gKiBVbmZvcnR1bmF0ZWx5LCB0aGUgcGVyZm9ybWFuY2UtbW9uaXRv
cmluZyByZWdpc3RlcnMgYXJlIGxhaWQgb3V0Ci0gKiBkaWZmZXJlbnRseSBpbiB0aGUgUDUgYW5k
IFA2LiAgV2Uga2VlcCBldmVyeXRoaW5nIGluIFA2IGZvcm1hdAotICogaW50ZXJuYWxseSAoZXhj
ZXB0IGZvciB0aGUgZXZlbnQgY29kZSksIGFuZCBjb252ZXJ0IHRvIFA1Ci0gKiBmb3JtYXQgYXMg
bmVlZGVkIG9uIHRob3NlIENQVXMuICBUaGUgd3JpdGVjdGwgZnVuY3Rpb24gcG9pbnRlcgotICog
aXMgc2V0IHVwIHRvIHBvaW50IHRvIG9uZSBvZiB0aGVzZSBmdW5jdGlvbnMgYnkgcGVyZm1vbl9p
bml0KCkuCi0gKi8KLWludAotd3JpdGVjdGw2KGludCBwbWMpCi17Ci0JaWYgKHBtYyA+IDAgJiYg
IShjdGxfc2hhZG93W3BtY10gJiAoUE1DRl9FTiA8PCAxNikpKSB7Ci0JCXdybXNyKG1zcl9jdGxb
cG1jXSwgMCk7Ci0JfSBlbHNlIHsKLQkJd3Jtc3IobXNyX2N0bFtwbWNdLCBjdGxfc2hhZG93W3Bt
Y10pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotI2RlZmluZQlQNUZMQUdfUAkweDIwMAotI2RlZmlu
ZQlQNUZMQUdfRQkweDEwMAotI2RlZmluZQlQNUZMQUdfVVNSCTB4ODAKLSNkZWZpbmUJUDVGTEFH
X09TCTB4NDAKLQotaW50Ci13cml0ZWN0bDUoaW50IHBtYykKLXsKLQlxdWFkX3QgbmV3dmFsID0g
MDsKLQotCWlmIChjdGxfc2hhZG93WzFdICYgKFBNQ0ZfRU4gPDwgMTYpKSB7Ci0JCWlmIChjdGxf
c2hhZG93WzFdICYgKFBNQ0ZfVVNSIDw8IDE2KSkKLQkJCW5ld3ZhbCB8PSBQNUZMQUdfVVNSIDw8
IDE2OwotCQlpZiAoY3RsX3NoYWRvd1sxXSAmIChQTUNGX09TIDw8IDE2KSkKLQkJCW5ld3ZhbCB8
PSBQNUZMQUdfT1MgPDwgMTY7Ci0JCWlmICghKGN0bF9zaGFkb3dbMV0gJiAoUE1DRl9FIDw8IDE2
KSkpCi0JCQluZXd2YWwgfD0gUDVGTEFHX0UgPDwgMTY7Ci0JCW5ld3ZhbCB8PSAoY3RsX3NoYWRv
d1sxXSAmIDB4M2YpIDw8IDE2OwotCX0KLQlpZiAoY3RsX3NoYWRvd1swXSAmIChQTUNGX0VOIDw8
IDE2KSkgewotCQlpZiAoY3RsX3NoYWRvd1swXSAmIChQTUNGX1VTUiA8PCAxNikpCi0JCQluZXd2
YWwgfD0gUDVGTEFHX1VTUjsKLQkJaWYgKGN0bF9zaGFkb3dbMF0gJiAoUE1DRl9PUyA8PCAxNikp
Ci0JCQluZXd2YWwgfD0gUDVGTEFHX09TOwotCQlpZiAoIShjdGxfc2hhZG93WzBdICYgKFBNQ0Zf
RSA8PCAxNikpKQotCQkJbmV3dmFsIHw9IFA1RkxBR19FOwotCQluZXd2YWwgfD0gY3RsX3NoYWRv
d1swXSAmIDB4M2Y7Ci0JfQotCi0Jd3Jtc3IobXNyX2N0bFswXSwgbmV3dmFsKTsKLQlyZXR1cm4g
MDsJCS8qIFhYWCBzaG91bGQgY2hlY2sgZm9yIHVuaW1wbGVtZW50ZWQgYml0cyAqLwotfQotI2Vu
ZGlmIC8qICFTTVAgKi8KLQotLyoKLSAqIE5vdyB0aGUgdXNlci1tb2RlIGludGVyZmFjZSwgY2Fs
bGVkIGZyb20gYSBzdWJkZXZpY2Ugb2YgbWVtLmMuCi0gKi8KLXN0YXRpYyBpbnQgd3JpdGVyOwot
c3RhdGljIGludCB3cml0ZXJwbWM7Ci0KLXN0YXRpYyBpbnQKLXBlcmZtb25fb3BlbihzdHJ1Y3Qg
Y2RldiAqZGV2LCBpbnQgZmxhZ3MsIGludCBmbXQsIHN0cnVjdCB0aHJlYWQgKnRkKQotewotCWlm
ICghcGVyZm1vbl9jcHVvaykKLQkJcmV0dXJuIEVOWElPOwotCi0JaWYgKGZsYWdzICYgRldSSVRF
KSB7Ci0JCWlmICh3cml0ZXIpIHsKLQkJCXJldHVybiBFQlVTWTsKLQkJfSBlbHNlIHsKLQkJCXdy
aXRlciA9IDE7Ci0JCQl3cml0ZXJwbWMgPSAwOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1z
dGF0aWMgaW50Ci1wZXJmbW9uX2Nsb3NlKHN0cnVjdCBjZGV2ICpkZXYsIGludCBmbGFncywgaW50
IGZtdCwgc3RydWN0IHRocmVhZCAqdGQpCi17Ci0JaWYgKGZsYWdzICYgRldSSVRFKSB7Ci0JCWlu
dCBpOwotCi0JCWZvciAoaSA9IDA7IGkgPCBOUE1DOyBpKyspIHsKLQkJCWlmICh3cml0ZXJwbWMg
JiAoMSA8PCBpKSkKLQkJCQlwZXJmbW9uX2ZpbmkoaSk7Ci0JCX0KLQkJd3JpdGVyID0gMDsKLQl9
Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQKLXBlcmZtb25faW9jdGwoc3RydWN0IGNkZXYg
KmRldiwgdV9sb25nIGNtZCwgY2FkZHJfdCBwYXJhbSwgaW50IGZsYWdzLCBzdHJ1Y3QgdGhyZWFk
ICp0ZCkKLXsKLQlzdHJ1Y3QgcG1jICpwbWM7Ci0Jc3RydWN0IHBtY19kYXRhICpwbWNkOwotCXN0
cnVjdCBwbWNfdHN0YW1wICpwbWN0OwotCWludCAqaXA7Ci0JaW50IHJ2OwotCi0Jc3dpdGNoKGNt
ZCkgewotCWNhc2UgUE1JT1NFVFVQOgotCQlpZiAoIShmbGFncyAmIEZXUklURSkpCi0JCQlyZXR1
cm4gRVBFUk07Ci0JCXBtYyA9IChzdHJ1Y3QgcG1jICopcGFyYW07Ci0KLQkJcnYgPSBwZXJmbW9u
X3NldHVwKHBtYy0+cG1jX251bSwgcG1jLT5wbWNfdmFsKTsKLQkJaWYgKCFydikgewotCQkJd3Jp
dGVycG1jIHw9ICgxIDw8IHBtYy0+cG1jX251bSk7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFBN
SU9HRVQ6Ci0JCXBtYyA9IChzdHJ1Y3QgcG1jICopcGFyYW07Ci0JCXJ2ID0gcGVyZm1vbl9nZXQo
cG1jLT5wbWNfbnVtLCAmcG1jLT5wbWNfdmFsKTsKLQkJYnJlYWs7Ci0KLQljYXNlIFBNSU9TVEFS
VDoKLQkJaWYgKCEoZmxhZ3MgJiBGV1JJVEUpKQotCQkJcmV0dXJuIEVQRVJNOwotCi0JCWlwID0g
KGludCAqKXBhcmFtOwotCQlydiA9IHBlcmZtb25fc3RhcnQoKmlwKTsKLQkJYnJlYWs7Ci0KLQlj
YXNlIFBNSU9TVE9QOgotCQlpZiAoIShmbGFncyAmIEZXUklURSkpCi0JCQlyZXR1cm4gRVBFUk07
Ci0KLQkJaXAgPSAoaW50ICopcGFyYW07Ci0JCXJ2ID0gcGVyZm1vbl9zdG9wKCppcCk7Ci0JCWJy
ZWFrOwotCi0JY2FzZSBQTUlPUkVTRVQ6Ci0JCWlmICghKGZsYWdzICYgRldSSVRFKSkKLQkJCXJl
dHVybiBFUEVSTTsKLQotCQlpcCA9IChpbnQgKilwYXJhbTsKLQkJcnYgPSBwZXJmbW9uX3Jlc2V0
KCppcCk7Ci0JCWJyZWFrOwotCi0JY2FzZSBQTUlPUkVBRDoKLQkJcG1jZCA9IChzdHJ1Y3QgcG1j
X2RhdGEgKilwYXJhbTsKLQkJcnYgPSBwZXJmbW9uX3JlYWQocG1jZC0+cG1jZF9udW0sICZwbWNk
LT5wbWNkX3ZhbHVlKTsKLQkJYnJlYWs7Ci0KLQljYXNlIFBNSU9UU1RBTVA6Ci0JCWlmICghdHNj
X2ZyZXEpIHsKLQkJCXJ2ID0gRU5PVFRZOwotCQkJYnJlYWs7Ci0JCX0KLQkJcG1jdCA9IChzdHJ1
Y3QgcG1jX3RzdGFtcCAqKXBhcmFtOwotCQkvKiBYWFggaW50ZXJmYWNlIGxvc2VzIHByZWNpc2lv
bi4gKi8KLQkJcG1jdC0+cG1jdF9yYXRlID0gdHNjX2ZyZXEgLyAxMDAwMDAwOwotCQlwbWN0LT5w
bWN0X3ZhbHVlID0gcmR0c2MoKTsKLQkJcnYgPSAwOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQly
diA9IEVOT1RUWTsKLQl9Ci0KLQlyZXR1cm4gcnY7Ci19CkluZGV4OiBzeXMvaTM4Ni9pMzg2L21h
Y2hkZXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvaTM4Ni9pMzg2L21hY2hkZXAuYwkocmV2aXNpb24g
MjEwNTM2KQorKysgc3lzL2kzODYvaTM4Ni9tYWNoZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDcgKzUyLDYgQEAKICNpbmNsdWRlICJvcHRfbWF4bWVtLmgiCiAjaW5jbHVkZSAib3B0X21zZ2J1
Zi5oIgogI2luY2x1ZGUgIm9wdF9ucHguaCIKLSNpbmNsdWRlICJvcHRfcGVyZm1vbi5oIgogI2lu
Y2x1ZGUgIm9wdF94Ym94LmgiCiAKICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KQEAgLTEyNSw5ICsx
MjQsNiBAQAogI2luY2x1ZGUgPG1hY2hpbmUvc2lnZnJhbWUuaD4KICNpbmNsdWRlIDxtYWNoaW5l
L3NwZWNpYWxyZWcuaD4KICNpbmNsdWRlIDxtYWNoaW5lL3ZtODYuaD4KLSNpZmRlZiBQRVJGTU9O
Ci0jaW5jbHVkZSA8bWFjaGluZS9wZXJmbW9uLmg+Ci0jZW5kaWYKICNpZmRlZiBTTVAKICNpbmNs
dWRlIDxtYWNoaW5lL3NtcC5oPgogI2VuZGlmCkBAIC0yNzgsOSArMjc0LDYgQEAKIAlzdGFydHJ0
Y2xvY2soKTsKIAlwcmludGNwdWluZm8oKTsKIAlwYW5pY2lmY3B1dW5zdXBwb3J0ZWQoKTsKLSNp
ZmRlZiBQRVJGTU9OCi0JcGVyZm1vbl9pbml0KCk7Ci0jZW5kaWYKIAlyZWFsbWVtID0gTWF4bWVt
OwogCiAJLyoKSW5kZXg6IHN5cy9pMzg2L2lzYS9wcm9mX21hY2hkZXAuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBzeXMvaTM4Ni9pc2EvcHJvZl9tYWNoZGVwLmMJKHJldmlzaW9uIDIxMDUzNikKKysrIHN5cy9p
Mzg2L2lzYS9wcm9mX21hY2hkZXAuYwkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAog
CiAjaWZkZWYgR1VQUk9GCiAjaW5jbHVkZSAib3B0X2k1ODZfZ3Vwcm9mLmgiCi0jaW5jbHVkZSAi
b3B0X3BlcmZtb24uaCIKIAogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUgPHN5cy9z
eXN0bS5oPgpAQCAtNDIsNyArNDEsNiBAQAogI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KIAogI2lu
Y2x1ZGUgPG1hY2hpbmUvY2xvY2suaD4KLSNpbmNsdWRlIDxtYWNoaW5lL3BlcmZtb24uaD4KICNp
bmNsdWRlIDxtYWNoaW5lL3RpbWVycmVnLmg+CiAKICNkZWZpbmUJQ1BVVElNRV9DTE9DS19VTklO
SVRJQUxJWkVECTAKQEAgLTU0LDExICs1Miw2IEBACiBpbnQJY3B1dGltZV9iaWFzID0gMTsJLyog
aW5pdGlhbGl6ZSBmb3IgbG9jYWxpdHkgb2YgcmVmZXJlbmNlICovCiAKIHN0YXRpYyBpbnQJY3B1
dGltZV9jbG9jayA9IENQVVRJTUVfQ0xPQ0tfVU5JTklUSUFMSVpFRDsKLSNpZiBkZWZpbmVkKFBF
UkZNT04pICYmIGRlZmluZWQoSTU4Nl9QTUNfR1VQUk9GKQotc3RhdGljIHVfaW50CWNwdXRpbWVf
Y2xvY2tfcG1jX2NvbmYgPSBJNTg2X1BNQ19HVVBST0Y7Ci1zdGF0aWMgaW50CWNwdXRpbWVfY2xv
Y2tfcG1jX2luaXQ7Ci1zdGF0aWMgc3RydWN0IGdtb25wYXJhbSBzYXZlZF9nbXA7Ci0jZW5kaWYK
ICNpZiBkZWZpbmVkKEk1ODZfQ1BVKSB8fCBkZWZpbmVkKEk2ODZfQ1BVKQogc3RhdGljIGludAlj
cHV0aW1lX3Byb2ZfYWN0aXZlOwogI2VuZGlmCkBAIC0xNzAsMTAgKzE2Myw2IEBACiB7CiAJdV9p
bnQgY291bnQ7CiAJaW50IGRlbHRhOwotI2lmIChkZWZpbmVkKEk1ODZfQ1BVKSB8fCBkZWZpbmVk
KEk2ODZfQ1BVKSkgJiYgIWRlZmluZWQoU01QKSAmJiBcCi0gICAgZGVmaW5lZChQRVJGTU9OKSAm
JiBkZWZpbmVkKEk1ODZfUE1DX0dVUFJPRikKLQl1X3F1YWRfdCBldmVudF9jb3VudDsKLSNlbmRp
ZgogCXVfY2hhciBoaWdoLCBsb3c7CiAJc3RhdGljIHVfaW50IHByZXZfY291bnQ7CiAKQEAgLTE5
MSwyMSArMTgwLDYgQEAKIAkJcHJldl9jb3VudCA9IGNvdW50OwogCQlyZXR1cm4gKGRlbHRhKTsK
IAl9Ci0jaWYgZGVmaW5lZChQRVJGTU9OKSAmJiBkZWZpbmVkKEk1ODZfUE1DX0dVUFJPRikgJiYg
IWRlZmluZWQoU01QKQotCWlmIChjcHV0aW1lX2Nsb2NrID09IENQVVRJTUVfQ0xPQ0tfSTU4Nl9Q
TUMpIHsKLQkJLyoKLQkJICogWFhYIHBlcm1vbl9yZWFkKCkgc2hvdWxkIGJlIGlubGluZWQgc28g
dGhhdCB0aGUKLQkJICogcGVyZm1vbiBtb2R1bGUgZG9lc24ndCBuZWVkIHRvIGJlIGNvbXBpbGVk
IHdpdGgKLQkJICogcHJvZmlsaW5nIGRpc2FibGVkIGFuZCBzbyB0aGF0IGl0IGlzIGZhc3QuCi0J
CSAqLwotCQlwZXJmbW9uX3JlYWQoMCwgJmV2ZW50X2NvdW50KTsKLQotCQljb3VudCA9ICh1X2lu
dClldmVudF9jb3VudDsKLQkJZGVsdGEgPSAoaW50KShjb3VudCAtIHByZXZfY291bnQpOwotCQlw
cmV2X2NvdW50ID0gY291bnQ7Ci0JCXJldHVybiAoZGVsdGEpOwotCX0KLSNlbmRpZiAvKiBQRVJG
TU9OICYmIEk1ODZfUE1DX0dVUFJPRiAmJiAhU01QICovCiAjZW5kaWYgLyogSTU4Nl9DUFUgfHwg
STY4Nl9DUFUgKi8KIAogCS8qCkBAIC0yMzcsMzkgKzIxMSwxMyBAQAogewogCWludCBjbG9jazsK
IAlpbnQgZXJyb3I7Ci0jaWYgZGVmaW5lZChQRVJGTU9OKSAmJiBkZWZpbmVkKEk1ODZfUE1DX0dV
UFJPRikKLQlpbnQgZXZlbnQ7Ci0Jc3RydWN0IHBtYyBwbWM7Ci0jZW5kaWYKIAogCWNsb2NrID0g
Y3B1dGltZV9jbG9jazsKLSNpZiBkZWZpbmVkKFBFUkZNT04pICYmIGRlZmluZWQoSTU4Nl9QTUNf
R1VQUk9GKQotCWlmIChjbG9jayA9PSBDUFVUSU1FX0NMT0NLX0k1ODZfUE1DKSB7Ci0JCXBtYy5w
bWNfdmFsID0gY3B1dGltZV9jbG9ja19wbWNfY29uZjsKLQkJY2xvY2sgKz0gcG1jLnBtY19ldmVu
dDsKLQl9Ci0jZW5kaWYKIAllcnJvciA9IHN5c2N0bF9oYW5kbGVfb3BhcXVlKG9pZHAsICZjbG9j
aywgc2l6ZW9mIGNsb2NrLCByZXEpOwogCWlmIChlcnJvciA9PSAwICYmIHJlcS0+bmV3cHRyICE9
IE5VTEwpIHsKLSNpZiBkZWZpbmVkKFBFUkZNT04pICYmIGRlZmluZWQoSTU4Nl9QTUNfR1VQUk9G
KQotCQlpZiAoY2xvY2sgPj0gQ1BVVElNRV9DTE9DS19JNTg2X1BNQykgewotCQkJZXZlbnQgPSBj
bG9jayAtIENQVVRJTUVfQ0xPQ0tfSTU4Nl9QTUM7Ci0JCQlpZiAoZXZlbnQgPj0gMjU2KQotCQkJ
CXJldHVybiAoRUlOVkFMKTsKLQkJCXBtYy5wbWNfbnVtID0gMDsKLQkJCXBtYy5wbWNfZXZlbnQg
PSBldmVudDsKLQkJCXBtYy5wbWNfdW5pdCA9IDA7Ci0JCQlwbWMucG1jX2ZsYWdzID0gUE1DRl9F
IHwgUE1DRl9PUyB8IFBNQ0ZfVVNSOwotCQkJcG1jLnBtY19tYXNrID0gMDsKLQkJCWNwdXRpbWVf
Y2xvY2tfcG1jX2NvbmYgPSBwbWMucG1jX3ZhbDsKLQkJCWNwdXRpbWVfY2xvY2sgPSBDUFVUSU1F
X0NMT0NLX0k1ODZfUE1DOwotCQl9IGVsc2UKLSNlbmRpZgotCQl7Ci0JCQlpZiAoY2xvY2sgPCAw
IHx8IGNsb2NrID49IENQVVRJTUVfQ0xPQ0tfSTU4Nl9QTUMpCi0JCQkJcmV0dXJuIChFSU5WQUwp
OwotCQkJY3B1dGltZV9jbG9jayA9IGNsb2NrOwotCQl9CisJCWlmIChjbG9jayA8IDAgfHwgY2xv
Y2sgPj0gQ1BVVElNRV9DTE9DS19JNTg2X1BNQykKKwkJCXJldHVybiAoRUlOVkFMKTsKKwkJY3B1
dGltZV9jbG9jayA9IGNsb2NrOwogCX0KIAlyZXR1cm4gKGVycm9yKTsKIH0KQEAgLTI5OSwzMiAr
MjQ3LDYgQEAKIAkJZ3AtPnByb2ZyYXRlID0gdHNjX2ZyZXEgPj4gMTsKIAkJY3B1dGltZV9wcm9m
X2FjdGl2ZSA9IDE7CiAJfQotI2lmIGRlZmluZWQoUEVSRk1PTikgJiYgZGVmaW5lZChJNTg2X1BN
Q19HVVBST0YpCi0JZWxzZSBpZiAoY3B1dGltZV9jbG9jayA9PSBDUFVUSU1FX0NMT0NLX0k1ODZf
UE1DKSB7Ci0JCWlmIChwZXJmbW9uX2F2YWlsKCkgJiYKLQkJICAgIHBlcmZtb25fc2V0dXAoMCwg
Y3B1dGltZV9jbG9ja19wbWNfY29uZikgPT0gMCkgewotCQkJaWYgKHBlcmZtb25fc3RhcnQoMCkg
IT0gMCkKLQkJCQlwZXJmbW9uX2ZpbmkoMCk7Ci0JCQllbHNlIHsKLQkJCQkvKiBYWFggMSBldmVu
dCA9PSAxIHVzLiAqLwotCQkJCWdwLT5wcm9mcmF0ZSA9IDEwMDAwMDA7Ci0KLQkJCQlzYXZlZF9n
bXAgPSAqZ3A7Ci0KLQkJCQkvKiBaYXAgb3ZlcmhlYWRzLiAgVGhleSBhcmUgaW52YWxpZC4gKi8K
LQkJCQlncC0+Y3B1dGltZV9vdmVyaGVhZCA9IDA7Ci0JCQkJZ3AtPm1jb3VudF9vdmVyaGVhZCA9
IDA7Ci0JCQkJZ3AtPm1jb3VudF9wb3N0X292ZXJoZWFkID0gMDsKLQkJCQlncC0+bWNvdW50X3By
ZV9vdmVyaGVhZCA9IDA7Ci0JCQkJZ3AtPm1leGl0Y291bnRfb3ZlcmhlYWQgPSAwOwotCQkJCWdw
LT5tZXhpdGNvdW50X3Bvc3Rfb3ZlcmhlYWQgPSAwOwotCQkJCWdwLT5tZXhpdGNvdW50X3ByZV9v
dmVyaGVhZCA9IDA7Ci0KLQkJCQljcHV0aW1lX2Nsb2NrX3BtY19pbml0ID0gVFJVRTsKLQkJCX0K
LQkJfQotCX0KLSNlbmRpZiAvKiBQRVJGTU9OICYmIEk1ODZfUE1DX0dVUFJPRiAqLwogI2VuZGlm
IC8qIEk1ODZfQ1BVIHx8IEk2ODZfQ1BVICovCiAJY3B1dGltZV9iaWFzID0gMDsKIAljcHV0aW1l
KCk7CkBAIC0zMzQsMTMgKzI1Niw2IEBACiBzdG9wZ3Vwcm9mKGdwKQogCXN0cnVjdCBnbW9ucGFy
YW0gKmdwOwogewotI2lmIGRlZmluZWQoUEVSRk1PTikgJiYgZGVmaW5lZChJNTg2X1BNQ19HVVBS
T0YpCi0JaWYgKGNwdXRpbWVfY2xvY2tfcG1jX2luaXQpIHsKLQkJKmdwID0gc2F2ZWRfZ21wOwot
CQlwZXJmbW9uX2ZpbmkoMCk7Ci0JCWNwdXRpbWVfY2xvY2tfcG1jX2luaXQgPSBGQUxTRTsKLQl9
Ci0jZW5kaWYKICNpZiBkZWZpbmVkKEk1ODZfQ1BVKSB8fCBkZWZpbmVkKEk2ODZfQ1BVKQogCWlm
IChjcHV0aW1lX2Nsb2NrID09IENQVVRJTUVfQ0xPQ0tfVFNDKQogCQljcHV0aW1lX3Byb2ZfYWN0
aXZlID0gMDsKSW5kZXg6IHN5cy9hbWQ2NC9jb25mL05PVEVTCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9h
bWQ2NC9jb25mL05PVEVTCShyZXZpc2lvbiAyMTA1MzYpCisrKyBzeXMvYW1kNjQvY29uZi9OT1RF
Uwkod29ya2luZyBjb3B5KQpAQCAtNTcsMTIgKzU3LDYgQEAKICMgT3B0aW9ucyBmb3IgQ1BVIGZl
YXR1cmVzLgogIwogCi0jCi0jIFBFUkZNT04gY2F1c2VzIHRoZSBkcml2ZXIgZm9yIFBlbnRpdW0v
UGVudGl1bSBQcm8gcGVyZm9ybWFuY2UgY291bnRlcnMKLSMgdG8gYmUgY29tcGlsZWQuICBTZWUg
cGVyZm1vbig0KSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSMKLSNYWFgjb3B0aW9ucyAJUEVSRk1P
TgotCiAMCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgTkVUV09SS0lORyBPUFRJT05TCkluZGV4OiBzeXMvYW1k
NjQvYW1kNjQvbWFjaGRlcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9hbWQ2NC9hbWQ2NC9tYWNoZGVw
LmMJKHJldmlzaW9uIDIxMDUzNikKKysrIHN5cy9hbWQ2NC9hbWQ2NC9tYWNoZGVwLmMJKHdvcmtp
bmcgY29weSkKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlICJvcHRfa3N0YWNrX3BhZ2VzLmgi
CiAjaW5jbHVkZSAib3B0X21heG1lbS5oIgogI2luY2x1ZGUgIm9wdF9tc2didWYuaCIKLSNpbmNs
dWRlICJvcHRfcGVyZm1vbi5oIgogI2luY2x1ZGUgIm9wdF9zY2hlZC5oIgogCiAjaW5jbHVkZSA8
c3lzL3BhcmFtLmg+CkBAIC0xMjAsOSArMTE5LDYgQEAKICNpbmNsdWRlIDxtYWNoaW5lL3JlZy5o
PgogI2luY2x1ZGUgPG1hY2hpbmUvc2lnZnJhbWUuaD4KICNpbmNsdWRlIDxtYWNoaW5lL3NwZWNp
YWxyZWcuaD4KLSNpZmRlZiBQRVJGTU9OCi0jaW5jbHVkZSA8bWFjaGluZS9wZXJmbW9uLmg+Ci0j
ZW5kaWYKICNpbmNsdWRlIDxtYWNoaW5lL3Rzcy5oPgogI2lmZGVmIFNNUAogI2luY2x1ZGUgPG1h
Y2hpbmUvc21wLmg+CkBAIC0yMzYsOSArMjMyLDYgQEAKIAlzdGFydHJ0Y2xvY2soKTsKIAlwcmlu
dGNwdWluZm8oKTsKIAlwYW5pY2lmY3B1dW5zdXBwb3J0ZWQoKTsKLSNpZmRlZiBQRVJGTU9OCi0J
cGVyZm1vbl9pbml0KCk7Ci0jZW5kaWYKIAlyZWFsbWVtID0gTWF4bWVtOwogCiAJLyoKSW5kZXg6
IHN5cy9hbWQ2NC9hbWQ2NC9wcm9mX21hY2hkZXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvYW1kNjQv
YW1kNjQvcHJvZl9tYWNoZGVwLmMJKHJldmlzaW9uIDIxMDUzNikKKysrIHN5cy9hbWQ2NC9hbWQ2
NC9wcm9mX21hY2hkZXAuYwkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2lmZGVm
IEdVUFJPRgogI2lmIDAKICNpbmNsdWRlICJvcHRfaTU4Nl9ndXByb2YuaCIKLSNpbmNsdWRlICJv
cHRfcGVyZm1vbi5oIgogI2VuZGlmCiAKICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KQEAgLTQ0LDkg
KzQzLDYgQEAKICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CiAKICNpbmNsdWRlIDxtYWNoaW5lL2Ns
b2NrLmg+Ci0jaWYgMAotI2luY2x1ZGUgPG1hY2hpbmUvcGVyZm1vbi5oPgotI2VuZGlmCiAjaW5j
bHVkZSA8bWFjaGluZS90aW1lcnJlZy5oPgogCiAjZGVmaW5lCUNQVVRJTUVfQ0xPQ0tfVU5JTklU
SUFMSVpFRAkwCkBAIC01OCwxMSArNTQsNiBAQAogaW50CWNwdXRpbWVfYmlhcyA9IDE7CS8qIGlu
aXRpYWxpemUgZm9yIGxvY2FsaXR5IG9mIHJlZmVyZW5jZSAqLwogCiBzdGF0aWMgaW50CWNwdXRp
bWVfY2xvY2sgPSBDUFVUSU1FX0NMT0NLX1VOSU5JVElBTElaRUQ7Ci0jaWYgZGVmaW5lZChQRVJG
TU9OKSAmJiBkZWZpbmVkKEk1ODZfUE1DX0dVUFJPRikKLXN0YXRpYyB1X2ludAljcHV0aW1lX2Ns
b2NrX3BtY19jb25mID0gSTU4Nl9QTUNfR1VQUk9GOwotc3RhdGljIGludAljcHV0aW1lX2Nsb2Nr
X3BtY19pbml0Owotc3RhdGljIHN0cnVjdCBnbW9ucGFyYW0gc2F2ZWRfZ21wOwotI2VuZGlmCiAj
aWYgZGVmaW5lZChJNTg2X0NQVSkgfHwgZGVmaW5lZChJNjg2X0NQVSkKIHN0YXRpYyBpbnQJY3B1
dGltZV9wcm9mX2FjdGl2ZTsKICNlbmRpZgpAQCAtMjAwLDEwICsxOTEsNiBAQAogewogCXVfaW50
IGNvdW50OwogCWludCBkZWx0YTsKLSNpZiAoZGVmaW5lZChJNTg2X0NQVSkgfHwgZGVmaW5lZChJ
Njg2X0NQVSkpICYmICFkZWZpbmVkKFNNUCkgJiYgXAotICAgIGRlZmluZWQoUEVSRk1PTikgJiYg
ZGVmaW5lZChJNTg2X1BNQ19HVVBST0YpCi0JdV9xdWFkX3QgZXZlbnRfY291bnQ7Ci0jZW5kaWYK
IAl1X2NoYXIgaGlnaCwgbG93OwogCXN0YXRpYyB1X2ludCBwcmV2X2NvdW50OwogCkBAIC0yMjEs
MjEgKzIwOCw2IEBACiAJCXByZXZfY291bnQgPSBjb3VudDsKIAkJcmV0dXJuIChkZWx0YSk7CiAJ
fQotI2lmIGRlZmluZWQoUEVSRk1PTikgJiYgZGVmaW5lZChJNTg2X1BNQ19HVVBST0YpICYmICFk
ZWZpbmVkKFNNUCkKLQlpZiAoY3B1dGltZV9jbG9jayA9PSBDUFVUSU1FX0NMT0NLX0k1ODZfUE1D
KSB7Ci0JCS8qCi0JCSAqIFhYWCBwZXJtb25fcmVhZCgpIHNob3VsZCBiZSBpbmxpbmVkIHNvIHRo
YXQgdGhlCi0JCSAqIHBlcmZtb24gbW9kdWxlIGRvZXNuJ3QgbmVlZCB0byBiZSBjb21waWxlZCB3
aXRoCi0JCSAqIHByb2ZpbGluZyBkaXNhYmxlZCBhbmQgc28gdGhhdCBpdCBpcyBmYXN0LgotCQkg
Ki8KLQkJcGVyZm1vbl9yZWFkKDAsICZldmVudF9jb3VudCk7Ci0KLQkJY291bnQgPSAodV9pbnQp
ZXZlbnRfY291bnQ7Ci0JCWRlbHRhID0gKGludCkoY291bnQgLSBwcmV2X2NvdW50KTsKLQkJcHJl
dl9jb3VudCA9IGNvdW50OwotCQlyZXR1cm4gKGRlbHRhKTsKLQl9Ci0jZW5kaWYgLyogUEVSRk1P
TiAmJiBJNTg2X1BNQ19HVVBST0YgJiYgIVNNUCAqLwogI2VuZGlmIC8qIEk1ODZfQ1BVIHx8IEk2
ODZfQ1BVICovCiAKIAkvKgpAQCAtMjY3LDM5ICsyMzksMTMgQEAKIHsKIAlpbnQgY2xvY2s7CiAJ
aW50IGVycm9yOwotI2lmIGRlZmluZWQoUEVSRk1PTikgJiYgZGVmaW5lZChJNTg2X1BNQ19HVVBS
T0YpCi0JaW50IGV2ZW50OwotCXN0cnVjdCBwbWMgcG1jOwotI2VuZGlmCiAKIAljbG9jayA9IGNw
dXRpbWVfY2xvY2s7Ci0jaWYgZGVmaW5lZChQRVJGTU9OKSAmJiBkZWZpbmVkKEk1ODZfUE1DX0dV
UFJPRikKLQlpZiAoY2xvY2sgPT0gQ1BVVElNRV9DTE9DS19JNTg2X1BNQykgewotCQlwbWMucG1j
X3ZhbCA9IGNwdXRpbWVfY2xvY2tfcG1jX2NvbmY7Ci0JCWNsb2NrICs9IHBtYy5wbWNfZXZlbnQ7
Ci0JfQotI2VuZGlmCiAJZXJyb3IgPSBzeXNjdGxfaGFuZGxlX29wYXF1ZShvaWRwLCAmY2xvY2ss
IHNpemVvZiBjbG9jaywgcmVxKTsKIAlpZiAoZXJyb3IgPT0gMCAmJiByZXEtPm5ld3B0ciAhPSBO
VUxMKSB7Ci0jaWYgZGVmaW5lZChQRVJGTU9OKSAmJiBkZWZpbmVkKEk1ODZfUE1DX0dVUFJPRikK
LQkJaWYgKGNsb2NrID49IENQVVRJTUVfQ0xPQ0tfSTU4Nl9QTUMpIHsKLQkJCWV2ZW50ID0gY2xv
Y2sgLSBDUFVUSU1FX0NMT0NLX0k1ODZfUE1DOwotCQkJaWYgKGV2ZW50ID49IDI1NikKLQkJCQly
ZXR1cm4gKEVJTlZBTCk7Ci0JCQlwbWMucG1jX251bSA9IDA7Ci0JCQlwbWMucG1jX2V2ZW50ID0g
ZXZlbnQ7Ci0JCQlwbWMucG1jX3VuaXQgPSAwOwotCQkJcG1jLnBtY19mbGFncyA9IFBNQ0ZfRSB8
IFBNQ0ZfT1MgfCBQTUNGX1VTUjsKLQkJCXBtYy5wbWNfbWFzayA9IDA7Ci0JCQljcHV0aW1lX2Ns
b2NrX3BtY19jb25mID0gcG1jLnBtY192YWw7Ci0JCQljcHV0aW1lX2Nsb2NrID0gQ1BVVElNRV9D
TE9DS19JNTg2X1BNQzsKLQkJfSBlbHNlCi0jZW5kaWYKLQkJewotCQkJaWYgKGNsb2NrIDwgMCB8
fCBjbG9jayA+PSBDUFVUSU1FX0NMT0NLX0k1ODZfUE1DKQotCQkJCXJldHVybiAoRUlOVkFMKTsK
LQkJCWNwdXRpbWVfY2xvY2sgPSBjbG9jazsKLQkJfQorCQlpZiAoY2xvY2sgPCAwIHx8IGNsb2Nr
ID49IENQVVRJTUVfQ0xPQ0tfSTU4Nl9QTUMpCisJCQlyZXR1cm4gKEVJTlZBTCk7CisJCWNwdXRp
bWVfY2xvY2sgPSBjbG9jazsKIAl9CiAJcmV0dXJuIChlcnJvcik7CiB9CkBAIC0zMjksMzIgKzI3
NSw2IEBACiAJCWdwLT5wcm9mcmF0ZSA9IHRzY19mcmVxID4+IDE7CiAJCWNwdXRpbWVfcHJvZl9h
Y3RpdmUgPSAxOwogCX0KLSNpZiBkZWZpbmVkKFBFUkZNT04pICYmIGRlZmluZWQoSTU4Nl9QTUNf
R1VQUk9GKQotCWVsc2UgaWYgKGNwdXRpbWVfY2xvY2sgPT0gQ1BVVElNRV9DTE9DS19JNTg2X1BN
QykgewotCQlpZiAocGVyZm1vbl9hdmFpbCgpICYmCi0JCSAgICBwZXJmbW9uX3NldHVwKDAsIGNw
dXRpbWVfY2xvY2tfcG1jX2NvbmYpID09IDApIHsKLQkJCWlmIChwZXJmbW9uX3N0YXJ0KDApICE9
IDApCi0JCQkJcGVyZm1vbl9maW5pKDApOwotCQkJZWxzZSB7Ci0JCQkJLyogWFhYIDEgZXZlbnQg
PT0gMSB1cy4gKi8KLQkJCQlncC0+cHJvZnJhdGUgPSAxMDAwMDAwOwotCi0JCQkJc2F2ZWRfZ21w
ID0gKmdwOwotCi0JCQkJLyogWmFwIG92ZXJoZWFkcy4gIFRoZXkgYXJlIGludmFsaWQuICovCi0J
CQkJZ3AtPmNwdXRpbWVfb3ZlcmhlYWQgPSAwOwotCQkJCWdwLT5tY291bnRfb3ZlcmhlYWQgPSAw
OwotCQkJCWdwLT5tY291bnRfcG9zdF9vdmVyaGVhZCA9IDA7Ci0JCQkJZ3AtPm1jb3VudF9wcmVf
b3ZlcmhlYWQgPSAwOwotCQkJCWdwLT5tZXhpdGNvdW50X292ZXJoZWFkID0gMDsKLQkJCQlncC0+
bWV4aXRjb3VudF9wb3N0X292ZXJoZWFkID0gMDsKLQkJCQlncC0+bWV4aXRjb3VudF9wcmVfb3Zl
cmhlYWQgPSAwOwotCi0JCQkJY3B1dGltZV9jbG9ja19wbWNfaW5pdCA9IFRSVUU7Ci0JCQl9Ci0J
CX0KLQl9Ci0jZW5kaWYgLyogUEVSRk1PTiAmJiBJNTg2X1BNQ19HVVBST0YgKi8KICNlbmRpZiAv
KiBJNTg2X0NQVSB8fCBJNjg2X0NQVSAqLwogCWNwdXRpbWVfYmlhcyA9IDA7CiAJY3B1dGltZSgp
OwpAQCAtMzY0LDEzICsyODQsNiBAQAogc3RvcGd1cHJvZihncCkKIAlzdHJ1Y3QgZ21vbnBhcmFt
ICpncDsKIHsKLSNpZiBkZWZpbmVkKFBFUkZNT04pICYmIGRlZmluZWQoSTU4Nl9QTUNfR1VQUk9G
KQotCWlmIChjcHV0aW1lX2Nsb2NrX3BtY19pbml0KSB7Ci0JCSpncCA9IHNhdmVkX2dtcDsKLQkJ
cGVyZm1vbl9maW5pKDApOwotCQljcHV0aW1lX2Nsb2NrX3BtY19pbml0ID0gRkFMU0U7Ci0JfQot
I2VuZGlmCiAjaWYgZGVmaW5lZChJNTg2X0NQVSkgfHwgZGVmaW5lZChJNjg2X0NQVSkKIAlpZiAo
Y3B1dGltZV9jbG9jayA9PSBDUFVUSU1FX0NMT0NLX1RTQykKIAkJY3B1dGltZV9wcm9mX2FjdGl2
ZSA9IDA7Cg==
--0016e659f3e6f5f5c7048c61417d--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=V2h-0fyUZJxNJdCC%2BBGf-8X2%2BGRCNQ5mwLVh=>