From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ankitprasad Sharma Subject: Re: [PATCH 2/6] drm/i915: Support for creating Stolen memory backed objects Date: Fri, 11 Dec 2015 16:52:44 +0530 Message-ID: <1449832964.12247.151.camel@ankitprasad-desktop> References: <1449665182-10054-1-git-send-email-ankitprasad.r.sharma@intel.com> <1449665182-10054-3-git-send-email-ankitprasad.r.sharma@intel.com> <5668357A.5050005@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 37AB46EE19 for ; Fri, 11 Dec 2015 03:42:05 -0800 (PST) In-Reply-To: <5668357A.5050005@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: intel-gfx@lists.freedesktop.org, akash.goel@intel.com, shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE1LTEyLTA5IGF0IDE0OjA2ICswMDAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToK PiBIaSwKPiAKPiBPbiAwOS8xMi8xNSAxMjo0NiwgYW5raXRwcmFzYWQuci5zaGFybWFAaW50ZWwu Y29tIHdyb3RlOgo+ID4gRnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNo YXJtYUBpbnRlbC5jb20+Cj4gPgo+ID4gRXh0ZW5kIHRoZSBkcm1faTkxNV9nZW1fY3JlYXRlIHN0 cnVjdHVyZSB0byBhZGQgc3VwcG9ydCBmb3IKPiA+IGNyZWF0aW5nIFN0b2xlbiBtZW1vcnkgYmFj a2VkIG9iamVjdHMuIEFkZGVkIGEgbmV3IGZsYWcgdGhyb3VnaAo+ID4gd2hpY2ggdXNlciBjYW4g c3BlY2lmeSB0aGUgcHJlZmVyZW5jZSB0byBhbGxvY2F0ZSB0aGUgb2JqZWN0IGZyb20KPiA+IHN0 b2xlbiBtZW1vcnksIHdoaWNoIGlmIHNldCwgYW4gYXR0ZW1wdCB3aWxsIGJlIG1hZGUgdG8gYWxs b2NhdGUKPiA+IHRoZSBvYmplY3QgZnJvbSBzdG9sZW4gbWVtb3J5IHN1YmplY3QgdG8gdGhlIGF2 YWlsYWJpbGl0eSBvZgo+ID4gZnJlZSBzcGFjZSBpbiB0aGUgc3RvbGVuIHJlZ2lvbi4KPiA+Cj4g PiB2MjogUmViYXNlZCB0byB0aGUgbGF0ZXN0IGRybS1pbnRlbC1uaWdodGx5IChBbmtpdCkKPiA+ Cj4gPiB2MzogQ2hhbmdlZCB2ZXJzaW9uaW5nIG9mIEdFTV9DUkVBVEUgcGFyYW0sIGFkZGVkIG5l dyBjb21tZW50cyAoVHZydGtvKQo+ID4KPiA+IHY0OiBDaGFuZ2VkIHNpemUgZnJvbSAzMmIgdG8g NjRiIHRvIHByZXZlbnQgdXNlcnNwYWNlIG92ZXJmbG93IChUdnJ0a28pCj4gPiBDb3JyZWN0ZWQg ZnVuY3Rpb24gYXJndW1lbnRzIG9yZGVyaW5nIChDaHJpcykKPiA+Cj4gPiB2NTogQ29ycmVjdGVk IGZ1bmN0aW9uIG5hbWUgKENocmlzKQo+ID4KPiA+IFRlc3RjYXNlOiBpZ3QvZ2VtX3N0b2xlbgo+ ID4KPiA+IFNpZ25lZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQuci5z aGFybWFAaW50ZWwuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28u dXJzdWxpbkBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kbWEuYyAgICAgICAgfCAgMyArKysKPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICAgICAgfCAgMiArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j ICAgICAgICB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQo+ID4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyB8ICA0ICsrLS0KPiA+ICAgaW5jbHVkZS91 YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgfCAxNiArKysrKysrKysrKysrKysrCj4gPiAg IDUgZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPiA+Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiA+IGluZGV4IGZmY2I5YzYuLjY5MjdjN2UgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4gPiBAQCAtMTcwLDYgKzE3MCw5IEBAIHN0YXRp YyBpbnQgaTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ ID4gICAJY2FzZSBJOTE1X1BBUkFNX0hBU19SRVNPVVJDRV9TVFJFQU1FUjoKPiA+ICAgCQl2YWx1 ZSA9IEhBU19SRVNPVVJDRV9TVFJFQU1FUihkZXYpOwo+ID4gICAJCWJyZWFrOwo+ID4gKwljYXNl IEk5MTVfUEFSQU1fQ1JFQVRFX1ZFUlNJT046Cj4gPiArCQl2YWx1ZSA9IDI7Cj4gPiArCQlicmVh azsKPiA+ICAgCWRlZmF1bHQ6Cj4gPiAgIAkJRFJNX0RFQlVHKCJVbmtub3duIHBhcmFtZXRlciAl ZFxuIiwgcGFyYW0tPnBhcmFtKTsKPiA+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggOGU1NTRkMy4uZDQ1Mjc0ZSAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC0zMjEzLDcgKzMyMTMsNyBAQCB2b2lkIGk5MTVfZ2Vt X3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g PiAgIGludCBpOTE1X2dlbV9pbml0X3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ ICAgdm9pZCBpOTE1X2dlbV9jbGVhbnVwX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK PiA+ICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgo+ID4gLWk5MTVfZ2VtX29iamVjdF9j cmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzaXplKTsKPiA+ICtpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1NjQgc2l6 ZSk7Cj4gPiAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKPiA+ICAgaTkxNV9nZW1fb2Jq ZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ID4gICAJCQkJCSAgICAgICB1MzIgc3RvbGVuX29mZnNldCwKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+ID4gaW5kZXggZDU3ZTg1MC4uMjk2ZTYzZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKPiA+IEBAIC0zNzUsNiArMzc1LDcgQEAgc3RhdGljIGludAo+ID4gICBpOTE1 X2dlbV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAo+ID4gICAJCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gPiAgIAkJdWludDY0X3Qgc2l6ZSwKPiA+ICsJCXVpbnQzMl90IGZsYWdzLAo+ ID4gICAJCXVpbnQzMl90ICpoYW5kbGVfcCkKPiA+ICAgewo+ID4gICAJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iajsKPiA+IEBAIC0zODUsOCArMzg2LDMxIEBAIGk5MTVfZ2VtX2NyZWF0 ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4gPiAgIAlpZiAoc2l6ZSA9PSAwKQo+ID4gICAJCXJl dHVybiAtRUlOVkFMOwo+ID4KPiA+ICsJaWYgKGZsYWdzICYgX19JOTE1X0NSRUFURV9VTktOT1dO X0ZMQUdTKQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiAgIAkvKiBBbGxvY2F0ZSB0 aGUgbmV3IG9iamVjdCAqLwo+ID4gLQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBz aXplKTsKPiA+ICsJaWYgKGZsYWdzICYgSTkxNV9DUkVBVEVfUExBQ0VNRU5UX1NUT0xFTikgewo+ ID4gKwkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ID4gKwkJb2JqID0gaTkxNV9n ZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBzaXplKTsKPiA+ICsJCWlmICghb2JqKSB7Cj4g PiArCQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiArCQkJcmV0dXJuIC1F Tk9NRU07Cj4gPiArCQl9Cj4gPiArCj4gPiArCQkvKiBBbHdheXMgY2xlYXIgZnJlc2ggYnVmZmVy cyBiZWZvcmUgaGFuZGluZyB0byB1c2Vyc3BhY2UgKi8KPiA+ICsJCXJldCA9IGk5MTVfZ2VtX29i amVjdF9jbGVhcihvYmopOwo+ID4gKwkJaWYgKHJldCkgewo+ID4gKwkJCWRybV9nZW1fb2JqZWN0 X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwo+ID4gKwkJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwo+ID4gKwkJCXJldHVybiByZXQ7Cj4gPiArCQl9Cj4gPiArCj4gPiArCQltdXRl eF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCW9iaiA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOwo+ID4gKwl9Cj4gPiArCj4gPiAgIAlp ZiAob2JqID09IE5VTEwpCj4gPiAgIAkJcmV0dXJuIC1FTk9NRU07Cj4gPgo+ID4gQEAgLTQwOSw3 ICs0MzMsNyBAQCBpOTE1X2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4g PiAgIAlhcmdzLT5waXRjaCA9IEFMSUdOKGFyZ3MtPndpZHRoICogRElWX1JPVU5EX1VQKGFyZ3Mt PmJwcCwgOCksIDY0KTsKPiA+ICAgCWFyZ3MtPnNpemUgPSBhcmdzLT5waXRjaCAqIGFyZ3MtPmhl aWdodDsKPiA+ICAgCXJldHVybiBpOTE1X2dlbV9jcmVhdGUoZmlsZSwgZGV2LAo+ID4gLQkJCSAg ICAgICBhcmdzLT5zaXplLCAmYXJncy0+aGFuZGxlKTsKPiA+ICsJCQkgICAgICAgYXJncy0+c2l6 ZSwgMCwgJmFyZ3MtPmhhbmRsZSk7Cj4gPiAgIH0KPiA+Cj4gPiAgIC8qKgo+ID4gQEAgLTQyMiw3 ICs0NDYsNyBAQCBpOTE1X2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKPiA+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlICphcmdzID0gZGF0 YTsKPiA+Cj4gPiAgIAlyZXR1cm4gaTkxNV9nZW1fY3JlYXRlKGZpbGUsIGRldiwKPiA+IC0JCQkg ICAgICAgYXJncy0+c2l6ZSwgJmFyZ3MtPmhhbmRsZSk7Cj4gPiArCQkJICAgICAgIGFyZ3MtPnNp emUsIGFyZ3MtPmZsYWdzLCAmYXJncy0+aGFuZGxlKTsKPiA+ICAgfQo+ID4KPiA+ICAgc3RhdGlj IGlubGluZSBpbnQKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gPiBp bmRleCA1OThlZDJmLi5iOThhM2JmIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc3RvbGVuLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3N0b2xlbi5jCj4gPiBAQCAtNTgzLDcgKzU4Myw3IEBAIGNsZWFudXA6Cj4gPiAgIH0KPiA+ Cj4gPiAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKPiA+IC1pOTE1X2dlbV9vYmplY3Rf Y3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgc2l6ZSkKPiA+ICtpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1NjQgc2l6 ZSkKPiA+ICAgewo+ID4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiA+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4g PiBAQCAtNTkzLDcgKzU5Myw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzaXplKQo+ID4gICAJaWYgKCFkcm1fbW1faW5pdGlhbGl6 ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQo+ID4gICAJCXJldHVybiBOVUxMOwo+ID4KPiA+IC0J RFJNX0RFQlVHX0tNUygiY3JlYXRpbmcgc3RvbGVuIG9iamVjdDogc2l6ZT0leFxuIiwgc2l6ZSk7 Cj4gPiArCURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JWxseFxu Iiwgc2l6ZSk7Cj4gPiAgIAlpZiAoc2l6ZSA9PSAwKQo+ID4gICAJCXJldHVybiBOVUxMOwo+ID4K PiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmgKPiA+IGluZGV4IDY3Y2ViZTYuLjhlN2UzYTQgMTAwNjQ0Cj4gPiAt LS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiA+ICsrKyBiL2luY2x1ZGUvdWFwaS9k cm0vaTkxNV9kcm0uaAo+ID4gQEAgLTM1Niw2ICszNTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBkcm1f aTkxNV9pcnFfd2FpdCB7Cj4gPiAgICNkZWZpbmUgSTkxNV9QQVJBTV9FVV9UT1RBTAkJIDM0Cj4g PiAgICNkZWZpbmUgSTkxNV9QQVJBTV9IQVNfR1BVX1JFU0VUCSAzNQo+ID4gICAjZGVmaW5lIEk5 MTVfUEFSQU1fSEFTX1JFU09VUkNFX1NUUkVBTUVSIDM2Cj4gPiArI2RlZmluZSBJOTE1X1BBUkFN X0NSRUFURV9WRVJTSU9OCSAzNwo+ID4KPiA+ICAgdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVfZ2V0 cGFyYW0gewo+ID4gICAJX19zMzIgcGFyYW07Cj4gPiBAQCAtNDU1LDYgKzQ1NiwyMSBAQCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZSB7Cj4gPiAgIAkgKi8KPiA+ICAgCV9fdTMyIGhhbmRsZTsK PiA+ICAgCV9fdTMyIHBhZDsKPiA+ICsJLyoqCj4gPiArCSAqIFJlcXVlc3RlZCBmbGFncyAoY3Vy cmVudGx5IHVzZWQgZm9yIHBsYWNlbWVudAo+ID4gKwkgKiAod2hpY2ggbWVtb3J5IGRvbWFpbikp Cj4gPiArCSAqCj4gPiArCSAqIFlvdSBjYW4gcmVxdWVzdCB0aGF0IHRoZSBvYmplY3QgYmUgY3Jl YXRlZCBmcm9tIHNwZWNpYWwgbWVtb3J5Cj4gPiArCSAqIHJhdGhlciB0aGFuIHJlZ3VsYXIgc3lz dGVtIHBhZ2VzIHVzaW5nIHRoaXMgcGFyYW1ldGVyLiBTdWNoCj4gPiArCSAqIGlycmVndWxhciBv YmplY3RzIG1heSBoYXZlIGNlcnRhaW4gcmVzdHJpY3Rpb25zIChzdWNoIGFzIENQVQo+ID4gKwkg KiBhY2Nlc3MgdG8gYSBzdG9sZW4gb2JqZWN0IGlzIHZlcmJvdGVuKS4KPiA+ICsJICoKPiA+ICsJ ICogVGhpcyBjYW4gYmUgdXNlZCBpbiB0aGUgZnV0dXJlIGZvciBvdGhlciBwdXJwb3NlcyB0b28K PiA+ICsJICogZS5nLiBzcGVjaWZ5aW5nIHRpbGluZy9jYWNoaW5nL21hZHZpc2UKPiA+ICsJICov Cj4gPiArCV9fdTMyIGZsYWdzOwo+ID4gKyNkZWZpbmUgSTkxNV9DUkVBVEVfUExBQ0VNRU5UX1NU T0xFTiAJKDE8PDApIC8qIENhbm5vdCB1c2UgQ1BVIG1tYXBzICovCj4gPiArI2RlZmluZSBfX0k5 MTVfQ1JFQVRFX1VOS05PV05fRkxBR1MJLShJOTE1X0NSRUFURV9QTEFDRU1FTlRfU1RPTEVOIDw8 IDEpCj4gCj4gSSd2ZSBhc2tlZCBpbiBhbm90aGVyIHJlcGx5LCBub3cgdGhhdCB1c2Vyc3BhY2Ug Y2FuIGNyZWF0ZSBhIHN0b2xlbiAKPiBvYmplY3QsIHdoYXQgaGFwcGVucyBpZiBpdCB0cmllcyB0 byB1c2UgaXQgZm9yIGEgYmF0Y2ggYnVmZmVyPwo+IAo+IENhbiBpdCBlbmQgdXAgaW4gdGhlIHJl bG9jYXRlX2VudHJ5X2NwdSB3aXRoIGEgYmF0Y2ggYnVmZmVyIGFsbG9jYXRlZCAKPiBmcm9tIHN0 b2xlbiwgd2hpY2ggd291bGQgdGhlbiBjYWxsIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZSBhbmQg Y3Jhc2g/ClRoYW5rcyBmb3IgcG9pbnRpbmcgaXQgb3V0LgpZZXMsIHRoaXMgaXMgZGVmaW5pdGVs eSBhIHBvc3NpYmlsaXR5LCBpZiB3ZSBhbGxvY2F0ZSBiYXRjaGJ1ZmZlcnMgZnJvbQp0aGUgc3Rv bGVuIHJlZ2lvbi4gSSBoYXZlIHN0YXJ0ZWQgd29ya2luZyBvbiB0aGF0LCB0byBkbwpyZWxvY2F0 ZV9lbnRyeV9zdG9sZW4oKSBpZiB0aGUgb2JqZWN0IGlzIGFsbG9jYXRlZCBmcm9tIHN0b2xlbi4K PiAKPiA+ICAgfTsKPiA+Cj4gPiAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcHJlYWQgewo+ID4KPiAK PiBSZWdhcmRzLAo+IAo+IFR2cnRrbwpUaGFua3MsCkFua2l0CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=