From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Call i915_gem_init_userptr() before taking struct_mutex Date: Wed, 22 Nov 2017 17:30:52 +0000 Message-ID: References: <20171122172621.16158-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0D8D36E679 for ; Wed, 22 Nov 2017 17:30:54 +0000 (UTC) In-Reply-To: <20171122172621.16158-1-chris@chris-wilson.co.uk> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIyLzExLzIwMTcgMTc6MjYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBXZSBkb24ndCBuZWVk IHN0cnVjdF9tdXRleCB0byBpbml0aWFsaXNlIHVzZXJwdHIgKGl0IGp1c3QgYWxsb2NhdGVzIGEK PiB3b3JrcXVldWUgZm9yIGl0c2VsZiBldGMpLCBidXQgd2UgZG8gbmVlZCBzdHJ1Y3RfbXV0ZXgg aW4KPiBpOTE1X2dlbV9pbml0KCkgaW4gb3JkZXIgdG8gZmVlZCByZXF1ZXN0cyBvbnRvIHRoZSBI Vy4KPiAKPiBUaGlzIHNob3VsZCBicmVhayB0aGUgY2hhaW4KPiAKPiBbICAzODUuNjk3OTAyXSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiBb ICAzODUuNjk3OTA3XSBXQVJOSU5HOiBwb3NzaWJsZSBjaXJjdWxhciBsb2NraW5nIGRlcGVuZGVu Y3kgZGV0ZWN0ZWQKPiBbICAzODUuNjk3OTEzXSA0LjE0LjAtQ0ktUGF0Y2h3b3JrXzcyMzQrICMx IFRhaW50ZWQ6IEcgICAgIFUKPiBbICAzODUuNjk3OTE3XSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBbICAzODUuNjk3OTIyXSBwZXJmX3Bt dS8yNjMxIGlzIHRyeWluZyB0byBhY3F1aXJlIGxvY2s6Cj4gWyAgMzg1LjY5NzkyN10gICgmbW0t Pm1tYXBfc2VtKXsrKysrfSwgYXQ6IFs8ZmZmZmZmZmY4MTFiZmUxZT5dIF9fbWlnaHRfZmF1bHQr MHgzZS8weDkwCj4gWyAgMzg1LjY5Nzk0MV0KPiAgICAgICAgICAgICAgICAgYnV0IHRhc2sgaXMg YWxyZWFkeSBob2xkaW5nIGxvY2s6Cj4gWyAgMzg1LjY5Nzk0Nl0gICgmY3B1Y3R4X211dGV4KXsr LisufSwgYXQ6IFs8ZmZmZmZmZmY4MTE2ZmU4Yz5dIHBlcmZfZXZlbnRfY3R4X2xvY2tfbmVzdGVk KzB4YmMvMHgxZDAKPiBbICAzODUuNjk3OTU3XQo+ICAgICAgICAgICAgICAgICB3aGljaCBsb2Nr IGFscmVhZHkgZGVwZW5kcyBvbiB0aGUgbmV3IGxvY2suCj4gCj4gWyAgMzg1LjY5Nzk2M10KPiAg ICAgICAgICAgICAgICAgdGhlIGV4aXN0aW5nIGRlcGVuZGVuY3kgY2hhaW4gKGluIHJldmVyc2Ug b3JkZXIpIGlzOgo+IFsgIDM4NS42OTc5NzBdCj4gICAgICAgICAgICAgICAgIC0+ICM0ICgmY3B1 Y3R4X211dGV4KXsrLisufToKPiBbICAzODUuNjk3OTgwXSAgICAgICAgX19tdXRleF9sb2NrKzB4 ODYvMHg5YjAKPiBbICAzODUuNjk3OTg1XSAgICAgICAgcGVyZl9ldmVudF9pbml0X2NwdSsweDVh LzB4OTAKPiBbICAzODUuNjk3OTkxXSAgICAgICAgcGVyZl9ldmVudF9pbml0KzB4MTc4LzB4MWE0 Cj4gWyAgMzg1LjY5Nzk5N10gICAgICAgIHN0YXJ0X2tlcm5lbCsweDI3Zi8weDNmMQo+IFsgIDM4 NS42OTgwMDNdICAgICAgICB2ZXJpZnlfY3B1KzB4MC8weGZiCj4gWyAgMzg1LjY5ODAwNl0KPiAg ICAgICAgICAgICAgICAgLT4gIzMgKHBtdXNfbG9jayl7Ky4rLn06Cj4gWyAgMzg1LjY5ODAxNV0g ICAgICAgIF9fbXV0ZXhfbG9jaysweDg2LzB4OWIwCj4gWyAgMzg1LjY5ODAyMF0gICAgICAgIHBl cmZfZXZlbnRfaW5pdF9jcHUrMHgyMS8weDkwCj4gWyAgMzg1LjY5ODAyNV0gICAgICAgIGNwdWhw X2ludm9rZV9jYWxsYmFjaysweGNhLzB4YzAwCj4gWyAgMzg1LjY5ODAzMF0gICAgICAgIF9jcHVf dXArMHhhNy8weDE3MAo+IFsgIDM4NS42OTgwMzVdICAgICAgICBkb19jcHVfdXArMHg1Ny8weDcw Cj4gWyAgMzg1LjY5ODAzOV0gICAgICAgIHNtcF9pbml0KzB4NjIvMHhhNgo+IFsgIDM4NS42OTgw NDRdICAgICAgICBrZXJuZWxfaW5pdF9mcmVlYWJsZSsweDk3LzB4MTkzCj4gWyAgMzg1LjY5ODA1 MF0gICAgICAgIGtlcm5lbF9pbml0KzB4YS8weDEwMAo+IFsgIDM4NS42OTgwNTVdICAgICAgICBy ZXRfZnJvbV9mb3JrKzB4MjcvMHg0MAo+IFsgIDM4NS42OTgwNThdCj4gICAgICAgICAgICAgICAg IC0+ICMyIChjcHVfaG90cGx1Z19sb2NrLnJ3X3NlbSl7KysrK306Cj4gWyAgMzg1LjY5ODA2OF0g ICAgICAgIGNwdXNfcmVhZF9sb2NrKzB4MzkvMHhhMAo+IFsgIDM4NS42OTgwNzNdICAgICAgICBh cHBseV93b3JrcXVldWVfYXR0cnMrMHgxMi8weDUwCj4gWyAgMzg1LjY5ODA3OF0gICAgICAgIF9f YWxsb2Nfd29ya3F1ZXVlX2tleSsweDFkOC8weDRkOAo+IFsgIDM4NS42OTgxMzRdICAgICAgICBp OTE1X2dlbV9pbml0X3VzZXJwdHIrMHg1Zi8weDgwIFtpOTE1XQo+IFsgIDM4NS42OTgxNzZdICAg ICAgICBpOTE1X2dlbV9pbml0KzB4N2MvMHgzOTAgW2k5MTVdCj4gWyAgMzg1LjY5ODIxM10gICAg ICAgIGk5MTVfZHJpdmVyX2xvYWQrMHg5OWUvMHgxNWMwIFtpOTE1XQo+IFsgIDM4NS42OTgyNTBd ICAgICAgICBpOTE1X3BjaV9wcm9iZSsweDMzLzB4OTAgW2k5MTVdCj4gWyAgMzg1LjY5ODI1Nl0g ICAgICAgIHBjaV9kZXZpY2VfcHJvYmUrMHhhMS8weDEzMAo+IFsgIDM4NS42OTgyNjJdICAgICAg ICBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4MjkzLzB4NDQwCj4gWyAgMzg1LjY5ODI2N10gICAgICAg IF9fZHJpdmVyX2F0dGFjaCsweGRlLzB4ZTAKPiBbICAzODUuNjk4MjcyXSAgICAgICAgYnVzX2Zv cl9lYWNoX2RldisweDVjLzB4OTAKPiBbICAzODUuNjk4Mjc3XSAgICAgICAgYnVzX2FkZF9kcml2 ZXIrMHgxNmQvMHgyNjAKPiBbICAzODUuNjk4MjgyXSAgICAgICAgZHJpdmVyX3JlZ2lzdGVyKzB4 NTcvMHhjMAo+IFsgIDM4NS42OTgyODddICAgICAgICBkb19vbmVfaW5pdGNhbGwrMHgzZS8weDE2 MAo+IFsgIDM4NS42OTgyOTJdICAgICAgICBkb19pbml0X21vZHVsZSsweDViLzB4MWZhCj4gWyAg Mzg1LjY5ODI5N10gICAgICAgIGxvYWRfbW9kdWxlKzB4MjM3NC8weDJkYzAKPiBbICAzODUuNjk4 MzAyXSAgICAgICAgU3lTX2Zpbml0X21vZHVsZSsweGFhLzB4ZTAKPiBbICAzODUuNjk4MzA3XSAg ICAgICAgZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDFjLzB4YjEKPiBbICAzODUuNjk4MzEx XQo+ICAgICAgICAgICAgICAgICAtPiAjMSAoJmRldi0+c3RydWN0X211dGV4KXsrLisufToKPiBb ICAzODUuNjk4MzIwXSAgICAgICAgX19tdXRleF9sb2NrKzB4ODYvMHg5YjAKPiBbICAzODUuNjk4 MzYxXSAgICAgICAgaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUrMHg0Yy8weDEzMCBbaTkx NV0KPiBbICAzODUuNjk4NDAzXSAgICAgICAgaTkxNV9nZW1fZmF1bHQrMHgyMDYvMHg3NjAgW2k5 MTVdCj4gWyAgMzg1LjY5ODQwOV0gICAgICAgIF9fZG9fZmF1bHQrMHgxYS8weDcwCj4gWyAgMzg1 LjY5ODQxM10gICAgICAgIF9faGFuZGxlX21tX2ZhdWx0KzB4N2M0LzB4ZGIwCj4gWyAgMzg1LjY5 ODQxN10gICAgICAgIGhhbmRsZV9tbV9mYXVsdCsweDE1NC8weDMwMAo+IFsgIDM4NS42OTg0NDBd ICAgICAgICBfX2RvX3BhZ2VfZmF1bHQrMHgyZDYvMHg1NzAKPiBbICAzODUuNjk4NDQ1XSAgICAg ICAgcGFnZV9mYXVsdCsweDIyLzB4MzAKPiBbICAzODUuNjk4NDQ5XQo+ICAgICAgICAgICAgICAg ICAtPiAjMCAoJm1tLT5tbWFwX3NlbSl7KysrK306Cj4gWyAgMzg1LjY5ODQ1OV0gICAgICAgIGxv Y2tfYWNxdWlyZSsweGFmLzB4MjAwCj4gWyAgMzg1LjY5ODQ2NF0gICAgICAgIF9fbWlnaHRfZmF1 bHQrMHg2OC8weDkwCj4gWyAgMzg1LjY5ODQ3MF0gICAgICAgIF9jb3B5X3RvX3VzZXIrMHgxZS8w eDcwCj4gWyAgMzg1LjY5ODQ3NV0gICAgICAgIHBlcmZfcmVhZCsweDFhYS8weDI5MAo+IFsgIDM4 NS42OTg0ODBdICAgICAgICBfX3Zmc19yZWFkKzB4MjMvMHgxMjAKPiBbICAzODUuNjk4NDg0XSAg ICAgICAgdmZzX3JlYWQrMHhhMy8weDE1MAo+IFsgIDM4NS42OTg0ODhdICAgICAgICBTeVNfcmVh ZCsweDQ1LzB4YjAKPiBbICAzODUuNjk4NDkzXSAgICAgICAgZW50cnlfU1lTQ0FMTF82NF9mYXN0 cGF0aCsweDFjLzB4YjEKPiBbICAzODUuNjk4NDk3XQo+ICAgICAgICAgICAgICAgICBvdGhlciBp bmZvIHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOgo+IAo+IFsgIDM4NS42OTg1MDVdIENo YWluIGV4aXN0cyBvZjoKPiAgICAgICAgICAgICAgICAgICAmbW0tPm1tYXBfc2VtIC0tPiBwbXVz X2xvY2sgLS0+ICZjcHVjdHhfbXV0ZXgKPiAKPiBbICAzODUuNjk4NTE3XSAgUG9zc2libGUgdW5z YWZlIGxvY2tpbmcgc2NlbmFyaW86Cj4gCj4gWyAgMzg1LjY5ODUyMl0gICAgICAgIENQVTAgICAg ICAgICAgICAgICAgICAgIENQVTEKPiBbICAzODUuNjk4NTI2XSAgICAgICAgLS0tLSAgICAgICAg ICAgICAgICAgICAgLS0tLQo+IFsgIDM4NS42OTg1MjldICAgbG9jaygmY3B1Y3R4X211dGV4KTsK PiBbICAzODUuNjk4NTUzXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jayhwbXVz X2xvY2spOwo+IFsgIDM4NS42OTg1NThdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs b2NrKCZjcHVjdHhfbXV0ZXgpOwo+IFsgIDM4NS42OTg1NjRdICAgbG9jaygmbW0tPm1tYXBfc2Vt KTsKPiBbICAzODUuNjk4NTY4XQo+ICAgICAgICAgICAgICAgICAgKioqIERFQURMT0NLICoqKgo+ IAo+IFsgIDM4NS42OTg1NzRdIDEgbG9jayBoZWxkIGJ5IHBlcmZfcG11LzI2MzE6Cj4gWyAgMzg1 LjY5ODU3OF0gICMwOiAgKCZjcHVjdHhfbXV0ZXgpeysuKy59LCBhdDogWzxmZmZmZmZmZjgxMTZm ZThjPl0gcGVyZl9ldmVudF9jdHhfbG9ja19uZXN0ZWQrMHhiYy8weDFkMAo+IFsgIDM4NS42OTg1 ODldCj4gICAgICAgICAgICAgICAgIHN0YWNrIGJhY2t0cmFjZToKPiBbICAzODUuNjk4NTk1XSBD UFU6IDMgUElEOiAyNjMxIENvbW06IHBlcmZfcG11IFRhaW50ZWQ6IEcgICAgIFUgICAgICAgICAg NC4xNC4wLUNJLVBhdGNod29ya183MjM0KyAjMQo+IFsgIDM4NS42OTg2MDJdIEhhcmR3YXJlIG5h bWU6ICAgICAgICAgICAgICAgICAgL05VQzZDQVlCLCBCSU9TIEFZQVBMQ0VMLjg2QS4wMDQwLjIw MTcuMDYxOS4xNzIyIDA2LzE5LzIwMTcKPiBbICAzODUuNjk4NjA5XSBDYWxsIFRyYWNlOgo+IFsg IDM4NS42OTg2MTVdICBkdW1wX3N0YWNrKzB4NWYvMHg4Ngo+IFsgIDM4NS42OTg2MjFdICBwcmlu dF9jaXJjdWxhcl9idWcuaXNyYS4xOCsweDFkMC8weDJjMAo+IFsgIDM4NS42OTg2MjddICBfX2xv Y2tfYWNxdWlyZSsweDE5YzMvMHgxYjYwCj4gWyAgMzg1LjY5ODYzNF0gID8gZ2VuZXJpY19leGVj X3NpbmdsZSsweDc3LzB4ZTAKPiBbICAzODUuNjk4NjQwXSAgPyBsb2NrX2FjcXVpcmUrMHhhZi8w eDIwMAo+IFsgIDM4NS42OTg2NDRdICBsb2NrX2FjcXVpcmUrMHhhZi8weDIwMAo+IFsgIDM4NS42 OTg2NTBdICA/IF9fbWlnaHRfZmF1bHQrMHgzZS8weDkwCj4gWyAgMzg1LjY5ODY1NV0gIF9fbWln aHRfZmF1bHQrMHg2OC8weDkwCj4gWyAgMzg1LjY5ODY2MF0gID8gX19taWdodF9mYXVsdCsweDNl LzB4OTAKPiBbICAzODUuNjk4NjY1XSAgX2NvcHlfdG9fdXNlcisweDFlLzB4NzAKPiBbICAzODUu Njk4NjcwXSAgcGVyZl9yZWFkKzB4MWFhLzB4MjkwCj4gWyAgMzg1LjY5ODY3NV0gIF9fdmZzX3Jl YWQrMHgyMy8weDEyMAo+IFsgIDM4NS42OTg2ODJdICA/IF9fZmdldCsweDEwMS8weDFmMAo+IFsg IDM4NS42OTg2ODZdICB2ZnNfcmVhZCsweGEzLzB4MTUwCj4gWyAgMzg1LjY5ODY5MV0gIFN5U19y ZWFkKzB4NDUvMHhiMAo+IFsgIDM4NS42OTg2OTZdICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRo KzB4MWMvMHhiMQo+IFsgIDM4NS42OTg3MDFdIFJJUDogMDAzMzoweDdmZjFjNDY4NzZlZAo+IFsg IDM4NS42OTg3MDVdIFJTUDogMDAyYjowMDAwN2ZmZjEzNTUyZjkwIEVGTEFHUzogMDAwMDAyOTMg T1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMDAKPiBbICAzODUuNjk4NzEyXSBSQVg6IGZmZmZmZmZm ZmZmZmZmZGEgUkJYOiBmZmZmYzkwMDAwNjQ3ZmYwIFJDWDogMDAwMDdmZjFjNDY4NzZlZAo+IFsg IDM4NS42OTg3MThdIFJEWDogMDAwMDAwMDAwMDAwMDAxMCBSU0k6IDAwMDA3ZmZmMTM1NTJmYTAg UkRJOiAwMDAwMDAwMDAwMDAwMDA1Cj4gWyAgMzg1LjY5ODcyM10gUkJQOiAwMDAwNTYwNjNkMzAw NTgwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwNjAKPiBbICAzODUu Njk4NzI5XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjkzIFIxMjog MDAwMDAwMDAwMDAwMDA0Ngo+IFsgIDM4NS42OTg3MzRdIFIxMzogMDAwMDdmZmYxMzU1MmM2ZiBS MTQ6IDAwMDA3ZmYxYzYyNzlkMDAgUjE1OiAwMDAwN2ZmMWM2Mjc5YTQwCj4gCj4gVGVzdGNhc2U6 IGlndC9wZXJmX3BtdQo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwu Y29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDExICsrKysr LS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDIxY2E2ODBlOWU2My4uZTAzZDZj MjU1NGUyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTUxMTYsOCArNTExNiw2 IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgIHsKPiAgIAlpbnQgcmV0Owo+ICAgCj4gLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0 cnVjdF9tdXRleCk7Cj4gLQo+ICAgCS8qCj4gICAJICogV2UgbmVlZCB0byBmYWxsYmFjayB0byA0 SyBwYWdlcyBzaW5jZSBndnQgZ3R0IGhhbmRsaW5nIGRvZXNuJ3QKPiAgIAkgKiBzdXBwb3J0IGh1 Z2UgcGFnZSBlbnRyaWVzIC0gd2Ugd2lsbCBuZWVkIHRvIGNoZWNrIGVpdGhlciBoeXBlcnZpc29y Cj4gQEAgLTUxMzcsMTggKzUxMzUsMTkgQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCQlkZXZfcHJpdi0+Z3QuY2xlYW51cF9lbmdpbmUg PSBpbnRlbF9lbmdpbmVfY2xlYW51cDsKPiAgIAl9Cj4gICAKPiArCXJldCA9IGk5MTVfZ2VtX2lu aXRfdXNlcnB0cihkZXZfcHJpdik7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ ICAgCS8qIFRoaXMgaXMganVzdCBhIHNlY3VyaXR5IGJsYW5rZXQgdG8gcGxhY2F0ZSBkcmFnb25z Lgo+ICAgCSAqIE9uIHNvbWUgc3lzdGVtcywgd2UgdmVyeSBzcG9yYWRpY2FsbHkgb2JzZXJ2ZSB0 aGF0IHRoZSBmaXJzdCBUTEJzCj4gICAJICogdXNlZCBieSB0aGUgQ1MgbWF5IGJlIHN0YWxlLCBk ZXNwaXRlIHVzIHBva2luZyB0aGUgVExCIHJlc2V0LiBJZgo+ICAgCSAqIHdlIGhvbGQgdGhlIGZv cmNld2FrZSBkdXJpbmcgaW5pdGlhbGlzYXRpb24gdGhlc2UgcHJvYmxlbXMKPiAgIAkgKiBqdXN0 IG1hZ2ljYWxseSBnbyBhd2F5Lgo+ICAgCSAqLwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwo+ICAgCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2 LCBGT1JDRVdBS0VfQUxMKTsKPiAgIAo+IC0JcmV0ID0gaTkxNV9nZW1faW5pdF91c2VycHRyKGRl dl9wcml2KTsKPiAtCWlmIChyZXQpCj4gLQkJZ290byBvdXRfdW5sb2NrOwo+IC0KPiAgIAlyZXQg PSBpOTE1X2dlbV9pbml0X2dndHQoZGV2X3ByaXYpOwo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8g b3V0X3VubG9jazsKPiAKClRoYW5rcyBmb3IgdGFraW5nIGNhcmUgb2YgdGhpcy4gUHJlLWVtcHRp dmUgci1iOgoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRl bC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=