From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LeNPM-0006qa-0K for qemu-devel@nongnu.org; Tue, 03 Mar 2009 00:43:12 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LeNPK-0006qJ-Up for qemu-devel@nongnu.org; Tue, 03 Mar 2009 00:43:11 -0500 Received: from [199.232.76.173] (port=38860 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LeNPK-0006qG-NY for qemu-devel@nongnu.org; Tue, 03 Mar 2009 00:43:10 -0500 Received: from mga03.intel.com ([143.182.124.21]:47153) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LeNPJ-0001cL-LA for qemu-devel@nongnu.org; Tue, 03 Mar 2009 00:43:10 -0500 From: "Zhang, Xiantao" Date: Tue, 3 Mar 2009 13:41:43 +0800 Message-ID: <706158FABBBA044BAD4FE898A02E4BC22435AE7F@pdsmsx503.ccr.corp.intel.com> References: <706158FABBBA044BAD4FE898A02E4BC22422AEF7@pdsmsx503.ccr.corp.intel.com> <49A84173.4020509@us.ibm.com> In-Reply-To: <49A84173.4020509@us.ibm.com> Content-Language: en-US Content-Type: multipart/mixed; boundary="_002_706158FABBBA044BAD4FE898A02E4BC22435AE7Fpdsmsx503ccrcor_" MIME-Version: 1.0 Subject: [Qemu-devel] RE: [PATCH] Split ioapic logic from the current apic. Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: "qemu-devel@nongnu.org" --_002_706158FABBBA044BAD4FE898A02E4BC22435AE7Fpdsmsx503ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, Anthony I have updated the patch against the latest commits, could you pick it ?= =20 Thanks Xiantao -----Original Message----- From: Anthony Liguori [mailto:aliguori@us.ibm.com]=20 Sent: Saturday, February 28, 2009 3:40 AM To: Zhang, Xiantao Cc: qemu-devel@nongnu.org Subject: Re: [PATCH] Split ioapic logic from the current apic. Zhang, Xiantao wrote: > This patch targets for spliting the ioapic logic from apic.c and make it = work for TARGET_IA64, and can be applied to qemu upstream. Thanks! > Xiantao > =20 This patch doesn't apply against the current SVN. Regards, Anthony Liguori --_002_706158FABBBA044BAD4FE898A02E4BC22435AE7Fpdsmsx503ccrcor_ Content-Type: application/octet-stream; name="0001-Split-ioapic-logic-from-the-current-apic.patch" Content-Description: 0001-Split-ioapic-logic-from-the-current-apic.patch Content-Disposition: attachment; filename="0001-Split-ioapic-logic-from-the-current-apic.patch"; size=16977; creation-date="Thu, 19 Feb 2009 10:24:20 GMT"; modification-date="Tue, 03 Mar 2009 13:39:45 GMT" Content-Transfer-Encoding: base64 RnJvbSA2N2U5NGFlNzdmOGRlNGQ1ZDgyMjkxN2YxNzIzY2VmYTdlYmZiNjRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaWFudGFvIFpoYW5nIDx4aWFudGFvLnpoYW5nQGludGVsLmNv bT4KRGF0ZTogVHVlLCAzIE1hciAyMDA5IDEzOjMzOjEzICswODAwClN1YmplY3Q6IFtQQVRDSF0g U3BsaXQgaW9hcGljIGxvZ2ljIGZyb20gdGhlIGN1cnJlbnQgYXBpYy4KCkFkZCBhIG5ldyBpb2Fw aWMuYyB0byBob2xkIGlvYXBpYydzIGxvZ2ljLCBhbmQgYWxzbwptYWtlIGl0IHdvcmsgZm9yIGlh NjQuCgpTaWduZWQtb2ZmLWJ5OiBYaWFudGFvIFpoYW5nIDx4aWFudGFvLnpoYW5nQGludGVsLmNv bT4KLS0tCiBNYWtlZmlsZS50YXJnZXQgfCAgICAyICstCiBody9hcGljLmMgICAgICAgfCAgMjM3 ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGh3L2lv YXBpYy5jICAgICB8ICAyNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogaHcvcGMuaCAgICAgICAgIHwgICAgNSArLQogNCBmaWxlcyBjaGFu Z2VkLCAyODEgaW5zZXJ0aW9ucygrKSwgMjI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGh3L2lvYXBpYy5jCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudGFyZ2V0IGIvTWFrZWZpbGUu dGFyZ2V0CmluZGV4IGEwOTFjZTkuLmE0ZmYxMGEgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLnRhcmdl dAorKysgYi9NYWtlZmlsZS50YXJnZXQKQEAgLTU3OCw3ICs1NzgsNyBAQCBpZmVxICgkKFRBUkdF VF9CQVNFX0FSQ0gpLCBpMzg2KQogIyBIYXJkd2FyZSBzdXBwb3J0CiBPQkpTKz0gaWRlLm8gcGNr YmQubyBwczIubyB2Z2EubyAkKFNPVU5EX0hXKSBkbWEubwogT0JKUys9IGZkYy5vIG1jMTQ2ODE4 cnRjLm8gc2VyaWFsLm8gaTgyNTkubyBpODI1NC5vIHBjc3BrLm8gcGMubwotT0JKUys9IGNpcnJ1 c192Z2EubyBhcGljLm8gcGFyYWxsZWwubyBhY3BpLm8gcGlpeF9wY2kubworT0JKUys9IGNpcnJ1 c192Z2EubyBhcGljLm8gaW9hcGljLm8gcGFyYWxsZWwubyBhY3BpLm8gcGlpeF9wY2kubwogT0JK Uys9IHVzYi11aGNpLm8gdm1tb3VzZS5vIHZtcG9ydC5vIHZtd2FyZV92Z2EubyBocGV0Lm8KIENQ UEZMQUdTICs9IC1ESEFTX0FVRElPIC1ESEFTX0FVRElPX0NIT0lDRQogZW5kaWYKZGlmZiAtLWdp dCBhL2h3L2FwaWMuYyBiL2h3L2FwaWMuYwppbmRleCAzMDUyODQzLi44MGI2ZGUyIDEwMDY0NAot LS0gYS9ody9hcGljLmMKKysrIGIvaHcvYXBpYy5jCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVk ZSAiaG9zdC11dGlscy5oIgogCiAvLyNkZWZpbmUgREVCVUdfQVBJQwotLy8jZGVmaW5lIERFQlVH X0lPQVBJQwogCiAvKiBBUElDIExvY2FsIFZlY3RvciBUYWJsZSAqLwogI2RlZmluZSBBUElDX0xW VF9USU1FUiAgIDAKQEAgLTU3LDggKzU2LDYgQEAKICNkZWZpbmUJQVBJQ19JTlBVVF9QT0xBUklU WQkJKDE8PDEzKQogI2RlZmluZQlBUElDX1NFTkRfUEVORElORwkJKDE8PDEyKQogCi0jZGVmaW5l IElPQVBJQ19OVU1fUElOUwkJCTB4MTgKLQogI2RlZmluZSBFU1JfSUxMRUdBTF9BRERSRVNTICgx IDw8IDcpCiAKICNkZWZpbmUgQVBJQ19TVl9FTkFCTEUgKDEgPDwgOCkKQEAgLTg5LDE0ICs4Niw2 IEBAIHR5cGVkZWYgc3RydWN0IEFQSUNTdGF0ZSB7CiAgICAgUUVNVVRpbWVyICp0aW1lcjsKIH0g QVBJQ1N0YXRlOwogCi1zdHJ1Y3QgSU9BUElDU3RhdGUgewotICAgIHVpbnQ4X3QgaWQ7Ci0gICAg dWludDhfdCBpb3JlZ3NlbDsKLQotICAgIHVpbnQzMl90IGlycjsKLSAgICB1aW50NjRfdCBpb3Jl ZHRibFtJT0FQSUNfTlVNX1BJTlNdOwotfTsKLQogc3RhdGljIGludCBhcGljX2lvX21lbW9yeTsK IHN0YXRpYyBBUElDU3RhdGUgKmxvY2FsX2FwaWNzW01BWF9BUElDUyArIDFdOwogc3RhdGljIGlu dCBsYXN0X2FwaWNfaWQgPSAwOwpAQCAtMTA2LDYgKzk1LDggQEAgc3RhdGljIGludCBhcGljX2ly cV9kZWxpdmVyZWQ7CiBzdGF0aWMgdm9pZCBhcGljX2luaXRfaXBpKEFQSUNTdGF0ZSAqcyk7CiBz dGF0aWMgdm9pZCBhcGljX3NldF9pcnEoQVBJQ1N0YXRlICpzLCBpbnQgdmVjdG9yX251bSwgaW50 IHRyaWdnZXJfbW9kZSk7CiBzdGF0aWMgdm9pZCBhcGljX3VwZGF0ZV9pcnEoQVBJQ1N0YXRlICpz KTsKK3N0YXRpYyB2b2lkIGFwaWNfZ2V0X2RlbGl2ZXJ5X2JpdG1hc2sodWludDMyX3QgKmRlbGl2 ZXJfYml0bWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhf dCBkZXN0LCB1aW50OF90IGRlc3RfbW9kZSk7CiAKIC8qIEZpbmQgZmlyc3QgYml0IHN0YXJ0aW5n IGZyb20gbXNiICovCiBzdGF0aWMgaW50IGZsc19iaXQodWludDMyX3QgdmFsdWUpCkBAIC0yNzIs NiArMjYzLDE3IEBAIHN0YXRpYyB2b2lkIGFwaWNfYnVzX2RlbGl2ZXIoY29uc3QgdWludDMyX3Qg KmRlbGl2ZXJfYml0bWFzaywKICAgICAgICAgICAgICAgICAgYXBpY19zZXRfaXJxKGFwaWNfaXRl ciwgdmVjdG9yX251bSwgdHJpZ2dlcl9tb2RlKSApOwogfQogCit2b2lkIGFwaWNfZGVsaXZlcl9p cnEodWludDhfdCBkZXN0LCB1aW50OF90IGRlc3RfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAg ICB1aW50OF90IGRlbGl2ZXJ5X21vZGUsIHVpbnQ4X3QgdmVjdG9yX251bSwKKyAgICAgICAgICAg ICAgICAgICAgICB1aW50OF90IHBvbGFyaXR5LCB1aW50OF90IHRyaWdnZXJfbW9kZSkKK3sKKyAg ICB1aW50MzJfdCBkZWxpdmVyX2JpdG1hc2tbTUFYX0FQSUNfV09SRFNdOworCisgICAgYXBpY19n ZXRfZGVsaXZlcnlfYml0bWFzayhkZWxpdmVyX2JpdG1hc2ssIGRlc3QsIGRlc3RfbW9kZSk7Cisg ICAgYXBpY19idXNfZGVsaXZlcihkZWxpdmVyX2JpdG1hc2ssIGRlbGl2ZXJ5X21vZGUsIHZlY3Rv cl9udW0sIHBvbGFyaXR5LAorICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcl9tb2RlKTsKK30K Kwogdm9pZCBjcHVfc2V0X2FwaWNfYmFzZShDUFVTdGF0ZSAqZW52LCB1aW50NjRfdCB2YWwpCiB7 CiAgICAgQVBJQ1N0YXRlICpzID0gZW52LT5hcGljX3N0YXRlOwpAQCAtOTI1LDIxNiArOTI3LDMg QEAgaW50IGFwaWNfaW5pdChDUFVTdGF0ZSAqZW52KQogICAgIHJldHVybiAwOwogfQogCi1zdGF0 aWMgdm9pZCBpb2FwaWNfc2VydmljZShJT0FQSUNTdGF0ZSAqcykKLXsKLSAgICB1aW50OF90IGk7 Ci0gICAgdWludDhfdCB0cmlnX21vZGU7Ci0gICAgdWludDhfdCB2ZWN0b3I7Ci0gICAgdWludDhf dCBkZWxpdmVyeV9tb2RlOwotICAgIHVpbnQzMl90IG1hc2s7Ci0gICAgdWludDY0X3QgZW50cnk7 Ci0gICAgdWludDhfdCBkZXN0OwotICAgIHVpbnQ4X3QgZGVzdF9tb2RlOwotICAgIHVpbnQ4X3Qg cG9sYXJpdHk7Ci0gICAgdWludDMyX3QgZGVsaXZlcl9iaXRtYXNrW01BWF9BUElDX1dPUkRTXTsK LQotICAgIGZvciAoaSA9IDA7IGkgPCBJT0FQSUNfTlVNX1BJTlM7IGkrKykgewotICAgICAgICBt YXNrID0gMSA8PCBpOwotICAgICAgICBpZiAocy0+aXJyICYgbWFzaykgewotICAgICAgICAgICAg ZW50cnkgPSBzLT5pb3JlZHRibFtpXTsKLSAgICAgICAgICAgIGlmICghKGVudHJ5ICYgQVBJQ19M VlRfTUFTS0VEKSkgewotICAgICAgICAgICAgICAgIHRyaWdfbW9kZSA9ICgoZW50cnkgPj4gMTUp ICYgMSk7Ci0gICAgICAgICAgICAgICAgZGVzdCA9IGVudHJ5ID4+IDU2OwotICAgICAgICAgICAg ICAgIGRlc3RfbW9kZSA9IChlbnRyeSA+PiAxMSkgJiAxOwotICAgICAgICAgICAgICAgIGRlbGl2 ZXJ5X21vZGUgPSAoZW50cnkgPj4gOCkgJiA3OwotICAgICAgICAgICAgICAgIHBvbGFyaXR5ID0g KGVudHJ5ID4+IDEzKSAmIDE7Ci0gICAgICAgICAgICAgICAgaWYgKHRyaWdfbW9kZSA9PSBBUElD X1RSSUdHRVJfRURHRSkKLSAgICAgICAgICAgICAgICAgICAgcy0+aXJyICY9IH5tYXNrOwotICAg ICAgICAgICAgICAgIGlmIChkZWxpdmVyeV9tb2RlID09IEFQSUNfRE1fRVhUSU5UKQotICAgICAg ICAgICAgICAgICAgICB2ZWN0b3IgPSBwaWNfcmVhZF9pcnEoaXNhX3BpYyk7Ci0gICAgICAgICAg ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgPSBlbnRyeSAmIDB4ZmY7Ci0K LSAgICAgICAgICAgICAgICBhcGljX2dldF9kZWxpdmVyeV9iaXRtYXNrKGRlbGl2ZXJfYml0bWFz aywgZGVzdCwgZGVzdF9tb2RlKTsKLSAgICAgICAgICAgICAgICBhcGljX2J1c19kZWxpdmVyKGRl bGl2ZXJfYml0bWFzaywgZGVsaXZlcnlfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZlY3RvciwgcG9sYXJpdHksIHRyaWdfbW9kZSk7Ci0gICAgICAgICAgICB9Ci0gICAg ICAgIH0KLSAgICB9Ci19Ci0KLXZvaWQgaW9hcGljX3NldF9pcnEodm9pZCAqb3BhcXVlLCBpbnQg dmVjdG9yLCBpbnQgbGV2ZWwpCi17Ci0gICAgSU9BUElDU3RhdGUgKnMgPSBvcGFxdWU7Ci0KLSAg ICAvKiBJU0EgSVJRcyBtYXAgdG8gR1NJIDEtMSBleGNlcHQgZm9yIElSUTAgd2hpY2ggbWFwcwot ICAgICAqIHRvIEdTSSAyLiAgR1NJIG1hcHMgdG8gaW9hcGljIDEtMS4gIFRoaXMgaXMgbm90Ci0g ICAgICogdGhlIGNsZWFuZXN0IHdheSBvZiBkb2luZyBpdCBidXQgaXQgc2hvdWxkIHdvcmsuICov Ci0KLSAgICBpZiAodmVjdG9yID09IDApCi0gICAgICAgIHZlY3RvciA9IDI7Ci0KLSAgICBpZiAo dmVjdG9yID49IDAgJiYgdmVjdG9yIDwgSU9BUElDX05VTV9QSU5TKSB7Ci0gICAgICAgIHVpbnQz Ml90IG1hc2sgPSAxIDw8IHZlY3RvcjsKLSAgICAgICAgdWludDY0X3QgZW50cnkgPSBzLT5pb3Jl ZHRibFt2ZWN0b3JdOwotCi0gICAgICAgIGlmICgoZW50cnkgPj4gMTUpICYgMSkgewotICAgICAg ICAgICAgLyogbGV2ZWwgdHJpZ2dlcmVkICovCi0gICAgICAgICAgICBpZiAobGV2ZWwpIHsKLSAg ICAgICAgICAgICAgICBzLT5pcnIgfD0gbWFzazsKLSAgICAgICAgICAgICAgICBpb2FwaWNfc2Vy dmljZShzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcy0+aXJyICY9 IH5tYXNrOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLyog ZWRnZSB0cmlnZ2VyZWQgKi8KLSAgICAgICAgICAgIGlmIChsZXZlbCkgewotICAgICAgICAgICAg ICAgIHMtPmlyciB8PSBtYXNrOwotICAgICAgICAgICAgICAgIGlvYXBpY19zZXJ2aWNlKHMpOwot ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQotCi1zdGF0aWMgdWludDMyX3QgaW9h cGljX21lbV9yZWFkbCh2b2lkICpvcGFxdWUsIHRhcmdldF9waHlzX2FkZHJfdCBhZGRyKQotewot ICAgIElPQVBJQ1N0YXRlICpzID0gb3BhcXVlOwotICAgIGludCBpbmRleDsKLSAgICB1aW50MzJf dCB2YWwgPSAwOwotCi0gICAgYWRkciAmPSAweGZmOwotICAgIGlmIChhZGRyID09IDB4MDApIHsK LSAgICAgICAgdmFsID0gcy0+aW9yZWdzZWw7Ci0gICAgfSBlbHNlIGlmIChhZGRyID09IDB4MTAp IHsKLSAgICAgICAgc3dpdGNoIChzLT5pb3JlZ3NlbCkgewotICAgICAgICAgICAgY2FzZSAweDAw OgotICAgICAgICAgICAgICAgIHZhbCA9IHMtPmlkIDw8IDI0OwotICAgICAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICAgICAgY2FzZSAweDAxOgotICAgICAgICAgICAgICAgIHZhbCA9IDB4MTEg fCAoKElPQVBJQ19OVU1fUElOUyAtIDEpIDw8IDE2KTsgLyogdmVyc2lvbiAweDExICovCi0gICAg ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIDB4MDI6Ci0gICAgICAgICAgICAg ICAgdmFsID0gMDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6 Ci0gICAgICAgICAgICAgICAgaW5kZXggPSAocy0+aW9yZWdzZWwgLSAweDEwKSA+PiAxOwotICAg ICAgICAgICAgICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgSU9BUElDX05VTV9QSU5TKSB7 Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzLT5pb3JlZ3NlbCAmIDEpCi0gICAgICAgICAgICAg ICAgICAgICAgICB2YWwgPSBzLT5pb3JlZHRibFtpbmRleF0gPj4gMzI7Ci0gICAgICAgICAgICAg ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IHMtPmlvcmVkdGJsW2lu ZGV4XSAmIDB4ZmZmZmZmZmY7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICB9Ci0jaWZkZWYg REVCVUdfSU9BUElDCi0gICAgICAgIHByaW50ZigiSS9PIEFQSUMgcmVhZDogJTA4eCA9ICUwOHhc biIsIHMtPmlvcmVnc2VsLCB2YWwpOwotI2VuZGlmCi0gICAgfQotICAgIHJldHVybiB2YWw7Ci19 Ci0KLXN0YXRpYyB2b2lkIGlvYXBpY19tZW1fd3JpdGVsKHZvaWQgKm9wYXF1ZSwgdGFyZ2V0X3Bo eXNfYWRkcl90IGFkZHIsIHVpbnQzMl90IHZhbCkKLXsKLSAgICBJT0FQSUNTdGF0ZSAqcyA9IG9w YXF1ZTsKLSAgICBpbnQgaW5kZXg7Ci0KLSAgICBhZGRyICY9IDB4ZmY7Ci0gICAgaWYgKGFkZHIg PT0gMHgwMCkgIHsKLSAgICAgICAgcy0+aW9yZWdzZWwgPSB2YWw7Ci0gICAgICAgIHJldHVybjsK LSAgICB9IGVsc2UgaWYgKGFkZHIgPT0gMHgxMCkgewotI2lmZGVmIERFQlVHX0lPQVBJQwotICAg ICAgICBwcmludGYoIkkvTyBBUElDIHdyaXRlOiAlMDh4ID0gJTA4eFxuIiwgcy0+aW9yZWdzZWws IHZhbCk7Ci0jZW5kaWYKLSAgICAgICAgc3dpdGNoIChzLT5pb3JlZ3NlbCkgewotICAgICAgICAg ICAgY2FzZSAweDAwOgotICAgICAgICAgICAgICAgIHMtPmlkID0gKHZhbCA+PiAyNCkgJiAweGZm OwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGNhc2UgMHgwMToKLSAgICAg ICAgICAgIGNhc2UgMHgwMjoKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBk ZWZhdWx0OgotICAgICAgICAgICAgICAgIGluZGV4ID0gKHMtPmlvcmVnc2VsIC0gMHgxMCkgPj4g MTsKLSAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IElPQVBJQ19OVU1f UElOUykgewotICAgICAgICAgICAgICAgICAgICBpZiAocy0+aW9yZWdzZWwgJiAxKSB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICBzLT5pb3JlZHRibFtpbmRleF0gJj0gMHhmZmZmZmZmZjsKLSAg ICAgICAgICAgICAgICAgICAgICAgIHMtPmlvcmVkdGJsW2luZGV4XSB8PSAodWludDY0X3QpdmFs IDw8IDMyOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg ICAgICAgcy0+aW9yZWR0YmxbaW5kZXhdICY9IH4weGZmZmZmZmZmVUxMOwotICAgICAgICAgICAg ICAgICAgICAgICAgcy0+aW9yZWR0YmxbaW5kZXhdIHw9IHZhbDsKLSAgICAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgICAgICBpb2FwaWNfc2VydmljZShzKTsKLSAgICAgICAgICAg ICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIGlvYXBpY19zYXZlKFFF TVVGaWxlICpmLCB2b2lkICpvcGFxdWUpCi17Ci0gICAgSU9BUElDU3RhdGUgKnMgPSBvcGFxdWU7 Ci0gICAgaW50IGk7Ci0KLSAgICBxZW11X3B1dF84cyhmLCAmcy0+aWQpOwotICAgIHFlbXVfcHV0 XzhzKGYsICZzLT5pb3JlZ3NlbCk7Ci0gICAgZm9yIChpID0gMDsgaSA8IElPQVBJQ19OVU1fUElO UzsgaSsrKSB7Ci0gICAgICAgIHFlbXVfcHV0X2JlNjRzKGYsICZzLT5pb3JlZHRibFtpXSk7Ci0g ICAgfQotfQotCi1zdGF0aWMgaW50IGlvYXBpY19sb2FkKFFFTVVGaWxlICpmLCB2b2lkICpvcGFx dWUsIGludCB2ZXJzaW9uX2lkKQotewotICAgIElPQVBJQ1N0YXRlICpzID0gb3BhcXVlOwotICAg IGludCBpOwotCi0gICAgaWYgKHZlcnNpb25faWQgIT0gMSkKLSAgICAgICAgcmV0dXJuIC1FSU5W QUw7Ci0KLSAgICBxZW11X2dldF84cyhmLCAmcy0+aWQpOwotICAgIHFlbXVfZ2V0XzhzKGYsICZz LT5pb3JlZ3NlbCk7Ci0gICAgZm9yIChpID0gMDsgaSA8IElPQVBJQ19OVU1fUElOUzsgaSsrKSB7 Ci0gICAgICAgIHFlbXVfZ2V0X2JlNjRzKGYsICZzLT5pb3JlZHRibFtpXSk7Ci0gICAgfQotICAg IHJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBpb2FwaWNfcmVzZXQodm9pZCAqb3BhcXVlKQot ewotICAgIElPQVBJQ1N0YXRlICpzID0gb3BhcXVlOwotICAgIGludCBpOwotCi0gICAgbWVtc2V0 KHMsIDAsIHNpemVvZigqcykpOwotICAgIGZvcihpID0gMDsgaSA8IElPQVBJQ19OVU1fUElOUzsg aSsrKQotICAgICAgICBzLT5pb3JlZHRibFtpXSA9IDEgPDwgMTY7IC8qIG1hc2sgTFZUICovCi19 Ci0KLXN0YXRpYyBDUFVSZWFkTWVtb3J5RnVuYyAqaW9hcGljX21lbV9yZWFkWzNdID0gewotICAg IGlvYXBpY19tZW1fcmVhZGwsCi0gICAgaW9hcGljX21lbV9yZWFkbCwKLSAgICBpb2FwaWNfbWVt X3JlYWRsLAotfTsKLQotc3RhdGljIENQVVdyaXRlTWVtb3J5RnVuYyAqaW9hcGljX21lbV93cml0 ZVszXSA9IHsKLSAgICBpb2FwaWNfbWVtX3dyaXRlbCwKLSAgICBpb2FwaWNfbWVtX3dyaXRlbCwK LSAgICBpb2FwaWNfbWVtX3dyaXRlbCwKLX07Ci0KLUlPQVBJQ1N0YXRlICppb2FwaWNfaW5pdCh2 b2lkKQotewotICAgIElPQVBJQ1N0YXRlICpzOwotICAgIGludCBpb19tZW1vcnk7Ci0KLSAgICBz ID0gcWVtdV9tYWxsb2N6KHNpemVvZihJT0FQSUNTdGF0ZSkpOwotICAgIGlmICghcykKLSAgICAg ICAgcmV0dXJuIE5VTEw7Ci0gICAgaW9hcGljX3Jlc2V0KHMpOwotICAgIHMtPmlkID0gbGFzdF9h cGljX2lkKys7Ci0KLSAgICBpb19tZW1vcnkgPSBjcHVfcmVnaXN0ZXJfaW9fbWVtb3J5KDAsIGlv YXBpY19tZW1fcmVhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlv YXBpY19tZW1fd3JpdGUsIHMpOwotICAgIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkoMHhm ZWMwMDAwMCwgMHgxMDAwLCBpb19tZW1vcnkpOwotCi0gICAgcmVnaXN0ZXJfc2F2ZXZtKCJpb2Fw aWMiLCAwLCAxLCBpb2FwaWNfc2F2ZSwgaW9hcGljX2xvYWQsIHMpOwotICAgIHFlbXVfcmVnaXN0 ZXJfcmVzZXQoaW9hcGljX3Jlc2V0LCBzKTsKLQotICAgIHJldHVybiBzOwotfQpkaWZmIC0tZ2l0 IGEvaHcvaW9hcGljLmMgYi9ody9pb2FwaWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi45MTZlMDgzCi0tLSAvZGV2L251bGwKKysrIGIvaHcvaW9hcGljLmMKQEAgLTAsMCAr MSwyNjMgQEAKKy8qCisgKiAgaW9hcGljLmMgSU9BUElDIGVtdWxhdGlvbiBsb2dpYworICoKKyAq ICBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNSBGYWJyaWNlIEJlbGxhcmQKKyAqCisgKiAgU3BsaXQg dGhlIGlvYXBpYyBsb2dpYyBmcm9tIGFwaWMuYworICogIFhpYW50YW8gWmhhbmcgPHhpYW50YW8u emhhbmdAaW50ZWwuY29tPgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv b3IsIEJvc3RvbiBNQSAgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaW5jbHVkZSAiaHcuaCIKKyNp bmNsdWRlICJwYy5oIgorI2luY2x1ZGUgInFlbXUtdGltZXIuaCIKKyNpbmNsdWRlICJob3N0LXV0 aWxzLmgiCisKKy8vI2RlZmluZSBERUJVR19JT0FQSUMKKworI2RlZmluZSBJT0FQSUNfTlVNX1BJ TlMJCQkweDE4CisjZGVmaW5lIElPQVBJQ19MVlRfTUFTS0VEIAkJKDE8PDE2KQorCisjZGVmaW5l IElPQVBJQ19UUklHR0VSX0VER0UJCTAKKyNkZWZpbmUgSU9BUElDX1RSSUdHRVJfTEVWRUwJCTEK KworLyppb3thcGljLHNhcGljfSBkZWxpdmVyeSBtb2RlKi8KKyNkZWZpbmUgSU9BUElDX0RNX0ZJ WEVECQkJMHgwCisjZGVmaW5lIElPQVBJQ19ETV9MT1dFU1RfUFJJT1JJVFkJMHgxCisjZGVmaW5l IElPQVBJQ19ETV9QTUkJCQkweDIKKyNkZWZpbmUgSU9BUElDX0RNX05NSQkJCTB4NAorI2RlZmlu ZSBJT0FQSUNfRE1fSU5JVAkJCTB4NQorI2RlZmluZSBJT0FQSUNfRE1fU0lQSQkJCTB4NQorI2Rl ZmluZSBJT0FQSUNfRE1fRVhUSU5UCQkweDcKKworc3RydWN0IElPQVBJQ1N0YXRlIHsKKyAgICB1 aW50OF90IGlkOworICAgIHVpbnQ4X3QgaW9yZWdzZWw7CisKKyAgICB1aW50MzJfdCBpcnI7Cisg ICAgdWludDY0X3QgaW9yZWR0YmxbSU9BUElDX05VTV9QSU5TXTsKK307CisKK3N0YXRpYyB2b2lk IGlvYXBpY19zZXJ2aWNlKElPQVBJQ1N0YXRlICpzKQoreworICAgIHVpbnQ4X3QgaTsKKyAgICB1 aW50OF90IHRyaWdfbW9kZTsKKyAgICB1aW50OF90IHZlY3RvcjsKKyAgICB1aW50OF90IGRlbGl2 ZXJ5X21vZGU7CisgICAgdWludDMyX3QgbWFzazsKKyAgICB1aW50NjRfdCBlbnRyeTsKKyAgICB1 aW50OF90IGRlc3Q7CisgICAgdWludDhfdCBkZXN0X21vZGU7CisgICAgdWludDhfdCBwb2xhcml0 eTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBJT0FQSUNfTlVNX1BJTlM7IGkrKykgeworICAgICAg ICBtYXNrID0gMSA8PCBpOworICAgICAgICBpZiAocy0+aXJyICYgbWFzaykgeworICAgICAgICAg ICAgZW50cnkgPSBzLT5pb3JlZHRibFtpXTsKKyAgICAgICAgICAgIGlmICghKGVudHJ5ICYgSU9B UElDX0xWVF9NQVNLRUQpKSB7CisgICAgICAgICAgICAgICAgdHJpZ19tb2RlID0gKChlbnRyeSA+ PiAxNSkgJiAxKTsKKyAgICAgICAgICAgICAgICBkZXN0ID0gZW50cnkgPj4gNTY7CisgICAgICAg ICAgICAgICAgZGVzdF9tb2RlID0gKGVudHJ5ID4+IDExKSAmIDE7CisgICAgICAgICAgICAgICAg ZGVsaXZlcnlfbW9kZSA9IChlbnRyeSA+PiA4KSAmIDc7CisgICAgICAgICAgICAgICAgcG9sYXJp dHkgPSAoZW50cnkgPj4gMTMpICYgMTsKKyAgICAgICAgICAgICAgICBpZiAodHJpZ19tb2RlID09 IElPQVBJQ19UUklHR0VSX0VER0UpCisgICAgICAgICAgICAgICAgICAgIHMtPmlyciAmPSB+bWFz azsKKyAgICAgICAgICAgICAgICBpZiAoZGVsaXZlcnlfbW9kZSA9PSBJT0FQSUNfRE1fRVhUSU5U KQorICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgPSBwaWNfcmVhZF9pcnEoaXNhX3BpYyk7Cisg ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgPSBlbnRyeSAm IDB4ZmY7CisKKyAgICAgICAgICAgICAgICBhcGljX2RlbGl2ZXJfaXJxKGRlc3QsIGRlc3RfbW9k ZSwgZGVsaXZlcnlfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3Rv ciwgcG9sYXJpdHksIHRyaWdfbW9kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9 Cit9CisKK3ZvaWQgaW9hcGljX3NldF9pcnEodm9pZCAqb3BhcXVlLCBpbnQgdmVjdG9yLCBpbnQg bGV2ZWwpCit7CisgICAgSU9BUElDU3RhdGUgKnMgPSBvcGFxdWU7CisKKyAgICAvKiBJU0EgSVJR cyBtYXAgdG8gR1NJIDEtMSBleGNlcHQgZm9yIElSUTAgd2hpY2ggbWFwcworICAgICAqIHRvIEdT SSAyLiAgR1NJIG1hcHMgdG8gaW9hcGljIDEtMS4gIFRoaXMgaXMgbm90CisgICAgICogdGhlIGNs ZWFuZXN0IHdheSBvZiBkb2luZyBpdCBidXQgaXQgc2hvdWxkIHdvcmsuICovCisKKyAgICBpZiAo dmVjdG9yID09IDApCisgICAgICAgIHZlY3RvciA9IDI7CisKKyAgICBpZiAodmVjdG9yID49IDAg JiYgdmVjdG9yIDwgSU9BUElDX05VTV9QSU5TKSB7CisgICAgICAgIHVpbnQzMl90IG1hc2sgPSAx IDw8IHZlY3RvcjsKKyAgICAgICAgdWludDY0X3QgZW50cnkgPSBzLT5pb3JlZHRibFt2ZWN0b3Jd OworCisgICAgICAgIGlmICgoZW50cnkgPj4gMTUpICYgMSkgeworICAgICAgICAgICAgLyogbGV2 ZWwgdHJpZ2dlcmVkICovCisgICAgICAgICAgICBpZiAobGV2ZWwpIHsKKyAgICAgICAgICAgICAg ICBzLT5pcnIgfD0gbWFzazsKKyAgICAgICAgICAgICAgICBpb2FwaWNfc2VydmljZShzKTsKKyAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcy0+aXJyICY9IH5tYXNrOworICAg ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogZWRnZSB0cmlnZ2Vy ZWQgKi8KKyAgICAgICAgICAgIGlmIChsZXZlbCkgeworICAgICAgICAgICAgICAgIHMtPmlyciB8 PSBtYXNrOworICAgICAgICAgICAgICAgIGlvYXBpY19zZXJ2aWNlKHMpOworICAgICAgICAgICAg fQorICAgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgdWludDMyX3QgaW9hcGljX21lbV9yZWFk bCh2b2lkICpvcGFxdWUsIHRhcmdldF9waHlzX2FkZHJfdCBhZGRyKQoreworICAgIElPQVBJQ1N0 YXRlICpzID0gb3BhcXVlOworICAgIGludCBpbmRleDsKKyAgICB1aW50MzJfdCB2YWwgPSAwOwor CisgICAgYWRkciAmPSAweGZmOworICAgIGlmIChhZGRyID09IDB4MDApIHsKKyAgICAgICAgdmFs ID0gcy0+aW9yZWdzZWw7CisgICAgfSBlbHNlIGlmIChhZGRyID09IDB4MTApIHsKKyAgICAgICAg c3dpdGNoIChzLT5pb3JlZ3NlbCkgeworICAgICAgICAgICAgY2FzZSAweDAwOgorICAgICAgICAg ICAgICAgIHZhbCA9IHMtPmlkIDw8IDI0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgY2FzZSAweDAxOgorICAgICAgICAgICAgICAgIHZhbCA9IDB4MTEgfCAoKElPQVBJQ19O VU1fUElOUyAtIDEpIDw8IDE2KTsgLyogdmVyc2lvbiAweDExICovCisgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICBjYXNlIDB4MDI6CisgICAgICAgICAgICAgICAgdmFsID0gMDsK KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg ICAgICAgaW5kZXggPSAocy0+aW9yZWdzZWwgLSAweDEwKSA+PiAxOworICAgICAgICAgICAgICAg IGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgSU9BUElDX05VTV9QSU5TKSB7CisgICAgICAgICAg ICAgICAgICAgIGlmIChzLT5pb3JlZ3NlbCAmIDEpCisgICAgICAgICAgICAgICAgICAgICAgICB2 YWwgPSBzLT5pb3JlZHRibFtpbmRleF0gPj4gMzI7CisgICAgICAgICAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IHMtPmlvcmVkdGJsW2luZGV4XSAmIDB4ZmZm ZmZmZmY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisjaWZkZWYgREVCVUdfSU9BUElD CisgICAgICAgIHByaW50ZigiSS9PIEFQSUMgcmVhZDogJTA4eCA9ICUwOHhcbiIsIHMtPmlvcmVn c2VsLCB2YWwpOworI2VuZGlmCisgICAgfQorICAgIHJldHVybiB2YWw7Cit9CisKK3N0YXRpYyB2 b2lkIGlvYXBpY19tZW1fd3JpdGVsKHZvaWQgKm9wYXF1ZSwgdGFyZ2V0X3BoeXNfYWRkcl90IGFk ZHIsIHVpbnQzMl90IHZhbCkKK3sKKyAgICBJT0FQSUNTdGF0ZSAqcyA9IG9wYXF1ZTsKKyAgICBp bnQgaW5kZXg7CisKKyAgICBhZGRyICY9IDB4ZmY7CisgICAgaWYgKGFkZHIgPT0gMHgwMCkgIHsK KyAgICAgICAgcy0+aW9yZWdzZWwgPSB2YWw7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2Ug aWYgKGFkZHIgPT0gMHgxMCkgeworI2lmZGVmIERFQlVHX0lPQVBJQworICAgICAgICBwcmludGYo IkkvTyBBUElDIHdyaXRlOiAlMDh4ID0gJTA4eFxuIiwgcy0+aW9yZWdzZWwsIHZhbCk7CisjZW5k aWYKKyAgICAgICAgc3dpdGNoIChzLT5pb3JlZ3NlbCkgeworICAgICAgICAgICAgY2FzZSAweDAw OgorICAgICAgICAgICAgICAgIHMtPmlkID0gKHZhbCA+PiAyNCkgJiAweGZmOworICAgICAgICAg ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGNhc2UgMHgwMToKKyAgICAgICAgICAgIGNhc2Ug MHgwMjoKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBkZWZhdWx0OgorICAg ICAgICAgICAgICAgIGluZGV4ID0gKHMtPmlvcmVnc2VsIC0gMHgxMCkgPj4gMTsKKyAgICAgICAg ICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IElPQVBJQ19OVU1fUElOUykgeworICAg ICAgICAgICAgICAgICAgICBpZiAocy0+aW9yZWdzZWwgJiAxKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICBzLT5pb3JlZHRibFtpbmRleF0gJj0gMHhmZmZmZmZmZjsKKyAgICAgICAgICAgICAg ICAgICAgICAgIHMtPmlvcmVkdGJsW2luZGV4XSB8PSAodWludDY0X3QpdmFsIDw8IDMyOworICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcy0+aW9y ZWR0YmxbaW5kZXhdICY9IH4weGZmZmZmZmZmVUxMOworICAgICAgICAgICAgICAgICAgICAgICAg cy0+aW9yZWR0YmxbaW5kZXhdIHw9IHZhbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICBpb2FwaWNfc2VydmljZShzKTsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGlvYXBpY19zYXZlKFFFTVVGaWxlICpmLCB2 b2lkICpvcGFxdWUpCit7CisgICAgSU9BUElDU3RhdGUgKnMgPSBvcGFxdWU7CisgICAgaW50IGk7 CisKKyAgICBxZW11X3B1dF84cyhmLCAmcy0+aWQpOworICAgIHFlbXVfcHV0XzhzKGYsICZzLT5p b3JlZ3NlbCk7CisgICAgZm9yIChpID0gMDsgaSA8IElPQVBJQ19OVU1fUElOUzsgaSsrKSB7Cisg ICAgICAgIHFlbXVfcHV0X2JlNjRzKGYsICZzLT5pb3JlZHRibFtpXSk7CisgICAgfQorfQorCitz dGF0aWMgaW50IGlvYXBpY19sb2FkKFFFTVVGaWxlICpmLCB2b2lkICpvcGFxdWUsIGludCB2ZXJz aW9uX2lkKQoreworICAgIElPQVBJQ1N0YXRlICpzID0gb3BhcXVlOworICAgIGludCBpOworCisg ICAgaWYgKHZlcnNpb25faWQgIT0gMSkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBx ZW11X2dldF84cyhmLCAmcy0+aWQpOworICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5pb3JlZ3NlbCk7 CisgICAgZm9yIChpID0gMDsgaSA8IElPQVBJQ19OVU1fUElOUzsgaSsrKSB7CisgICAgICAgIHFl bXVfZ2V0X2JlNjRzKGYsICZzLT5pb3JlZHRibFtpXSk7CisgICAgfQorICAgIHJldHVybiAwOwor fQorCitzdGF0aWMgdm9pZCBpb2FwaWNfcmVzZXQodm9pZCAqb3BhcXVlKQoreworICAgIElPQVBJ Q1N0YXRlICpzID0gb3BhcXVlOworICAgIGludCBpOworCisgICAgbWVtc2V0KHMsIDAsIHNpemVv ZigqcykpOworICAgIGZvcihpID0gMDsgaSA8IElPQVBJQ19OVU1fUElOUzsgaSsrKQorICAgICAg ICBzLT5pb3JlZHRibFtpXSA9IDEgPDwgMTY7IC8qIG1hc2sgTFZUICovCit9CisKK3N0YXRpYyBD UFVSZWFkTWVtb3J5RnVuYyAqaW9hcGljX21lbV9yZWFkWzNdID0geworICAgIGlvYXBpY19tZW1f cmVhZGwsCisgICAgaW9hcGljX21lbV9yZWFkbCwKKyAgICBpb2FwaWNfbWVtX3JlYWRsLAorfTsK Kworc3RhdGljIENQVVdyaXRlTWVtb3J5RnVuYyAqaW9hcGljX21lbV93cml0ZVszXSA9IHsKKyAg ICBpb2FwaWNfbWVtX3dyaXRlbCwKKyAgICBpb2FwaWNfbWVtX3dyaXRlbCwKKyAgICBpb2FwaWNf bWVtX3dyaXRlbCwKK307CisKK0lPQVBJQ1N0YXRlICppb2FwaWNfaW5pdCh2b2lkKQoreworICAg IElPQVBJQ1N0YXRlICpzOworICAgIGludCBpb19tZW1vcnk7CisKKyAgICBzID0gcWVtdV9tYWxs b2N6KHNpemVvZihJT0FQSUNTdGF0ZSkpOworICAgIGlmICghcykKKyAgICAgICAgcmV0dXJuIE5V TEw7CisgICAgaW9hcGljX3Jlc2V0KHMpOworCisgICAgaW9fbWVtb3J5ID0gY3B1X3JlZ2lzdGVy X2lvX21lbW9yeSgwLCBpb2FwaWNfbWVtX3JlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpb2FwaWNfbWVtX3dyaXRlLCBzKTsKKyAgICBjcHVfcmVnaXN0ZXJfcGh5 c2ljYWxfbWVtb3J5KDB4ZmVjMDAwMDAsIDB4MTAwMCwgaW9fbWVtb3J5KTsKKworICAgIHJlZ2lz dGVyX3NhdmV2bSgiaW9hcGljIiwgMCwgMSwgaW9hcGljX3NhdmUsIGlvYXBpY19sb2FkLCBzKTsK KyAgICBxZW11X3JlZ2lzdGVyX3Jlc2V0KGlvYXBpY19yZXNldCwgcyk7CisKKyAgICByZXR1cm4g czsKK30KZGlmZiAtLWdpdCBhL2h3L3BjLmggYi9ody9wYy5oCmluZGV4IGM2NzI5NGQuLmQwNTU1 M2QgMTAwNjQ0Ci0tLSBhL2h3L3BjLmgKKysrIGIvaHcvcGMuaApAQCAtMzksNyArMzksMTAgQEAg dm9pZCBpcnFfaW5mbyh2b2lkKTsKIAogLyogQVBJQyAqLwogdHlwZWRlZiBzdHJ1Y3QgSU9BUElD U3RhdGUgSU9BUElDU3RhdGU7Ci0KK3ZvaWQgYXBpY19kZWxpdmVyX2lycSh1aW50OF90IGRlc3Qs IHVpbnQ4X3QgZGVzdF9tb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90 IGRlbGl2ZXJ5X21vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgdmVj dG9yX251bSwgdWludDhfdCBwb2xhcml0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDhfdCB0cmlnZ2VyX21vZGUpOwogaW50IGFwaWNfaW5pdChDUFVTdGF0ZSAqZW52KTsKIGlu dCBhcGljX2FjY2VwdF9waWNfaW50cihDUFVTdGF0ZSAqZW52KTsKIHZvaWQgYXBpY19kZWxpdmVy X3BpY19pbnRyKENQVVN0YXRlICplbnYsIGludCBsZXZlbCk7Ci0tIAoxLjYuMAoK --_002_706158FABBBA044BAD4FE898A02E4BC22435AE7Fpdsmsx503ccrcor_--