From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Clark Subject: Re: [PATCH v3 04/15] argo: init, destroy and soft-reset, with enable command line opt Date: Tue, 8 Jan 2019 14:23:39 -0800 Message-ID: References: <1546846968-7372-1-git-send-email-christopher.w.clark@gmail.com> <1546846968-7372-5-git-send-email-christopher.w.clark@gmail.com> <6b8708eb-b7d9-ae7f-f003-d68bbac9d751@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ggzmv-0007CQ-7y for xen-devel@lists.xenproject.org; Tue, 08 Jan 2019 22:23:57 +0000 Received: by mail-lj1-x244.google.com with SMTP id k19-v6so4765429lji.11 for ; Tue, 08 Jan 2019 14:23:53 -0800 (PST) In-Reply-To: <6b8708eb-b7d9-ae7f-f003-d68bbac9d751@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Ross Philipson Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Jason Andryuk , Ian Jackson , Rich Persaud , Tim Deegan , Daniel Smith , Julien Grall , Paul Durrant , Jan Beulich , xen-devel , James McKenzie , Eric Chanudet , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBKYW4gOCwgMjAxOSBhdCAyOjA5IFBNIFJvc3MgUGhpbGlwc29uIDxyb3NzLnBoaWxp cHNvbkBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gT24gMDEvMDcvMjAxOSAwMjo0MiBBTSwgQ2hyaXN0 b3BoZXIgQ2xhcmsgd3JvdGU6Cj4gPiBJbml0aWFsaXNlcyBiYXNpYyBkYXRhIHN0cnVjdHVyZXMg YW5kIHBlcmZvcm1zIHRlYXJkb3duIG9mIGFyZ28gc3RhdGUKPiA+IGZvciBkb21haW4gc2h1dGRv d24uCj4gPgo+ID4gSW5jbHVzaW9uIG9mIHRoZSBBcmdvIGltcGxlbWVudGF0aW9uIGlzIGRlcGVu ZGVudCBvbiBDT05GSUdfQVJHTy4KPiA+Cj4gPiBJbnRyb2R1Y2VzIGEgbmV3IFhlbiBjb21tYW5k IGxpbmUgcGFyYW1ldGVyICdhcmdvJzogYm9vbCB0byBlbmFibGUvZGlzYWJsZQo+ID4gdGhlIGFy Z28gaHlwZXJjYWxsLiBEZWZhdWx0cyB0byBkaXNhYmxlZC4KPiA+Cj4gPiBOZXcgaGVhZGVyczoK PiA+ICAgcHVibGljL2FyZ28uaDogd2l0aCBkZWZpbmlvbnMgb2YgYWRkcmVzc2VzIGFuZCByaW5n IHN0cnVjdHVyZSwgaW5jbHVkaW5nCj4gPiAgIGluZGV4ZXMgZm9yIGF0b21pYyB1cGRhdGUgZm9y IGNvbW11bmljYXRpb24gYmV0d2VlbiBkb21haW4gYW5kIGh5cGVydmlzb3IuCj4gPgo+ID4gICB4 ZW4vYXJnby5oOiB0byBleHBvc2UgdGhlIGhvb2tzIGZvciBpbnRlZ3JhdGlvbiBpbnRvIGRvbWFp biBsaWZlY3ljbGU6Cj4gPiAgICAgYXJnb19pbml0OiBwZXItZG9tYWluIGluaXQgb2YgYXJnbyBk YXRhIHN0cnVjdHVyZXMgZm9yIGRvbWFpbl9jcmVhdGUuCj4gPiAgICAgYXJnb19kZXN0cm95OiB0 ZWFyZG93biBmb3IgZG9tYWluX2Rlc3Ryb3kgYW5kIHRoZSBlcnJvciBleGl0Cj4gPiAgICAgICAg ICAgICAgICAgICBwYXRoIG9mIGRvbWFpbl9jcmVhdGUuCj4gPiAgICAgYXJnb19zb2Z0X3Jlc2V0 OiByZXNldCBvZiBkb21haW4gc3RhdGUgZm9yIGRvbWFpbl9zb2Z0X3Jlc2V0Lgo+ID4KPiA+IEFk ZHMgdHdvIG5ldyBmaWVsZHMgdG8gc3RydWN0IGRvbWFpbjoKPiA+ICAgICByd2xvY2tfdCBhcmdv X2xvY2s7Cj4gPiAgICAgc3RydWN0IGFyZ29fZG9tYWluICphcmdvOwo+ID4KPiA+IEluIGFjY29y ZGFuY2Ugd2l0aCByZWNlbnQgd29yayBvbiBfZG9tYWluX2Rlc3Ryb3ksIGFyZ29fZGVzdHJveSBp cwo+ID4gaWRlbXBvdGVudC4gSXQgd2lsbCB0ZWFyIGRvd246IGFsbCByaW5ncyByZWdpc3RlcmVk IGJ5IHRoaXMgZG9tYWluLCBhbGwKPiA+IHJpbmdzIHdoZXJlIHRoaXMgZG9tYWluIGlzIHRoZSBz aW5nbGUgc2VuZGVyIChpZS4gc3BlY2lmaWVkIHBhcnRuZXIsCj4gPiBub24td2lsZGNhcmQgcmlu Z3MpLCBhbmQgYWxsIHBlbmRpbmcgbm90aWZpY2F0aW9ucyB3aGVyZSB0aGlzIGRvbWFpbiBpcwo+ ID4gYXdhaXRpbmcgc2lnbmFsIGFib3V0IGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgcmluZ3Mgb2Yg b3RoZXIgZG9tYWlucy4KPiA+Cj4gPiBBIGNvdW50IHdpbGwgYmUgbWFpbnRhaW5lZCBvZiB0aGUg bnVtYmVyIG9mIHJpbmdzIHRoYXQgYSBkb21haW4gaGFzCj4gPiByZWdpc3RlcmVkIGluIG9yZGVy IHRvIGxpbWl0IGl0IGJlbG93IHRoZSBmaXhlZCBtYXhpbXVtIGxpbWl0IGRlZmluZWQgaGVyZS4K PiA+Cj4gPiBUaGUgc29mdHdhcmUgbGljZW5zZSBvbiB0aGUgcHVibGljIGhlYWRlciBpcyB0aGUg QlNEIGxpY2Vuc2UsIHN0YW5kYXJkCj4gPiBwcm9jZWR1cmUgZm9yIHRoZSBwdWJsaWMgWGVuIGhl YWRlcnMuIFRoZSBwdWJsaWMgaGVhZGVyIHdhcyBvcmlnaW5hbGx5Cj4gPiBwb3N0ZWQgdW5kZXIg YSBHUEwgbGljZW5zZSBhdDogWzFdOgo+ID4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9h cmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDEzLTA1L21zZzAyNzEwLmh0bWwKPiA+Cj4gPiBUaGUg Zm9sbG93aW5nIEFDSyBieSBMYXJzIEt1cnRoIGlzIHRvIGNvbmZpcm0gdGhhdCBvbmx5IHBlb3Bs ZSBiZWluZwo+ID4gZW1wbG95ZWVzIG9mIENpdHJpeCBjb250cmlidXRlZCB0byB0aGUgaGVhZGVy IGZpbGVzIGluIHRoZSBzZXJpZXMgcG9zdGVkIGF0Cj4gPiBbMV0gYW5kIHRoYXQgdGh1cyB0aGUg Y29weXJpZ2h0IG9mIHRoZSBmaWxlcyBpbiBxdWVzdGlvbiBpcyBmdWxseSBvd25lZCBieQo+ID4g Q2l0cml4LiBUaGUgQUNLIGFsc28gY29uZmlybXMgdGhhdCBDaXRyaXggaXMgaGFwcHkgZm9yIHRo ZSBoZWFkZXIgZmlsZXMgdG8KPiA+IGJlIHB1Ymxpc2hlZCB1bmRlciBhIEJTRCBsaWNlbnNlIGlu IHRoaXMgc2VyaWVzICh3aGljaCBpcyBiYXNlZCBvbiBbMV0pLgo+ID4KPiA+IFNpZ25lZC1vZmYt Ynk6IENocmlzdG9waGVyIENsYXJrIDxjaHJpc3RvcGhlci5jbGFyazZAYmFlc3lzdGVtcy5jb20+ Cj4gPiBBY2tlZC1ieTogTGFycyBLdXJ0aCA8bGFycy5rdXJ0aEBjaXRyaXguY29tPgo+Cj4gT3Ro ZXIgdGhhbiBhbiBpbmRlbnRhdGlvbiBpc3N1ZSBpbiBkb21haW5fcmluZ3NfcmVtb3ZlX2FsbCwg dGhpcyBMR1RNLgo+Cj4gUmV2aWV3ZWQtYnk6IFJvc3MgUGhpbGlwc29uIDxyb3NzLnBoaWxpcHNv bkBvcmFjbGUuY29tPgoKVGhhbmtzIGZvciB0aGUgcmV2aWV3LCBSb3NzLgoKSSBkb24ndCB0aGlu ayB0aGVyZSBpcyBhbiBpbmRlbnRhdGlvbiBpc3N1ZSB0aGVyZSAtLSBpdCdzIGp1c3QgdGhlCmhs aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUgbWFjcm8sIHdoaWNoIGlzIG9wZXJhdGluZyBvbgpyaW5n X3JlbW92ZV9pbmZvLCBzbyBpdCBzaG91bGQgYmUgb2suCgp0aGFua3MsCgpDaHJpc3RvcGhlcgoK Cj4KPiA+IC0tLQo+ID4gdjIgcmV3cml0ZSBsb2NraW5nIGV4cGxhbmF0aW9uIGNvbW1lbnQKPiA+ IHYyIGhlYWRlciBjb3B5cmlnaHQgbGluZSBub3cgaW5jbHVkZXMgMjAxOQo+ID4gdjIgc2VsZjog dXNlIHJpbmdfaW5mbyBiYWNrcG9pbnRlciBpbiBwZW5kaW5nX2VudCB0byBtYWludGFpbiBucGVu ZGluZwo+ID4gdjIgc2VsZjogcmVuYW1lIGFsbF9yaW5nc19yZW1vdmVfaW5mbyB0byBkb21haW5f cmluZ3NfcmVtb3ZlX2FsbAo+ID4gdjIgZmVlZGJhY2sgSmFuOiBkcm9wIGNvb2tpZSwgaW1wbGVt ZW50IHRlYXJkb3duCj4gPiB2MiBzZWxmOiBhZGQgbnBlbmRpbmcgdG8gdHJhY2sgbnVtYmVyIG9m IHBlbmRpbmcgZW50cmllcyBwZXIgcmluZwo+ID4gdjIgc2VsZjogYW1lbmQgY29tbWVudCBvbiBs b2NraW5nOyBkcm9wIHNlY3Rpb24gY29tbWVudHMKPiA+IHYyIGNvb2tpZV9lcTogdGVzdCBsb3cg Yml0cyBmaXJzdCBhbmQgdXNlIGxpa2VseSBvbiBoaWdoIGJpdHMKPiA+IHYyIHNlbGY6IE9WRVJI QVVMCj4gPiB2MiBzZWxmOiBzL2FyZ29fcGVuZGluZ19lbnQvcGVuZGluZ19lbnQvZwo+ID4gdjIg c2VsZjogZHJvcCBwZW5kaW5nX3JlbW92ZV9lbnQsIGlubGluZSBhdCBzaW5nbGUgY2FsbCBzaXRl Cj4gPiB2MSBmZWVkYmFjayBSb2dlciwgSmFuOiBkcm9wIGFyZ28gcHJlZml4IG9uIHN0YXRpYyBm dW5jdGlvbnMKPiA+IHYyICM0IExhcnM6IGFkZCBBY2tlZC1ieSBhbmQgZGV0YWlscyB0byBjb21t aXQgbWVzc2FnZS4KPiA+IHYyIGZlZWRiYWNrICM5IEphbjogZG9jdW1lbnQgYXJnbyBib290IG9w dCBpbiB4ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCj4gPiB2MiBidWdmaXg6IHhzbSB1c2UgaW4g c29mdC1yZXNldCBwcmlvciB0byBpbnRyb2R1Y3Rpb24KPiA+IHYyIGZlZWRiYWNrICM5IEphbjog ZHJvcCAnbWVzc2FnZScgZnJvbSBkb19hcmdvX21lc3NhZ2Vfb3AKPiA+IHYxICM1IGZlZWRiYWNr IFBhdWw6IGluaXQvZGVzdHJveSB1bnNpZ25lZCwgYnJhY2tldHMgYW5kIHdoaXRlc3BhY2UgZml4 ZXMKPiA+IHYxICM1IGZlZWRiYWNrIFBhdWw6IFVzZSBtZm5fZXEgZm9yIGNvbXBhcmluZyBtZm5z Lgo+ID4gdjEgIzUgZmVlZGJhY2sgUGF1bDogaW5pdC9kZXN0cm95IDogdXNlIGN1cnJkCj4gPiB2 MSAjNiAoIzUpIGZlZWRiYWNrIEphbjogaW5pdC9kZXN0cm95OiBzL0VOT1NZUy9FT1BOT1RTVVBQ Lwo+ID4gdjEgIzYgZmVlZGJhY2sgUGF1bDogRm9sZGVkIHBhdGNoIDYgaW50byBwYXRjaCA1Lgo+ ID4gdjEgIzYgZmVlZGJhY2sgSmFuOiBkcm9wIG9wdF9hcmdvX2VuYWJsZWQgaW5pdGlhbGl6ZXIK PiA+IHYxICQ2IGZlZWRiYWNrIEphbjogcy9FTk9TWVMvRU9QTk9UU1VQUC9nIGFuZCBkcm9wIHVz ZWxlc3MgZHByaW50awo+ID4gdjEuICM1IGZlZWRiYWNrIFBhdWw6IGNoYW5nZSB0aGUgbGljZW5z ZSBvbiBwdWJsaWMgaGVhZGVyIHRvIEJTRAo+ID4gLSBhY2sgZnJvbSBMYXJzIGF0IENpdHJpeC4K PiA+IHYxLiBzZWxmLCBKYW46IGRyb3AgdW5uZWNlc3NhcnkgeGVuIGluY2x1ZGUgZnJvbSBzY2hl ZC5oCj4gPiB2MS4gc2VsZiwgSmFuOiBkcm9wIGluY2x1c2lvbiBvZiBwdWJsaWMgYXJnby5oIGlu IHByaXZhdGUgb25lCj4gPiB2MS4gc2VsZiwgSmFuOiBhZGQgaW5jbHVkZSBvZiBwdWJsaWMgYXJn by5oIHRvIGFyZ28uYwo+ID4gdjEuIHNlbGYsIEphbjogZHJvcCBmd2QgZGVjbCBvZiBhcmdvX2Rv bWFpbiBpbiBwcml2IGhlYWRlcgo+ID4gdjEuIFBhdWwvc2VsZi9KYW46IGFkZCBkYXRhIHN0cnVj dHVyZXMgdG8geGxhdC5sc3QgYW5kIGNvbXBhdC9hcmdvLmggdG8gTWFrZWZpbGUKPiA+IHYxLiBz ZWxmOiByZW1vdmVkIGFsbG9jYXRpb24gb2YgZXZlbnQgY2hhbm5lbCBzaW5jZSBzd2l0Y2hpbmcg dG8gVklSUQo+ID4gdjEuIHNlbGY6IGRyb3AgdHlwZXMuaCBpbmNsdWRlIGZyb20gcHJpdmF0ZSBh cmdvLmgKPiA+IHYxOiByZW9yZGVyIHB1YmxpYyBhcmdvIGluY2x1ZGUgcG9zaXRpb24KPiA+IHYx OiAjMTMgZmVlZGJhY2sgSmFuOiBwdWJsaWMgbmFtZXNwYWNlOiBwcmVmaXggd2l0aCB4ZW4KPiA+ IHYxOiBzZWxmOiByZW5hbWUgcGVuZGluZyBlbnQgImlkIiB0byAiZG9tYWluX2lkIgo+ID4gdjE6 IHNlbGY6IGFkZCBkb21haW5fY29va2llIHRvIGVudCBzdHJ1Y3QKPiA+IHYxLiAjMTUgZmVlZGJh Y2sgSmFuOiBtYWtlIGNtZCB1bnNpZ25lZAo+ID4gdjEuICMxNSBmZWVkYmFjayBKYW46IG1ha2Ug aSBsb29wIHZhcmlhYmxlIHVuc2lnbmVkCj4gPiB2MTogc2VsZjogYWRqdXN0IGRwcmludGtzIGlu IGluaXQsIGRlc3Ryb3kKPiA+IHYxOiAjMTggZmVlZGJhY2sgSmFuOiBtZWxkIG1heCByaW5nIGNv dW50IGxpbWl0Cj4gPiB2MTogc2VsZjogdXNlIHR5cGUgbm90IHN0cnVjdCBpbiBwdWJsaWMgZGVm biwgYWZmZWN0cyBjb21wYXQgZ2VuIGhlYWRlcgo+ID4gdjE6IGZlZWRiYWNrICMxNSBKYW46IGhh bmRsZSB1cHBlci1oYWx2ZXMgb2YgaHlwZXJjYWxsIGFyZ3MKPiA+IHYxOiBhZGQgY29tbWVudCBl eHBsYWluaW5nIHRoZSAnbWFnaWMnIGZpZWxkCj4gPiB2MTogc2VsZiArIEphbiBmZWVkYmFjazog aW1wbGVtZW50IHNvZnQgcmVzZXQKPiA+IHYxOiBmZWVkYmFjayAjMTMgUm9nZXI6IHVzZSBBU1NF UlRfVU5SRUFDSEFCTEUKPiA+Cj4gPiAgZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFuZG9j IHwgIDExICsKPiA+ICB4ZW4vY29tbW9uL2FyZ28uYyAgICAgICAgICAgICAgICAgfCA0NjEgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ICB4ZW4vY29tbW9uL2RvbWFp bi5jICAgICAgICAgICAgICAgfCAgMjAgKysKPiA+ICB4ZW4vaW5jbHVkZS9NYWtlZmlsZSAgICAg ICAgICAgICAgfCAgIDEgKwo+ID4gIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmdvLmggICAgICAgICB8 ICA1OSArKysrKwo+ID4gIHhlbi9pbmNsdWRlL3hlbi9hcmdvLmggICAgICAgICAgICB8ICAyMyAr Kwo+ID4gIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgICAgICB8ICAgNiArCj4gPiAgeGVu L2luY2x1ZGUveGxhdC5sc3QgICAgICAgICAgICAgIHwgICAyICsKPiA+ICA4IGZpbGVzIGNoYW5n ZWQsIDU4MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IHhlbi9pbmNsdWRlL3B1YmxpYy9hcmdvLmgKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2luY2x1ZGUveGVuL2FyZ28uaAo+ID4KPiA+IGRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5wYW5kb2MgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MKPiA+ IGluZGV4IGE3NTVhNjcuLmFlYTEzZWIgMTAwNjQ0Cj4gPiAtLS0gYS9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5wYW5kb2MKPiA+ICsrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBh bmRvYwo+ID4gQEAgLTE4Miw2ICsxODIsMTcgQEAgUGVybWl0IFhlbiB0byB1c2UgIkFsd2F5cyBS dW5uaW5nIEFQSUMgVGltZXIiIHN1cHBvcnQgb24gY29tcGF0aWJsZSBoYXJkd2FyZQo+ID4gIGlu IGNvbWJpbmF0aW9uIHdpdGggY3B1aWRsZS4gIFRoaXMgb3B0aW9uIGlzIG9ubHkgZXhwZWN0ZWQg dG8gYmUgdXNlZnVsIGZvcgo+ID4gIGRldmVsb3BlcnMgd2lzaGluZyBYZW4gdG8gZmFsbCBiYWNr IHRvIG9sZGVyIHRpbWluZyBtZXRob2RzIG9uIG5ld2VyIGhhcmR3YXJlLgo+ID4KPiA+ICsjIyMg YXJnbwo+ID4gKz4gYD0gPGJvb2xlYW4+YAo+ID4gKwo+ID4gKz4gRGVmYXVsdDogYGZhbHNlYAo+ ID4gKwo+ID4gK0VuYWJsZSB0aGUgQXJnbyBoeXBlcnZpc29yLW1lZGlhdGVkIGludGVyZG9tYWlu IGNvbW11bmljYXRpb24gbWVjaGFuaXNtLgo+ID4gKwo+ID4gK1RoaXMgYWxsb3dzIGRvbWFpbnMg YWNjZXNzIHRvIHRoZSBBcmdvIGh5cGVyY2FsbCwgd2hpY2ggc3VwcG9ydHMgcmVnaXN0cmF0aW9u Cj4gPiArb2YgbWVtb3J5IHJpbmdzIHdpdGggdGhlIGh5cGVydmlzb3IgdG8gcmVjZWl2ZSBtZXNz YWdlcywgc2VuZGluZyBtZXNzYWdlcyB0bwo+ID4gK290aGVyIGRvbWFpbnMgYnkgaHlwZXJjYWxs IGFuZCBxdWVyeWluZyB0aGUgcmluZyBzdGF0dXMgb2Ygb3RoZXIgZG9tYWlucy4KPiA+ICsKPiA+ ICAjIyMgYXNpZCAoeDg2KQo+ID4gID4gYD0gPGJvb2xlYW4+YAo+ID4KPiA+IGRpZmYgLS1naXQg YS94ZW4vY29tbW9uL2FyZ28uYyBiL3hlbi9jb21tb24vYXJnby5jCj4gPiBpbmRleCA2Zjc4MmY3 Li44NjE5NWQzIDEwMDY0NAo+ID4gLS0tIGEveGVuL2NvbW1vbi9hcmdvLmMKPiA+ICsrKyBiL3hl bi9jb21tb24vYXJnby5jCj4gPiBAQCAtMTcsNyArMTcsMTc3IEBACj4gPiAgICovCj4gPgo+ID4g ICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KPiA+ICsjaW5jbHVkZSA8eGVuL3NjaGVkLmg+Cj4gPiAr I2luY2x1ZGUgPHhlbi9kb21haW4uaD4KPiA+ICsjaW5jbHVkZSA8eGVuL2FyZ28uaD4KPiA+ICsj aW5jbHVkZSA8eGVuL2V2ZW50Lmg+Cj4gPiArI2luY2x1ZGUgPHhlbi9kb21haW5fcGFnZS5oPgo+ ID4gICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+Cj4gPiArI2luY2x1ZGUgPHhlbi90aW1l Lmg+Cj4gPiArI2luY2x1ZGUgPHB1YmxpYy9hcmdvLmg+Cj4gPiArCj4gPiArREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX2FyZ29fYWRkcl90KTsKPiA+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRM RSh4ZW5fYXJnb19yaW5nX3QpOwo+ID4gKwo+ID4gKy8qIFhlbiBjb21tYW5kIGxpbmUgb3B0aW9u IHRvIGVuYWJsZSBhcmdvICovCj4gPiArc3RhdGljIGJvb2wgX19yZWFkX21vc3RseSBvcHRfYXJn b19lbmFibGVkOwo+ID4gK2Jvb2xlYW5fcGFyYW0oImFyZ28iLCBvcHRfYXJnb19lbmFibGVkKTsK PiA+ICsKPiA+ICt0eXBlZGVmIHN0cnVjdCBhcmdvX3JpbmdfaWQKPiA+ICt7Cj4gPiArICAgIHVp bnQzMl90IHBvcnQ7Cj4gPiArICAgIGRvbWlkX3QgcGFydG5lcl9pZDsKPiA+ICsgICAgZG9taWRf dCBkb21haW5faWQ7Cj4gPiArfSBhcmdvX3JpbmdfaWQ7Cj4gPiArCj4gPiArLyogRGF0YSBhYm91 dCBhIGRvbWFpbidzIG93biByaW5nIHRoYXQgaXQgaGFzIHJlZ2lzdGVyZWQgKi8KPiA+ICtzdHJ1 Y3QgYXJnb19yaW5nX2luZm8KPiA+ICt7Cj4gPiArICAgIC8qIG5leHQgbm9kZSBpbiB0aGUgaGFz aCwgcHJvdGVjdGVkIGJ5IEwyICovCj4gPiArICAgIHN0cnVjdCBobGlzdF9ub2RlIG5vZGU7Cj4g PiArICAgIC8qIHRoaXMgcmluZydzIGlkLCBwcm90ZWN0ZWQgYnkgTDIgKi8KPiA+ICsgICAgc3Ry dWN0IGFyZ29fcmluZ19pZCBpZDsKPiA+ICsgICAgLyogTDMgKi8KPiA+ICsgICAgc3BpbmxvY2tf dCBsb2NrOwo+ID4gKyAgICAvKiBsZW5ndGggb2YgdGhlIHJpbmcsIHByb3RlY3RlZCBieSBMMyAq Lwo+ID4gKyAgICB1aW50MzJfdCBsZW47Cj4gPiArICAgIC8qIG51bWJlciBvZiBwYWdlcyBpbiB0 aGUgcmluZywgcHJvdGVjdGVkIGJ5IEwzICovCj4gPiArICAgIHVpbnQzMl90IG5wYWdlOwo+ID4g KyAgICAvKiBudW1iZXIgb2YgcGFnZXMgdHJhbnNsYXRlZCBpbnRvIG1mbnMsIHByb3RlY3RlZCBi eSBMMyAqLwo+ID4gKyAgICB1aW50MzJfdCBubWZuczsKPiA+ICsgICAgLyogY2FjaGVkIHR4IHBv aW50ZXIgbG9jYXRpb24sIHByb3RlY3RlZCBieSBMMyAqLwo+ID4gKyAgICB1aW50MzJfdCB0eF9w dHI7Cj4gPiArICAgIC8qIG1hcHBlZCByaW5nIHBhZ2VzIHByb3RlY3RlZCBieSBMMyAqLwo+ID4g KyAgICB1aW50OF90ICoqbWZuX21hcHBpbmc7Cj4gPiArICAgIC8qIGxpc3Qgb2YgbWZucyBvZiBn dWVzdCByaW5nLCBwcm90ZWN0ZWQgYnkgTDMgKi8KPiA+ICsgICAgbWZuX3QgKm1mbnM7Cj4gPiAr ICAgIC8qIGxpc3Qgb2Ygc3RydWN0IHBlbmRpbmdfZW50IGZvciB0aGlzIHJpbmcsIHByb3RlY3Rl ZCBieSBMMyAqLwo+ID4gKyAgICBzdHJ1Y3QgaGxpc3RfaGVhZCBwZW5kaW5nOwo+ID4gKyAgICAv KiBudW1iZXIgb2YgcGVuZGluZyBlbnRyaWVzIHF1ZXVlZCBmb3IgdGhpcyByaW5nLCBwcm90ZWN0 ZWQgYnkgTDMgKi8KPiA+ICsgICAgdWludDMyX3QgbnBlbmRpbmc7Cj4gPiArfTsKPiA+ICsKPiA+ ICsvKiBEYXRhIGFib3V0IGEgc2luZ2xlLXNlbmRlciByaW5nLCBoZWxkIGJ5IHRoZSBzZW5kZXIg KHBhcnRuZXIpIGRvbWFpbiAqLwo+ID4gK3N0cnVjdCBhcmdvX3NlbmRfaW5mbwo+ID4gK3sKPiA+ ICsgICAgLyogbmV4dCBub2RlIGluIHRoZSBoYXNoLCBwcm90ZWN0ZWQgYnkgTHNlbmQgKi8KPiA+ ICsgICAgc3RydWN0IGhsaXN0X25vZGUgbm9kZTsKPiA+ICsgICAgLyogdGhpcyByaW5nJ3MgaWQs IHByb3RlY3RlZCBieSBMc2VuZCAqLwo+ID4gKyAgICBzdHJ1Y3QgYXJnb19yaW5nX2lkIGlkOwo+ ID4gK307Cj4gPiArCj4gPiArLyogQSBzcGFjZS1hdmFpbGFibGUgbm90aWZpY2F0aW9uIHRoYXQg aXMgYXdhaXRpbmcgc3VmZmljaWVudCBzcGFjZSAqLwo+ID4gK3N0cnVjdCBwZW5kaW5nX2VudAo+ ID4gK3sKPiA+ICsgICAgLyogTGlzdCBub2RlIHdpdGhpbiBhcmdvX3JpbmdfaW5mbydzIHBlbmRp bmcgbGlzdCAqLwo+ID4gKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSBub2RlOwo+ID4gKyAgICAvKgo+ ID4gKyAgICAgKiBMaXN0IG5vZGUgd2l0aGluIGFyZ29fZG9tYWluJ3Mgd2lsZGNhcmRfcGVuZF9s aXN0LiBPbmx5IHVzZWQgaWYgdGhlCj4gPiArICAgICAqIHJpbmcgaXMgb25lIHdpdGggYSB3aWxk Y2FyZCBwYXJ0bmVyIChpZS4gdGhhdCBhbnkgZG9tYWluIG1heSBzZW5kIHRvKQo+ID4gKyAgICAg KiB0byBlbmFibGUgY2FuY2VsbGluZyBzaWduYWxzIG9uIHdpbGRjYXJkIHJpbmdzIG9uIGRvbWFp biBkZXN0cm95Lgo+ID4gKyAgICAgKi8KPiA+ICsgICAgc3RydWN0IGhsaXN0X25vZGUgd2lsZGNh cmRfbm9kZTsKPiA+ICsgICAgLyoKPiA+ICsgICAgICogUG9pbnRlciB0byB0aGUgcmluZ19pbmZv IHRoYXQgdGhpcyBlbnQgcGVydGFpbnMgdG8uIFVzZWQgdG8gZW5zdXJlIHRoYXQKPiA+ICsgICAg ICogcmluZ19pbmZvLT5ucGVuZGluZyBpcyBkZWNyZW1lbnRlZCB3aGVuIGVudHMgZm9yIHdpbGRj YXJkIHJpbmdzIGFyZQo+ID4gKyAgICAgKiBjYW5jZWxsZWQgZm9yIGRvbWFpbiBkZXN0cm95Lgo+ ID4gKyAgICAgKiBDYXV0aW9uOiBNdXN0IGhvbGQgdGhlIGNvcnJlY3QgbG9ja3MgYmVmb3JlIGFj Y2Vzc2luZyByaW5nX2luZm8gdmlhIHRoaXMuCj4gPiArICAgICAqLwo+ID4gKyAgICBzdHJ1Y3Qg YXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbzsKPiA+ICsgICAgLyogZG9tYWluIHRvIGJlIG5vdGlm aWVkIHdoZW4gc3BhY2UgaXMgYXZhaWxhYmxlICovCj4gPiArICAgIGRvbWlkX3QgZG9tYWluX2lk Owo+ID4gKyAgICB1aW50MTZfdCBwYWQ7Cj4gPiArICAgIC8qIG1pbmltdW0gcmluZyBzcGFjZSBh dmFpbGFibGUgdGhhdCB0aGlzIHNpZ25hbCBpcyB3YWl0aW5nIHVwb24gKi8KPiA+ICsgICAgdWlu dDMyX3QgbGVuOwo+ID4gK307Cj4gPiArCj4gPiArLyoKPiA+ICsgKiBUaGUgdmFsdWUgb2YgdGhl IGFyZ28gZWxlbWVudCBpbiBhIHN0cnVjdCBkb21haW4gaXMKPiA+ICsgKiBwcm90ZWN0ZWQgYnkg dGhlIGdsb2JhbCBsb2NrIGFyZ29fbG9jazogTDEKPiA+ICsgKi8KPiA+ICsjZGVmaW5lIEFSR09f SFRBQkxFX1NJWkUgMzIKPiA+ICtzdHJ1Y3QgYXJnb19kb21haW4KPiA+ICt7Cj4gPiArICAgIC8q IEwyICovCj4gPiArICAgIHJ3bG9ja190IGxvY2s7Cj4gPiArICAgIC8qCj4gPiArICAgICAqIEhh c2ggdGFibGUgb2YgYXJnb19yaW5nX2luZm8gYWJvdXQgcmluZ3MgdGhpcyBkb21haW4gaGFzIHJl Z2lzdGVyZWQuCj4gPiArICAgICAqIFByb3RlY3RlZCBieSBMMi4KPiA+ICsgICAgICovCj4gPiAr ICAgIHN0cnVjdCBobGlzdF9oZWFkIHJpbmdfaGFzaFtBUkdPX0hUQUJMRV9TSVpFXTsKPiA+ICsg ICAgLyogQ291bnRlciBvZiByaW5ncyByZWdpc3RlcmVkIGJ5IHRoaXMgZG9tYWluLiBQcm90ZWN0 ZWQgYnkgTDIuICovCj4gPiArICAgIHVpbnQzMl90IHJpbmdfY291bnQ7Cj4gPiArCj4gPiArICAg IC8qIExzZW5kICovCj4gPiArICAgIHNwaW5sb2NrX3Qgc2VuZF9sb2NrOwo+ID4gKyAgICAvKgo+ ID4gKyAgICAgKiBIYXNoIHRhYmxlIG9mIGFyZ29fc2VuZF9pbmZvIGFib3V0IHJpbmdzIG90aGVy IGRvbWFpbnMgaGF2ZSByZWdpc3RlcmVkCj4gPiArICAgICAqIGZvciB0aGlzIGRvbWFpbiB0byBz ZW5kIHRvLiBTaW5nbGUgcGFydG5lciwgbm9uLXdpbGRjYXJkIHJpbmdzLgo+ID4gKyAgICAgKiBQ cm90ZWN0ZWQgYnkgTHNlbmQuCj4gPiArICAgICAqLwo+ID4gKyAgICBzdHJ1Y3QgaGxpc3RfaGVh ZCBzZW5kX2hhc2hbQVJHT19IVEFCTEVfU0laRV07Cj4gPiArCj4gPiArICAgIC8qIEx3aWxkY2Fy ZCAqLwo+ID4gKyAgICBzcGlubG9ja190IHdpbGRjYXJkX2xvY2s7Cj4gPiArICAgIC8qCj4gPiAr ICAgICAqIExpc3Qgb2YgcGVuZGluZyBzcGFjZS1hdmFpbGFibGUgc2lnbmFscyBmb3IgdGhpcyBk b21haW4gYWJvdXQgd2lsZGNhcmQKPiA+ICsgICAgICogcmluZ3MgcmVnaXN0ZXJlZCBieSBvdGhl ciBkb21haW5zLiBQcm90ZWN0ZWQgYnkgTHdpbGRjYXJkLgo+ID4gKyAgICAgKi8KPiA+ICsgICAg c3RydWN0IGhsaXN0X2hlYWQgd2lsZGNhcmRfcGVuZF9saXN0Owo+ID4gK307Cj4gPiArCj4gPiAr LyoKPiA+ICsgKiBMb2NraW5nIGlzIG9yZ2FuaXplZCBhcyBmb2xsb3dzOgo+ID4gKyAqCj4gPiAr ICogVGVybWlub2xvZ3k6IFIoPGxvY2s+KSBtZWFucyB0YWtpbmcgYSByZWFkIGxvY2sgb24gdGhl IHNwZWNpZmllZCBsb2NrOwo+ID4gKyAqICAgICAgICAgICAgICBXKDxsb2NrPikgbWVhbnMgdGFr aW5nIGEgd3JpdGUgbG9jayBvbiBpdC4KPiA+ICsgKgo+ID4gKyAqIEwxIDogVGhlIGdsb2JhbCBs b2NrOiBhcmdvX2xvY2sKPiA+ICsgKiBQcm90ZWN0cyB0aGUgYXJnbyBlbGVtZW50cyBvZiBhbGwg c3RydWN0IGRvbWFpbiAqZCBpbiB0aGUgc3lzdGVtLgo+ID4gKyAqIEl0IGRvZXMgbm90IHByb3Rl Y3QgYW55IG9mIHRoZSBlbGVtZW50cyBvZiBkLT5hcmdvLCBvbmx5IHRoZWlyCj4gPiArICogYWRk cmVzc2VzLgo+ID4gKyAqCj4gPiArICogQnkgZXh0ZW5zaW9uIHNpbmNlIHRoZSBkZXN0cnVjdGlv biBvZiBhIGRvbWFpbiB3aXRoIGEgbm9uLU5VTEwKPiA+ICsgKiBkLT5hcmdvIHdpbGwgbmVlZCB0 byBmcmVlIHRoZSBkLT5hcmdvIHBvaW50ZXIsIGhvbGRpbmcgVyhMMSkKPiA+ICsgKiBndWFyYW50 ZWVzIHRoYXQgbm8gZG9tYWlucyBwb2ludGVycyB0aGF0IGFyZ28gaXMgaW50ZXJlc3RlZCBpbgo+ ID4gKyAqIGJlY29tZSBpbnZhbGlkIHdoaWxzdCB0aGlzIGxvY2sgaXMgaGVsZC4KPiA+ICsgKi8K PiA+ICsKPiA+ICtzdGF0aWMgREVGSU5FX1JXTE9DSyhhcmdvX2xvY2spOyAvKiBMMSAqLwo+ID4g Kwo+ID4gKy8qCj4gPiArICogTDIgOiBUaGUgcGVyLWRvbWFpbiByaW5nIGhhc2ggbG9jazogZC0+ YXJnby0+bG9jawo+ID4gKyAqIEhvbGRpbmcgYSByZWFkIGxvY2sgb24gTDIgcHJvdGVjdHMgdGhl IHJpbmcgaGFzaCB0YWJsZSBhbmQKPiA+ICsgKiB0aGUgZWxlbWVudHMgaW4gdGhlIGhhc2hfdGFi bGUgZC0+YXJnby0+cmluZ19oYXNoLCBhbmQKPiA+ICsgKiB0aGUgbm9kZSBhbmQgaWQgZmllbGRz IGluIHN0cnVjdCBhcmdvX3JpbmdfaW5mbyBpbiB0aGUKPiA+ICsgKiBoYXNoIHRhYmxlLgo+ID4g KyAqIEhvbGRpbmcgYSB3cml0ZSBsb2NrIG9uIEwyIHByb3RlY3RzIGFsbCBvZiB0aGUgZWxlbWVu dHMgb2YKPiA+ICsgKiBzdHJ1Y3QgYXJnb19yaW5nX2luZm8uCj4gPiArICoKPiA+ICsgKiBUbyB0 YWtlIEwyIHlvdSBtdXN0IGFscmVhZHkgaGF2ZSBSKEwxKS4gVyhMMSkgaW1wbGllcyBXKEwyKSBh bmQgTDMuCj4gPiArICoKPiA+ICsgKiBMMyA6IFRoZSByaW5naW5mbyBsb2NrOiBhcmdvX3Jpbmdf aW5mbyAqcmluZ2luZm87IHJpbmdpbmZvLT5sb2NrCj4gPiArICogUHJvdGVjdHMgYWxsIHRoZSBm aWVsZHMgd2l0aGluIHRoZSBhcmdvX3JpbmdfaW5mbywgYXNpZGUgZnJvbSB0aGUgb25lcyB0aGF0 Cj4gPiArICogTDIgYWxyZWFkeSBwcm90ZWN0czogbm9kZSwgaWQsIGxvY2suCj4gPiArICoKPiA+ ICsgKiBUbyBhcXVpcmUgTDMgeW91IG11c3QgYWxyZWFkeSBoYXZlIFIoTDIpLiBXKEwyKSBpbXBs aWVzIEwzLgo+ID4gKyAqCj4gPiArICogTHNlbmQgOiBUaGUgcGVyLWRvbWFpbiBzaW5nbGUtc2Vu ZGVyIHBhcnRuZXIgcmluZ3MgbG9jazogZC0+YXJnby0+c2VuZF9sb2NrCj4gPiArICogUHJvdGVj dHMgdGhlIHBlci1kb21haW4gc2VuZCBoYXNoIHRhYmxlIDogZC0+YXJnby0+c2VuZF9oYXNoCj4g PiArICogYW5kIHRoZSBlbGVtZW50cyBpbiB0aGUgaGFzaCB0YWJsZSwgYW5kIHRoZSBub2RlIGFu ZCBpZCBmaWVsZHMKPiA+ICsgKiBpbiBzdHJ1Y3QgYXJnb19zZW5kX2luZm8gaW4gdGhlIGhhc2gg dGFibGUuCj4gPiArICoKPiA+ICsgKiBUbyB0YWtlIExzZW5kLCB5b3UgbXVzdCBhbHJlYWR5IGhh dmUgUihMMSkuIFcoTDEpIGltcGxpZXMgTHNlbmQuCj4gPiArICogRG8gbm90IGF0dGVtcHQgdG8g YWNxdWlyZSBhIEwyIG9uIGFueSBkb21haW4gYWZ0ZXIgdGFraW5nIGFuZCB3aGlsZQo+ID4gKyAq IGhvbGRpbmcgYSBMc2VuZCBsb2NrIC0tIGFjcXVpcmUgdGhlIEwyIChpZiBvbmUgaXMgbmVlZGVk KSBiZWZvcmVoYW5kLgo+ID4gKyAqCj4gPiArICogTHdpbGRjYXJkIDogVGhlIHBlci1kb21haW4g d2lsZGNhcmQgcGVuZGluZyBsaXN0IGxvY2s6IGQtPmFyZ28tPndpbGRjYXJkX2xvY2sKPiA+ICsg KiBQcm90ZWN0cyB0aGUgcGVyLWRvbWFpbiBsaXN0IG9mIG91dHN0YW5kaW5nIHNpZ25hbHMgZm9y IHNwYWNlIGF2YWlsYWJpbGl0eQo+ID4gKyAqIG9uIHdpbGRjYXJkIHJpbmdzLgo+ID4gKyAqCj4g PiArICogVG8gdGFrZSBMd2lsZGNhcmQsIHlvdSBtdXN0IGFscmVhZHkgaGF2ZSBSKEwxKS4gVyhM MSkgaW1wbGllcyBMd2lsZGNhcmQuCj4gPiArICogTm8gb3RoZXIgbG9ja3MgYXJlIGFjcXVpcmVk IGFmdGVyIG9idGFpbmluZyBMd2lsZGNhcmQuCj4gPiArICovCj4gPgo+ID4gIC8qIENoYW5nZSB0 aGlzIHRvICNkZWZpbmUgQVJHT19ERUJVRyBoZXJlIHRvIGVuYWJsZSBtb3JlIGRlYnVnIG1lc3Nh Z2VzICovCj4gPiAgI3VuZGVmIEFSR09fREVCVUcKPiA+IEBAIC0yOCwxMCArMTk4LDI5OSBAQAo+ ID4gICNkZWZpbmUgYXJnb19kcHJpbnRrKGZvcm1hdCwgLi4uICkgKCh2b2lkKTApCj4gPiAgI2Vu ZGlmCj4gPgo+ID4gK3N0YXRpYyB2b2lkCj4gPiArcmluZ191bm1hcChzdHJ1Y3QgYXJnb19yaW5n X2luZm8gKnJpbmdfaW5mbykKPiA+ICt7Cj4gPiArICAgIHVuc2lnbmVkIGludCBpOwo+ID4gKwo+ ID4gKyAgICBpZiAoICFyaW5nX2luZm8tPm1mbl9tYXBwaW5nICkKPiA+ICsgICAgICAgIHJldHVy bjsKPiA+ICsKPiA+ICsgICAgZm9yICggaSA9IDA7IGkgPCByaW5nX2luZm8tPm5tZm5zOyBpKysg KQo+ID4gKyAgICB7Cj4gPiArICAgICAgICBpZiAoICFyaW5nX2luZm8tPm1mbl9tYXBwaW5nW2ld ICkKPiA+ICsgICAgICAgICAgICBjb250aW51ZTsKPiA+ICsgICAgICAgIGlmICggcmluZ19pbmZv LT5tZm5zICkKPiA+ICsgICAgICAgICAgICBhcmdvX2RwcmludGsoWEVOTE9HX0VSUiAiYXJnbzog dW5tYXBwaW5nIHBhZ2UgJSJQUklfbWZuIiBmcm9tICVwXG4iLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICBtZm5feChyaW5nX2luZm8tPm1mbnNbaV0pLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICByaW5nX2luZm8tPm1mbl9tYXBwaW5nW2ldKTsKPiA+ICsgICAgICAgIHVubWFw X2RvbWFpbl9wYWdlX2dsb2JhbChyaW5nX2luZm8tPm1mbl9tYXBwaW5nW2ldKTsKPiA+ICsgICAg ICAgIHJpbmdfaW5mby0+bWZuX21hcHBpbmdbaV0gPSBOVUxMOwo+ID4gKyAgICB9Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyB2b2lkCj4gPiArd2lsZGNhcmRfcGVuZGluZ19saXN0X3JlbW92ZShk b21pZF90IGRvbWFpbl9pZCwgc3RydWN0IHBlbmRpbmdfZW50ICplbnQpCj4gPiArewo+ID4gKyAg ICBzdHJ1Y3QgZG9tYWluICpkID0gZ2V0X2RvbWFpbl9ieV9pZChkb21haW5faWQpOwo+ID4gKyAg ICBpZiAoICFkICkKPiA+ICsgICAgICAgIHJldHVybjsKPiA+ICsKPiA+ICsgICAgaWYgKCBkLT5h cmdvICkKPiA+ICsgICAgewo+ID4gKyAgICAgICAgc3Bpbl9sb2NrKCZkLT5hcmdvLT53aWxkY2Fy ZF9sb2NrKTsKPiA+ICsgICAgICAgIGhsaXN0X2RlbCgmZW50LT53aWxkY2FyZF9ub2RlKTsKPiA+ ICsgICAgICAgIHNwaW5fdW5sb2NrKCZkLT5hcmdvLT53aWxkY2FyZF9sb2NrKTsKPiA+ICsgICAg fQo+ID4gKyAgICBwdXRfZG9tYWluKGQpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZAo+ ID4gK3BlbmRpbmdfcmVtb3ZlX2FsbChzdHJ1Y3QgYXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbykK PiA+ICt7Cj4gPiArICAgIHN0cnVjdCBobGlzdF9ub2RlICpub2RlLCAqbmV4dDsKPiA+ICsgICAg c3RydWN0IHBlbmRpbmdfZW50ICplbnQ7Cj4gPiArCj4gPiArICAgIGhsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUoZW50LCBub2RlLCBuZXh0LCAmcmluZ19pbmZvLT5wZW5kaW5nLCBub2RlKQo+ID4g KyAgICB7Cj4gPiArICAgICAgICBpZiAoIHJpbmdfaW5mby0+aWQucGFydG5lcl9pZCA9PSBYRU5f QVJHT19ET01JRF9BTlkgKQo+ID4gKyAgICAgICAgICAgIHdpbGRjYXJkX3BlbmRpbmdfbGlzdF9y ZW1vdmUoZW50LT5kb21haW5faWQsIGVudCk7Cj4gPiArICAgICAgICBobGlzdF9kZWwoJmVudC0+ bm9kZSk7Cj4gPiArICAgICAgICB4ZnJlZShlbnQpOwo+ID4gKyAgICB9Cj4gPiArICAgIHJpbmdf aW5mby0+bnBlbmRpbmcgPSAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZAo+ID4gK3dp bGRjYXJkX3JpbmdzX3BlbmRpbmdfcmVtb3ZlKHN0cnVjdCBkb21haW4gKmQpCj4gPiArewo+ID4g KyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZSwgKm5leHQ7Cj4gPiArICAgIHN0cnVjdCBwZW5k aW5nX2VudCAqZW50Owo+ID4gKwo+ID4gKyAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZh cmdvX2xvY2spKTsKPiA+ICsKPiA+ICsgICAgaGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlbnQs IG5vZGUsIG5leHQsICZkLT5hcmdvLT53aWxkY2FyZF9wZW5kX2xpc3QsCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbm9kZSkKPiA+ICsgICAgewo+ID4gKyAgICAgICAgaGxpc3Rf ZGVsKCZlbnQtPm5vZGUpOwo+ID4gKyAgICAgICAgZW50LT5yaW5nX2luZm8tPm5wZW5kaW5nLS07 Cj4gPiArICAgICAgICBobGlzdF9kZWwoJmVudC0+d2lsZGNhcmRfbm9kZSk7Cj4gPiArICAgICAg ICB4ZnJlZShlbnQpOwo+ID4gKyAgICB9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkCj4g PiArcmluZ19yZW1vdmVfbWZucyhjb25zdCBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgYXJnb19y aW5nX2luZm8gKnJpbmdfaW5mbykKPiA+ICt7Cj4gPiArICAgIHVuc2lnbmVkIGludCBpOwo+ID4g Kwo+ID4gKyAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZkLT5hcmdvLT5sb2NrKSB8fAo+ ID4gKyAgICAgICAgICAgcndfaXNfd3JpdGVfbG9ja2VkKCZhcmdvX2xvY2spKTsKPiA+ICsKPiA+ ICsgICAgaWYgKCAhcmluZ19pbmZvLT5tZm5zICkKPiA+ICsgICAgICAgIHJldHVybjsKPiA+ICsK PiA+ICsgICAgaWYgKCAhcmluZ19pbmZvLT5tZm5fbWFwcGluZyApCj4gPiArICAgIHsKPiA+ICsg ICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwo+ID4gKyAgICAgICAgcmV0dXJuOwo+ID4gKyAg ICB9Cj4gPiArCj4gPiArICAgIHJpbmdfdW5tYXAocmluZ19pbmZvKTsKPiA+ICsKPiA+ICsgICAg Zm9yICggaSA9IDA7IGkgPCByaW5nX2luZm8tPm5tZm5zOyBpKysgKQo+ID4gKyAgICAgICAgaWYg KCAhbWZuX2VxKHJpbmdfaW5mby0+bWZuc1tpXSwgSU5WQUxJRF9NRk4pICkKPiA+ICsgICAgICAg ICAgICBwdXRfcGFnZV9hbmRfdHlwZShtZm5fdG9fcGFnZShyaW5nX2luZm8tPm1mbnNbaV0pKTsK PiA+ICsKPiA+ICsgICAgeGZyZWUocmluZ19pbmZvLT5tZm5zKTsKPiA+ICsgICAgcmluZ19pbmZv LT5tZm5zID0gTlVMTDsKPiA+ICsgICAgcmluZ19pbmZvLT5ucGFnZSA9IDA7Cj4gPiArICAgIHhm cmVlKHJpbmdfaW5mby0+bWZuX21hcHBpbmcpOwo+ID4gKyAgICByaW5nX2luZm8tPm1mbl9tYXBw aW5nID0gTlVMTDsKPiA+ICsgICAgcmluZ19pbmZvLT5ubWZucyA9IDA7Cj4gPiArfQo+ID4gKwo+ ID4gK3N0YXRpYyB2b2lkCj4gPiArcmluZ19yZW1vdmVfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLCBz dHJ1Y3QgYXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbykKPiA+ICt7Cj4gPiArICAgIEFTU0VSVChy d19pc193cml0ZV9sb2NrZWQoJmQtPmFyZ28tPmxvY2spIHx8Cj4gPiArICAgICAgICAgICByd19p c193cml0ZV9sb2NrZWQoJmFyZ29fbG9jaykpOwo+ID4gKwo+ID4gKyAgICBwZW5kaW5nX3JlbW92 ZV9hbGwocmluZ19pbmZvKTsKPiA+ICsgICAgaGxpc3RfZGVsKCZyaW5nX2luZm8tPm5vZGUpOwo+ ID4gKyAgICByaW5nX3JlbW92ZV9tZm5zKGQsIHJpbmdfaW5mbyk7Cj4gPiArICAgIHhmcmVlKHJp bmdfaW5mbyk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkCj4gPiArZG9tYWluX3Jpbmdz X3JlbW92ZV9hbGwoc3RydWN0IGRvbWFpbiAqZCkKPiA+ICt7Cj4gPiArICAgIHVuc2lnbmVkIGlu dCBpOwo+ID4gKwo+ID4gKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSR09fSFRBQkxFX1NJWkU7ICsr aSApCj4gPiArICAgIHsKPiA+ICsgICAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpub2RlLCAqbmV4 dDsKPiA+ICsgICAgICAgIHN0cnVjdCBhcmdvX3JpbmdfaW5mbyAqcmluZ19pbmZvOwo+ID4gKwo+ ID4gKyAgICAgICAgaGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyaW5nX2luZm8sIG5vZGUsIG5l eHQsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkLT5hcmdvLT5yaW5n X2hhc2hbaV0sIG5vZGUpCj4gPiArICAgICAgICAgICAgcmluZ19yZW1vdmVfaW5mbyhkLCByaW5n X2luZm8pOwo+ID4gKyAgICB9Cj4gPiArICAgIGQtPmFyZ28tPnJpbmdfY291bnQgPSAwOwo+ID4g K30KPiA+ICsKPiA+ICsvKgo+ID4gKyAqIFRlYXIgZG93biBhbGwgcmluZ3Mgb2Ygb3RoZXIgZG9t YWlucyB3aGVyZSBzcmNfZCBkb21haW4gaXMgdGhlIHBhcnRuZXIuCj4gPiArICogKGllLiBpdCBp cyB0aGUgc2luZ2xlIGRvbWFpbiB0aGF0IGNhbiBzZW5kIHRvIHRob3NlIHJpbmdzLikKPiA+ICsg KiBUaGlzIHdpbGwgYWxzbyBjYW5jZWwgYW55IHBlbmRpbmcgbm90aWZpY2F0aW9ucyBhYm91dCB0 aG9zZSByaW5ncy4KPiA+ICsgKi8KPiA+ICtzdGF0aWMgdm9pZAo+ID4gK3BhcnRuZXJfcmluZ3Nf cmVtb3ZlKHN0cnVjdCBkb21haW4gKnNyY19kKQo+ID4gK3sKPiA+ICsgICAgdW5zaWduZWQgaW50 IGk7Cj4gPiArCj4gPiArICAgIEFTU0VSVChyd19pc193cml0ZV9sb2NrZWQoJmFyZ29fbG9jaykp Owo+ID4gKwo+ID4gKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSR09fSFRBQkxFX1NJWkU7ICsraSAp Cj4gPiArICAgIHsKPiA+ICsgICAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpub2RlLCAqbmV4dDsK PiA+ICsgICAgICAgIHN0cnVjdCBhcmdvX3NlbmRfaW5mbyAqc2VuZF9pbmZvOwo+ID4gKwo+ID4g KyAgICAgICAgaGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShzZW5kX2luZm8sIG5vZGUsIG5leHQs Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzcmNfZC0+YXJnby0+c2Vu ZF9oYXNoW2ldLCBub2RlKQo+ID4gKyAgICAgICAgewo+ID4gKyAgICAgICAgICAgIHN0cnVjdCBh cmdvX3JpbmdfaW5mbyAqcmluZ19pbmZvOwo+ID4gKyAgICAgICAgICAgIHN0cnVjdCBkb21haW4g KmRzdF9kOwo+ID4gKwo+ID4gKyAgICAgICAgICAgIGRzdF9kID0gZ2V0X2RvbWFpbl9ieV9pZChz ZW5kX2luZm8tPmlkLmRvbWFpbl9pZCk7Cj4gPiArICAgICAgICAgICAgaWYgKCBkc3RfZCApCj4g PiArICAgICAgICAgICAgewo+ID4gKyAgICAgICAgICAgICAgICByaW5nX2luZm8gPSByaW5nX2Zp bmRfaW5mbyhkc3RfZCwgJnNlbmRfaW5mby0+aWQpOwo+ID4gKyAgICAgICAgICAgICAgICBpZiAo IHJpbmdfaW5mbyApCj4gPiArICAgICAgICAgICAgICAgIHsKPiA+ICsgICAgICAgICAgICAgICAg ICAgIHJpbmdfcmVtb3ZlX2luZm8oZHN0X2QsIHJpbmdfaW5mbyk7Cj4gPiArICAgICAgICAgICAg ICAgICAgICBkc3RfZC0+YXJnby0+cmluZ19jb3VudC0tOwo+ID4gKyAgICAgICAgICAgICAgICB9 Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgIHB1dF9kb21haW4oZHN0X2QpOwo+ID4gKyAgICAg ICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgICAgICBobGlzdF9kZWwoJnNlbmRfaW5mby0+bm9k ZSk7Cj4gPiArICAgICAgICAgICAgeGZyZWUoc2VuZF9pbmZvKTsKPiA+ICsgICAgICAgIH0KPiA+ ICsgICAgfQo+ID4gK30KPiA+ICsKPiA+ICBsb25nCj4gPiAgZG9fYXJnb19vcCh1bnNpZ25lZCBp bnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZzEsCj4gPiAgICAgICAgICAg ICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywK PiA+ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnNCkKPiA+ICB7Cj4gPiAtICAgIHJldHVy biAtRU5PU1lTOwo+ID4gKyAgICBzdHJ1Y3QgZG9tYWluICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFp bjsKPiA+ICsgICAgbG9uZyByYyA9IC1FRkFVTFQ7Cj4gPiArCj4gPiArICAgIGFyZ29fZHByaW50 aygiLT5kb19hcmdvX29wKCV1LCVwLCVwLCVkLCVkKVxuIiwgY21kLAo+ID4gKyAgICAgICAgICAg ICAgICAgKHZvaWQgKilhcmcxLnAsICh2b2lkICopYXJnMi5wLCAoaW50KSBhcmczLCAoaW50KSBh cmc0KTsKPiA+ICsKPiA+ICsgICAgaWYgKCB1bmxpa2VseSghb3B0X2FyZ29fZW5hYmxlZCkgKQo+ ID4gKyAgICB7Cj4gPiArICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwo+ID4gKyAgICAgICAgcmV0 dXJuIHJjOwo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIGRvbWFpbl9sb2NrKGN1cnJkKTsKPiA+ ICsKPiA+ICsgICAgc3dpdGNoIChjbWQpCj4gPiArICAgIHsKPiA+ICsgICAgZGVmYXVsdDoKPiA+ ICsgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7Cj4gPiArICAgICAgICBicmVhazsKPiA+ICsgICAg fQo+ID4gKwo+ID4gKyAgICBkb21haW5fdW5sb2NrKGN1cnJkKTsKPiA+ICsKPiA+ICsgICAgYXJn b19kcHJpbnRrKCI8LWRvX2FyZ29fb3AoJXUpPSVsZFxuIiwgY21kLCByYyk7Cj4gPiArCj4gPiAr ICAgIHJldHVybiByYzsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQKPiA+ICthcmdvX2Rv bWFpbl9pbml0KHN0cnVjdCBhcmdvX2RvbWFpbiAqYXJnbykKPiA+ICt7Cj4gPiArICAgIHVuc2ln bmVkIGludCBpOwo+ID4gKwo+ID4gKyAgICByd2xvY2tfaW5pdCgmYXJnby0+bG9jayk7Cj4gPiAr ICAgIHNwaW5fbG9ja19pbml0KCZhcmdvLT5zZW5kX2xvY2spOwo+ID4gKyAgICBzcGluX2xvY2tf aW5pdCgmYXJnby0+d2lsZGNhcmRfbG9jayk7Cj4gPiArICAgIGFyZ28tPnJpbmdfY291bnQgPSAw Owo+ID4gKwo+ID4gKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSR09fSFRBQkxFX1NJWkU7ICsraSAp Cj4gPiArICAgIHsKPiA+ICsgICAgICAgIElOSVRfSExJU1RfSEVBRCgmYXJnby0+cmluZ19oYXNo W2ldKTsKPiA+ICsgICAgICAgIElOSVRfSExJU1RfSEVBRCgmYXJnby0+c2VuZF9oYXNoW2ldKTsK PiA+ICsgICAgfQo+ID4gKyAgICBJTklUX0hMSVNUX0hFQUQoJmFyZ28tPndpbGRjYXJkX3BlbmRf bGlzdCk7Cj4gPiArfQo+ID4gKwo+ID4gK2ludAo+ID4gK2FyZ29faW5pdChzdHJ1Y3QgZG9tYWlu ICpkKQo+ID4gK3sKPiA+ICsgICAgc3RydWN0IGFyZ29fZG9tYWluICphcmdvOwo+ID4gKwo+ID4g KyAgICBpZiAoICFvcHRfYXJnb19lbmFibGVkICkKPiA+ICsgICAgewo+ID4gKyAgICAgICAgYXJn b19kcHJpbnRrKCJhcmdvIGRpc2FibGVkLCBkb21pZDogJWRcbiIsIGQtPmRvbWFpbl9pZCk7Cj4g PiArICAgICAgICByZXR1cm4gMDsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICBhcmdvX2Rwcmlu dGsoImluaXQ6IGRvbWlkOiAlZFxuIiwgZC0+ZG9tYWluX2lkKTsKPiA+ICsKPiA+ICsgICAgYXJn byA9IHhtYWxsb2Moc3RydWN0IGFyZ29fZG9tYWluKTsKPiA+ICsgICAgaWYgKCAhYXJnbyApCj4g PiArICAgICAgICByZXR1cm4gLUVOT01FTTsKPiA+ICsKPiA+ICsgICAgd3JpdGVfbG9jaygmYXJn b19sb2NrKTsKPiA+ICsKPiA+ICsgICAgYXJnb19kb21haW5faW5pdChhcmdvKTsKPiA+ICsKPiA+ ICsgICAgZC0+YXJnbyA9IGFyZ287Cj4gPiArCj4gPiArICAgIHdyaXRlX3VubG9jaygmYXJnb19s b2NrKTsKPiA+ICsKPiA+ICsgICAgcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQKPiA+ ICthcmdvX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKPiA+ICt7Cj4gPiArICAgIEJVR19PTigh ZC0+aXNfZHlpbmcpOwo+ID4gKwo+ID4gKyAgICB3cml0ZV9sb2NrKCZhcmdvX2xvY2spOwo+ID4g Kwo+ID4gKyAgICBhcmdvX2RwcmludGsoImRlc3Ryb3k6IGRvbWlkICVkIGQtPmFyZ289JXBcbiIs IGQtPmRvbWFpbl9pZCwgZC0+YXJnbyk7Cj4gPiArCj4gPiArICAgIGlmICggZC0+YXJnbyApCj4g PiArICAgIHsKPiA+ICsgICAgICAgIGRvbWFpbl9yaW5nc19yZW1vdmVfYWxsKGQpOwo+ID4gKyAg ICAgICAgcGFydG5lcl9yaW5nc19yZW1vdmUoZCk7Cj4gPiArICAgICAgICB3aWxkY2FyZF9yaW5n c19wZW5kaW5nX3JlbW92ZShkKTsKPiA+ICsgICAgICAgIHhmcmVlKGQtPmFyZ28pOwo+ID4gKyAg ICAgICAgZC0+YXJnbyA9IE5VTEw7Cj4gPiArICAgIH0KPiA+ICsgICAgd3JpdGVfdW5sb2NrKCZh cmdvX2xvY2spOwo+ID4gK30KPiA+ICsKPiA+ICt2b2lkCj4gPiArYXJnb19zb2Z0X3Jlc2V0KHN0 cnVjdCBkb21haW4gKmQpCj4gPiArewo+ID4gKyAgICB3cml0ZV9sb2NrKCZhcmdvX2xvY2spOwo+ ID4gKwo+ID4gKyAgICBhcmdvX2RwcmludGsoInNvZnQgcmVzZXQgZD0lZCBkLT5hcmdvPSVwXG4i LCBkLT5kb21haW5faWQsIGQtPmFyZ28pOwo+ID4gKwo+ID4gKyAgICBpZiAoIGQtPmFyZ28gKQo+ ID4gKyAgICB7Cj4gPiArICAgICAgICBkb21haW5fcmluZ3NfcmVtb3ZlX2FsbChkKTsKPiA+ICsg ICAgICAgIHBhcnRuZXJfcmluZ3NfcmVtb3ZlKGQpOwo+ID4gKyAgICAgICAgd2lsZGNhcmRfcmlu Z3NfcGVuZGluZ19yZW1vdmUoZCk7Cj4gPiArCj4gPiArICAgICAgICBpZiAoICFvcHRfYXJnb19l bmFibGVkICkKPiA+ICsgICAgICAgIHsKPiA+ICsgICAgICAgICAgICB4ZnJlZShkLT5hcmdvKTsK PiA+ICsgICAgICAgICAgICBkLT5hcmdvID0gTlVMTDsKPiA+ICsgICAgICAgIH0KPiA+ICsgICAg ICAgIGVsc2UKPiA+ICsgICAgICAgICAgICBhcmdvX2RvbWFpbl9pbml0KGQtPmFyZ28pOwo+ID4g KyAgICB9Cj4gPiArCj4gPiArICAgIHdyaXRlX3VubG9jaygmYXJnb19sb2NrKTsKPiA+ICB9Cj4g PiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9tYWluLmMK PiA+IGluZGV4IGM2MjNkYWUuLjk1OTY4NDAgMTAwNjQ0Cj4gPiAtLS0gYS94ZW4vY29tbW9uL2Rv bWFpbi5jCj4gPiArKysgYi94ZW4vY29tbW9uL2RvbWFpbi5jCj4gPiBAQCAtMzIsNiArMzIsNyBA QAo+ID4gICNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KPiA+ICAjaW5jbHVkZSA8eGVuL3hl bm9wcm9mLmg+Cj4gPiAgI2luY2x1ZGUgPHhlbi9pcnEuaD4KPiA+ICsjaW5jbHVkZSA8eGVuL2Fy Z28uaD4KPiA+ICAjaW5jbHVkZSA8YXNtL2RlYnVnZ2VyLmg+Cj4gPiAgI2luY2x1ZGUgPGFzbS9w Mm0uaD4KPiA+ICAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgo+ID4gQEAgLTI3Nyw2ICsyNzgs MTAgQEAgc3RhdGljIHZvaWQgX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCj4gPgo+ ID4gICAgICB4ZnJlZShkLT5wYnVmKTsKPiA+Cj4gPiArI2lmZGVmIENPTkZJR19BUkdPCj4gPiAr ICAgIGFyZ29fZGVzdHJveShkKTsKPiA+ICsjZW5kaWYKPiA+ICsKPiA+ICAgICAgcmFuZ2VzZXRf ZG9tYWluX2Rlc3Ryb3koZCk7Cj4gPgo+ID4gICAgICBmcmVlX2NwdW1hc2tfdmFyKGQtPmRpcnR5 X2NwdW1hc2spOwo+ID4gQEAgLTM3Niw2ICszODEsOSBAQCBzdHJ1Y3QgZG9tYWluICpkb21haW5f Y3JlYXRlKGRvbWlkX3QgZG9taWQsCj4gPiAgICAgIHNwaW5fbG9ja19pbml0KCZkLT5oeXBlcmNh bGxfZGVhZGxvY2tfbXV0ZXgpOwo+ID4gICAgICBJTklUX1BBR0VfTElTVF9IRUFEKCZkLT5wYWdl X2xpc3QpOwo+ID4gICAgICBJTklUX1BBR0VfTElTVF9IRUFEKCZkLT54ZW5wYWdlX2xpc3QpOwo+ ID4gKyNpZmRlZiBDT05GSUdfQVJHTwo+ID4gKyAgICByd2xvY2tfaW5pdCgmZC0+YXJnb19sb2Nr KTsKPiA+ICsjZW5kaWYKPiA+Cj4gPiAgICAgIHNwaW5fbG9ja19pbml0KCZkLT5ub2RlX2FmZmlu aXR5X2xvY2spOwo+ID4gICAgICBkLT5ub2RlX2FmZmluaXR5ID0gTk9ERV9NQVNLX0FMTDsKPiA+ IEBAIC00NDUsNiArNDUzLDExIEBAIHN0cnVjdCBkb21haW4gKmRvbWFpbl9jcmVhdGUoZG9taWRf dCBkb21pZCwKPiA+ICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4gPiAgICAgICAgICBpbml0X3N0 YXR1cyB8PSBJTklUX2dudHRhYjsKPiA+Cj4gPiArI2lmZGVmIENPTkZJR19BUkdPCj4gPiArICAg ICAgICBpZiAoIChlcnIgPSBhcmdvX2luaXQoZCkpICE9IDAgKQo+ID4gKyAgICAgICAgICAgIGdv dG8gZmFpbDsKPiA+ICsjZW5kaWYKPiA+ICsKPiA+ICAgICAgICAgIGVyciA9IC1FTk9NRU07Cj4g Pgo+ID4gICAgICAgICAgZC0+cGJ1ZiA9IHh6YWxsb2NfYXJyYXkoY2hhciwgRE9NQUlOX1BCVUZf U0laRSk7Cj4gPiBAQCAtNzE3LDYgKzczMCw5IEBAIGludCBkb21haW5fa2lsbChzdHJ1Y3QgZG9t YWluICpkKQo+ID4gICAgICAgICAgaWYgKCBkLT5pc19keWluZyAhPSBET01EWUlOR19hbGl2ZSAp Cj4gPiAgICAgICAgICAgICAgcmV0dXJuIGRvbWFpbl9raWxsKGQpOwo+ID4gICAgICAgICAgZC0+ aXNfZHlpbmcgPSBET01EWUlOR19keWluZzsKPiA+ICsjaWZkZWYgQ09ORklHX0FSR08KPiA+ICsg ICAgICAgIGFyZ29fZGVzdHJveShkKTsKPiA+ICsjZW5kaWYKPiA+ICAgICAgICAgIGV2dGNobl9k ZXN0cm95KGQpOwo+ID4gICAgICAgICAgZ250dGFiX3JlbGVhc2VfbWFwcGluZ3MoZCk7Cj4gPiAg ICAgICAgICB0bWVtX2Rlc3Ryb3koZC0+dG1lbV9jbGllbnQpOwo+ID4gQEAgLTExNzUsNiArMTE5 MSwxMCBAQCBpbnQgZG9tYWluX3NvZnRfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKPiA+Cj4gPiAg ICAgIGdyYW50X3RhYmxlX3dhcm5fYWN0aXZlX2dyYW50cyhkKTsKPiA+Cj4gPiArI2lmZGVmIENP TkZJR19BUkdPCj4gPiArICAgIGFyZ29fc29mdF9yZXNldChkKTsKPiA+ICsjZW5kaWYKPiA+ICsK PiA+ICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQo+ID4gICAgICB7Cj4gPiAgICAgICAgICBz ZXRfeGVuX2d1ZXN0X2hhbmRsZShydW5zdGF0ZV9ndWVzdCh2KSwgTlVMTCk7Cj4gPiBkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvTWFrZWZpbGUgYi94ZW4vaW5jbHVkZS9NYWtlZmlsZQo+ID4gaW5k ZXggZjc4OTVlNC4uM2QxNDUzMiAxMDA2NDQKPiA+IC0tLSBhL3hlbi9pbmNsdWRlL01ha2VmaWxl Cj4gPiArKysgYi94ZW4vaW5jbHVkZS9NYWtlZmlsZQo+ID4gQEAgLTUsNiArNSw3IEBAIGlmbmVx ICgkKENPTkZJR19DT01QQVQpLCkKPiA+ICBjb21wYXQtYXJjaC0kKENPTkZJR19YODYpIDo9IHg4 Nl8zMgo+ID4KPiA+ICBoZWFkZXJzLXkgOj0gXAo+ID4gKyAgICBjb21wYXQvYXJnby5oIFwKPiA+ ICAgICAgY29tcGF0L2NhbGxiYWNrLmggXAo+ID4gICAgICBjb21wYXQvZWxmbm90ZS5oIFwKPiA+ ICAgICAgY29tcGF0L2V2ZW50X2NoYW5uZWwuaCBcCj4gPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvcHVibGljL2FyZ28uaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmdvLmgKPiA+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwLi40ODE4Njg0Cj4gPiAtLS0gL2Rldi9udWxs Cj4gPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJnby5oCj4gPiBAQCAtMCwwICsxLDU5IEBA Cj4gPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ID4gKyAqIEFyZ28gOiBIeXBlcnZpc29yLU1l ZGlhdGVkIGRhdGEgZVhjaGFuZ2UKPiA+ICsgKgo+ID4gKyAqIERlcml2ZWQgZnJvbSB2NHYsIHRo ZSB2ZXJzaW9uIDIgb2YgdjJ2Lgo+ID4gKyAqCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDEwLCBD aXRyaXggU3lzdGVtcwo+ID4gKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5LCBCQUUgU3lzdGVt cwo+ID4gKyAqCj4gPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQo+ID4gKyAqIG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LCB0bwo+ID4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4gPiArICogcmlnaHRzIHRvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y Cj4gPiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPiA+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1 YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ID4gKyAqCj4gPiArICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg aW5jbHVkZWQgaW4KPiA+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m IHRoZSBTb2Z0d2FyZS4KPiA+ICsgKgo+ID4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gPiArICog SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFksCj4gPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gPiArICogQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUgo+ID4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gPiArICogRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgo+ID4gKyAq IERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiA+ICsgKgo+ID4gKyAqLwo+ID4gKwo+ID4gKyNp Zm5kZWYgX19YRU5fUFVCTElDX0FSR09fSF9fCj4gPiArI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJH T19IX18KPiA+ICsKPiA+ICsjaW5jbHVkZSAieGVuLmgiCj4gPiArCj4gPiArdHlwZWRlZiBzdHJ1 Y3QgeGVuX2FyZ29fYWRkcgo+ID4gK3sKPiA+ICsgICAgdWludDMyX3QgcG9ydDsKPiA+ICsgICAg ZG9taWRfdCBkb21haW5faWQ7Cj4gPiArICAgIHVpbnQxNl90IHBhZDsKPiA+ICt9IHhlbl9hcmdv X2FkZHJfdDsKPiA+ICsKPiA+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fYXJnb19yaW5nCj4gPiArewo+ ID4gKyAgICAvKiBHdWVzdHMgc2hvdWxkIHVzZSBhdG9taWMgb3BlcmF0aW9ucyB0byBhY2Nlc3Mg cnhfcHRyICovCj4gPiArICAgIHVpbnQzMl90IHJ4X3B0cjsKPiA+ICsgICAgLyogR3Vlc3RzIHNo b3VsZCB1c2UgYXRvbWljIG9wZXJhdGlvbnMgdG8gYWNjZXNzIHR4X3B0ciAqLwo+ID4gKyAgICB1 aW50MzJfdCB0eF9wdHI7Cj4gPiArICAgIC8qCj4gPiArICAgICAqIEhlYWRlciBzcGFjZSByZXNl cnZlZCBmb3IgbGF0ZXIgdXNlLiBBbGlnbiB0aGUgc3RhcnQgb2YgdGhlIHJpbmcgdG8gYQo+ID4g KyAgICAgKiBtdWx0aXBsZSBvZiB0aGUgbWVzc2FnZSBzbG90IHNpemUuCj4gPiArICAgICAqLwo+ ID4gKyAgICB1aW50OF90IHJlc2VydmVkWzU2XTsKPiA+ICsjaWYgZGVmaW5lZChfX1NURENfVkVS U0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKPiA+ICsgICAgdWludDhfdCBy aW5nW107Cj4gPiArI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKPiA+ICsgICAgdWludDhfdCByaW5n WzBdOwo+ID4gKyNlbmRpZgo+ID4gK30geGVuX2FyZ29fcmluZ190Owo+ID4gKwo+ID4gKyNlbmRp Zgo+ID4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9hcmdvLmggYi94ZW4vaW5jbHVkZS94 ZW4vYXJnby5oCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMC4uMjlk MzJhOQo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIveGVuL2luY2x1ZGUveGVuL2FyZ28uaAo+ ID4gQEAgLTAsMCArMSwyMyBAQAo+ID4gKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPiA+ICsgKiBB cmdvIDogSHlwZXJ2aXNvci1NZWRpYXRlZCBkYXRhIGVYY2hhbmdlCj4gPiArICoKPiA+ICsgKiBD b3B5cmlnaHQgKGMpIDIwMTgsIEJBRSBTeXN0ZW1zCj4gPiArICoKPiA+ICsgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPiA+ ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgo+ID4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPiA+ICsgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgo+ID4gKyAqCj4gPiArICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKPiA+ICsgKiBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ ID4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0 b24sIE1BICAwMjExMS0xMzA3ICBVU0EKPiA+ICsgKi8KPiA+ICsKPiA+ICsjaWZuZGVmIF9fWEVO X0FSR09fSF9fCj4gPiArI2RlZmluZSBfX1hFTl9BUkdPX0hfXwo+ID4gKwo+ID4gK2ludCBhcmdv X2luaXQoc3RydWN0IGRvbWFpbiAqZCk7Cj4gPiArdm9pZCBhcmdvX2Rlc3Ryb3koc3RydWN0IGRv bWFpbiAqZCk7Cj4gPiArdm9pZCBhcmdvX3NvZnRfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCk7Cj4g PiArCj4gPiArI2VuZGlmCj4gPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgg Yi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAo+ID4gaW5kZXggNDk1NmE3Ny4uMjA0MThlNyAxMDA2 NDQKPiA+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCj4gPiArKysgYi94ZW4vaW5jbHVk ZS94ZW4vc2NoZWQuaAo+ID4gQEAgLTQ5MCw2ICs0OTAsMTIgQEAgc3RydWN0IGRvbWFpbgo+ID4g ICAgICAgICAgdW5zaWduZWQgaW50IGd1ZXN0X3JlcXVlc3RfZW5hYmxlZCAgICAgICA6IDE7Cj4g PiAgICAgICAgICB1bnNpZ25lZCBpbnQgZ3Vlc3RfcmVxdWVzdF9zeW5jICAgICAgICAgIDogMTsK PiA+ICAgICAgfSBtb25pdG9yOwo+ID4gKwo+ID4gKyNpZmRlZiBDT05GSUdfQVJHTwo+ID4gKyAg ICAvKiBBcmdvIGludGVyZG9tYWluIGNvbW11bmljYXRpb24gc3VwcG9ydCAqLwo+ID4gKyAgICBy d2xvY2tfdCBhcmdvX2xvY2s7Cj4gPiArICAgIHN0cnVjdCBhcmdvX2RvbWFpbiAqYXJnbzsKPiA+ ICsjZW5kaWYKPiA+ICB9Owo+ID4KPiA+ICAvKiBQcm90ZWN0IHVwZGF0ZXMvcmVhZHMgKHJlc3Au KSBvZiBkb21haW5fbGlzdCBhbmQgZG9tYWluX2hhc2guICovCj4gPiBkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUveGxhdC5sc3QgYi94ZW4vaW5jbHVkZS94bGF0LmxzdAo+ID4gaW5kZXggNTI3MzMy MC4uOWY2MTZlNCAxMDA2NDQKPiA+IC0tLSBhL3hlbi9pbmNsdWRlL3hsYXQubHN0Cj4gPiArKysg Yi94ZW4vaW5jbHVkZS94bGF0LmxzdAo+ID4gQEAgLTE0OCwzICsxNDgsNSBAQAo+ID4gID8gICAg Zmxhc2tfc2V0ZW5mb3JjZSAgICAgICAgICAgICAgICB4c20vZmxhc2tfb3AuaAo+ID4gICEgICAg Zmxhc2tfc2lkX2NvbnRleHQgICAgICAgICAgICAgICB4c20vZmxhc2tfb3AuaAo+ID4gID8gICAg Zmxhc2tfdHJhbnNpdGlvbiAgICAgICAgICAgICAgICB4c20vZmxhc2tfb3AuaAo+ID4gKz8gICAg YXJnb19hZGRyICAgICAgICAgICAgICAgICAgICAgICBhcmdvLmgKPiA+ICs/ICAgIGFyZ29fcmlu ZyAgICAgICAgICAgICAgICAgICAgICAgYXJnby5oCj4gPgo+CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs