From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51144) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XM6H9-0004hN-6c for qemu-devel@nongnu.org; Mon, 25 Aug 2014 22:14:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XM6H3-0000tg-Bj for qemu-devel@nongnu.org; Mon, 25 Aug 2014 22:14:23 -0400 Received: from smtpbgjp2.qq.com ([54.238.162.12]:42475) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XM6H2-0000pf-KN for qemu-devel@nongnu.org; Mon, 25 Aug 2014 22:14:17 -0400 In-Reply-To: <20140813184745.GC25973@redhat.com> References: <1407937660-1952-1-git-send-email-hjxiaohust@gmail.com> <20140813184745.GC25973@redhat.com> From: "=?gb18030?B?2Ki+rg==?=" Sender: xhjcehust@qq.com Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_53FBED57_09296EC0_65D464DE" Content-Transfer-Encoding: 8Bit Date: Tue, 26 Aug 2014 10:13:43 +0800 Message-ID: Subject: Re: [Qemu-devel] [PATCH 1/1] add loopback for virtio-net List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?gb18030?B?TWljaGFlbCBTLiBUc2lya2lu?= Cc: =?gb18030?B?dmlydGlvLWRldg==?= , =?gb18030?B?amFzb3dhbmc=?= , =?gb18030?B?ZmFteg==?= , =?gb18030?B?cWVtdS1kZXZlbA==?= , =?gb18030?B?YWxpZ3Vvcmk=?= This is a multi-part message in MIME format. ------=_NextPart_53FBED57_09296EC0_65D464DE Content-Type: text/plain; charset="gb18030" Content-Transfer-Encoding: base64 VGhhbmtzIGZvciB5b3VyIHN1Z2dlc3Rpb25zLiBXaGF0IEkgbWVhbiBieSB0aGlzLCBpcyB0 aGF0IHdlIGNhbiB0ZXN0IHdoZXRoZXIgdmlydGlvLW5ldCBjYW4gc2VuZCBhbmQgcmVjZWl2 ZSBwYWNrZXRzIG5vcm1hbGx5IHdpdGggZXRodG9vbCBpbiBHdWVzdCBPUywganVzdCBhcyB3 ZSB0ZXN0IGUxMDAwIHdpdGggZXRodG9vbCBbLXRdLiBBcyB3ZSBrbm93LCBldGh0b29sIGlz IGFuIGVmZmVjdGl2ZSB0b29sIGZvciB0ZXN0aW5nIG5ldCBkZXZpY2UsIHNvIHdlIGNhbiBw cm92aWRlIHRoaXMgc3VwcG9ydCBieSB0aGlzLiBJdCBpcyBoYXJkIHRvIGltYWdlIHdlIGhh dmUgdG8gY29ubmVjdCB0byBhbm90aGVyIFZNIHRvIGNvbXBsZXRlIHRoaXMgdGVzdC4gQWRk aW5nIHRoaXMgY2FwYWJpbGl0eSB3aWxsIGhlbHAgdXMgbWFrZSBpdC4NCi0tLS0tLS0tLS0t LS0tLS0tLSBPcmlnaW5hbCAtLS0tLS0tLS0tLS0tLS0tLS0NCkZyb206ICAiTWljaGFlbCBT LiBUc2lya2luIjs8bXN0QHJlZGhhdC5jb20+Ow0KRGF0ZTogIFRodSwgQXVnIDE0LCAyMDE0 IDAyOjQ3IEFNDQpUbzogICJIZW5namlueGlhbyI8aGp4aWFvaHVzdEBnbWFpbC5jb20+OyAN CkNjOiAgInFlbXUtZGV2ZWwiPHFlbXUtZGV2ZWxAbm9uZ251Lm9yZz47ICJ2aXJ0aW8tZGV2 Ijx2aXJ0aW8tZGV2QGxpc3RzLm9hc2lzLW9wZW4ub3JnPjsgImFsaWd1b3JpIjxhbGlndW9y aUBhbWF6b24uY29tPjsgImZhbXoiPGZhbXpAcmVkaGF0LmNvbT47ICJqYXNvd2FuZyI8amFz b3dhbmdAcmVkaGF0LmNvbT47IA0KU3ViamVjdDogIFJlOiBbUEFUQ0ggMS8xXSBhZGQgbG9v cGJhY2sgZm9yIHZpcnRpby1uZXQNCg0KDQoNCk9uIFdlZCwgQXVnIDEzLCAyMDE0IGF0IDA5 OjQ3OjQwUE0gKzA4MDAsIEhlbmdqaW54aWFvIHdyb3RlOg0KPiBTb21ldGltZXMgaXQgaXMg bmVjZXNzYXJ5IHRvIHRlc3Qgd2hldGhlciB2aXJ0aW8tbmV0IGNhbiBzZW5kIGFuZCByZWNl aXZlIHBhY2tldHMNCj4gbm9ybWFsbHksIGp1c3QgYXMgZTEwMDAgZG9lcy4gVGhpcyBwYXRj aCBhZGRzIGxvb3BiYWNrIGZvciB2aXJ0aW8tbmV0LCB3aGVuIHRoZQ0KPiBjb21tYW5kICdW SVJUSU9fTkVUX0NUUkxfTE9PUEJBQ0tfU0VUJyBpcyBzZW50IGZyb20gZnJvbnQtZW5kIGRy aXZlcihzdWNoIGFzIA0KPiB2aXJ0aW8tbmV0IGRyaXZlciBpbiBsaW51eC5naXQpLCB2aXJ0 aW8tbmV0IGdvZXMgaW50byBsb29wYmFjayBtb2RlLCBhbmQgdGhlIHRlc3QgDQo+IGFib3Zl IGNhbiBiZSBleGVjdXRlZCwgdGhlbiBjb21tYW5kICdWSVJUSU9fTkVUX0NUUkxfTE9PUEJB Q0tfVU5TRVQnIGNhbiBtYWtlIA0KPiB2aXJ0aW8tbmV0IGdvIGJhY2sgdG8gcHJldmlvdXMg c3RhdGUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBIZW5namlueGlhbyA8aGp4aWFvaHVzdEBn bWFpbC5jb20+DQoNClVzaW5nIHR3byBjb21tYW5kcyBoZXJlIHNlZW1zIHVuanVzdGlmaWVk LCB3aGVuIHVzaW5nIG9uZSB3b3VsZCBkby4NCg0KQ2FwYWJpbGl0eSB0byBoYW5kbGUgdGhl c2UgY29tbWFuZHMgbmVlZHMgYSBmZWF0dXJlIGJpdC4NCg0KVGhlIHBhdGNoZXMgaGF2ZSBz dHlsZSBpc3N1ZXMuDQoNCkJ1dCBiZXNpZGVzIGFsbCB0aGlzLCB0aGVyZSBhcmUgYmlnZ2Vy IHF1ZXN0aW9uczoNCg0KSG93IGlzIHRoaXMgY2FwYWJpbGl0eSB1c2VmdWw/IFlvdXIgZGVz Y3JpcHRpb24gaXMga2luZCBvZiB2YWd1ZS4NCkl0IG1pZ2h0IGJlIHVzZWZ1bCBmb3IgZTEw MDAgYXMgYSBkcml2ZXIgZGV2ZWxvcG1lbnQgdG9vbC4NCkZvciB2aXJ0aW8gaXQgc2VlbXMg anVzdCBhcyBlYXN5IHRvIGNvbm5lY3QgdG8gYW5vdGhlciBWTQ0KYWx0ZXJuYXRpdmVseSB5 b3UgY2FuIHdyaXRlIGEgdXRpbGl0eSAtIGV4dGVybmFsIHRvIHFlbXUgLSB0aGF0DQpnZXRz IGFsbCBwYWNrZXRzIGFuZCBib3VuY2VzIHRoZW0gYmFjayBvbiB0aGUgc2FtZSBmZC4NCklu IGZhY3QsIHdvbid0IHNvbWV0aGluZyBsaWtlIG5ldGNhdCBkbyB0aGlzIG1vcmUgb3IgbGVz cyBmb3IgZnJlZT8NCkl0J3MgaGFyZCB0byBqdWRnZSB3aGV0aGVyIGl0J3Mgd29ydGggdGhl IHBlcmZvcm1hbmNlIGFuZCBtYWludGFpbmFuY2UNCmNvc3RzLCB3aXRob3V0IHRoaXMgaW5m by4NCg0KDQo+IC0tLQ0KPiAgaHcvbmV0L3ZpcnRpby1uZXQuYyAgICAgICAgICAgIHwgMjYg KysrKysrKysrKysrKysrKysrKysrKystLS0NCj4gIGluY2x1ZGUvaHcvdmlydGlvL3ZpcnRp by1uZXQuaCB8ICA5ICsrKysrKysrKw0KPiAgaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLmgg ICAgIHwgIDEgKw0KPiAgaW5jbHVkZS9uZXQvbmV0LmggICAgICAgICAgICAgIHwgIDEgKw0K PiAgbmV0L25ldC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKystLQ0KPiAgNSBm aWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiANCj4g ZGlmZiAtLWdpdCBhL2h3L25ldC92aXJ0aW8tbmV0LmMgYi9ody9uZXQvdmlydGlvLW5ldC5j DQo+IGluZGV4IDI2OGVmZjkuLmNhMzEzZjQgMTAwNjQ0DQo+IC0tLSBhL2h3L25ldC92aXJ0 aW8tbmV0LmMNCj4gKysrIGIvaHcvbmV0L3ZpcnRpby1uZXQuYw0KPiBAQCAtNzc4LDYgKzc3 OCwyMiBAQCBzdGF0aWMgaW50IHZpcnRpb19uZXRfaGFuZGxlX21xKFZpcnRJT05ldCAqbiwg dWludDhfdCBjbWQsDQo+ICANCj4gICAgICByZXR1cm4gVklSVElPX05FVF9PSzsNCj4gIH0N Cj4gKw0KPiArc3RhdGljIGludCB2aXJ0aW9fbmV0X2hhbmRsZV9sb29wYmFjayhWaXJ0SU9O ZXQgKm4sIHVpbnQ4X3QgY21kLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgaW50IGlvdl9jbnQpDQo+ICt7 DQo+ICsgICAgVmlydElPRGV2aWNlICp2ZGV2ID0gVklSVElPX0RFVklDRShuKTsNCj4gKyAg ICBpZiAoY21kID09IFZJUlRJT19ORVRfQ1RSTF9MT09QQkFDS19TRVQpIHsNCj4gKyAgICAg ICAgdmRldi0+bG9vcGJhY2sgPSAxOw0KPiArICAgICAgICByZXR1cm4gVklSVElPX05FVF9P SzsNCj4gKyAgICB9IGVsc2UgaWYgKGNtZCA9PSBWSVJUSU9fTkVUX0NUUkxfTE9PUEJBQ0tf VU5TRVQpIHsNCj4gKyAgICAgICAgdmRldi0+bG9vcGJhY2sgPSAwOw0KPiArICAgICAgICBy ZXR1cm4gVklSVElPX05FVF9PSzsNCj4gKyAgICB9IGVsc2Ugew0KPiArICAgICAgICByZXR1 cm4gVklSVElPX05FVF9FUlI7DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9p ZCB2aXJ0aW9fbmV0X2hhbmRsZV9jdHJsKFZpcnRJT0RldmljZSAqdmRldiwgVmlydFF1ZXVl ICp2cSkNCj4gIHsNCj4gICAgICBWaXJ0SU9OZXQgKm4gPSBWSVJUSU9fTkVUKHZkZXYpOw0K PiBAQCAtODEzLDYgKzgyOSw4IEBAIHN0YXRpYyB2b2lkIHZpcnRpb19uZXRfaGFuZGxlX2N0 cmwoVmlydElPRGV2aWNlICp2ZGV2LCBWaXJ0UXVldWUgKnZxKQ0KPiAgICAgICAgICAgICAg c3RhdHVzID0gdmlydGlvX25ldF9oYW5kbGVfbXEobiwgY3RybC5jbWQsIGlvdiwgaW92X2Nu dCk7DQo+ICAgICAgICAgIH0gZWxzZSBpZiAoY3RybC5jbGFzcyA9PSBWSVJUSU9fTkVUX0NU UkxfR1VFU1RfT0ZGTE9BRFMpIHsNCj4gICAgICAgICAgICAgIHN0YXR1cyA9IHZpcnRpb19u ZXRfaGFuZGxlX29mZmxvYWRzKG4sIGN0cmwuY21kLCBpb3YsIGlvdl9jbnQpOw0KPiArICAg ICAgICB9IGVsc2UgaWYgKGN0cmwuY2xhc3MgPT0gVklSVElPX05FVF9DVFJMX0xPT1BCQUNL KSB7DQo+ICsgICAgICAgICAgICBzdGF0dXMgPSB2aXJ0aW9fbmV0X2hhbmRsZV9sb29wYmFj ayhuLCBjdHJsLmNtZCwgaW92LCBpb3ZfY250KTsNCj4gICAgICAgICAgfQ0KPiAgDQo+ICAg ICAgICAgIHMgPSBpb3ZfZnJvbV9idWYoZWxlbS5pbl9zZywgZWxlbS5pbl9udW0sIDAsICZz dGF0dXMsIHNpemVvZihzdGF0dXMpKTsNCj4gQEAgLTExMDgsNiArMTEyNiw5IEBAIHN0YXRp YyBpbnQzMl90IHZpcnRpb19uZXRfZmx1c2hfdHgoVmlydElPTmV0UXVldWUgKnEpDQo+ICAg ICAgVmlydFF1ZXVlRWxlbWVudCBlbGVtOw0KPiAgICAgIGludDMyX3QgbnVtX3BhY2tldHMg PSAwOw0KPiAgICAgIGludCBxdWV1ZV9pbmRleCA9IHZxMnEodmlydGlvX2dldF9xdWV1ZV9p bmRleChxLT50eF92cSkpOw0KPiArICAgTmV0Q2xpZW50U3RhdGUgKnNlbmRlciA9IHFlbXVf Z2V0X3N1YnF1ZXVlKG4tPm5pYywgcXVldWVfaW5kZXgpOw0KPiArDQo+ICsgICBzZW5kZXIt Pmxvb3BiYWNrID0gdmRldi0+bG9vcGJhY2s7DQo+ICAgICAgaWYgKCEodmRldi0+c3RhdHVz ICYgVklSVElPX0NPTkZJR19TX0RSSVZFUl9PSykpIHsNCj4gICAgICAgICAgcmV0dXJuIG51 bV9wYWNrZXRzOw0KPiAgICAgIH0NCj4gQEAgLTExNTYsOSArMTE3Nyw4IEBAIHN0YXRpYyBp bnQzMl90IHZpcnRpb19uZXRfZmx1c2hfdHgoVmlydElPTmV0UXVldWUgKnEpDQo+ICAgICAg ICAgIH0NCj4gIA0KPiAgICAgICAgICBsZW4gPSBuLT5ndWVzdF9oZHJfbGVuOw0KPiAtDQo+ IC0gICAgICAgIHJldCA9IHFlbXVfc2VuZHZfcGFja2V0X2FzeW5jKHFlbXVfZ2V0X3N1YnF1 ZXVlKG4tPm5pYywgcXVldWVfaW5kZXgpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvdXRfc2csIG91dF9udW0sIHZpcnRpb19uZXRfdHhfY29tcGxldGUp Ow0KPiArDQo+ICsgICAgICAgcmV0ID0gcWVtdV9zZW5kdl9wYWNrZXRfYXN5bmMoc2VuZGVy LCBvdXRfc2csIG91dF9udW0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmlydGlvX25ldF90eF9jb21wbGV0ZSk7DQo+ICAgICAgICAgIGlmIChyZXQgPT0g MCkgew0KPiAgICAgICAgICAgICAgdmlydGlvX3F1ZXVlX3NldF9ub3RpZmljYXRpb24ocS0+ dHhfdnEsIDApOw0KPiAgICAgICAgICAgICAgcS0+YXN5bmNfdHguZWxlbSA9IGVsZW07DQo+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3ZpcnRpby92aXJ0aW8tbmV0LmggYi9pbmNsdWRl L2h3L3ZpcnRpby92aXJ0aW8tbmV0LmgNCj4gaW5kZXggNmNlYjVhYS4uMjRlNTZiZiAxMDA2 NDQNCj4gLS0tIGEvaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLW5ldC5oDQo+ICsrKyBiL2lu Y2x1ZGUvaHcvdmlydGlvL3ZpcnRpby1uZXQuaA0KPiBAQCAtMjU3LDYgKzI1NywxNSBAQCBz dHJ1Y3QgdmlydGlvX25ldF9jdHJsX21xIHsNCj4gICNkZWZpbmUgVklSVElPX05FVF9DVFJM X0dVRVNUX09GRkxPQURTICAgNQ0KPiAgICNkZWZpbmUgVklSVElPX05FVF9DVFJMX0dVRVNU X09GRkxPQURTX1NFVCAgICAgICAgMA0KPiAgDQo+ICsgLyoNCj4gKyAgKiBDb250cm9sIExv b3BiYWNrDQo+ICsgICoNCj4gKyAgKiBUaGUgY29tbWFuZCBWSVJUSU9fTkVUX0NUUkxfTE9P UEJBQ0tfU0VUIGlzIHVzZWQgdG8gcmVxdWlyZSB0aGUgZGV2aWNlDQo+ICsgICogY29tZSBp bnRvIGxvb3BiYWNrIHN0YXRlLg0KPiArICAqLw0KPiArI2RlZmluZSBWSVJUSU9fTkVUX0NU UkxfTE9PUEJBQ0sgICA2DQo+ICsgI2RlZmluZSBWSVJUSU9fTkVUX0NUUkxfTE9PUEJBQ0tf U0VUICAgICAgICAwDQo+ICsgI2RlZmluZSBWSVJUSU9fTkVUX0NUUkxfTE9PUEJBQ0tfVU5T RVQgICAgICAgIDENCj4gICNkZWZpbmUgREVGSU5FX1ZJUlRJT19ORVRfRkVBVFVSRVMoX3N0 YXRlLCBfZmllbGQpIFwNCj4gICAgICAgICAgREVGSU5FX1BST1BfQklUKCJhbnlfbGF5b3V0 IiwgX3N0YXRlLCBfZmllbGQsIFZJUlRJT19GX0FOWV9MQVlPVVQsIHRydWUpLCBcDQo+ICAg ICAgICAgIERFRklORV9QUk9QX0JJVCgiY3N1bSIsIF9zdGF0ZSwgX2ZpZWxkLCBWSVJUSU9f TkVUX0ZfQ1NVTSwgdHJ1ZSksIFwNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvdmlydGlv L3ZpcnRpby5oIGIvaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLmgNCj4gaW5kZXggYTYwMTA0 Yy4uMjE5ZTBkMiAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLmgN Cj4gKysrIGIvaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLmgNCj4gQEAgLTEyOCw2ICsxMjgs NyBAQCBzdHJ1Y3QgVmlydElPRGV2aWNlDQo+ICAgICAgVk1DaGFuZ2VTdGF0ZUVudHJ5ICp2 bXN0YXRlOw0KPiAgICAgIGNoYXIgKmJ1c19uYW1lOw0KPiAgICAgIHVpbnQ4X3QgZGV2aWNl X2VuZGlhbjsNCj4gKyAgIHVpbnQ4X3QgbG9vcGJhY2s7DQo+ICB9Ow0KPiAgDQo+ICB0eXBl ZGVmIHN0cnVjdCBWaXJ0aW9EZXZpY2VDbGFzcyB7DQo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L25ldC9uZXQuaCBiL2luY2x1ZGUvbmV0L25ldC5oDQo+IGluZGV4IGVkNTk0ZjkuLmNlNjZi ODYgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbmV0L25ldC5oDQo+ICsrKyBiL2luY2x1ZGUv bmV0L25ldC5oDQo+IEBAIC04OSw2ICs4OSw3IEBAIHN0cnVjdCBOZXRDbGllbnRTdGF0ZSB7 DQo+ICAgICAgTmV0Q2xpZW50RGVzdHJ1Y3RvciAqZGVzdHJ1Y3RvcjsNCj4gICAgICB1bnNp Z25lZCBpbnQgcXVldWVfaW5kZXg7DQo+ICAgICAgdW5zaWduZWQgcnhmaWx0ZXJfbm90aWZ5 X2VuYWJsZWQ6MTsNCj4gKyAgIGludCBsb29wYmFjazsNCj4gIH07DQo+ICANCj4gIHR5cGVk ZWYgc3RydWN0IE5JQ1N0YXRlIHsNCj4gZGlmZiAtLWdpdCBhL25ldC9uZXQuYyBiL25ldC9u ZXQuYw0KPiBpbmRleCA2ZDkzMGVhLi5mNGMxZWY0IDEwMDY0NA0KPiAtLS0gYS9uZXQvbmV0 LmMNCj4gKysrIGIvbmV0L25ldC5jDQo+IEBAIC02MTEsOCArNjExLDExIEBAIHNzaXplX3Qg cWVtdV9zZW5kdl9wYWNrZXRfYXN5bmMoTmV0Q2xpZW50U3RhdGUgKnNlbmRlciwNCj4gICAg ICBpZiAoc2VuZGVyLT5saW5rX2Rvd24gfHwgIXNlbmRlci0+cGVlcikgew0KPiAgICAgICAg ICByZXR1cm4gaW92X3NpemUoaW92LCBpb3ZjbnQpOw0KPiAgICAgIH0NCj4gLQ0KPiAtICAg IHF1ZXVlID0gc2VuZGVyLT5wZWVyLT5pbmNvbWluZ19xdWV1ZTsNCj4gKyAgICBpZiAoc2Vu ZGVyLT5sb29wYmFjaykgew0KPiArICAgICAgICBxdWV1ZSA9IHNlbmRlci0+aW5jb21pbmdf cXVldWU7DQo+ICsgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgcXVldWUgPSBzZW5kZXItPnBl ZXItPmluY29taW5nX3F1ZXVlOw0KPiArICAgIH0NCj4gIA0KPiAgICAgIHJldHVybiBxZW11 X25ldF9xdWV1ZV9zZW5kX2lvdihxdWV1ZSwgc2VuZGVyLA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRRU1VX05FVF9QQUNLRVRfRkxBR19OT05FLA0KPiAtLSAN Cj4gMS44LjMuMg== ------=_NextPart_53FBED57_09296EC0_65D464DE Content-Type: text/html; charset="gb18030" Content-Transfer-Encoding: base64 PGRpdj5UaGFua3MgZm9yIHlvdXIgc3VnZ2VzdGlvbnMuIFdoYXQgSSBtZWFuIGJ5IHRoaXMs IGlzIHRoYXQgd2UgY2FuIHRlc3Qgd2hldGhlciB2aXJ0aW8tbmV0IGNhbiBzZW5kIGFuZCBy ZWNlaXZlIHBhY2tldHMgbm9ybWFsbHkgd2l0aCBldGh0b29sIGluIEd1ZXN0IE9TLCBqdXN0 IGFzIHdlIHRlc3QgZTEwMDAgd2l0aCBldGh0b29sIFstdF0uIEFzIHdlIGtub3csIGV0aHRv b2wgaXMgYW4gZWZmZWN0aXZlIHRvb2wgZm9yIHRlc3RpbmcgbmV0IGRldmljZSwgc28gd2Ug Y2FuIHByb3ZpZGUgdGhpcyBzdXBwb3J0IGJ5IHRoaXMuIEl0IGlzIGhhcmQgdG8gaW1hZ2Ug d2UgaGF2ZSB0byBjb25uZWN0IHRvIGFub3RoZXIgVk0gdG8gY29tcGxldGUgdGhpcyB0ZXN0 LiBBZGRpbmcgdGhpcyBjYXBhYmlsaXR5IHdpbGwgaGVscCB1cyBtYWtlIGl0LjwvZGl2Pjxk aXY+PGRpdiBzdHlsZT0iZm9udC1zaXplOiAxMnB4O2ZvbnQtZmFtaWx5OiBBcmlhbCBOYXJy b3c7cGFkZGluZzoycHggMCAycHggMDsiPi0tLS0tLS0tLS0tLS0tLS0tLSZuYnNwO09yaWdp bmFsJm5ic3A7LS0tLS0tLS0tLS0tLS0tLS0tPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXpl OiAxMnB4O2JhY2tncm91bmQ6I2VmZWZlZjtwYWRkaW5nOjhweDsiPjxkaXY+PGI+RnJvbTog PC9iPiZuYnNwOyJNaWNoYWVsIFMuIFRzaXJraW4iOyZsdDttc3RAcmVkaGF0LmNvbSZndDs7 PC9kaXY+PGRpdj48Yj5EYXRlOiA8L2I+Jm5ic3A7VGh1LCBBdWcgMTQsIDIwMTQgMDI6NDcg QU08L2Rpdj48ZGl2PjxiPlRvOiA8L2I+Jm5ic3A7IkhlbmdqaW54aWFvIiZsdDtoanhpYW9o dXN0QGdtYWlsLmNvbSZndDs7IDx3YnI+PC9kaXY+PGRpdj48Yj5DYzogPC9iPiZuYnNwOyJx ZW11LWRldmVsIiZsdDtxZW11LWRldmVsQG5vbmdudS5vcmcmZ3Q7OyAidmlydGlvLWRldiIm bHQ7dmlydGlvLWRldkBsaXN0cy5vYXNpcy1vcGVuLm9yZyZndDs7ICJhbGlndW9yaSImbHQ7 YWxpZ3VvcmlAYW1hem9uLmNvbSZndDs7ICJmYW16IiZsdDtmYW16QHJlZGhhdC5jb20mZ3Q7 OyAiamFzb3dhbmciJmx0O2phc293YW5nQHJlZGhhdC5jb20mZ3Q7OyA8d2JyPjwvZGl2Pjxk aXY+PGI+U3ViamVjdDogPC9iPiZuYnNwO1JlOiBbUEFUQ0ggMS8xXSBhZGQgbG9vcGJhY2sg Zm9yIHZpcnRpby1uZXQ8L2Rpdj48L2Rpdj48ZGl2Pjxicj48L2Rpdj5PbiBXZWQsIEF1ZyAx MywgMjAxNCBhdCAwOTo0Nzo0MFBNICswODAwLCBIZW5namlueGlhbyB3cm90ZTo8YnI+Jmd0 OyBTb21ldGltZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIHRlc3Qgd2hldGhlciB2aXJ0aW8tbmV0 IGNhbiBzZW5kIGFuZCByZWNlaXZlIHBhY2tldHM8YnI+Jmd0OyBub3JtYWxseSwganVzdCBh cyBlMTAwMCBkb2VzLiBUaGlzIHBhdGNoIGFkZHMgbG9vcGJhY2sgZm9yIHZpcnRpby1uZXQs IHdoZW4gdGhlPGJyPiZndDsgY29tbWFuZCAnVklSVElPX05FVF9DVFJMX0xPT1BCQUNLX1NF VCcgaXMgc2VudCBmcm9tIGZyb250LWVuZCBkcml2ZXIoc3VjaCBhcyA8YnI+Jmd0OyB2aXJ0 aW8tbmV0IGRyaXZlciBpbiBsaW51eC5naXQpLCB2aXJ0aW8tbmV0IGdvZXMgaW50byBsb29w YmFjayBtb2RlLCBhbmQgdGhlIHRlc3QgPGJyPiZndDsgYWJvdmUgY2FuIGJlIGV4ZWN1dGVk LCB0aGVuIGNvbW1hbmQgJ1ZJUlRJT19ORVRfQ1RSTF9MT09QQkFDS19VTlNFVCcgY2FuIG1h a2UgPGJyPiZndDsgdmlydGlvLW5ldCBnbyBiYWNrIHRvIHByZXZpb3VzIHN0YXRlLjxicj4m Z3Q7IDxicj4mZ3Q7IFNpZ25lZC1vZmYtYnk6IEhlbmdqaW54aWFvICZsdDtoanhpYW9odXN0 QGdtYWlsLmNvbSZndDs8YnI+PGJyPlVzaW5nIHR3byBjb21tYW5kcyBoZXJlIHNlZW1zIHVu anVzdGlmaWVkLCB3aGVuIHVzaW5nIG9uZSB3b3VsZCBkby48YnI+PGJyPkNhcGFiaWxpdHkg dG8gaGFuZGxlIHRoZXNlIGNvbW1hbmRzIG5lZWRzIGEgZmVhdHVyZSBiaXQuPGJyPjxicj5U aGUgcGF0Y2hlcyBoYXZlIHN0eWxlIGlzc3Vlcy48YnI+PGJyPkJ1dCBiZXNpZGVzIGFsbCB0 aGlzLCB0aGVyZSBhcmUgYmlnZ2VyIHF1ZXN0aW9uczo8YnI+PGJyPkhvdyBpcyB0aGlzIGNh cGFiaWxpdHkgdXNlZnVsPyBZb3VyIGRlc2NyaXB0aW9uIGlzIGtpbmQgb2YgdmFndWUuPGJy Pkl0IG1pZ2h0IGJlIHVzZWZ1bCBmb3IgZTEwMDAgYXMgYSBkcml2ZXIgZGV2ZWxvcG1lbnQg dG9vbC48YnI+Rm9yIHZpcnRpbyBpdCBzZWVtcyBqdXN0IGFzIGVhc3kgdG8gY29ubmVjdCB0 byBhbm90aGVyIFZNPGJyPmFsdGVybmF0aXZlbHkgeW91IGNhbiB3cml0ZSBhIHV0aWxpdHkg LSBleHRlcm5hbCB0byBxZW11IC0gdGhhdDxicj5nZXRzIGFsbCBwYWNrZXRzIGFuZCBib3Vu Y2VzIHRoZW0gYmFjayBvbiB0aGUgc2FtZSBmZC48YnI+SW4gZmFjdCwgd29uJ3Qgc29tZXRo aW5nIGxpa2UgbmV0Y2F0IGRvIHRoaXMgbW9yZSBvciBsZXNzIGZvciBmcmVlPzxicj5JdCdz IGhhcmQgdG8ganVkZ2Ugd2hldGhlciBpdCdzIHdvcnRoIHRoZSBwZXJmb3JtYW5jZSBhbmQg bWFpbnRhaW5hbmNlPGJyPmNvc3RzLCB3aXRob3V0IHRoaXMgaW5mby48YnI+PGJyPjxicj4m Z3Q7IC0tLTxicj4mZ3Q7Jm5ic3A7IGh3L25ldC92aXJ0aW8tbmV0LmMmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg fCAyNiArKysrKysrKysrKysrKysrKysrKysrKy0tLTxicj4mZ3Q7Jm5ic3A7IGluY2x1ZGUv aHcvdmlydGlvL3ZpcnRpby1uZXQuaCB8Jm5ic3A7IDkgKysrKysrKysrPGJyPiZndDsmbmJz cDsgaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLmgmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg fCZuYnNwOyAxICs8YnI+Jmd0OyZuYnNwOyBpbmNsdWRlL25ldC9uZXQuaCZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyB8Jm5ic3A7IDEgKzxicj4mZ3Q7Jm5ic3A7IG5ldC9uZXQuYyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyB8Jm5ic3A7IDcgKysrKystLTxicj4mZ3Q7Jm5ic3A7IDUgZmlsZXMg Y2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSk8YnI+Jmd0OyA8YnI+ Jmd0OyBkaWZmIC0tZ2l0IGEvaHcvbmV0L3ZpcnRpby1uZXQuYyBiL2h3L25ldC92aXJ0aW8t bmV0LmM8YnI+Jmd0OyBpbmRleCAyNjhlZmY5Li5jYTMxM2Y0IDEwMDY0NDxicj4mZ3Q7IC0t LSBhL2h3L25ldC92aXJ0aW8tbmV0LmM8YnI+Jmd0OyArKysgYi9ody9uZXQvdmlydGlvLW5l dC5jPGJyPiZndDsgQEAgLTc3OCw2ICs3NzgsMjIgQEAgc3RhdGljIGludCB2aXJ0aW9fbmV0 X2hhbmRsZV9tcShWaXJ0SU9OZXQgKm4sIHVpbnQ4X3QgY21kLDxicj4mZ3Q7Jm5ic3A7IDxi cj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBWSVJUSU9fTkVU X09LOzxicj4mZ3Q7Jm5ic3A7IH08YnI+Jmd0OyArPGJyPiZndDsgK3N0YXRpYyBpbnQgdmly dGlvX25ldF9oYW5kbGVfbG9vcGJhY2soVmlydElPTmV0ICpuLCB1aW50OF90IGNtZCw8YnI+ Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBpbnQgaW92X2NudCk8 YnI+Jmd0OyArezxicj4mZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsgVmlydElPRGV2aWNlICp2 ZGV2ID0gVklSVElPX0RFVklDRShuKTs8YnI+Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7IGlm IChjbWQgPT0gVklSVElPX05FVF9DVFJMX0xPT1BCQUNLX1NFVCkgezxicj4mZ3Q7ICsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdmRldi0mZ3Q7bG9vcGJh Y2sgPSAxOzxicj4mZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgcmV0dXJuIFZJUlRJT19ORVRfT0s7PGJyPiZndDsgKyZuYnNwOyZuYnNwOyZuYnNw OyB9IGVsc2UgaWYgKGNtZCA9PSBWSVJUSU9fTkVUX0NUUkxfTE9PUEJBQ0tfVU5TRVQpIHs8 YnI+Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHZk ZXYtJmd0O2xvb3BiYWNrID0gMDs8YnI+Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBWSVJUSU9fTkVUX09LOzxicj4mZ3Q7ICsmbmJz cDsmbmJzcDsmbmJzcDsgfSBlbHNlIHs8YnI+Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBWSVJUSU9fTkVUX0VSUjs8YnI+Jmd0OyAr Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+Jmd0OyArfTxicj4mZ3Q7ICs8YnI+Jmd0OyZuYnNw OyBzdGF0aWMgdm9pZCB2aXJ0aW9fbmV0X2hhbmRsZV9jdHJsKFZpcnRJT0RldmljZSAqdmRl diwgVmlydFF1ZXVlICp2cSk8YnI+Jmd0OyZuYnNwOyB7PGJyPiZndDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgVmlydElPTmV0ICpuID0gVklSVElPX05FVCh2ZGV2KTs8YnI+ Jmd0OyBAQCAtODEzLDYgKzgyOSw4IEBAIHN0YXRpYyB2b2lkIHZpcnRpb19uZXRfaGFuZGxl X2N0cmwoVmlydElPRGV2aWNlICp2ZGV2LCBWaXJ0UXVldWUgKnZxKTxicj4mZ3Q7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0YXR1cyA9IHZpcnRpb19uZXRfaGFuZGxlX21xKG4sIGN0 cmwuY21kLCBpb3YsIGlvdl9jbnQpOzxicj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH0gZWxzZSBpZiAoY3RybC5jbGFzcyA9 PSBWSVJUSU9fTkVUX0NUUkxfR1VFU1RfT0ZGTE9BRFMpIHs8YnI+Jmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBzdGF0dXMgPSB2aXJ0aW9fbmV0X2hhbmRsZV9vZmZsb2FkcyhuLCBj dHJsLmNtZCwgaW92LCBpb3ZfY250KTs8YnI+Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH0gZWxzZSBpZiAoY3RybC5jbGFzcyA9PSBWSVJUSU9f TkVUX0NUUkxfTE9PUEJBQ0spIHs8YnI+Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0YXR1cyA9IHZp cnRpb19uZXRfaGFuZGxlX2xvb3BiYWNrKG4sIGN0cmwuY21kLCBpb3YsIGlvdl9jbnQpOzxi cj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IH08YnI+Jmd0OyZuYnNwOyA8YnI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzID0gaW92X2Zyb21fYnVmKGVsZW0u aW5fc2csIGVsZW0uaW5fbnVtLCAwLCAmYW1wO3N0YXR1cywgc2l6ZW9mKHN0YXR1cykpOzxi cj4mZ3Q7IEBAIC0xMTA4LDYgKzExMjYsOSBAQCBzdGF0aWMgaW50MzJfdCB2aXJ0aW9fbmV0 X2ZsdXNoX3R4KFZpcnRJT05ldFF1ZXVlICpxKTxicj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IFZpcnRRdWV1ZUVsZW1lbnQgZWxlbTs8YnI+Jmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQzMl90IG51bV9wYWNrZXRzID0gMDs8YnI+Jmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQgcXVldWVfaW5kZXggPSB2cTJxKHZp cnRpb19nZXRfcXVldWVfaW5kZXgocS0mZ3Q7dHhfdnEpKTs8YnI+Jmd0OyArJm5ic3A7Jm5i c3A7IE5ldENsaWVudFN0YXRlICpzZW5kZXIgPSBxZW11X2dldF9zdWJxdWV1ZShuLSZndDtu aWMsIHF1ZXVlX2luZGV4KTs8YnI+Jmd0OyArPGJyPiZndDsgKyZuYnNwOyZuYnNwOyBzZW5k ZXItJmd0O2xvb3BiYWNrID0gdmRldi0mZ3Q7bG9vcGJhY2s7PGJyPiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCEodmRldi0mZ3Q7c3RhdHVzICZhbXA7IFZJUlRJ T19DT05GSUdfU19EUklWRVJfT0spKSB7PGJyPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIG51bV9wYWNrZXRzOzxi cj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+Jmd0OyBAQCAtMTE1 Niw5ICsxMTc3LDggQEAgc3RhdGljIGludDMyX3QgdmlydGlvX25ldF9mbHVzaF90eChWaXJ0 SU9OZXRRdWV1ZSAqcSk8YnI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyPiZndDsmbmJzcDsgPGJyPiZndDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbGVuID0g bi0mZ3Q7Z3Vlc3RfaGRyX2xlbjs8YnI+Jmd0OyAtPGJyPiZndDsgLSZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXQgPSBxZW11X3NlbmR2X3BhY2tldF9h c3luYyhxZW11X2dldF9zdWJxdWV1ZShuLSZndDtuaWMsIHF1ZXVlX2luZGV4KSw8YnI+Jmd0 OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IG91dF9zZywgb3V0X251bSwgdmlydGlvX25ldF90eF9jb21wbGV0ZSk7PGJy PiZndDsgKzxicj4mZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg cmV0ID0gcWVtdV9zZW5kdl9wYWNrZXRfYXN5bmMoc2VuZGVyLCBvdXRfc2csIG91dF9udW0s PGJyPiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyB2aXJ0aW9fbmV0X3R4X2NvbXBsZXRlKTs8YnI+Jmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAocmV0ID09 IDApIHs8YnI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB2aXJ0aW9fcXVldWVfc2V0 X25vdGlmaWNhdGlvbihxLSZndDt0eF92cSwgMCk7PGJyPiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgcS0mZ3Q7YXN5bmNfdHguZWxlbSA9IGVsZW07PGJyPiZndDsgZGlmZiAtLWdp dCBhL2luY2x1ZGUvaHcvdmlydGlvL3ZpcnRpby1uZXQuaCBiL2luY2x1ZGUvaHcvdmlydGlv L3ZpcnRpby1uZXQuaDxicj4mZ3Q7IGluZGV4IDZjZWI1YWEuLjI0ZTU2YmYgMTAwNjQ0PGJy PiZndDsgLS0tIGEvaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLW5ldC5oPGJyPiZndDsgKysr IGIvaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLW5ldC5oPGJyPiZndDsgQEAgLTI1Nyw2ICsy NTcsMTUgQEAgc3RydWN0IHZpcnRpb19uZXRfY3RybF9tcSB7PGJyPiZndDsmbmJzcDsgI2Rl ZmluZSBWSVJUSU9fTkVUX0NUUkxfR1VFU1RfT0ZGTE9BRFMmbmJzcDsmbmJzcDsgNTxicj4m Z3Q7Jm5ic3A7Jm5ic3A7ICNkZWZpbmUgVklSVElPX05FVF9DVFJMX0dVRVNUX09GRkxPQURT X1NFVCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAwPGJyPiZn dDsmbmJzcDsgPGJyPiZndDsgKyAvKjxicj4mZ3Q7ICsmbmJzcDsgKiBDb250cm9sIExvb3Bi YWNrPGJyPiZndDsgKyZuYnNwOyAqPGJyPiZndDsgKyZuYnNwOyAqIFRoZSBjb21tYW5kIFZJ UlRJT19ORVRfQ1RSTF9MT09QQkFDS19TRVQgaXMgdXNlZCB0byByZXF1aXJlIHRoZSBkZXZp Y2U8YnI+Jmd0OyArJm5ic3A7ICogY29tZSBpbnRvIGxvb3BiYWNrIHN0YXRlLjxicj4mZ3Q7 ICsmbmJzcDsgKi88YnI+Jmd0OyArI2RlZmluZSBWSVJUSU9fTkVUX0NUUkxfTE9PUEJBQ0sm bmJzcDsmbmJzcDsgNjxicj4mZ3Q7ICsgI2RlZmluZSBWSVJUSU9fTkVUX0NUUkxfTE9PUEJB Q0tfU0VUJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDA8YnI+ Jmd0OyArICNkZWZpbmUgVklSVElPX05FVF9DVFJMX0xPT1BCQUNLX1VOU0VUJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDE8YnI+Jmd0OyZuYnNwOyAjZGVm aW5lIERFRklORV9WSVJUSU9fTkVUX0ZFQVRVUkVTKF9zdGF0ZSwgX2ZpZWxkKSBcPGJyPiZn dDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgREVGSU5FX1BST1BfQklUKCJhbnlfbGF5b3V0IiwgX3N0YXRlLCBfZmllbGQsIFZJUlRJ T19GX0FOWV9MQVlPVVQsIHRydWUpLCBcPGJyPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgREVGSU5FX1BST1BfQklUKCJjc3Vt IiwgX3N0YXRlLCBfZmllbGQsIFZJUlRJT19ORVRfRl9DU1VNLCB0cnVlKSwgXDxicj4mZ3Q7 IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3ZpcnRpby92aXJ0aW8uaCBiL2luY2x1ZGUvaHcv dmlydGlvL3ZpcnRpby5oPGJyPiZndDsgaW5kZXggYTYwMTA0Yy4uMjE5ZTBkMiAxMDA2NDQ8 YnI+Jmd0OyAtLS0gYS9pbmNsdWRlL2h3L3ZpcnRpby92aXJ0aW8uaDxicj4mZ3Q7ICsrKyBi L2luY2x1ZGUvaHcvdmlydGlvL3ZpcnRpby5oPGJyPiZndDsgQEAgLTEyOCw2ICsxMjgsNyBA QCBzdHJ1Y3QgVmlydElPRGV2aWNlPGJyPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgVk1DaGFuZ2VTdGF0ZUVudHJ5ICp2bXN0YXRlOzxicj4mZ3Q7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYXIgKmJ1c19uYW1lOzxicj4mZ3Q7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVpbnQ4X3QgZGV2aWNlX2VuZGlhbjs8YnI+Jmd0OyArJm5i c3A7Jm5ic3A7IHVpbnQ4X3QgbG9vcGJhY2s7PGJyPiZndDsmbmJzcDsgfTs8YnI+Jmd0OyZu YnNwOyA8YnI+Jmd0OyZuYnNwOyB0eXBlZGVmIHN0cnVjdCBWaXJ0aW9EZXZpY2VDbGFzcyB7 PGJyPiZndDsgZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldC5oIGIvaW5jbHVkZS9uZXQv bmV0Lmg8YnI+Jmd0OyBpbmRleCBlZDU5NGY5Li5jZTY2Yjg2IDEwMDY0NDxicj4mZ3Q7IC0t LSBhL2luY2x1ZGUvbmV0L25ldC5oPGJyPiZndDsgKysrIGIvaW5jbHVkZS9uZXQvbmV0Lmg8 YnI+Jmd0OyBAQCAtODksNiArODksNyBAQCBzdHJ1Y3QgTmV0Q2xpZW50U3RhdGUgezxicj4m Z3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IE5ldENsaWVudERlc3RydWN0b3Ig KmRlc3RydWN0b3I7PGJyPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdW5z aWduZWQgaW50IHF1ZXVlX2luZGV4Ozxicj4mZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IHVuc2lnbmVkIHJ4ZmlsdGVyX25vdGlmeV9lbmFibGVkOjE7PGJyPiZndDsgKyZu YnNwOyZuYnNwOyBpbnQgbG9vcGJhY2s7PGJyPiZndDsmbmJzcDsgfTs8YnI+Jmd0OyZuYnNw OyA8YnI+Jmd0OyZuYnNwOyB0eXBlZGVmIHN0cnVjdCBOSUNTdGF0ZSB7PGJyPiZndDsgZGlm ZiAtLWdpdCBhL25ldC9uZXQuYyBiL25ldC9uZXQuYzxicj4mZ3Q7IGluZGV4IDZkOTMwZWEu LmY0YzFlZjQgMTAwNjQ0PGJyPiZndDsgLS0tIGEvbmV0L25ldC5jPGJyPiZndDsgKysrIGIv bmV0L25ldC5jPGJyPiZndDsgQEAgLTYxMSw4ICs2MTEsMTEgQEAgc3NpemVfdCBxZW11X3Nl bmR2X3BhY2tldF9hc3luYyhOZXRDbGllbnRTdGF0ZSAqc2VuZGVyLDxicj4mZ3Q7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChzZW5kZXItJmd0O2xpbmtfZG93biB8fCAh c2VuZGVyLSZndDtwZWVyKSB7PGJyPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIGlvdl9zaXplKGlvdiwgaW92Y250 KTs8YnI+Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyPiZndDsgLTxi cj4mZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsgcXVldWUgPSBzZW5kZXItJmd0O3BlZXItJmd0 O2luY29taW5nX3F1ZXVlOzxicj4mZ3Q7ICsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHNlbmRl ci0mZ3Q7bG9vcGJhY2spIHs8YnI+Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IHF1ZXVlID0gc2VuZGVyLSZndDtpbmNvbWluZ19xdWV1ZTs8YnI+ Jmd0OyArJm5ic3A7Jm5ic3A7Jm5ic3A7IH0gZWxzZSB7PGJyPiZndDsgKyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBxdWV1ZSA9IHNlbmRlci0mZ3Q7cGVl ci0mZ3Q7aW5jb21pbmdfcXVldWU7PGJyPiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJy PiZndDsmbmJzcDsgPGJyPiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0 dXJuIHFlbXVfbmV0X3F1ZXVlX3NlbmRfaW92KHF1ZXVlLCBzZW5kZXIsPGJyPiZndDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgUUVN VV9ORVRfUEFDS0VUX0ZMQUdfTk9ORSw8YnI+Jmd0OyAtLSA8YnI+Jmd0OyAxLjguMy4yPGJy PjwvZGl2Pg== ------=_NextPart_53FBED57_09296EC0_65D464DE--