From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Viktor=20Novotn=C3=BD?= Subject: [PATCH 3/5] dri/nouveau: nv10: Use rules-ng-ng headers Date: Mon, 1 Nov 2010 01:30:48 +0100 Message-ID: <1288571454-8151-4-git-send-email-noviktor@seznam.cz> References: <1288571454-8151-1-git-send-email-noviktor@seznam.cz> Reply-To: nouveau Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1288571454-8151-1-git-send-email-noviktor-9Vj9tDbzfuSlVyrhU4qvOw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: nouveau-bounces+gcfxn-nouveau=m.gmane.org-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Errors-To: nouveau-bounces+gcfxn-nouveau=m.gmane.org-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org To: nouveau List-Id: nouveau.vger.kernel.org RnJvbTogVmlrdG9yIE5vdm90bsO9IDxub3Zpa3RvckBzZXpuYW0uY3o+CgotLS0KIHNyYy9tZXNh L2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9jb250ZXh0LmMgICAgICAgfCAgMTI3ICsrKysrKysr KysrLS0tLS0tLS0tLQogc3JjL21lc2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX3JlbmRlci5j ICAgICAgICB8ICAgNDIgKysrKy0tLS0KIHNyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYx MF9zdGF0ZV9mYi5jICAgICAgfCAgIDMzICsrKy0tLQogc3JjL21lc2EvZHJpdmVycy9kcmkvbm91 dmVhdS9udjEwX3N0YXRlX2ZyYWcuYyAgICB8ICAgMzYgKysrLS0tCiBzcmMvbWVzYS9kcml2ZXJz L2RyaS9ub3V2ZWF1L252MTBfc3RhdGVfcG9seWdvbi5jIHwgICAzMiArKystLS0KIHNyYy9tZXNh L2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0ZV9yYXN0ZXIuYyAgfCAgIDM4ICsrKy0tLQog c3JjL21lc2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX3N0YXRlX3RleC5jICAgICB8ICAgNjQg KysrKystLS0tLS0KIHNyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0ZV90bmwu YyAgICAgfCAgIDgyICsrKysrKystLS0tLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDIyNiBpbnNlcnRp b25zKCspLCAyMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL21lc2EvZHJpdmVycy9k cmkvbm91dmVhdS9udjEwX2NvbnRleHQuYyBiL3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUv bnYxMF9jb250ZXh0LmMKaW5kZXggNzhiZTQwMS4uZjkwZmFhMCAxMDA2NDQKLS0tIGEvc3JjL21l c2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX2NvbnRleHQuYworKysgYi9zcmMvbWVzYS9kcml2 ZXJzL2RyaS9ub3V2ZWF1L252MTBfY29udGV4dC5jCkBAIC0yOSw3ICsyOSw4IEBACiAjaW5jbHVk ZSAibm91dmVhdV9jb250ZXh0LmgiCiAjaW5jbHVkZSAibm91dmVhdV9mYm8uaCIKICNpbmNsdWRl ICJub3V2ZWF1X3V0aWwuaCIKLSNpbmNsdWRlICJub3V2ZWF1X2NsYXNzLmgiCisjaW5jbHVkZSAi bnZfb2JqZWN0LnhtbC5oIgorI2luY2x1ZGUgIm52MTBfM2QueG1sLmgiCiAjaW5jbHVkZSAibnYw NF9kcml2ZXIuaCIKICNpbmNsdWRlICJudjEwX2RyaXZlci5oIgogCkBAIC0xNTcsOSArMTU4LDkg QEAgbnYxN196Y2xlYXIoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgR0xiaXRmaWVsZCAqYnVmZmVy cykKIAkJbmZiLT5iYXNlLl9EZXB0aEJ1ZmZlci0+V3JhcHBlZCktPnN1cmZhY2U7CiAKIAkvKiBD bGVhciB0aGUgaGllcmFyY2hpY2FsIGRlcHRoIGJ1ZmZlciAqLwotCUJFR0lOX1JJTkcoY2hhbiwg Y2Vsc2l1cywgTlYxN1RDTF9MTUFfREVQVEhfRklMTF9WQUxVRSwgMSk7CisJQkVHSU5fUklORyhj aGFuLCBjZWxzaXVzLCBOVjE3XzNEX0xNQV9ERVBUSF9GSUxMX1ZBTFVFLCAxKTsKIAlPVVRfUklO RyhjaGFuLCBwYWNrX3pzX2Yocy0+Zm9ybWF0LCBjdHgtPkRlcHRoLkNsZWFyLCAwKSk7Ci0JQkVH SU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjE3VENMX0xNQV9ERVBUSF9CVUZGRVJfQ0xFQVIsIDEp OworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxN18zRF9MTUFfREVQVEhfQlVGRkVSX0NM RUFSLCAxKTsKIAlPVVRfUklORyhjaGFuLCAxKTsKIAogCS8qIE1hcmsgdGhlIGRlcHRoIGJ1ZmZl ciBhcyBjbGVhcmVkICovCkBAIC0yMDEsMzMgKzIwMiwzMyBAQCBudjEwX2h3Y3R4X2luaXQoc3Ry dWN0IGdsX2NvbnRleHQgKmN0eCkKIAlzdHJ1Y3Qgbm91dmVhdV9od19zdGF0ZSAqaHcgPSAmdG9f bm91dmVhdV9jb250ZXh0KGN0eCktPmh3OwogCWludCBpOwogCi0JQkVHSU5fUklORyhjaGFuLCBj ZWxzaXVzLCBOVjEwVENMX0RNQV9OT1RJRlksIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMF8zRF9ETUFfTk9USUZZLCAxKTsKIAlPVVRfUklORyhjaGFuLCBody0+bnRmeS0+aGFu ZGxlKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9ETUFfSU5fTUVNT1JZ MCwgMyk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX0RNQV9URVhUVVJFMCwg Myk7CiAJT1VUX1JJTkcoY2hhbiwgY2hhbi0+dnJhbS0+aGFuZGxlKTsKIAlPVVRfUklORyhjaGFu LCBjaGFuLT5nYXJ0LT5oYW5kbGUpOwogCU9VVF9SSU5HKGNoYW4sIGNoYW4tPmdhcnQtPmhhbmRs ZSk7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0RNQV9JTl9NRU1PUlkyLCAy KTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfRE1BX0NPTE9SLCAyKTsKIAlP VVRfUklORyhjaGFuLCBjaGFuLT52cmFtLT5oYW5kbGUpOwogCU9VVF9SSU5HKGNoYW4sIGNoYW4t PnZyYW0tPmhhbmRsZSk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfTk9Q LCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMDRfR1JBUEhfTk9QLCAxKTsKIAlP VVRfUklORyhjaGFuLCAwKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9S VF9IT1JJWiwgMik7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1JUX0hPUkla LCAyKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKIAotCUJFR0lO X1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9WSUVXUE9SVF9DTElQX0hPUklaKDApLCAxKTsK KwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVklFV1BPUlRfQ0xJUF9IT1JJWigw KSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgMHg3ZmYgPDwgMTYgfCAweDgwMCk7Ci0JQkVHSU5fUklO RyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1ZJRVdQT1JUX0NMSVBfVkVSVCgwKSwgMSk7CisJQkVH SU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1ZJRVdQT1JUX0NMSVBfVkVSVCgwKSwgMSk7 CiAJT1VUX1JJTkcoY2hhbiwgMHg3ZmYgPDwgMTYgfCAweDgwMCk7CiAKIAlmb3IgKGkgPSAxOyBp IDwgODsgaSsrKSB7Ci0JCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9WSUVXUE9S VF9DTElQX0hPUklaKGkpLCAxKTsKKwkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNE X1ZJRVdQT1JUX0NMSVBfSE9SSVooaSksIDEpOwogCQlPVVRfUklORyhjaGFuLCAwKTsKLQkJQkVH SU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1ZJRVdQT1JUX0NMSVBfVkVSVChpKSwgMSk7 CisJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9WSUVXUE9SVF9DTElQX1ZFUlQo aSksIDEpOwogCQlPVVRfUklORyhjaGFuLCAwKTsKIAl9CiAKQEAgLTIzNiwxOCArMjM3LDE4IEBA IG52MTBfaHdjdHhfaW5pdChzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4KQogCUJFR0lOX1JJTkcoY2hh biwgY2Vsc2l1cywgMHgzZjQsIDEpOwogCU9VVF9SSU5HKGNoYW4sIDApOwogCi0JQkVHSU5fUklO RyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX05PUCwgMSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxz aXVzLCAgTlYwNF9HUkFQSF9OT1AsIDEpOwogCU9VVF9SSU5HKGNoYW4sIDApOwogCiAJaWYgKGNv bnRleHRfY2hpcHNldChjdHgpID49IDB4MTcpIHsKLQkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVz LCBOVjE3VENMX0RNQV9JTl9NRU1PUlk0LCAyKTsKKwkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVz LCBOVjE3XzNEX1VOSzAxQUMsIDIpOwogCQlPVVRfUklORyhjaGFuLCBjaGFuLT52cmFtLT5oYW5k bGUpOwogCQlPVVRfUklORyhjaGFuLCBjaGFuLT52cmFtLT5oYW5kbGUpOwogCiAJCUJFR0lOX1JJ TkcoY2hhbiwgY2Vsc2l1cywgMHhkODQsIDEpOwogCQlPVVRfUklORyhjaGFuLCAweDMpOwogCi0J CUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxN1RDTF9DT0xPUl9NQVNLX0VOQUJMRSwgMSk7 CisJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxN18zRF9DT0xPUl9NQVNLX0VOQUJMRSwg MSk7CiAJCU9VVF9SSU5HKGNoYW4sIDEpOwogCX0KIApAQCAtMjU3LDQxICsyNTgsNDEgQEAgbnYx MF9od2N0eF9pbml0KHN0cnVjdCBnbF9jb250ZXh0ICpjdHgpCiAJCU9VVF9SSU5HKGNoYW4sIDEp OwogCQlPVVRfUklORyhjaGFuLCAyKTsKIAotCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5W MTBUQ0xfTk9QLCAxKTsKKwkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjA0X0dSQVBIX05P UCwgMSk7CiAJCU9VVF9SSU5HKGNoYW4sIDApOwogCX0KIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMFRDTF9OT1AsIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgIE5WMDRf R1JBUEhfTk9QLCAxKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKIAogCS8qIFNldCBzdGF0ZSAqLwot CUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9GT0dfRU5BQkxFLCAxKTsKKwlCRUdJ Tl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfRk9HX0VOQUJMRSwgMSk7CiAJT1VUX1JJTkco Y2hhbiwgMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0FMUEhBX0ZVTkNf RU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfQUxQSEFfRlVO Q19FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNoYW4sIDApOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMFRDTF9BTFBIQV9GVU5DX0ZVTkMsIDIpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMF8zRF9BTFBIQV9GVU5DX0ZVTkMsIDIpOwogCU9VVF9SSU5HKGNoYW4sIDB4MjA3 KTsKIAlPVVRfUklORyhjaGFuLCAwKTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBU Q0xfVFhfRU5BQkxFKDApLCAyKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0Rf VEVYX0VOQUJMRSgwKSwgMik7CiAJT1VUX1JJTkcoY2hhbiwgMCk7CiAJT1VUX1JJTkcoY2hhbiwg MCk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfQkxFTkRfRlVOQ19FTkFC TEUsIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9CTEVORF9GVU5DX0VO QUJMRSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVz LCBOVjEwVENMX0RJVEhFUl9FTkFCTEUsIDIpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywg TlYxMF8zRF9ESVRIRVJfRU5BQkxFLCAyKTsKIAlPVVRfUklORyhjaGFuLCAxKTsKIAlPVVRfUklO RyhjaGFuLCAwKTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfTElORV9TTU9P VEhfRU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfTElORV9T TU9PVEhfRU5BQkxFLCAxKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKLQlCRUdJTl9SSU5HKGNoYW4s IGNlbHNpdXMsIE5WMTBUQ0xfVkVSVEVYX1dFSUdIVF9FTkFCTEUsIDIpOworCUJFR0lOX1JJTkco Y2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9WRVJURVhfV0VJR0hUX0VOQUJMRSwgMik7CiAJT1VUX1JJ TkcoY2hhbiwgMCk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxz aXVzLCBOVjEwVENMX0JMRU5EX0ZVTkNfU1JDLCA0KTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNp dXMsIE5WMTBfM0RfQkxFTkRfRlVOQ19TUkMsIDQpOwogCU9VVF9SSU5HKGNoYW4sIDEpOwogCU9V VF9SSU5HKGNoYW4sIDApOwogCU9VVF9SSU5HKGNoYW4sIDApOwogCU9VVF9SSU5HKGNoYW4sIDB4 ODAwNik7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1NURU5DSUxfTUFTSywg OCk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1NURU5DSUxfTUFTSywgOCk7 CiAJT1VUX1JJTkcoY2hhbiwgMHhmZik7CiAJT1VUX1JJTkcoY2hhbiwgMHgyMDcpOwogCU9VVF9S SU5HKGNoYW4sIDApOwpAQCAtMzAwLDEwNSArMzAxLDEwNSBAQCBudjEwX2h3Y3R4X2luaXQoc3Ry dWN0IGdsX2NvbnRleHQgKmN0eCkKIAlPVVRfUklORyhjaGFuLCAweDFlMDApOwogCU9VVF9SSU5H KGNoYW4sIDB4MWUwMCk7CiAJT1VUX1JJTkcoY2hhbiwgMHgxZDAxKTsKLQlCRUdJTl9SSU5HKGNo YW4sIGNlbHNpdXMsIE5WMTBUQ0xfTk9STUFMSVpFX0VOQUJMRSwgMSk7CisJQkVHSU5fUklORyhj aGFuLCBjZWxzaXVzLCBOVjEwXzNEX05PUk1BTElaRV9FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNo YW4sIDApOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9GT0dfRU5BQkxFLCAy KTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfRk9HX0VOQUJMRSwgMik7CiAJ T1VUX1JJTkcoY2hhbiwgMCk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7Ci0JQkVHSU5fUklORyhjaGFu LCBjZWxzaXVzLCBOVjEwVENMX0xJR0hUX01PREVMLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNl bHNpdXMsIE5WMTBfM0RfTElHSFRfTU9ERUwsIDEpOwogCU9VVF9SSU5HKGNoYW4sIDApOwotCUJF R0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9TRVBBUkFURV9TUEVDVUxBUl9FTkFCTEUs IDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9TRVBBUkFURV9TUEVDVUxB Ul9FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNoYW4sIDApOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMFRDTF9FTkFCTEVEX0xJR0hUUywgMSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxz aXVzLCBOVjEwXzNEX0VOQUJMRURfTElHSFRTLCAxKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKLQlC RUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfUE9MWUdPTl9PRkZTRVRfUE9JTlRfRU5B QkxFLCAzKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfUE9MWUdPTl9PRkZT RVRfUE9JTlRfRU5BQkxFLCAzKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKIAlPVVRfUklORyhjaGFu LCAwKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5W MTBUQ0xfREVQVEhfRlVOQywgMSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNE X0RFUFRIX0ZVTkMsIDEpOwogCU9VVF9SSU5HKGNoYW4sIDB4MjAxKTsKLQlCRUdJTl9SSU5HKGNo YW4sIGNlbHNpdXMsIE5WMTBUQ0xfREVQVEhfV1JJVEVfRU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5H KGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfREVQVEhfV1JJVEVfRU5BQkxFLCAxKTsKIAlPVVRfUklO RyhjaGFuLCAwKTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfREVQVEhfVEVT VF9FTkFCTEUsIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9ERVBUSF9U RVNUX0VOQUJMRSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBj ZWxzaXVzLCBOVjEwVENMX1BPTFlHT05fT0ZGU0VUX0ZBQ1RPUiwgMik7CisJQkVHSU5fUklORyhj aGFuLCBjZWxzaXVzLCBOVjEwXzNEX1BPTFlHT05fT0ZGU0VUX0ZBQ1RPUiwgMik7CiAJT1VUX1JJ TkcoY2hhbiwgMCk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxz aXVzLCBOVjEwVENMX1BPSU5UX1NJWkUsIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywg TlYxMF8zRF9QT0lOVF9TSVpFLCAxKTsKIAlPVVRfUklORyhjaGFuLCA4KTsKLQlCRUdJTl9SSU5H KGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfUE9JTlRfUEFSQU1FVEVSU19FTkFCTEUsIDIpOworCUJF R0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9QT0lOVF9QQVJBTUVURVJTX0VOQUJMRSwg Mik7CiAJT1VUX1JJTkcoY2hhbiwgMCk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7Ci0JQkVHSU5fUklO RyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0xJTkVfV0lEVEgsIDEpOworCUJFR0lOX1JJTkcoY2hh biwgY2Vsc2l1cywgTlYxMF8zRF9MSU5FX1dJRFRILCAxKTsKIAlPVVRfUklORyhjaGFuLCA4KTsK LQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfTElORV9TTU9PVEhfRU5BQkxFLCAx KTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfTElORV9TTU9PVEhfRU5BQkxF LCAxKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5W MTBUQ0xfUE9MWUdPTl9NT0RFX0ZST05ULCAyKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMs IE5WMTBfM0RfUE9MWUdPTl9NT0RFX0ZST05ULCAyKTsKIAlPVVRfUklORyhjaGFuLCAweDFiMDIp OwogCU9VVF9SSU5HKGNoYW4sIDB4MWIwMik7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwVENMX0NVTExfRkFDRSwgMik7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNE X0NVTExfRkFDRSwgMik7CiAJT1VUX1JJTkcoY2hhbiwgMHg0MDUpOwogCU9VVF9SSU5HKGNoYW4s IDB4OTAxKTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfUE9MWUdPTl9TTU9P VEhfRU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfUE9MWUdP Tl9TTU9PVEhfRU5BQkxFLCAxKTsKIAlPVVRfUklORyhjaGFuLCAwKTsKLQlCRUdJTl9SSU5HKGNo YW4sIGNlbHNpdXMsIE5WMTBUQ0xfQ1VMTF9GQUNFX0VOQUJMRSwgMSk7CisJQkVHSU5fUklORyhj aGFuLCBjZWxzaXVzLCBOVjEwXzNEX0NVTExfRkFDRV9FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNo YW4sIDApOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9UWF9HRU5fTU9ERV9T KDApLCA4KTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVEVYX0dFTl9NT0RF KDAsIDApLCA4KTsKIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogCQlPVVRfUklORyhjaGFuLCAw KTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9UWF9NQVRSSVhfRU5BQkxF KDApLCAyKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVEVYX01BVFJJWF9F TkFCTEUoMCksIDIpOwogCU9VVF9SSU5HKGNoYW4sIDApOwogCU9VVF9SSU5HKGNoYW4sIDApOwot CUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9GT0dfRVFVQVRJT05fQ09OU1RBTlQs IDMpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9GT0dfQ09FRkYoMCksIDMp OwogCU9VVF9SSU5HKGNoYW4sIDB4M2ZjMDAwMDApOwkvKiAtMS41MCAqLwogCU9VVF9SSU5HKGNo YW4sIDB4YmRiOGFhMGEpOwkvKiAtMC4wOSAqLwogCU9VVF9SSU5HKGNoYW4sIDApOwkJLyogIDAu MDAgKi8KIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9OT1AsIDEpOworCUJF R0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgIE5WMDRfR1JBUEhfTk9QLCAxKTsKIAlPVVRfUklORyhj aGFuLCAwKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9GT0dfTU9ERSwg Mik7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX0ZPR19NT0RFLCAyKTsKIAlP VVRfUklORyhjaGFuLCAweDgwMik7CiAJT1VUX1JJTkcoY2hhbiwgMik7CiAJLyogZm9yIHNvbWUg cmVhc29uIFZJRVdfTUFUUklYX0VOQUJMRSBuZWVkIHRvIGJlIDYgaW5zdGVhZCBvZiA0IHdoZW4K IAkgKiB1c2luZyB0ZXh0dXJpbmcsIGV4Y2VwdCB3aGVuIHVzaW5nIHRoZSB0ZXh0dXJlIG1hdHJp eAogCSAqLwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9WSUVXX01BVFJJWF9F TkFCTEUsIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9WSUVXX01BVFJJ WF9FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNoYW4sIDYpOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMFRDTF9DT0xPUl9NQVNLLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMs IE5WMTBfM0RfQ09MT1JfTUFTSywgMSk7CiAJT1VUX1JJTkcoY2hhbiwgMHgwMTAxMDEwMSk7CiAK IAkvKiBTZXQgdmVydGV4IGNvbXBvbmVudCAqLwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywg TlYxMFRDTF9WRVJURVhfQ09MXzRGX1IsIDQpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywg TlYxMF8zRF9WRVJURVhfQ09MXzRGX1IsIDQpOwogCU9VVF9SSU5HZihjaGFuLCAxLjApOwogCU9V VF9SSU5HZihjaGFuLCAwLjApOwogCU9VVF9SSU5HZihjaGFuLCAwLjApOwogCU9VVF9SSU5HZihj aGFuLCAxLjApOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9WRVJURVhfQ09M Ml8zRl9SLCAzKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVkVSVEVYX0NP TDJfM0ZfUiwgMyk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7CiAJ T1VUX1JJTkcoY2hhbiwgMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1ZF UlRFWF9OT1JfM0ZfWCwgMyk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1ZF UlRFWF9OT1JfM0ZfWCwgMyk7CiAJT1VUX1JJTkcoY2hhbiwgMCk7CiAJT1VUX1JJTkcoY2hhbiwg MCk7CiAJT1VUX1JJTkdmKGNoYW4sIDEuMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwVENMX1ZFUlRFWF9UWDBfNEZfUywgNCk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwXzNEX1ZFUlRFWF9UWDBfNEZfUywgNCk7CiAJT1VUX1JJTkdmKGNoYW4sIDAuMCk7CiAJT1VU X1JJTkdmKGNoYW4sIDAuMCk7CiAJT1VUX1JJTkdmKGNoYW4sIDAuMCk7CiAJT1VUX1JJTkdmKGNo YW4sIDEuMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1ZFUlRFWF9UWDFf NEZfUywgNCk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1ZFUlRFWF9UWDFf NEZfUywgNCk7CiAJT1VUX1JJTkdmKGNoYW4sIDAuMCk7CiAJT1VUX1JJTkdmKGNoYW4sIDAuMCk7 CiAJT1VUX1JJTkdmKGNoYW4sIDAuMCk7CiAJT1VUX1JJTkdmKGNoYW4sIDEuMCk7Ci0JQkVHSU5f UklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1ZFUlRFWF9GT0dfMUYsIDEpOworCUJFR0lOX1JJ TkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9WRVJURVhfRk9HXzFGLCAxKTsKIAlPVVRfUklOR2Yo Y2hhbiwgMC4wKTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfRURHRUZMQUdf RU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfRURHRUZMQUdf RU5BQkxFLCAxKTsKIAlPVVRfUklORyhjaGFuLCAxKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMFRDTF9ERVBUSF9SQU5HRV9ORUFSLCAyKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNl bHNpdXMsIE5WMTBfM0RfREVQVEhfUkFOR0VfTkVBUiwgMik7CiAJT1VUX1JJTkdmKGNoYW4sIDAu MCk7CiAJT1VUX1JJTkdmKGNoYW4sIDE2Nzc3MjE2LjApOwogCkBAIC00NTUsMTEgKzQ1NiwxMSBA QCBudjEwX2NvbnRleHRfY3JlYXRlKHN0cnVjdCBub3V2ZWF1X3NjcmVlbiAqc2NyZWVuLCBjb25z dCBzdHJ1Y3QgZ2xfY29uZmlnICp2aXN1YQogCiAJLyogM0QgZW5naW5lLiAqLwogCWlmIChjb250 ZXh0X2NoaXBzZXQoY3R4KSA+PSAweDE3KQotCQljZWxzaXVzX2NsYXNzID0gTlYxN1RDTDsKKwkJ Y2Vsc2l1c19jbGFzcyA9IE5WMTdfM0Q7CiAJZWxzZSBpZiAoY29udGV4dF9jaGlwc2V0KGN0eCkg Pj0gMHgxMSkKLQkJY2Vsc2l1c19jbGFzcyA9IE5WMTFUQ0w7CisJCWNlbHNpdXNfY2xhc3MgPSBO VjExXzNEOwogCWVsc2UKLQkJY2Vsc2l1c19jbGFzcyA9IE5WMTBUQ0w7CisJCWNlbHNpdXNfY2xh c3MgPSBOVjEwXzNEOwogCiAJcmV0ID0gbm91dmVhdV9ncm9ial9hbGxvYyhjb250ZXh0X2NoYW4o Y3R4KSwgMHhiZWVmMDAwMSwgY2Vsc2l1c19jbGFzcywKIAkJCQkgICZuY3R4LT5ody5lbmczZCk7 CmRpZmYgLS1naXQgYS9zcmMvbWVzYS9kcml2ZXJzL2RyaS9ub3V2ZWF1L252MTBfcmVuZGVyLmMg Yi9zcmMvbWVzYS9kcml2ZXJzL2RyaS9ub3V2ZWF1L252MTBfcmVuZGVyLmMKaW5kZXggOTRmZjNl ZC4uNzE0OTZjMSAxMDA2NDQKLS0tIGEvc3JjL21lc2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEw X3JlbmRlci5jCisrKyBiL3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9yZW5kZXIu YwpAQCAtMjYsNyArMjYsNyBAQAogCiAjaW5jbHVkZSAibm91dmVhdV9kcml2ZXIuaCIKICNpbmNs dWRlICJub3V2ZWF1X2NvbnRleHQuaCIKLSNpbmNsdWRlICJub3V2ZWF1X2NsYXNzLmgiCisjaW5j bHVkZSAibnYxMF8zZC54bWwuaCIKICNpbmNsdWRlICJudjEwX2RyaXZlci5oIgogCiAjZGVmaW5l IE5VTV9WRVJURVhfQVRUUlMgOApAQCAtMzksMzcgKzM5LDM3IEBAIG52MTBfZW1pdF9tYXRlcmlh bChzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBzdHJ1Y3Qgbm91dmVhdV9hcnJheSAqYSwKIHN0YXRp YyBzdHJ1Y3Qgbm91dmVhdV9hdHRyX2luZm8gbnYxMF92ZXJ0ZXhfYXR0cnNbVkVSVF9BVFRSSUJf TUFYXSA9IHsKIAlbVkVSVF9BVFRSSUJfUE9TXSA9IHsKIAkJLnZib19pbmRleCA9IDAsCi0JCS5p bW1fbWV0aG9kID0gTlYxMFRDTF9WRVJURVhfUE9TXzRGX1gsCisJCS5pbW1fbWV0aG9kID0gTlYx MF8zRF9WRVJURVhfUE9TXzRGX1gsCiAJCS5pbW1fZmllbGRzID0gNCwKIAl9LAogCVtWRVJUX0FU VFJJQl9DT0xPUjBdID0gewogCQkudmJvX2luZGV4ID0gMSwKLQkJLmltbV9tZXRob2QgPSBOVjEw VENMX1ZFUlRFWF9DT0xfNEZfUiwKKwkJLmltbV9tZXRob2QgPSBOVjEwXzNEX1ZFUlRFWF9DT0xf NEZfUiwKIAkJLmltbV9maWVsZHMgPSA0LAogCX0sCiAJW1ZFUlRfQVRUUklCX0NPTE9SMV0gPSB7 CiAJCS52Ym9faW5kZXggPSAyLAotCQkuaW1tX21ldGhvZCA9IE5WMTBUQ0xfVkVSVEVYX0NPTDJf M0ZfUiwKKwkJLmltbV9tZXRob2QgPSBOVjEwXzNEX1ZFUlRFWF9DT0wyXzNGX1IsCiAJCS5pbW1f ZmllbGRzID0gMywKIAl9LAogCVtWRVJUX0FUVFJJQl9URVgwXSA9IHsKIAkJLnZib19pbmRleCA9 IDMsCi0JCS5pbW1fbWV0aG9kID0gTlYxMFRDTF9WRVJURVhfVFgwXzRGX1MsCisJCS5pbW1fbWV0 aG9kID0gTlYxMF8zRF9WRVJURVhfVFgwXzRGX1MsCiAJCS5pbW1fZmllbGRzID0gNCwKIAl9LAog CVtWRVJUX0FUVFJJQl9URVgxXSA9IHsKIAkJLnZib19pbmRleCA9IDQsCi0JCS5pbW1fbWV0aG9k ID0gTlYxMFRDTF9WRVJURVhfVFgxXzRGX1MsCisJCS5pbW1fbWV0aG9kID0gTlYxMF8zRF9WRVJU RVhfVFgxXzRGX1MsCiAJCS5pbW1fZmllbGRzID0gNCwKIAl9LAogCVtWRVJUX0FUVFJJQl9OT1JN QUxdID0gewogCQkudmJvX2luZGV4ID0gNSwKLQkJLmltbV9tZXRob2QgPSBOVjEwVENMX1ZFUlRF WF9OT1JfM0ZfWCwKKwkJLmltbV9tZXRob2QgPSBOVjEwXzNEX1ZFUlRFWF9OT1JfM0ZfWCwKIAkJ LmltbV9maWVsZHMgPSAzLAogCX0sCiAJW1ZFUlRfQVRUUklCX0ZPR10gPSB7CiAJCS52Ym9faW5k ZXggPSA3LAotCQkuaW1tX21ldGhvZCA9IE5WMTBUQ0xfVkVSVEVYX0ZPR18xRiwKKwkJLmltbV9t ZXRob2QgPSBOVjEwXzNEX1ZFUlRFWF9GT0dfMUYsCiAJCS5pbW1fZmllbGRzID0gMSwKIAl9LAog CVtWRVJUX0FUVFJJQl9HRU5FUklDMF0gPSB7CkBAIC05NCwxMiArOTQsMTIgQEAgZ2V0X2h3X2Zv cm1hdChpbnQgdHlwZSkKIHsKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIEdMX0ZMT0FUOgotCQly ZXR1cm4gTlYxMFRDTF9WVFhGTVRfVFlQRV9GTE9BVDsKKwkJcmV0dXJuIE5WMTBfM0RfVlRYQlVG X0ZNVF9UWVBFX1YzMl9GTE9BVDsKIAljYXNlIEdMX1NIT1JUOgogCWNhc2UgR0xfVU5TSUdORURf U0hPUlQ6Ci0JCXJldHVybiBOVjEwVENMX1ZUWEZNVF9UWVBFX1NIT1JUOworCQlyZXR1cm4gTlYx MF8zRF9WVFhCVUZfRk1UX1RZUEVfVjE2X1NOT1JNOwogCWNhc2UgR0xfVU5TSUdORURfQllURToK LQkJcmV0dXJuIE5WMTBUQ0xfVlRYRk1UX1RZUEVfQllURV9SR0JBOworCQlyZXR1cm4gTlYxMF8z RF9WVFhCVUZfRk1UX1RZUEVfQjhHOFI4QThfVU5PUk07CiAJZGVmYXVsdDoKIAkJYXNzZXJ0KDAp OwogCX0KQEAgLTEyMiwxMyArMTIyLDEzIEBAIG52MTBfcmVuZGVyX3NldF9mb3JtYXQoc3RydWN0 IGdsX2NvbnRleHQgKmN0eCkKIAkJCQlnZXRfaHdfZm9ybWF0KGEtPnR5cGUpOwogCiAJCQlpZiAo YXR0ciA9PSBWRVJUX0FUVFJJQl9QT1MgJiYgYS0+ZmllbGRzID09IDQpCi0JCQkJaHdfZm9ybWF0 IHw9IE5WMTBUQ0xfVlRYRk1UX1BPU19IT01PR0VORU9VUzsKKwkJCQlod19mb3JtYXQgfD0gTlYx MF8zRF9WVFhCVUZfRk1UX1BPU19IT01PR0VORU9VUzsKIAkJfSBlbHNlIHsKIAkJCS8qIFVudXNl ZCBhdHRyaWJ1dGUuICovCi0JCQlod19mb3JtYXQgPSBOVjEwVENMX1ZUWEZNVF9UWVBFX0ZMT0FU OworCQkJaHdfZm9ybWF0ID0gTlYxMF8zRF9WVFhCVUZfRk1UX1RZUEVfVjMyX0ZMT0FUOwogCQl9 CiAKLQkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1ZUWEZNVChpKSwgMSk7CisJ CUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9WVFhCVUZfRk1UKGkpLCAxKTsKIAkJ T1VUX1JJTkcoY2hhbiwgaHdfZm9ybWF0KTsKIAl9CiB9CkBAIC0xNDUsNyArMTQ1LDcgQEAgbnYx MF9yZW5kZXJfYmluZF92ZXJ0aWNlcyhzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4KQogCQlzdHJ1Y3Qg bm91dmVhdV9hcnJheSAqYSA9ICZyZW5kZXItPmF0dHJzW2F0dHJdOwogCiAJCW5vdXZlYXVfYm9f bWFya2woYmN0eCwgY2Vsc2l1cywKLQkJCQkgTlYxMFRDTF9WVFhCVUZfQUREUkVTUyhpKSwKKwkJ CQkgTlYxMF8zRF9WVFhCVUZfT0ZGU0VUKGkpLAogCQkJCSBhLT5ibywgYS0+b2Zmc2V0LAogCQkJ CSBOT1VWRUFVX0JPX0dBUlQgfCBOT1VWRUFVX0JPX1JEKTsKIAl9CkBAIC0xNTYsMzMgKzE1Niwz MyBAQCBudjEwX3JlbmRlcl9iaW5kX3ZlcnRpY2VzKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgpCiAJ c3RydWN0IG5vdXZlYXVfZ3JvYmogKmNlbHNpdXMgPSBjb250ZXh0X2VuZzNkKGN0eCkKIAogI2Rl ZmluZSBCQVRDSF9WQUxJREFURSgpCQkJCQkJXAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywg TlYxMFRDTF9WRVJURVhfQVJSQVlfVkFMSURBVEUsIDEpOwlcCisJQkVHSU5fUklORyhjaGFuLCBj ZWxzaXVzLCBOVjEwXzNEX1ZUWEJVRl9WQUxJREFURSwgMSk7CVwKIAlPVVRfUklORyhjaGFuLCAw KQogCiAjZGVmaW5lIEJBVENIX0JFR0lOKHByaW0pCQkJCQkJXAotCUJFR0lOX1JJTkcoY2hhbiwg Y2Vsc2l1cywgTlYxMFRDTF9WRVJURVhfQlVGRkVSX0JFR0lOX0VORCwgMSk7CVwKKwlCRUdJTl9S SU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVlRYQlVGX0JFR0lOX0VORCwgMSk7CVwKIAlPVVRf UklORyhjaGFuLCBwcmltKQogI2RlZmluZSBCQVRDSF9FTkQoKQkJCQkJCQlcCi0JQkVHSU5fUklO RyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1ZFUlRFWF9CVUZGRVJfQkVHSU5fRU5ELCAxKTsJXAor CUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9WVFhCVUZfQkVHSU5fRU5ELCAxKTsJ XAogCU9VVF9SSU5HKGNoYW4sIDApCiAKICNkZWZpbmUgTUFYX1BBQ0tFVCAweDQwMAogCiAjZGVm aW5lIE1BWF9PVVRfTCAweDEwMAogI2RlZmluZSBCQVRDSF9QQUNLRVRfTChuKQkJCQkJCVwKLQlC RUdJTl9SSU5HX05JKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfVkVSVEVYX0JVRkZFUl9EUkFXX0FS UkFZUywgbikKKwlCRUdJTl9SSU5HX05JKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVlRYQlVGX0JB VENILCBuKQogI2RlZmluZSBCQVRDSF9PVVRfTChpLCBuKQkJCVwKIAlPVVRfUklORyhjaGFuLCAo KG4pIC0gMSkgPDwgMjQgfCAoaSkpCiAKICNkZWZpbmUgTUFYX09VVF9JMTYgMHgyCiAjZGVmaW5l IEJBVENIX1BBQ0tFVF9JMTYobikJCQkJCQlcCi0JQkVHSU5fUklOR19OSShjaGFuLCBjZWxzaXVz LCBOVjEwVENMX1ZCX0VMRU1FTlRfVTE2LCBuKQorCUJFR0lOX1JJTkdfTkkoY2hhbiwgY2Vsc2l1 cywgTlYxMF8zRF9WVFhCVUZfRUxFTUVOVF9VMTYsIG4pCiAjZGVmaW5lIEJBVENIX09VVF9JMTYo aTAsIGkxKQkJCVwKIAlPVVRfUklORyhjaGFuLCAoaTEpIDw8IDE2IHwgKGkwKSkKIAogI2RlZmlu ZSBNQVhfT1VUX0kzMiAweDEKICNkZWZpbmUgQkFUQ0hfUEFDS0VUX0kzMihuKQkJCQkJCVwKLQlC RUdJTl9SSU5HX05JKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfVkJfRUxFTUVOVF9VMzIsIG4pCisJ QkVHSU5fUklOR19OSShjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1ZUWEJVRl9FTEVNRU5UX1UzMiwg bikKICNkZWZpbmUgQkFUQ0hfT1VUX0kzMihpKQkJCVwKIAlPVVRfUklORyhjaGFuLCBpKQogCmRp ZmYgLS1naXQgYS9zcmMvbWVzYS9kcml2ZXJzL2RyaS9ub3V2ZWF1L252MTBfc3RhdGVfZmIuYyBi L3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0ZV9mYi5jCmluZGV4IDBmZGE5 ZmEuLmRiZGZlN2MgMTAwNjQ0Ci0tLSBhL3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYx MF9zdGF0ZV9mYi5jCisrKyBiL3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0 ZV9mYi5jCkBAIC0yNyw3ICsyNyw4IEBACiAjaW5jbHVkZSAibm91dmVhdV9kcml2ZXIuaCIKICNp bmNsdWRlICJub3V2ZWF1X2NvbnRleHQuaCIKICNpbmNsdWRlICJub3V2ZWF1X2Ziby5oIgotI2lu Y2x1ZGUgIm5vdXZlYXVfY2xhc3MuaCIKKyNpbmNsdWRlICJudl9vYmplY3QueG1sLmgiCisjaW5j bHVkZSAibnYxMF8zZC54bWwuaCIKICNpbmNsdWRlICJub3V2ZWF1X3V0aWwuaCIKICNpbmNsdWRl ICJudjEwX2RyaXZlci5oIgogCkBAIC02OCwyMCArNjksMjAgQEAgc2V0dXBfaGllcnpfYnVmZmVy KHN0cnVjdCBnbF9jb250ZXh0ICpjdHgpCiAJCQkJICAgIDAsIE5PVVZFQVVfQk9fVElMRV9aRVRB LCAmbmZiLT5oaWVyei5ibyk7CiAJfQogCi0Jbm91dmVhdV9ib19tYXJrbChiY3R4LCBjZWxzaXVz LCBOVjE3VENMX0xNQV9ERVBUSF9CVUZGRVJfT0ZGU0VULAorCW5vdXZlYXVfYm9fbWFya2woYmN0 eCwgY2Vsc2l1cywgTlYxN18zRF9MTUFfREVQVEhfQlVGRkVSX09GRlNFVCwKIAkJCSBuZmItPmhp ZXJ6LmJvLCAwLCBOT1VWRUFVX0JPX1ZSQU0gfCBOT1VWRUFVX0JPX1JEV1IpOwogCiAJV0FJVF9S SU5HKGNoYW4sIDkpOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxN1RDTF9MTUFfREVQ VEhfV0lORE9XX1gsIDQpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxN18zRF9MTUFf REVQVEhfV0lORE9XX1gsIDQpOwogCU9VVF9SSU5HZihjaGFuLCAtIDE3OTIpOwogCU9VVF9SSU5H ZihjaGFuLCAtIDIzMDQgKyBmYi0+SGVpZ2h0KTsKIAlPVVRfUklOR2YoY2hhbiwgZmItPl9EZXB0 aE1heEYgLyAyKTsKIAlPVVRfUklOR2YoY2hhbiwgMCk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNl bHNpdXMsIE5WMTdUQ0xfTE1BX0RFUFRIX0JVRkZFUl9QSVRDSCwgMSk7CisJQkVHSU5fUklORyhj aGFuLCBjZWxzaXVzLCBOVjE3XzNEX0xNQV9ERVBUSF9CVUZGRVJfUElUQ0gsIDEpOwogCU9VVF9S SU5HKGNoYW4sIHBpdGNoKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxN1RDTF9M TUFfREVQVEhfRU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTdfM0Rf TE1BX0RFUFRIX0VOQUJMRSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgMSk7CiB9CiAKQEAgLTkzLDcg Kzk0LDcgQEAgbnYxMF9lbWl0X2ZyYW1lYnVmZmVyKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGlu dCBlbWl0KQogCXN0cnVjdCBub3V2ZWF1X2JvX2NvbnRleHQgKmJjdHggPSBjb250ZXh0X2JjdHgo Y3R4LCBGUkFNRUJVRkZFUik7CiAJc3RydWN0IGdsX2ZyYW1lYnVmZmVyICpmYiA9IGN0eC0+RHJh d0J1ZmZlcjsKIAlzdHJ1Y3Qgbm91dmVhdV9zdXJmYWNlICpzOwotCXVuc2lnbmVkIHJ0X2Zvcm1h dCA9IE5WMTBUQ0xfUlRfRk9STUFUX1RZUEVfTElORUFSOworCXVuc2lnbmVkIHJ0X2Zvcm1hdCA9 IE5WMTBfM0RfUlRfRk9STUFUX1RZUEVfTElORUFSOwogCXVuc2lnbmVkIHJ0X3BpdGNoID0gMCwg emV0YV9waXRjaCA9IDA7CiAJdW5zaWduZWQgYm9fZmxhZ3MgPSBOT1VWRUFVX0JPX1ZSQU0gfCBO T1VWRUFVX0JPX1JEV1I7CiAKQEAgLTEwNiw3ICsxMDcsNyBAQCBudjEwX2VtaXRfZnJhbWVidWZm ZXIoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAJCWludCBpOwogCiAJCWZvciAo aSA9IDA7IGkgPCA2OyBpKyspIHsKLQkJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRD TF9OT1AsIDEpOworCQkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjA0X0dSQVBIX05PUCwg MSk7CiAJCQlPVVRfUklORyhjaGFuLCAwKTsKIAkJfQogCX0KQEAgLTExOSw3ICsxMjAsNyBAQCBu djEwX2VtaXRfZnJhbWVidWZmZXIoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAJ CXJ0X2Zvcm1hdCB8PSBnZXRfcnRfZm9ybWF0KHMtPmZvcm1hdCk7CiAJCXpldGFfcGl0Y2ggPSBy dF9waXRjaCA9IHMtPnBpdGNoOwogCi0JCW5vdXZlYXVfYm9fbWFya2woYmN0eCwgY2Vsc2l1cywg TlYxMFRDTF9DT0xPUl9PRkZTRVQsCisJCW5vdXZlYXVfYm9fbWFya2woYmN0eCwgY2Vsc2l1cywg TlYxMF8zRF9DT0xPUl9PRkZTRVQsCiAJCQkJIHMtPmJvLCAwLCBib19mbGFncyk7CiAJfQogCkBA IC0xMzEsNyArMTMyLDcgQEAgbnYxMF9lbWl0X2ZyYW1lYnVmZmVyKHN0cnVjdCBnbF9jb250ZXh0 ICpjdHgsIGludCBlbWl0KQogCQlydF9mb3JtYXQgfD0gZ2V0X3J0X2Zvcm1hdChzLT5mb3JtYXQp OwogCQl6ZXRhX3BpdGNoID0gcy0+cGl0Y2g7CiAKLQkJbm91dmVhdV9ib19tYXJrbChiY3R4LCBj ZWxzaXVzLCBOVjEwVENMX1pFVEFfT0ZGU0VULAorCQlub3V2ZWF1X2JvX21hcmtsKGJjdHgsIGNl bHNpdXMsIE5WMTBfM0RfWkVUQV9PRkZTRVQsCiAJCQkJIHMtPmJvLCAwLCBib19mbGFncyk7CiAK IAkJaWYgKGNvbnRleHRfY2hpcHNldChjdHgpID49IDB4MTcpIHsKQEAgLTE0MCw3ICsxNDEsNyBA QCBudjEwX2VtaXRfZnJhbWVidWZmZXIoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQp CiAJCX0KIAl9CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfUlRfRk9STUFU LCAyKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfUlRfRk9STUFULCAyKTsK IAlPVVRfUklORyhjaGFuLCBydF9mb3JtYXQpOwogCU9VVF9SSU5HKGNoYW4sIHpldGFfcGl0Y2gg PDwgMTYgfCBydF9waXRjaCk7CiAKQEAgLTE2Miw3ICsxNjMsNyBAQCBudjEwX2VtaXRfc2Npc3Nv cihzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAogCWdldF9zY2lzc29ycyhjdHgt PkRyYXdCdWZmZXIsICZ4LCAmeSwgJncsICZoKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMFRDTF9SVF9IT1JJWiwgMik7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEw XzNEX1JUX0hPUklaLCAyKTsKIAlPVVRfUklORyhjaGFuLCB3IDw8IDE2IHwgeCk7CiAJT1VUX1JJ TkcoY2hhbiwgaCA8PCAxNiB8IHkpOwogfQpAQCAtMTgyLDEyICsxODMsMTIgQEAgbnYxMF9lbWl0 X3ZpZXdwb3J0KHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCWlmIChudjEwX3Vz ZV92aWV3cG9ydF96Y2xlYXIoY3R4KSkKIAkJYVsyXSA9IG52MTBfdHJhbnNmb3JtX2RlcHRoKGN0 eCwgKHZwLT5GYXIgKyB2cC0+TmVhcikgLyAyKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMFRDTF9WSUVXUE9SVF9UUkFOU0xBVEVfWCwgNCk7CisJQkVHSU5fUklORyhjaGFuLCBj ZWxzaXVzLCBOVjEwXzNEX1ZJRVdQT1JUX1RSQU5TTEFURV9YLCA0KTsKIAlPVVRfUklOR3AoY2hh biwgYSwgNCk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfVklFV1BPUlRf Q0xJUF9IT1JJWigwKSwgMSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1ZJ RVdQT1JUX0NMSVBfSE9SSVooMCksIDEpOwogCU9VVF9SSU5HKGNoYW4sIChmYi0+V2lkdGggLSAx KSA8PCAxNiB8IDB4MDgwMDA4MDApOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRD TF9WSUVXUE9SVF9DTElQX1ZFUlQoMCksIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywg TlYxMF8zRF9WSUVXUE9SVF9DTElQX1ZFUlQoMCksIDEpOwogCU9VVF9SSU5HKGNoYW4sIChmYi0+ SGVpZ2h0IC0gMSkgPDwgMTYgfCAweDA4MDAwODAwKTsKIAogCWNvbnRleHRfZGlydHkoY3R4LCBQ Uk9KRUNUSU9OKTsKQEAgLTIwMywxMiArMjA0LDEyIEBAIG52MTBfZW1pdF96Y2xlYXIoc3RydWN0 IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAJCXRvX25vdXZlYXVfZnJhbWVidWZmZXIoY3R4 LT5EcmF3QnVmZmVyKTsKIAogCWlmIChuZmItPmhpZXJ6LmJvKSB7Ci0JCUJFR0lOX1JJTkcoY2hh biwgY2Vsc2l1cywgTlYxN1RDTF9aQ0xFQVJfRU5BQkxFLCAyKTsKKwkJQkVHSU5fUklORyhjaGFu LCBjZWxzaXVzLCBOVjE3XzNEX1pDTEVBUl9FTkFCTEUsIDIpOwogCQlPVVRfUklORyhjaGFuLCBu Y3R4LT5oaWVyei5jbGVhcl9ibG9ja2VkID8gMCA6IDEpOwogCQlPVVRfUklORyhjaGFuLCBuZmIt PmhpZXJ6LmNsZWFyX3ZhbHVlIHwKIAkJCSAobmN0eC0+aGllcnouY2xlYXJfc2VxICYgMHhmZikp OwogCX0gZWxzZSB7Ci0JCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9ERVBUSF9S QU5HRV9ORUFSLCAyKTsKKwkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX0RFUFRI X1JBTkdFX05FQVIsIDIpOwogCQlPVVRfUklOR2YoY2hhbiwgbnYxMF90cmFuc2Zvcm1fZGVwdGgo Y3R4LCAwKSk7CiAJCU9VVF9SSU5HZihjaGFuLCBudjEwX3RyYW5zZm9ybV9kZXB0aChjdHgsIDEp KTsKIAkJY29udGV4dF9kaXJ0eShjdHgsIFZJRVdQT1JUKTsKZGlmZiAtLWdpdCBhL3NyYy9tZXNh L2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0ZV9mcmFnLmMgYi9zcmMvbWVzYS9kcml2ZXJz L2RyaS9ub3V2ZWF1L252MTBfc3RhdGVfZnJhZy5jCmluZGV4IDUxMzhjMzYuLjFhZGM4NjAgMTAw NjQ0Ci0tLSBhL3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0ZV9mcmFnLmMK KysrIGIvc3JjL21lc2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX3N0YXRlX2ZyYWcuYwpAQCAt MjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIm5vdXZlYXVfZHJpdmVyLmgiCiAjaW5jbHVkZSAibm91 dmVhdV9jb250ZXh0LmgiCiAjaW5jbHVkZSAibm91dmVhdV9nbGRlZnMuaCIKLSNpbmNsdWRlICJu b3V2ZWF1X2NsYXNzLmgiCisjaW5jbHVkZSAibnYxMF8zZC54bWwuaCIKICNpbmNsdWRlICJub3V2 ZWF1X3V0aWwuaCIKICNpbmNsdWRlICJudjEwX2RyaXZlci5oIgogI2luY2x1ZGUgIm52MjBfZHJp dmVyLmgiCkBAIC00MSwyNCArNDEsMjQgQEAKICNkZWZpbmUgUkNfSU5fU0hJRlRfRwk0MAogCiAj ZGVmaW5lIFJDX0lOX1NPVVJDRShzb3VyY2UpCQkJCVwKLQkoKHVpbnQ2NF90KU5WMTBUQ0xfUkNf SU5fUkdCX0RfSU5QVVRfIyNzb3VyY2UpCisJKCh1aW50NjRfdClOVjEwXzNEX1JDX0lOX1JHQl9E X0lOUFVUXyMjc291cmNlKQogI2RlZmluZSBSQ19JTl9VU0FHRSh1c2FnZSkJCQkJCVwKLQkoKHVp bnQ2NF90KU5WMTBUQ0xfUkNfSU5fUkdCX0RfQ09NUE9ORU5UX1VTQUdFXyMjdXNhZ2UpCisJKCh1 aW50NjRfdClOVjEwXzNEX1JDX0lOX1JHQl9EX0NPTVBPTkVOVF9VU0FHRV8jI3VzYWdlKQogI2Rl ZmluZSBSQ19JTl9NQVBQSU5HKG1hcHBpbmcpCQkJCQlcCi0JKCh1aW50NjRfdClOVjEwVENMX1JD X0lOX1JHQl9EX01BUFBJTkdfIyNtYXBwaW5nKQorCSgodWludDY0X3QpTlYxMF8zRF9SQ19JTl9S R0JfRF9NQVBQSU5HXyMjbWFwcGluZykKIAotI2RlZmluZSBSQ19PVVRfQklBUwlOVjEwVENMX1JD X09VVF9SR0JfQklBU19CSUFTX0JZX05FR0FUSVZFX09ORV9IQUxGCi0jZGVmaW5lIFJDX09VVF9T Q0FMRV8xCU5WMTBUQ0xfUkNfT1VUX1JHQl9TQ0FMRV9OT05FCi0jZGVmaW5lIFJDX09VVF9TQ0FM RV8yCU5WMTBUQ0xfUkNfT1VUX1JHQl9TQ0FMRV9TQ0FMRV9CWV9UV08KLSNkZWZpbmUgUkNfT1VU X1NDQUxFXzQJTlYxMFRDTF9SQ19PVVRfUkdCX1NDQUxFX1NDQUxFX0JZX0ZPVVIKKyNkZWZpbmUg UkNfT1VUX0JJQVMJTlYxMF8zRF9SQ19PVVRfUkdCX0JJQVNfQklBU19CWV9ORUdBVElWRV9PTkVf SEFMRgorI2RlZmluZSBSQ19PVVRfU0NBTEVfMQlOVjEwXzNEX1JDX09VVF9SR0JfU0NBTEVfTk9O RQorI2RlZmluZSBSQ19PVVRfU0NBTEVfMglOVjEwXzNEX1JDX09VVF9SR0JfU0NBTEVfU0NBTEVf QllfVFdPCisjZGVmaW5lIFJDX09VVF9TQ0FMRV80CU5WMTBfM0RfUkNfT1VUX1JHQl9TQ0FMRV9T Q0FMRV9CWV9GT1VSCiAKIC8qIE1ha2UgdGhlIGNvbWJpbmVyIGRvOiBzcGFyZTBfaSA9IEFfaSAq IEJfaSAqLwotI2RlZmluZSBSQ19PVVRfQUIJTlYxMFRDTF9SQ19PVVRfUkdCX0FCX09VVFBVVF9T UEFSRTAKKyNkZWZpbmUgUkNfT1VUX0FCCU5WMTBfM0RfUkNfT1VUX1JHQl9BQl9PVVRQVVRfU1BB UkUwCiAvKiBzcGFyZTBfaSA9IGRvdDMoQSwgQikgKi8KLSNkZWZpbmUgUkNfT1VUX0RPVF9BQgko TlYxMFRDTF9SQ19PVVRfUkdCX0FCX09VVFBVVF9TUEFSRTAgfAlcCi0JCQkgTlYxMFRDTF9SQ19P VVRfUkdCX0FCX0RPVF9QUk9EVUNUKQorI2RlZmluZSBSQ19PVVRfRE9UX0FCCShOVjEwXzNEX1JD X09VVF9SR0JfQUJfT1VUUFVUX1NQQVJFMCB8CVwKKwkJCSBOVjEwXzNEX1JDX09VVF9SR0JfQUJf RE9UX1BST0RVQ1QpCiAvKiBzcGFyZTBfaSA9IEFfaSAqIEJfaSArIENfaSAqIERfaSAqLwotI2Rl ZmluZSBSQ19PVVRfU1VNCU5WMTBUQ0xfUkNfT1VUX1JHQl9TVU1fT1VUUFVUX1NQQVJFMAorI2Rl ZmluZSBSQ19PVVRfU1VNCU5WMTBfM0RfUkNfT1VUX1JHQl9TVU1fT1VUUFVUX1NQQVJFMAogCiBz dHJ1Y3QgY29tYmluZXJfc3RhdGUgewogCXN0cnVjdCBnbF9jb250ZXh0ICpjdHg7CkBAIC0zODMs MTUgKzM4MywxNSBAQCBudjEwX2VtaXRfdGV4X2VudihzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBp bnQgZW1pdCkKIAkJCWNfb3V0IHw9IDB4MyA8PCAyNzsKIAl9CiAKLQlCRUdJTl9SSU5HKGNoYW4s IGNlbHNpdXMsIE5WMTBUQ0xfUkNfSU5fQUxQSEEoaSksIDEpOworCUJFR0lOX1JJTkcoY2hhbiwg Y2Vsc2l1cywgTlYxMF8zRF9SQ19JTl9BTFBIQShpKSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgYV9p bik7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1JDX0lOX1JHQihpKSwgMSk7 CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1JDX0lOX1JHQihpKSwgMSk7CiAJ T1VUX1JJTkcoY2hhbiwgY19pbik7Ci0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENM X1JDX0NPTE9SKGkpLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfUkNf Q09MT1IoaSksIDEpOwogCU9VVF9SSU5HKGNoYW4sIGspOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMFRDTF9SQ19PVVRfQUxQSEEoaSksIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMF8zRF9SQ19PVVRfQUxQSEEoaSksIDEpOwogCU9VVF9SSU5HKGNoYW4sIGFfb3V0 KTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfUkNfT1VUX1JHQihpKSwgMSk7 CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1JDX09VVF9SR0IoaSksIDEpOwog CU9VVF9SSU5HKGNoYW4sIGNfb3V0KTsKIAogCWNvbnRleHRfZGlydHkoY3R4LCBGUkFHKTsKQEAg LTQwNyw3ICs0MDcsNyBAQCBudjEwX2VtaXRfZnJhZyhzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBp bnQgZW1pdCkKIAogCW52MTBfZ2V0X2ZpbmFsX2NvbWJpbmVyKGN0eCwgJmluLCAmbik7CiAKLQlC RUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfUkNfRklOQUwwLCAyKTsKKwlCRUdJTl9S SU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfUkNfRklOQUwwLCAyKTsKIAlPVVRfUklORyhjaGFu LCBpbik7CiAJT1VUX1JJTkcoY2hhbiwgaW4gPj4gMzIpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL21l c2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX3N0YXRlX3BvbHlnb24uYyBiL3NyYy9tZXNhL2Ry aXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0ZV9wb2x5Z29uLmMKaW5kZXggNGU0OWIwMi4uZjBm N2RkMiAxMDA2NDQKLS0tIGEvc3JjL21lc2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX3N0YXRl X3BvbHlnb24uYworKysgYi9zcmMvbWVzYS9kcml2ZXJzL2RyaS9ub3V2ZWF1L252MTBfc3RhdGVf cG9seWdvbi5jCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAibm91dmVhdV9kcml2ZXIuaCIK ICNpbmNsdWRlICJub3V2ZWF1X2NvbnRleHQuaCIKICNpbmNsdWRlICJub3V2ZWF1X2dsZGVmcy5o IgotI2luY2x1ZGUgIm5vdXZlYXVfY2xhc3MuaCIKKyNpbmNsdWRlICJudjEwXzNkLnhtbC5oIgog I2luY2x1ZGUgIm52MTBfZHJpdmVyLmgiCiAKIHZvaWQKQEAgLTM3LDEzICszNywxMyBAQCBudjEw X2VtaXRfY3VsbF9mYWNlKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCXN0cnVj dCBub3V2ZWF1X2dyb2JqICpjZWxzaXVzID0gY29udGV4dF9lbmczZChjdHgpOwogCUdMZW51bSBt b2RlID0gY3R4LT5Qb2x5Z29uLkN1bGxGYWNlTW9kZTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMFRDTF9DVUxMX0ZBQ0VfRU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNl bHNpdXMsIE5WMTBfM0RfQ1VMTF9GQUNFX0VOQUJMRSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgY3R4 LT5Qb2x5Z29uLkN1bGxGbGFnID8gMSA6IDApOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVz LCBOVjEwVENMX0NVTExfRkFDRSwgMSk7Ci0JT1VUX1JJTkcoY2hhbiwgKG1vZGUgPT0gR0xfRlJP TlQgPyBOVjEwVENMX0NVTExfRkFDRV9GUk9OVCA6Ci0JCQltb2RlID09IEdMX0JBQ0sgPyBOVjEw VENMX0NVTExfRkFDRV9CQUNLIDoKLQkJCU5WMTBUQ0xfQ1VMTF9GQUNFX0ZST05UX0FORF9CQUNL KSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX0NVTExfRkFDRSwgMSk7CisJ T1VUX1JJTkcoY2hhbiwgKG1vZGUgPT0gR0xfRlJPTlQgPyBOVjEwXzNEX0NVTExfRkFDRV9GUk9O VCA6CisJCQltb2RlID09IEdMX0JBQ0sgPyBOVjEwXzNEX0NVTExfRkFDRV9CQUNLIDoKKwkJCU5W MTBfM0RfQ1VMTF9GQUNFX0ZST05UX0FORF9CQUNLKSk7CiB9CiAKIHZvaWQKQEAgLTUyLDkgKzUy LDkgQEAgbnYxMF9lbWl0X2Zyb250X2ZhY2Uoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVt aXQpCiAJc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiA9IGNvbnRleHRfY2hhbihjdHgpOwog CXN0cnVjdCBub3V2ZWF1X2dyb2JqICpjZWxzaXVzID0gY29udGV4dF9lbmczZChjdHgpOwogCi0J QkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0ZST05UX0ZBQ0UsIDEpOworCUJFR0lO X1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9GUk9OVF9GQUNFLCAxKTsKIAlPVVRfUklORyhj aGFuLCBjdHgtPlBvbHlnb24uRnJvbnRGYWNlID09IEdMX0NXID8KLQkJIE5WMTBUQ0xfRlJPTlRf RkFDRV9DVyA6IE5WMTBUQ0xfRlJPTlRfRkFDRV9DQ1cpOworCQkgTlYxMF8zRF9GUk9OVF9GQUNF X0NXIDogTlYxMF8zRF9GUk9OVF9GQUNFX0NDVyk7CiB9CiAKIHZvaWQKQEAgLTY1LDEwICs2NSwx MCBAQCBudjEwX2VtaXRfbGluZV9tb2RlKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0 KQogCUdMYm9vbGVhbiBzbW9vdGggPSBjdHgtPkxpbmUuU21vb3RoRmxhZyAmJgogCQljdHgtPkhp bnQuTGluZVNtb290aCA9PSBHTF9OSUNFU1Q7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMs IE5WMTBUQ0xfTElORV9XSURUSCwgMSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEw XzNEX0xJTkVfV0lEVEgsIDEpOwogCU9VVF9SSU5HKGNoYW4sIE1BWDIoc21vb3RoID8gMCA6IDEs CiAJCQkgICAgY3R4LT5MaW5lLldpZHRoKSAqIDgpOwotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMFRDTF9MSU5FX1NNT09USF9FTkFCTEUsIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMF8zRF9MSU5FX1NNT09USF9FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNoYW4sIHNt b290aCA/IDEgOiAwKTsKIH0KIApAQCAtODMsMTAgKzgzLDEwIEBAIG52MTBfZW1pdF9wb2ludF9t b2RlKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCXN0cnVjdCBub3V2ZWF1X2No YW5uZWwgKmNoYW4gPSBjb250ZXh0X2NoYW4oY3R4KTsKIAlzdHJ1Y3Qgbm91dmVhdV9ncm9iaiAq Y2Vsc2l1cyA9IGNvbnRleHRfZW5nM2QoY3R4KTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMFRDTF9QT0lOVF9TSVpFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5W MTBfM0RfUE9JTlRfU0laRSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgKHVpbnQzMl90KShjdHgtPlBv aW50LlNpemUgKiA4KSk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfUE9J TlRfU01PT1RIX0VOQUJMRSwgMSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNE X1BPSU5UX1NNT09USF9FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNoYW4sIGN0eC0+UG9pbnQuU21v b3RoRmxhZyA/IDEgOiAwKTsKIH0KIApAQCAtOTYsMTEgKzk2LDExIEBAIG52MTBfZW1pdF9wb2x5 Z29uX21vZGUoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAJc3RydWN0IG5vdXZl YXVfY2hhbm5lbCAqY2hhbiA9IGNvbnRleHRfY2hhbihjdHgpOwogCXN0cnVjdCBub3V2ZWF1X2dy b2JqICpjZWxzaXVzID0gY29udGV4dF9lbmczZChjdHgpOwogCi0JQkVHSU5fUklORyhjaGFuLCBj ZWxzaXVzLCBOVjEwVENMX1BPTFlHT05fTU9ERV9GUk9OVCwgMik7CisJQkVHSU5fUklORyhjaGFu LCBjZWxzaXVzLCBOVjEwXzNEX1BPTFlHT05fTU9ERV9GUk9OVCwgMik7CiAJT1VUX1JJTkcoY2hh biwgbnZnbF9wb2x5Z29uX21vZGUoY3R4LT5Qb2x5Z29uLkZyb250TW9kZSkpOwogCU9VVF9SSU5H KGNoYW4sIG52Z2xfcG9seWdvbl9tb2RlKGN0eC0+UG9seWdvbi5CYWNrTW9kZSkpOwogCi0JQkVH SU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1BPTFlHT05fU01PT1RIX0VOQUJMRSwgMSk7 CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1BPTFlHT05fU01PT1RIX0VOQUJM RSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgY3R4LT5Qb2x5Z29uLlNtb290aEZsYWcgPyAxIDogMCk7 CiB9CiAKQEAgLTExMCwxMiArMTEwLDEyIEBAIG52MTBfZW1pdF9wb2x5Z29uX29mZnNldChzdHJ1 Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAlzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpj aGFuID0gY29udGV4dF9jaGFuKGN0eCk7CiAJc3RydWN0IG5vdXZlYXVfZ3JvYmogKmNlbHNpdXMg PSBjb250ZXh0X2VuZzNkKGN0eCk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBU Q0xfUE9MWUdPTl9PRkZTRVRfUE9JTlRfRU5BQkxFLCAzKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNl bHNpdXMsIE5WMTBfM0RfUE9MWUdPTl9PRkZTRVRfUE9JTlRfRU5BQkxFLCAzKTsKIAlPVVRfUklO RyhjaGFuLCBjdHgtPlBvbHlnb24uT2Zmc2V0UG9pbnQgPyAxIDogMCk7CiAJT1VUX1JJTkcoY2hh biwgY3R4LT5Qb2x5Z29uLk9mZnNldExpbmUgPyAxIDogMCk7CiAJT1VUX1JJTkcoY2hhbiwgY3R4 LT5Qb2x5Z29uLk9mZnNldEZpbGwgPyAxIDogMCk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNp dXMsIE5WMTBUQ0xfUE9MWUdPTl9PRkZTRVRfRkFDVE9SLCAyKTsKKwlCRUdJTl9SSU5HKGNoYW4s IGNlbHNpdXMsIE5WMTBfM0RfUE9MWUdPTl9PRkZTRVRfRkFDVE9SLCAyKTsKIAlPVVRfUklOR2Yo Y2hhbiwgY3R4LT5Qb2x5Z29uLk9mZnNldEZhY3Rvcik7CiAJT1VUX1JJTkdmKGNoYW4sIGN0eC0+ UG9seWdvbi5PZmZzZXRVbml0cyk7CiB9CmRpZmYgLS1naXQgYS9zcmMvbWVzYS9kcml2ZXJzL2Ry aS9ub3V2ZWF1L252MTBfc3RhdGVfcmFzdGVyLmMgYi9zcmMvbWVzYS9kcml2ZXJzL2RyaS9ub3V2 ZWF1L252MTBfc3RhdGVfcmFzdGVyLmMKaW5kZXggOTk2MDk4NC4uOTIxNTM5MSAxMDA2NDQKLS0t IGEvc3JjL21lc2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX3N0YXRlX3Jhc3Rlci5jCisrKyBi L3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0ZV9yYXN0ZXIuYwpAQCAtMjcs NyArMjcsNyBAQAogI2luY2x1ZGUgIm5vdXZlYXVfZHJpdmVyLmgiCiAjaW5jbHVkZSAibm91dmVh dV9jb250ZXh0LmgiCiAjaW5jbHVkZSAibm91dmVhdV9nbGRlZnMuaCIKLSNpbmNsdWRlICJub3V2 ZWF1X2NsYXNzLmgiCisjaW5jbHVkZSAibnYxMF8zZC54bWwuaCIKICNpbmNsdWRlICJudjEwX2Ry aXZlci5oIgogCiB2b2lkCkBAIC0zNiwxMCArMzYsMTAgQEAgbnYxMF9lbWl0X2FscGhhX2Z1bmMo c3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAJc3RydWN0IG5vdXZlYXVfY2hhbm5l bCAqY2hhbiA9IGNvbnRleHRfY2hhbihjdHgpOwogCXN0cnVjdCBub3V2ZWF1X2dyb2JqICpjZWxz aXVzID0gY29udGV4dF9lbmczZChjdHgpOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwVENMX0FMUEhBX0ZVTkNfRU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMs IE5WMTBfM0RfQUxQSEFfRlVOQ19FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNoYW4sIGN0eC0+Q29s b3IuQWxwaGFFbmFibGVkID8gMSA6IDApOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwVENMX0FMUEhBX0ZVTkNfRlVOQywgMik7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwXzNEX0FMUEhBX0ZVTkNfRlVOQywgMik7CiAJT1VUX1JJTkcoY2hhbiwgbnZnbF9jb21wYXJp c29uX29wKGN0eC0+Q29sb3IuQWxwaGFGdW5jKSk7CiAJT1VUX1JJTkcoY2hhbiwgRkxPQVRfVE9f VUJZVEUoY3R4LT5Db2xvci5BbHBoYVJlZikpOwogfQpAQCAtNTAsNyArNTAsNyBAQCBudjEwX2Vt aXRfYmxlbmRfY29sb3Ioc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAJc3RydWN0 IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiA9IGNvbnRleHRfY2hhbihjdHgpOwogCXN0cnVjdCBub3V2 ZWF1X2dyb2JqICpjZWxzaXVzID0gY29udGV4dF9lbmczZChjdHgpOwogCi0JQkVHSU5fUklORyhj aGFuLCBjZWxzaXVzLCBOVjEwVENMX0JMRU5EX0NPTE9SLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4s IGNlbHNpdXMsIE5WMTBfM0RfQkxFTkRfQ09MT1IsIDEpOwogCU9VVF9SSU5HKGNoYW4sIEZMT0FU X1RPX1VCWVRFKGN0eC0+Q29sb3IuQmxlbmRDb2xvclszXSkgPDwgMjQgfAogCQkgRkxPQVRfVE9f VUJZVEUoY3R4LT5Db2xvci5CbGVuZENvbG9yWzBdKSA8PCAxNiB8CiAJCSBGTE9BVF9UT19VQllU RShjdHgtPkNvbG9yLkJsZW5kQ29sb3JbMV0pIDw8IDggfApAQCAtNjMsMTAgKzYzLDEwIEBAIG52 MTBfZW1pdF9ibGVuZF9lcXVhdGlvbihzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkK IAlzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuID0gY29udGV4dF9jaGFuKGN0eCk7CiAJc3Ry dWN0IG5vdXZlYXVfZ3JvYmogKmNlbHNpdXMgPSBjb250ZXh0X2VuZzNkKGN0eCk7CiAKLQlCRUdJ Tl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfQkxFTkRfRlVOQ19FTkFCTEUsIDEpOworCUJF R0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9CTEVORF9GVU5DX0VOQUJMRSwgMSk7CiAJ T1VUX1JJTkcoY2hhbiwgY3R4LT5Db2xvci5CbGVuZEVuYWJsZWQgPyAxIDogMCk7CiAKLQlCRUdJ Tl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfQkxFTkRfRVFVQVRJT04sIDEpOworCUJFR0lO X1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9CTEVORF9FUVVBVElPTiwgMSk7CiAJT1VUX1JJ TkcoY2hhbiwgbnZnbF9ibGVuZF9lcW4oY3R4LT5Db2xvci5CbGVuZEVxdWF0aW9uUkdCKSk7CiB9 CiAKQEAgLTc2LDcgKzc2LDcgQEAgbnYxMF9lbWl0X2JsZW5kX2Z1bmMoc3RydWN0IGdsX2NvbnRl eHQgKmN0eCwgaW50IGVtaXQpCiAJc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiA9IGNvbnRl eHRfY2hhbihjdHgpOwogCXN0cnVjdCBub3V2ZWF1X2dyb2JqICpjZWxzaXVzID0gY29udGV4dF9l bmczZChjdHgpOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0JMRU5EX0ZV TkNfU1JDLCAyKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfQkxFTkRfRlVO Q19TUkMsIDIpOwogCU9VVF9SSU5HKGNoYW4sIG52Z2xfYmxlbmRfZnVuYyhjdHgtPkNvbG9yLkJs ZW5kU3JjUkdCKSk7CiAJT1VUX1JJTkcoY2hhbiwgbnZnbF9ibGVuZF9mdW5jKGN0eC0+Q29sb3Iu QmxlbmREc3RSR0IpKTsKIH0KQEAgLTg3LDcgKzg3LDcgQEAgbnYxMF9lbWl0X2NvbG9yX21hc2so c3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAJc3RydWN0IG5vdXZlYXVfY2hhbm5l bCAqY2hhbiA9IGNvbnRleHRfY2hhbihjdHgpOwogCXN0cnVjdCBub3V2ZWF1X2dyb2JqICpjZWxz aXVzID0gY29udGV4dF9lbmczZChjdHgpOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwVENMX0NPTE9SX01BU0ssIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8z RF9DT0xPUl9NQVNLLCAxKTsKIAlPVVRfUklORyhjaGFuLCAoKGN0eC0+Q29sb3IuQ29sb3JNYXNr WzBdWzNdID8gMSA8PCAyNCA6IDApIHwKIAkJCShjdHgtPkNvbG9yLkNvbG9yTWFza1swXVswXSA/ IDEgPDwgMTYgOiAwKSB8CiAJCQkoY3R4LT5Db2xvci5Db2xvck1hc2tbMF1bMV0gPyAxIDw8IDgg OiAwKSB8CkBAIC0xMDAsMTEgKzEwMCwxMSBAQCBudjEwX2VtaXRfZGVwdGgoc3RydWN0IGdsX2Nv bnRleHQgKmN0eCwgaW50IGVtaXQpCiAJc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiA9IGNv bnRleHRfY2hhbihjdHgpOwogCXN0cnVjdCBub3V2ZWF1X2dyb2JqICpjZWxzaXVzID0gY29udGV4 dF9lbmczZChjdHgpOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0RFUFRI X1RFU1RfRU5BQkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfREVQ VEhfVEVTVF9FTkFCTEUsIDEpOwogCU9VVF9SSU5HKGNoYW4sIGN0eC0+RGVwdGguVGVzdCA/IDEg OiAwKTsKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfREVQVEhfV1JJVEVfRU5B QkxFLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfREVQVEhfV1JJVEVf RU5BQkxFLCAxKTsKIAlPVVRfUklORyhjaGFuLCBjdHgtPkRlcHRoLk1hc2sgPyAxIDogMCk7Ci0J QkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0RFUFRIX0ZVTkMsIDEpOworCUJFR0lO X1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9ERVBUSF9GVU5DLCAxKTsKIAlPVVRfUklORyhj aGFuLCBudmdsX2NvbXBhcmlzb25fb3AoY3R4LT5EZXB0aC5GdW5jKSk7CiB9CiAKQEAgLTExNCw3 ICsxMTQsNyBAQCBudjEwX2VtaXRfZGl0aGVyKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBl bWl0KQogCXN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4gPSBjb250ZXh0X2NoYW4oY3R4KTsK IAlzdHJ1Y3Qgbm91dmVhdV9ncm9iaiAqY2Vsc2l1cyA9IGNvbnRleHRfZW5nM2QoY3R4KTsKIAot CUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9ESVRIRVJfRU5BQkxFLCAxKTsKKwlC RUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfRElUSEVSX0VOQUJMRSwgMSk7CiAJT1VU X1JJTkcoY2hhbiwgY3R4LT5Db2xvci5EaXRoZXJGbGFnID8gMSA6IDApOwogfQogCkBAIC0xMjcs NyArMTI3LDcgQEAgbnYxMF9lbWl0X2xvZ2ljX29wY29kZShzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4 LCBpbnQgZW1pdCkKIAlhc3NlcnQoIWN0eC0+Q29sb3IuQ29sb3JMb2dpY09wRW5hYmxlZAogCSAg ICAgICB8fCBjb250ZXh0X2NoaXBzZXQoY3R4KSA+PSAweDExKTsKIAotCUJFR0lOX1JJTkcoY2hh biwgY2Vsc2l1cywgTlYxMVRDTF9DT0xPUl9MT0dJQ19PUF9FTkFCTEUsIDIpOworCUJFR0lOX1JJ TkcoY2hhbiwgY2Vsc2l1cywgTlYxMV8zRF9DT0xPUl9MT0dJQ19PUF9FTkFCTEUsIDIpOwogCU9V VF9SSU5HKGNoYW4sIGN0eC0+Q29sb3IuQ29sb3JMb2dpY09wRW5hYmxlZCA/IDEgOiAwKTsKIAlP VVRfUklORyhjaGFuLCBudmdsX2xvZ2ljb3BfZnVuYyhjdHgtPkNvbG9yLkxvZ2ljT3ApKTsKIH0K QEAgLTEzOCw5ICsxMzgsOSBAQCBudjEwX2VtaXRfc2hhZGVfbW9kZWwoc3RydWN0IGdsX2NvbnRl eHQgKmN0eCwgaW50IGVtaXQpCiAJc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiA9IGNvbnRl eHRfY2hhbihjdHgpOwogCXN0cnVjdCBub3V2ZWF1X2dyb2JqICpjZWxzaXVzID0gY29udGV4dF9l bmczZChjdHgpOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1NIQURFX01P REVMLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfU0hBREVfTU9ERUws IDEpOwogCU9VVF9SSU5HKGNoYW4sIGN0eC0+TGlnaHQuU2hhZGVNb2RlbCA9PSBHTF9TTU9PVEgg PwotCQkgTlYxMFRDTF9TSEFERV9NT0RFTF9TTU9PVEggOiBOVjEwVENMX1NIQURFX01PREVMX0ZM QVQpOworCQkgTlYxMF8zRF9TSEFERV9NT0RFTF9TTU9PVEggOiBOVjEwXzNEX1NIQURFX01PREVM X0ZMQVQpOwogfQogCiB2b2lkCkBAIC0xNDksMTAgKzE0OSwxMCBAQCBudjEwX2VtaXRfc3RlbmNp bF9mdW5jKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCXN0cnVjdCBub3V2ZWF1 X2NoYW5uZWwgKmNoYW4gPSBjb250ZXh0X2NoYW4oY3R4KTsKIAlzdHJ1Y3Qgbm91dmVhdV9ncm9i aiAqY2Vsc2l1cyA9IGNvbnRleHRfZW5nM2QoY3R4KTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vs c2l1cywgTlYxMFRDTF9TVEVOQ0lMX0VOQUJMRSwgMSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxz aXVzLCBOVjEwXzNEX1NURU5DSUxfRU5BQkxFLCAxKTsKIAlPVVRfUklORyhjaGFuLCBjdHgtPlN0 ZW5jaWwuRW5hYmxlZCA/IDEgOiAwKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYx MFRDTF9TVEVOQ0lMX0ZVTkNfRlVOQywgMyk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwXzNEX1NURU5DSUxfRlVOQ19GVU5DLCAzKTsKIAlPVVRfUklORyhjaGFuLCBudmdsX2NvbXBh cmlzb25fb3AoY3R4LT5TdGVuY2lsLkZ1bmN0aW9uWzBdKSk7CiAJT1VUX1JJTkcoY2hhbiwgY3R4 LT5TdGVuY2lsLlJlZlswXSk7CiAJT1VUX1JJTkcoY2hhbiwgY3R4LT5TdGVuY2lsLlZhbHVlTWFz a1swXSk7CkBAIC0xNjQsNyArMTY0LDcgQEAgbnYxMF9lbWl0X3N0ZW5jaWxfbWFzayhzdHJ1Y3Qg Z2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAlzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFu ID0gY29udGV4dF9jaGFuKGN0eCk7CiAJc3RydWN0IG5vdXZlYXVfZ3JvYmogKmNlbHNpdXMgPSBj b250ZXh0X2VuZzNkKGN0eCk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xf U1RFTkNJTF9NQVNLLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfU1RF TkNJTF9NQVNLLCAxKTsKIAlPVVRfUklORyhjaGFuLCBjdHgtPlN0ZW5jaWwuV3JpdGVNYXNrWzBd KTsKIH0KIApAQCAtMTc0LDcgKzE3NCw3IEBAIG52MTBfZW1pdF9zdGVuY2lsX29wKHN0cnVjdCBn bF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCXN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4g PSBjb250ZXh0X2NoYW4oY3R4KTsKIAlzdHJ1Y3Qgbm91dmVhdV9ncm9iaiAqY2Vsc2l1cyA9IGNv bnRleHRfZW5nM2QoY3R4KTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9T VEVOQ0lMX09QX0ZBSUwsIDMpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9T VEVOQ0lMX09QX0ZBSUwsIDMpOwogCU9VVF9SSU5HKGNoYW4sIG52Z2xfc3RlbmNpbF9vcChjdHgt PlN0ZW5jaWwuRmFpbEZ1bmNbMF0pKTsKIAlPVVRfUklORyhjaGFuLCBudmdsX3N0ZW5jaWxfb3Ao Y3R4LT5TdGVuY2lsLlpGYWlsRnVuY1swXSkpOwogCU9VVF9SSU5HKGNoYW4sIG52Z2xfc3RlbmNp bF9vcChjdHgtPlN0ZW5jaWwuWlBhc3NGdW5jWzBdKSk7CmRpZmYgLS1naXQgYS9zcmMvbWVzYS9k cml2ZXJzL2RyaS9ub3V2ZWF1L252MTBfc3RhdGVfdGV4LmMgYi9zcmMvbWVzYS9kcml2ZXJzL2Ry aS9ub3V2ZWF1L252MTBfc3RhdGVfdGV4LmMKaW5kZXggMDA5MmFkMC4uNGRjMjFmNCAxMDA2NDQK LS0tIGEvc3JjL21lc2EvZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX3N0YXRlX3RleC5jCisrKyBi L3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUvbnYxMF9zdGF0ZV90ZXguYwpAQCAtMjgsMTQg KzI4LDEwIEBACiAjaW5jbHVkZSAibm91dmVhdV9jb250ZXh0LmgiCiAjaW5jbHVkZSAibm91dmVh dV9nbGRlZnMuaCIKICNpbmNsdWRlICJub3V2ZWF1X3RleHR1cmUuaCIKLSNpbmNsdWRlICJub3V2 ZWF1X2NsYXNzLmgiCisjaW5jbHVkZSAibnYxMF8zZC54bWwuaCIKICNpbmNsdWRlICJub3V2ZWF1 X3V0aWwuaCIKICNpbmNsdWRlICJudjEwX2RyaXZlci5oIgogCi0jZGVmaW5lIFRYX0dFTl9NT0RF KGksIGopIChOVjEwVENMX1RYX0dFTl9NT0RFX1MoaSkgKyA0ICogKGopKQotI2RlZmluZSBUWF9H RU5fQ09FRkYoaSwgaikgKE5WMTBUQ0xfVFhfR0VOX0NPRUZGX1NfQShpKSArIDE2ICogKGopKQot I2RlZmluZSBUWF9NQVRSSVgoaSkgKE5WMTBUQ0xfVFgwX01BVFJJWCgwKSArIDY0ICogKGkpKQot CiB2b2lkCiBudjEwX2VtaXRfdGV4X2dlbihzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1p dCkKIHsKQEAgLTUzLDE1ICs0OSwxNSBAQCBudjEwX2VtaXRfdGV4X2dlbihzdHJ1Y3QgZ2xfY29u dGV4dCAqY3R4LCBpbnQgZW1pdCkKIAogCQkJaWYgKGspIHsKIAkJCQlCRUdJTl9SSU5HKGNoYW4s IGNlbHNpdXMsCi0JCQkJCSAgIFRYX0dFTl9DT0VGRihpLCBqKSwgNCk7CisJCQkJCSAgIE5WMTBf M0RfVEVYX0dFTl9DT0VGRihpLCBqKSwgNCk7CiAJCQkJT1VUX1JJTkdwKGNoYW4sIGssIDQpOwog CQkJfQogCi0JCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIFRYX0dFTl9NT0RFKGksIGopLCAx KTsKKwkJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9URVhfR0VOX01PREUoaSwg aiksIDEpOwogCQkJT1VUX1JJTkcoY2hhbiwgbnZnbF90ZXhnZW5fbW9kZShjb29yZC0+TW9kZSkp OwogCiAJCX0gZWxzZSB7Ci0JCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIFRYX0dFTl9NT0RF KGksIGopLCAxKTsKKwkJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9URVhfR0VO X01PREUoaSwgaiksIDEpOwogCQkJT1VUX1JJTkcoY2hhbiwgMCk7CiAJCX0KIAl9CkBAIC04MCwx NCArNzYsMTQgQEAgbnYxMF9lbWl0X3RleF9tYXQoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50 IGVtaXQpCiAJaWYgKG5jdHgtPmZhbGxiYWNrID09IEhXVE5MICYmCiAJICAgICgoY3R4LT5UZXh0 dXJlLl9UZXhNYXRFbmFibGVkICYgMSA8PCBpKSB8fAogCSAgICAgY3R4LT5UZXh0dXJlLlVuaXRb aV0uX0dlbkZsYWdzKSkgewotCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfVFhf TUFUUklYX0VOQUJMRShpKSwgMSk7CisJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8z RF9URVhfTUFUUklYX0VOQUJMRShpKSwgMSk7CiAJCU9VVF9SSU5HKGNoYW4sIDEpOwogCi0JCUJF R0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgVFhfTUFUUklYKGkpLCAxNik7CisJCUJFR0lOX1JJTkco Y2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9URVhfTUFUUklYKGksIDApLCAxNik7CiAJCU9VVF9SSU5H bShjaGFuLCBjdHgtPlRleHR1cmVNYXRyaXhTdGFja1tpXS5Ub3AtPm0pOwogCiAJfSBlbHNlIHsK LQkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1RYX01BVFJJWF9FTkFCTEUoaSks IDEpOworCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVEVYX01BVFJJWF9FTkFC TEUoaSksIDEpOwogCQlPVVRfUklORyhjaGFuLCAwKTsKIAl9CiB9CkBAIC05NywyOSArOTMsMjkg QEAgZ2V0X3RleF9mb3JtYXRfcG90KHN0cnVjdCBnbF90ZXh0dXJlX2ltYWdlICp0aSkKIHsKIAlz d2l0Y2ggKHRpLT5UZXhGb3JtYXQpIHsKIAljYXNlIE1FU0FfRk9STUFUX0FSR0I4ODg4OgotCQly ZXR1cm4gTlYxMFRDTF9UWF9GT1JNQVRfRk9STUFUX0E4UjhHOEI4OworCQlyZXR1cm4gTlYxMF8z RF9URVhfRk9STUFUX0ZPUk1BVF9BOFI4RzhCODsKIAogCWNhc2UgTUVTQV9GT1JNQVRfWFJHQjg4 ODg6Ci0JCXJldHVybiBOVjEwVENMX1RYX0ZPUk1BVF9GT1JNQVRfWDhSOEc4Qjg7CisJCXJldHVy biBOVjEwXzNEX1RFWF9GT1JNQVRfRk9STUFUX1g4UjhHOEI4OwogCiAJY2FzZSBNRVNBX0ZPUk1B VF9BUkdCMTU1NToKLQkJcmV0dXJuIE5WMTBUQ0xfVFhfRk9STUFUX0ZPUk1BVF9BMVI1RzVCNTsK KwkJcmV0dXJuIE5WMTBfM0RfVEVYX0ZPUk1BVF9GT1JNQVRfQTFSNUc1QjU7CiAKIAljYXNlIE1F U0FfRk9STUFUX0FSR0I0NDQ0OgotCQlyZXR1cm4gTlYxMFRDTF9UWF9GT1JNQVRfRk9STUFUX0E0 UjRHNEI0OworCQlyZXR1cm4gTlYxMF8zRF9URVhfRk9STUFUX0ZPUk1BVF9BNFI0RzRCNDsKIAog CWNhc2UgTUVTQV9GT1JNQVRfUkdCNTY1OgotCQlyZXR1cm4gTlYxMFRDTF9UWF9GT1JNQVRfRk9S TUFUX1I1RzZCNTsKKwkJcmV0dXJuIE5WMTBfM0RfVEVYX0ZPUk1BVF9GT1JNQVRfUjVHNkI1Owog CiAJY2FzZSBNRVNBX0ZPUk1BVF9BODoKIAljYXNlIE1FU0FfRk9STUFUX0k4OgotCQlyZXR1cm4g TlYxMFRDTF9UWF9GT1JNQVRfRk9STUFUX0E4OworCQlyZXR1cm4gTlYxMF8zRF9URVhfRk9STUFU X0ZPUk1BVF9JODsKIAogCWNhc2UgTUVTQV9GT1JNQVRfTDg6Ci0JCXJldHVybiBOVjEwVENMX1RY X0ZPUk1BVF9GT1JNQVRfTDg7CisJCXJldHVybiBOVjEwXzNEX1RFWF9GT1JNQVRfRk9STUFUX0w4 OwogCiAJY2FzZSBNRVNBX0ZPUk1BVF9DSTg6Ci0JCXJldHVybiBOVjEwVENMX1RYX0ZPUk1BVF9G T1JNQVRfSU5ERVg4OworCQlyZXR1cm4gTlYxMF8zRF9URVhfRk9STUFUX0ZPUk1BVF9JTkRFWDg7 CiAKIAlkZWZhdWx0OgogCQlhc3NlcnQoMCk7CkBAIC0xMzEsMTkgKzEyNywxOSBAQCBnZXRfdGV4 X2Zvcm1hdF9yZWN0KHN0cnVjdCBnbF90ZXh0dXJlX2ltYWdlICp0aSkKIHsKIAlzd2l0Y2ggKHRp LT5UZXhGb3JtYXQpIHsKIAljYXNlIE1FU0FfRk9STUFUX0FSR0IxNTU1OgotCQlyZXR1cm4gTlYx MFRDTF9UWF9GT1JNQVRfRk9STUFUX0ExUjVHNUI1X1JFQ1Q7CisJCXJldHVybiBOVjEwXzNEX1RF WF9GT1JNQVRfRk9STUFUX0ExUjVHNUI1X1JFQ1Q7CiAKIAljYXNlIE1FU0FfRk9STUFUX1JHQjU2 NToKLQkJcmV0dXJuIE5WMTBUQ0xfVFhfRk9STUFUX0ZPUk1BVF9SNUc2QjVfUkVDVDsKKwkJcmV0 dXJuIE5WMTBfM0RfVEVYX0ZPUk1BVF9GT1JNQVRfUjVHNkI1X1JFQ1Q7CiAKIAljYXNlIE1FU0Ff Rk9STUFUX0FSR0I4ODg4OgogCWNhc2UgTUVTQV9GT1JNQVRfWFJHQjg4ODg6Ci0JCXJldHVybiBO VjEwVENMX1RYX0ZPUk1BVF9GT1JNQVRfQThSOEc4QjhfUkVDVDsKKwkJcmV0dXJuIE5WMTBfM0Rf VEVYX0ZPUk1BVF9GT1JNQVRfQThSOEc4QjhfUkVDVDsKIAogCWNhc2UgTUVTQV9GT1JNQVRfQTg6 CiAJY2FzZSBNRVNBX0ZPUk1BVF9MODoKIAljYXNlIE1FU0FfRk9STUFUX0k4OgotCQlyZXR1cm4g TlYxMFRDTF9UWF9GT1JNQVRfRk9STUFUX0E4X1JFQ1Q7CisJCXJldHVybiBOVjEwXzNEX1RFWF9G T1JNQVRfRk9STUFUX0k4X1JFQ1Q7CiAKIAlkZWZhdWx0OgogCQlhc3NlcnQoMCk7CkBAIC0xNjQs NyArMTYwLDcgQEAgbnYxMF9lbWl0X3RleF9vYmooc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50 IGVtaXQpCiAJdWludDMyX3QgdHhfZm9ybWF0LCB0eF9maWx0ZXIsIHR4X2VuYWJsZTsKIAogCWlm ICghY3R4LT5UZXh0dXJlLlVuaXRbaV0uX1JlYWxseUVuYWJsZWQpIHsKLQkJQkVHSU5fUklORyhj aGFuLCBjZWxzaXVzLCBOVjEwVENMX1RYX0VOQUJMRShpKSwgMSk7CisJCUJFR0lOX1JJTkcoY2hh biwgY2Vsc2l1cywgTlYxMF8zRF9URVhfRU5BQkxFKGkpLCAxKTsKIAkJT1VUX1JJTkcoY2hhbiwg MCk7CiAJCXJldHVybjsKIAl9CkBAIC0xODYsMTMgKzE4MiwxMyBAQCBudjEwX2VtaXRfdGV4X29i aihzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAl0eF9maWx0ZXIgPSBudmdsX2Zp bHRlcl9tb2RlKHQtPk1hZ0ZpbHRlcikgPDwgMjgKIAkJfCBudmdsX2ZpbHRlcl9tb2RlKHQtPk1p bkZpbHRlcikgPDwgMjQ7CiAKLQl0eF9lbmFibGUgPSBOVjEwVENMX1RYX0VOQUJMRV9FTkFCTEUK Kwl0eF9lbmFibGUgPSBOVjEwXzNEX1RFWF9FTkFCTEVfRU5BQkxFCiAJCXwgbG9nMmkodC0+TWF4 QW5pc290cm9weSkgPDwgNDsKIAogCWlmICh0LT5UYXJnZXQgPT0gR0xfVEVYVFVSRV9SRUNUQU5H TEUpIHsKLQkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1RYX05QT1RfUElUQ0go aSksIDEpOworCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVEVYX05QT1RfUElU Q0goaSksIDEpOwogCQlPVVRfUklORyhjaGFuLCBzLT5waXRjaCA8PCAxNik7Ci0JCUJFR0lOX1JJ TkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9UWF9OUE9UX1NJWkUoaSksIDEpOworCQlCRUdJTl9S SU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfVEVYX05QT1RfU0laRShpKSwgMSk7CiAJCU9VVF9S SU5HKGNoYW4sIGFsaWduKHMtPndpZHRoLCAyKSA8PCAxNiB8IHMtPmhlaWdodCk7CiAKIAkJdHhf Zm9ybWF0IHw9IGdldF90ZXhfZm9ybWF0X3JlY3QodGkpOwpAQCAtMjExLDI2ICsyMDcsMjYgQEAg bnYxMF9lbWl0X3RleF9vYmooc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAJCWxv ZF9taW4gPSBDTEFNUChsb2RfbWluLCAwLCAxNSk7CiAJCWxvZF9iaWFzID0gQ0xBTVAobG9kX2Jp YXMsIDAsIDE1KTsKIAotCQl0eF9mb3JtYXQgfD0gTlYxMFRDTF9UWF9GT1JNQVRfTUlQTUFQOwor CQl0eF9mb3JtYXQgfD0gTlYxMF8zRF9URVhfRk9STUFUX01JUE1BUDsKIAkJdHhfZmlsdGVyIHw9 IGxvZF9iaWFzIDw8IDg7CiAJCXR4X2VuYWJsZSB8PSBsb2RfbWluIDw8IDI2CiAJCQl8IGxvZF9t YXggPDwgMTQ7CiAJfQogCiAJLyogV3JpdGUgaXQgdG8gdGhlIGhhcmR3YXJlLiAqLwotCW5vdXZl YXVfYm9fbWFyayhiY3R4LCBjZWxzaXVzLCBOVjEwVENMX1RYX0ZPUk1BVChpKSwKKwlub3V2ZWF1 X2JvX21hcmsoYmN0eCwgY2Vsc2l1cywgTlYxMF8zRF9URVhfRk9STUFUKGkpLAogCQkJcy0+Ym8s IHR4X2Zvcm1hdCwgMCwKLQkJCU5WMTBUQ0xfVFhfRk9STUFUX0RNQTAsCi0JCQlOVjEwVENMX1RY X0ZPUk1BVF9ETUExLAorCQkJTlYxMF8zRF9URVhfRk9STUFUX0RNQTAsCisJCQlOVjEwXzNEX1RF WF9GT1JNQVRfRE1BMSwKIAkJCWJvX2ZsYWdzIHwgTk9VVkVBVV9CT19PUik7CiAKLQlub3V2ZWF1 X2JvX21hcmtsKGJjdHgsIGNlbHNpdXMsIE5WMTBUQ0xfVFhfT0ZGU0VUKGkpLAorCW5vdXZlYXVf Ym9fbWFya2woYmN0eCwgY2Vsc2l1cywgTlYxMF8zRF9URVhfT0ZGU0VUKGkpLAogCQkJIHMtPmJv LCBzLT5vZmZzZXQsIGJvX2ZsYWdzKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYx MFRDTF9UWF9GSUxURVIoaSksIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8z RF9URVhfRklMVEVSKGkpLCAxKTsKIAlPVVRfUklORyhjaGFuLCB0eF9maWx0ZXIpOwogCi0JQkVH SU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1RYX0VOQUJMRShpKSwgMSk7CisJQkVHSU5f UklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1RFWF9FTkFCTEUoaSksIDEpOwogCU9VVF9SSU5H KGNoYW4sIHR4X2VuYWJsZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9tZXNhL2RyaXZlcnMvZHJp L25vdXZlYXUvbnYxMF9zdGF0ZV90bmwuYyBiL3NyYy9tZXNhL2RyaXZlcnMvZHJpL25vdXZlYXUv bnYxMF9zdGF0ZV90bmwuYwppbmRleCAxNzVhYmZjLi5iOWQwN2MxIDEwMDY0NAotLS0gYS9zcmMv bWVzYS9kcml2ZXJzL2RyaS9ub3V2ZWF1L252MTBfc3RhdGVfdG5sLmMKKysrIGIvc3JjL21lc2Ev ZHJpdmVycy9kcmkvbm91dmVhdS9udjEwX3N0YXRlX3RubC5jCkBAIC0yOCw3ICsyOCw3IEBACiAj aW5jbHVkZSAibm91dmVhdV9jb250ZXh0LmgiCiAjaW5jbHVkZSAibm91dmVhdV9nbGRlZnMuaCIK ICNpbmNsdWRlICJub3V2ZWF1X3V0aWwuaCIKLSNpbmNsdWRlICJub3V2ZWF1X2NsYXNzLmgiCisj aW5jbHVkZSAibnYxMF8zZC54bWwuaCIKICNpbmNsdWRlICJudjEwX2RyaXZlci5oIgogCiB2b2lk CkBAIC00MiwxMyArNDIsMTMgQEAgZ2V0X21hdGVyaWFsX2JpdG1hc2sodW5zaWduZWQgbSkKIAl1 bnNpZ25lZCByZXQgPSAwOwogCiAJaWYgKG0gJiBNQVRfQklUX0ZST05UX0VNSVNTSU9OKQotCQly ZXQgfD0gTlYxMFRDTF9DT0xPUl9NQVRFUklBTF9FTUlTU0lPTjsKKwkJcmV0IHw9IE5WMTBfM0Rf Q09MT1JfTUFURVJJQUxfRU1JU1NJT047CiAJaWYgKG0gJiBNQVRfQklUX0ZST05UX0FNQklFTlQp Ci0JCXJldCB8PSBOVjEwVENMX0NPTE9SX01BVEVSSUFMX0FNQklFTlQ7CisJCXJldCB8PSBOVjEw XzNEX0NPTE9SX01BVEVSSUFMX0FNQklFTlQ7CiAJaWYgKG0gJiBNQVRfQklUX0ZST05UX0RJRkZV U0UpCi0JCXJldCB8PSBOVjEwVENMX0NPTE9SX01BVEVSSUFMX0RJRkZVU0U7CisJCXJldCB8PSBO VjEwXzNEX0NPTE9SX01BVEVSSUFMX0RJRkZVU0U7CiAJaWYgKG0gJiBNQVRfQklUX0ZST05UX1NQ RUNVTEFSKQotCQlyZXQgfD0gTlYxMFRDTF9DT0xPUl9NQVRFUklBTF9TUEVDVUxBUjsKKwkJcmV0 IHw9IE5WMTBfM0RfQ09MT1JfTUFURVJJQUxfU1BFQ1VMQVI7CiAKIAlyZXR1cm4gcmV0OwogfQpA QCAtNjAsNyArNjAsNyBAQCBudjEwX2VtaXRfY29sb3JfbWF0ZXJpYWwoc3RydWN0IGdsX2NvbnRl eHQgKmN0eCwgaW50IGVtaXQpCiAJc3RydWN0IG5vdXZlYXVfZ3JvYmogKmNlbHNpdXMgPSBjb250 ZXh0X2VuZzNkKGN0eCk7CiAJdW5zaWduZWQgbWFzayA9IGdldF9tYXRlcmlhbF9iaXRtYXNrKGN0 eC0+TGlnaHQuQ29sb3JNYXRlcmlhbEJpdG1hc2spOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxz aXVzLCBOVjEwVENMX0NPTE9SX01BVEVSSUFMLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNp dXMsIE5WMTBfM0RfQ09MT1JfTUFURVJJQUwsIDEpOwogCU9VVF9SSU5HKGNoYW4sIGN0eC0+TGln aHQuQ29sb3JNYXRlcmlhbEVuYWJsZWQgPyBtYXNrIDogMCk7CiB9CiAKQEAgLTY5LDExICs2OSwx MSBAQCBnZXRfZm9nX21vZGUodW5zaWduZWQgbW9kZSkKIHsKIAlzd2l0Y2ggKG1vZGUpIHsKIAlj YXNlIEdMX0xJTkVBUjoKLQkJcmV0dXJuIE5WMTBUQ0xfRk9HX01PREVfTElORUFSOworCQlyZXR1 cm4gTlYxMF8zRF9GT0dfTU9ERV9MSU5FQVI7CiAJY2FzZSBHTF9FWFA6Ci0JCXJldHVybiBOVjEw VENMX0ZPR19NT0RFX0VYUDsKKwkJcmV0dXJuIE5WMTBfM0RfRk9HX01PREVfRVhQOwogCWNhc2Ug R0xfRVhQMjoKLQkJcmV0dXJuIE5WMTBUQ0xfRk9HX01PREVfRVhQMjsKKwkJcmV0dXJuIE5WMTBf M0RfRk9HX01PREVfRVhQMjsKIAlkZWZhdWx0OgogCQlhc3NlcnQoMCk7CiAJfQpAQCAtODQsOSAr ODQsOSBAQCBnZXRfZm9nX3NvdXJjZSh1bnNpZ25lZCBzb3VyY2UpCiB7CiAJc3dpdGNoIChzb3Vy Y2UpIHsKIAljYXNlIEdMX0ZPR19DT09SRElOQVRFX0VYVDoKLQkJcmV0dXJuIE5WMTBUQ0xfRk9H X0NPT1JEX0ZPRzsKKwkJcmV0dXJuIE5WMTBfM0RfRk9HX0NPT1JEX0ZPRzsKIAljYXNlIEdMX0ZS QUdNRU5UX0RFUFRIX0VYVDoKLQkJcmV0dXJuIE5WMTBUQ0xfRk9HX0NPT1JEX0RJU1RfT1JUSE9H T05BTF9BQlM7CisJCXJldHVybiBOVjEwXzNEX0ZPR19DT09SRF9ESVNUX09SVEhPR09OQUxfQUJT OwogCWRlZmF1bHQ6CiAJCWFzc2VydCgwKTsKIAl9CkBAIC0xMzMsMTMgKzEzMywxMyBAQCBudjEw X2VtaXRfZm9nKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCiAJbnYxMF9nZXRf Zm9nX2NvZWZmKGN0eCwgayk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xf Rk9HX01PREUsIDQpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9GT0dfTU9E RSwgNCk7CiAJT1VUX1JJTkcoY2hhbiwgZ2V0X2ZvZ19tb2RlKGYtPk1vZGUpKTsKIAlPVVRfUklO RyhjaGFuLCBnZXRfZm9nX3NvdXJjZShzb3VyY2UpKTsKIAlPVVRfUklORyhjaGFuLCBmLT5FbmFi bGVkID8gMSA6IDApOwogCU9VVF9SSU5HKGNoYW4sIHBhY2tfcmdiYV9mKE1FU0FfRk9STUFUX1JH QkE4ODg4X1JFViwgZi0+Q29sb3IpKTsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYx MFRDTF9GT0dfRVFVQVRJT05fQ09OU1RBTlQsIDMpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMF8zRF9GT0dfQ09FRkYoMCksIDMpOwogCU9VVF9SSU5HcChjaGFuLCBrLCAzKTsKIAog CWNvbnRleHRfZGlydHkoY3R4LCBGUkFHKTsKQEAgLTE1MCwxMyArMTUwLDEzIEBAIGdldF9saWdo dF9tb2RlKHN0cnVjdCBnbF9saWdodCAqbCkKIHsKIAlpZiAobC0+RW5hYmxlZCkgewogCQlpZiAo bC0+X0ZsYWdzICYgTElHSFRfU1BPVCkKLQkJCXJldHVybiBOVjEwVENMX0VOQUJMRURfTElHSFRT XzBfRElSRUNUSU9OQUw7CisJCQlyZXR1cm4gTlYxMF8zRF9FTkFCTEVEX0xJR0hUU18wX0RJUkVD VElPTkFMOwogCQllbHNlIGlmIChsLT5fRmxhZ3MgJiBMSUdIVF9QT1NJVElPTkFMKQotCQkJcmV0 dXJuIE5WMTBUQ0xfRU5BQkxFRF9MSUdIVFNfMF9QT1NJVElPTkFMOworCQkJcmV0dXJuIE5WMTBf M0RfRU5BQkxFRF9MSUdIVFNfMF9QT1NJVElPTkFMOwogCQllbHNlCi0JCQlyZXR1cm4gTlYxMFRD TF9FTkFCTEVEX0xJR0hUU18wX05PTlBPU0lUSU9OQUw7CisJCQlyZXR1cm4gTlYxMF8zRF9FTkFC TEVEX0xJR0hUU18wX05PTlBPU0lUSU9OQUw7CiAJfSBlbHNlIHsKLQkJcmV0dXJuIE5WMTBUQ0xf RU5BQkxFRF9MSUdIVFNfMF9ESVNBQkxFRDsKKwkJcmV0dXJuIE5WMTBfM0RfRU5BQkxFRF9MSUdI VFNfMF9ESVNBQkxFRDsKIAl9CiB9CiAKQEAgLTE3MCw3ICsxNzAsNyBAQCBudjEwX2VtaXRfbGln aHRfZW5hYmxlKHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCWludCBpOwogCiAJ aWYgKG5jdHgtPmZhbGxiYWNrICE9IEhXVE5MKSB7Ci0JCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMFRDTF9MSUdIVElOR19FTkFCTEUsIDEpOworCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNp dXMsIE5WMTBfM0RfTElHSFRJTkdfRU5BQkxFLCAxKTsKIAkJT1VUX1JJTkcoY2hhbiwgMCk7CiAJ CXJldHVybjsKIAl9CkBAIC0xNzgsMTEgKzE3OCwxMSBAQCBudjEwX2VtaXRfbGlnaHRfZW5hYmxl KHN0cnVjdCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCWZvciAoaSA9IDA7IGkgPCBNQVhf TElHSFRTOyBpKyspCiAJCWVuX2xpZ2h0cyB8PSBnZXRfbGlnaHRfbW9kZSgmY3R4LT5MaWdodC5M aWdodFtpXSkgPDwgMiAqIGk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xf RU5BQkxFRF9MSUdIVFMsIDEpOworCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMF8zRF9F TkFCTEVEX0xJR0hUUywgMSk7CiAJT1VUX1JJTkcoY2hhbiwgZW5fbGlnaHRzKTsKLQlCRUdJTl9S SU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xfTElHSFRJTkdfRU5BQkxFLCAxKTsKKwlCRUdJTl9S SU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfTElHSFRJTkdfRU5BQkxFLCAxKTsKIAlPVVRfUklO RyhjaGFuLCBjdHgtPkxpZ2h0LkVuYWJsZWQgPyAxIDogMCk7Ci0JQkVHSU5fUklORyhjaGFuLCBj ZWxzaXVzLCBOVjEwVENMX05PUk1BTElaRV9FTkFCTEUsIDEpOworCUJFR0lOX1JJTkcoY2hhbiwg Y2Vsc2l1cywgTlYxMF8zRF9OT1JNQUxJWkVfRU5BQkxFLCAxKTsKIAlPVVRfUklORyhjaGFuLCBj dHgtPlRyYW5zZm9ybS5Ob3JtYWxpemUgPyAxIDogMCk7CiB9CiAKQEAgLTE5MywxNiArMTkzLDE2 IEBAIG52MTBfZW1pdF9saWdodF9tb2RlbChzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1p dCkKIAlzdHJ1Y3Qgbm91dmVhdV9ncm9iaiAqY2Vsc2l1cyA9IGNvbnRleHRfZW5nM2QoY3R4KTsK IAlzdHJ1Y3QgZ2xfbGlnaHRtb2RlbCAqbSA9ICZjdHgtPkxpZ2h0Lk1vZGVsOwogCi0JQkVHSU5f UklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX1NFUEFSQVRFX1NQRUNVTEFSX0VOQUJMRSwgMSk7 CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX1NFUEFSQVRFX1NQRUNVTEFSX0VO QUJMRSwgMSk7CiAJT1VUX1JJTkcoY2hhbiwgbS0+Q29sb3JDb250cm9sID09IEdMX1NFUEFSQVRF X1NQRUNVTEFSX0NPTE9SID8gMSA6IDApOwogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBO VjEwVENMX0xJR0hUX01PREVMLCAxKTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBf M0RfTElHSFRfTU9ERUwsIDEpOwogCU9VVF9SSU5HKGNoYW4sICgobS0+TG9jYWxWaWV3ZXIgPwot CQkJIE5WMTBUQ0xfTElHSFRfTU9ERUxfTE9DQUxfVklFV0VSIDogMCkgfAorCQkJIE5WMTBfM0Rf TElHSFRfTU9ERUxfTE9DQUxfVklFV0VSIDogMCkgfAogCQkJKE5FRURfU0VDT05EQVJZX0NPTE9S KGN0eCkgPwotCQkJIE5WMTBUQ0xfTElHSFRfTU9ERUxfU0VQQVJBVEVfU1BFQ1VMQVIgOiAwKSB8 CisJCQkgTlYxMF8zRF9MSUdIVF9NT0RFTF9TRVBBUkFURV9TUEVDVUxBUiA6IDApIHwKIAkJCSgh Y3R4LT5MaWdodC5FbmFibGVkICYmIGN0eC0+Rm9nLkNvbG9yU3VtRW5hYmxlZCA/Ci0JCQkgTlYx MFRDTF9MSUdIVF9NT0RFTF9WRVJURVhfU1BFQ1VMQVIgOiAwKSkpOworCQkJIE5WMTBfM0RfTElH SFRfTU9ERUxfVkVSVEVYX1NQRUNVTEFSIDogMCkpKTsKIH0KIAogc3RhdGljIGZsb2F0CkBAIC0y ODEsMjAgKzI4MSwyMCBAQCBudjEwX2VtaXRfbGlnaHRfc291cmNlKHN0cnVjdCBnbF9jb250ZXh0 ICpjdHgsIGludCBlbWl0KQogCXN0cnVjdCBnbF9saWdodCAqbCA9ICZjdHgtPkxpZ2h0LkxpZ2h0 W2ldOwogCiAJaWYgKGwtPl9GbGFncyAmIExJR0hUX1BPU0lUSU9OQUwpIHsKLQkJQkVHSU5fUklO RyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0xJR0hUX1BPU0lUSU9OX1goaSksIDMpOworCQlCRUdJ Tl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfTElHSFRfUE9TSVRJT05fWChpKSwgMyk7CiAJ CU9VVF9SSU5HcChjaGFuLCBsLT5fUG9zaXRpb24sIDMpOwogCiAJCUJFR0lOX1JJTkcoY2hhbiwg Y2Vsc2l1cywKLQkJCSAgIE5WMTBUQ0xfTElHSFRfQVRURU5VQVRJT05fQ09OU1RBTlQoaSksIDMp OworCQkJICAgTlYxMF8zRF9MSUdIVF9BVFRFTlVBVElPTl9DT05TVEFOVChpKSwgMyk7CiAJCU9V VF9SSU5HZihjaGFuLCBsLT5Db25zdGFudEF0dGVudWF0aW9uKTsKIAkJT1VUX1JJTkdmKGNoYW4s IGwtPkxpbmVhckF0dGVudWF0aW9uKTsKIAkJT1VUX1JJTkdmKGNoYW4sIGwtPlF1YWRyYXRpY0F0 dGVudWF0aW9uKTsKIAogCX0gZWxzZSB7Ci0JCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYx MFRDTF9MSUdIVF9ESVJFQ1RJT05fWChpKSwgMyk7CisJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMF8zRF9MSUdIVF9ESVJFQ1RJT05fWChpKSwgMyk7CiAJCU9VVF9SSU5HcChjaGFuLCBs LT5fVlBfaW5mX25vcm0sIDMpOwogCi0JCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRD TF9MSUdIVF9IQUxGX1ZFQ1RPUl9YKGkpLCAzKTsKKwkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVz LCBOVjEwXzNEX0xJR0hUX0hBTEZfVkVDVE9SX1goaSksIDMpOwogCQlPVVRfUklOR3AoY2hhbiwg bC0+X2hfaW5mX25vcm0sIDMpOwogCX0KIApAQCAtMzAzLDcgKzMwMyw3IEBAIG52MTBfZW1pdF9s aWdodF9zb3VyY2Uoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgaW50IGVtaXQpCiAKIAkJbnYxMF9n ZXRfc3BvdF9jb2VmZihsLCBrKTsKIAotCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBU Q0xfTElHSFRfU1BPVF9DVVRPRkZfQShpKSwgNyk7CisJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1 cywgTlYxMF8zRF9MSUdIVF9TUE9UX0NVVE9GRihpLCAwKSwgNyk7CiAJCU9VVF9SSU5HcChjaGFu LCBrLCA3KTsKIAl9CiB9CkBAIC0zMzUsMTEgKzMzNSwxMSBAQCBudjEwX2VtaXRfbWF0ZXJpYWxf YW1iaWVudChzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAkJWkVST18zVihjX2Zh Y3Rvcik7CiAJfQogCi0JQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX0xJR0hUX01P REVMX0FNQklFTlRfUiwgMyk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX0xJ R0hUX01PREVMX0FNQklFTlRfUiwgMyk7CiAJT1VUX1JJTkdwKGNoYW4sIGNfc2NlbmUsIDMpOwog CiAJaWYgKGN0eC0+TGlnaHQuQ29sb3JNYXRlcmlhbEVuYWJsZWQpIHsKLQkJQkVHSU5fUklORyhj aGFuLCBjZWxzaXVzLCBOVjEwVENMX01BVEVSSUFMX0ZBQ1RPUl9SLCAzKTsKKwkJQkVHSU5fUklO RyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX01BVEVSSUFMX0ZBQ1RPUl9SLCAzKTsKIAkJT1VUX1JJ TkdwKGNoYW4sIGNfZmFjdG9yLCAzKTsKIAl9CiAKQEAgLTM0OSw3ICszNDksNyBAQCBudjEwX2Vt aXRfbWF0ZXJpYWxfYW1iaWVudChzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAkJ CQkgIGwtPkFtYmllbnQgOgogCQkJCSAgbC0+X01hdEFtYmllbnRbMF0pOwogCi0JCUJFR0lOX1JJ TkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9MSUdIVF9BTUJJRU5UX1IoaSksIDMpOworCQlCRUdJ Tl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfTElHSFRfQU1CSUVOVF9SKGkpLCAzKTsKIAkJ T1VUX1JJTkdwKGNoYW4sIGNfbGlnaHQsIDMpOwogCX0KIH0KQEAgLTM2Miw3ICszNjIsNyBAQCBu djEwX2VtaXRfbWF0ZXJpYWxfZGlmZnVzZShzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1p dCkKIAlHTGZsb2F0ICgqbWF0KVs0XSA9IGN0eC0+TGlnaHQuTWF0ZXJpYWwuQXR0cmliOwogCXN0 cnVjdCBnbF9saWdodCAqbDsKIAotCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9N QVRFUklBTF9GQUNUT1JfQSwgMSk7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNE X01BVEVSSUFMX0ZBQ1RPUl9BLCAxKTsKIAlPVVRfUklOR2YoY2hhbiwgbWF0W01BVF9BVFRSSUJf RlJPTlRfRElGRlVTRV1bM10pOwogCiAJZm9yZWFjaChsLCAmY3R4LT5MaWdodC5FbmFibGVkTGlz dCkgewpAQCAtMzcxLDcgKzM3MSw3IEBAIG52MTBfZW1pdF9tYXRlcmlhbF9kaWZmdXNlKHN0cnVj dCBnbF9jb250ZXh0ICpjdHgsIGludCBlbWl0KQogCQkJCSAgbC0+RGlmZnVzZSA6CiAJCQkJICBs LT5fTWF0RGlmZnVzZVswXSk7CiAKLQkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENM X0xJR0hUX0RJRkZVU0VfUihpKSwgMyk7CisJCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYx MF8zRF9MSUdIVF9ESUZGVVNFX1IoaSksIDMpOwogCQlPVVRfUklOR3AoY2hhbiwgY19saWdodCwg Myk7CiAJfQogfQpAQCAtMzg5LDcgKzM4OSw3IEBAIG52MTBfZW1pdF9tYXRlcmlhbF9zcGVjdWxh cihzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAkJCQkgIGwtPlNwZWN1bGFyIDoK IAkJCQkgIGwtPl9NYXRTcGVjdWxhclswXSk7CiAKLQkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVz LCBOVjEwVENMX0xJR0hUX1NQRUNVTEFSX1IoaSksIDMpOworCQlCRUdJTl9SSU5HKGNoYW4sIGNl bHNpdXMsIE5WMTBfM0RfTElHSFRfU1BFQ1VMQVJfUihpKSwgMyk7CiAJCU9VVF9SSU5HcChjaGFu LCBjX2xpZ2h0LCAzKTsKIAl9CiB9CkBAIC00MzAsNyArNDMwLDcgQEAgbnYxMF9lbWl0X21hdGVy aWFsX3NoaW5pbmVzcyhzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAkJQ0xBTVAo bWF0W01BVF9BVFRSSUJfRlJPTlRfU0hJTklORVNTXVswXSwgMCwgMTAyNCksCiAJCWspOwogCi0J QkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwVENMX01BVEVSSUFMX1NISU5JTkVTUygwKSwg Nik7CisJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLCBOVjEwXzNEX01BVEVSSUFMX1NISU5JTkVT UygwKSwgNik7CiAJT1VUX1JJTkdwKGNoYW4sIGssIDYpOwogfQogCkBAIC00NDcsNyArNDQ3LDcg QEAgbnYxMF9lbWl0X21vZGVsdmlldyhzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkK IAogCWlmIChjdHgtPkxpZ2h0Ll9OZWVkRXllQ29vcmRzIHx8IGN0eC0+Rm9nLkVuYWJsZWQgfHwK IAkgICAgKGN0eC0+VGV4dHVyZS5fR2VuRmxhZ3MgJiBURVhHRU5fTkVFRF9FWUVfQ09PUkQpKSB7 Ci0JCUJFR0lOX1JJTkcoY2hhbiwgY2Vsc2l1cywgTlYxMFRDTF9NT0RFTFZJRVcwX01BVFJJWCgw KSwgMTYpOworCQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBfM0RfTU9ERUxWSUVXX01B VFJJWCgwLCAwKSwgMTYpOwogCQlPVVRfUklOR20oY2hhbiwgbS0+bSk7CiAJfQogCkBAIC00NTYs NyArNDU2LDcgQEAgbnYxMF9lbWl0X21vZGVsdmlldyhzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBp bnQgZW1pdCkKIAkJaW50IGksIGo7CiAKIAkJQkVHSU5fUklORyhjaGFuLCBjZWxzaXVzLAotCQkJ ICAgTlYxMFRDTF9JTlZFUlNFX01PREVMVklFVzBfTUFUUklYKDApLCAxMik7CisJCQkgICBOVjEw XzNEX0lOVkVSU0VfTU9ERUxWSUVXX01BVFJJWCgwLCAwKSwgMTIpOwogCQlmb3IgKGkgPSAwOyBp IDwgMzsgaSsrKQogCQkJZm9yIChqID0gMDsgaiA8IDQ7IGorKykKIAkJCQlPVVRfUklOR2YoY2hh biwgbS0+aW52WzQqaSArIGpdKTsKQEAgLTQ4NSw3ICs0ODUsNyBAQCBudjEwX2VtaXRfcHJvamVj dGlvbihzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LCBpbnQgZW1pdCkKIAlpZiAobmN0eC0+ZmFsbGJh Y2sgPT0gSFdUTkwpCiAJCV9tYXRoX21hdHJpeF9tdWxfbWF0cml4KCZtLCAmbSwgJmN0eC0+X01v ZGVsUHJvamVjdE1hdHJpeCk7CiAKLQlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5WMTBUQ0xf UFJPSkVDVElPTl9NQVRSSVgoMCksIDE2KTsKKwlCRUdJTl9SSU5HKGNoYW4sIGNlbHNpdXMsIE5W MTBfM0RfUFJPSkVDVElPTl9NQVRSSVgoMCksIDE2KTsKIAlPVVRfUklOR20oY2hhbiwgbS5tKTsK IAogCV9tYXRoX21hdHJpeF9kdHIoJm0pOwotLSAKMS43LjMuMgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVh dUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL25vdXZlYXUK