From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: Xen-unstable 4.8: Host crash when shutting down guest with pci device passed through using MSI-X interrupts. Date: Mon, 18 Jul 2016 23:07:18 +0100 Message-ID: <96ebbed5-8540-16db-4794-b5dd44d3fcb3@citrix.com> References: <2e633ef4-2416-2105-1197-ed489a3469bd@citrix.com> <459895215.20160718212615@eikelenboom.it> <7815e37ba427b58e6932417956a2413f@eikelenboom.it> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <7815e37ba427b58e6932417956a2413f@eikelenboom.it> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: linux@eikelenboom.it Cc: Xen-devel , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org T24gMTgvMDcvMjAxNiAyMzowMywgbGludXhAZWlrZWxlbmJvb20uaXQgd3JvdGU6Cj4gT24gMjAx Ni0wNy0xOCAyMjo1NywgQW5kcmV3IENvb3BlciB3cm90ZToKPj4gT24gMTgvMDcvMjAxNiAyMDoy NiwgU2FuZGVyIEVpa2VsZW5ib29tIHdyb3RlOgo+Pj4gTW9uZGF5LCBKdWx5IDE4LCAyMDE2LCA3 OjQ4OjIwIFBNLCB5b3Ugd3JvdGU6Cj4+Pgo+Pj4+IE9uIDE4LzA3LzE2IDExOjIxLCBsaW51eEBl aWtlbGVuYm9vbS5pdCB3cm90ZToKPj4+Pj4gSGkgSmFuLAo+Pj4+Pgo+Pj4+PiBJdCBzZWVtcyB0 aGF0IHNpbmNlIHlvdXIgcGF0Y2ggc2VyaWVzIHN0YXJ0aW5nIHdpdGggY29tbWl0Ogo+Pj4+PiAy MDE2LTA2LTIyIHg4Ni92TVNJLVg6IGRlZmVyIGludGVyY2VwdCBoYW5kbGVyIHJlZ2lzdHJhdGlv bgo+Pj4+PiA3NGM2ZGMyZDBhYzRkY2FiMGM2MjQzY2RmNmVkNTUwYzE1MzJiNzk4Cj4+Pj4+Cj4+ Pj4+IFRoZSBzaHV0ZG93biBvZiBhIGd1ZXN0IHdoaWNoIGhhcyBhIFBDSSBkZXZpY2UgcGFzc2Vk IHRocm91Z2ggd2hpY2gKPj4+Pj4gdXNlcyBNU0ktWCBpbnRlcnJ1cHRzIGNhdXNlcwo+Pj4+PiBh IGhvc3QgY3Jhc2gsIHNlZSB0aGUgc3BsYXQgYmVsb3cuIFNvbWVob3cgaXQgYWxzbyBkb2Vzbid0 IHJlYm9vdAo+Pj4+PiBpbiA1Cj4+Pj4+IHNlY29uZHMgYXMgaXQgaXMgc3VwcG9zZWQgdG8gKGkg ZG9uJ3QgaGF2ZSBuby1yZWJvb3Qgb24gdGhlIGNvbW1hbmQKPj4+Pj4gbGluZSkuCj4+Pj4+Cj4+ Pj4+IC0tIAo+Pj4+PiBTYW5kZXIKPj4+Pj4KPj4+Pj4KPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYg MTY6MDM6MTcuMDY5XSAtLS0tWyBYZW4tNC44LXVuc3RhYmxlICB4ODZfNjQKPj4+Pj4gZGVidWc9 eSAgTm90IHRhaW50ZWQgXS0tLS0KPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDY5 XSBDUFU6ICAgIDAKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDY5XSBSSVA6ICAg IGUwMDg6WzxmZmZmODJkMDgwMWUzOWRlPl0KPj4+Pj4gbXNpeHRibF9wdF91bnJlZ2lzdGVyKzB4 N2IvMHhkOQo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4wNjldIFJGTEFHUzogMDAw MDAwMDAwMDAxMDA4MiAgIENPTlRFWFQ6Cj4+Pj4+IGh5cGVydmlzb3IgKGQwdjApCj4+Pj4+IChY RU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0gcmF4OiBmZmZmODMwNTVjNjc4ZTQwICAgcmJ4 Ogo+Pj4+PiBmZmZmODMwNTVjNjg1NTAwICAgcmN4OiAwMDAwMDAwMDAwMDAwMDAxCj4+Pj4+IChY RU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0gcmR4OiAwMDAwMDAwMDAwMDAwMDAwICAgcnNp Ogo+Pj4+PiAwMDAwMDAwMDAwMDAxYWIwICAgcmRpOiBmZmZmODMwNTMxM2I4NWEwCj4+Pj4+IChY RU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0gcmJwOiBmZmZmODMwMDlmZDA3Yzc4ICAgcnNw Ogo+Pj4+PiBmZmZmODMwMDlmZDA3YzY4ICAgcjg6ICBmZmZmODMwNTM1NmRmZmYwCj4+Pj4+IChY RU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0gcjk6ICBmZmZmODMwNTM1NmRmNDgwICAgcjEw Ogo+Pj4+PiBmZmZmODMwNTAzNDIwYzUwICAgcjExOiAwMDAwMDAwMDAwMDAwMjgyCj4+Pj4+IChY RU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0gcjEyOiBmZmZmODMwNTMxM2I4MDAwICAgcjEz Ogo+Pj4+PiBmZmZmODMwMDlmZDA3ZTQ4ICAgcjE0OiBmZmZmODMwNTMxM2I4MDAwCj4+Pj4+IChY RU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0gcjE1OiBmZmZmODMwNTM1NmRmNGE4ICAgY3Iw Ogo+Pj4+PiAwMDAwMDAwMDgwMDUwMDMzICAgY3I0OiAwMDAwMDAwMDAwMDAwNmUwCj4+Pj4+IChY RU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0gY3IzOiAwMDAwMDAwNTM2MzlmMDAwICAgY3Iy Ogo+Pj4+PiAwMDAwMDAwMDAwMDAwMDAwCj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3 LjA2OV0gZHM6IDAwMDAgICBlczogMDAwMCAgIGZzOiAwMDAwICAgZ3M6Cj4+Pj4+IDAwMDAgICBz czogZTAxMCAgIGNzOiBlMDA4Cj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0g WGVuIGNvZGUgYXJvdW5kIDxmZmZmODJkMDgwMWUzOWRlPgo+Pj4+PiAobXNpeHRibF9wdF91bnJl Z2lzdGVyKzB4N2IvMHhkOSk6Cj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0g IDM5IDQyIDE4IDc0IDE5IDQ4IDg5IGNhIDw0OD4gOGIKPj4+Pj4gMGEgMGYKPj4+Pj4gMTggMDkg NDggMzkgZmEgNzUgZWMgNDggOGQgN2IgMjQgZTgKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6 MDM6MTcuMDY5XSBYZW4gc3RhY2sgdHJhY2UgZnJvbQo+Pj4+PiByc3A9ZmZmZjgzMDA5ZmQwN2M2 ODoKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDY5XSAgICAwMDAwMDAwMDAwMDAw MDAwIGZmZmY4MzA1MzU2ZGY0ODAKPj4+Pj4gZmZmZjgzMDA5ZmQwN2NlOCBmZmZmODJkMDgwMTRj Mzk0Cj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA2OV0gICAgMDAwMDAwMDAwMDAw MDAwMSBmZmZmODMwNTM1NmRmNDgwCj4+Pj4+IDAwMDAwMDAwMDAwMDAyOTMgZmZmZjgzMDUzMTNi ODBjYwo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4wNjldICAgIDAwMDAwMDU2ODAx MmZmZTUgZmZmZjgzMDUzMTNiODAwMAo+Pj4+PiBmZmZmODMwMDlmZDA3Y2Q4IGZmZmY4MzAwOWZk MDdlMzgKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDcwXSAgICAwMDAwMDAwMDAw MDAwMDAwIGZmZmY4MzA1NGU1ZmMwMDAKPj4+Pj4gMDAwMDdmYzI1YTMzZTAwNCBmZmZmODMwNTMx M2I4MDAwCj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA3MF0gICAgZmZmZjgzMDA5 ZmQwN2RhOCBmZmZmODJkMDgwMTYyOWM4Cj4+Pj4+IDAwMDAwMDAwMDAwMDAwMDAgZmZmZjgzMDUz YjExOTFmMAo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4wNzBdICAgIDAwMDAwMDAw MDAwMDAyNDYgZmZmZjgzMDA5ZmQwN2QyOAo+Pj4+PiBmZmZmODJkMDgwMTMwMGFlIDAwMDAwMDAw MDAwMDAwMGUKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDcwXSAgICBmZmZmODMw MDlmZDA3ZDc4IGZmZmY4MmQwODAxNzE0OTcKPj4+Pj4gZmZmZjgzMDA5ZmQwN2Q3OCAwMDAwMDAw MjAwMDFkMTdiCj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA3MF0gICAgZmZmZjgz MDA5ZmQwN2Q2OCAwMDAwMDAwMDAwMDAwMDAwCj4+Pj4+IGZmZmY4MzAwOWZkMDdkNjggZmZmZjgy ZDA4MDEzMDI4MAo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4wNzBdICAgIGZmZmY4 MzAwOWZkMDdkNzggZmZmZjgyZDA4MDE0ZDBhYQo+Pj4+PiAwMDAwMDAwMDAwMDAwMjAyIDAwMDAw MDAwMDAwMDAwMDAKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDcwXSAgICBmZmZm ODMwNTMxM2I4MDAwIGZmZmY4ODAwNTcxNmQzMjAKPj4+Pj4gMDAwMDAwMDAwMDMwNTAwMCAwMDAw N2ZjMjVhMzNlMDA0Cj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA3MF0gICAgZmZm ZjgzMDA5ZmQwN2VmOCBmZmZmODJkMDgwMTA0YjJjCj4+Pj4+IDAwMDAwMDAwMDAwMDAyMDYgMDAw MDAwMDAwMDAwMDAwMgo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4wNzBdICAgIGZm ZmY4MzAwOWZkMDdkZjggZmZmZjgyZDA4MDE4YzlkYgo+Pj4+PiAwMDAwMDAwMDAwMDAwY2ZlIDAw MDAwMDAwMDAwMDAwMDIKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDcwXSAgICAw MDAwMDAwMDAwMDAwMDAyIGZmZmY4MzA1NGU1ZmMwMDAKPj4+Pj4gZmZmZjgzMDA5ZmQwN2U0OCBm ZmZmODJkMDgwMTljMTE5Cj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA3MF0gICAg ZmZmZjgzMDA5ZmQwN2UzOCAwMDAwMDAwMDgwMTIxMTc3Cj4+Pj4+IGZmZmY4MzAwOWZkMDdlMzgg MDAwMDAwMDAwMDAwMGNmZQo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4wNzBdICAg IGZmZmY4MzAwOWZkMDdmMTggMDAwMDAwMDAwMDAwMDIwNgo+Pj4+PiAwMDAwMDAwYzAwMDAwMDMw IDAwMDA1NjA4MmJiOTAwMTMKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDcwXSAg ICAwMDAwMDAwMjAwMDAwMDU2IDAwMDA3ZmMyMDAwMDAwMTMKPj4+Pj4gMDAwMDMwNTYwMDAwMDAw MCAwMDAwNTYwODJiODc0NjVkCj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA3MF0g ICAgMDAwMDdmZmUyNjgyMDZlMCAwMDAwN2ZjMjU2MDZiMzFmCj4+Pj4+IDAwMDAwMDAwMDAwMDAw MDAgMDAwMDU2MDgyYjg3NDZjZgo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4wNzBd ICAgIDAwMDAwMDAwMDAwMDEwMDAgZmVlNTYwMDAyNjgyMDczMAo+Pj4+PiAwMDAwN2ZmZTI2ODIw NzQwIDAwMDA1NjA4MmI4Nzk3YmUKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDcw XSAgICAwMDAwMDAwMGZlZTU2MDAwIDAwMDA0MzAwMjY4MjA3NzIKPj4+Pj4gMDAwMDdmZmUyNjgy MDc0MCAwMDAwMDAwMDAwMDAzMDU2Cj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA3 MF0gICAgMDAwMDdmZmUyNjgyMDZlMCBmZmZmODMwMDlmZjhhMDAwCj4+Pj4+IDAwMDA3ZmZlMjY4 MjA1ODAgZmZmZjg4MDA1NzE2ZDMyMAo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4w NzBdIFhlbiBjYWxsIHRyYWNlOgo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxNy4wNzBd ICAgIFs8ZmZmZjgyZDA4MDFlMzlkZT5dCj4+Pj4+IG1zaXh0YmxfcHRfdW5yZWdpc3RlcisweDdi LzB4ZDkKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDcwXSAgICBbPGZmZmY4MmQw ODAxNGMzOTQ+XQo+Pj4+PiBwdF9pcnFfZGVzdHJveV9iaW5kKzB4MmJlLzB4M2YwCj4+Pj4+IChY RU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE3LjA3MF0gICAgWzxmZmZmODJkMDgwMTYyOWM4Pl0KPj4+ Pj4gYXJjaF9kb19kb21jdGwrMHhjNzcvMHgyNDE0Cj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2 OjAzOjE3LjA3MF0gICAgWzxmZmZmODJkMDgwMTA0YjJjPl0KPj4+Pj4gZG9fZG9tY3RsKzB4MTlk Yi8weDFkMjYKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcuMDcwXSAgICBbPGZmZmY4 MmQwODAyNDI2YmQ+XQo+Pj4+PiBsc3Rhcl9lbnRlcisweGRkLzB4MTM3Cj4+Pj4+IChYRU4pIFsy MDE2LTA3LTE2IDE2OjAzOjE3LjA3MF0KPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTcu MDcwXSBQYWdldGFibGUgd2FsayBmcm9tIDAwMDAwMDAwMDAwMDAwMDA6Cj4+Pj4+IChYRU4pIFsy MDE2LTA3LTE2IDE2OjAzOjE3LjA3MF0gIEw0WzB4MDAwXSA9IDAwMDAwMDAwMDAwMDAwMDAKPj4+ Pj4gZmZmZmZmZmZmZmZmZmZmZgo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxOC4xNDdd Cj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE4LjE1NV0KPj4+Pj4gKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjow MzoxOC4xNzVdIFBhbmljIG9uIENQVSAwOgo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzox OC4xODddIEZBVEFMIFBBR0UgRkFVTFQKPj4+Pj4gKFhFTikgWzIwMTYtMDctMTYgMTY6MDM6MTgu MjAwXSBbZXJyb3JfY29kZT0wMDAwXQo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxOC4y MTRdIEZhdWx0aW5nIGxpbmVhciBhZGRyZXNzOgo+Pj4+PiAwMDAwMDAwMDAwMDAwMDAwCj4+Pj4+ IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE4LjIzM10KPj4+Pj4gKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgo+Pj4+PiAoWEVOKSBbMjAxNi0wNy0xNiAxNjowMzoxOC4y NTJdCj4+Pj4+IChYRU4pIFsyMDE2LTA3LTE2IDE2OjAzOjE4LjI2MV0gUmVib290IGluIGZpdmUg c2Vjb25kcy4uLgo+Pj4+Pgo+Pj4+IENhbiB5b3UgcGFzdGUgdGhlIGRpc2Fzc2VtYmx5IG9mIG1z aXh0YmxfcHRfdW5yZWdpc3RlcigpIHBsZWFzZT8gIFRoYXQKPj4+PiBpcyBhIGRlcmVmZXJlbmNl IG9mICVyZHggd2hpY2ggaXMgTlVMTCBhdCB0aGlzIHBvaW50LCBidXQgSSBuZWVkIHRvCj4+Pj4g ZmlndXJlIG91dCB3aGljaCBwb2ludGVyIGl0IGlzIHN1cHBvc2VkIHRvIGJlLgo+Pj4gSGkgQW5k cmV3LAo+Pgo+PiA8c25pcD4KPj4KPj4gVGhhbmtzLiAgV2hhdCBoYXMgaGFwcGVuZWQgaXMgdGhh dCB0aGUgbXNpeHRibCBsaW5rZWQgbGlzdCBpcyBzdGlsbAo+PiB1bmluaXRpYWxpc2VkIGF0IHRo aXMgcG9pbnQuICBUaGUgb25seSB3YXkgSSBjYW4gc2VlIGZvciB0aGlzIHRvIGhhcHBlbgo+PiBp cyB0aGF0IG1zaXh0YmxfaW5pdCgpIGhhc24ndCBiZWVuIGNhbGxlZCwgb3IgaGFzbid0IHBhc3Nl ZCBpdHMgZmlyc3QgaWYKPj4gY29uZGl0aW9uLiAgVGhlIElOSVRfTElTVF9IRUFEKCkgdmlzaWJs ZSBpbiB0aGUgY29udGV4dCBvZiB0aGUgMm5kIGh1bmsKPj4gb2YgaWRlbnRpZmllZCBjaGFuZ2Vz ZXQgaXMgdGhlIGxpbmUgb2YgY29kZSB3aGljaCBjaGFuZ2VzIHRoZSBsaXN0IGZyb20KPj4gMCB0 byBpbml0aWFsaXNlZCwgYW5kIEkgZG9uJ3Qgc2VlIGFueXdoZXJlIHdoaWNoIHJlLXplcm9zIGl0 IGxhdGVyLgo+Pgo+PiBUaGlzIGFsb25lIHN1Z2dlc3RzIHRoYXQgdGhlIFZNIGluIHF1ZXN0aW9u IGlzbid0IGFjdHVhbGx5IHVzaW5nIE1TSS1YCj4+IGludGVycnVwdHMsIGV2ZW4gaWYgdGhlIGRl dmljZSBwYXNzZWQgdGhyb3VnaCBpcyBjYXBhYmxlLgo+Cj4gSG1tIGRpZG4ndCBhY3R1YWxseSBj aGVjayB0aGlzIGJlZm9yZSwgYnV0IHlvdSBzZWVtIHRvIGJlIHJpZ2h0Cj4gKGJlbG93IGlzIHRo ZSBsc3BjaSBvdXRwdXQgZnJvbSB3aXRoaW4gdGhlIGd1ZXN0KS4KCkJvdGggb2YgdGhvc2UgZGV2 aWNlcyBhcmUgdXNpbmcgTVNJIGludGVycnVwdHMgLSB0aGV5IGRvbid0IGV2ZW4gc3VwcG9ydApN U0ktWC4KCj4KPgo+PiBGb2xsb3dpbmcgdGhlIHN0eWxlIG9mIHRoZSBpZGVudGlmaWVkIGNoYW5n ZXNldCwKPj4KPj4gYW5kcmV3Y29vcEBhbmRyZXdjb29wOi9sb2NhbC94ZW4uZ2l0L3hlbiQgZ2l0 IGRpZmYKPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5jIGIveGVuL2FyY2gv eDg2L2h2bS92bXNpLmMKPj4gaW5kZXggZTQxOGI5OC4uYzUzMzcxOSAxMDA2NDQKPj4gLS0tIGEv eGVuL2FyY2gveDg2L2h2bS92bXNpLmMKPj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXNpLmMK Pj4gQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIG1zaXh0YmxfcHRfdW5yZWdpc3RlcihzdHJ1Y3Qg ZG9tYWluICpkLCBzdHJ1Y3QKPj4gcGlycSAqcGlycSkKPj4gICAgICBBU1NFUlQocGNpZGV2c19s b2NrZWQoKSk7Cj4+ICAgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZkLT5ldmVudF9sb2NrKSk7 Cj4+Cj4+IC0gICAgaWYgKCAhaGFzX3ZsYXBpYyhkKSApCj4+ICsgICAgaWYgKCAhZC0+YXJjaC5o dm1fZG9tYWluLm1zaXh0YmxfbGlzdC5uZXh0ICkKPj4gICAgICAgICAgcmV0dXJuOwo+Pgo+PiAg ICAgIGlycV9kZXNjID0gcGlycV9zcGluX2xvY2tfaXJxX2Rlc2MocGlycSwgTlVMTCk7Cj4+Cj4+ IHNob3VsZCByZXNvbHZlIHlvdXIgaXNzdWUsIGFsdGhvdWdoIEkgYW0gdmVyeSB0ZW1wdGVkIHRv IHJlcGxhY2UgdGhlCj4+IG9wZW5jb2RlZCBsaXN0IGxvZ2ljIHdpdGggYSBtc2l4dGJsX2luaXRp YWxpc2VkKCkgcHJlZGljYXRlIGluc3RlYWQuCj4+Cj4+IH5BbmRyZXcKPgo+IEl0IGRvZXMgcmVz b2x2ZSB0aGUgaXNzdWUsIHRoYW5rcyAhCgpSaWdodCAtIEkgd2lsbCBjbGVhbiB1cCB0aGUgcGF0 Y2ggdG9tb3Jyb3cgdXNpbmcgYSBtb3JlIGxvZ2ljYWwgcHJlZGljYXRlLgoKfkFuZHJldwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==