From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ankitprasad Sharma Subject: Re: [PATCH 2/3] igt/gem_pread: Support to verify pread/pwrite for non-shmem backed obj Date: Tue, 21 Jul 2015 18:08:26 +0530 Message-ID: <1437482306.2526.10.camel@ankitprasad-desktop> References: <1435742797-4949-1-git-send-email-ankitprasad.r.sharma@intel.com> <1435742797-4949-3-git-send-email-ankitprasad.r.sharma@intel.com> <559657D1.4060106@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 194106E443 for ; Tue, 21 Jul 2015 05:55:25 -0700 (PDT) In-Reply-To: <559657D1.4060106@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 T24gRnJpLCAyMDE1LTA3LTAzIGF0IDEwOjM3ICswMTAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToK PiAKPiBPbiAwNy8wMS8yMDE1IDEwOjI2IEFNLCBhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5j b20gd3JvdGU6Cj4gPiBGcm9tOiBBbmtpdHByYXNhZCBTaGFybWEgPGFua2l0cHJhc2FkLnIuc2hh cm1hQGludGVsLmNvbT4KPiA+Cj4gPiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byB2ZXJpZnkg cHJlYWQvcHdyaXRlIGZvciBub24tc2htZW0gYmFja2VkCj4gPiBvYmplY3RzLiBJdCBhbHNvIHNo b3dzIHRoZSBwcmVhZC9wd3JpdGUgc3BlZWQuCj4gPiBJdCBhbHNvIHRlc3RzIHNwZWVkcyBmb3Ig cHJlYWQgd2l0aCBhbmQgd2l0aG91dCB1c2VyIHNpZGUgcGFnZSBmYXVsdHMKPiA+Cj4gPiB2Mjog UmViYXNlZCB0byB0aGUgbGF0ZXN0IChBbmtpdCkKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBBbmtp dHByYXNhZCBTaGFybWEgPGFua2l0cHJhc2FkLnIuc2hhcm1hIGF0IGludGVsLmNvbT4KPiA+IC0t LQo+ID4gICB0ZXN0cy9nZW1fcHJlYWQuYyAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICAgdGVzdHMvZ2VtX3B3cml0ZS5jIHwg IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gICAyIGZpbGVzIGNoYW5nZWQsIDE0NSBp bnNlcnRpb25zKCspCj4gPgo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9wcmVhZC5jIGIvdGVz dHMvZ2VtX3ByZWFkLmMKPiA+IGluZGV4IGNjODM5NDguLjk1MTYyZDUgMTAwNjQ0Cj4gPiAtLS0g YS90ZXN0cy9nZW1fcHJlYWQuYwo+ID4gKysrIGIvdGVzdHMvZ2VtX3ByZWFkLmMKPiA+IEBAIC00 MSw2ICs0MSwxMCBAQAo+ID4gICAjaW5jbHVkZSAiZHJtdGVzdC5oIgo+ID4KPiA+ICAgI2RlZmlu ZSBPQkpFQ1RfU0laRSAxNjM4NAo+ID4gKyNkZWZpbmUgTEFSR0VfT0JKRUNUX1NJWkUgMTAyNCAq IDEwMjQKPiA+ICsjZGVmaW5lIEtHUk4gIlx4MUJbMzJtIgo+ID4gKyNkZWZpbmUgS1JFRCAiXHgx QlszMW0iCj4gPiArI2RlZmluZSBLTlJNICJceDFCWzBtIgo+ID4KPiA+ICAgc3RhdGljIHZvaWQg ZG9fZ2VtX3JlYWQoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHZvaWQgKmJ1ZiwgaW50IGxlbiwg aW50IGxvb3BzKQo+ID4gICB7Cj4gPiBAQCAtNzYsMTEgKzgwLDE0IEBAIHN0YXRpYyBjb25zdCBj aGFyICpieXRlc19wZXJfc2VjKGNoYXIgKmJ1ZiwgZG91YmxlIHYpCj4gPgo+ID4KPiA+ICAgdWlu dDMyX3QgKnNyYywgZHN0Owo+ID4gK3VpbnQzMl90ICpkc3RfdXNlciwgc3JjX3N0b2xlbiwgbGFy Z2Vfc3RvbGVuOwo+ID4gK3VpbnQzMl90ICpzdG9sZW5fcGZfdXNlciwgKnN0b2xlbl9ub3BmX3Vz ZXI7Cj4gPiAgIGludCBmZCwgY291bnQ7Cj4gPgo+ID4gICBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCj4gPiAgIHsKPiA+ICAgCWludCBvYmplY3Rfc2l6ZSA9IDA7Cj4gPiArCWludCBs YXJnZV9vYmpfc2l6ZSA9IExBUkdFX09CSkVDVF9TSVpFOwo+IAo+IFdoeSBoYXZlIGJvdGggYSBk ZWZpbmUgYW5kIGEgdmFyaWFibGUgd2hpY2ggZG9lcyBub3QgZ2V0IG1vZGlmaWVkIGZvciAKPiB0 aGUgc2FtZSB0aGluZz8KPiAKPiA+ICAgCXVpbnQzMl90IGJ1ZlsyMF07Cj4gPiAgIAljb25zdCBz dHJ1Y3Qgewo+ID4gICAJCWludCBsZXZlbDsKPiA+IEBAIC05MCw2ICs5Nyw5IEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKPiA+ICAgCQl7IDEsICJzbm9vcCIgfSwKPiA+ICAgCQl7 IDIsICJkaXNwbGF5IiB9LAo+ID4gICAJCXsgLTEgfSwKPiA+ICsJCXsgLTEsICJzdG9sZW4tdW5j YWNoZWQifSwKPiA+ICsJCXsgLTEsICJzdG9sZW4tc25vb3AifSwKPiA+ICsJCXsgLTEsICJzdG9s ZW4tZGlzcGxheSJ9LAo+IAo+IFVnaCB3aHkgc28gaGFja3k/IFlvdSBvbmx5IHVzZWQgdGhlIG5l dyB0aHJlZSBlbnRyaWVzIGZvciB0aGVpciBuYW1lcywgCj4gcmlnaHQ/Cj4gCj4gV2hhdCBhYm91 dCBpbnN0ZWFkIG9mICJpZ3Rfc3VidGVzdCgoYyArIDQpLT5uYW1lKSIgZG8gCj4gImlndF9zdWJ0 ZXN0X2YoInN0b2xlbi0lcyIsIGMtPm5hbWUpIiBhbmQgdGhlbiB5b3UgZG9uJ3QgbmVlZCB0byBh ZGQgCj4gdGhlc2UgaGFja3kgZW50cmllcz8KPiAKPiA+ICAgCX0sICpjOwo+ID4KPiA+ICAgCWln dF9zdWJ0ZXN0X2luaXQoYXJnYywgYXJndik7Cj4gPiBAQCAtMTA2LDYgKzExNiw4IEBAIGludCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiA+Cj4gPiAgIAkJZHN0ID0gZ2VtX2NyZWF0ZShm ZCwgb2JqZWN0X3NpemUpOwo+ID4gICAJCXNyYyA9IG1hbGxvYyhvYmplY3Rfc2l6ZSk7Cj4gPiAr CQlzcmNfc3RvbGVuID0gZ2VtX2NyZWF0ZV9zdG9sZW4oZmQsIG9iamVjdF9zaXplKTsKPiA+ICsJ CWRzdF91c2VyID0gbWFsbG9jKG9iamVjdF9zaXplKTsKPiA+ICAgCX0KPiA+Cj4gPiAgIAlpZ3Rf c3VidGVzdCgibm9ybWFsIikgewo+ID4gQEAgLTE0Miw5ICsxNTQsOTcgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQo+ID4gICAJCX0KPiA+ICAgCX0KPiA+Cj4gPiArCWlndF9zdWJ0 ZXN0KCJzdG9sZW4tbm9ybWFsIikgewo+ID4gKwkJZm9yIChjb3VudCA9IDE7IGNvdW50IDw9IDE8 PDE3OyBjb3VudCA8PD0gMSkgewo+ID4gKwkJCXN0cnVjdCB0aW1ldmFsIHN0YXJ0LCBlbmQ7Cj4g PiArCj4gPiArCQkJZ2V0dGltZW9mZGF5KCZzdGFydCwgTlVMTCk7Cj4gPiArCQkJZG9fZ2VtX3Jl YWQoZmQsIHNyY19zdG9sZW4sIGRzdF91c2VyLCBvYmplY3Rfc2l6ZSwgY291bnQpOwo+ID4gKwkJ CWdldHRpbWVvZmRheSgmZW5kLCBOVUxMKTsKPiA+ICsJCQlpZ3RfaW5mbygiVGltZSB0byBwcmVh ZCAlZCBieXRlcyB4ICU2ZDoJJTcuM2bCtXMsICVzXG4iLAo+ID4gKwkJCQkgb2JqZWN0X3NpemUs IGNvdW50LAo+ID4gKwkJCQkgZWxhcHNlZCgmc3RhcnQsICZlbmQsIGNvdW50KSwKPiA+ICsJCQkJ IGJ5dGVzX3Blcl9zZWMoKGNoYXIgKilidWYsCj4gPiArCQkJCSBvYmplY3Rfc2l6ZS9lbGFwc2Vk KCZzdGFydCwgJmVuZCwgY291bnQpKjFlNikpOwo+IAo+IFRoZXJlIGlzIG5vIGNoZWNraW5nIHRo YXQgYnl0ZXNfcGVyX3NlYyB3b24ndCBvdmVyZmxvdyBidWYuIFdoaWNoIGlzIAo+IGFsc28gZGVj bGFyZWQgYXMgdW5pdDMyX3QganVzdCBzbyB3ZSBjYW4gY2FzdCBoZXJlLiA6KSBTdWdnZXN0IGZp eGluZyBpZiAKPiB5b3UgZmVlbCBsaWtlIGl0LCB3b24ndCBtYW5kYXRlIGl0IHNpbmNlIGl0IGlz IGV4aXN0aW5nIGNvZGUuCj4gCj4gPiArCQkJZmZsdXNoKHN0ZG91dCk7Cj4gPiArCQl9Cj4gPiAr CX0KPiA+ICsJZm9yIChjID0gY2FjaGU7IGMtPmxldmVsICE9IC0xOyBjKyspIHsKPiA+ICsJCWln dF9zdWJ0ZXN0KChjICsgNCktPm5hbWUpIHsKPiA+ICsJCQlnZW1fc2V0X2NhY2hpbmcoZmQsIHNy Y19zdG9sZW4sIGMtPmxldmVsKTsKPiA+ICsKPiA+ICsJCQlmb3IgKGNvdW50ID0gMTsgY291bnQg PD0gMTw8MTc7IGNvdW50IDw8PSAxKSB7Cj4gPiArCQkJCXN0cnVjdCB0aW1ldmFsIHN0YXJ0LCBl bmQ7Cj4gPiArCj4gPiArCQkJCWdldHRpbWVvZmRheSgmc3RhcnQsIE5VTEwpOwo+ID4gKwkJCQlk b19nZW1fcmVhZChmZCwgc3JjX3N0b2xlbiwgZHN0X3VzZXIsCj4gPiArCQkJCQkgICAgb2JqZWN0 X3NpemUsIGNvdW50KTsKPiA+ICsJCQkJZ2V0dGltZW9mZGF5KCZlbmQsIE5VTEwpOwo+ID4gKwkJ CQlpZ3RfaW5mbygiVGltZSB0byAlcyBwcmVhZCAlZCBieXRlcyB4ICU2ZDogICAgICAlNy4zZsK1 cywgJXNcbiIsCj4gPiArCQkJCQkgKGMgKyA0KS0+bmFtZSwgb2JqZWN0X3NpemUsIGNvdW50LAo+ ID4gKwkJCQkJIGVsYXBzZWQoJnN0YXJ0LCAmZW5kLCBjb3VudCksCj4gPiArCQkJCQkgYnl0ZXNf cGVyX3NlYygoY2hhciAqKWJ1ZiwKPiA+ICsJCQkJCSBvYmplY3Rfc2l6ZS9lbGFwc2VkKCZzdGFy dCwgJmVuZCwgY291bnQpKjFlNikpOwo+ID4gKwkJCQlmZmx1c2goc3Rkb3V0KTsKPiA+ICsJCQl9 Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyogTGlzdCBwcmVhZCB0aW1lcyBmb3Igc3Rv bGVuIGFyZWEgd2l0aCAxIHBhZ2UgZmF1bHQgKHBhZ2UgZmF1bHQgb25seQo+ID4gKwkgKiBmaXJz dCB0aW1lKSBhbmQgbXVsdGlwbGUgcGFnZSBmYXVsdHMgKHVubWFwcGluZyB0aGUgcGFnZXMgYXQg dGhlCj4gPiArCSAqIGVuZCBvZiBlYWNoIGl0ZXJhdGlvbikKPiA+ICsJICovCj4gCj4gQ2FuIHlv dSBleHBsYWluIG1vcmUgdGhlIGlkZWEgYmVoaW5kIHRoaXMgdGVzdD8gSXQgYmVuY2htYXJrcyBt aW5vciAKPiBmYXVsdGluZyAod2VsbCBjb3VsZCBiZSBtYWpvciBhcyB3ZWxsIGJ1dCB3ZSBjYW4n dCBzYXkpLCBidXQgaXQgaXMgCj4gbm90aGluZyBpbiB0aGUgaTkxNSBwYXRoIGFzIGZhciBhcyBJ IGtub3cuCj4gCj4gPiArCWlndF9zdWJ0ZXN0KCJwYWdlZmF1bHQtcHJlYWQiKSB7Cj4gPiArCQls YXJnZV9zdG9sZW4gPSBnZW1fY3JlYXRlX3N0b2xlbihmZCwgbGFyZ2Vfb2JqX3NpemUpOwo+ID4g KwkJc3RvbGVuX25vcGZfdXNlciA9ICh1aW50MzJfdCAqKSBtbWFwKE5VTEwsIGxhcmdlX29ial9z aXplLAo+ID4gKwkJCQkJCVBST1RfV1JJVEUsCj4gPiArCQkJCQkJTUFQX0FOT05ZTU9VU3xNQVBf UFJJVkFURSwKPiA+ICsJCQkJCQktMSwgMCk7Cj4gCj4gU29tZSBhc3NlcnRzIGZvciBvYmplY3Qg Y3JlYXRpb25nIGFuZCBtbWFwPwo+IAo+ID4gKwo+ID4gKwkJZm9yIChjb3VudCA9IDE7IGNvdW50 IDw9IDEwOyBjb3VudCArKykgewo+ID4gKwkJCXN0cnVjdCB0aW1ldmFsIHN0YXJ0LCBlbmQ7Cj4g PiArCQkJdWludDMyX3QgdF9lbGFwc2VkID0gMDsKPiA+ICsKPiA+ICsJCQlnZXR0aW1lb2ZkYXko JnN0YXJ0LCBOVUxMKTsKPiA+ICsJCQlkb19nZW1fcmVhZChmZCwgbGFyZ2Vfc3RvbGVuLCBzdG9s ZW5fbm9wZl91c2VyLAo+ID4gKwkJCQkgICAgbGFyZ2Vfb2JqX3NpemUsIDEpOwo+ID4gKwkJCWdl dHRpbWVvZmRheSgmZW5kLCBOVUxMKTsKPiA+ICsJCQl0X2VsYXBzZWQgPSBlbGFwc2VkKCZzdGFy dCwgJmVuZCwgMSk7Cj4gPiArCQkJaWd0X2luZm8oIlBhZ2VmYXVsdC1OIC0gVGltZSB0byBwcmVh ZCAlZCBieXRlczogJTcuM2bCtXMsICVzXG4iLAo+ID4gKwkJCQkgbGFyZ2Vfb2JqX3NpemUsCj4g PiArCQkJCSBlbGFwc2VkKCZzdGFydCwgJmVuZCwgMSksCj4gPiArCQkJCSBieXRlc19wZXJfc2Vj KChjaGFyICopYnVmLAo+ID4gKwkJCQkgbGFyZ2Vfb2JqX3NpemUvZWxhcHNlZCgmc3RhcnQsICZl bmQsIDEpKjFlNikpOwo+ID4gKwo+ID4gKwkJCXN0b2xlbl9wZl91c2VyID0gKHVpbnQzMl90ICop IG1tYXAoTlVMTCwgbGFyZ2Vfb2JqX3NpemUsCj4gPiArCQkJCQkJICAgICAgUFJPVF9XUklURSwK PiA+ICsJCQkJCQkgICAgICBNQVBfQU5PTllNT1VTfE1BUF9QUklWQVRFLAo+ID4gKwkJCQkJCSAg ICAgIC0xLCAwKTsKPiA+ICsKPiA+ICsJCQlnZXR0aW1lb2ZkYXkoJnN0YXJ0LCBOVUxMKTsKPiA+ ICsJCQlkb19nZW1fcmVhZChmZCwgbGFyZ2Vfc3RvbGVuLCBzdG9sZW5fcGZfdXNlciwKPiA+ICsJ CQkJICAgIGxhcmdlX29ial9zaXplLCAxKTsKPiA+ICsJCQlnZXR0aW1lb2ZkYXkoJmVuZCwgTlVM TCk7Cj4gPiArCQkJaWd0X2luZm8oIlBhZ2VmYXVsdC1ZIC0gVGltZSB0byBwcmVhZCAlZCBieXRl czogJTcuM2bCtXMsICVzJXMlc1xuIiwKPiA+ICsJCQkJIGxhcmdlX29ial9zaXplLAo+ID4gKwkJ CQkgZWxhcHNlZCgmc3RhcnQsICZlbmQsIDEpLAo+ID4gKwkJCQkgdF9lbGFwc2VkIDwgZWxhcHNl ZCgmc3RhcnQsICZlbmQsIDEpID8gS0dSTiA6IEtSRUQsCj4gPiArCQkJCSBieXRlc19wZXJfc2Vj KChjaGFyICopYnVmLAo+ID4gKwkJCQkgbGFyZ2Vfb2JqX3NpemUvZWxhcHNlZCgmc3RhcnQsICZl bmQsIDEpKjFlNiksCj4gPiArCQkJCSBLTlJNKTsKPiA+ICsJCQlmZmx1c2goc3Rkb3V0KTsKPiA+ ICsJCQltdW5tYXAoc3RvbGVuX3BmX3VzZXIsIGxhcmdlX29ial9zaXplKTsKPiA+ICsJCX0KPiA+ ICsJCQltdW5tYXAoc3RvbGVuX25vcGZfdXNlciwgbGFyZ2Vfb2JqX3NpemUpOwo+ID4gKwkJCWdl bV9jbG9zZShmZCwgbGFyZ2Vfc3RvbGVuKTsKPiAKPiBJbmRlbnRhdGlvbiBpcyBicm9rZW4gaGVy ZS4KPiAKPiA+ICsJfQo+ID4gKwo+ID4gKwo+ID4gICAJaWd0X2ZpeHR1cmUgewo+ID4gICAJCWZy ZWUoc3JjKTsKPiA+ICAgCQlnZW1fY2xvc2UoZmQsIGRzdCk7Cj4gPiArCQlmcmVlKGRzdF91c2Vy KTsKPiA+ICsJCWdlbV9jbG9zZShmZCwgc3JjX3N0b2xlbik7Cj4gPgo+ID4gICAJCWNsb3NlKGZk KTsKPiA+ICAgCX0KPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fcHdyaXRlLmMgYi90ZXN0cy9n ZW1fcHdyaXRlLmMKPiA+IGluZGV4IDViNmE3N2YuLmM3ZTNlZGYgMTAwNjQ0Cj4gPiAtLS0gYS90 ZXN0cy9nZW1fcHdyaXRlLmMKPiA+ICsrKyBiL3Rlc3RzL2dlbV9wd3JpdGUuYwo+ID4gQEAgLTEz NSw2ICsxMzUsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2JpZ19ndHQoaW50IGZkLCBpbnQgc2NhbGUp Cj4gPiAgIH0KPiA+Cj4gPiAgIHVpbnQzMl90ICpzcmMsIGRzdDsKPiA+ICt1aW50MzJfdCAqc3Jj X3VzZXIsIGRzdF9zdG9sZW47Cj4gPiAgIGludCBmZDsKPiA+Cj4gPiAgIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKPiA+IEBAIC0xNTAsNiArMTUxLDkgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQo+ID4gICAJCXsgMSwgInNub29wIiB9LAo+ID4gICAJCXsgMiwgImRp c3BsYXkiIH0sCj4gPiAgIAkJeyAtMSB9LAo+ID4gKwkJeyAtMSwgInN0b2xlbi11bmNhY2hlZCJ9 LAo+ID4gKwkJeyAtMSwgInN0b2xlbi1zbm9vcCJ9LAo+ID4gKwkJeyAtMSwgInN0b2xlbi1kaXNw bGF5In0sCj4gCj4gU2FtZSBjb21tZW50IGFzIGZvciBwcmVhZC4KPiAKPiBIbSwgc2hvdWxkIHRo ZSBwYWdlIGZhdWx0aW5nIGJlbmNobWFyayBnbyBpbiBnZW1fcHdyaXRlIHJhdGhlciB0aGFuIAo+ IGdlbV9wcmVhZD8gQWx0aG91Z2ggbm90IHN1cmUgLSBpcyBzdG9sZW4gcGFnZWFibGUgYXQgYWxs PwpTb3JyeSwgYnV0IEkgZG8gbm90IHRoaW5rIGl0IGlzIG9mIG11Y2ggdXNlIGluIGNhc2Ugb2Yg cHdyaXRlLCBhcyBoZXJlCndlIGFyZSB0YWxraW5nIGFib3V0IHBhZ2VmYXVsdHMgaW4gdXNlcnNw YWNlLiBJbiBjYXNlIG9mIHB3cml0ZXMsIHVzZXIKd291bGQgaGF2ZSBhbHJlYWR5IGZpbGxlZCB0 aGUgYnVmZmVyIGFuZCBzbyBhIHJhcmUgY2hhbmNlIG9mIHBhZ2VmYXVsdAp3aGlsZSBkb2luZyBh IHB3cml0ZS4KVGhlIGNvbmNlcHQgb2YgcHJlYWQgaXMgcmVhZGluZyBhbiBvYmplY3QgdG8gYSB1 c2Vyc3BhY2UgYnVmZmVyLCBpbgp3aGljaCBwYWdlcyBtYXkgbm90IGJlIHlldCBhbGxvY2F0ZWQg d2hlbiB0aGUga2VybmVsIGlzIHRyeWluZyB0byB3cml0ZQp0byB0aGF0IGJ1ZmZlciBhbmQgaGVu Y2UgbmVlZCB0byBoYW5kbGUgcGFnZWZhdWx0cyBoZXJlLCByZXN1bHRpbmcgaW4Kc2xvdyByZWFk LiAKSGVuY2UsIGRlbW9uc3RyYXRpbmcgaGVyZSBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgcGFnZWZh dWx0cywgaG93IHNsb3cKcHJlYWQgd291bGQgYmUuCgpUaGFua3MsCkFua2l0Cj4gCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK