From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m16.mail.163.com (m16.mail.163.com [117.135.210.3]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DC6541991B6 for ; Tue, 24 Jun 2025 13:17:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=117.135.210.3 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750771032; cv=none; b=ACchrYFmBDeQELO8jpDpZGmhuM9LvVRy3tR4aQOzofNcnhoJxzQY69PSd5RLzw5i5d1wi6r5c3OIbgUusCjTuRRHVu1hE4KSxV0L86JmdG43hw3nZPgfRJkURdhIgzZBaTufft4E2hiPJb8YvKcjqGbmpypUWo5rAdRACnrfEi8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750771032; c=relaxed/simple; bh=o+VL40oJh0RkP5w0UBVtu2/0hzuORjtY8fqBH/N1ROk=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=DjJAZYzl2YSE1OAMZHkZy6giBTwQkaqe8ReQxL4qGztpBlLUlGpl+THDOkacGjNeSSAh6r8rmEes2SRWczvmMn4F4nTkvM/XF2xHdavisdQq+7wt6JJhOerLMeJpYWHEuxJtXdyriqM5ycIHfzSGBKthB9fYx6/inySu5bcNpbo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=fail (1024-bit key) header.d=163.com header.i=@163.com header.b=fppRzyGX reason="signature verification failed"; arc=none smtp.client-ip=117.135.210.3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=163.com header.i=@163.com header.b="fppRzyGX" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:To:Subject:Content-Type:MIME-Version: Message-ID; bh=CE3Jby6VJ2EVJQIvcGF5Y+sPYkTts/WVLsp+zovP1iQ=; b=f ppRzyGX8ai38oytbsX+UETTrsO5bT2Zha7z4eQpoVKU9i+0wIBm1QpKiviAUK/uh cvEVNHbq0Mttm3LWdEYtlfdEiR9J/H/0JinXXg9rZ1KwvKZfBg42RfDwpBHV2MTm 72cxiyk51MaGcp2SLYMM2uhogoTUJRjHDE0yyqTTUk= Received: from 00107082$163.com ( [111.35.191.166] ) by ajax-webmail-wmsvr-40-115 (Coremail) ; Tue, 24 Jun 2025 21:15:55 +0800 (CST) Date: Tue, 24 Jun 2025 21:15:55 +0800 (CST) From: "David Wang" <00107082@163.com> To: "Harry Yoo" Cc: akpm@linux-foundation.org, surenb@google.com, kent.overstreet@linux.dev, oliver.sang@intel.com, cachen@purestorage.com, linux-mm@kvack.org, oe-lkp@lists.linux.dev, stable@vger.kernel.org Subject: Re: [PATCH v3] lib/alloc_tag: do not acquire non-existent lock in alloc_tag_top_users()y X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20240801(9da12a7b) Copyright (c) 2002-2025 www.mailtech.cn 163com In-Reply-To: References: <20250624072513.84219-1-harry.yoo@oracle.com> <4f12c217.7a79.197a1070f55.Coremail.00107082@163.com> <23eb5af1.9692.197a145e5c2.Coremail.00107082@163.com> X-NTES-SC: AL_Qu2eAvucv0Eu4yCbY+kZnEYQheY4XMKyuPkg1YJXOp80pCT89Ao8f19DBXrP/MmsDiOxkDimTDNKwP1DQqBEf4TxOidgfHfFHdDiBf5Gi/5s Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=GBK Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <2476d504.a5b0.197a214b322.Coremail.00107082@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID:cygvCgD3H_YMpVpoEAskAA--.16914W X-CM-SenderInfo: qqqrilqqysqiywtou0bp/xtbB0hR2qmhanmlvwQADsy X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== CkF0IDIwMjUtMDYtMjQgMTk6Mjg6MTgsICJEYXZpZCBXYW5nIiA8MDAxMDcwODJAMTYzLmNvbT4g d3JvdGU6Cj4KPkF0IDIwMjUtMDYtMjQgMTg6NTk6NTIsICJIYXJyeSBZb28iIDxoYXJyeS55b29A b3JhY2xlLmNvbT4gd3JvdGU6Cj4+T24gVHVlLCBKdW4gMjQsIDIwMjUgYXQgMDU6MzA6MDJQTSAr MDgwMCwgRGF2aWQgV2FuZyB3cm90ZToKPj4+IAo+Pj4gQXQgMjAyNS0wNi0yNCAxNzowOTo1NCwg IkhhcnJ5IFlvbyIgPGhhcnJ5Lnlvb0BvcmFjbGUuY29tPiB3cm90ZToKPj4+ID5PbiBUdWUsIEp1 biAyNCwgMjAyNSBhdCAwNDoyMToyM1BNICswODAwLCBEYXZpZCBXYW5nIHdyb3RlOgo+Pj4gPj4g QXQgMjAyNS0wNi0yNCAxNToyNToxMywgIkhhcnJ5IFlvbyIgPGhhcnJ5Lnlvb0BvcmFjbGUuY29t PiB3cm90ZToKPj4+ID4+ID5hbGxvY190YWdfdG9wX3VzZXJzKCkgYXR0ZW1wdHMgdG8gbG9jayBh bGxvY190YWdfY3R0eXBlLT5tb2RfbG9jawo+Pj4gPj4gPmV2ZW4gd2hlbiB0aGUgYWxsb2NfdGFn X2N0dHlwZSBpcyBub3QgYWxsb2NhdGVkIGJlY2F1c2U6Cj4+PiA+PiA+Cj4+PiA+PiA+ICAxKSBh bGxvYyB0YWdnaW5nIGlzIGRpc2FibGVkIGJlY2F1c2UgbWVtIHByb2ZpbGluZyBpcyBkaXNhYmxl ZAo+Pj4gPj4gPiAgICAgKCFhbGxvY190YWdfY3R0eXBlKQo+Pj4gPj4gPiAgMikgYWxsb2MgdGFn Z2luZyBpcyBlbmFibGVkLCBidXQgbm90IHlldCBpbml0aWFsaXplZCAoIWFsbG9jX3RhZ19jdHR5 cGUpCj4+PiA+PiA+ICAzKSBhbGxvYyB0YWdnaW5nIGlzIGVuYWJsZWQsIGJ1dCBmYWlsZWQgaW5p dGlhbGl6YXRpb24KPj4+ID4+ID4gICAgICghYWxsb2NfdGFnX2N0dHlwZSBvciBJU19FUlIoYWxs b2NfdGFnX2N0dHlwZSkpCj4+PiA+PiA+Cj4+PiA+PiA+SW4gYWxsIGNhc2VzLCBhbGxvY190YWdf Y3R0eXBlIGlzIG5vdCBhbGxvY2F0ZWQsIGFuZCB0aGVyZWZvcmUKPj4+ID4+ID5hbGxvY190YWdf dG9wX3VzZXJzKCkgc2hvdWxkIG5vdCBhdHRlbXB0IHRvIGFjcXVpcmUgdGhlIHNlbWFwaG9yZS4K Pj4+ID4+ID4KPj4+ID4+ID5UaGlzIGxlYWRzIHRvIGEgY3Jhc2ggb24gbWVtb3J5IGFsbG9jYXRp b24gZmFpbHVyZSBieSBhdHRlbXB0aW5nIHRvCj4+PiA+PiA+YWNxdWlyZSBhIG5vbi1leGlzdGVu dCBzZW1hcGhvcmU6Cj4+PiA+PiA+Cj4+PiA+PiA+ICBPb3BzOiBnZW5lcmFsIHByb3RlY3Rpb24g ZmF1bHQsIHByb2JhYmx5IGZvciBub24tY2Fub25pY2FsIGFkZHJlc3MgMHhkZmZmZmMwMDAwMDAw MDFiOiAwMDAwIFsjM10gU01QIEtBU0FOIE5PUFRJCj4+PiA+PiA+ICBLQVNBTjogbnVsbC1wdHIt ZGVyZWYgaW4gcmFuZ2UgWzB4MDAwMDAwMDAwMDAwMDBkOC0weDAwMDAwMDAwMDAwMDAwZGZdCj4+ PiA+PiA+ICBDUFU6IDIgVUlEOiAwIFBJRDogMSBDb21tOiBzeXN0ZW1kIFRhaW50ZWQ6IEcgICAg ICBEICAgICAgICAgICAgIDYuMTYuMC1yYzIgIzEgVk9MVU5UQVJZCj4+PiA+PiA+ICBUYWludGVk OiBbRF09RElFCj4+PiA+PiA+ICBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQw RlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjE2LjItZGViaWFuLTEuMTYuMi0xIDA0LzAxLzIwMTQK Pj4+ID4+ID4gIFJJUDogMDAxMDpkb3duX3JlYWRfdHJ5bG9jaysweGFhLzB4M2IwCj4+PiA+PiA+ ICBDb2RlOiBkMCA3YyAwOCA4NCBkMiAwZiA4NSBhMCAwMiAwMCAwMCA4YiAwZCBkZiAzMSBkZCAw NCA4NSBjOSA3NSAyOSA0OCBiOCAwMCAwMCAwMCAwMCAwMCBmYyBmZiBkZiA0OCA4ZCA2YiA2OCA0 OCA4OSBlYSA0OCBjMSBlYSAwMyA8ODA+IDNjIDAyIDAwIDBmIDg1IDg4IDAyIDAwIDAwIDQ4IDNi IDViIDY4IDBmIDg1IDUzIDAxIDAwIDAwIDY1IGZmCj4+PiA+PiA+ICBSU1A6IDAwMDA6ZmZmZjg4 ODEwMDJjZTliOCBFRkxBR1M6IDAwMDEwMDE2Cj4+PiA+PiA+ICBSQVg6IGRmZmZmYzAwMDAwMDAw MDAgUkJYOiAwMDAwMDAwMDAwMDAwMDcwIFJDWDogMDAwMDAwMDAwMDAwMDAwMAo+Pj4gPj4gPiAg UkRYOiAwMDAwMDAwMDAwMDAwMDFiIFJTSTogMDAwMDAwMDAwMDAwMDAwYSBSREk6IDAwMDAwMDAw MDAwMDAwNzAKPj4+ID4+ID4gIFJCUDogMDAwMDAwMDAwMDAwMDBkOCBSMDg6IDAwMDAwMDAwMDAw MDAwMDEgUjA5OiBmZmZmZWQxMDdkZGU0OWQxCj4+PiA+PiA+ICBSMTA6IGZmZmY4ODgzZWVmMjRl OGIgUjExOiBmZmZmODg4MTAwMmNlYzIwIFIxMjogMWZmZmYxMTAyMDA1OWQzNwo+Pj4gPj4gPiAg UjEzOiAwMDAwMDAwMDAwM2ZmZjdiIFIxNDogZmZmZjg4ODEwMDJjZWMyMCBSMTU6IGRmZmZmYzAw MDAwMDAwMDAKPj4+ID4+ID4gIEZTOiAgMDAwMDdmOTYzZjIxZDk0MCgwMDAwKSBHUzpmZmZmODg4 NDU4Y2E2MDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPj4+ID4+ID4gIENTOiAgMDAx MCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKPj4+ID4+ID4gIENSMjog MDAwMDdmOTYzZjVlZGY3MSBDUjM6IDAwMDAwMDAxMDY3MmMwMDAgQ1I0OiAwMDAwMDAwMDAwMzUw ZWYwCj4+PiA+PiA+ICBDYWxsIFRyYWNlOgo+Pj4gPj4gPiAgIDxUQVNLPgo+Pj4gPj4gPiAgIGNv ZGV0YWdfdHJ5bG9ja19tb2R1bGVfbGlzdCsweGQvMHgyMAo+Pj4gPj4gPiAgIGFsbG9jX3RhZ190 b3BfdXNlcnMrMHgzNjkvMHg0YjAKPj4+ID4+ID4gICBfX3Nob3dfbWVtKzB4MWNkLzB4NmUwCj4+ PiA+PiA+ICAgd2Fybl9hbGxvYysweDJiMS8weDM5MAo+Pj4gPj4gPiAgIF9fYWxsb2NfZnJvemVu X3BhZ2VzX25vcHJvZisweDEyYjkvMHgyMWEwCj4+PiA+PiA+ICAgYWxsb2NfcGFnZXNfbXBvbCsw eDEzNS8weDNlMAo+Pj4gPj4gPiAgIGFsbG9jX3NsYWJfcGFnZSsweDgyLzB4ZTAKPj4+ID4+ID4g ICBuZXdfc2xhYisweDIxMi8weDI0MAo+Pj4gPj4gPiAgIF9fX3NsYWJfYWxsb2MrMHg4MmEvMHhl MDAKPj4+ID4+ID4gICA8L1RBU0s+Cj4+PiA+PiA+Cj4+PiA+PiA+QXMgRGF2aWQgV2FuZyBwb2lu dHMgb3V0LCB0aGlzIGlzc3VlIGJlY2FtZSBlYXNpZXIgdG8gdHJpZ2dlciBhZnRlciBjb21taXQK Pj4+ID4+ID43ODAxMzhiMTIzODEgKCJhbGxvY190YWc6IGNoZWNrIG1lbV9wcm9maWxpbmdfc3Vw cG9ydCBpbiBhbGxvY190YWdfaW5pdCIpLgo+Pj4gPj4gPgo+Pj4gPj4gPkJlZm9yZSB0aGUgY29t bWl0LCB0aGUgaXNzdWUgb2NjdXJyZWQgb25seSB3aGVuIGl0IGZhaWxlZCB0byBhbGxvY2F0ZQo+ Pj4gPj4gPmFuZCBpbml0aWFsaXplIGFsbG9jX3RhZ19jdHR5cGUgb3IgaWYgYSBtZW1vcnkgYWxs b2NhdGlvbiBmYWlscyBiZWZvcmUKPj4+ID4+ID5hbGxvY190YWdfaW5pdCgpIGlzIGNhbGxlZC4g QWZ0ZXIgdGhlIGNvbW1pdCwgaXQgY2FuIGJlIGVhc2lseSB0cmlnZ2VyZWQKPj4+ID4+ID53aGVu IG1lbW9yeSBwcm9maWxpbmcgaXMgY29tcGlsZWQgYnV0IGRpc2FibGVkIGF0IGJvb3QuCj4+PiA+ PiA+Cj4+PiA+PiA+VG8gcHJvcGVybHkgZGV0ZXJtaW5lIHdoZXRoZXIgYWxsb2NfdGFnX2luaXQo KSBoYXMgYmVlbiBjYWxsZWQgYW5kCj4+PiA+PiA+aXRzIGRhdGEgc3RydWN0dXJlcyBpbml0aWFs aXplZCwgdmVyaWZ5IHRoYXQgYWxsb2NfdGFnX2N0dHlwZSBpcyBhIHZhbGlkCj4+PiA+PiA+cG9p bnRlciBiZWZvcmUgYWNxdWlyaW5nIHRoZSBzZW1hcGhvcmUuIElmIHRoZSB2YXJpYWJsZSBpcyBO VUxMIG9yIGFuIGVycm9yCj4+PiA+PiA+dmFsdWUsIGl0IGhhcyBub3QgYmVlbiBwcm9wZXJseSBp bml0aWFsaXplZC4gSW4gc3VjaCBhIGNhc2UsIGp1c3Qgc2tpcAo+Pj4gPj4gPmFuZCBkbyBub3Qg YXR0ZW1wdCB0byBhY3F1aXJlIHRoZSBzZW1hcGhvcmUuCj4+PiA+PiA+Cj4+PiA+PiA+UmVwb3J0 ZWQtYnk6IGtlcm5lbCB0ZXN0IHJvYm90IDxvbGl2ZXIuc2FuZ0BpbnRlbC5jb20+Cj4+PiA+PiA+ Q2xvc2VzOiBodHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvb2UtbGtwLzIwMjUwNjE4MTM1MS5iYmE4NjdkZC1sa3BAaW50ZWwuY29tX187ISFBQ1dWNU45 TTJSVjk5aFEhUHhKTktwNEJqNmgwWElXcFJYY21GZUl6NTFqT1J0UlJBbzFqMjNablJndlRtMEUw TXA1bDZVckxOQ2tpSHd3NkFWV09TZmJERGRCd0tnSjlfUSQgCj4+PiA+PiA+Q2xvc2VzOiBodHRw czovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvb2UtbGtwLzIw MjUwNjEzMTcxMS41YjQxOTMxYy1sa3BAaW50ZWwuY29tX187ISFBQ1dWNU45TTJSVjk5aFEhUHhK TktwNEJqNmgwWElXcFJYY21GZUl6NTFqT1J0UlJBbzFqMjNablJndlRtMEUwTXA1bDZVckxOQ2tp SHd3NkFWV09TZmJERGRDLTdPaVVzZyQgCj4+PiA+PiA+Rml4ZXM6IDc4MDEzOGIxMjM4MSAoImFs bG9jX3RhZzogY2hlY2sgbWVtX3Byb2ZpbGluZ19zdXBwb3J0IGluIGFsbG9jX3RhZ19pbml0IikK Pj4+ID4+ID5GaXhlczogMTQzOGQzNDlkMTZiICgibGliOiBhZGQgbWVtb3J5IGFsbG9jYXRpb25z IHJlcG9ydCBpbiBzaG93X21lbSgpIikKPj4+ID4+ID5DYzogc3RhYmxlQHZnZXIua2VybmVsLm9y Zwo+Pj4gPj4gPlNpZ25lZC1vZmYtYnk6IEhhcnJ5IFlvbyA8aGFycnkueW9vQG9yYWNsZS5jb20+ Cj4+PiA+PiA+LS0tCj4+PiA+PiA+Cj4+PiA+PiA+QFN1cmVuOiBJIGRpZCBub3QgYWRkIGFub3Ro ZXIgcHJfd2FybigpIGJlY2F1c2UgZXZlcnkgZXJyb3IgcGF0aCBpbgo+Pj4gPj4gPmFsbG9jX3Rh Z19pbml0KCkgYWxyZWFkeSBoYXMgcHJfZXJyKCkuCj4+PiA+PiA+Cj4+PiA+PiA+djIgLT4gdjM6 Cj4+PiA+PiA+LSBBZGRlZCBhbm90aGVyIENsb3NlczogdGFnIChEYXZpZCkKPj4+ID4+ID4tIE1v dmVkIHRoZSBjb25kaXRpb24gaW50byBhIHN0YW5kYWxvbmUgaWYgYmxvY2sgZm9yIGJldHRlciBy ZWFkYWJpbGl0eQo+Pj4gPj4gPiAgKFN1cmVuKQo+Pj4gPj4gPi0gVHlwbyBmaXggKFN1cmVuKQo+ Pj4gPj4gPgo+Pj4gPj4gPiBsaWIvYWxsb2NfdGFnLmMgfCAzICsrKwo+Pj4gPj4gPiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCj4+PiA+PiA+Cj4+PiA+PiA+ZGlmZiAtLWdpdCBhL2xp Yi9hbGxvY190YWcuYyBiL2xpYi9hbGxvY190YWcuYwo+Pj4gPj4gPmluZGV4IDQxY2NmYjAzNWI3 Yi4uZTliMzM4NDg3MDBhIDEwMDY0NAo+Pj4gPj4gPi0tLSBhL2xpYi9hbGxvY190YWcuYwo+Pj4g Pj4gPisrKyBiL2xpYi9hbGxvY190YWcuYwo+Pj4gPj4gPkBAIC0xMjcsNiArMTI3LDkgQEAgc2l6 ZV90IGFsbG9jX3RhZ190b3BfdXNlcnMoc3RydWN0IGNvZGV0YWdfYnl0ZXMgKnRhZ3MsIHNpemVf dCBjb3VudCwgYm9vbCBjYW5fc2wKPj4+ID4+ID4gCXN0cnVjdCBjb2RldGFnX2J5dGVzIG47Cj4+ PiA+PiA+IAl1bnNpZ25lZCBpbnQgaSwgbnIgPSAwOwo+Pj4gPj4gPiAKPj4+ID4+ID4rCWlmIChJ U19FUlJfT1JfTlVMTChhbGxvY190YWdfY3R0eXBlKSkKPj4+ID4+IAo+Pj4gPj4gU2hvdWxkIGEg d2FybmluZyAgYWRkZWQgaGVyZT8gaW5kaWNhdGluZyAgY29kZXRhZyBtb2R1bGUgbm90IHJlYWR5 IHlldCBhbmQgdGhlIG1lbW9yeSBmYWlsdXJlIGhhcHBlbmVkIGR1cmluZyBib290Ogo+Pj4gPj4g IGlmIChtZW1fcHJvZmlsaW5nX3N1cHBvcnQpIHByX3dhcm4oIi4uLgo+Pj4gPgo+Pj4gPkkgdGhp bmsgeW91J3JlIHNheWluZyB3ZSBuZWVkIHRvIHByaW50IGEgd2FybmluZyB3aGVuIGFsbG9jIHRh Z2dpbmcKPj4+ID5jYW4ndCBwcm92aWRlICJ0b3AgdXNlcnMiLgo+Pj4gCj4+PiBJIGp1c3QgbWVh bnQgcHJpbnRpbmcgYSB3YXJuaW5nIHdoZW4gc2hvd19tZW0gaXMgbmVlZGVkIGJlZm9yZSBjb2Rl dGFnIG1vZHVsZSBpbml0aWFsaXplZCwgCj4+PiBhcyByZXBvcnRlZCBpbiBodHRwczovL3VybGRl ZmVuc2UuY29tL3YzL19faHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvb2UtbGtwLzIwMjUwNjE4MTM1 MS5iYmE4NjdkZC1sa3BAaW50ZWwuY29tL19fOyEhQUNXVjVOOU0yUlY5OWhRIUoyd2FUVXJvOG93 YVlscEFaSjZmbnJIWnZjR01iWTZxQU81UXZ2SUdaelV2LXJ5V2pDamhPLW1hVE9vbGZwUHZQU3I2 Q3BxT2drUmFsQ3dKb3ckIAo+Pj4gd2hlcmUgbWVtX3Byb2ZpbGluZ19zdXBwb3J0IGlzIDEsIGJ1 dCBhbGxvY190YWdfY3R0eXBlIGlzIHN0aWxsIE5VTEwuCj4+PiBUaGlzIGNhbiB0ZWxsIHdlIGRv IGhhdmUgYSBtZW1vcnkgZmFpbHVyZSBkdXJpbmcgYm9vdCBiZWZvcmUgY29kZXRhZ19pbml0LCBl dmVuIHdpdGggbWVtb3J5IHByb2ZpbGluZyBhY3RpdmF0ZWQuCj4+Cj4+T2suIFlvdSBkaWRuJ3Qg bWVhbiB0aGF0Lgo+Pgo+PkJ1dCBzdGlsbCBJIHRoaW5rIGl0J3MgYmV0dGVyIHRvIGhhbmRsZSBh bGwgY2FzZXMgYW5kIHByaW50IGRpc3RpbmN0Cj4+d2FybmluZ3MsIHJhdGhlciB0aGFuIGhhbmRs aW5nIG9ubHkgdGhlIHNwZWNpZmljIGNhc2Ugd2hlcmUgbWVtb3J5IHByb2ZpbGluZwo+PmlzIGVu YWJsZWQgYnV0IG5vdCB5ZXQgaW5pdGlhbGl6ZWQuCj4+Cj4+VXNlcnMgd2lsbCB3YW50IHRvIGtu b3cgd2h5IGFsbG9jYXRpb24gaW5mb3JtYXRpb24gaXMgbm90IGF2YWlsYWJsZSwKPj5hbmQgdGhl cmUgY2FuIGJlIG11bHRpcGxlIHJlYXNvbnMgaW5jbHVkaW5nIHRoZSBvbmUgeW91IG1lbnRpb25l ZC4KPj4KPj5XaGF0IGRvIHlvdSB0aGluaz8KPgo+SSBhbSBub3Qgc3VyZS4uLi4gCj5JIHRoaW5r IG1vc3QgY2FzZXMgeW91IG1lbnRpb25lZCBpcyBqdXN0IGEgcHJfaW5mbywgIHRob3NlIGFyZSBl eHBlY3RlZCBiZWhhdmlvciBvciBkZXNpZ25lZCB0aGF0IHdheS4KPkJ1dCB3aGVuICBtZW1fcHJv ZmlsaW5nX3N1cHBvcnQ9PTEgJiYgYWxsb2NfdGFnX2N0dHlwZT09TlVMTCwgdGhpcyBpcyBhbiB1 bmV4cGVjdGVkIGJlaGF2aW9yLCB3aGljaCBpcyBhIHByX3dhcm4uCgpQdXQgaXQgaW4gYSBjbGVh cmVyIHdheSwgc28gZmFyIHdlIGhhdmUgaWRlbnRpZmllZCB0d28gImVycm9yIiBjb25kaXRpb25z OgoxLiAgbWVtX3Byb2ZpbGluZ19zdXBwb3J0PTEgYnV0IGluaXRpYWxpemF0aW9uIGZvciBhbGxv Y190YWdfY3R0eXBlIGZhaWxlZCwgICJhbGxvY190YWdfaW5pdCgpIGFscmVhZHkgaGFzIHByX2Vy cigpIiwgYXMgeW91IG1lbnRpb25lZC4KMi4gIG1lbV9wcm9maWxpbmdfc3VwcG9ydD0xICwgYnV0 IGNvZGV0YWcgbW9kdWxlIGhhdmUgbm90IGJlZW4gaW5pdCB5ZXQuICBJICBzdWdnZXN0ZWQgYWRk aW5nIGEgcHJfd2FybiBoZXJlLgoKT3RoZXIgc2l0dWF0aW9ucyBhcmUgZGVzaWduZWQgdGhhdCB3 YXksIHdlIGNhbiBhZGQgcHJfaW5mbyBpZiBpdCBpcyByZWFsbHkgbmVjZXNzYXJ5Li4uLgoKCkRh dmlkCgoK