From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH 06/14] drm/vmwgfx: implement STDU plane update for surface backed fb Date: Wed, 5 Sep 2018 16:38:53 -0700 Message-ID: <20180905233901.2321-7-drawat@vmware.com> References: <20180905233901.2321-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-002.vmware.com (ex13-edg-ou-002.vmware.com [208.91.0.190]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5370B6E56E for ; Wed, 5 Sep 2018 23:39:33 +0000 (UTC) In-Reply-To: <20180905233901.2321-1-drawat@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Deepak Rawat , lukasz.spintzyk@displaylink.com List-Id: dri-devel@lists.freedesktop.org VXNpbmcgdGhlIG5ldyBpbnRlcmZhY2UgaW1wbGVtZW50IFNURFUgcGxhbmUgdXBkYXRlIGZvciBz dXJmYWNlIGJhY2tlZApmYi4KClNpZ25lZC1vZmYtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZt d2FyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmggIHwgIDEx ICsrCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgfCAyMDkgKysrKysrKysr KysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDIxOSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf a21zLmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaAppbmRleCA2YmRhOGQz ZmI1MmYuLjBlY2M1MjMxYjYxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmgKQEAg LTE2MCw2ICsxNjAsMTcgQEAgc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgewogCXN0cnVjdCB2 bXdfZmVuY2Vfb2JqICoqb3V0X2ZlbmNlOwogfTsKIAorLyoqCisgKiBzdHJ1Y3Qgdm13X2R1X3Vw ZGF0ZV9wbGFuZV9zdXJmYWNlIC0gY2xvc3VyZSBzdHJ1Y3R1cmUgZm9yIHN1cmZhY2UKKyAqCisg KiBAYmFzZTogYmFzZSBjbG9zdXJlIHN0cnVjdHVyZS4KKyAqIEBjdHg6IHZhbGlkYXRpb24gY29u dGV4dC4KKyAqLworc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmVfc3VyZmFjZSB7CisJc3RydWN0 IHZtd19kdV91cGRhdGVfcGxhbmUgYmFzZTsKKwlzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fY3R4ICpj dHg7Cit9OworCiAvKioKICAqIHN0cnVjdCB2bXdfa21zX2RpcnR5IC0gY2xvc3VyZSBzdHJ1Y3R1 cmUgZm9yIHRoZSB2bXdfa21zX2hlbHBlcl9kaXJ0eQogICogZnVuY3Rpb24uCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9zdGR1LmMKaW5kZXggOTNmNmI5NmNhN2JiLi5iNTExNWI0YTE3ODcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNs dWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+ CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Ci0KKyNpbmNsdWRlIDxkcm0vZHJt X2RhbWFnZV9oZWxwZXIuaD4KIAogI2RlZmluZSB2bXdfY3J0Y190b19zdGR1KHgpIFwKIAljb250 YWluZXJfb2YoeCwgc3RydWN0IHZtd19zY3JlZW5fdGFyZ2V0X2Rpc3BsYXlfdW5pdCwgYmFzZS5j cnRjKQpAQCAtOTIsNiArOTIsMTAgQEAgc3RydWN0IHZtd19zdGR1X3N1cmZhY2VfY29weSB7CiAJ U1ZHQTNkQ21kU3VyZmFjZUNvcHkgYm9keTsKIH07CiAKK3N0cnVjdCB2bXdfc3RkdV91cGRhdGVf Z2JfaW1hZ2UgeworCVNWR0EzZENtZEhlYWRlciBoZWFkZXI7CisJU1ZHQTNkQ21kVXBkYXRlR0JJ bWFnZSBib2R5OworfTsKIAogLyoqCiAgKiBzdHJ1Y3Qgdm13X3NjcmVlbl90YXJnZXRfZGlzcGxh eV91bml0CkBAIC0xMjQwLDcgKzEyNDQsMjEwIEBAIHZtd19zdGR1X3ByaW1hcnlfcGxhbmVfcHJl cGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0 aWMgaW50IHZtd19zdGR1X3N1cmZhY2VfcHJlcGFyZShzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFu ZSAqdXBkYXRlKQoreworCXN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX3N1cmZhY2UgKnNyZl91 cGRhdGU7CisJc3RydWN0IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzOworCisJc3JmX3Vw ZGF0ZSA9IGNvbnRhaW5lcl9vZih1cGRhdGUsIHR5cGVvZigqc3JmX3VwZGF0ZSksIGJhc2UpOwor CXZmYnMgPSBjb250YWluZXJfb2YodXBkYXRlLT52ZmIsIHR5cGVvZigqdmZicyksIGJhc2UpOwor CisJcmV0dXJuIHZtd19rbXNfaGVscGVyX3Jlc291cmNlX3ByZXBhcmUoJnZmYnMtPnN1cmZhY2Ut PnJlcywgdHJ1ZSwKKwkJCQkJICAgICAgIHNyZl91cGRhdGUtPmN0eCk7Cit9CisKK3N0YXRpYyB1 aW50MzJfdAordm13X3N0ZHVfc3VyZmFjZV9maWZvX3NpemVfc2FtZV9kaXNwbGF5KHN0cnVjdCB2 bXdfZHVfdXBkYXRlX3BsYW5lICp1cGRhdGUsCisJCQkJCXVpbnQzMl90IG51bV9oaXRzKQorewor CXN0cnVjdCB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZSAqdmZiczsKKwl1aW50MzJfdCBzaXplID0g MDsKKworCXZmYnMgPSBjb250YWluZXJfb2YodXBkYXRlLT52ZmIsIHR5cGVvZigqdmZicyksIGJh c2UpOworCisJaWYgKHZmYnMtPmlzX2JvX3Byb3h5KQorCQlzaXplICs9IHNpemVvZihzdHJ1Y3Qg dm13X3N0ZHVfdXBkYXRlX2diX2ltYWdlKSAqIG51bV9oaXRzOworCisJc2l6ZSArPSBzaXplb2Yo c3RydWN0IHZtd19zdGR1X3VwZGF0ZSk7CisKKwlyZXR1cm4gc2l6ZTsKK30KKworc3RhdGljIHVp bnQzMl90IHZtd19zdGR1X3N1cmZhY2VfZmlmb19zaXplKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3Bs YW5lICp1cGRhdGUsCisJCQkJCSAgIHVpbnQzMl90IG51bV9oaXRzKQoreworCXN0cnVjdCB2bXdf ZnJhbWVidWZmZXJfc3VyZmFjZSAqdmZiczsKKwl1aW50MzJfdCBzaXplID0gMDsKKworCXZmYnMg PSBjb250YWluZXJfb2YodXBkYXRlLT52ZmIsIHR5cGVvZigqdmZicyksIGJhc2UpOworCisJaWYg KHZmYnMtPmlzX2JvX3Byb3h5KQorCQlzaXplICs9IHNpemVvZihzdHJ1Y3Qgdm13X3N0ZHVfdXBk YXRlX2diX2ltYWdlKSAqIG51bV9oaXRzOworCisJc2l6ZSArPSBzaXplb2Yoc3RydWN0IHZtd19z dGR1X3N1cmZhY2VfY29weSkgKyBzaXplb2YoU1ZHQTNkQ29weUJveCkgKgorCQludW1faGl0cyAr IHNpemVvZihzdHJ1Y3Qgdm13X3N0ZHVfdXBkYXRlKTsKKworCXJldHVybiBzaXplOworfQorCitz dGF0aWMgdWludDMyX3QKK3Ztd19zdGR1X3N1cmZhY2VfdXBkYXRlX3Byb3h5KHN0cnVjdCB2bXdf ZHVfdXBkYXRlX3BsYW5lICp1cGRhdGUsIHZvaWQgKmNtZCkKK3sKKwlzdHJ1Y3Qgdm13X2ZyYW1l YnVmZmVyX3N1cmZhY2UgKnZmYnM7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSB1 cGRhdGUtPnBsYW5lLT5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUg PSB1cGRhdGUtPm9sZF9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0 ZXIgaXRlcjsKKwlzdHJ1Y3Qgdm13X3N0ZHVfdXBkYXRlX2diX2ltYWdlICpjbWRfdXBkYXRlID0g Y21kOworCXN0cnVjdCBkcm1fcmVjdCBjbGlwOworCXVpbnQzMl90IGNvcHlfc2l6ZSA9IDA7CisK Kwl2ZmJzID0gY29udGFpbmVyX29mKHVwZGF0ZS0+dmZiLCB0eXBlb2YoKnZmYnMpLCBiYXNlKTsK KworCS8qCisJICogcHJveHkgc3VyZmFjZSBpcyBzcGVjaWFsIHdoZXJlIGEgYnVmZmVyIG9iamVj dCB0eXBlIGZiIGlzIHdyYXBwZWQKKwkgKiBpbiBhIHN1cmZhY2UgYW5kIG5lZWQgYW4gdXBkYXRl IGdiIGltYWdlIGNvbW1hbmQgdG8gc3luYyB3aXRoIGRldmljZS4KKwkgKi8KKwlkcm1fYXRvbWlj X2hlbHBlcl9kYW1hZ2VfaXRlcl9pbml0KCZpdGVyLCBvbGRfc3RhdGUsIHN0YXRlKTsKKwl3aGls ZSAoZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfbmV4dCgmaXRlciwgJmNsaXApKSB7CisJ CVNWR0EzZEJveCAqYm94ID0gJmNtZF91cGRhdGUtPmJvZHkuYm94OworCisJCWNtZF91cGRhdGUt PmhlYWRlci5pZCA9IFNWR0FfM0RfQ01EX1VQREFURV9HQl9JTUFHRTsKKwkJY21kX3VwZGF0ZS0+ aGVhZGVyLnNpemUgPSBzaXplb2YoY21kX3VwZGF0ZS0+Ym9keSk7CisJCWNtZF91cGRhdGUtPmJv ZHkuaW1hZ2Uuc2lkID0gdmZicy0+c3VyZmFjZS0+cmVzLmlkOworCQljbWRfdXBkYXRlLT5ib2R5 LmltYWdlLmZhY2UgPSAwOworCQljbWRfdXBkYXRlLT5ib2R5LmltYWdlLm1pcG1hcCA9IDA7CisK KwkJYm94LT54ID0gY2xpcC54MTsKKwkJYm94LT55ID0gY2xpcC55MTsKKwkJYm94LT56ID0gMDsK KwkJYm94LT53ID0gZHJtX3JlY3Rfd2lkdGgoJmNsaXApOworCQlib3gtPmggPSBkcm1fcmVjdF9o ZWlnaHQoJmNsaXApOworCQlib3gtPmQgPSAxOworCisJCWNvcHlfc2l6ZSArPSBzaXplb2YoKmNt ZF91cGRhdGUpOworCQljbWRfdXBkYXRlKys7CisJfQorCisJcmV0dXJuIGNvcHlfc2l6ZTsKK30K Kworc3RhdGljIHVpbnQzMl90Cit2bXdfc3RkdV9zdXJmYWNlX3BvcHVsYXRlX2NvcHkoc3RydWN0 IHZtd19kdV91cGRhdGVfcGxhbmUgICp1cGRhdGUsIHZvaWQgKmNtZCwKKwkJCSAgICAgICB1aW50 MzJfdCBudW1faGl0cykKK3sKKwlzdHJ1Y3Qgdm13X3NjcmVlbl90YXJnZXRfZGlzcGxheV91bml0 ICpzdGR1OworCXN0cnVjdCB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZSAqdmZiczsKKwlzdHJ1Y3Qg dm13X3N0ZHVfc3VyZmFjZV9jb3B5ICpjbWRfY29weSA9IGNtZDsKKworCXN0ZHUgPSBjb250YWlu ZXJfb2YodXBkYXRlLT5kdSwgdHlwZW9mKCpzdGR1KSwgYmFzZSk7CisJdmZicyA9IGNvbnRhaW5l cl9vZih1cGRhdGUtPnZmYiwgdHlwZW9mKCp2ZmJzKSwgYmFzZSk7CiAKKwljbWRfY29weS0+aGVh ZGVyLmlkID0gU1ZHQV8zRF9DTURfU1VSRkFDRV9DT1BZOworCWNtZF9jb3B5LT5oZWFkZXIuc2l6 ZSA9IHNpemVvZihjbWRfY29weS0+Ym9keSkgKyBzaXplb2YoU1ZHQTNkQ29weUJveCkgKgorCQlu dW1faGl0czsKKwljbWRfY29weS0+Ym9keS5zcmMuc2lkID0gdmZicy0+c3VyZmFjZS0+cmVzLmlk OworCWNtZF9jb3B5LT5ib2R5LmRlc3Quc2lkID0gc3RkdS0+ZGlzcGxheV9zcmYtPnJlcy5pZDsK KworCXJldHVybiBzaXplb2YoKmNtZF9jb3B5KTsKK30KKworc3RhdGljIHVpbnQzMl90Cit2bXdf c3RkdV9zdXJmYWNlX3BvcHVsYXRlX2NsaXAoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgICp1 cGRhdGUsIHZvaWQgKmNtZCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAsIHVpbnQz Ml90IGZiX3gsCisJCQkgICAgICAgdWludDMyX3QgZmJfeSkKK3sKKwlzdHJ1Y3QgU1ZHQTNkQ29w eUJveCAqYm94ID0gY21kOworCisJYm94LT5zcmN4ID0gZmJfeDsKKwlib3gtPnNyY3kgPSBmYl95 OworCWJveC0+c3JjeiA9IDA7CisJYm94LT54ID0gY2xpcC0+eDE7CisJYm94LT55ID0gY2xpcC0+ eTE7CisJYm94LT56ID0gMDsKKwlib3gtPncgPSBkcm1fcmVjdF93aWR0aChjbGlwKTsKKwlib3gt PmggPSBkcm1fcmVjdF9oZWlnaHQoY2xpcCk7CisJYm94LT5kID0gMTsKKworCXJldHVybiBzaXpl b2YoKmJveCk7Cit9CisKK3N0YXRpYyB1aW50MzJfdAordm13X3N0dWRfc3VyZmFjZV9wb3B1bGF0 ZV91cGRhdGUoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgICp1cGRhdGUsIHZvaWQgKmNtZCwK KwkJCQkgc3RydWN0IGRybV9yZWN0ICpiYikKK3sKKwl2bXdfc3RkdV9wb3B1bGF0ZV91cGRhdGUo Y21kLCB1cGRhdGUtPmR1LT51bml0LCBiYi0+eDEsIGJiLT54MiwgYmItPnkxLAorCQkJCSBiYi0+ eTIpOworCisJcmV0dXJuIHNpemVvZihzdHJ1Y3Qgdm13X3N0ZHVfdXBkYXRlKTsKK30KKworc3Rh dGljIHZvaWQgdm13X3N0ZHVfc3VyZmFjZV9maW5pc2goc3RydWN0IHZtd19kdV91cGRhdGVfcGxh bmUgKnVwZGF0ZSkKK3sKKwlzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZV9zdXJmYWNlICpzcmZf dXBkYXRlID0KKwkJY29udGFpbmVyX29mKHVwZGF0ZSwgdHlwZW9mKCpzcmZfdXBkYXRlKSwgYmFz ZSk7CisKKwl2bXdfa21zX2hlbHBlcl9yZXNvdXJjZV9maW5pc2goc3JmX3VwZGF0ZS0+Y3R4LCB1 cGRhdGUtPm91dF9mZW5jZSk7Cit9CisKKy8qKgorICogdm13X3N0ZHVfcGxhbmVfdXBkYXRlX3N1 cmZhY2UgLSB1cGRhdGUgZGlzcGxheSB1bml0IGZvciBzdXJmYWNlIGJhY2tlZCBmYgorICogQGRl dl9wcml2OiBkZXZpY2UgcHJpdmF0ZQorICogQHBsYW5lOiBwbGFuZSBzdGF0ZQorICogQG9sZF9z dGF0ZTogb2xkIHBsYW5lIHN0YXRlCisgKiBAdmZiOiBmcmFtZWJ1ZmZlciB3aGljaCBpcyBibGl0 dGVkIHRvIGRpc3BsYXkgdW5pdAorICogQG91dF9mZW5jZTogKG9wdGlvbmFsKSBJZiBub24tTlVM TCwgd2lsbCByZXR1cm4gYSByZWYtY291bnRlZCBwb2ludGVyIHRvIGEKKyAqIHN0cnVjdCB2bXdf ZmVuY2Vfb2JqLiBUaGUgcmV0dXJuZWQgZmVuY2UgcG9pbnRlciBtYXkgYmUgTlVMTCBpbiB3aGlj aCBjYXNlCisgKiB0aGUgZGV2aWNlIGhhcyBhbHJlYWR5IHN5bmNocm9uaXplZC4KKyAqCisgKiBS RVRVUk5TOgorICoKKyAqIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24g ZmFpbHVyZS4KKyAqLworc3RhdGljIGludCB2bXdfc3RkdV9wbGFuZV91cGRhdGVfc3VyZmFjZShz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkgc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCisJCQkJCSBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUsCisJCQkJCSBzdHJ1 Y3Qgdm13X2ZyYW1lYnVmZmVyICp2ZmIsCisJCQkJCSBzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqKm91 dF9mZW5jZSkKK3sKKwlzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZV9zdXJmYWNlIHNyZl91cGRh dGU7CisJc3RydWN0IHZtd19zY3JlZW5fdGFyZ2V0X2Rpc3BsYXlfdW5pdCAqc3RkdTsKKwlzdHJ1 Y3Qgdm13X2ZyYW1lYnVmZmVyX3N1cmZhY2UgKnZmYnM7CisJc3RydWN0IHZtd192YWxpZGF0aW9u X2N0eCBjdHg7CisKKwlzdGR1ID0gdm13X2NydGNfdG9fc3RkdShwbGFuZS0+c3RhdGUtPmNydGMp OworCXZmYnMgPSBjb250YWluZXJfb2YodmZiLCB0eXBlb2YoKnZmYnMpLCBiYXNlKTsKKworCW1l bXNldCgmc3JmX3VwZGF0ZSwgMCwgc2l6ZW9mKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX3N1 cmZhY2UpKTsKKwlzcmZfdXBkYXRlLmJhc2UucGxhbmUgPSBwbGFuZTsKKwlzcmZfdXBkYXRlLmJh c2Uub2xkX3N0YXRlID0gb2xkX3N0YXRlOworCXNyZl91cGRhdGUuYmFzZS5kZXZfcHJpdiA9IGRl dl9wcml2OworCXNyZl91cGRhdGUuYmFzZS5kdSA9IHZtd19jcnRjX3RvX2R1KHBsYW5lLT5zdGF0 ZS0+Y3J0Yyk7CisJc3JmX3VwZGF0ZS5iYXNlLnZmYiA9IHZmYjsKKwlzcmZfdXBkYXRlLmJhc2Uu b3V0X2ZlbmNlID0gb3V0X2ZlbmNlOworCisJc3JmX3VwZGF0ZS5jdHggPSAmY3R4OworCisJc3Jm X3VwZGF0ZS5iYXNlLnByZXBhcmUgPSB2bXdfc3RkdV9zdXJmYWNlX3ByZXBhcmU7CisKKwlpZiAo dmZicy0+aXNfYm9fcHJveHkpCisJCXNyZl91cGRhdGUuYmFzZS5wb3N0X3ByZXBhcmUgPSB2bXdf c3RkdV9zdXJmYWNlX3VwZGF0ZV9wcm94eTsKKworCWlmICh2ZmJzLT5zdXJmYWNlLT5yZXMuaWQg IT0gc3RkdS0+ZGlzcGxheV9zcmYtPnJlcy5pZCkgeworCQlzcmZfdXBkYXRlLmJhc2UuY2FsY19m aWZvX3NpemUgPSB2bXdfc3RkdV9zdXJmYWNlX2ZpZm9fc2l6ZTsKKwkJc3JmX3VwZGF0ZS5iYXNl LnByZV9jbGlwID0gdm13X3N0ZHVfc3VyZmFjZV9wb3B1bGF0ZV9jb3B5OworCQlzcmZfdXBkYXRl LmJhc2UuY2xpcCA9IHZtd19zdGR1X3N1cmZhY2VfcG9wdWxhdGVfY2xpcDsKKwl9IGVsc2Ugewor CQlzcmZfdXBkYXRlLmJhc2UuY2FsY19maWZvX3NpemUgPQorCQkJdm13X3N0ZHVfc3VyZmFjZV9m aWZvX3NpemVfc2FtZV9kaXNwbGF5OworCX0KKworCXNyZl91cGRhdGUuYmFzZS5wb3N0X2NsaXAg PSB2bXdfc3R1ZF9zdXJmYWNlX3BvcHVsYXRlX3VwZGF0ZTsKKwlzcmZfdXBkYXRlLmJhc2UuZmlu aXNoID0gdm13X3N0ZHVfc3VyZmFjZV9maW5pc2g7CisJLyogTm90aGluZyBzcGVjaWFsIHRvIGRv IGZvciByZXZlcnQgKi8KKwlzcmZfdXBkYXRlLmJhc2UucmV2ZXJ0ID0gdm13X3N0ZHVfc3VyZmFj ZV9maW5pc2g7CisKKwlyZXR1cm4gdm13X2R1X2hlbHBlcl9wbGFuZV91cGRhdGUoJnNyZl91cGRh dGUuYmFzZSk7Cit9CiAKIC8qKgogICogdm13X3N0ZHVfcHJpbWFyeV9wbGFuZV9hdG9taWNfdXBk YXRlIC0gZm9ybWFsbHkgc3dpdGNoZXMgU1REVSB0byBuZXcgcGxhbmUKLS0gCjIuMTcuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==