From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH 14/14] drm/msm/dpu: remove cdm block support from resource manager Date: Tue, 28 Aug 2018 17:40:03 -0700 Message-ID: <1535503203-22054-15-git-send-email-jsanka@codeaurora.org> References: <1535503203-22054-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1535503203-22054-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Jeykumar Sankaran , seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org U3VwcG9ydCBmb3IgQ0RNIGJsb2NrIGlzIG5vdCBwcmVzZW50IGluIERQVS4gUmVtb3ZlIENETQpo YW5kbGVycyBmcm9tIHJlc291cmNlIG1hbmFnZXIuCgpTaWduZWQtb2ZmLWJ5OiBKZXlrdW1hciBT YW5rYXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20v TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oICAgICAgfCAgIDIgLQogZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oIHwgICA1IC0KIGRyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9od19jZG0uYyAgICAgICB8IDMyMyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NkbS5oICAgICAgIHwg MTM5IC0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwu YyAgICAgICB8ICAxNCAtCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY3Rs LmggICAgICAgfCAgIDQgLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3Rv cC5jICAgICAgIHwgIDE4IC0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdf dG9wLmggICAgICAgfCAgMTcgLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9y bS5jICAgICAgICAgICB8ICA2OCArLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X3RyYWNlLmggICAgICAgIHwgICA0IC0KIDExIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgNTkzIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9od19jZG0uYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jZG0uaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlCmluZGV4 IDI2MWZhNzkuLjE5YWI1MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vTWFrZWZp bGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9NYWtlZmlsZQpAQCAtNTgsNyArNTgsNiBAQCBt c20teSA6PSBcCiAJZGlzcC9kcHUxL2RwdV9mb3JtYXRzLm8gXAogCWRpc3AvZHB1MS9kcHVfaHdf YmxrLm8gXAogCWRpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5vIFwKLQlkaXNwL2RwdTEvZHB1X2h3 X2NkbS5vIFwKIAlkaXNwL2RwdTEvZHB1X2h3X2N0bC5vIFwKIAlkaXNwL2RwdTEvZHB1X2h3X2lu dGVycnVwdHMubyBcCiAJZGlzcC9kcHUxL2RwdV9od19pbnRmLm8gXApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKaW5kZXggZTQ1MzI3MS4uZTg0NGFmYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCkBAIC0zMiwxMSAr MzIsOSBAQAogLyoqCiAgKiBFbmNvZGVyIGZ1bmN0aW9ucyBhbmQgZGF0YSB0eXBlcwogICogQGlu dGZzOglJbnRlcmZhY2VzIHRoaXMgZW5jb2RlciBpcyB1c2luZywgSU5URl9NT0RFX05PTkUgaWYg dW51c2VkCi0gKiBAbmVlZHNfY2RtOglFbmNvZGVyIHJlcXVlc3RzIGEgQ0RNIGJhc2VkIG9uIHBp eGVsIGZvcm1hdCBjb252ZXJzaW9uIG5lZWRzCiAgKi8KIHN0cnVjdCBkcHVfZW5jb2Rlcl9od19y ZXNvdXJjZXMgewogCWVudW0gZHB1X2ludGZfbW9kZSBpbnRmc1tJTlRGX01BWF07Ci0JYm9vbCBu ZWVkc19jZG07CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9lbmNvZGVyX3BoeXMuaAppbmRleCBiNWZjNjVjLi5mNzk2NjgzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oCkBAIC0yMiw3ICsy Miw2IEBACiAjaW5jbHVkZSAiZHB1X2h3X3Bpbmdwb25nLmgiCiAjaW5jbHVkZSAiZHB1X2h3X2N0 bC5oIgogI2luY2x1ZGUgImRwdV9od190b3AuaCIKLSNpbmNsdWRlICJkcHVfaHdfY2RtLmgiCiAj aW5jbHVkZSAiZHB1X2VuY29kZXIuaCIKICNpbmNsdWRlICJkcHVfY3J0Yy5oIgogCkBAIC0yMDUs OCArMjA0LDYgQEAgc3RydWN0IGRwdV9lbmNvZGVyX2lycSB7CiAgKiBAcGFyZW50X29wczoJCUNh bGxiYWNrcyBleHBvc2VkIGJ5IHRoZSBwYXJlbnQgdG8gdGhlIHBoeXNfZW5jCiAgKiBAaHdfbWRw dG9wOgkJSGFyZHdhcmUgaW50ZXJmYWNlIHRvIHRoZSB0b3AgcmVnaXN0ZXJzCiAgKiBAaHdfY3Rs OgkJSGFyZHdhcmUgaW50ZXJmYWNlIHRvIHRoZSBjdGwgcmVnaXN0ZXJzCi0gKiBAaHdfY2RtOgkJ SGFyZHdhcmUgaW50ZXJmYWNlIHRvIHRoZSBjZG0gcmVnaXN0ZXJzCi0gKiBAY2RtX2NmZzoJCUNo cm9tYS1kb3duIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24KICAqIEBod19wcDoJCUhhcmR3YXJlIGlu dGVyZmFjZSB0byB0aGUgcGluZyBwb25nIHJlZ2lzdGVycwogICogQGRwdV9rbXM6CQlQb2ludGVy IHRvIHRoZSBkcHVfa21zIHRvcCBsZXZlbAogICogQGNhY2hlZF9tb2RlOglEUk0gbW9kZSBjYWNo ZWQgYXQgbW9kZV9zZXQgdGltZSwgYWN0ZWQgb24gaW4gZW5hYmxlCkBAIC0yMzUsOCArMjMyLDYg QEAgc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgewogCWNvbnN0IHN0cnVjdCBkcHVfZW5jb2Rlcl92 aXJ0X29wcyAqcGFyZW50X29wczsKIAlzdHJ1Y3QgZHB1X2h3X21kcCAqaHdfbWRwdG9wOwogCXN0 cnVjdCBkcHVfaHdfY3RsICpod19jdGw7Ci0Jc3RydWN0IGRwdV9od19jZG0gKmh3X2NkbTsKLQlz dHJ1Y3QgZHB1X2h3X2NkbV9jZmcgY2RtX2NmZzsKIAlzdHJ1Y3QgZHB1X2h3X3Bpbmdwb25nICpo d19wcDsKIAlzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttczsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSBjYWNoZWRfbW9kZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9od19jZG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jZG0u YwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTU0ODc0Yi4uMDAwMDAwMAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2RtLmMKKysrIC9kZXYvbnVsbApA QCAtMSwzMjMgKzAsMCBAQAotLyogQ29weXJpZ2h0IChjKSAyMDE1LTIwMTgsIFRoZSBMaW51eCBG b3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNp b24gMiBhbmQKLSAqIG9ubHkgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKi8KLQotI2luY2x1 ZGUgImRwdV9od19tZHNzLmgiCi0jaW5jbHVkZSAiZHB1X2h3aW8uaCIKLSNpbmNsdWRlICJkcHVf aHdfY2F0YWxvZy5oIgotI2luY2x1ZGUgImRwdV9od19jZG0uaCIKLSNpbmNsdWRlICJkcHVfZGJn LmgiCi0jaW5jbHVkZSAiZHB1X2ttcy5oIgotCi0jZGVmaW5lIENETV9DU0NfMTBfT1BNT0RFICAg ICAgICAgICAgICAgICAgMHgwMDAKLSNkZWZpbmUgQ0RNX0NTQ18xMF9CQVNFICAgICAgICAgICAg ICAgICAgICAweDAwNAotCi0jZGVmaW5lIENETV9DRFdOMl9PUF9NT0RFICAgICAgICAgICAgICAg ICAgMHgxMDAKLSNkZWZpbmUgQ0RNX0NEV04yX0NMQU1QX09VVCAgICAgICAgICAgICAgICAweDEw NAotI2RlZmluZSBDRE1fQ0RXTjJfUEFSQU1TXzNEXzAgICAgICAgICAgICAgIDB4MTA4Ci0jZGVm aW5lIENETV9DRFdOMl9QQVJBTVNfM0RfMSAgICAgICAgICAgICAgMHgxMEMKLSNkZWZpbmUgQ0RN X0NEV04yX0NPRUZGX0NPU0lURV9IXzAgICAgICAgICAweDExMAotI2RlZmluZSBDRE1fQ0RXTjJf Q09FRkZfQ09TSVRFX0hfMSAgICAgICAgIDB4MTE0Ci0jZGVmaW5lIENETV9DRFdOMl9DT0VGRl9D T1NJVEVfSF8yICAgICAgICAgMHgxMTgKLSNkZWZpbmUgQ0RNX0NEV04yX0NPRUZGX09GRlNJVEVf SF8wICAgICAgICAweDExQwotI2RlZmluZSBDRE1fQ0RXTjJfQ09FRkZfT0ZGU0lURV9IXzEgICAg ICAgIDB4MTIwCi0jZGVmaW5lIENETV9DRFdOMl9DT0VGRl9PRkZTSVRFX0hfMiAgICAgICAgMHgx MjQKLSNkZWZpbmUgQ0RNX0NEV04yX0NPRUZGX0NPU0lURV9WICAgICAgICAgICAweDEyOAotI2Rl ZmluZSBDRE1fQ0RXTjJfQ09FRkZfT0ZGU0lURV9WICAgICAgICAgIDB4MTJDCi0jZGVmaW5lIENE TV9DRFdOMl9PVVRfU0laRSAgICAgICAgICAgICAgICAgMHgxMzAKLQotI2RlZmluZSBDRE1fSERN SV9QQUNLX09QX01PREUgICAgICAgICAgICAgIDB4MjAwCi0jZGVmaW5lIENETV9DU0NfMTBfTUFU UklYX0NPRUZGXzAgICAgICAgICAgMHgwMDQKLQotLyoqCi0gKiBIb3Jpem9udGFsIGNvZWZmaWNp ZW50cyBmb3IgY29zaXRlIGNocm9tYSBkb3duc2NhbGUKLSAqIHMxMyByZXByZXNlbnRhdGlvbiBv ZiBjb2VmZmljaWVudHMKLSAqLwotc3RhdGljIHUzMiBjb3NpdGVfaF9jb2VmZltdID0gezB4MDAw MDAwMTYsIDB4MDAwMDAxY2MsIDB4MDEwMDAwOWV9OwotCi0vKioKLSAqIEhvcml6b250YWwgY29l ZmZpY2llbnRzIGZvciBvZmZzaXRlIGNocm9tYSBkb3duc2NhbGUKLSAqLwotc3RhdGljIHUzMiBv ZmZzaXRlX2hfY29lZmZbXSA9IHsweDAwMGIwMDA1LCAweDAxZGIwMWViLCAweDAwZTQwMDQ2fTsK LQotLyoqCi0gKiBWZXJ0aWNhbCBjb2VmZmljaWVudHMgZm9yIGNvc2l0ZSBjaHJvbWEgZG93bnNj YWxlCi0gKi8KLXN0YXRpYyB1MzIgY29zaXRlX3ZfY29lZmZbXSA9IHsweDAwMDgwMDA0fTsKLS8q KgotICogVmVydGljYWwgY29lZmZpY2llbnRzIGZvciBvZmZzaXRlIGNocm9tYSBkb3duc2NhbGUK LSAqLwotc3RhdGljIHUzMiBvZmZzaXRlX3ZfY29lZmZbXSA9IHsweDAwMDYwMDAyfTsKLQotLyog TGltaXRlZCBSYW5nZSByZ2IyeXV2IGNvZWZmIHdpdGggY2xhbXAgYW5kIGJpYXMgdmFsdWVzIGZv ciBDU0MgMTAgbW9kdWxlICovCi1zdGF0aWMgc3RydWN0IGRwdV9jc2NfY2ZnIHJnYjJ5dXZfY2Zn ID0gewotCXsKLQkJMHgwMDgzLCAweDAxMDIsIDB4MDAzMiwKLQkJMHgxZmI1LCAweDFmNmMsIDB4 MDBlMSwKLQkJMHgwMGUxLCAweDFmNDUsIDB4MWZkYwotCX0sCi0JeyAweDAwLCAweDAwLCAweDAw IH0sCi0JeyAweDAwNDAsIDB4MDIwMCwgMHgwMjAwIH0sCi0JeyAweDAwMCwgMHgzZmYsIDB4MDAw LCAweDNmZiwgMHgwMDAsIDB4M2ZmIH0sCi0JeyAweDA0MCwgMHgzYWMsIDB4MDQwLCAweDNjMCwg MHgwNDAsIDB4M2MwIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IGRwdV9jZG1fY2ZnICpfY2RtX29m ZnNldChlbnVtIGRwdV9jZG0gY2RtLAotCQlzdHJ1Y3QgZHB1X21kc3NfY2ZnICptLAotCQl2b2lk IF9faW9tZW0gKmFkZHIsCi0JCXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmIpCi17Ci0JaW50 IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbS0+Y2RtX2NvdW50OyBpKyspIHsKLQkJaWYgKGNkbSA9 PSBtLT5jZG1baV0uaWQpIHsKLQkJCWItPmJhc2Vfb2ZmID0gYWRkcjsKLQkJCWItPmJsa19vZmYg PSBtLT5jZG1baV0uYmFzZTsKLQkJCWItPmxlbmd0aCA9IG0tPmNkbVtpXS5sZW47Ci0JCQliLT5o d3ZlcnNpb24gPSBtLT5od3ZlcnNpb247Ci0JCQliLT5sb2dfbWFzayA9IERQVV9EQkdfTUFTS19D RE07Ci0JCQlyZXR1cm4gJm0tPmNkbVtpXTsKLQkJfQotCX0KLQotCXJldHVybiBFUlJfUFRSKC1F SU5WQUwpOwotfQotCi1zdGF0aWMgaW50IGRwdV9od19jZG1fc2V0dXBfY3NjXzEwYml0KHN0cnVj dCBkcHVfaHdfY2RtICpjdHgsCi0JCXN0cnVjdCBkcHVfY3NjX2NmZyAqZGF0YSkKLXsKLQlkcHVf aHdfY3NjX3NldHVwKCZjdHgtPmh3LCBDRE1fQ1NDXzEwX01BVFJJWF9DT0VGRl8wLCBkYXRhLCB0 cnVlKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGRwdV9od19jZG1fc2V0dXBfY2R3 bihzdHJ1Y3QgZHB1X2h3X2NkbSAqY3R4LAotCQlzdHJ1Y3QgZHB1X2h3X2NkbV9jZmcgKmNmZykK LXsKLQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjID0gJmN0eC0+aHc7Ci0JdTMyIG9wbW9k ZSA9IDA7Ci0JdTMyIG91dF9zaXplID0gMDsKLQotCWlmIChjZmctPm91dHB1dF9iaXRfZGVwdGgg PT0gQ0RNX0NEV05fT1VUUFVUXzEwQklUKQotCQlvcG1vZGUgJj0gfkJJVCg3KTsKLQllbHNlCi0J CW9wbW9kZSB8PSBCSVQoNyk7Ci0KLQkvKiBFTkFCTEUgRFdOU19IIGJpdCAqLwotCW9wbW9kZSB8 PSBCSVQoMSk7Ci0KLQlzd2l0Y2ggKGNmZy0+aF9jZHduX3R5cGUpIHsKLQljYXNlIENETV9DRFdO X0RJU0FCTEU6Ci0JCS8qIENMRUFSIE1FVEhPRF9IIGZpZWxkICovCi0JCW9wbW9kZSAmPSB+KDB4 MTgpOwotCQkvKiBDTEVBUiBEV05TX0ggYml0ICovCi0JCW9wbW9kZSAmPSB+QklUKDEpOwotCQli cmVhazsKLQljYXNlIENETV9DRFdOX1BJWEVMX0RST1A6Ci0JCS8qIENsZWFyIE1FVEhPRF9IIGZp ZWxkIChwaXhlbCBkcm9wIGlzIDApICovCi0JCW9wbW9kZSAmPSB+KDB4MTgpOwotCQlicmVhazsK LQljYXNlIENETV9DRFdOX0FWRzoKLQkJLyogQ2xlYXIgTUVUSE9EX0ggZmllbGQgKEF2ZXJhZ2Ug aXMgMHgxKSAqLwotCQlvcG1vZGUgJj0gfigweDE4KTsKLQkJb3Btb2RlIHw9ICgweDEgPDwgMHgz KTsKLQkJYnJlYWs7Ci0JY2FzZSBDRE1fQ0RXTl9DT1NJVEU6Ci0JCS8qIENsZWFyIE1FVEhPRF9I IGZpZWxkIChBdmVyYWdlIGlzIDB4MikgKi8KLQkJb3Btb2RlICY9IH4oMHgxOCk7Ci0JCW9wbW9k ZSB8PSAoMHgyIDw8IDB4Myk7Ci0JCS8qIENvLXNpdGUgaG9yaXpvbnRhbCBjb2VmZmljaWVudHMg Ki8KLQkJRFBVX1JFR19XUklURShjLCBDRE1fQ0RXTjJfQ09FRkZfQ09TSVRFX0hfMCwKLQkJCQlj b3NpdGVfaF9jb2VmZlswXSk7Ci0JCURQVV9SRUdfV1JJVEUoYywgQ0RNX0NEV04yX0NPRUZGX0NP U0lURV9IXzEsCi0JCQkJY29zaXRlX2hfY29lZmZbMV0pOwotCQlEUFVfUkVHX1dSSVRFKGMsIENE TV9DRFdOMl9DT0VGRl9DT1NJVEVfSF8yLAotCQkJCWNvc2l0ZV9oX2NvZWZmWzJdKTsKLQkJYnJl YWs7Ci0JY2FzZSBDRE1fQ0RXTl9PRkZTSVRFOgotCQkvKiBDbGVhciBNRVRIT0RfSCBmaWVsZCAo QXZlcmFnZSBpcyAweDMpICovCi0JCW9wbW9kZSAmPSB+KDB4MTgpOwotCQlvcG1vZGUgfD0gKDB4 MyA8PCAweDMpOwotCi0JCS8qIE9mZi1zaXRlIGhvcml6b250YWwgY29lZmZpY2llbnRzICovCi0J CURQVV9SRUdfV1JJVEUoYywgQ0RNX0NEV04yX0NPRUZGX09GRlNJVEVfSF8wLAotCQkJCW9mZnNp dGVfaF9jb2VmZlswXSk7Ci0JCURQVV9SRUdfV1JJVEUoYywgQ0RNX0NEV04yX0NPRUZGX09GRlNJ VEVfSF8xLAotCQkJCW9mZnNpdGVfaF9jb2VmZlsxXSk7Ci0JCURQVV9SRUdfV1JJVEUoYywgQ0RN X0NEV04yX0NPRUZGX09GRlNJVEVfSF8yLAotCQkJCW9mZnNpdGVfaF9jb2VmZlsyXSk7Ci0JCWJy ZWFrOwotCWRlZmF1bHQ6Ci0JCXByX2VycigiJXMgaW52YWxpZCBob3J6IGRvd24gc2FtcGxpbmcg dHlwZVxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBFTkFCTEUg RFdOU19WIGJpdCAqLwotCW9wbW9kZSB8PSBCSVQoMik7Ci0KLQlzd2l0Y2ggKGNmZy0+dl9jZHdu X3R5cGUpIHsKLQljYXNlIENETV9DRFdOX0RJU0FCTEU6Ci0JCS8qIENMRUFSIE1FVEhPRF9WIGZp ZWxkICovCi0JCW9wbW9kZSAmPSB+KDB4NjApOwotCQkvKiBDTEVBUiBEV05TX1YgYml0ICovCi0J CW9wbW9kZSAmPSB+QklUKDIpOwotCQlicmVhazsKLQljYXNlIENETV9DRFdOX1BJWEVMX0RST1A6 Ci0JCS8qIENsZWFyIE1FVEhPRF9WIGZpZWxkIChwaXhlbCBkcm9wIGlzIDApICovCi0JCW9wbW9k ZSAmPSB+KDB4NjApOwotCQlicmVhazsKLQljYXNlIENETV9DRFdOX0FWRzoKLQkJLyogQ2xlYXIg TUVUSE9EX1YgZmllbGQgKEF2ZXJhZ2UgaXMgMHgxKSAqLwotCQlvcG1vZGUgJj0gfigweDYwKTsK LQkJb3Btb2RlIHw9ICgweDEgPDwgMHg1KTsKLQkJYnJlYWs7Ci0JY2FzZSBDRE1fQ0RXTl9DT1NJ VEU6Ci0JCS8qIENsZWFyIE1FVEhPRF9WIGZpZWxkIChBdmVyYWdlIGlzIDB4MikgKi8KLQkJb3Bt b2RlICY9IH4oMHg2MCk7Ci0JCW9wbW9kZSB8PSAoMHgyIDw8IDB4NSk7Ci0JCS8qIENvLXNpdGUg dmVydGljYWwgY29lZmZpY2llbnRzICovCi0JCURQVV9SRUdfV1JJVEUoYywKLQkJCQlDRE1fQ0RX TjJfQ09FRkZfQ09TSVRFX1YsCi0JCQkJY29zaXRlX3ZfY29lZmZbMF0pOwotCQlicmVhazsKLQlj YXNlIENETV9DRFdOX09GRlNJVEU6Ci0JCS8qIENsZWFyIE1FVEhPRF9WIGZpZWxkIChBdmVyYWdl IGlzIDB4MykgKi8KLQkJb3Btb2RlICY9IH4oMHg2MCk7Ci0JCW9wbW9kZSB8PSAoMHgzIDw8IDB4 NSk7Ci0KLQkJLyogT2ZmLXNpdGUgdmVydGljYWwgY29lZmZpY2llbnRzICovCi0JCURQVV9SRUdf V1JJVEUoYywKLQkJCQlDRE1fQ0RXTjJfQ09FRkZfT0ZGU0lURV9WLAotCQkJCW9mZnNpdGVfdl9j b2VmZlswXSk7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQot CWlmIChjZmctPnZfY2R3bl90eXBlIHx8IGNmZy0+aF9jZHduX3R5cGUpCi0JCW9wbW9kZSB8PSBC SVQoMCk7IC8qIEVOIENEV04gbW9kdWxlICovCi0JZWxzZQotCQlvcG1vZGUgJj0gfkJJVCgwKTsK LQotCW91dF9zaXplID0gKGNmZy0+b3V0cHV0X3dpZHRoICYgMHhGRkZGKSB8Ci0JCSgoY2ZnLT5v dXRwdXRfaGVpZ2h0ICYgMHhGRkZGKSA8PCAxNik7Ci0JRFBVX1JFR19XUklURShjLCBDRE1fQ0RX TjJfT1VUX1NJWkUsIG91dF9zaXplKTsKLQlEUFVfUkVHX1dSSVRFKGMsIENETV9DRFdOMl9PUF9N T0RFLCBvcG1vZGUpOwotCURQVV9SRUdfV1JJVEUoYywgQ0RNX0NEV04yX0NMQU1QX09VVCwKLQkJ CSgoMHgzRkYgPDwgMTYpIHwgMHgwKSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBk cHVfaHdfY2RtX2VuYWJsZShzdHJ1Y3QgZHB1X2h3X2NkbSAqY3R4LAotCQlzdHJ1Y3QgZHB1X2h3 X2NkbV9jZmcgKmNkbSkKLXsKLQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjID0gJmN0eC0+ aHc7Ci0JY29uc3Qgc3RydWN0IGRwdV9mb3JtYXQgKmZtdCA9IGNkbS0+b3V0cHV0X2ZtdDsKLQlz dHJ1Y3QgY2RtX291dHB1dF9jZmcgY2RtX2NmZyA9IHsgMCB9OwotCXUzMiBvcG1vZGUgPSAwOwot CXUzMiBjc2MgPSAwOwotCi0JaWYgKCFEUFVfRk9STUFUX0lTX1lVVihmbXQpKQotCQlyZXR1cm4g LUVJTlZBTDsKLQotCWlmIChjZG0tPm91dHB1dF90eXBlID09IENETV9DRFdOX09VVFBVVF9IRE1J KSB7Ci0JCWlmIChmbXQtPmNocm9tYV9zYW1wbGUgIT0gRFBVX0NIUk9NQV9IMVYyKQotCQkJcmV0 dXJuIC1FSU5WQUw7IC8qdW5zdXBwb3J0ZWQgZm9ybWF0ICovCi0JCW9wbW9kZSA9IEJJVCgwKTsK LQkJb3Btb2RlIHw9IChmbXQtPmNocm9tYV9zYW1wbGUgPDwgMSk7Ci0JCWNkbV9jZmcuaW50Zl9l biA9IHRydWU7Ci0JfQotCi0JY3NjIHw9IEJJVCgyKTsKLQljc2MgJj0gfkJJVCgxKTsKLQljc2Mg fD0gQklUKDApOwotCi0JaWYgKGN0eC0+aHdfbWRwICYmIGN0eC0+aHdfbWRwLT5vcHMuc2V0dXBf Y2RtX291dHB1dCkKLQkJY3R4LT5od19tZHAtPm9wcy5zZXR1cF9jZG1fb3V0cHV0KGN0eC0+aHdf bWRwLCAmY2RtX2NmZyk7Ci0KLQlEUFVfUkVHX1dSSVRFKGMsIENETV9DU0NfMTBfT1BNT0RFLCBj c2MpOwotCURQVV9SRUdfV1JJVEUoYywgQ0RNX0hETUlfUEFDS19PUF9NT0RFLCBvcG1vZGUpOwot CXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkcHVfaHdfY2RtX2Rpc2FibGUoc3RydWN0IGRw dV9od19jZG0gKmN0eCkKLXsKLQlzdHJ1Y3QgY2RtX291dHB1dF9jZmcgY2RtX2NmZyA9IHsgMCB9 OwotCi0JaWYgKGN0eC0+aHdfbWRwICYmIGN0eC0+aHdfbWRwLT5vcHMuc2V0dXBfY2RtX291dHB1 dCkKLQkJY3R4LT5od19tZHAtPm9wcy5zZXR1cF9jZG1fb3V0cHV0KGN0eC0+aHdfbWRwLCAmY2Rt X2NmZyk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9zZXR1cF9jZG1fb3BzKHN0cnVjdCBkcHVfaHdfY2Rt X29wcyAqb3BzLAotCXVuc2lnbmVkIGxvbmcgZmVhdHVyZXMpCi17Ci0Jb3BzLT5zZXR1cF9jc2Nf ZGF0YSA9IGRwdV9od19jZG1fc2V0dXBfY3NjXzEwYml0OwotCW9wcy0+c2V0dXBfY2R3biA9IGRw dV9od19jZG1fc2V0dXBfY2R3bjsKLQlvcHMtPmVuYWJsZSA9IGRwdV9od19jZG1fZW5hYmxlOwot CW9wcy0+ZGlzYWJsZSA9IGRwdV9od19jZG1fZGlzYWJsZTsKLX0KLQotc3RhdGljIHN0cnVjdCBk cHVfaHdfYmxrX29wcyBkcHVfaHdfb3BzID0gewotCS5zdGFydCA9IE5VTEwsCi0JLnN0b3AgPSBO VUxMLAotfTsKLQotc3RydWN0IGRwdV9od19jZG0gKmRwdV9od19jZG1faW5pdChlbnVtIGRwdV9j ZG0gaWR4LAotCQl2b2lkIF9faW9tZW0gKmFkZHIsCi0JCXN0cnVjdCBkcHVfbWRzc19jZmcgKm0s Ci0JCXN0cnVjdCBkcHVfaHdfbWRwICpod19tZHApCi17Ci0Jc3RydWN0IGRwdV9od19jZG0gKmM7 Ci0Jc3RydWN0IGRwdV9jZG1fY2ZnICpjZmc7Ci0JaW50IHJjOwotCi0JYyA9IGt6YWxsb2Moc2l6 ZW9mKCpjKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFjKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKLQotCWNmZyA9IF9jZG1fb2Zmc2V0KGlkeCwgbSwgYWRkciwgJmMtPmh3KTsKLQlpZiAoSVNf RVJSX09SX05VTEwoY2ZnKSkgewotCQlrZnJlZShjKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZB TCk7Ci0JfQotCi0JYy0+aWR4ID0gaWR4OwotCWMtPmNhcHMgPSBjZmc7Ci0JX3NldHVwX2NkbV9v cHMoJmMtPm9wcywgYy0+Y2Fwcy0+ZmVhdHVyZXMpOwotCWMtPmh3X21kcCA9IGh3X21kcDsKLQot CXJjID0gZHB1X2h3X2Jsa19pbml0KCZjLT5iYXNlLCBEUFVfSFdfQkxLX0NETSwgaWR4LCAmZHB1 X2h3X29wcyk7Ci0JaWYgKHJjKSB7Ci0JCURQVV9FUlJPUigiZmFpbGVkIHRvIGluaXQgaHcgYmxr ICVkXG4iLCByYyk7Ci0JCWdvdG8gYmxrX2luaXRfZXJyb3I7Ci0JfQotCi0JLyoKLQkgKiBQZXJm b3JtIGFueSBkZWZhdWx0IGluaXRpYWxpemF0aW9uIGZvciB0aGUgY2hyb21hIGRvd24gbW9kdWxl Ci0JICogQHNldHVwIGRlZmF1bHQgY3NjIGNvZWZmaWNpZW50cwotCSAqLwotCWRwdV9od19jZG1f c2V0dXBfY3NjXzEwYml0KGMsICZyZ2IyeXV2X2NmZyk7Ci0KLQlyZXR1cm4gYzsKLQotYmxrX2lu aXRfZXJyb3I6Ci0Ja3pmcmVlKGMpOwotCi0JcmV0dXJuIEVSUl9QVFIocmMpOwotfQotCi12b2lk IGRwdV9od19jZG1fZGVzdHJveShzdHJ1Y3QgZHB1X2h3X2NkbSAqY2RtKQotewotCWlmIChjZG0p Ci0JCWRwdV9od19ibGtfZGVzdHJveSgmY2RtLT5iYXNlKTsKLQlrZnJlZShjZG0pOwotfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NkbS5oIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NkbS5oCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA1Y2NlYjFlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9od19jZG0uaAorKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0v KiBDb3B5cmlnaHQgKGMpIDIwMTUtMjAxOCwgVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFuZAotICogb25seSB2 ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0g KgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqLwotCi0jaWZuZGVmIF9EUFVfSFdfQ0RNX0gKLSNk ZWZpbmUgX0RQVV9IV19DRE1fSAotCi0jaW5jbHVkZSAiZHB1X2h3X21kc3MuaCIKLSNpbmNsdWRl ICJkcHVfaHdfdG9wLmgiCi0jaW5jbHVkZSAiZHB1X2h3X2Jsay5oIgotCi1zdHJ1Y3QgZHB1X2h3 X2NkbTsKLQotc3RydWN0IGRwdV9od19jZG1fY2ZnIHsKLQl1MzIgb3V0cHV0X3dpZHRoOwotCXUz MiBvdXRwdXRfaGVpZ2h0OwotCXUzMiBvdXRwdXRfYml0X2RlcHRoOwotCXUzMiBoX2Nkd25fdHlw ZTsKLQl1MzIgdl9jZHduX3R5cGU7Ci0JY29uc3Qgc3RydWN0IGRwdV9mb3JtYXQgKm91dHB1dF9m bXQ7Ci0JdTMyIG91dHB1dF90eXBlOwotCWludCBmbGFnczsKLX07Ci0KLWVudW0gZHB1X2h3X2Nk d25fdHlwZSB7Ci0JQ0RNX0NEV05fRElTQUJMRSwKLQlDRE1fQ0RXTl9QSVhFTF9EUk9QLAotCUNE TV9DRFdOX0FWRywKLQlDRE1fQ0RXTl9DT1NJVEUsCi0JQ0RNX0NEV05fT0ZGU0lURSwKLX07Ci0K LWVudW0gZHB1X2h3X2Nkd25fb3V0cHV0X3R5cGUgewotCUNETV9DRFdOX09VVFBVVF9IRE1JLAot CUNETV9DRFdOX09VVFBVVF9XQiwKLX07Ci0KLWVudW0gZHB1X2h3X2Nkd25fb3V0cHV0X2JpdF9k ZXB0aCB7Ci0JQ0RNX0NEV05fT1VUUFVUXzhCSVQsCi0JQ0RNX0NEV05fT1VUUFVUXzEwQklULAot fTsKLQotLyoqCi0gKiBzdHJ1Y3QgZHB1X2h3X2NkbV9vcHMgOiBJbnRlcmZhY2UgdG8gdGhlIGNo cm9tYSBkb3duIEh3IGRyaXZlciBmdW5jdGlvbnMKLSAqICAgICAgICAgICAgICAgICAgICAgICAg IEFzc3VtcHRpb24gaXMgdGhlc2UgZnVuY3Rpb25zIHdpbGwgYmUgY2FsbGVkIGFmdGVyCi0gKiAg ICAgICAgICAgICAgICAgICAgICAgICBjbG9ja3MgYXJlIGVuYWJsZWQKLSAqICBAc2V0dXBfY3Nj OiAgICAgICAgICAgIFByb2dyYW1zIHRoZSBjc2MgbWF0cml4Ci0gKiAgQHNldHVwX2Nkd246ICAg ICAgICAgICBTZXRzIHVwIHRoZSBjaHJvbWEgZG93biBzdWIgbW9kdWxlCi0gKiAgQGVuYWJsZTog ICAgICAgICAgICAgICBFbmFibGVzIHRoZSBvdXRwdXQgdG8gaW50ZXJmYWNlIGFuZCBwcm9ncmFt cyB0aGUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCBwYWNrZXIKLSAqICBAZGlz YWJsZTogICAgICAgICAgICAgIFB1dHMgdGhlIGNkbSBpbiBieXBhc3MgbW9kZQotICovCi1zdHJ1 Y3QgZHB1X2h3X2NkbV9vcHMgewotCS8qKgotCSAqIFByb2dyYW1zIHRoZSBDU0MgbWF0cml4IGZv ciBjb252ZXJzaW9uIGZyb20gUkdCIHNwYWNlIHRvIFlVViBzcGFjZSwKLQkgKiBpdCBpcyBvcHRp b25hbCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gYXMgdGhpcyBtYXRyaXggaXMgYXV0b21hdGljYWxs eQotCSAqIHNldCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIHVzZXIgc2hvdWxkIGNhbGwgdGhpcyBp ZiBpdCB3YW50cwotCSAqIHRvIHByb2dyYW0gYSBkaWZmZXJlbnQgbWF0cml4IHRoYW4gZGVmYXVs dCBtYXRyaXguCi0JICogQGNkbTogICAgICAgICAgUG9pbnRlciB0byB0aGUgY2hyb21hIGRvd24g Y29udGV4dCBzdHJ1Y3R1cmUKLQkgKiBAZGF0YSAgICAgICAgICBQb2ludGVyIHRvIENTQyBjb25m aWd1cmF0aW9uIGRhdGEKLQkgKiByZXR1cm46ICAgICAgICAwIGlmIHN1Y2Nlc3M7IGVycm9yIGNv ZGUgb3RoZXJ3aXNlCi0JICovCi0JaW50ICgqc2V0dXBfY3NjX2RhdGEpKHN0cnVjdCBkcHVfaHdf Y2RtICpjZG0sCi0JCQlzdHJ1Y3QgZHB1X2NzY19jZmcgKmRhdGEpOwotCi0JLyoqCi0JICogUHJv Z3JhbXMgdGhlIENocm9tYSBkb3duc2FtcGxlIHBhcnQuCi0JICogQGNkbSAgICAgICAgIFBvaW50 ZXIgdG8gY2hyb21hIGRvd24gY29udGV4dAotCSAqLwotCWludCAoKnNldHVwX2Nkd24pKHN0cnVj dCBkcHVfaHdfY2RtICpjZG0sCi0Jc3RydWN0IGRwdV9od19jZG1fY2ZnICpjZmcpOwotCi0JLyoq Ci0JICogRW5hYmxlIHRoZSBDRE0gbW9kdWxlCi0JICogQGNkbSAgICAgICAgIFBvaW50ZXIgdG8g Y2hyb21hIGRvd24gY29udGV4dAotCSAqLwotCWludCAoKmVuYWJsZSkoc3RydWN0IGRwdV9od19j ZG0gKmNkbSwKLQlzdHJ1Y3QgZHB1X2h3X2NkbV9jZmcgKmNmZyk7Ci0KLQkvKioKLQkgKiBEaXNh YmxlIHRoZSBDRE0gbW9kdWxlCi0JICogQGNkbSAgICAgICAgIFBvaW50ZXIgdG8gY2hyb21hIGRv d24gY29udGV4dAotCSAqLwotCXZvaWQgKCpkaXNhYmxlKShzdHJ1Y3QgZHB1X2h3X2NkbSAqY2Rt KTsKLX07Ci0KLXN0cnVjdCBkcHVfaHdfY2RtIHsKLQlzdHJ1Y3QgZHB1X2h3X2JsayBiYXNlOwot CXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgaHc7Ci0KLQkvKiBjaHJvbWEgZG93biAqLwotCWNv bnN0IHN0cnVjdCBkcHVfY2RtX2NmZyAqY2FwczsKLQllbnVtICBkcHVfY2RtICBpZHg7Ci0KLQkv KiBtZHAgdG9wIGh3IGRyaXZlciAqLwotCXN0cnVjdCBkcHVfaHdfbWRwICpod19tZHA7Ci0KLQkv KiBvcHMgKi8KLQlzdHJ1Y3QgZHB1X2h3X2NkbV9vcHMgb3BzOwotfTsKLQotLyoqCi0gKiBkcHVf aHdfY2RtIC0gY29udmVydCBiYXNlIG9iamVjdCBkcHVfaHdfYmFzZSB0byBjb250YWluZXIKLSAq IEBodzogUG9pbnRlciB0byBiYXNlIGhhcmR3YXJlIGJsb2NrCi0gKiByZXR1cm46IFBvaW50ZXIg dG8gaGFyZHdhcmUgYmxvY2sgY29udGFpbmVyCi0gKi8KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGRw dV9od19jZG0gKnRvX2RwdV9od19jZG0oc3RydWN0IGRwdV9od19ibGsgKmh3KQotewotCXJldHVy biBjb250YWluZXJfb2YoaHcsIHN0cnVjdCBkcHVfaHdfY2RtLCBiYXNlKTsKLX0KLQotLyoqCi0g KiBkcHVfaHdfY2RtX2luaXQgLSBpbml0aWFsaXplcyB0aGUgY2RtIGh3IGRyaXZlciBvYmplY3Qu Ci0gKiBzaG91bGQgYmUgY2FsbGVkIG9uY2UgYmVmb3JlIGFjY2Vzc2luZyBldmVyeSBjZG0uCi0g KiBAaWR4OiAgY2RtIGluZGV4IGZvciB3aGljaCBkcml2ZXIgb2JqZWN0IGlzIHJlcXVpcmVkCi0g KiBAYWRkcjogbWFwcGVkIHJlZ2lzdGVyIGlvIGFkZHJlc3Mgb2YgTURQCi0gKiBAbSA6ICAgcG9p bnRlciB0byBtZHNzIGNhdGFsb2cgZGF0YQotICogQGh3X21kcDogIHBvaW50ZXIgdG8gbWRwIHRv cCBodyBkcml2ZXIgb2JqZWN0Ci0gKi8KLXN0cnVjdCBkcHVfaHdfY2RtICpkcHVfaHdfY2RtX2lu aXQoZW51bSBkcHVfY2RtIGlkeCwKLQkJdm9pZCBfX2lvbWVtICphZGRyLAotCQlzdHJ1Y3QgZHB1 X21kc3NfY2ZnICptLAotCQlzdHJ1Y3QgZHB1X2h3X21kcCAqaHdfbWRwKTsKLQotLyoqCi0gKiBk cHVfaHdfY2RtX2Rlc3Ryb3kgLSBkZXN0cm95cyBDRE0gZHJpdmVyIGNvbnRleHQKLSAqIEBjZG06 ICAgcG9pbnRlciB0byBDRE0gZHJpdmVyIGNvbnRleHQKLSAqLwotdm9pZCBkcHVfaHdfY2RtX2Rl c3Ryb3koc3RydWN0IGRwdV9od19jZG0gKmNkbSk7Ci0KLSNlbmRpZiAvKl9EUFVfSFdfQ0RNX0gg Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwu YyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwuYwppbmRleCAwNmJl N2NmLi5iMzk0YTE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfaHdfY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2N0 bC5jCkBAIC0yMjQsMTkgKzIyNCw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRwdV9od19jdGxfZ2V0 X2JpdG1hc2tfaW50ZihzdHJ1Y3QgZHB1X2h3X2N0bCAqY3R4LAogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW5saW5lIGludCBkcHVfaHdfY3RsX2dldF9iaXRtYXNrX2NkbShzdHJ1Y3QgZHB1X2h3 X2N0bCAqY3R4LAotCQl1MzIgKmZsdXNoYml0cywgZW51bSBkcHVfY2RtIGNkbSkKLXsKLQlzd2l0 Y2ggKGNkbSkgewotCWNhc2UgQ0RNXzA6Ci0JCSpmbHVzaGJpdHMgfD0gQklUKDI2KTsKLQkJYnJl YWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCXJldHVybiAwOwotfQotCiBz dGF0aWMgdTMyIGRwdV9od19jdGxfcG9sbF9yZXNldF9zdGF0dXMoc3RydWN0IGRwdV9od19jdGwg KmN0eCwgdTMyIHRpbWVvdXRfdXMpCiB7CiAJc3RydWN0IGRwdV9od19ibGtfcmVnX21hcCAqYyA9 ICZjdHgtPmh3OwpAQCAtNDg1LDcgKzQ3Miw2IEBAIHN0YXRpYyB2b2lkIF9zZXR1cF9jdGxfb3Bz KHN0cnVjdCBkcHVfaHdfY3RsX29wcyAqb3BzLAogCW9wcy0+Z2V0X2JpdG1hc2tfc3NwcCA9IGRw dV9od19jdGxfZ2V0X2JpdG1hc2tfc3NwcDsKIAlvcHMtPmdldF9iaXRtYXNrX21peGVyID0gZHB1 X2h3X2N0bF9nZXRfYml0bWFza19taXhlcjsKIAlvcHMtPmdldF9iaXRtYXNrX2ludGYgPSBkcHVf aHdfY3RsX2dldF9iaXRtYXNrX2ludGY7Ci0Jb3BzLT5nZXRfYml0bWFza19jZG0gPSBkcHVfaHdf Y3RsX2dldF9iaXRtYXNrX2NkbTsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHB1X2h3X2Jsa19vcHMg ZHB1X2h3X29wcyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9od19jdGwuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwu aAppbmRleCBjNjZhNzFmLi42ZjMxM2ZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfY3RsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2h3X2N0bC5oCkBAIC0xNDIsMTAgKzE0Miw2IEBAIHN0cnVjdCBkcHVfaHdfY3RsX29w cyB7CiAJCXUzMiAqZmx1c2hiaXRzLAogCQllbnVtIGRwdV9pbnRmIGJsayk7CiAKLQlpbnQgKCpn ZXRfYml0bWFza19jZG0pKHN0cnVjdCBkcHVfaHdfY3RsICpjdHgsCi0JCXUzMiAqZmx1c2hiaXRz LAotCQllbnVtIGRwdV9jZG0gYmxrKTsKLQogCS8qKgogCSAqIFNldCBhbGwgYmxlbmQgc3RhZ2Vz IHRvIGRpc2FibGVkCiAJICogQGN0eCAgICAgICA6IGN0bCBwYXRoIGN0eCBwb2ludGVyCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfdG9wLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfdG9wLmMKaW5kZXggZGIyNzk4ZS4uYjg3 ODEyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3Rv cC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od190b3AuYwpAQCAt OTgsMjMgKzk4LDYgQEAgc3RhdGljIHZvaWQgZHB1X2h3X3NldHVwX3NwbGl0X3BpcGUoc3RydWN0 IGRwdV9od19tZHAgKm1kcCwKIAlEUFVfUkVHX1dSSVRFKGMsIFNQTElUX0RJU1BMQVlfRU4sIGNm Zy0+ZW4gJiAweDEpOwogfQogCi1zdGF0aWMgdm9pZCBkcHVfaHdfc2V0dXBfY2RtX291dHB1dChz dHJ1Y3QgZHB1X2h3X21kcCAqbWRwLAotCQlzdHJ1Y3QgY2RtX291dHB1dF9jZmcgKmNmZykKLXsK LQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjOwotCXUzMiBvdXRfY3RsID0gMDsKLQotCWlm ICghbWRwIHx8ICFjZmcpCi0JCXJldHVybjsKLQotCWMgPSAmbWRwLT5odzsKLQotCWlmIChjZmct PmludGZfZW4pCi0JCW91dF9jdGwgfD0gQklUKDE5KTsKLQotCURQVV9SRUdfV1JJVEUoYywgTURQ X09VVF9DVExfMCwgb3V0X2N0bCk7Ci19Ci0KIHN0YXRpYyBib29sIGRwdV9od19zZXR1cF9jbGtf Zm9yY2VfY3RybChzdHJ1Y3QgZHB1X2h3X21kcCAqbWRwLAogCQllbnVtIGRwdV9jbGtfY3RybF90 eXBlIGNsa19jdHJsLCBib29sIGVuYWJsZSkKIHsKQEAgLTMwNyw3ICsyOTAsNiBAQCBzdGF0aWMg dm9pZCBfc2V0dXBfbWRwX29wcyhzdHJ1Y3QgZHB1X2h3X21kcF9vcHMgKm9wcywKIAkJdW5zaWdu ZWQgbG9uZyBjYXApCiB7CiAJb3BzLT5zZXR1cF9zcGxpdF9waXBlID0gZHB1X2h3X3NldHVwX3Nw bGl0X3BpcGU7Ci0Jb3BzLT5zZXR1cF9jZG1fb3V0cHV0ID0gZHB1X2h3X3NldHVwX2NkbV9vdXRw dXQ7CiAJb3BzLT5zZXR1cF9jbGtfZm9yY2VfY3RybCA9IGRwdV9od19zZXR1cF9jbGtfZm9yY2Vf Y3RybDsKIAlvcHMtPmdldF9kYW5nZXJfc3RhdHVzID0gZHB1X2h3X2dldF9kYW5nZXJfc3RhdHVz OwogCW9wcy0+c2V0dXBfdnN5bmNfc291cmNlID0gZHB1X2h3X3NldHVwX3ZzeW5jX3NvdXJjZTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od190b3AuaCBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od190b3AuaAppbmRleCA4OTk5MjVh Li4xOTJlMzM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf aHdfdG9wLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3RvcC5o CkBAIC01MiwxNCArNTIsNiBAQCBzdHJ1Y3Qgc3BsaXRfcGlwZV9jZmcgewogfTsKIAogLyoqCi0g KiBzdHJ1Y3QgY2RtX291dHB1dF9jZmc6IG91dHB1dCBjb25maWd1cmF0aW9uIGZvciBjZG0KLSAq IEBpbnRmX2VuICAgOiBlbmFibGUvZGlzYWJsZSBpbnRlcmZhY2Ugb3V0cHV0Ci0gKi8KLXN0cnVj dCBjZG1fb3V0cHV0X2NmZyB7Ci0JYm9vbCBpbnRmX2VuOwotfTsKLQotLyoqCiAgKiBzdHJ1Y3Qg ZHB1X2Rhbmdlcl9zYWZlX3N0YXR1czogZGFuZ2VyIGFuZCBzYWZlIHN0YXR1cyBzaWduYWxzCiAg KiBAbWRwOiB0b3AgbGV2ZWwgc3RhdHVzCiAgKiBAc3NwcDogc291cmNlIHBpcGUgc3RhdHVzCkBA IC04OSw3ICs4MSw2IEBAIHN0cnVjdCBkcHVfdnN5bmNfc291cmNlX2NmZyB7CiAgKiBBc3N1bXB0 aW9uIGlzIHRoZXNlIGZ1bmN0aW9ucyB3aWxsIGJlIGNhbGxlZCBhZnRlciBjbG9ja3MgYXJlIGVu YWJsZWQuCiAgKiBAc2V0dXBfc3BsaXRfcGlwZSA6IFByb2dyYW1zIHRoZSBwaXBlIGNvbnRyb2wg cmVnaXN0ZXJzCiAgKiBAc2V0dXBfcHBfc3BsaXQgOiBQcm9ncmFtcyB0aGUgcHAgc3BsaXQgY29u dHJvbCByZWdpc3RlcnMKLSAqIEBzZXR1cF9jZG1fb3V0cHV0IDogcHJvZ3JhbXMgY2RtIGNvbnRy b2wKICAqIEBzZXR1cF90cmFmZmljX3NoYXBlciA6IHByb2dyYW1zIHRyYWZmaWMgc2hhcGVyIGNv bnRyb2wKICAqLwogc3RydWN0IGRwdV9od19tZHBfb3BzIHsKQEAgLTEwMiwxNCArOTMsNiBAQCBz dHJ1Y3QgZHB1X2h3X21kcF9vcHMgewogCQkJc3RydWN0IHNwbGl0X3BpcGVfY2ZnICpwKTsKIAog CS8qKgotCSAqIHNldHVwX2NkbV9vdXRwdXQoKSA6IFNldHVwIHNlbGVjdGlvbiBjb250cm9sIG9m IHRoZSBjZG0gZGF0YSBwYXRoCi0JICogQG1kcCAgOiBtZHAgdG9wIGNvbnRleHQgZHJpdmVyCi0J ICogQGNmZyAgOiBjZG0gb3V0cHV0IGNvbmZpZ3VyYXRpb24KLQkgKi8KLQl2b2lkICgqc2V0dXBf Y2RtX291dHB1dCkoc3RydWN0IGRwdV9od19tZHAgKm1kcCwKLQkJCXN0cnVjdCBjZG1fb3V0cHV0 X2NmZyAqY2ZnKTsKLQotCS8qKgogCSAqIHNldHVwX3RyYWZmaWNfc2hhcGVyKCkgOiBTZXR1cCB0 cmFmZmljIHNoYXBlciBjb250cm9sCiAJICogQG1kcCAgOiBtZHAgdG9wIGNvbnRleHQgZHJpdmVy CiAJICogQGNmZyAgOiB0cmFmZmljIHNoYXBlciBjb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9ybS5jCmluZGV4IDM4OGFlNjUuLmUwOGIzYmQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCkBAIC0xNiw3ICsxNiw2IEBACiAjaW5jbHVkZSAi ZHB1X2ttcy5oIgogI2luY2x1ZGUgImRwdV9od19sbS5oIgogI2luY2x1ZGUgImRwdV9od19jdGwu aCIKLSNpbmNsdWRlICJkcHVfaHdfY2RtLmgiCiAjaW5jbHVkZSAiZHB1X2h3X3Bpbmdwb25nLmgi CiAjaW5jbHVkZSAiZHB1X2h3X2ludGYuaCIKICNpbmNsdWRlICJkcHVfZW5jb2Rlci5oIgpAQCAt MjE0LDkgKzIxMyw2IEBAIHN0YXRpYyB2b2lkIF9kcHVfcm1faHdfZGVzdHJveShlbnVtIGRwdV9o d19ibGtfdHlwZSB0eXBlLCB2b2lkICpodykKIAljYXNlIERQVV9IV19CTEtfQ1RMOgogCQlkcHVf aHdfY3RsX2Rlc3Ryb3koaHcpOwogCQlicmVhazsKLQljYXNlIERQVV9IV19CTEtfQ0RNOgotCQlk cHVfaHdfY2RtX2Rlc3Ryb3koaHcpOwotCQlicmVhazsKIAljYXNlIERQVV9IV19CTEtfUElOR1BP Tkc6CiAJCWRwdV9od19waW5ncG9uZ19kZXN0cm95KGh3KTsKIAkJYnJlYWs7CkBAIC0yOTAsOSAr Mjg2LDYgQEAgc3RhdGljIGludCBfZHB1X3JtX2h3X2Jsa19jcmVhdGUoCiAJY2FzZSBEUFVfSFdf QkxLX0NUTDoKIAkJaHcgPSBkcHVfaHdfY3RsX2luaXQoaWQsIG1taW8sIGNhdCk7CiAJCWJyZWFr OwotCWNhc2UgRFBVX0hXX0JMS19DRE06Ci0JCWh3ID0gZHB1X2h3X2NkbV9pbml0KGlkLCBtbWlv LCBjYXQsIGh3X21kcCk7Ci0JCWJyZWFrOwogCWNhc2UgRFBVX0hXX0JMS19QSU5HUE9ORzoKIAkJ aHcgPSBkcHVfaHdfcGluZ3BvbmdfaW5pdChpZCwgbW1pbywgY2F0KTsKIAkJYnJlYWs7CkBAIC00 MjMsMTUgKzQxNiw2IEBAIGludCBkcHVfcm1faW5pdChzdHJ1Y3QgZHB1X3JtICpybSwKIAkJfQog CX0KIAotCWZvciAoaSA9IDA7IGkgPCBjYXQtPmNkbV9jb3VudDsgaSsrKSB7Ci0JCXJjID0gX2Rw dV9ybV9od19ibGtfY3JlYXRlKHJtLCBjYXQsIG1taW8sIERQVV9IV19CTEtfQ0RNLAotCQkJCWNh dC0+Y2RtW2ldLmlkLCAmY2F0LT5jZG1baV0pOwotCQlpZiAocmMpIHsKLQkJCURQVV9FUlJPUigi ZmFpbGVkOiBjZG0gaHcgbm90IGF2YWlsYWJsZVxuIik7Ci0JCQlnb3RvIGZhaWw7Ci0JCX0KLQl9 Ci0KIAlyZXR1cm4gMDsKIAogZmFpbDoKQEAgLTYyOCw1NSArNjEyLDExIEBAIHN0YXRpYyBpbnQg X2RwdV9ybV9yZXNlcnZlX2N0bHMoCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgX2RwdV9y bV9yZXNlcnZlX2NkbSgKLQkJc3RydWN0IGRwdV9ybSAqcm0sCi0JCXN0cnVjdCBkcHVfcm1fcnN2 cCAqcnN2cCwKLQkJdWludDMyX3QgaWQsCi0JCWVudW0gZHB1X2h3X2Jsa190eXBlIHR5cGUpCi17 Ci0Jc3RydWN0IGRwdV9ybV9od19pdGVyIGl0ZXI7Ci0KLQlEUk1fREVCVUdfS01TKCJ0eXBlICVk IGlkICVkXG4iLCB0eXBlLCBpZCk7Ci0KLQlkcHVfcm1faW5pdF9od19pdGVyKCZpdGVyLCAwLCBE UFVfSFdfQkxLX0NETSk7Ci0Jd2hpbGUgKF9kcHVfcm1fZ2V0X2h3X2xvY2tlZChybSwgJml0ZXIp KSB7Ci0JCWNvbnN0IHN0cnVjdCBkcHVfaHdfY2RtICpjZG0gPSB0b19kcHVfaHdfY2RtKGl0ZXIu YmxrLT5odyk7Ci0JCWNvbnN0IHN0cnVjdCBkcHVfY2RtX2NmZyAqY2FwcyA9IGNkbS0+Y2FwczsK LQkJYm9vbCBtYXRjaCA9IGZhbHNlOwotCi0JCWlmIChSRVNFUlZFRF9CWV9PVEhFUihpdGVyLmJs aywgcnN2cCkpCi0JCQljb250aW51ZTsKLQotCQlpZiAodHlwZSA9PSBEUFVfSFdfQkxLX0lOVEYg JiYgaWQgIT0gSU5URl9NQVgpCi0JCQltYXRjaCA9IHRlc3RfYml0KGlkLCAmY2Fwcy0+aW50Zl9j b25uZWN0KTsKLQotCQlEUk1fREVCVUdfS01TKCJpdGVyOiB0eXBlOiVkIGlkOiVkIGVuYzolZCBj ZG06JWx1IG1hdGNoOiVkXG4iLAotCQkJICAgICAgaXRlci5ibGstPnR5cGUsIGl0ZXIuYmxrLT5p ZCwgcnN2cC0+ZW5jX2lkLAotCQkJICAgICAgY2Fwcy0+aW50Zl9jb25uZWN0LCBtYXRjaCk7Ci0K LQkJaWYgKCFtYXRjaCkKLQkJCWNvbnRpbnVlOwotCi0JCXRyYWNlX2RwdV9ybV9yZXNlcnZlX2Nk bShpdGVyLmJsay0+aWQsIGl0ZXIuYmxrLT50eXBlLAotCQkJCQkgcnN2cC0+ZW5jX2lkKTsKLQkJ aXRlci5ibGstPnJzdnBfbnh0ID0gcnN2cDsKLQkJYnJlYWs7Ci0JfQotCi0JaWYgKCFpdGVyLmh3 KSB7Ci0JCURQVV9FUlJPUigiY291bGRuJ3QgcmVzZXJ2ZSBjZG0gZm9yIHR5cGUgJWQgaWQgJWRc biIsIHR5cGUsIGlkKTsKLQkJcmV0dXJuIC1FTkFWQUlMOwotCX0KLQotCXJldHVybiAwOwotfQot CiBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9pbnRmKAogCQlzdHJ1Y3QgZHB1X3JtICpybSwK IAkJc3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwLAogCQl1aW50MzJfdCBpZCwKLQkJZW51bSBkcHVf aHdfYmxrX3R5cGUgdHlwZSwKLQkJYm9vbCBuZWVkc19jZG0pCisJCWVudW0gZHB1X2h3X2Jsa190 eXBlIHR5cGUpCiB7CiAJc3RydWN0IGRwdV9ybV9od19pdGVyIGl0ZXI7CiAJaW50IHJldCA9IDA7 CkBAIC03MDQsOSArNjQ0LDYgQEAgc3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVfaW50ZigKIAkJ cmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKG5lZWRzX2NkbSkKLQkJcmV0ID0gX2RwdV9ybV9y ZXNlcnZlX2NkbShybSwgcnN2cCwgaWQsIHR5cGUpOwotCiAJcmV0dXJuIHJldDsKIH0KIApAQCAt NzIzLDcgKzY2MCw3IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2ludGZfcmVsYXRlZF9o dygKIAkJCWNvbnRpbnVlOwogCQlpZCA9IGkgKyBJTlRGXzA7CiAJCXJldCA9IF9kcHVfcm1fcmVz ZXJ2ZV9pbnRmKHJtLCByc3ZwLCBpZCwKLQkJCQlEUFVfSFdfQkxLX0lOVEYsIGh3X3Jlcy0+bmVl ZHNfY2RtKTsKKwkJCQlEUFVfSFdfQkxLX0lOVEYpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJl dDsKIAl9CkBAIC03NjksNyArNzA2LDYgQEAgc3RhdGljIGludCBfZHB1X3JtX21ha2VfbmV4dF9y c3ZwKAogCQlyZXR1cm4gcmV0OwogCX0KIAotCS8qIEFzc2lnbiBJTlRGcyBhbmQgYmxrcyB3aG9z ZSB1c2FnZSBpcyB0aWVkIHRvIHRoZW06IENUTCAmIENETSAqLwogCXJldCA9IF9kcHVfcm1fcmVz ZXJ2ZV9pbnRmX3JlbGF0ZWRfaHcocm0sIHJzdnAsICZyZXFzLT5od19yZXMpOwogCWlmIChyZXQp CiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5o CmluZGV4IGFlMGNhNTAuLjBiZTUxZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV90cmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV90cmFjZS5oCkBAIC04NjgsMTAgKzg2OCw2IEBACiAJVFBfcHJpbnRrKCJpZDolZCB0eXBl OiVkIGVuY19pZDoldSIsIF9fZW50cnktPmlkLCBfX2VudHJ5LT50eXBlLAogCQkgIF9fZW50cnkt PmVuY19pZCkKICk7Ci1ERUZJTkVfRVZFTlQoZHB1X3JtX2l0ZXJfdGVtcGxhdGUsIGRwdV9ybV9y ZXNlcnZlX2NkbSwKLQlUUF9QUk9UTyh1aW50MzJfdCBpZCwgZW51bSBkcHVfaHdfYmxrX3R5cGUg dHlwZSwgdWludDMyX3QgZW5jX2lkKSwKLQlUUF9BUkdTKGlkLCB0eXBlLCBlbmNfaWQpCi0pOwog REVGSU5FX0VWRU5UKGRwdV9ybV9pdGVyX3RlbXBsYXRlLCBkcHVfcm1fcmVzZXJ2ZV9pbnRmLAog CVRQX1BST1RPKHVpbnQzMl90IGlkLCBlbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlLCB1aW50MzJf dCBlbmNfaWQpLAogCVRQX0FSR1MoaWQsIHR5cGUsIGVuY19pZCkKLS0gClRoZSBRdWFsY29tbSBJ bm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9y dW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxp c3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=