Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757584AbaGDLMS (ORCPT ); Fri, 4 Jul 2014 07:12:18 -0400 Received: from relay-s04-hub005.domainlocalhost.com ([74.115.207.216]:37639 "EHLO relay-S04-HUB005.domainlocalhost.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752764AbaGDLMR (ORCPT ); Fri, 4 Jul 2014 07:12:17 -0400 Content-Type: multipart/mixed; boundary="_000_77BC725C9062764F874D79F51E1F1A8F4C90DE0BS04MBX0104s04lo_" From: Dudley Du To: "Dmitry Torokhov (dmitry.torokhov@gmail.com)" CC: Alan Stern , Benson Leung , Patrik Fimml , "Rafael J. Wysocki" , "linux-input@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Dudley Du Subject: [PATCH v3 11/14] input: cyapa: add gen5 trackpad device firmware update function support Thread-Topic: [PATCH v3 11/14] input: cyapa: add gen5 trackpad device firmware update function support Thread-Index: Ac+XeM2TD2PE/XuZRLOUlZlkuunz1Q== Date: Fri, 4 Jul 2014 11:12:14 +0000 Message-ID: <77BC725C9062764F874D79F51E1F1A8F4C90DE0B@S04-MBX01-04.s04.local> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: <77BC725C9062764F874D79F51E1F1A8F4C90DE0B@S04-MBX01-04.s04.local> x-originating-ip: [10.30.12.145] MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --_000_77BC725C9062764F874D79F51E1F1A8F4C90DE0BS04MBX0104s04lo_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIGZpcm13YXJlIGltYWdlIHVwZGF0ZSBmdW5jdGlvbiBzdXBwb3J0ZWQgZm9yIGdlbjUgdHJh Y2twYWQgZGV2aWNlLA0Kd2hpY2ggaXRzIGZ1bmN0aW9uIGlzIHN1cHBsaWVkIHRocm91Z2ggY3lh cGEgY29yZSB1cGRhdGVfZncgaW50ZXJmYWNlLg0KVEVTVD10ZXN0IG9uIENocm9tZWJvb2tzLg0K DQpTaWduZWQtb2ZmLWJ5OiBEdWRsZXkgRHUgPGR1ZGxAY3lwcmVzcy5jb20+DQotLS0NCiBkcml2 ZXJzL2lucHV0L21vdXNlL0tjb25maWcgICAgICB8ICAgIDIgKy0NCiBkcml2ZXJzL2lucHV0L21v dXNlL2N5YXBhX2dlbjUuYyB8ICAyOTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCiAyIGZpbGVzIGNoYW5nZWQsIDI5NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL0tjb25maWcgYi9kcml2ZXJzL2lu cHV0L21vdXNlL0tjb25maWcNCmluZGV4IDM2NmZjN2EuLjAwNWQ2OWIgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2lucHV0L21vdXNlL0tjb25maWcNCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvS2Nv bmZpZw0KQEAgLTIwNSw3ICsyMDUsNyBAQCBjb25maWcgTU9VU0VfQkNNNTk3NA0KDQogY29uZmln IE1PVVNFX0NZQVBBDQogICAgICAgIHRyaXN0YXRlICJDeXByZXNzIEFQQSBJMkMgVHJhY2twYWQg c3VwcG9ydCINCi0gICAgICAgZGVwZW5kcyBvbiBJMkMNCisgICAgICAgZGVwZW5kcyBvbiBJMkMg JiYgQ1JDX0lUVV9UDQogICAgICAgIGhlbHANCiAgICAgICAgICBUaGlzIGRyaXZlciBhZGRzIHN1 cHBvcnQgZm9yIEN5cHJlc3MgQWxsIFBvaW50cyBBZGRyZXNzYWJsZSAoQVBBKQ0KICAgICAgICAg IEkyQyBUcmFja3BhZHMsIGluY2x1ZGluZyB0aGUgb25lcyB1c2VkIGluIDIwMTIgU2Ftc3VuZyBD aHJvbWVib29rcy4NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL2N5YXBhX2dlbjUu YyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvY3lhcGFfZ2VuNS5jDQppbmRleCAwNzRhZjcwLi5kMjVj YWJhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pbnB1dC9tb3VzZS9jeWFwYV9nZW41LmMNCisrKyBi L2RyaXZlcnMvaW5wdXQvbW91c2UvY3lhcGFfZ2VuNS5jDQpAQCAtMTgsNiArMTgsNyBAQA0KICNp bmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4NCiAj aW5jbHVkZSA8bGludXgvdW5hbGlnbmVkL2FjY2Vzc19vay5oPg0KKyNpbmNsdWRlIDxsaW51eC9j cmMtaXR1LXQuaD4NCiAjaW5jbHVkZSAiY3lhcGEuaCINCg0KDQpAQCAtOTAzLDYgKzkwNCw4NiBA QCBzdGF0aWMgaW50IGN5YXBhX2dlbjVfc3RhdGVfcGFyc2Uoc3RydWN0IGN5YXBhICpjeWFwYSwg dTggKnJlZ19kYXRhLCBpbnQgbGVuKQ0KICAgICAgICByZXR1cm4gLUVBR0FJTjsNCiB9DQoNCitz dGF0aWMgaW50IGN5YXBhX2dlbjVfYmxfaW5pdGlhdGUoc3RydWN0IGN5YXBhICpjeWFwYSwNCisg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQ0KK3sNCisgICAgICAgaW50 IHJldCA9IDA7DQorICAgICAgIHUxNiBsZW5ndGggPSAwOw0KKyAgICAgICB1MTYgZGF0YV9sZW4g PSAwOw0KKyAgICAgICB1MTYgbWV0YV9kYXRhX2NyYyA9IDA7DQorICAgICAgIHUxNiBjbWRfY3Jj ID0gMDsNCisgICAgICAgdTggYmxfZ2VuNV9hY3RpdmF0ZVsxOCArIENZQVBBX1RTR19GTEFTSF9N QVBfQkxPQ0tfU0laRSArIDNdOw0KKyAgICAgICBpbnQgYmxfZ2VuNV9hY3RpdmF0ZV9zaXplID0g MDsNCisgICAgICAgdTggcmVzcF9kYXRhWzExXTsNCisgICAgICAgaW50IHJlc3BfbGVuOw0KKyAg ICAgICBzdHJ1Y3QgY3lhcGFfdHNnX2Jpbl9pbWFnZSAqaW1hZ2U7DQorICAgICAgIGludCByZWNv cmRzX251bTsNCisgICAgICAgdTggKmRhdGE7DQorDQorICAgICAgIC8qIFRyeSB0byBkdW1wIGFs bCBidWZmZXJyZWQgcmVwb3J0IGRhdGEgYmVmb3JlIHNlbmQgYW55IGNvbW1hbmQuICovDQorICAg ICAgIGN5YXBhX2VtcHR5X3BpcF9vdXRwdXRfZGF0YShjeWFwYSwgTlVMTCwgTlVMTCwgTlVMTCk7 DQorDQorICAgICAgIGJsX2dlbjVfYWN0aXZhdGVfc2l6ZSA9IHNpemVvZihibF9nZW41X2FjdGl2 YXRlKTsNCisgICAgICAgbWVtc2V0KGJsX2dlbjVfYWN0aXZhdGUsIDAsIGJsX2dlbjVfYWN0aXZh dGVfc2l6ZSk7DQorDQorICAgICAgIC8qIE91dHB1dCBSZXBvcnQgUmVnaXN0ZXIgQWRkcmVzc1sx NTowXSA9IDAwMDRoICovDQorICAgICAgIGJsX2dlbjVfYWN0aXZhdGVbMF0gPSAweDA0Ow0KKyAg ICAgICBibF9nZW41X2FjdGl2YXRlWzFdID0gMHgwMDsNCisNCisgICAgICAgLyogdG90b2FsIGNv bW1hbmQgbGVuZ3RoWzE1OjBdICovDQorICAgICAgIGxlbmd0aCA9IGJsX2dlbjVfYWN0aXZhdGVf c2l6ZSAtIDI7DQorICAgICAgIHB1dF91bmFsaWduZWRfbGUxNihsZW5ndGgsICZibF9nZW41X2Fj dGl2YXRlWzJdKTsNCisgICAgICAgYmxfZ2VuNV9hY3RpdmF0ZVs0XSA9IDB4NDA7ICAvKiBSZXBv cnQgSUQgPSA0MGggKi8NCisgICAgICAgYmxfZ2VuNV9hY3RpdmF0ZVs1XSA9IDB4MDA7ICAvKiBS U1ZEID0gMDBoICovDQorDQorICAgICAgIGJsX2dlbjVfYWN0aXZhdGVbNl0gPSBHRU41X1NPUF9L RVk7ICAvKiBTT1AgPSAwMWggKi8NCisgICAgICAgYmxfZ2VuNV9hY3RpdmF0ZVs3XSA9IDB4NDg7 ICAvKiBDb21tYW5kIENvZGUgPSA0OGggKi8NCisNCisgICAgICAgLyogOCBLZXkgYnl0ZXMgYW5k IGJsb2NrIHNpemUgKi8NCisgICAgICAgZGF0YV9sZW4gPSBDWUFQQV9UU0dfQkxfS0VZX1NJWkUg KyBDWUFQQV9UU0dfRkxBU0hfTUFQX0JMT0NLX1NJWkU7DQorICAgICAgIC8qIERhdGEgTGVuZ3Ro WzE1OjBdICovDQorICAgICAgIHB1dF91bmFsaWduZWRfbGUxNihkYXRhX2xlbiwgJmJsX2dlbjVf YWN0aXZhdGVbOF0pOw0KKyAgICAgICBibF9nZW41X2FjdGl2YXRlWzEwXSA9IDB4YTU7ICAvKiBL ZXkgQnl0ZSAwICovDQorICAgICAgIGJsX2dlbjVfYWN0aXZhdGVbMTFdID0gMHgwMTsNCisgICAg ICAgYmxfZ2VuNV9hY3RpdmF0ZVsxMl0gPSAweDAyOyAgLyogICAgIC4gICAgICAqLw0KKyAgICAg ICBibF9nZW41X2FjdGl2YXRlWzEzXSA9IDB4MDM7ICAvKiAgICAgLiAgICAgICovDQorICAgICAg IGJsX2dlbjVfYWN0aXZhdGVbMTRdID0gMHhmZjsgIC8qICAgICAuICAgICAgKi8NCisgICAgICAg YmxfZ2VuNV9hY3RpdmF0ZVsxNV0gPSAweGZlOw0KKyAgICAgICBibF9nZW41X2FjdGl2YXRlWzE2 XSA9IDB4ZmQ7DQorICAgICAgIGJsX2dlbjVfYWN0aXZhdGVbMTddID0gMHg1YTsgIC8qIEtleSBC eXRlIDcgKi8NCisNCisgICAgICAgLyogY29weSA2MCBieXRlcyBNZXRhIERhdGEgUm93IFBhcmFt ZXRlcnMgKi8NCisgICAgICAgaW1hZ2UgPSAoc3RydWN0IGN5YXBhX3RzZ19iaW5faW1hZ2UgKilm dy0+ZGF0YTsNCisgICAgICAgcmVjb3Jkc19udW0gPSAoZnctPnNpemUgLSBzaXplb2Yoc3RydWN0 IGN5YXBhX3RzZ19iaW5faW1hZ2VfaGVhZCkpIC8NCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKHN0cnVjdCBjeWFwYV90c2dfYmluX2ltYWdlX2RhdGFfcmVjb3JkKTsNCisg ICAgICAgLyogQVBQX0lOVEVHUklUWSByb3cgaXMgYWx3YXlzIHRoZSBsYXN0IHJvdyBibG9jayAq Lw0KKyAgICAgICBkYXRhID0gaW1hZ2UtPnJlY29yZHNbcmVjb3Jkc19udW0gLSAxXS5yZWNvcmRf ZGF0YTsNCisgICAgICAgbWVtY3B5KCZibF9nZW41X2FjdGl2YXRlWzE4XSwgZGF0YSwgQ1lBUEFf VFNHX0ZMQVNIX01BUF9NRVRBREFUQV9TSVpFKTsNCisNCisgICAgICAgbWV0YV9kYXRhX2NyYyA9 IGNyY19pdHVfdCgweGZmZmYsICZibF9nZW41X2FjdGl2YXRlWzE4XSwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ1lBUEFfVFNHX0ZMQVNIX01BUF9NRVRBREFUQV9TSVpFKTsNCisg ICAgICAgLyogTWV0YSBEYXRhIENSQ1sxNTowXSAqLw0KKyAgICAgICBwdXRfdW5hbGlnbmVkX2xl MTYobWV0YV9kYXRhX2NyYywNCisgICAgICAgICAgICAgICAmYmxfZ2VuNV9hY3RpdmF0ZVsxOCAr IENZQVBBX1RTR19GTEFTSF9NQVBfTUVUQURBVEFfU0laRV0pOw0KKw0KKyAgICAgICBjbWRfY3Jj ID0gY3JjX2l0dV90KDB4ZmZmZiwgJmJsX2dlbjVfYWN0aXZhdGVbNl0sIDQgKyBkYXRhX2xlbik7 DQorICAgICAgIHB1dF91bmFsaWduZWRfbGUxNihjbWRfY3JjLA0KKyAgICAgICAgICAgICAgICZi bF9nZW41X2FjdGl2YXRlW2JsX2dlbjVfYWN0aXZhdGVfc2l6ZSAtIDNdKTsgIC8qIENSQ1sxNTow XSAqLw0KKyAgICAgICBibF9nZW41X2FjdGl2YXRlW2JsX2dlbjVfYWN0aXZhdGVfc2l6ZSAtIDFd ID0gR0VONV9FT1BfS0VZOw0KKw0KKyAgICAgICByZXNwX2xlbiA9IHNpemVvZihyZXNwX2RhdGEp Ow0KKyAgICAgICByZXQgPSBjeWFwYV9pMmNfcGlwX2NtZF9pcnFfc3luYyhjeWFwYSwNCisgICAg ICAgICAgICAgICAgICAgICAgIGJsX2dlbjVfYWN0aXZhdGUsIHNpemVvZihibF9nZW41X2FjdGl2 YXRlKSwNCisgICAgICAgICAgICAgICAgICAgICAgIHJlc3BfZGF0YSwgJnJlc3BfbGVuLCAxMjAw MCwNCisgICAgICAgICAgICAgICAgICAgICAgIGN5YXBhX2dlbjVfc29ydF90c2dfcGlwX2JsX3Jl c3BfZGF0YSk7DQorICAgICAgIGlmIChyZXQgfHwgcmVzcF9sZW4gIT0gR0VONV9CTF9JTklUSUFU RV9SRVNQX0xFTiB8fA0KKyAgICAgICAgICAgICAgICAgICAgICAgcmVzcF9kYXRhWzJdICE9IEdF TjVfQkxfUkVTUF9SRVBPUlRfSUQgfHwNCisgICAgICAgICAgICAgICAgICAgICAgICFHRU41X0NN RF9DT01QTEVURV9TVUNDRVNTKHJlc3BfZGF0YVs1XSkpDQorICAgICAgICAgICAgICAgcmV0dXJu IChyZXQgPCAwKSA/IHJldCA6IC1FQUdBSU47DQorDQorICAgICAgIHJldHVybiAwOw0KK30NCisN CiBib29sIGN5YXBhX2dlbjVfc29ydF9ibF9leGl0X2RhdGEoc3RydWN0IGN5YXBhICpjeWFwYSwg dTggKmJ1ZiwgaW50IGxlbikNCiB7DQogICAgICAgIGlmIChidWYgPT0gTlVMTCB8fCBsZW4gPCBH RU41X1JFU1BfTEVOR1RIX1NJWkUpDQpAQCAtOTQ5LDYgKzEwMzAsMjE2IEBAIHN0YXRpYyBpbnQg Y3lhcGFfZ2VuNV9ibF9leGl0KHN0cnVjdCBjeWFwYSAqY3lhcGEpDQogICAgICAgIHJldHVybiAt RUFHQUlOOw0KIH0NCg0KK3N0YXRpYyBpbnQgY3lhcGFfZ2VuNV9ibF9lbnRlcihzdHJ1Y3QgY3lh cGEgKmN5YXBhKQ0KK3sNCisgICAgICAgaW50IHJldDsNCisgICAgICAgdTggY21kW10gPSB7IDB4 MDQsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MkYsIDB4MDAsIDB4MDEgfTsNCisgICAgICAgdTggcmVz cF9kYXRhWzJdOw0KKyAgICAgICBpbnQgcmVzcF9sZW47DQorDQorICAgICAgIGlmIChjeWFwYS0+ aW5wdXQpIHsNCisgICAgICAgICAgICAgICBjeWFwYV9kaXNhYmxlX2lycShjeWFwYSk7DQorICAg ICAgICAgICAgICAgaW5wdXRfdW5yZWdpc3Rlcl9kZXZpY2UoY3lhcGEtPmlucHV0KTsNCisgICAg ICAgICAgICAgICBjeWFwYS0+aW5wdXQgPSBOVUxMOw0KKyAgICAgICB9DQorICAgICAgIGN5YXBh X2VuYWJsZV9pcnEoY3lhcGEpOw0KKw0KKyAgICAgICByZXQgPSBjeWFwYV9wb2xsX3N0YXRlKGN5 YXBhLCA1MDApOw0KKyAgICAgICBpZiAocmV0IDwgMCkNCisgICAgICAgICAgICAgICByZXR1cm4g cmV0Ow0KKyAgICAgICBpZiAoY3lhcGEtPmdlbiAhPSBDWUFQQV9HRU41KQ0KKyAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOw0KKw0KKyAgICAgICAvKiBBbHJlYWR5IGluIEdlbjUgQkwuIFNr aXBwaW5nIGV4aXQuICovDQorICAgICAgIGlmIChjeWFwYS0+c3RhdGUgPT0gQ1lBUEFfU1RBVEVf R0VONV9CTCkNCisgICAgICAgICAgICAgICByZXR1cm4gMDsNCisNCisgICAgICAgaWYgKGN5YXBh LT5zdGF0ZSAhPSBDWUFQQV9TVEFURV9HRU41X0FQUCkNCisgICAgICAgICAgICAgICByZXR1cm4g LUVBR0FJTjsNCisNCisgICAgICAgLyogVHJ5IHRvIGR1bXAgYWxsIGJ1ZmZlcnJlZCByZXBvcnQg ZGF0YSBiZWZvcmUgc2VuZCBhbnkgY29tbWFuZC4gKi8NCisgICAgICAgY3lhcGFfZW1wdHlfcGlw X291dHB1dF9kYXRhKGN5YXBhLCBOVUxMLCBOVUxMLCBOVUxMKTsNCisNCisgICAgICAgLyoNCisg ICAgICAgICogc2VuZCBib290bG9hZGVyIGVudGVyIGNvbW1hbmQgdG8gdHJhY2twYWQgZGV2aWNl LA0KKyAgICAgICAgKiBhZnRlciBlbnRlciBib290bG9hZGVyLCB0aGUgcmVzcG9uc2UgZGF0YSBp cyB0d28gYnl0ZXMgb2YgMHgwMCAweDAwLg0KKyAgICAgICAgKi8NCisgICAgICAgcmVzcF9sZW4g PSBzaXplb2YocmVzcF9kYXRhKTsNCisgICAgICAgbWVtc2V0KHJlc3BfZGF0YSwgMCwgcmVzcF9s ZW4pOw0KKyAgICAgICByZXQgPSBjeWFwYV9pMmNfcGlwX2NtZF9pcnFfc3luYyhjeWFwYSwNCisg ICAgICAgICAgICAgICAgICAgICAgIGNtZCwgc2l6ZW9mKGNtZCksDQorICAgICAgICAgICAgICAg ICAgICAgICByZXNwX2RhdGEsICZyZXNwX2xlbiwNCisgICAgICAgICAgICAgICAgICAgICAgIDUw MDAsIGN5YXBhX2dlbjVfc29ydF9hcHBsaWNhdGlvbl9sYXVuY2hfZGF0YSk7DQorICAgICAgIGlm IChyZXQgfHwgcmVzcF9kYXRhWzBdICE9IDB4MDAgfHwgcmVzcF9kYXRhWzFdICE9IDB4MDApDQor ICAgICAgICAgICAgICAgcmV0dXJuIChyZXQgPCAwKSA/IHJldCA6IC1FQUdBSU47DQorDQorICAg ICAgIGN5YXBhLT5zdGF0ZSA9IENZQVBBX1NUQVRFX0dFTjVfQkw7DQorICAgICAgIHJldHVybiAw Ow0KK30NCisNCitzdGF0aWMgaW50IGN5YXBhX2dlbjVfY2hlY2tfZncoc3RydWN0IGN5YXBhICpj eWFwYSwgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdykNCit7DQorICAgICAgIGludCBpOw0KKyAg ICAgICBzdHJ1Y3QgY3lhcGFfdHNnX2Jpbl9pbWFnZSAqaW1hZ2U7DQorICAgICAgIGludCBmbGFz aF9yZWNvcmRzX2NvdW50Ow0KKyAgICAgICB1MTYgZXhwZWN0ZWRfYXBwX2NyYzsNCisgICAgICAg dTE2IGV4cGVjdGVkX2FwcF9pbnRlZ3JpdHlfY3JjOw0KKyAgICAgICB1MTYgYXBwX2NyYyA9IDA7 DQorICAgICAgIHUxNiBhcHBfaW50ZWdyaXR5X2NyYyA9IDA7DQorICAgICAgIHUxNiByb3dfbnVt Ow0KKyAgICAgICB1OCAqZGF0YTsNCisgICAgICAgdTMyIGFwcF9zdGFydDsNCisgICAgICAgdTE2 IGFwcF9sZW47DQorICAgICAgIHUzMiBpbWdfc3RhcnQ7DQorICAgICAgIHUxNiBpbWdfbGVuOw0K KyAgICAgICBpbnQgcmVjb3JkX2luZGV4Ow0KKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm Y3lhcGEtPmNsaWVudC0+ZGV2Ow0KKw0KKyAgICAgICBpbWFnZSA9IChzdHJ1Y3QgY3lhcGFfdHNn X2Jpbl9pbWFnZSAqKWZ3LT5kYXRhOw0KKyAgICAgICBmbGFzaF9yZWNvcmRzX2NvdW50ID0gKGZ3 LT5zaXplIC0NCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgY3lhcGFfdHNn X2Jpbl9pbWFnZV9oZWFkKSkgLw0KKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVj dCBjeWFwYV90c2dfYmluX2ltYWdlX2RhdGFfcmVjb3JkKTsNCisNCisgICAgICAgLyogQVBQX0lO VEVHUklUWSByb3cgaXMgYWx3YXlzIHRoZSBsYXN0IHJvdyBibG9jaywNCisgICAgICAgICogYW5k IHRoZSByb3cgaWQgbXVzdCBiZSAweDAxZmYgKi8NCisgICAgICAgcm93X251bSA9IGdldF91bmFs aWduZWRfYmUxNigNCisgICAgICAgICAgICAgICAgICAgICAgICZpbWFnZS0+cmVjb3Jkc1tmbGFz aF9yZWNvcmRzX2NvdW50IC0gMV0ucm93X251bWJlcik7DQorICAgICAgIGlmICgmaW1hZ2UtPnJl Y29yZHNbZmxhc2hfcmVjb3Jkc19jb3VudCAtIDFdLmZsYXNoX2FycmF5X2lkICE9IDB4MDAgJiYN CisgICAgICAgICAgICAgICAgICAgICAgIHJvd19udW0gIT0gMHgwMWZmKSB7DQorICAgICAgICAg ICAgICAgZGV2X2VycihkZXYsICIlczogaW52YWlkIGFwcF9pbnRlZ3JpdHkgZGF0YS5cbiIsIF9f ZnVuY19fKTsNCisgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCisgICAgICAgfQ0KKyAg ICAgICBkYXRhID0gaW1hZ2UtPnJlY29yZHNbZmxhc2hfcmVjb3Jkc19jb3VudCAtIDFdLnJlY29y ZF9kYXRhOw0KKyAgICAgICBhcHBfc3RhcnQgPSBnZXRfdW5hbGlnbmVkX2xlMzIoJmRhdGFbNF0p Ow0KKyAgICAgICBhcHBfbGVuID0gZ2V0X3VuYWxpZ25lZF9sZTE2KCZkYXRhWzhdKTsNCisgICAg ICAgZXhwZWN0ZWRfYXBwX2NyYyA9IGdldF91bmFsaWduZWRfbGUxNigmZGF0YVsxMF0pOw0KKyAg ICAgICBpbWdfc3RhcnQgPSBnZXRfdW5hbGlnbmVkX2xlMzIoJmRhdGFbMTZdKTsNCisgICAgICAg aW1nX2xlbiA9IGdldF91bmFsaWduZWRfbGUxNigmZGF0YVsyMF0pOw0KKyAgICAgICBleHBlY3Rl ZF9hcHBfaW50ZWdyaXR5X2NyYyA9IGdldF91bmFsaWduZWRfbGUxNigmZGF0YVs2MF0pOw0KKw0K KyAgICAgICBpZiAoKGFwcF9zdGFydCArIGFwcF9sZW4gKyBpbWdfc3RhcnQgKyBpbWdfbGVuKSAl DQorICAgICAgICAgICAgICAgICAgICAgICBDWUFQQV9UU0dfRldfUk9XX1NJWkUpIHsNCisgICAg ICAgICAgICAgICBkZXZfZXJyKGRldiwgIiVzOiBpbnZhaWQgaW1hZ2UgYWxpZ25tZW50LlxuIiwg X19mdW5jX18pOw0KKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KKyAgICAgICB9DQor DQorICAgICAgIC8qIHZlcmlmeSBhcHBfaW50ZWdyaXR5IGNyYyAqLw0KKyAgICAgICBhcHBfaW50 ZWdyaXR5X2NyYyA9IGNyY19pdHVfdCgweGZmZmYsIGRhdGEsDQorICAgICAgICAgICAgICAgICAg ICAgICBDWUFQQV9UU0dfQVBQX0lOVEVHUklUWV9TSVpFKTsNCisgICAgICAgaWYgKGFwcF9pbnRl Z3JpdHlfY3JjICE9IGV4cGVjdGVkX2FwcF9pbnRlZ3JpdHlfY3JjKSB7DQorICAgICAgICAgICAg ICAgZGV2X2VycihkZXYsICIlczogaW52YWlkIGFwcF9pbnRlZ3JpdHkgY3JjLlxuIiwgX19mdW5j X18pOw0KKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KKyAgICAgICB9DQorDQorICAg ICAgIC8qDQorICAgICAgICAqIHZlcmlmeSBhcHBsaWNhdGlvbiBpbWFnZSBDUkMNCisgICAgICAg ICovDQorICAgICAgIHJlY29yZF9pbmRleCA9IGFwcF9zdGFydCAvIENZQVBBX1RTR19GV19ST1df U0laRSAtDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENZQVBBX1RTR19JTUdfU1RB UlRfUk9XX05VTTsNCisgICAgICAgZGF0YSA9ICh1OCAqKSZpbWFnZS0+cmVjb3Jkc1tyZWNvcmRf aW5kZXhdLnJlY29yZF9kYXRhOw0KKyAgICAgICBhcHBfY3JjID0gY3JjX2l0dV90KDB4ZmZmZiwg ZGF0YSwgQ1lBUEFfVFNHX0ZXX1JPV19TSVpFKTsNCisgICAgICAgZm9yIChpID0gMTsgaSA8IChh cHBfbGVuIC8gQ1lBUEFfVFNHX0ZXX1JPV19TSVpFKTsgaSsrKSB7DQorICAgICAgICAgICAgICAg ZGF0YSA9ICh1OCAqKSZpbWFnZS0+cmVjb3Jkc1srK3JlY29yZF9pbmRleF0ucmVjb3JkX2RhdGE7 DQorICAgICAgICAgICAgICAgYXBwX2NyYyA9IGNyY19pdHVfdChhcHBfY3JjLCBkYXRhLCBDWUFQ QV9UU0dfRldfUk9XX1NJWkUpOw0KKyAgICAgICB9DQorDQorICAgICAgIGlmIChhcHBfY3JjICE9 IGV4cGVjdGVkX2FwcF9jcmMpIHsNCisgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgIiVzOiBp bnZhaWQgZmlybXdhcmUgYXBwIGNyYyBjaGVjay5cbiIsIF9fZnVuY19fKTsNCisgICAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsNCisgICAgICAgfQ0KKw0KKyAgICAgICByZXR1cm4gMDsNCit9 DQorDQorc3RhdGljIGludCBjeWFwYV9nZW41X3dyaXRlX2Z3X2Jsb2NrKHN0cnVjdCBjeWFwYSAq Y3lhcGEsDQorICAgICAgICAgICAgICAgc3RydWN0IGN5YXBhX3RzZ19iaW5faW1hZ2VfZGF0YV9y ZWNvcmQgKmZsYXNoX3JlY29yZCkNCit7DQorICAgICAgIHU4IGZsYXNoX2FycmF5X2lkOw0KKyAg ICAgICB1MTYgZmxhc2hfcm93X2lkOw0KKyAgICAgICB1MTYgcmVjb3JkX2xlbjsNCisgICAgICAg dTggKnJlY29yZF9kYXRhOw0KKyAgICAgICB1OCBjbWRbMTQ0XTsgIC8qIDEzICsgMTI4KyAzICov DQorICAgICAgIHUxNiBjbWRfbGVuOw0KKyAgICAgICB1MTYgZGF0YV9sZW47DQorICAgICAgIHUx NiBjcmM7DQorICAgICAgIHU4IHJlc3BfZGF0YVsxMV07DQorICAgICAgIGludCByZXNwX2xlbjsN CisgICAgICAgaW50IHJldDsNCisNCisgICAgICAgZmxhc2hfYXJyYXlfaWQgPSBmbGFzaF9yZWNv cmQtPmZsYXNoX2FycmF5X2lkOw0KKyAgICAgICBmbGFzaF9yb3dfaWQgPSBnZXRfdW5hbGlnbmVk X2JlMTYoJmZsYXNoX3JlY29yZC0+cm93X251bWJlcik7DQorICAgICAgIHJlY29yZF9sZW4gPSBn ZXRfdW5hbGlnbmVkX2JlMTYoJmZsYXNoX3JlY29yZC0+cmVjb3JkX2xlbik7DQorICAgICAgIHJl Y29yZF9kYXRhID0gZmxhc2hfcmVjb3JkLT5yZWNvcmRfZGF0YTsNCisNCisgICAgICAgY21kX2xl biA9IHNpemVvZihjbWQpIC0gMjsgLyogbm90IGluY2x1ZGUgMiBieXRlcyByZWdpc2V0ciBhZGRy ZXNzLiAqLw0KKyAgICAgICBtZW1zZXQoY21kLCAwLCBjbWRfbGVuICsgMik7DQorICAgICAgIGNt ZFswXSA9IDB4MDQ7ICAvKiByZWdpc3RlciBhZGRyZXNzICovDQorICAgICAgIGNtZFsxXSA9IDB4 MDA7DQorDQorICAgICAgIHB1dF91bmFsaWduZWRfbGUxNihjbWRfbGVuLCAmY21kWzJdKTsNCisg ICAgICAgY21kWzRdID0gMHg0MDsgIC8qIHJlcG9ydCBpZCA0MGggKi8NCisgICAgICAgY21kWzVd ID0gMHgwMDsNCisNCisgICAgICAgY21kWzZdID0gR0VONV9TT1BfS0VZOyAgLyogU09QID0gMDFo ICovDQorICAgICAgIGNtZFs3XSA9IDB4Mzk7ICAvKiBjb21tYW5kIGNvZGUgPSAzOWggKi8NCisg ICAgICAgLyogMSAoRmxhc2ggQXJyYXkgSUQpICsgMiAoRmxhc2ggUm93IElEKSArIDEyOCAoZmxh c2ggZGF0YSkgKi8NCisgICAgICAgZGF0YV9sZW4gPSAzICsgcmVjb3JkX2xlbjsNCisgICAgICAg cHV0X3VuYWxpZ25lZF9sZTE2KGRhdGFfbGVuLCAmY21kWzhdKTsNCisgICAgICAgY21kWzEwXSA9 IGZsYXNoX2FycmF5X2lkOyAgLyogRmxhc2ggQXJyYXkgSUQgPSAwMGggKi8NCisgICAgICAgcHV0 X3VuYWxpZ25lZF9sZTE2KGZsYXNoX3Jvd19pZCwgJmNtZFsxMV0pOw0KKw0KKyAgICAgICBtZW1j cHkoJmNtZFsxM10sIHJlY29yZF9kYXRhLCByZWNvcmRfbGVuKTsNCisgICAgICAgY3JjID0gY3Jj X2l0dV90KDB4ZmZmZiwgJmNtZFs2XSwgNCArIGRhdGFfbGVuKTsNCisgICAgICAgcHV0X3VuYWxp Z25lZF9sZTE2KGNyYywgJmNtZFsyICsgY21kX2xlbiAtIDNdKTsNCisgICAgICAgY21kWzIgKyBj bWRfbGVuIC0gMV0gPSBHRU41X0VPUF9LRVk7DQorDQorICAgICAgIHJlc3BfbGVuID0gc2l6ZW9m KHJlc3BfZGF0YSk7DQorICAgICAgIHJldCA9IGN5YXBhX2kyY19waXBfY21kX2lycV9zeW5jKGN5 YXBhLA0KKyAgICAgICAgICAgICAgICAgICAgICAgY21kLCBzaXplb2YoY21kKSwNCisgICAgICAg ICAgICAgICAgICAgICAgIHJlc3BfZGF0YSwgJnJlc3BfbGVuLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgNTAwLCBjeWFwYV9nZW41X3NvcnRfdHNnX3BpcF9ibF9yZXNwX2RhdGEpOw0KKyAgICAg ICBpZiAocmV0IHx8IHJlc3BfbGVuICE9IEdFTjVfQkxfQkxPQ0tfV1JJVEVfUkVTUF9MRU4gfHwN CisgICAgICAgICAgICAgICAgICAgICAgIHJlc3BfZGF0YVsyXSAhPSBHRU41X0JMX1JFU1BfUkVQ T1JUX0lEIHx8DQorICAgICAgICAgICAgICAgICAgICAgICAhR0VONV9DTURfQ09NUExFVEVfU1VD Q0VTUyhyZXNwX2RhdGFbNV0pKQ0KKyAgICAgICAgICAgICAgIHJldHVybiByZXQgPCAwID8gcmV0 IDogLUVBR0FJTjsNCisNCisgICAgICAgcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgY3lh cGFfZ2VuNV9kb19md191cGRhdGUoc3RydWN0IGN5YXBhICpjeWFwYSwNCisgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQ0KK3sNCisgICAgICAgc3RydWN0IGRldmljZSAq ZGV2ID0gJmN5YXBhLT5jbGllbnQtPmRldjsNCisgICAgICAgc3RydWN0IGN5YXBhX3RzZ19iaW5f aW1hZ2UgKmltYWdlID0NCisgICAgICAgICAgICAgICAoc3RydWN0IGN5YXBhX3RzZ19iaW5faW1h Z2UgKilmdy0+ZGF0YTsNCisgICAgICAgc3RydWN0IGN5YXBhX3RzZ19iaW5faW1hZ2VfZGF0YV9y ZWNvcmQgKmZsYXNoX3JlY29yZDsNCisgICAgICAgaW50IGZsYXNoX3JlY29yZHNfY291bnQ7DQor ICAgICAgIGludCBpOw0KKyAgICAgICBpbnQgcmV0Ow0KKw0KKyAgICAgICAvKiBUcnkgdG8gZHVt cCBhbGwgYnVmZmVycmVkIGRhdGEgaWYgZXhpc3RzIGJlZm9yZSBzZW5kIGNvbW1hbmRzLiAqLw0K KyAgICAgICBjeWFwYV9lbXB0eV9waXBfb3V0cHV0X2RhdGEoY3lhcGEsIE5VTEwsIE5VTEwsIE5V TEwpOw0KKw0KKyAgICAgICBmbGFzaF9yZWNvcmRzX2NvdW50ID0NCisgICAgICAgICAgICAgICAo ZnctPnNpemUgLSBzaXplb2Yoc3RydWN0IGN5YXBhX3RzZ19iaW5faW1hZ2VfaGVhZCkpIC8NCisg ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgY3lhcGFfdHNnX2Jpbl9pbWFnZV9k YXRhX3JlY29yZCk7DQorICAgICAgIC8qDQorICAgICAgICAqIHRoZSBsYXN0IGZsYXNoIHJvdyAw eDAxZmYgaGFzIGJlZW4gd3JpdHRlbiB0aHJvdWdoIGJsX2luaXRpYXRlDQorICAgICAgICAqICBj b21tYW5kLCBzbyBETyBOT1Qgd3JpdGUgZmxhc2ggMHgwMWZmIHRvIHRyYWNrcGFkIGRldmljZS4N CisgICAgICAgICovDQorICAgICAgIGZvciAoaSA9IDA7IGkgPCAoZmxhc2hfcmVjb3Jkc19jb3Vu dCAtIDEpOyBpKyspIHsNCisgICAgICAgICAgICAgICBmbGFzaF9yZWNvcmQgPSAmaW1hZ2UtPnJl Y29yZHNbaV07DQorICAgICAgICAgICAgICAgcmV0ID0gY3lhcGFfZ2VuNV93cml0ZV9md19ibG9j ayhjeWFwYSwgZmxhc2hfcmVjb3JkKTsNCisgICAgICAgICAgICAgICBpZiAocmV0KSB7DQorICAg ICAgICAgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgIiVzOiBHZW41IEZXIHVwZGF0ZSBhYm9y dGVkLCAlZFxuIiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIHJl dCk7DQorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KKyAgICAgICAgICAgICAg IH0NCisgICAgICAgfQ0KKw0KKyAgICAgICByZXR1cm4gMDsNCit9DQorDQogc3RhdGljIGludCBj eWFwYV9nZW41X2NoYW5nZV9wb3dlcl9zdGF0ZShzdHJ1Y3QgY3lhcGEgKmN5YXBhLCB1OCBwb3dl cl9zdGF0ZSkNCiB7DQogICAgICAgIGludCByZXQ7DQpAQCAtMTYzNSw2ICsxOTI2LDExIEBAIHN0 YXRpYyB2b2lkIGN5YXBhX2dlbjVfaXJxX2hhbmRsZXIoc3RydWN0IGN5YXBhICpjeWFwYSkNCiB9 DQoNCiBjb25zdCBzdHJ1Y3QgY3lhcGFfZGV2X29wcyBjeWFwYV9nZW41X29wcyA9IHsNCisgICAg ICAgLmNoZWNrX2Z3ID0gY3lhcGFfZ2VuNV9jaGVja19mdywNCisgICAgICAgLmJsX2VudGVyID0g Y3lhcGFfZ2VuNV9ibF9lbnRlciwNCisgICAgICAgLmJsX2luaXRpYXRlID0gY3lhcGFfZ2VuNV9i bF9pbml0aWF0ZSwNCisgICAgICAgLnVwZGF0ZV9mdyA9IGN5YXBhX2dlbjVfZG9fZndfdXBkYXRl LA0KKw0KICAgICAgICAuaW5pdGlhbGl6ZSA9IGN5YXBhX2dlbjVfaW5pdGlhbGl6ZSwNCiAgICAg ICAgLnVuaW5pdGlhbGl6ZSA9IGN5YXBhX2dlbjVfdW5pbml0aWFsaXplLA0KDQotLQ0KMS43Ljku NQ0KDQpUaGlzIG1lc3NhZ2UgYW5kIGFueSBhdHRhY2htZW50cyBtYXkgY29udGFpbiBDeXByZXNz IChvciBpdHMgc3Vic2lkaWFyaWVzKSBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24uIElmIGl0IGhh cyBiZWVuIHJlY2VpdmVkIGluIGVycm9yLCBwbGVhc2UgYWR2aXNlIHRoZSBzZW5kZXIgYW5kIGlt bWVkaWF0ZWx5IGRlbGV0ZSB0aGlzIG1lc3NhZ2UuDQo= --_000_77BC725C9062764F874D79F51E1F1A8F4C90DE0BS04MBX0104s04lo_ Content-Disposition: attachment; filename="winmail.dat" Content-Transfer-Encoding: base64 Content-Type: application/ms-tnef; name="winmail.dat" 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 8q3w/6wfp+9c9rafyl+6T19PYF//u+104WKPqbHGEBnwdnERAP539RBCcL+RZH+F5N5RwVnPaNau GK0XfQxAQAAg4zAIMzUs2pArMTkyNDYsLUAgxtG/hXZv7xFRqTlCQsDxZDsQsJDCH39loMRIu9a/ BmdLkcSwMm++cAHQqTnOshNAri8uwOC9dwBrY+GpDNEmsz4uTTH/bHEIYakb1BbTD5k51J+ZZr/V /2Qk0X9jyrM3xP0umWT/uVCMAakb3hizNt2HDLDeH0+pdeFKsza5RS0tuUUxQC43LjkuNcxcVP5o AiAu8QLQb2IZ8hnwfzD/MJC/kMDgLwB5QOahHOFnQUO/kJJwIEN5cAjDKEegwZmAAdBzdWL/cGT/ maCYQFRgrgBnQWgQbMB5QH/hoQDhgcF2UL+wZ1CC4EmPTxCZgJeY9kFlaXaAge/pEYBR9nAE8HA7 EPGgsiH+ZGsA7yGWAoISCGIaAaZA9y8A6pEIUGx/MGzAOxCccWeWAOaYnpZ9fbmQ82AAAAAfAEIA AQAAABQAAABEAHUAZABsAGUAeQAgAEQAdQAAAB8AZQABAAAAIgAAAGQAdQBkAGwAQABjAHkAcABy AGUAcwBzAC4AYwBvAG0AAAAAAB8AZAABAAAACgAAAFMATQBUAFAAAAAAAAIBQQABAAAAWAAAAAAA AACBKx+kvqMQGZ1uAN0BD1QCAAAAgEQAdQBkAGwAZQB5ACAARAB1AAAAUwBNAFQAUAAAAGQAdQBk AGwAQABjAHkAcAByAGUAcwBzAC4AYwBvAG0AAAAfAAJdAQAAACIAAABkAHUAZABsAEAAYwB5AHAA cgBlAHMAcwAuAGMAbwBtAAAAAAAfAOVfAQAAACoAAABzAGkAcAA6AGQAdQBkAGwAQABjAHkAcABy AGUAcwBzAC4AYwBvAG0AAAAAAB8AGgwBAAAAFAAAAEQAdQBkAGwAZQB5ACAARAB1AAAAHwAfDAEA AAAiAAAAZAB1AGQAbABAAGMAeQBwAHIAZQBzAHMALgBjAG8AbQAAAAAAHwAeDAEAAAAKAAAAUwBN AFQAUAAAAAAAAgEZDAEAAABYAAAAAAAAAIErH6S+oxAZnW4A3QEPVAIAAACARAB1AGQAbABlAHkA IABEAHUAAABTAE0AVABQAAAAZAB1AGQAbABAAGMAeQBwAHIAZQBzAHMALgBjAG8AbQAAAB8AAV0B AAAAIgAAAGQAdQBkAGwAQABjAHkAcAByAGUAcwBzAC4AYwBvAG0AAAAAAB8A+D8BAAAAFAAAAEQA dQBkAGwAZQB5ACAARAB1AAAAHwAjQAEAAAAiAAAAZAB1AGQAbABAAGMAeQBwAHIAZQBzAHMALgBj AG8AbQAAAAAAHwAiQAEAAAAKAAAAUwBNAFQAUAAAAAAAAgH5PwEAAABYAAAAAAAAAIErH6S+oxAZ nW4A3QEPVAIAAACARAB1AGQAbABlAHkAIABEAHUAAABTAE0AVABQAAAAZAB1AGQAbABAAGMAeQBw AHIAZQBzAHMALgBjAG8AbQAAAB8ACV0BAAAAIgAAAGQAdQBkAGwAQABjAHkAcAByAGUAcwBzAC4A YwBvAG0AAAAAAB8AMUABAAAAAgAAAAAAAAALAEA6AQAAAB8AMEABAAAAAgAAAAAAAAAfABoAAQAA ABIAAABJAFAATQAuAE4AbwB0AGUAAAAAAAMA8T8ECAAACwBAOgEAAAADAP0/qAMAAAIBCzABAAAA EAAAACXA0omsRdRMnHx9hdEathgDABcAAQAAAEAAOQAAu+TOeJfPAUAACDByeyDPeJfPAQsAKQAA AAAACwAjAAAAAAAfAACAhgMCAAAAAADAAAAAAAAARgEAAAAeAAAAYQBjAGMAZQBwAHQAbABhAG4A ZwB1AGEAZwBlAAAAAAABAAAAGgAAAHoAaAAtAEMATgAsACAAZQBuAC0AVQBTAAAAAAALAACACCAG AAAAAADAAAAAAAAARgAAAAAGhQAAAAAAAB8ANwABAAAAsgAAAFsAUABBAFQAQwBIACAAdgAzACAA MQAxAC8AMQA0AF0AIABpAG4AcAB1AHQAOgAgAGMAeQBhAHAAYQA6ACAAYQBkAGQAIABnAGUAbgA1 ACAAdAByAGEAYwBrAHAAYQBkACAAZABlAHYAaQBjAGUAIABmAGkAcgBtAHcAYQByAGUAIAB1AHAA ZABhAHQAZQAgAGYAdQBuAGMAdABpAG8AbgAgAHMAdQBwAHAAbwByAHQAAAAAAB8APQABAAAAAgAA AAAAAAADADYAAAAAAAIBcQABAAAAFgAAAAHPl3jNkw9jxP17mUSzlJWZZLrp89UAAB8AcAABAAAA sgAAAFsAUABBAFQAQwBIACAAdgAzACAAMQAxAC8AMQA0AF0AIABpAG4AcAB1AHQAOgAgAGMAeQBh AHAAYQA6ACAAYQBkAGQAIABnAGUAbgA1ACAAdAByAGEAYwBrAHAAYQBkACAAZABlAHYAaQBjAGUA IABmAGkAcgBtAHcAYQByAGUAIAB1AHAAZABhAHQAZQAgAGYAdQBuAGMAdABpAG8AbgAgAHMAdQBw AHAAbwByAHQAAAAAAB8ANRABAAAAhAAAADwANwA3AEIAQwA3ADIANQBDADkAMAA2ADIANwA2ADQA RgA4ADcANABEADcAOQBGADUAMQBFADEARgAxAEEAOABGADQAQwA5ADAARABFADAAQgBAAFMAMAA0 AC0ATQBCAFgAMAAxAC0AMAA0AC4AcwAwADQALgBsAG8AYwBhAGwAPgAAAAMA3j/p/QAACwAAgAgg BgAAAAAAwAAAAAAAAEYAAAAAA4UAAAAAAAADAACACCAGAAAAAADAAAAAAAAARgAAAAABhQAAAAAA AAMAAIADIAYAAAAAAMAAAAAAAABGAAAAAAGBAAAAAAAAAwCAEP////8FAACAAyAGAAAAAADAAAAA AAAARgAAAAACgQAAAAAAAAAAAAALAACAAyAGAAAAAADAAAAAAAAARgAAAAAcgQAAAAAAAEAABzDa 1/jNeJfPAQsAAgABAAAAAwAmAAAAAAACARAwAQAAAEYAAAAAAAAAsR+hOTAgUUadtKVw3tCf1AcA d7xyXJBidk+HTXn1Hh8ajwAAAJk8GwAAuqc+7svX90Cjdu81/GFZiQAYg/zDnwAAAAAfAPo/AQAA ABQAAABEAHUAZABsAGUAeQAgAEQAdQAAAAMACVkBAAAAAwAAgAggBgAAAAAAwAAAAAAAAEYAAAAA EIUAAAAAAAAfAACAH6TrM6h6LkK+e3nhqY5UswEAAAA4AAAAQwBvAG4AdgBlAHIAcwBhAHQAaQBv AG4ASQBuAGQAZQB4AFQAcgBhAGMAawBpAG4AZwBFAHgAAAABAAAAugAAAEkASQA9ADAAMQBDAEYA OQA3ADcAOABDAEQAOQAzADAARgA2ADMAQwA0AEYARAA3AEIAOQA5ADQANABCADMAOQA0ADkANQA5 ADkANgA0AEIAQQBFADkARgAzAEQANQA7AFYAZQByAHMAaQBvAG4APQBWAGUAcgBzAGkAbwBuACAA MQA0AC4AMwAgACgAQgB1AGkAbABkACAAMQA3ADQALgAwACkALAAgAFMAdABhAGcAZQA9AEgANAAA AAAAAwAAgAMgBgAAAAAAwAAAAAAAAEYAAAAAE4EAAAEAAAADAACAAyAGAAAAAADAAAAAAAAARgAA AAAjgQAA////fwMAAIADIAYAAAAAAMAAAAAAAABGAAAAABCBAAAAAAAAAwAAgAMgBgAAAAAAwAAA AAAAAEYAAAAAEYEAAAAAAAALAACAAyAGAAAAAADAAAAAAAAARgAAAAAkgQAAAAAAAAsAAIADIAYA AAAAAMAAAAAAAABGAAAAACyBAAAAAAAAAwAAgAMgBgAAAAAAwAAAAAAAAEYAAAAAKYEAAAAAAAAD AACAAyAGAAAAAADAAAAAAAAARgAAAAAqgQAAAAAAAB8AAIADIAYAAAAAAMAAAAAAAABGAAAAACeB AAABAAAAAgAAAAAAAAADAACAAyAGAAAAAADAAAAAAAAARgAAAAASgQAAAQAAAB8AAIADIAYAAAAA AMAAAAAAAABGAAAAACGBAAABAAAAAgAAAAAAAAALAACAAyAGAAAAAADAAAAAAAAARgAAAAADgQAA AAAAAAsAAIADIAYAAAAAAMAAAAAAAABGAAAAACaBAAAAAAAACwAAgAggBgAAAAAAwAAAAAAAAEYA AAAADoUAAAAAAAADAACACCAGAAAAAADAAAAAAAAARgAAAAAYhQAAAAAAAAsAAIAIIAYAAAAAAMAA AAAAAABGAAAAAIKFAAAAAAAAAwANNP0/AAAfAACAhgMCAAAAAADAAAAAAAAARgEAAAAgAAAAeAAt AG0AcwAtAGgAYQBzAC0AYQB0AHQAYQBjAGgAAAABAAAAAgAAAAAAAAAfAACAhgMCAAAAAADAAAAA AAAARgEAAAAiAAAAeAAtAG8AcgBpAGcAaQBuAGEAdABpAG4AZwAtAGkAcAAAAAAAAQAAAB4AAABb ADEAMAAuADMAMAAuADEAMgAuADEANAA1AF0AAAAAALRO --_000_77BC725C9062764F874D79F51E1F1A8F4C90DE0BS04MBX0104s04lo_-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/