From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ankitprasad Sharma Subject: Re: [PATCH 3/3] igt/gem_create: Test to validate parameters for GEM_CREATE ioctl Date: Tue, 21 Jul 2015 18:39:26 +0530 Message-ID: <1437484166.2526.16.camel@ankitprasad-desktop> References: <1435742797-4949-1-git-send-email-ankitprasad.r.sharma@intel.com> <1435742797-4949-4-git-send-email-ankitprasad.r.sharma@intel.com> <55965B7A.7030301@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id AFFFB6E6D1 for ; Tue, 21 Jul 2015 06:26:24 -0700 (PDT) In-Reply-To: <55965B7A.7030301@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 T24gRnJpLCAyMDE1LTA3LTAzIGF0IDEwOjUyICswMTAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToK PiAKPiBPbiAwNy8wMS8yMDE1IDEwOjI2IEFNLCBhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5j b20gd3JvdGU6Cj4gPiBGcm9tOiBBbmtpdHByYXNhZCBTaGFybWEgPGFua2l0cHJhc2FkLnIuc2hh cm1hQGludGVsLmNvbT4KPiA+Cj4gPiBUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB0d28gcGFyYW1l dGVycyAoc2l6ZSBhbmQgZmxhZ3MpIEdFTV9DUkVBVEUgaW9jdGwuCj4gPgo+ID4gdjI6IEFkZGVk IElHVF9URVNUX0RFU0NSSVBUSU9OIChUaG9tYXMgV29vZCkKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5 OiBBbmtpdHByYXNhZCBTaGFybWEgPGFua2l0cHJhc2FkLnIuc2hhcm1hIGF0IGludGVsLmNvbT4K PiA+IC0tLQo+ID4gICB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsKPiA+ICAgdGVzdHMv Z2VtX2NyZWF0ZS5jICAgICB8IDE4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTgyIGluc2VydGlvbnMoKykK PiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2dlbV9jcmVhdGUuYwo+ID4KPiA+IGRpZmYg LS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ ID4gaW5kZXggMzI0Y2JiNS4uZjU3OTBkZiAxMDA2NDQKPiA+IC0tLSBhL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMKPiA+ICsrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiA+IEBAIC0xNSw2ICsx NSw3IEBAIFRFU1RTX3Byb2dzX00gPSBcCj4gPiAgIAlnZW1fY2xvc2VfcmFjZSBcCj4gPiAgIAln ZW1fY29uY3VycmVudF9ibGl0IFwKPiA+ICAgCWdlbV9jb25jdXJyZW50X2FsbCBcCj4gPiArCWdl bV9jcmVhdGUgXAo+ID4gICAJZ2VtX2NzX3RsYiBcCj4gPiAgIAlnZW1fY3R4X3BhcmFtX2Jhc2lj IFwKPiA+ICAgCWdlbV9jdHhfYmFkX2V4ZWMgXAo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9j cmVhdGUuYyBiL3Rlc3RzL2dlbV9jcmVhdGUuYwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ IGluZGV4IDAwMDAwMDAuLjY1ODEwMzUKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL3Rlc3Rz L2dlbV9jcmVhdGUuYwo+ID4gQEAgLTAsMCArMSwxODEgQEAKPiA+ICsvKgo+ID4gKyAqIENvcHly aWdodCDCqSAyMDExIEludGVsIENvcnBvcmF0aW9uCj4gCj4gWWVhciBjb3JyZWN0Pwo+IAo+ID4g KyAqCj4gPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiA+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ID4g KyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0IGxpbWl0YXRpb24KPiA+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k aWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiA+ICsgKiBhbmQv b3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUKPiA+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ID4gKyAqCj4gPiArICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAo+ID4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPiA+ICsgKiBTb2Z0d2FyZS4KPiA+ICsgKgo+ ID4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gPiArICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElO IE5PIEVWRU5UIFNIQUxMCj4gPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiA+ICsgKiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg QVJJU0lORwo+ID4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiA+ICsgKiBJTiBUSEUgU09GVFdB UkUuCj4gPiArICoKPiA+ICsgKiBBdXRob3JzOgo+ID4gKyAqICAgIEFua2l0cHJhc2FkIFNoYXJt YSA8YW5raXRwcmFzYWQuci5zaGFybWEgYXQgaW50ZWwuY29tPgo+ID4gKyAqCj4gPiArICovCj4g PiArCj4gPiArLyoqIEBmaWxlIGdlbV9jcmVhdGUuYwo+ID4gKyAqCj4gPiArICogVGhpcyBpcyBh IHRlc3QgZm9yIHRoZSBleHRlbmRlZCBhbmQgb2xkIGdlbV9jcmVhdGUgaW9jdGwsIHRoYXQKPiA+ ICsgKiBpbmNsdWRlcyBhbGxvY2F0aW9uIG9mIG9iamVjdCBmcm9tIHN0b2xlbiBtZW1vcnkgYW5k IHNobWVtCj4gCj4gRnVsbCBzdG9wLgo+IAo+ID4gKyAqCj4gPiArICogVGhlIGdvYWwgaXMgdG8g c2ltcGx5IGVuc3VyZSB0aGF0IGJhc2ljcyB3b3JrIGFuZCBpbnZhbGlkIGlucHV0Cj4gPiArICog Y29tYmluYXRpb25zIGFyZSByZWplY3RlZC4KPiA+ICsgKi8KPiA+ICsKPiA+ICsjaW5jbHVkZSA8 c3RkbGliLmg+Cj4gPiArI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgo+ID4gKyNpbmNsdWRlIDxzdGRp by5oPgo+ID4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPiA+ICsjaW5jbHVkZSA8ZmNudGwuaD4KPiA+ ICsjaW5jbHVkZSA8aW50dHlwZXMuaD4KPiA+ICsjaW5jbHVkZSA8ZXJybm8uaD4KPiA+ICsjaW5j bHVkZSA8c3lzL3N0YXQuaD4KPiA+ICsjaW5jbHVkZSA8c3lzL3RpbWUuaD4KPiA+ICsjaW5jbHVk ZSA8Z2V0b3B0Lmg+Cj4gPiArCj4gPiArI2luY2x1ZGUgPGRybS5oPgo+ID4gKwo+ID4gKyNpbmNs dWRlICJpb2N0bF93cmFwcGVycy5oIgo+ID4gKyNpbmNsdWRlICJpbnRlbF9idWZtZ3IuaCIKPiA+ ICsjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIKPiA+ICsjaW5jbHVkZSAiaW50ZWxfaW8u aCIKPiA+ICsjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgo+ID4gKyNpbmNsdWRlICJpZ3RfYXV4 LmgiCj4gPiArI2luY2x1ZGUgImRybXRlc3QuaCIKPiA+ICsjaW5jbHVkZSAiZHJtLmgiCj4gPiAr I2luY2x1ZGUgImk5MTVfZHJtLmgiCj4gPiArCj4gPiArSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRo aXMgaXMgYSB0ZXN0IGZvciB0aGUgZXh0ZW5kZWQgJiBvbGQgZ2VtX2NyZWF0ZSBpb2N0bCwiCj4g PiArCQkgICAgICIgdGhhdCBpbmNsdWRlcyBhbGxvY2F0aW9uIG9mIG9iamVjdCBmcm9tIHN0b2xl biBtZW1vcnkiCj4gPiArCQkgICAgICIgYW5kIHNobWVtIik7Cj4gPiArCj4gPiArI2RlZmluZSBD TEVBUihzKSBtZW1zZXQoJnMsIDAsIHNpemVvZihzKSkKPiA+ICsjZGVmaW5lIFNJWkUgMjA0OAo+ IAo+IFNpbmNlIFBBR0VfU0laRSBpcyB0aGUgbWluaW11bSBvYmplY3QgSSB0aGluayBpdCB3b3Vs ZCBiZSBiZXR0ZXIgZm9yIAo+IGRlZmF1bHQgc2l6ZSB0byBiZSB0aGF0LiBBbmQgdGhlbiBoYXZl IGFuIGV4cGxpY2l0IHRlc3QgdG8gc2VlIGlmIAo+IHJlcXVlc3RzIHNtYWxsZXIgdGhhbiBtaW5p bXVtIGFyZSBjb3JyZWN0bHkgcm91bmRlZCB1cC4KPiAKPiA+ICsjZGVmaW5lIE9GRlNFVCAzMDcy Cj4gPiArCj4gPiArc3RhdGljIHN0cnVjdCBkcm1faW50ZWxfYnVmbWdyICpidWZtZ3I7Cj4gPiAr c3RhdGljIHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7Cj4gCj4gV2hhdCBpcyBiYXRj aGJ1ZmZlciBmb3I/IChDbGVhbnVwIGluY2x1ZGVzIGFzIHdlbGwuKQo+IAo+ID4gKwo+ID4gK3N0 YXRpYyB2b2lkIGludmFsaWRfZmxhZ190ZXN0KGludCBmZCkKPiA+ICt7Cj4gPiArCWludCByZXQg PSAwOwo+IAo+IERvbid0IG5lZWQgdG8gaW5pdGlhbGl6ZS4KPiAKPiA+ICsKPiA+ICtzdHJ1Y3Qg bG9jYWxfaTkxNV9nZW1fY3JlYXRlX3YyIHsKPiA+ICsJdWludDY0X3Qgc2l6ZTsKPiA+ICsJdWlu dDMyX3QgaGFuZGxlOwo+ID4gKwl1aW50MzJfdCBwYWQ7Cj4gPiArI2RlZmluZSBJOTE1X0NSRUFU RV9QTEFDRU1FTlRfU1RPTEVOICgxPDwwKQo+ID4gKwl1aW50MzJfdCBmbGFnczsKPiA+ICt9IGNy ZWF0ZTsKPiA+ICsKPiA+ICsjZGVmaW5lIExPQ0FMX0lPQ1RMX0k5MTVfR0VNX0NSRUFURSAgICAg ICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0NSRUFURSwgc3RydWN0 IGxvY2FsX2k5MTVfZ2VtX2NyZWF0ZV92MikKPiA+ICsJZ2VtX3JlcXVpcmVfc3RvbGVuX3N1cHBv cnQoZmQpOwo+ID4gKwo+ID4gKwljcmVhdGUuaGFuZGxlID0gMDsKPiA+ICsJY3JlYXRlLnNpemUg PSBTSVpFOwo+ID4gKwljcmVhdGUuZmxhZ3MgPSB+STkxNV9DUkVBVEVfUExBQ0VNRU5UX1NUT0xF TjsKPiAKPiBBbHNvIH4wIHNob3VsZCBiZSByZWplY3RlZC4KPiAKPiA+ICsJcmV0ID0gZHJtSW9j dGwoZmQsIExPQ0FMX0lPQ1RMX0k5MTVfR0VNX0NSRUFURSwgJmNyZWF0ZSk7Cj4gPiArCj4gPiAr CWlndF9hc3NlcnQocmV0IDw9IDApOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBpbnZh bGlkX3NpemVfdGVzdChpbnQgZmQpCj4gPiArewo+ID4gKwlpbnQgaGFuZGxlOwo+ID4gKwo+ID4g KwloYW5kbGUgPSBfX2dlbV9jcmVhdGUoZmQsIDApOwo+ID4gKwlpZ3RfYXNzZXJ0KGhhbmRsZSA9 PSAwKTsKPiA+ICt9Cj4gPiArLyogQ3JlYXRpbmcgYW4gb2JqZWN0IHdpdGggbm9uLWFsaWduZWQg c2l6ZSBhbmQgdHJ5aW5nIHRvIGFjY2VzcyBvZmZzZXQgb2YKPiA+ICsgKiB2YWx1ZSAoc2l6ZSt4 KSAmIGxlbmd0aCB5LCB3aGVyZSAoc2l6ZSt4K3kpIDw9IG9iamVjdCdzIGxhc3QgcGFnZSBib3Vu ZGFyeS4KPiA+ICsgKiBwd3JpdGUgaGVyZSBtdXN0IGJlIHN1Y2Nlc3NmdWwuCj4gPiArICovCj4g PiArc3RhdGljIHZvaWQgdmFsaWRfbm9uYWxpZ25lZF9zaXplKGludCBmZCkKPiA+ICt7Cj4gPiAr CWludCBoYW5kbGUsIGk7Cj4gPiArCXVpbnQzMl90IGJ1ZlsxMDI0XTsKPiA+ICsKPiA+ICsJZm9y IChpID0gMDsgaSA8IDEwMjQ7IGkgKyspCj4gPiArCQlidWZbaV0gPSAweGRlYWQ7Cj4gPiArCj4g PiArCWhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIFNJWkUpOwo+ID4gKwlpZ3RfYXNzZXJ0KGhhbmRs ZSAhPSAwKTsKPiA+ICsKPiA+ICsJZ2VtX3dyaXRlKGZkLCBoYW5kbGUsIE9GRlNFVCwgYnVmLCAy NTYpOwo+ID4gKwo+ID4gKwlnZW1fY2xvc2UoZmQsIGhhbmRsZSk7Cj4gPiArfQo+IAo+IEkgd291 bGQgbW92ZSB0aGlzIHN1YnRlc3QgdG8gZ2VtX3ByZWFkIG9yIGdlbV9wd3JpdGUgLSB0aGlzIG9u ZSBjbGFpbXMgCj4gdG8gYmUgb25seSBhYm91dCBjcmVhdGUgc28ga2luZCBvZiBkb2Vzbid0IGJl bG9uZyBoZXJlLgpUaGlzIHN1YnRlc3QgaXMgbm90IGFib3V0IHB3cml0ZSBvciBwcmVhZCBidXQg dG8gY2hlY2sgdGhlIGJlaGF2aW9yIG9mCmdlbV9jcmVhdGUgb24gcGFzc2luZyBub24tcGFnZS1h bGlnbmVkIHZhbHVlLiBJIG1pZ2h0IG5vdCBoYXZlIGJlZW4gYWJsZQp0byBjbGFyaWZ5IHRoaXMg dGhyb3VnaCBteSBjb21tZW50cy4gV2lsbCB1cGRhdGUgdGhhdC4gCkp1c3QgdXNpbmcgcHdyaXRl IGFzIGEgbWVjaGFuaXNtIGhlcmUgdG8gdmFsaWRhdGUgZ2VtX2NyZWF0ZS4KClJlZ2FyZHMsCkFu a2l0Cj4gCj4gPiArLyogQ3JlYXRpbmcgYW4gb2JqZWN0IHdpdGggbm9uLWFsaWduZWQgc2l6ZSBh bmQgdHJ5aW5nIHRvIGFjY2VzcyBvZmZzZXQgb2YKPiA+ICsgKiB2YWx1ZSAoc2l6ZSt4KSAmIGxl bmd0aCB5LCB3aGVyZSAoc2l6ZSt4K3kpID4gb2JqZWN0J3MgbGFzdCBwYWdlIGJvdW5kYXJ5Lgo+ ID4gKyAqIHB3cml0ZSBoZXJlIG11c3QgcmVzdWx0IGluIGZhaWx1cmUuCj4gPiArICovCj4gPiAr c3RhdGljIHZvaWQgaW52YWxpZF9ub25hbGlnbmVkX3NpemUoaW50IGZkKQo+ID4gK3sKPiA+ICsJ aW50IGhhbmRsZSwgaTsKPiA+ICsJdWludDMyX3QgYnVmWzEwMjRdOwo+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3B3cml0ZSBnZW1fcHdyaXRlOwo+ID4gKwo+ID4gKwlmb3IgKGkgPSAwOyBpIDwg MTAyNDsgaSArKykKPiAKPiBTdWdnZXN0IGF2b2lkaW5nIGhhcmRjb2RpbmcuCj4gCj4gPiArCQli dWZbaV0gPSAweGRlYWQ7Cj4gPiArCj4gPiArCWhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIFNJWkUp Owo+ID4gKwo+ID4gKwlDTEVBUihnZW1fcHdyaXRlKTsKPiA+ICsJZ2VtX3B3cml0ZS5oYW5kbGUg PSBoYW5kbGU7Cj4gPiArCWdlbV9wd3JpdGUub2Zmc2V0ID0gT0ZGU0VUOwo+ID4gKwkvKiBPdXQg b2YgYm91bmQgYWNjZXNzICovCj4gPiArCWdlbV9wd3JpdGUuc2l6ZSA9IDIwNDg7Cj4gCj4gTWl4 aW5nIHVwIGRlZmluZXMgYW5kIGhhcmRjb2RpbmcgY291bGQgYmUgaW1wcm92ZWQgc28gdGhlIG51 bWJlcnMgYXJlIAo+IG1vcmUgb2J2aW91cyB3aGVuIHJlYWRpbmcgdGhpcy4gUGVyaGFwcyBPRkZT RVQgc2hvdWxkIG5vdCBiZSBkZWZpbmVkIGF0IAo+IGFsbCBidXQgZXhwcmVzc2VkIHJlbGF0aXZl IHRvIFNJWkUgYXQgcmVsZXZhbnQgcGxhY2VzIHNvIHRoZSByZWFkZXIgCj4gaW1tZWRpYXRlbHkg a25vdyB3aGF0IGlzIHRoZSB0ZXN0IHRyeWluZyB0byBkby4KPiAKPiA+ICsJZ2VtX3B3cml0ZS5k YXRhX3B0ciA9ICh1aW50cHRyX3QpYnVmOwo+ID4gKwlpZ3RfYXNzZXJ0KGRybUlvY3RsKGZkLCBE Uk1fSU9DVExfSTkxNV9HRU1fUFdSSVRFLCAmZ2VtX3B3cml0ZSkgIT0gMCk7Cj4gPiArCj4gPiAr CWdlbV9jbG9zZShmZCwgaGFuZGxlKTsKPiA+ICt9Cj4gPiArCj4gPiAraWd0X21haW4KPiA+ICt7 Cj4gPiArCWludCBpLCBmZCwgZ3R0X3NpemVfdG90YWwsIGd0dF9zaXplX21hcHBhYmxlOwo+ID4g Kwl1aW50MzJfdCBkZXZpZDsKPiA+ICsKPiA+ICsJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ ID4gKwo+ID4gKwlpZ3RfZml4dHVyZSB7Cj4gPiArCQlmZCA9IGRybV9vcGVuX2FueSgpOwo+ID4g KwkJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKPiA+ICsKPiA+ICsJCWRybV9pbnRl bF9nZXRfYXBlcnR1cmVfc2l6ZXMoZmQsIChzaXplX3QqKSZndHRfc2l6ZV90b3RhbCwKPiA+ICsJ CQkJKHNpemVfdCopJmd0dF9zaXplX21hcHBhYmxlKTsKPiAKPiBEb2Vzbid0IGxvb2sgbGlrZSB0 aGUgdGVzdCBuZWVkcyB0byBrbm93IHRoaXMuCj4gCj4gPiArCQlidWZtZ3IgPSBkcm1faW50ZWxf YnVmbWdyX2dlbV9pbml0KGZkLCA0MDk2KTsKPiAKPiBPciB0aGlzLgo+IAo+ID4gKwkJYmF0Y2gg PSBpbnRlbF9iYXRjaGJ1ZmZlcl9hbGxvYyhidWZtZ3IsIGRldmlkKTsKPiA+ICsJfQo+ID4gKwo+ ID4gKwlpZ3Rfc3VidGVzdCgic3RvbGVuLWludmFsaWQtZmxhZyIpCj4gPiArCQlpbnZhbGlkX2Zs YWdfdGVzdChmZCk7Cj4gPiArCj4gPiArCWlndF9zdWJ0ZXN0KCJzdG9sZW4taW52YWxpZC1zaXpl IikKPiA+ICsJCWludmFsaWRfc2l6ZV90ZXN0KGZkKTsKPiA+ICsKPiA+ICsJaWd0X3N1YnRlc3Qo InN0b2xlbi12YWxpZC1ub25hbGlnbmVkIikKPiA+ICsJCXZhbGlkX25vbmFsaWduZWRfc2l6ZShm ZCk7Cj4gPiArCj4gPiArCWlndF9zdWJ0ZXN0KCJzdG9sZW4taW52YWxpZC1ub25hbGlnbmVkIikK PiA+ICsJCWludmFsaWRfbm9uYWxpZ25lZF9zaXplKGZkKTsKPiA+ICsKPiA+ICsJaWd0X2ZpeHR1 cmUgewo+ID4gKwkJaW50ZWxfYmF0Y2hidWZmZXJfZnJlZShiYXRjaCk7Cj4gPiArCQlkcm1faW50 ZWxfYnVmbWdyX2Rlc3Ryb3koYnVmbWdyKTsKPiA+ICsJfQo+ID4gK30KPiA+Cj4gCj4gUmVnYXJk cywKPiAKPiBUdnJ0a28KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=