From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.4]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 11C53289E1B for ; Tue, 24 Jun 2025 11:28:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.4 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750764542; cv=none; b=JrOWOHtat6HfxUIgXkA19Mz1lY0PHo13MpHBtxvMUzdB/MeWE25m4fwREZBwnHSgmbIRou+uRZk74Fp7Irc5VssGR6kJH8osRXRJRewejReATt9LbrFMg/P8W8DXcAo07G9KuI5bQ5DPpn5IFQxwa1F/iA9NKldtfHV25BHaAO4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750764542; c=relaxed/simple; bh=6D3kjNofb+f7w+IQHGPQnVbvLFgy9DbmvR2zxBthjkU=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=QHMgWQ7Xp0UchK6YROGXQl08IJsre9lnwDMOL4uoZHkLa+EAPMpgmEG0vBzEx6+PxLotFAauKp1o32kvZeJcCO3zB0zsI969IWSfwlzI5vC/OtHaYAh9ytJ1wakZOFpvy9/jE/0dIJUUOizt7mBC5eI76dLlb8Pc4nGhfTm6KBk= 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=eXjORiGw reason="signature verification failed"; arc=none smtp.client-ip=220.197.31.4 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="eXjORiGw" 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=agaPycld8r7LXK25BoaE7ykOlUaZsD04YAWHhmtH3tw=; b=e XjORiGwN+xWQK0DnTLe/wQ9r2D1pmpKv+kmDp7gNeJkKvMHDYsf9PKhWgceH7JBC Yqkt/wsaprfpwREmeIdRaD6h3pk9aQqzHyiw9hCK1hE/+dbfhZkGH3y5kDMkiksl mET04NF+0VetFjei0LBEM/Oqgqv/p0ShP3hllT7olc= Received: from 00107082$163.com ( [111.35.191.166] ) by ajax-webmail-wmsvr-40-130 (Coremail) ; Tue, 24 Jun 2025 19:28:18 +0800 (CST) Date: Tue, 24 Jun 2025 19:28:18 +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_Qu2eAvudu0wi7iKcYOkZnEYQheY4XMKyuPkg1YJXOp80mCXT3g8YZ25cIlzV9PmlDSSmoQmRfDFE8ed/V5lTW6KisgWgY6mVm7liByrpKYJN 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: X-Coremail-Locale: zh_CN X-CM-TRANSID:gigvCgD3P43Ti1po1tkjAA--.8884W X-CM-SenderInfo: qqqrilqqysqiywtou0bp/xtbBkBB2qmhagDF+fQACse X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== CkF0IDIwMjUtMDYtMjQgMTg6NTk6NTIsICJIYXJyeSBZb28iIDxoYXJyeS55b29Ab3JhY2xlLmNv bT4gd3JvdGU6Cj5PbiBUdWUsIEp1biAyNCwgMjAyNSBhdCAwNTozMDowMlBNICswODAwLCBEYXZp ZCBXYW5nIHdyb3RlOgo+PiAKPj4gQXQgMjAyNS0wNi0yNCAxNzowOTo1NCwgIkhhcnJ5IFlvbyIg PGhhcnJ5Lnlvb0BvcmFjbGUuY29tPiB3cm90ZToKPj4gPk9uIFR1ZSwgSnVuIDI0LCAyMDI1IGF0 IDA0OjIxOjIzUE0gKzA4MDAsIERhdmlkIFdhbmcgd3JvdGU6Cj4+ID4+IEF0IDIwMjUtMDYtMjQg MTU6MjU6MTMsICJIYXJyeSBZb28iIDxoYXJyeS55b29Ab3JhY2xlLmNvbT4gd3JvdGU6Cj4+ID4+ ID5hbGxvY190YWdfdG9wX3VzZXJzKCkgYXR0ZW1wdHMgdG8gbG9jayBhbGxvY190YWdfY3R0eXBl LT5tb2RfbG9jawo+PiA+PiA+ZXZlbiB3aGVuIHRoZSBhbGxvY190YWdfY3R0eXBlIGlzIG5vdCBh bGxvY2F0ZWQgYmVjYXVzZToKPj4gPj4gPgo+PiA+PiA+ICAxKSBhbGxvYyB0YWdnaW5nIGlzIGRp c2FibGVkIGJlY2F1c2UgbWVtIHByb2ZpbGluZyBpcyBkaXNhYmxlZAo+PiA+PiA+ICAgICAoIWFs bG9jX3RhZ19jdHR5cGUpCj4+ID4+ID4gIDIpIGFsbG9jIHRhZ2dpbmcgaXMgZW5hYmxlZCwgYnV0 IG5vdCB5ZXQgaW5pdGlhbGl6ZWQgKCFhbGxvY190YWdfY3R0eXBlKQo+PiA+PiA+ICAzKSBhbGxv YyB0YWdnaW5nIGlzIGVuYWJsZWQsIGJ1dCBmYWlsZWQgaW5pdGlhbGl6YXRpb24KPj4gPj4gPiAg ICAgKCFhbGxvY190YWdfY3R0eXBlIG9yIElTX0VSUihhbGxvY190YWdfY3R0eXBlKSkKPj4gPj4g Pgo+PiA+PiA+SW4gYWxsIGNhc2VzLCBhbGxvY190YWdfY3R0eXBlIGlzIG5vdCBhbGxvY2F0ZWQs IGFuZCB0aGVyZWZvcmUKPj4gPj4gPmFsbG9jX3RhZ190b3BfdXNlcnMoKSBzaG91bGQgbm90IGF0 dGVtcHQgdG8gYWNxdWlyZSB0aGUgc2VtYXBob3JlLgo+PiA+PiA+Cj4+ID4+ID5UaGlzIGxlYWRz IHRvIGEgY3Jhc2ggb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSBieSBhdHRlbXB0aW5nIHRv Cj4+ID4+ID5hY3F1aXJlIGEgbm9uLWV4aXN0ZW50IHNlbWFwaG9yZToKPj4gPj4gPgo+PiA+PiA+ ICBPb3BzOiBnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQsIHByb2JhYmx5IGZvciBub24tY2Fub25p Y2FsIGFkZHJlc3MgMHhkZmZmZmMwMDAwMDAwMDFiOiAwMDAwIFsjM10gU01QIEtBU0FOIE5PUFRJ Cj4+ID4+ID4gIEtBU0FOOiBudWxsLXB0ci1kZXJlZiBpbiByYW5nZSBbMHgwMDAwMDAwMDAwMDAw MGQ4LTB4MDAwMDAwMDAwMDAwMDBkZl0KPj4gPj4gPiAgQ1BVOiAyIFVJRDogMCBQSUQ6IDEgQ29t bTogc3lzdGVtZCBUYWludGVkOiBHICAgICAgRCAgICAgICAgICAgICA2LjE2LjAtcmMyICMxIFZP TFVOVEFSWQo+PiA+PiA+ICBUYWludGVkOiBbRF09RElFCj4+ID4+ID4gIEhhcmR3YXJlIG5hbWU6 IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIDEuMTYuMi1kZWJp YW4tMS4xNi4yLTEgMDQvMDEvMjAxNAo+PiA+PiA+ICBSSVA6IDAwMTA6ZG93bl9yZWFkX3RyeWxv Y2srMHhhYS8weDNiMAo+PiA+PiA+ICBDb2RlOiBkMCA3YyAwOCA4NCBkMiAwZiA4NSBhMCAwMiAw MCAwMCA4YiAwZCBkZiAzMSBkZCAwNCA4NSBjOSA3NSAyOSA0OCBiOCAwMCAwMCAwMCAwMCAwMCBm YyBmZiBkZiA0OCA4ZCA2YiA2OCA0OCA4OSBlYSA0OCBjMSBlYSAwMyA8ODA+IDNjIDAyIDAwIDBm IDg1IDg4IDAyIDAwIDAwIDQ4IDNiIDViIDY4IDBmIDg1IDUzIDAxIDAwIDAwIDY1IGZmCj4+ID4+ ID4gIFJTUDogMDAwMDpmZmZmODg4MTAwMmNlOWI4IEVGTEFHUzogMDAwMTAwMTYKPj4gPj4gPiAg UkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAwMDA3MCBSQ1g6IDAwMDAwMDAw MDAwMDAwMDAKPj4gPj4gPiAgUkRYOiAwMDAwMDAwMDAwMDAwMDFiIFJTSTogMDAwMDAwMDAwMDAw MDAwYSBSREk6IDAwMDAwMDAwMDAwMDAwNzAKPj4gPj4gPiAgUkJQOiAwMDAwMDAwMDAwMDAwMGQ4 IFIwODogMDAwMDAwMDAwMDAwMDAwMSBSMDk6IGZmZmZlZDEwN2RkZTQ5ZDEKPj4gPj4gPiAgUjEw OiBmZmZmODg4M2VlZjI0ZThiIFIxMTogZmZmZjg4ODEwMDJjZWMyMCBSMTI6IDFmZmZmMTEwMjAw NTlkMzcKPj4gPj4gPiAgUjEzOiAwMDAwMDAwMDAwM2ZmZjdiIFIxNDogZmZmZjg4ODEwMDJjZWMy MCBSMTU6IGRmZmZmYzAwMDAwMDAwMDAKPj4gPj4gPiAgRlM6ICAwMDAwN2Y5NjNmMjFkOTQwKDAw MDApIEdTOmZmZmY4ODg0NThjYTYwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMAo+PiA+ PiA+ICBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCj4+ ID4+ID4gIENSMjogMDAwMDdmOTYzZjVlZGY3MSBDUjM6IDAwMDAwMDAxMDY3MmMwMDAgQ1I0OiAw MDAwMDAwMDAwMzUwZWYwCj4+ID4+ID4gIENhbGwgVHJhY2U6Cj4+ID4+ID4gICA8VEFTSz4KPj4g Pj4gPiAgIGNvZGV0YWdfdHJ5bG9ja19tb2R1bGVfbGlzdCsweGQvMHgyMAo+PiA+PiA+ICAgYWxs b2NfdGFnX3RvcF91c2VycysweDM2OS8weDRiMAo+PiA+PiA+ICAgX19zaG93X21lbSsweDFjZC8w eDZlMAo+PiA+PiA+ICAgd2Fybl9hbGxvYysweDJiMS8weDM5MAo+PiA+PiA+ICAgX19hbGxvY19m cm96ZW5fcGFnZXNfbm9wcm9mKzB4MTJiOS8weDIxYTAKPj4gPj4gPiAgIGFsbG9jX3BhZ2VzX21w b2wrMHgxMzUvMHgzZTAKPj4gPj4gPiAgIGFsbG9jX3NsYWJfcGFnZSsweDgyLzB4ZTAKPj4gPj4g PiAgIG5ld19zbGFiKzB4MjEyLzB4MjQwCj4+ID4+ID4gICBfX19zbGFiX2FsbG9jKzB4ODJhLzB4 ZTAwCj4+ID4+ID4gICA8L1RBU0s+Cj4+ID4+ID4KPj4gPj4gPkFzIERhdmlkIFdhbmcgcG9pbnRz IG91dCwgdGhpcyBpc3N1ZSBiZWNhbWUgZWFzaWVyIHRvIHRyaWdnZXIgYWZ0ZXIgY29tbWl0Cj4+ ID4+ID43ODAxMzhiMTIzODEgKCJhbGxvY190YWc6IGNoZWNrIG1lbV9wcm9maWxpbmdfc3VwcG9y dCBpbiBhbGxvY190YWdfaW5pdCIpLgo+PiA+PiA+Cj4+ID4+ID5CZWZvcmUgdGhlIGNvbW1pdCwg dGhlIGlzc3VlIG9jY3VycmVkIG9ubHkgd2hlbiBpdCBmYWlsZWQgdG8gYWxsb2NhdGUKPj4gPj4g PmFuZCBpbml0aWFsaXplIGFsbG9jX3RhZ19jdHR5cGUgb3IgaWYgYSBtZW1vcnkgYWxsb2NhdGlv biBmYWlscyBiZWZvcmUKPj4gPj4gPmFsbG9jX3RhZ19pbml0KCkgaXMgY2FsbGVkLiBBZnRlciB0 aGUgY29tbWl0LCBpdCBjYW4gYmUgZWFzaWx5IHRyaWdnZXJlZAo+PiA+PiA+d2hlbiBtZW1vcnkg cHJvZmlsaW5nIGlzIGNvbXBpbGVkIGJ1dCBkaXNhYmxlZCBhdCBib290Lgo+PiA+PiA+Cj4+ID4+ ID5UbyBwcm9wZXJseSBkZXRlcm1pbmUgd2hldGhlciBhbGxvY190YWdfaW5pdCgpIGhhcyBiZWVu IGNhbGxlZCBhbmQKPj4gPj4gPml0cyBkYXRhIHN0cnVjdHVyZXMgaW5pdGlhbGl6ZWQsIHZlcmlm eSB0aGF0IGFsbG9jX3RhZ19jdHR5cGUgaXMgYSB2YWxpZAo+PiA+PiA+cG9pbnRlciBiZWZvcmUg YWNxdWlyaW5nIHRoZSBzZW1hcGhvcmUuIElmIHRoZSB2YXJpYWJsZSBpcyBOVUxMIG9yIGFuIGVy cm9yCj4+ID4+ID52YWx1ZSwgaXQgaGFzIG5vdCBiZWVuIHByb3Blcmx5IGluaXRpYWxpemVkLiBJ biBzdWNoIGEgY2FzZSwganVzdCBza2lwCj4+ID4+ID5hbmQgZG8gbm90IGF0dGVtcHQgdG8gYWNx dWlyZSB0aGUgc2VtYXBob3JlLgo+PiA+PiA+Cj4+ID4+ID5SZXBvcnRlZC1ieToga2VybmVsIHRl c3Qgcm9ib3QgPG9saXZlci5zYW5nQGludGVsLmNvbT4KPj4gPj4gPkNsb3NlczogaHR0cHM6Ly91 cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbG9yZS5rZXJuZWwub3JnL29lLWxrcC8yMDI1MDYx ODEzNTEuYmJhODY3ZGQtbGtwQGludGVsLmNvbV9fOyEhQUNXVjVOOU0yUlY5OWhRIVB4Sk5LcDRC ajZoMFhJV3BSWGNtRmVJejUxak9SdFJSQW8xajIzWm5SZ3ZUbTBFME1wNWw2VXJMTkNraUh3dzZB VldPU2ZiRERkQndLZ0o5X1EkIAo+PiA+PiA+Q2xvc2VzOiBodHRwczovL3VybGRlZmVuc2UuY29t L3YzL19faHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvb2UtbGtwLzIwMjUwNjEzMTcxMS41YjQxOTMx Yy1sa3BAaW50ZWwuY29tX187ISFBQ1dWNU45TTJSVjk5aFEhUHhKTktwNEJqNmgwWElXcFJYY21G ZUl6NTFqT1J0UlJBbzFqMjNablJndlRtMEUwTXA1bDZVckxOQ2tpSHd3NkFWV09TZmJERGRDLTdP aVVzZyQgCj4+ID4+ID5GaXhlczogNzgwMTM4YjEyMzgxICgiYWxsb2NfdGFnOiBjaGVjayBtZW1f cHJvZmlsaW5nX3N1cHBvcnQgaW4gYWxsb2NfdGFnX2luaXQiKQo+PiA+PiA+Rml4ZXM6IDE0Mzhk MzQ5ZDE2YiAoImxpYjogYWRkIG1lbW9yeSBhbGxvY2F0aW9ucyByZXBvcnQgaW4gc2hvd19tZW0o KSIpCj4+ID4+ID5DYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+PiA+PiA+U2lnbmVkLW9mZi1i eTogSGFycnkgWW9vIDxoYXJyeS55b29Ab3JhY2xlLmNvbT4KPj4gPj4gPi0tLQo+PiA+PiA+Cj4+ ID4+ID5AU3VyZW46IEkgZGlkIG5vdCBhZGQgYW5vdGhlciBwcl93YXJuKCkgYmVjYXVzZSBldmVy eSBlcnJvciBwYXRoIGluCj4+ID4+ID5hbGxvY190YWdfaW5pdCgpIGFscmVhZHkgaGFzIHByX2Vy cigpLgo+PiA+PiA+Cj4+ID4+ID52MiAtPiB2MzoKPj4gPj4gPi0gQWRkZWQgYW5vdGhlciBDbG9z ZXM6IHRhZyAoRGF2aWQpCj4+ID4+ID4tIE1vdmVkIHRoZSBjb25kaXRpb24gaW50byBhIHN0YW5k YWxvbmUgaWYgYmxvY2sgZm9yIGJldHRlciByZWFkYWJpbGl0eQo+PiA+PiA+ICAoU3VyZW4pCj4+ ID4+ID4tIFR5cG8gZml4IChTdXJlbikKPj4gPj4gPgo+PiA+PiA+IGxpYi9hbGxvY190YWcuYyB8 IDMgKysrCj4+ID4+ID4gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQo+PiA+PiA+Cj4+ ID4+ID5kaWZmIC0tZ2l0IGEvbGliL2FsbG9jX3RhZy5jIGIvbGliL2FsbG9jX3RhZy5jCj4+ID4+ ID5pbmRleCA0MWNjZmIwMzViN2IuLmU5YjMzODQ4NzAwYSAxMDA2NDQKPj4gPj4gPi0tLSBhL2xp Yi9hbGxvY190YWcuYwo+PiA+PiA+KysrIGIvbGliL2FsbG9jX3RhZy5jCj4+ID4+ID5AQCAtMTI3 LDYgKzEyNyw5IEBAIHNpemVfdCBhbGxvY190YWdfdG9wX3VzZXJzKHN0cnVjdCBjb2RldGFnX2J5 dGVzICp0YWdzLCBzaXplX3QgY291bnQsIGJvb2wgY2FuX3NsCj4+ID4+ID4gCXN0cnVjdCBjb2Rl dGFnX2J5dGVzIG47Cj4+ID4+ID4gCXVuc2lnbmVkIGludCBpLCBuciA9IDA7Cj4+ID4+ID4gCj4+ ID4+ID4rCWlmIChJU19FUlJfT1JfTlVMTChhbGxvY190YWdfY3R0eXBlKSkKPj4gPj4gCj4+ID4+ IFNob3VsZCBhIHdhcm5pbmcgIGFkZGVkIGhlcmU/IGluZGljYXRpbmcgIGNvZGV0YWcgbW9kdWxl IG5vdCByZWFkeSB5ZXQgYW5kIHRoZSBtZW1vcnkgZmFpbHVyZSBoYXBwZW5lZCBkdXJpbmcgYm9v dDoKPj4gPj4gIGlmIChtZW1fcHJvZmlsaW5nX3N1cHBvcnQpIHByX3dhcm4oIi4uLgo+PiA+Cj4+ ID5JIHRoaW5rIHlvdSdyZSBzYXlpbmcgd2UgbmVlZCB0byBwcmludCBhIHdhcm5pbmcgd2hlbiBh bGxvYyB0YWdnaW5nCj4+ID5jYW4ndCBwcm92aWRlICJ0b3AgdXNlcnMiLgo+PiAKPj4gSSBqdXN0 IG1lYW50IHByaW50aW5nIGEgd2FybmluZyB3aGVuIHNob3dfbWVtIGlzIG5lZWRlZCBiZWZvcmUg Y29kZXRhZyBtb2R1bGUgaW5pdGlhbGl6ZWQsIAo+PiBhcyByZXBvcnRlZCBpbiBodHRwczovL3Vy bGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvb2UtbGtwLzIwMjUwNjE4 MTM1MS5iYmE4NjdkZC1sa3BAaW50ZWwuY29tL19fOyEhQUNXVjVOOU0yUlY5OWhRIUoyd2FUVXJv OG93YVlscEFaSjZmbnJIWnZjR01iWTZxQU81UXZ2SUdaelV2LXJ5V2pDamhPLW1hVE9vbGZwUHZQ U3I2Q3BxT2drUmFsQ3dKb3ckIAo+PiB3aGVyZSBtZW1fcHJvZmlsaW5nX3N1cHBvcnQgaXMgMSwg YnV0IGFsbG9jX3RhZ19jdHR5cGUgaXMgc3RpbGwgTlVMTC4KPj4gVGhpcyBjYW4gdGVsbCB3ZSBk byBoYXZlIGEgbWVtb3J5IGZhaWx1cmUgZHVyaW5nIGJvb3QgYmVmb3JlIGNvZGV0YWdfaW5pdCwg ZXZlbiB3aXRoIG1lbW9yeSBwcm9maWxpbmcgYWN0aXZhdGVkLgo+Cj5Pay4gWW91IGRpZG4ndCBt ZWFuIHRoYXQuCj4KPkJ1dCBzdGlsbCBJIHRoaW5rIGl0J3MgYmV0dGVyIHRvIGhhbmRsZSBhbGwg Y2FzZXMgYW5kIHByaW50IGRpc3RpbmN0Cj53YXJuaW5ncywgcmF0aGVyIHRoYW4gaGFuZGxpbmcg b25seSB0aGUgc3BlY2lmaWMgY2FzZSB3aGVyZSBtZW1vcnkgcHJvZmlsaW5nCj5pcyBlbmFibGVk IGJ1dCBub3QgeWV0IGluaXRpYWxpemVkLgo+Cj5Vc2VycyB3aWxsIHdhbnQgdG8ga25vdyB3aHkg YWxsb2NhdGlvbiBpbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlLAo+YW5kIHRoZXJlIGNhbiBi ZSBtdWx0aXBsZSByZWFzb25zIGluY2x1ZGluZyB0aGUgb25lIHlvdSBtZW50aW9uZWQuCj4KPldo YXQgZG8geW91IHRoaW5rPwoKSSBhbSBub3Qgc3VyZS4uLi4gCkkgdGhpbmsgbW9zdCBjYXNlcyB5 b3UgbWVudGlvbmVkIGlzIGp1c3QgYSBwcl9pbmZvLCAgdGhvc2UgYXJlIGV4cGVjdGVkIGJlaGF2 aW9yIG9yIGRlc2lnbmVkIHRoYXQgd2F5LgpCdXQgd2hlbiAgbWVtX3Byb2ZpbGluZ19zdXBwb3J0 PT0xICYmIGFsbG9jX3RhZ19jdHR5cGU9PU5VTEwsIHRoaXMgaXMgYW4gdW5leHBlY3RlZCBiZWhh dmlvciwgd2hpY2ggaXMgYSBwcl93YXJuLgoKCgo+Cj4+ID5BbmQgdGhlcmUgY2FuIGJlIHRocmVl IGRpZmZlcmVudCByZWFzb25zIHdoeSBpdCBjYW4ndCBwcm92aWRlIHRoZW06Cj4+ID4KPj4gPjEp IGFsbG9jX3RhZ19jdHR5cGUgaXMgbm90IHJlYWR5IHlldCBvciBtZW0gcHJvZmlsaW5nIGlzIGRp c2FibGVkLgo+PiA+MikgdGhlIGNvbnRleHQgY2FuJ3Qgc2xlZXAgYW5kIHRyeWxvY2sgZmFpbGVk Lgo+PiAKPj4gVGhpcyBjYXNlIGlzIG5vdCBqdXN0IGFib3V0IHdhcm5pbmcsIGl0IGlzIGEgYnVn IGlmIHBvc3NpYmxlLgo+Cj5XaHkgZG8geW91IHRoaW5rIGl0IGlzIGEgYnVnPyBJZiB0cnlsb2Nr IGZhaWxzLCBhbGxvY190YWdfdG9wX3VzZXJzKCkKPnJldHVybnMgMCBhbmQgZG8gbm90aGluZy4K Ck9oLCBJIHdhcyB3cm9uZywgSSB0aG91Z2h0IHRoaXMgaXMgYWJvdXQgZmFpbHVyZSB0byBhY3F1 aXJlIGEgbG9jay4gKG5vdCB0cnlsb2NrLikKCgoKPgo+PiA+MykgYWxsb2MgdGFncyBkbyBub3Qg ZXhpc3QuCj4+ID4KPj4gCj4+ID4tLSAKPj4gPkNoZWVycywKPj4gPkhhcnJ5IC8gSHllb25nZ29u Cj4KPi0tIAo+Q2hlZXJzLAo+SGFycnkgLyBIeWVvbmdnb24K