From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 59BB6CA6012 for ; Fri, 9 Oct 2026 07:57:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:References: In-Reply-To:To:Subject:From:Message-ID:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=3NwpusXOEmiN8+tyEz5ushgzptJ1/qqU5EzLapu5YPk=; b=GB+Uviohc555IW EXtyHM43OuanCrHXYEE4JP9RsvfNyynufIsTx32t5xiEbhvJlGBzOvJ/xrRamImAL/9asKMLMxL3W JxP3KH2kmZNiDOL2L2Yo96KrTMUqcisMMnKRThw+aKsFs+wX0N71V6YMH7asWcXYRS7JSoT2GHAU5 zryAcMW+AqD9Pk7csdXvEPQNcstUrOxpZ0uXjMzyebZCGDgdBB6VBEZNvxoDnAuj5t5l35KddvBBm YGL2SX2FhKFXZBO77XUwga8/YsGWC5oONLQvLG8g42FfJ+AtzA8PJC0Q6E5QkxOsy/zEf85G5BxEw XmJoK7mZhWht3+k56AOw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xF5TY-00000005lmR-0FkL; Fri, 09 Oct 2026 07:57:08 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xF5TX-00000005lmF-0fiE for linux-mtd@lists.infradead.org; Fri, 09 Oct 2026 07:57:07 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 80D754140F; Fri, 9 Oct 2026 07:57:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 173E61F00893; Fri, 9 Oct 2026 07:57:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791532626; bh=mmocaXB/c/ARhLFpC6LBa27C9Gx012oGYBY0BIuokYM=; h=From:Subject:Reply-To:To:In-Reply-To:References:Date; b=AvHYkB0m/v9KfnTxP1MFMlWfovct0N/oawBMXUWAW+5jsyE30S6gi9tRVKILqbmpb jxnh51ed8Sld1iX1TCden/Om9ZEG4VdHyjd53EAmZdvJmqN25hiDxJrHEaqCSiirbz kOOj3cdUV+PDbsiRhs3zsSBulgkUfgKH8kdysQdYB3eYPqhlQG8TSyM9nMdQX3EgVE zs98O61C5CiyvwkvqZTxB+e4NEW4zCqAi/hsm/hOeQ3aO/mXPnrGNLW0kUU6kvtZ69 yjHYax8Owrt68NnAr7GYDmSd8TvOhTiJm7JLr7+lKZJWi6DH5sSowt8nWh4YbNAL1E IRw1ysNKkxH4Q== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 2/2] mtd: spi-nor: fix use-after-free on unbind with open handles To: "Michael Walle" , "Pratyush Yadav" , "Takahiro Kuwano" , tze.yee.ng@altera.com, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org In-Reply-To: References: Date: Fri, 09 Oct 2026 07:57:05 +0000 X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0NyaXRpY2FsXSBtdGQ6IHNwaS1u b3I6IGRvdWJsZS1mcmVlIG9uIG10ZF9kZXZpY2VfcmVnaXN0ZXIgZXJyb3IgcGF0aAotIFtIaWdo XSBtdGQ6IHNwaS1ub3I6IFVBRiB2aWEgVE9DVE9VIHJhY2UgZnJvbSBsb2NrbGVzcyBtYXN0ZXIt PnJlbW92ZWQgY2hlY2sKLSBbSGlnaF0gbXRkOiBzcGktbm9yOiBVQUYgb24gbm9yLT5pZCBhbmQg ZXJhc2VfbWFwIHZpYSBkZWJ1Z2ZzIGFmdGVyIHVuYmluZAotIFtIaWdoXSBtdGQ6IHNwaS1ub3I6 IFVBRiBhbmQgTlVMTCBwb2ludGVyIGRlcmVmIGluIHNwaV9ub3JfcHV0X2RldmljZSgpIG9uIHVu YmluZAotIFtNZWRpdW1dIG10ZDogc3BpLW5vcjogbWVtb3J5IGxlYWsgb2YgbXRkX3JlZ2lvbiBv biBlcnJvciBwYXRoCi0gW01lZGl1bV0gbXRkOiBzcGktbm9yOiBtZW1vcnkgbGVhayBvZiBzcGlf bm9yIG9iamVjdCBvbiB1bmJpbmQKLS0KCmNvbW1pdCBjZjNlY2ZlYTk1NmM5NzRlYTY3NmM5Y2Q3 MWZmMjExNWYwYWYzMmNhCkF1dGhvcjogVHplIFllZSBOZyA8dHplLnllZS5uZ0BhbHRlcmEuY29t PgoKbXRkOiBzcGktbm9yOiBmaXggdXNlLWFmdGVyLWZyZWUgb24gdW5iaW5kIHdpdGggb3BlbiBo YW5kbGVzCgpUaGUgY29tbWl0IHN3aXRjaGVzIHNwaV9ub3Igb2JqZWN0cyBmcm9tIGRldm1fa3ph bGxvYyB0byBremFsbG9jIHdpdGgKYSBjdXN0b20gbXRkLT5fZnJlZSBob29rIHRvIGVuc3VyZSB0 aGV5IG91dGxpdmUgdGhlIGRldmljZSBpZiBmaWxlIGhhbmRsZXMKYXJlIGhlbGQgb3Blbi4gSXQg YWxzbyBzZXRzIGEgcmVtb3ZlZCBmbGFnIGluIHRoZSByZW1vdmUgY2FsbGJhY2sgdG8KZmVuY2Ug b2ZmIGhhcmR3YXJlIG9wZXJhdGlvbnMgZHVyaW5nIGRldnJlcyB0ZWFyZG93bi4KCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jIGIvZHJpdmVycy9tdGQvc3BpLW5vci9j b3JlLmMKPiBpbmRleCA4YmMxMTdiNDZlMDI4Li5iMjhkODk2ZjE2ZWQ1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jCj4gKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9j b3JlLmMKWyAuLi4gXQo+IEBAIC0zNTQ5LDggKzM1NTgsMTIgQEAgc3RhdGljIGludCBzcGlfbm9y X3NldF9tdGRfZXJhc2VyZWdpb25zKHN0cnVjdCBzcGlfbm9yICpub3IpCj4gIAlzdHJ1Y3QgbXRk X2luZm8gKm10ZCA9ICZub3ItPm10ZDsKPiAgCXUzMiBlcmFzZXNpemUsIGk7Cj4gIAo+IC0JbXRk X3JlZ2lvbiA9IGRldm1fa2NhbGxvYyhub3ItPmRldiwgbWFwLT5uX3JlZ2lvbnMsIHNpemVvZigq bXRkX3JlZ2lvbiksCj4gLQkJCQkgIEdGUF9LRVJORUwpOwo+ICsJaWYgKHNwaV9ub3JfdXNlc19m cmVlX2hvb2sobm9yKSkKPiArCQltdGRfcmVnaW9uID0ga2NhbGxvYyhtYXAtPm5fcmVnaW9ucywg c2l6ZW9mKCptdGRfcmVnaW9uKSwKPiArCQkJCSAgICAgR0ZQX0tFUk5FTCk7Cj4gKwllbHNlCj4g KwkJbXRkX3JlZ2lvbiA9IGRldm1fa2NhbGxvYyhub3ItPmRldiwgbWFwLT5uX3JlZ2lvbnMsCj4g KwkJCQkJICBzaXplb2YoKm10ZF9yZWdpb24pLCBHRlBfS0VSTkVMKTsKPiAgCWlmICghbXRkX3Jl Z2lvbikKPiAgCQlyZXR1cm4gLUVOT01FTTsKCltTZXZlcml0eTogTWVkaXVtXQpTaW5jZSBtdGRf cmVnaW9uIGlzIG5vdyBhbGxvY2F0ZWQgd2l0aCBrY2FsbG9jLCBkb2VzIGl0IGdldCBsZWFrZWQg aWYKc3BpX25vcl9nZXRfcmVnaW9uX2VyYXNlc2l6ZSgpIGZhaWxzIGxhdGVyIGluIHRoaXMgZnVu Y3Rpb24/CgpJZiBhbiBlYXJseSByZXR1cm4gaGFwcGVucyBoZXJlOgoKZHJpdmVycy9tdGQvc3Bp LW5vci9jb3JlLmM6c3BpX25vcl9zZXRfbXRkX2VyYXNlcmVnaW9ucygpIHsKICAgIC4uLgogICAg Zm9yIChpID0gMDsgaSA8IG1hcC0+bl9yZWdpb25zOyBpKyspIHsKICAgICAgICBlcmFzZXNpemUg PSBzcGlfbm9yX2dldF9yZWdpb25fZXJhc2VzaXplKCZyZWdpb25baV0sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAtPmVyYXNlX3R5cGUpOwogICAg ICAgIGlmICghZXJhc2VzaXplKQogICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgIC4uLgp9 CgptdGRfcmVnaW9uIGlzbid0IHlldCBhc3NpZ25lZCB0byBtdGQtPmVyYXNlcmVnaW9ucywgc28g c3BpX25vcl9mcmVlKCkgd2lsbApqdXN0IGNhbGwga2ZyZWUoTlVMTCkgYW5kIGxlYWsgdGhpcyBh bGxvY2F0aW9uLgoKWyAuLi4gXQo+IEBAIC0zNzg4LDEyICszODIwLDEzIEBAIHN0YXRpYyBpbnQg c3BpX25vcl9wcm9iZShzdHJ1Y3Qgc3BpX21lbSAqc3BpbWVtKQo+ICAJaWYgKHJldCkKPiAgCQly ZXR1cm4gcmV0Owo+ICAKPiAtCW5vciA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqbm9yKSwg R0ZQX0tFUk5FTCk7Cj4gKwlub3IgPSBremFsbG9jX29iaigqbm9yLCBHRlBfS0VSTkVMKTsKPiAg CWlmICghbm9yKQo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAgCW5vci0+c3BpbWVtID0gc3Bp bWVtOwo+ICAJbm9yLT5kZXYgPSBkZXY7Cj4gKwlub3ItPm10ZC5fZnJlZSA9IHNwaV9ub3JfbXRk X2ZyZWU7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgZXh0ZW5kaW5nIHRoZSBsaWZldGltZSBvZiB0 aGUgc3BpX25vciBvYmplY3QgY2F1c2UgYSBjcmFzaCBpbgpzcGlfbm9yX3B1dF9kZXZpY2UoKSBp ZiB0aGUgZmlsZSBpcyBjbG9zZWQgYWZ0ZXIgdGhlIGRyaXZlciB1bmJpbmRzPwoKV2hlbiB0aGUg TVREIGRldmljZSBpcyBldmVudHVhbGx5IGNsb3NlZCwgbXRkY2hhcl9jbG9zZSgpIGNhbGxzCnNw aV9ub3JfcHV0X2RldmljZSgpLiBTaW5jZSBub3IgaXMgc3RpbGwgYWxpdmUsIGl0IHdpbGwgYXR0 ZW1wdCB0byBhY2Nlc3MKbm9yLT5zcGltZW0gdG8gZmluZCB0aGUgY29udHJvbGxlci4gSG93ZXZl ciwgbm9yLT5zcGltZW0gd2FzIGFsbG9jYXRlZAp2aWEgZGV2cmVzIGFuZCBmcmVlZCBvbiB1bmJp bmQuIFRoaXMgYWxzbyBhdHRlbXB0cyB0byBhY2Nlc3MgZGV2LT5kcml2ZXIKd2hpY2ggd2lsbCBi ZSBOVUxMLgoKWyAuLi4gXQo+IEBAIC0zODMwLDI5ICszODYzLDU2IEBAIHN0YXRpYyBpbnQgc3Bp X25vcl9wcm9iZShzdHJ1Y3Qgc3BpX21lbSAqc3BpbWVtKQpbIC4uLiBdCj4gLQlyZXR1cm4gbXRk X2RldmljZV9yZWdpc3Rlcigmbm9yLT5tdGQsIGRhdGEgPyBkYXRhLT5wYXJ0cyA6IE5VTEwsCj4g LQkJCQkgICBkYXRhID8gZGF0YS0+bnJfcGFydHMgOiAwKTsKPiArCXJldCA9IG10ZF9kZXZpY2Vf cmVnaXN0ZXIoJm5vci0+bXRkLCBkYXRhID8gZGF0YS0+cGFydHMgOiBOVUxMLAo+ICsJCQkJICBk YXRhID8gZGF0YS0+bnJfcGFydHMgOiAwKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBlcnJfZnJl ZTsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2Vycl9mcmVlOgo+ICsJc3BpX25vcl9mcmVlKG5v cik7Cj4gKwlyZXR1cm4gcmV0Owo+ICB9CgpbU2V2ZXJpdHk6IENyaXRpY2FsXQpDYW4gdGhpcyBj YXVzZSBhIGRvdWJsZS1mcmVlIG9mIHRoZSBzcGlfbm9yIG9iamVjdD8KCklmIG10ZF9kZXZpY2Vf cmVnaXN0ZXIoKSBzdWNjZWVkcyBpbiByZWdpc3RlcmluZyB0aGUgbWFzdGVyIE1URCBidXQgZmFp bHMKc3Vic2VxdWVudGx5IChlLmcuLCBwYXJ0aXRpb24gYWxsb2NhdGlvbiBmYWlscyksIHRoZSBN VEQgY29yZSdzIGVycm9yIGNsZWFudXAKZHJvcHMgdGhlIG1hc3RlcidzIGtyZWYgdG8gMC4gVGhp cyB0cmlnZ2VycyBtdGQtPl9mcmVlIChzcGlfbm9yX2ZyZWUpIGFuZApmcmVlcyB0aGUgb2JqZWN0 LgoKVGhlbiBtdGRfZGV2aWNlX3JlZ2lzdGVyKCkgcmV0dXJucyBhbiBlcnJvciBjb2RlLCBjYXVz aW5nIGEganVtcCB0byBlcnJfZnJlZQp3aGVyZSBzcGlfbm9yX2ZyZWUobm9yKSBpcyBjYWxsZWQg YSBzZWNvbmQgdGltZSBvbiB0aGUgYWxyZWFkeS1mcmVlZCBwb2ludGVyLgoKWyAuLi4gXQo+IEBA IC0zODc1LDYgKzM5MDgsMjEgQEAgc3RhdGljIGludCBzcGlfbm9yX3JlbW92ZShzdHJ1Y3Qgc3Bp X21lbSAqc3BpbWVtKQo+ICB7Cj4gIAlzdHJ1Y3Qgc3BpX25vciAqbm9yID0gc3BpX21lbV9nZXRf ZHJ2ZGF0YShzcGltZW0pOwo+ICAKPiArCS8qCj4gKwkgKiBEcmFpbiBpbi1mbGlnaHQgb3BzIGFu ZCBtYXJrIHJlbW92ZWQgc28gbGF0ZXIgb3BzIGdldCAtRU5PREVWCj4gKwkgKiBiZWZvcmUgdG91 Y2hpbmcgYnVzIHJlc291cmNlcyBmcmVlZCBhZnRlciB0aGlzIHJldHVybnMuCj4gKwkgKi8KPiAr CWlmICghc3BpX25vcl91c2VfcGFyYWxsZWxfbG9ja2luZyhub3IpKQo+ICsJCW11dGV4X2xvY2so Jm5vci0+bG9jayk7Cj4gKwllbHNlCj4gKwkJd2FpdF9ldmVudChub3ItPnJ3dy53YWl0LCBzcGlf bm9yX3J3d19zdGFydF9leGNsdXNpdmUobm9yKSk7Cj4gKwo+ICsJbm9yLT5tdGQucmVtb3ZlZCA9 IHRydWU7Cj4gKwo+ICsJaWYgKCFzcGlfbm9yX3VzZV9wYXJhbGxlbF9sb2NraW5nKG5vcikpIHsK PiArCQltdXRleF91bmxvY2soJm5vci0+bG9jayk7Cj4gKwl9IGVsc2Ugewo+ICsJCXNwaV9ub3Jf cnd3X2VuZF9leGNsdXNpdmUobm9yKTsKPiArCQl3YWtlX3VwKCZub3ItPnJ3dy53YWl0KTsKPiAr CX0KCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGNyZWF0ZSBhIFRPQ1RPVSByYWNlIHdpdGgg bG9ja2xlc3MgcmVhZGVycz8KCkEgcmVhZGVyIGluIHRoZSBNVEQgY29yZSBjYW4gY2hlY2sgbWFz dGVyLT5yZW1vdmVkIGxvY2tsZXNzbHkgYW5kIHByb2NlZWQuCgpJZiB0aGF0IHJlYWRlciBibG9j a3Mgd2FpdGluZyBmb3Igbm9yLT5sb2NrLCBhbmQgc3BpX25vcl9yZW1vdmUoKSBjb25jdXJyZW50 bHkKYWNxdWlyZXMgdGhlIGxvY2ssIHNldHMgbm9yLT5tdGQucmVtb3ZlZCA9IHRydWUsIHJlbGVh c2VzIHRoZSBsb2NrLCBhbmQgcmV0dXJucywKdGhlIGRyaXZlciB1bmJpbmQgY29tcGxldGVzIGFu ZCBkZXZyZXMgZnJlZXMgcmVzb3VyY2VzIGxpa2Ugbm9yLT5zcGltZW0uCgpUaGUgYmxvY2tlZCBy ZWFkZXIgd2lsbCB0aGVuIHdha2UgdXAsIGFjcXVpcmUgdGhlIGxvY2sgKGZhaWxpbmcgdG8gY2hl Y2sKcmVtb3ZlZCBhZ2FpbiksIGFuZCB0cnkgdG8gYWNjZXNzIHRoZSBmcmVlZCBkZXZyZXMgcmVz b3VyY2VzLgoKPiAgCj4gIAlzcGlfbm9yX3Jlc3RvcmUobm9yKTsKPiAgCj4gIAkvKiBDbGVhbiB1 cCBNVEQgc3R1ZmYuICovCj4gIAlyZXR1cm4gbXRkX2RldmljZV91bnJlZ2lzdGVyKCZub3ItPm10 ZCk7Cj4gIH0KCltTZXZlcml0eTogTWVkaXVtXQpXaWxsIHRoaXMgbGVhayB0aGUgZW50aXJlIHNw aV9ub3Igb2JqZWN0IGlmIHRoZSBkZXZpY2UgaGFzIHBhcnRpdGlvbnMgYnV0CkNPTkZJR19NVERf UEFSVElUSU9ORURfTUFTVEVSIGlzIGRpc2FibGVkPwoKV2hlbiB0aGF0IGNvbmZpZyBpcyBkaXNh YmxlZCwgdGhlIG1hc3RlciBNVEQgaXMgbmV2ZXIgcmVnaXN0ZXJlZC4gSW4gdGhhdApzY2VuYXJp bywgbXRkX2RldmljZV91bnJlZ2lzdGVyKCkgcmV0dXJucyAwIGVhcmx5IHdpdGhvdXQgaW52b2tp bmcga3JlZl9wdXQoKQpvbiB0aGUgbWFzdGVyLgoKVGhpcyBtZWFucyBtdGQtPl9mcmVlKCkgd2ls bCBuZXZlciBiZSBjYWxsZWQsIHBlcm1hbmVudGx5IGxlYWtpbmcgdGhlCmt6YWxsb2MnZCBzcGlf bm9yIG9iamVjdC4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvZGVidWdmcy5j IGIvZHJpdmVycy9tdGQvc3BpLW5vci9kZWJ1Z2ZzLmMKPiBpbmRleCAyODhlMjg2NmRhZWRiLi5h MDYzOWU5MWNiMmQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvZGVidWdmcy5j Cj4gKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9kZWJ1Z2ZzLmMKWyAuLi4gXQo+IEBAIC0yOTks MTUgKzI5NywxMCBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqcm9vdGRpcjsKPiAgdm9pZCBzcGlf bm9yX2RlYnVnZnNfcmVnaXN0ZXIoc3RydWN0IHNwaV9ub3IgKm5vcikKPiAgewo+ICAJc3RydWN0 IGRlbnRyeSAqZDsKPiAtCWludCByZXQ7Cj4gIAo+ICAJaWYgKCFyb290ZGlyKQo+ICAJCXJvb3Rk aXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoU1BJX05PUl9ERUJVR0ZTX1JPT1QsIE5VTEwpOwo+ICAK PiAtCXJldCA9IGRldm1fYWRkX2FjdGlvbihub3ItPmRldiwgc3BpX25vcl9kZWJ1Z2ZzX3VucmVn aXN0ZXIsIG5vcik7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybjsKPiAtCj4gIAlkID0gZGVidWdm c19jcmVhdGVfZGlyKGRldl9uYW1lKG5vci0+ZGV2KSwgcm9vdGRpcik7Cj4gIAlub3ItPmRlYnVn ZnNfcm9vdCA9IGQ7CgpbU2V2ZXJpdHk6IEhpZ2hdClNpbmNlIHRoaXMgZGV2bV9hZGRfYWN0aW9u KCkgaXMgcmVtb3ZlZCwgZG8gdGhlIGRlYnVnZnMgZmlsZXMgcmVtYWluCmFjY2Vzc2libGUgYWZ0 ZXIgdW5iaW5kIGNvbXBsZXRlcywgd2hpbGUgd2Ugd2FpdCBmb3IgdGhlIGZpbmFsIG10ZCBjbG9z ZT8KCklmIHRoZSBkZWJ1Z2ZzIGZpbGVzIHBlcnNpc3QsIGFjY2Vzc2luZyB0aGVtIGNhbiBjYXVz ZSBhIHVzZS1hZnRlci1mcmVlLgoKRm9yIGV4YW1wbGUsIHJlYWRpbmcgdGhlIHBhcmFtcyBmaWxl IHdpbGwgY2FsbCBzcGlfbm9yX3BhcmFtc19zaG93KCksIHdoaWNoCmRlcmVmZXJlbmNlcyBub3It PmlkIGFuZCBlcmFzZV9tYXAucmVnaW9ucy4gU2luY2UgdGhvc2Ugd2VyZSBhbGxvY2F0ZWQgdmlh CmRldnJlcywgdGhleSBhcmUgZnJlZWQgd2hlbiB0aGUgZHJpdmVyIHVuYmluZHMsIGV2ZW4gaWYg dGhlIHNwaV9ub3Igb2JqZWN0Cml0c2VsZiBpcyBrZXB0IGFsaXZlLgoKLS0gClNhc2hpa28gQUkg cmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC9jb3Zlci4xNzkxNTEyNjIz LmdpdC50emUueWVlLm5nQGFsdGVyYS5jb20/cGFydD0yCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFp bGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtbXRkLwo=