From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH 09/16] drm/i915/skl: split skl_compute_ddb function Date: Wed, 14 Feb 2018 15:32:51 +0530 Message-ID: <0519d428-c516-27da-3bb4-bfa3c80d65a3@intel.com> References: <1518584256-25253-1-git-send-email-vidya.srinivas@intel.com> <1518584256-25253-10-git-send-email-vidya.srinivas@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A3576E10F for ; Wed, 14 Feb 2018 10:02:56 +0000 (UTC) In-Reply-To: <1518584256-25253-10-git-send-email-vidya.srinivas@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Vidya Srinivas , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmV2aWV3ZWQtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4K ClJlZ2FyZHMKU2hhc2hhbmsKT24gMi8xNC8yMDE4IDEwOjI3IEFNLCBWaWR5YSBTcmluaXZhcyB3 cm90ZToKPiBGcm9tOiBNYWhlc2ggS3VtYXIgPG1haGVzaDEua3VtYXJAaW50ZWwuY29tPgo+Cj4g VGhpcyBwYXRjaCBzcGxpdHMgc2tsX2NvbXB1dGVfd20vZGRiIGZ1bmN0aW9ucyBpbnRvIHR3byBw YXJ0cy4KPiBPbmUgYWRkcyBhbGwgYWZmZWN0ZWQgcGlwZXMgYWZ0ZXIgdGhlIGNvbW1pdCB0byBh dG9taWNfc3RhdGUgc3RydWN0dXJlCj4gYW5kIHNlY29uZCBwYXJ0IGRvZXMgY29tcHV0ZSB0aGUg RERCLgo+Cj4gU2lnbmVkLW9mZi1ieTogTWFoZXNoIEt1bWFyIDxtYWhlc2gxLmt1bWFyQGludGVs LmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCAxNTcgKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQs IDg4IGluc2VydGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCj4gaW5kZXggZDlmNjU2My4uY2EzYTc4MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u Ywo+IEBAIC01MDU4LDY5ICs1MDU4LDE2IEBAIHNrbF9kZGJfYWRkX2FmZmVjdGVkX3BsYW5lcyhz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICAgc3RhdGljIGludAo+ICAgc2tsX2Nv bXB1dGVfZGRiKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgIHsKPiAtCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJY29uc3Qgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiAgIAlzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7 Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiAgIAlzdHJ1Y3Qgc2tsX2RkYl9h bGxvY2F0aW9uICpkZGIgPSAmaW50ZWxfc3RhdGUtPndtX3Jlc3VsdHMuZGRiOwo+IC0JdWludDMy X3QgcmVhbGxvY19waXBlcyA9IHBpcGVzX21vZGlmaWVkKHN0YXRlKTsKPiAtCWludCByZXQ7Cj4g LQo+IC0JLyoKPiAtCSAqIElmIHRoaXMgaXMgb3VyIGZpcnN0IGF0b21pYyB1cGRhdGUgZm9sbG93 aW5nIGhhcmR3YXJlIHJlYWRvdXQsCj4gLQkgKiB3ZSBjYW4ndCB0cnVzdCB0aGUgRERCIHRoYXQg dGhlIEJJT1MgcHJvZ3JhbW1lZCBmb3IgdXMuICBMZXQncwo+IC0JICogcHJldGVuZCB0aGF0IGFs bCBwaXBlcyBzd2l0Y2hlZCBhY3RpdmUgc3RhdHVzIHNvIHRoYXQgd2UnbGwKPiAtCSAqIGVuc3Vy ZSBhIGZ1bGwgRERCIHJlY29tcHV0ZS4KPiAtCSAqLwo+IC0JaWYgKGRldl9wcml2LT53bS5kaXN0 cnVzdF9iaW9zX3dtKSB7Cj4gLQkJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2Nv bmZpZy5jb25uZWN0aW9uX211dGV4LAo+IC0JCQkJICAgICAgIHN0YXRlLT5hY3F1aXJlX2N0eCk7 Cj4gLQkJaWYgKHJldCkKPiAtCQkJcmV0dXJuIHJldDsKPiAtCj4gLQkJaW50ZWxfc3RhdGUtPmFj dGl2ZV9waXBlX2NoYW5nZXMgPSB+MDsKPiAtCj4gLQkJLyoKPiAtCQkgKiBXZSB1c3VhbGx5IG9u bHkgaW5pdGlhbGl6ZSBpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzIGlmIHdlCj4gLQkJICogd2Un cmUgZG9pbmcgYSBtb2Rlc2V0OyBtYWtlIHN1cmUgdGhpcyBmaWVsZCBpcyBhbHdheXMKPiAtCQkg KiBpbml0aWFsaXplZCBkdXJpbmcgdGhlIHNhbml0aXphdGlvbiBwcm9jZXNzIHRoYXQgaGFwcGVu cwo+IC0JCSAqIG9uIHRoZSBmaXJzdCBjb21taXQgdG9vLgo+IC0JCSAqLwo+IC0JCWlmICghaW50 ZWxfc3RhdGUtPm1vZGVzZXQpCj4gLQkJCWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MgPSBkZXZf cHJpdi0+YWN0aXZlX2NydGNzOwo+IC0JfQo+IC0KPiAtCS8qCj4gLQkgKiBJZiB0aGUgbW9kZXNl dCBjaGFuZ2VzIHdoaWNoIENSVEMncyBhcmUgYWN0aXZlLCB3ZSBuZWVkIHRvCj4gLQkgKiByZWNv bXB1dGUgdGhlIEREQiBhbGxvY2F0aW9uIGZvciAqYWxsKiBhY3RpdmUgcGlwZXMsIGV2ZW4KPiAt CSAqIHRob3NlIHRoYXQgd2VyZW4ndCBvdGhlcndpc2UgYmVpbmcgbW9kaWZpZWQgaW4gYW55IHdh eSBieSB0aGlzCj4gLQkgKiBhdG9taWMgY29tbWl0LiAgRHVlIHRvIHRoZSBzaHJpbmtpbmcgb2Yg dGhlIHBlci1waXBlIGFsbG9jYXRpb25zCj4gLQkgKiB3aGVuIG5ldyBhY3RpdmUgQ1JUQydzIGFy ZSBhZGRlZCwgaXQncyBwb3NzaWJsZSBmb3IgYSBwaXBlIHRoYXQKPiAtCSAqIHdlIHdlcmUgYWxy ZWFkeSB1c2luZyBhbmQgYXJlbid0IGNoYW5naW5nIGF0IGFsbCBoZXJlIHRvIHN1ZGRlbmx5Cj4g LQkgKiBiZWNvbWUgaW52YWxpZCBpZiBpdHMgRERCIG5lZWRzIGV4Y2VlZHMgaXRzIG5ldyBhbGxv Y2F0aW9uLgo+IC0JICoKPiAtCSAqIE5vdGUgdGhhdCBpZiB3ZSB3aW5kIHVwIGRvaW5nIGEgZnVs bCBEREIgcmVjb21wdXRlLCB3ZSBjYW4ndCBsZXQKPiAtCSAqIGFueSBvdGhlciBkaXNwbGF5IHVw ZGF0ZXMgcmFjZSB3aXRoIHRoaXMgdHJhbnNhY3Rpb24sIHNvIHdlIG5lZWQKPiAtCSAqIHRvIGdy YWIgdGhlIGxvY2sgb24gKmFsbCogQ1JUQydzLgo+IC0JICovCj4gLQlpZiAoaW50ZWxfc3RhdGUt PmFjdGl2ZV9waXBlX2NoYW5nZXMpIHsKPiAtCQlyZWFsbG9jX3BpcGVzID0gfjA7Cj4gLQkJaW50 ZWxfc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgPSB+MDsKPiAtCX0KPiArCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjOwo+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZTsKPiAr CWludCByZXQsIGk7Cj4gICAKPiAtCS8qCj4gLQkgKiBXZSdyZSBub3QgcmVjb21wdXRpbmcgZm9y IHRoZSBwaXBlcyBub3QgaW5jbHVkZWQgaW4gdGhlIGNvbW1pdCwgc28KPiAtCSAqIG1ha2Ugc3Vy ZSB3ZSBzdGFydCB3aXRoIHRoZSBjdXJyZW50IHN0YXRlLgo+IC0JICovCj4gICAJbWVtY3B5KGRk YiwgJmRldl9wcml2LT53bS5za2xfaHcuZGRiLCBzaXplb2YoKmRkYikpOwo+ICAgCj4gLQlmb3Jf ZWFjaF9pbnRlbF9jcnRjX21hc2soZGV2LCBpbnRlbF9jcnRjLCByZWFsbG9jX3BpcGVzKSB7Cj4g LQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZTsKPiAtCj4gLQkJY3N0YXRlID0gaW50 ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKPiAtCQlpZiAoSVNf RVJSKGNzdGF0ZSkpCj4gLQkJCXJldHVybiBQVFJfRVJSKGNzdGF0ZSk7Cj4gLQo+ICsJZm9yX2Vh Y2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoaW50ZWxfc3RhdGUsIGNydGMsIGNzdGF0ZSwgaSkg ewo+ICAgCQlyZXQgPSBza2xfYWxsb2NhdGVfcGlwZV9kZGIoY3N0YXRlLCBkZGIpOwo+ICAgCQlp ZiAocmV0KQo+ICAgCQkJcmV0dXJuIHJldDsKPiBAQCAtNTE4MiwyMyArNTEyOSwyMyBAQCBza2xf cHJpbnRfd21fY2hhbmdlcyhjb25zdCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g ICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQKPiAtc2tsX2NvbXB1dGVfd20oc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ICtza2xfZGRiX2FkZF9hZmZlY3RlZF9waXBlcyhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUsIGJvb2wgKmNoYW5nZWQpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJt X2NydGMgKmNydGM7Cj4gLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNzdGF0ZTsKPiAtCXN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRl KHN0YXRlKTsKPiAtCXN0cnVjdCBza2xfZGRiX3ZhbHVlcyAqcmVzdWx0cyA9ICZpbnRlbF9zdGF0 ZS0+d21fcmVzdWx0czsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsK PiAtCXN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bTsKPiAtCWJvb2wgY2hhbmdlZCA9IGZhbHNl Owo+ICsJY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShk ZXYpOwo+ICsJY29uc3Qgc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJY29uc3Qgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsK PiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRv bWljX3N0YXRlKHN0YXRlKTsKPiArCXVpbnQzMl90IHJlYWxsb2NfcGlwZXMgPSBwaXBlc19tb2Rp ZmllZChzdGF0ZSk7Cj4gICAJaW50IHJldCwgaTsKPiAgIAo+ICAgCS8qCj4gICAJICogV2hlbiB3 ZSBkaXN0cnVzdCBiaW9zIHdtIHdlIGFsd2F5cyBuZWVkIHRvIHJlY29tcHV0ZSB0byBzZXQgdGhl Cj4gICAJICogZXhwZWN0ZWQgRERCIGFsbG9jYXRpb25zIGZvciBlYWNoIENSVEMuCj4gICAJICov Cj4gLQlpZiAodG9faTkxNShkZXYpLT53bS5kaXN0cnVzdF9iaW9zX3dtKQo+IC0JCWNoYW5nZWQg PSB0cnVlOwo+ICsJaWYgKGRldl9wcml2LT53bS5kaXN0cnVzdF9iaW9zX3dtKQo+ICsJCSpjaGFu Z2VkID0gdHJ1ZTsKPiAgIAo+ICAgCS8qCj4gICAJICogSWYgdGhpcyB0cmFuc2FjdGlvbiBpc24n dCBhY3R1YWxseSB0b3VjaGluZyBhbnkgQ1JUQydzLCBkb24ndAo+IEBAIC01MjA5LDE0ICs1MTU2 LDg2IEBAIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAg IAkgKiBob2xkIF9hbGxfIENSVEMgc3RhdGUgbXV0ZXhlcy4KPiAgIAkgKi8KPiAgIAlmb3JfZWFj aF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3N0YXRlLCBpKQo+IC0JCWNoYW5nZWQg PSB0cnVlOwo+ICsJCSpjaGFuZ2VkID0gdHJ1ZTsKPiAgIAo+IC0JaWYgKCFjaGFuZ2VkKQo+ICsJ aWYgKCEqY2hhbmdlZCkKPiAgIAkJcmV0dXJuIDA7Cj4gICAKPiArCS8qCj4gKwkgKiBJZiB0aGlz IGlzIG91ciBmaXJzdCBhdG9taWMgdXBkYXRlIGZvbGxvd2luZyBoYXJkd2FyZSByZWFkb3V0LAo+ ICsJICogd2UgY2FuJ3QgdHJ1c3QgdGhlIEREQiB0aGF0IHRoZSBCSU9TIHByb2dyYW1tZWQgZm9y IHVzLiAgTGV0J3MKPiArCSAqIHByZXRlbmQgdGhhdCBhbGwgcGlwZXMgc3dpdGNoZWQgYWN0aXZl IHN0YXR1cyBzbyB0aGF0IHdlJ2xsCj4gKwkgKiBlbnN1cmUgYSBmdWxsIEREQiByZWNvbXB1dGUu Cj4gKwkgKi8KPiArCWlmIChkZXZfcHJpdi0+d20uZGlzdHJ1c3RfYmlvc193bSkgewo+ICsJCXJl dCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwK PiArCQkJCSAgICAgICBzdGF0ZS0+YWNxdWlyZV9jdHgpOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJl dHVybiByZXQ7Cj4gKwo+ICsJCWludGVsX3N0YXRlLT5hY3RpdmVfcGlwZV9jaGFuZ2VzID0gfjA7 Cj4gKwo+ICsJCS8qCj4gKwkJICogV2UgdXN1YWxseSBvbmx5IGluaXRpYWxpemUgaW50ZWxfc3Rh dGUtPmFjdGl2ZV9jcnRjcyBpZiB3ZQo+ICsJCSAqIHdlJ3JlIGRvaW5nIGEgbW9kZXNldDsgbWFr ZSBzdXJlIHRoaXMgZmllbGQgaXMgYWx3YXlzCj4gKwkJICogaW5pdGlhbGl6ZWQgZHVyaW5nIHRo ZSBzYW5pdGl6YXRpb24gcHJvY2VzcyB0aGF0IGhhcHBlbnMKPiArCQkgKiBvbiB0aGUgZmlyc3Qg Y29tbWl0IHRvby4KPiArCQkgKi8KPiArCQlpZiAoIWludGVsX3N0YXRlLT5tb2Rlc2V0KQo+ICsJ CQlpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzID0gZGV2X3ByaXYtPmFjdGl2ZV9jcnRjczsKPiAr CX0KPiArCj4gKwkvKgo+ICsJICogSWYgdGhlIG1vZGVzZXQgY2hhbmdlcyB3aGljaCBDUlRDJ3Mg YXJlIGFjdGl2ZSwgd2UgbmVlZCB0bwo+ICsJICogcmVjb21wdXRlIHRoZSBEREIgYWxsb2NhdGlv biBmb3IgKmFsbCogYWN0aXZlIHBpcGVzLCBldmVuCj4gKwkgKiB0aG9zZSB0aGF0IHdlcmVuJ3Qg b3RoZXJ3aXNlIGJlaW5nIG1vZGlmaWVkIGluIGFueSB3YXkgYnkgdGhpcwo+ICsJICogYXRvbWlj IGNvbW1pdC4gIER1ZSB0byB0aGUgc2hyaW5raW5nIG9mIHRoZSBwZXItcGlwZSBhbGxvY2F0aW9u cwo+ICsJICogd2hlbiBuZXcgYWN0aXZlIENSVEMncyBhcmUgYWRkZWQsIGl0J3MgcG9zc2libGUg Zm9yIGEgcGlwZSB0aGF0Cj4gKwkgKiB3ZSB3ZXJlIGFscmVhZHkgdXNpbmcgYW5kIGFyZW4ndCBj aGFuZ2luZyBhdCBhbGwgaGVyZSB0byBzdWRkZW5seQo+ICsJICogYmVjb21lIGludmFsaWQgaWYg aXRzIEREQiBuZWVkcyBleGNlZWRzIGl0cyBuZXcgYWxsb2NhdGlvbi4KPiArCSAqCj4gKwkgKiBO b3RlIHRoYXQgaWYgd2Ugd2luZCB1cCBkb2luZyBhIGZ1bGwgRERCIHJlY29tcHV0ZSwgd2UgY2Fu J3QgbGV0Cj4gKwkgKiBhbnkgb3RoZXIgZGlzcGxheSB1cGRhdGVzIHJhY2Ugd2l0aCB0aGlzIHRy YW5zYWN0aW9uLCBzbyB3ZSBuZWVkCj4gKwkgKiB0byBncmFiIHRoZSBsb2NrIG9uICphbGwqIENS VEMncy4KPiArCSAqLwo+ICsJaWYgKGludGVsX3N0YXRlLT5hY3RpdmVfcGlwZV9jaGFuZ2VzKSB7 Cj4gKwkJcmVhbGxvY19waXBlcyA9IH4wOwo+ICsJCWludGVsX3N0YXRlLT53bV9yZXN1bHRzLmRp cnR5X3BpcGVzID0gfjA7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIFdlJ3JlIG5vdCByZWNvbXB1 dGluZyBmb3IgdGhlIHBpcGVzIG5vdCBpbmNsdWRlZCBpbiB0aGUgY29tbWl0LCBzbwo+ICsJICog bWFrZSBzdXJlIHdlIHN0YXJ0IHdpdGggdGhlIGN1cnJlbnQgc3RhdGUuCj4gKwkgKi8KPiArCWZv cl9lYWNoX2ludGVsX2NydGNfbWFzayhkZXYsIGludGVsX2NydGMsIHJlYWxsb2NfcGlwZXMpIHsK PiArCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlOwo+ICsKPiArCQljc3RhdGUgPSBp bnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwo+ICsJCWlmIChJ U19FUlIoY3N0YXRlKSkKPiArCQkJcmV0dXJuIFBUUl9FUlIoY3N0YXRlKTsKPiArCX0KPiArCj4g KwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludAo+ICtza2xfY29tcHV0ZV93bShzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YzsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlOwo+ICsJc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+ ICsJc3RydWN0IHNrbF9kZGJfdmFsdWVzICpyZXN1bHRzID0gJmludGVsX3N0YXRlLT53bV9yZXN1 bHRzOwo+ICsJc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtOwo+ICsJYm9vbCBjaGFuZ2VkID0g ZmFsc2U7Cj4gKwlpbnQgcmV0LCBpOwo+ICsKPiAgIAkvKiBDbGVhciBhbGwgZGlydHkgZmxhZ3Mg Ki8KPiAgIAlyZXN1bHRzLT5kaXJ0eV9waXBlcyA9IDA7Cj4gICAKPiArCXJldCA9IHNrbF9kZGJf YWRkX2FmZmVjdGVkX3BpcGVzKHN0YXRlLCAmY2hhbmdlZCk7Cj4gKwlpZiAocmV0IHx8ICFjaGFu Z2VkKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICAgCXJldCA9IHNrbF9jb21wdXRlX2RkYihzdGF0 ZSk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=