From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sagar Arun Kamble Subject: [PATCH v12 10/17] drm/i915/guc/slpc: Add parameter set/unset/get, task control/status functions Date: Fri, 30 Mar 2018 14:01:55 +0530 Message-ID: <1522398722-12161-11-git-send-email-sagar.a.kamble@intel.com> References: <1522398722-12161-1-git-send-email-sagar.a.kamble@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id AF0D06E868 for ; Fri, 30 Mar 2018 08:28:52 +0000 (UTC) In-Reply-To: <1522398722-12161-1-git-send-email-sagar.a.kamble@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Sujaritha Sundaresan , Tom O'Rourke List-Id: intel-gfx@lists.freedesktop.org U0xQQyBiZWhhdmlvciBjYW4gYmUgY2hhbmdlZCB0aHJvdWdoIHNldCBvZiBwYXJhbWV0ZXJzLiBU aGVzZSBwYXJhbWV0ZXJzCmNhbiBiZSB1cGRhdGVkIGFuZCBxdWVyaWVkIGZyb20gaTkxNSB0aG91 Z2ggSG9zdCB0byBHdUMgU0xQQyBldmVudHMuIFRoaXMKcGF0Y2ggYWRkcyBwYXJhbWV0ZXIgdXBk YXRlIGV2ZW50cyBmb3Igc2V0dGluZy91bnNldHRpbmcvZ2V0dGluZyBwYXJhbXMuClNldHRpbmcg cGFyYW1ldGVyIGxlYWRzIHRvIG92ZXJyaWRkaW5nIG9mIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVl LiBVbnNldApsZWFkcyB0byByZXN0b3Jpbmcgb2YgZGVmYXVsdCB2YWx1ZSBieSBjb21tdW5pY2F0 aW5nIHdpdGggR3VDIFNMUEMgdGhyb3VnaApwYXJhbWV0ZXIgdXBkYXRlcyBpbiB0aGUgc2hhcmVk IGRhdGEuCmk5MTUgY2FuIG9ubHkgcXVlcnkvZ2V0IHBhcmFtZXRlcnMgdGhhdCBpdCBvdmVycmlk ZXMsIHNvIGdldHRpbmcgcGFyYW1ldGVyCnZhbHVlIGlzIGRvbmUgYnkgb25seSByZWFkaW5nIGZy b20gdGhlIHNoYXJlZCBkYXRhLgoKU0xQQyBoYXMgdmFyaW91cyB0YXNrcywgR1RQRVJGLCBCQUxB TkNFUiBhbmQgRENDLiBUaGVzZSBjYW4gYmUgY29udHJvbGxlZAp0aHJvdWdoIHBhaXIgb2YgR3VD IFNMUEMgcGFyYW1ldGVycy4gRW5hYmxlL2Rpc2FibGUgb2YgdGhlc2UgdGFza3MgcmVxdWlyZQpj b21iaW5lZCB1cGRhdGUgdG8gYm90aCBwYXJhbWV0ZXJzIGhlbmNlIG5ldyBhY3Rpb25zIGFyZSBh ZGRlZCB0byBjb250cm9sCmFuZCBxdWVyeSB0aGUgc3RhdHVzIG9mIHRhc2tzLgoKdjE6IFVzZSBo b3N0Mmd1Y19zbHBjLiBVcGRhdGUgc2xjcF9wYXJhbV9pZCBlbnVtIHZhbHVlcyBmb3IgU0xQQyAy MDE1LjIuNAogICAgUmV0dXJuIHZvaWQgaW5zdGVhZCBvZiBpZ25vcmVkIGVycm9yIGNvZGUgKFBh dWxvKQoKdjI6IENoZWNrcGF0Y2ggdXBkYXRlLgoKdjM6IFJlYmFzZS4KCnY0OiBVcGRhdGVkIHdp dGggR3VDIGZpcm13YXJlIHY5LgoKdjU6IFVwZGF0ZWQgaW5wdXQgc3RydWN0dXJlIHRvIGhvc3Qy Z3VjX3NscGMuIEFkZGVkIGZ1bmN0aW9ucyB0byB1cGRhdGUKICAgIG9ubHkgcGFyYW1ldGVycyBp biB0aGUgU0xQQyBzaGFyZWQgbWVtb3J5LiBUaGlzIHdpbGwgYWxsb3cgdG8gc2V0dXAKICAgIHNo YXJlZCBkYXRhIHdpdGggYWxsIHBhcmFtZXRlcnMgYW5kIHNlbmQgc2luZ2xlIGV2ZW50IHRvIFNM UEMgdGFrZQogICAgdGhlbSBpbnRvIGVmZmVjdC4gQ29tbWl0IG1lc3NhZ2UgdXBkYXRlLiAoU2Fn YXIpCgp2NjogUmVhcnJhbmdlZCBoZWxwZXJzIHRvIHVzZSB0aGVtIGluIHNscGNfc2hhcmVkX2Rh dGFfaW5pdC4gQWRkZWQgZGVmbi4KICAgIG9mIFNMUENfS01EX01BWF9QQVJBTS4KCnY3OiBBZGRl ZCBkZWZpbml0aW9uIG9mIGhvc3QyZ3VjX3NscGMgd2l0aCByZWFycmFuZ2VtZW50IG9mIHBhdGNo ZXMuIEFkZGVkCiAgICB0YXNrIGNvbnRyb2wvc3RhdHVzIGZ1bmN0aW9ucy4KCnY4OiBSZWJhc2Ug dy5yLnQgcy9pbnRlbF9ndWNfc2VuZC9pbnRlbF9ndWNfc2VuZF9tbWlvLgoKdjk6IENyZWF0ZWQg aW50ZWxfZ3VjX3NscGNfc2VuZF9tbWlvIHdpdGggU0xQQyBzcGVjaWZpYyBIMkcgYWN0aW9uIHNl bmQKICAgIGZ1bmN0aW9uLiBSZWJhc2UuIERlZmluZWQgc2xwY19zdGF0dXNsaXN0IGFuZCB1c2lu ZyB0aGUgc2FtZSBpbgogICAgaW50ZWxfZ3VjX3NscGNfc2VuZF9tbWlvLiAoTWljaGFsIFdhamRl Y3prbykKCnYxMDogUmViYXNlLiBBZGRlZCBrZXJuZWwgZG9jdW1lbnRhdGlvbiB0byB0aGUgdGFz ayBjb250cm9sIGZ1bmN0aW9ucy4KClNpZ25lZC1vZmYtYnk6IFRvbSBPJ1JvdXJrZSA8VG9tLk8n Um91cmtlQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogU2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2Fy LmEua2FtYmxlQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwu Y29tPgpDYzogUmFkb3NsYXcgU3p3aWNodGVuYmVyZyA8cmFkb3NsYXcuc3p3aWNodGVuYmVyZ0Bp bnRlbC5jb20+CkNjOiBNaWNoYWwgV2FqZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNv bT4KQ2M6IFN1amFyaXRoYSBTdW5kYXJlc2FuIDxzdWphcml0aGEuc3VuZGFyZXNhbkBpbnRlbC5j b20+CkNjOiBKZWZmIE1jR2VlIDxqZWZmLm1jZ2VlQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWNfc2xwYy5jIHwgMTczICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zbHBjLmggfCAgIDUg KwogMiBmaWxlcyBjaGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zbHBjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfc2xwYy5jCmluZGV4IGJkYWZiYWEuLjAxMWU0NDIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zbHBjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX3NscGMuYwpAQCAtNDA0LDYgKzQwNCwxNzkgQEAgc3RhdGljIHZvaWQgaG9z dDJndWNfc2xwY190ZHJfcmVzZXQoc3RydWN0IGludGVsX2d1Y19zbHBjICpzbHBjKQogCXNscGNf c2VuZChzbHBjLCAmZGF0YSwgNSk7CiB9CiAKK3N0YXRpYyB2b2lkIGhvc3QyZ3VjX3NscGNfc2V0 X3BhcmFtKHN0cnVjdCBpbnRlbF9ndWNfc2xwYyAqc2xwYywKKwkJCQkgICAgdTMyIGlkLCB1MzIg dmFsdWUpCit7CisJc3RydWN0IHNscGNfZXZlbnRfaW5wdXQgZGF0YSA9IHswfTsKKworCWRhdGEu aGVhZGVyLnZhbHVlID0gU0xQQ19FVkVOVChTTFBDX0VWRU5UX1BBUkFNRVRFUl9TRVQsIDIpOwor CWRhdGEuYXJnc1swXSA9IGlkOworCWRhdGEuYXJnc1sxXSA9IHZhbHVlOworCisJc2xwY19zZW5k KHNscGMsICZkYXRhLCA0KTsKK30KKworc3RhdGljIHZvaWQgaG9zdDJndWNfc2xwY191bnNldF9w YXJhbShzdHJ1Y3QgaW50ZWxfZ3VjX3NscGMgKnNscGMsCisJCQkJICAgICAgdTMyIGlkKQorewor CXN0cnVjdCBzbHBjX2V2ZW50X2lucHV0IGRhdGEgPSB7MH07CisKKwlkYXRhLmhlYWRlci52YWx1 ZSA9IFNMUENfRVZFTlQoU0xQQ19FVkVOVF9QQVJBTUVURVJfVU5TRVQsIDEpOworCWRhdGEuYXJn c1swXSA9IGlkOworCisJc2xwY19zZW5kKHNscGMsICZkYXRhLCAzKTsKK30KKworc3RhdGljIHZv aWQgc2xwY19zZXRfcGFyYW0oc3RydWN0IGludGVsX2d1Y19zbHBjICpzbHBjLCB1MzIgaWQsIHUz MiB2YWx1ZSkKK3sKKwlzdHJ1Y3Qgc2xwY19zaGFyZWRfZGF0YSAqZGF0YSA9IE5VTEw7CisJc3Ry dWN0IHBhZ2UgKnBhZ2U7CisKKwlHRU1fQlVHX09OKGlkID49IFNMUENfTUFYX1BBUkFNKTsKKwlH RU1fQlVHX09OKCFzbHBjLT52bWEpOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmc2xwYy0+bG9j ayk7CisKKwlwYWdlID0gaTkxNV92bWFfZmlyc3RfcGFnZShzbHBjLT52bWEpOworCWRhdGEgPSBr bWFwX2F0b21pYyhwYWdlKTsKKwlzbHBjX21lbV9zZXRfcGFyYW0oZGF0YSwgaWQsIHZhbHVlKTsK KwlrdW5tYXBfYXRvbWljKGRhdGEpOworCisJaG9zdDJndWNfc2xwY19zZXRfcGFyYW0oc2xwYywg aWQsIHZhbHVlKTsKK30KKworc3RhdGljIHZvaWQgc2xwY191bnNldF9wYXJhbShzdHJ1Y3QgaW50 ZWxfZ3VjX3NscGMgKnNscGMsIHUzMiBpZCkKK3sKKwlzdHJ1Y3Qgc2xwY19zaGFyZWRfZGF0YSAq ZGF0YSA9IE5VTEw7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisKKwlHRU1fQlVHX09OKGlkID49IFNM UENfTUFYX1BBUkFNKTsKKwlHRU1fQlVHX09OKCFzbHBjLT52bWEpOworCisJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmc2xwYy0+bG9jayk7CisKKwlwYWdlID0gaTkxNV92bWFfZmlyc3RfcGFnZShzbHBj LT52bWEpOworCWRhdGEgPSBrbWFwX2F0b21pYyhwYWdlKTsKKwlzbHBjX21lbV91bnNldF9wYXJh bShkYXRhLCBpZCk7CisJa3VubWFwX2F0b21pYyhkYXRhKTsKKworCWhvc3QyZ3VjX3NscGNfdW5z ZXRfcGFyYW0oc2xwYywgaWQpOworfQorCitzdGF0aWMgdm9pZCBzbHBjX2dldF9wYXJhbShzdHJ1 Y3QgaW50ZWxfZ3VjX3NscGMgKnNscGMsIHUzMiBpZCwKKwkJCSAgIGludCAqb3ZlcnJpZGluZywg dTMyICp2YWx1ZSkKK3sKKwlzdHJ1Y3Qgc2xwY19zaGFyZWRfZGF0YSAqZGF0YSA9IE5VTEw7CisJ c3RydWN0IHBhZ2UgKnBhZ2U7CisJdTMyIGJpdHM7CisKKwlHRU1fQlVHX09OKGlkID49IFNMUENf TUFYX1BBUkFNKTsKKwlHRU1fQlVHX09OKCFzbHBjLT52bWEpOworCisJbG9ja2RlcF9hc3NlcnRf aGVsZCgmc2xwYy0+bG9jayk7CisKKwlwYWdlID0gaTkxNV92bWFfZmlyc3RfcGFnZShzbHBjLT52 bWEpOworCWRhdGEgPSBrbWFwX2F0b21pYyhwYWdlKTsKKwlpZiAob3ZlcnJpZGluZykgeworCQli aXRzID0gZGF0YS0+b3ZlcnJpZGVfcGFyYW1zX3NldF9iaXRzW2lkID4+IDVdOworCQkqb3ZlcnJp ZGluZyA9ICgwICE9IChiaXRzICYgKDEgPDwgKGlkICUgMzIpKSkpOworCX0KKwlpZiAodmFsdWUp CisJCSp2YWx1ZSA9IGRhdGEtPm92ZXJyaWRlX3BhcmFtc192YWx1ZXNbaWRdOworCisJa3VubWFw X2F0b21pYyhkYXRhKTsKK30KKworLyoqCisgKiBpbnRlbF9ndWNfc2xwY190YXNrX2NvbnRyb2wo KSAtIFVwZGF0ZSBzdGF0dXMgb2YgU0xQQyB0YXNrLgorICogQHNscGM6IHBvaW50ZXIgdG8gaW50 ZWxfZ3VjX3NscGMuCisgKgorICogVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBzdGF0dXMgb2Yg dGFzayBpbiBTTFBDIHNoYXJlZCBkYXRhLgorICogVGhlbiBpdCBpbnZva2VzIFNMUEMgSG9zdCB0 byBHdUMgYWN0aW9uIHRvIGNvbW11bmljYXRlIHRoZQorICogcmVxdWlyZWQgdGFzayBzdGF0dXMu CisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIGVycm9yIGNvZGUgb24gZmFp bHVyZS4KKyAqLworaW50IGludGVsX2d1Y19zbHBjX3Rhc2tfY29udHJvbChzdHJ1Y3QgaW50ZWxf Z3VjX3NscGMgKnNscGMsIHU2NCB2YWwsCisJCQkJdTMyIGVuYWJsZV9pZCwgdTMyIGRpc2FibGVf aWQpCit7CisJaW50IHJldCA9IDA7CisKKwlHRU1fQlVHX09OKCFzbHBjLT52bWEpOworCisJbG9j a2RlcF9hc3NlcnRfaGVsZCgmc2xwYy0+bG9jayk7CisKKwlpZiAodmFsID09IFNMUENfUEFSQU1f VEFTS19ERUZBVUxUKSB7CisJCS8qIHNldCBkZWZhdWx0ICovCisJCXNscGNfdW5zZXRfcGFyYW0o c2xwYywgZW5hYmxlX2lkKTsKKwkJc2xwY191bnNldF9wYXJhbShzbHBjLCBkaXNhYmxlX2lkKTsK Kwl9IGVsc2UgaWYgKHZhbCA9PSBTTFBDX1BBUkFNX1RBU0tfRU5BQkxFRCkgeworCQkvKiBzZXQg ZW5hYmxlICovCisJCXNscGNfc2V0X3BhcmFtKHNscGMsIGVuYWJsZV9pZCwgMSk7CisJCXNscGNf dW5zZXRfcGFyYW0oc2xwYywgZGlzYWJsZV9pZCk7CisJfSBlbHNlIGlmICh2YWwgPT0gU0xQQ19Q QVJBTV9UQVNLX0RJU0FCTEVEKSB7CisJCS8qIHNldCBkaXNhYmxlICovCisJCXNscGNfc2V0X3Bh cmFtKHNscGMsIGRpc2FibGVfaWQsIDEpOworCQlzbHBjX3Vuc2V0X3BhcmFtKHNscGMsIGVuYWJs ZV9pZCk7CisJfSBlbHNlIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwl9CisKKwlob3N0Mmd1Y19zbHBj X3Jlc2V0KHNscGMpOworCisJcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBpbnRlbF9ndWNfc2xw Y190YXNrX3N0YXR1cygpIC0gZ2V0cyB0aGUgc3RhdHVzIG9mIFNMUEMgdGFzay4KKyAqIEBzbHBj OiBwb2ludGVyIHRvIGludGVsX2d1Y19zbHBjLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gd2lsbCBy ZWFkIHN0YXR1cyBvZiB0YXNrIGZyb20gU0xQQyBzaGFyZWQgZGF0YS4KKyAqIFRhc2sgY291bGQg YmUgaW4gZWl0aGVyICJlbmFibGVkIiwgImRpc2FibGVkIiwgImRlZmF1bHQiIG9yCisgKiAidW5r bm93biIgc3RhdGUuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIGVycm9y IGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGludGVsX2d1Y19zbHBjX3Rhc2tfc3RhdHVzKHN0 cnVjdCBpbnRlbF9ndWNfc2xwYyAqc2xwYywgdTY0ICp2YWwsCisJCQkgICAgICAgdTMyIGVuYWJs ZV9pZCwgdTMyIGRpc2FibGVfaWQpCit7CisJaW50IG92ZXJyaWRlX2VuYWJsZSwgb3ZlcnJpZGVf ZGlzYWJsZTsKKwl1MzIgdmFsdWVfZW5hYmxlLCB2YWx1ZV9kaXNhYmxlOworCWludCByZXQgPSAw OworCisJR0VNX0JVR19PTighc2xwYy0+dm1hKTsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnNs cGMtPmxvY2spOworCisJaWYgKHZhbCkgeworCQlzbHBjX2dldF9wYXJhbShzbHBjLCBlbmFibGVf aWQsCisJCQkgICAgICAgJm92ZXJyaWRlX2VuYWJsZSwgJnZhbHVlX2VuYWJsZSk7CisJCXNscGNf Z2V0X3BhcmFtKHNscGMsIGRpc2FibGVfaWQsCisJCQkgICAgICAgJm92ZXJyaWRlX2Rpc2FibGUs ICZ2YWx1ZV9kaXNhYmxlKTsKKworCQkvKgorCQkgKiBTZXQgdGhlIG91dHB1dCB2YWx1ZToKKwkJ ICogMDogZGVmYXVsdAorCQkgKiAxOiBlbmFibGVkCisJCSAqIDI6IGRpc2FibGVkCisJCSAqIDM6 IHVua25vd24gKHNob3VsZCBub3QgaGFwcGVuKQorCQkgKi8KKwkJaWYgKG92ZXJyaWRlX2Rpc2Fi bGUgJiYgdmFsdWVfZGlzYWJsZSA9PSAxKQorCQkJKnZhbCA9IFNMUENfUEFSQU1fVEFTS19ESVNB QkxFRDsKKwkJZWxzZSBpZiAob3ZlcnJpZGVfZW5hYmxlICYmIHZhbHVlX2VuYWJsZSA9PSAxKQor CQkJKnZhbCA9IFNMUENfUEFSQU1fVEFTS19FTkFCTEVEOworCQllbHNlIGlmICghb3ZlcnJpZGVf ZW5hYmxlICYmICFvdmVycmlkZV9kaXNhYmxlKQorCQkJKnZhbCA9IFNMUENfUEFSQU1fVEFTS19E RUZBVUxUOworCQllbHNlCisJCQkqdmFsID0gU0xQQ19QQVJBTV9UQVNLX1VOS05PV047CisKKwl9 IGVsc2UgeworCQlyZXQgPSAtRUlOVkFMOworCX0KKworCXJldHVybiByZXQ7Cit9CisKIC8qKgog ICogaW50ZWxfZ3VjX3NscGNfaW5pdCgpIC0gSW5pdGlhbGl6ZSB0aGUgU0xQQyBzaGFyZWQgZGF0 YSBzdHJ1Y3R1cmUuCiAgKiBAc2xwYzogcG9pbnRlciB0byBpbnRlbF9ndWNfc2xwYy4KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zbHBjLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWNfc2xwYy5oCmluZGV4IDc1ZjBiNWQuLjg3YjUwNGQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zbHBjLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3NscGMuaApAQCAtMTQsNiArMTQsMTEgQEAgc3RydWN0 IGludGVsX2d1Y19zbHBjIHsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIH07CiAKK2ludCBpbnRl bF9ndWNfc2xwY190YXNrX2NvbnRyb2woc3RydWN0IGludGVsX2d1Y19zbHBjICpzbHBjLCB1NjQg dmFsLAorCQkJCXUzMiBlbmFibGVfaWQsIHUzMiBkaXNhYmxlX2lkKTsKK2ludCBpbnRlbF9ndWNf c2xwY190YXNrX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZ3VjX3NscGMgKnNscGMsIHU2NCAqdmFsLAor CQkJICAgICAgIHUzMiBlbmFibGVfaWQsIHUzMiBkaXNhYmxlX2lkKTsKKwogaW50IGludGVsX2d1 Y19zbHBjX2luaXQoc3RydWN0IGludGVsX2d1Y19zbHBjICpzbHBjKTsKIGludCBpbnRlbF9ndWNf c2xwY19lbmFibGUoc3RydWN0IGludGVsX2d1Y19zbHBjICpzbHBjKTsKIHZvaWQgaW50ZWxfZ3Vj X3NscGNfaGFuZGxlX2VuZ2luZV9yZXNldChzdHJ1Y3QgaW50ZWxfZ3VjX3NscGMgKnNscGMpOwot LSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=