From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by dpdk.org (Postfix) with ESMTP id 6380F1B53 for ; Wed, 19 Sep 2018 14:59:00 +0200 (CEST) Received: by mail-wr1-f67.google.com with SMTP id v16-v6so5688103wro.11 for ; Wed, 19 Sep 2018 05:59:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:mime-version; bh=rkp/E+EPGTDTQmIv3DV1Y/UeeESGqddcYb8IuLzIn8g=; b=WSYq2UMqiv5qdMTPdULJY6q79Tr/DNkI7eXnGmYoUKDwueX4rtMlt0yVIrfE8s9bpy Wp+5ZCqSuc8L++pZvlv1nG595+0AkXif9MYHMB79msl6RCnNVlmiRLaMqrIScAtF8eh8 ZuE6y3XiBsdrc25R0z8Giy15f4r0N6pJpKkdytegIDIwVckazZaItmKEu6aZvVmYVHzK mAUZjWerg+KF1sBGZmhIn+Fb54nCe4cpKsK4Z2NFxoxzQ2ID4XT9vTtX3ZsULDRKvWGe liDL2bOJjm7QO6NO/S8nMXp0xGz27LsKB/KyzAwBAMfc7e8feaHo0AUO32YoCpUvbvEm VEVg== X-Gm-Message-State: APzg51CvEr+rXzI8CfwtGNW/pOzxX7VWK+YIHn5IV0qP0abCs6yUyeEF YWXULZ7CWPeySv1Hv8fqQVo= X-Google-Smtp-Source: ANB0VdZyw6Vkr7yN0r2YWtif2McF/2W2o/34AfnqeXWkYohdcrbTNG5CS+LpfeyZ/nQe7HdTDvCLcw== X-Received: by 2002:adf:f410:: with SMTP id g16-v6mr28781855wro.256.1537361940026; Wed, 19 Sep 2018 05:59:00 -0700 (PDT) Received: from localhost ([2001:1be0:110d:fcfe:489f:80a9:5d59:c6bd]) by smtp.gmail.com with ESMTPSA id s13-v6sm19772157wrq.39.2018.09.19.05.58.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Sep 2018 05:58:59 -0700 (PDT) Message-ID: <1537361938.10481.23.camel@debian.org> From: Luca Boccassi To: Louis Luo , "dev@dpdk.org" Cc: "brussell@vyatta.att-mail.com" Date: Wed, 19 Sep 2018 13:58:58 +0100 In-Reply-To: <521E14D3-C661-48CA-A19A-4B8D82A55D71@vmware.com> References: <20180816135032.28283-1-bluca@debian.org> <20180816135032.28283-3-bluca@debian.org> <1537276494.10481.7.camel@debian.org> <17F07836-30C0-4B16-A0A8-00CCFC2D715B@vmware.com> <1537295381.10481.15.camel@debian.org> <521E14D3-C661-48CA-A19A-4B8D82A55D71@vmware.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Mailer: Evolution 3.22.6-1+deb9u1 Mime-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 2/3] net/vmxnet3: fix vmxnet3 dev_uninit() hot-unplug X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Sep 2018 12:59:00 -0000 T2ssIEkndmUgYWRkZWQgaXQgYmFjayB3aXRoIGEgZGVidWcgbG9nIGluIHYyLgoKT24gVHVlLCAy MDE4LTA5LTE4IGF0IDE4OjQ4ICswMDAwLCBMb3VpcyBMdW8gd3JvdGU6Cj4gSGkgTHVjYSwKPiAK PiBJJ20gZmluZSB3aXRoIHRoZSBxdWV1ZSBmcmVlIHBhcnQsIGJ1dCBqdXN0IGhhdmUgY29uY2Vy biBhYm91dAo+IHJlbW92aW5nIHRoZSBjaGVjayBpbnNpZGUgdW5pbml0IGZ1bmN0aW9uLiBJZiB0 aGUgYXBwbGljYXRpb24gZG9lcwo+IGZvbGxvdyB0aGUgcnVsZXMgYW5kIGtlZXBpbmcgdGhlIGNo ZWNrIGluIHVuaW5pdCB3b24ndCBjYXVzZQo+IHZteG5ldDNfZGV2X2Nsb3NlKCkgYmVpbmcgY2Fs bGVkIGFnYWluIChhbmQgaWYgaXQgd29uJ3QgY2F1c2UgdHJvdWJsZQo+IGluIGNhc2UgdGhlIGFw cGxpY2F0aW9uIGRvZXNuJ3QgY2FsbCBjbG9zZSBiZWZvcmUgY2FsbGluZyB1bmluaXQpLCBJCj4g cHJlZmVyIGtlZXBpbmcgdGhlIGNoZWNrIChhbmQgbG9nIHNvbWUgd2FybmluZykgaW4gY2FzZSBh bnkgYnVnZ3kKPiBhcHBsaWNhdGlvbiBleGlzdHMuCj4gCj4gVGhhbmtzLAo+IExvdWlzCj4gCj4g 77u/T24gOS8xOC8xOCwgMTE6MjkgQU0sICJMdWNhIEJvY2Nhc3NpIiA8Ymx1Y2FAZGViaWFuLm9y Zz4gd3JvdGU6Cj4gCj4gwqDCoMKgwqBPbiBUdWUsIDIwMTgtMDktMTggYXQgMTg6MTQgKzAwMDAs IExvdWlzIEx1byB3cm90ZToKPiDCoMKgwqDCoD4gSGkgTHVjYSwKPiDCoMKgwqDCoD7CoAo+IMKg wqDCoMKgPiBUaGFua3MgZm9yIHBvaW50aW5nIHRvIHRoZSBkb2N1bWVudCEgVGhpcyAiYmFzaWMg cmVxdWlyZW1lbnRzIgo+IHNlZW1zCj4gwqDCoMKgwqA+IHRvIGxheSB0aGUgYnVyZGVuIG9uIGFw cGxpY2F0aW9uIGRldmVsb3BlcnMgdG8gY29ycmVjdGx5IGZvbGxvdwo+IHRoZQo+IMKgwqDCoMKg PiBob3QtcGx1ZyBmcmFtZXdvcmsncyBydWxlcywgYnV0IHRoZXJlIHNlZW1zIG5vIG1lY2hhbmlz bSB0bwo+IGVuZm9yY2UKPiDCoMKgwqDCoD4gdGhpcyBwcm9jZWR1cmUgKGNvcnJlY3QgbWUgaWYg SSdtIHdyb25nKS4gV2hhdCBpZiBhIGJ1Z2d5Cj4gYXBwbGljYXRpb24KPiDCoMKgwqDCoD4gZG9l c24ndCBjYWxsIHN0b3AvY2xvc2UgYmVmb3JlIGRldGFjaGluZz/CoAo+IMKgwqDCoMKgCj4gwqDC oMKgwqBXZWxsIERQREsgaW4gZ2VuZXJhbCBkb2VzIG5vdCBoYXZlIHRoZSBzaW1wbGVzdCBBUEkg dG8gdXNlLAo+IHRoZXJlJ3Mgbm8KPiDCoMKgwqDCoGRlbnlpbmcgdGhhdC4gVGhhdCdzIGJlY2F1 c2Ugd2hhdCBpdCBkb2VzIGlzIHZlcnkgbXVjaCBtb3JlCj4gY29tcGxpY2F0ZWQKPiDCoMKgwqDC oHRoYW4gdGhlIGF2ZXJhZ2UgbGlicmFyeS4KPiDCoMKgwqDCoFNvIGlmIGFuIGFwcGxpY2F0aW9u IGlnbm9yZXMgdGhlIGRldmVsb3BtZW50IGd1aWRlcyBhbmQgZG9lcyBub3QKPiBmb2xsb3cKPiDC oMKgwqDCoHRoZSByZWNvbW1lbmRhdGlvbiBiYWQgdGhpbmdzIHdpbGwgaGFwcGVuIDotKSBCdXQg aXQgd2lsbCBoYXBwZW4KPiDCoMKgwqDCoHJlZ2FyZGxlc3Mgb2YgdGhlIFBNRCB1c2VkLiBUaGF0 J3MgYWxyZWFkeSB0aGUgY2FzZS4KPiDCoMKgwqDCoAo+IMKgwqDCoMKgPiBJbiBhZGRpdGlvbiwg aW4geW91ciBjb21taXQgZGVzY3JpcHRpb24sIHlvdSBzYWlkICIgVGhlIHZteG5ldDMKPiDCoMKg wqDCoD4gZHJpdmVyIGNhbid0IGNhbGwgYmFjayBpbnRvIGRldl9jbG9zZSgpLCBhbmQgcG9zc2li bHkKPiBkZXZfc3RvcCgpLCBpbgo+IMKgwqDCoMKgPiBkZXZfdW5pbml0KCkuIiBCdXQgYWN0dWFs bHkgaW4gdm14bmV0M19kZXZfY2xvc2UoKSwgd2Ugc2V0IGh3LQo+IMKgwqDCoMKgPiA+YWRhcHRl cl9zdG9wcGVkID0gMSwgYW5kIGluIGV0aF92bXhuZXQzX2Rldl91bmluaXQoKSB3ZSBjYWxsCj4g aW50bwo+IMKgwqDCoMKgPiB2bXhuZXQzX2Rldl9jbG9zZSgpIE9OTFkgd2hlbiBody0+YWRhcHRl cl9zdG9wcGVkID09IDAuIFNvIGlmCj4gdGhlCj4gwqDCoMKgwqA+IGFwcGxpY2F0aW9uIGRvZXMg bWVldCB0aGUgaG90LXBsdWcgZnJhbWV3b3JrIHJlcXVpcmVtZW50IGFuZAo+IGNhbGxzCj4gwqDC oMKgwqA+IGRldl9jbG9zZSBiZWZvcmUgY2FsbGluZyB1bmluaXQsIGV0aF92bXhuZXQzX2Rldl91 bmluaXQoKQo+IHNob3VsZCBub3QKPiDCoMKgwqDCoD4gY2FsbCBpbnRvIHZteG5ldDNfZGV2X2Ns b3NlKCkgYWdhaW4sIHJpZ2h0PyBJZiBzbywgd2h5IGJvdGhlcgo+IMKgwqDCoMKgPiByZW1vdmlu ZyB0aGlzIGNoZWNrP8KgCj4gwqDCoMKgwqA+wqAKPiDCoMKgwqDCoD4gT3IgbGV0IG1lIGFzayB0 aGlzIHdheS4gSWYgYSBidWdneSBhcHBsaWNhdGlvbiBET0VTIE5PVCBjYWxsCj4gwqDCoMKgwqA+ IGRldl9jbG9zZSBiZWZvcmUgY2FsbGluZyBldGhfdm14bmV0M19kZXZfdW5pbml0KCksIHdvdWxk Cj4gY2FsbGluZwo+IMKgwqDCoMKgPiB2bXhuZXQzX2Rldl9jbG9zZSgpIGluc2lkZSBldGhfdm14 bmV0M19kZXZfdW5pbml0KCkgY2F1c2UgYW55Cj4gwqDCoMKgwqA+IHRyb3VibGU/IEFuZCBpZiBh biBhcHBsaWNhdGlvbiBET0VTIGNhbGwgZGV2X2Nsb3NlIGJlZm9yZQo+IGNhbGxpbmcKPiDCoMKg wqDCoD4gZXRoX3ZteG5ldDNfZGV2X3VuaW5pdCgpLCBoYXZlIHlvdSBldmVyIHNlZW4KPiB2bXhu ZXQzX2Rldl9jbG9zZSgpCj4gwqDCoMKgwqA+IGJlaW5nIGNhbGxlZCBhZ2FpbiBhbmQgdHJpZ2dl ciBjcmFzaGVzIGxpa2UgZG91YmxlLWZyZWUgb3IKPiBzb21ldGhpbmcKPiDCoMKgwqDCoD4gZWxz ZT8gSWYgeWVzLCB0aGVuIHdlIG5lZWQgdG8gaW52ZXN0aWdhdGUuCj4gwqDCoMKgwqA+wqAKPiDC oMKgwqDCoD4gVGhhbmtzCj4gwqDCoMKgwqA+IExvdWlzCj4gwqDCoMKgwqAKPiDCoMKgwqDCoFRo ZSBwcm9ibGVtIGlzIHRoYXQgdGhlcmUgYXJlIG1hbnkgUE1Ecywgc28gdGhlIGd1aWRlbGluZXMg aGF2ZQo+IHRvIGJlCj4gwqDCoMKgwqBmb2xsb3dlZCAtIHNvIHN0b3AgYW5kIGNsb3NlIGhhdmUg dG8gYmUgY2FsbGVkIGFueXdheSBiZWZvcmUKPiBkZXRhY2guCj4gwqDCoMKgwqBPdGhlcndpc2Ug cnVubmluZyB3aXRoIG90aGVyIFBNRHMgd2lsbCBicmVhayB0aGUgYXBwbGljYXRpb24uIFNvCj4g bm90Cj4gwqDCoMKgwqBjYWxsaW5nIGNsb3NlIGlzIG5vdCByZWFsbHkgYW4gb3B0aW9uIGZvciBh biBhcHBsaWNhdGlvbi4KPiDCoMKgwqDCoAo+IMKgwqDCoMKgQnV0IHRoZSBtYWluIGlzc3VlIGhl cmUgaXMgdGhlIGxlYWtpbmcgb2YgdGhlIHF1ZXVlcywgd2hpY2ggdGhpcwo+IHBhdGNoCj4gwqDC oMKgwqBmaXhlcy4gQnkgcmUtYXJyYW5naW5nIHRoZSBzdG9wL2Nsb3NlL3VuaW5pdCBsaWtlIHRo aXMsIHF1ZXVlcwo+IGNhbiBiZQo+IMKgwqDCoMKgY29ycmVjdGx5IGZyZWVkIGFuZCB0aHVzIHdl IGNhbiBob3RwbHVnL3VucGx1ZyBkZXZpY2VzIHdpdGhvdXQKPiBsZWFraW5nCj4gwqDCoMKgwqBt YXNzaXZlIGFtb3VudHMgb2YgbWVtb3J5Lgo+IMKgwqDCoMKgCj4gwqDCoMKgwqBNeSBjb2xsZWFn dWUgQnJpYW4sIHdobyB3cm90ZSB0aGUgcGF0Y2ggYW5kIEkgQ0MnZWQsIG1pZ2h0IGhhdmUKPiBt b3JlCj4gwqDCoMKgwqBpbmZvcm1hdGlvbiBpZiB5b3UgbmVlZCBpdC4KPiDCoMKgwqDCoAo+IMKg wqDCoMKgPiBPbiA5LzE4LzE4LCA2OjE1IEFNLCAiTHVjYSBCb2NjYXNzaSIgPGJsdWNhQGRlYmlh bi5vcmc+IHdyb3RlOgo+IMKgwqDCoMKgPsKgCj4gwqDCoMKgwqA+wqDCoMKgwqDCoEhpLAo+IMKg wqDCoMKgPsKgwqDCoMKgwqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgVGhlIGFwcGxpY2F0aW9uIG11 c3QgYWxyZWFkeSBzdG9wIGFuZCBjbG9zZSBiZWZvcmUKPiBkZXRhY2hpbmcKPiDCoMKgwqDCoD4g KHdoaWNoCj4gwqDCoMKgwqA+wqDCoMKgwqDCoHdpbGwgY2FsbCB1bmluaXQpLiBRdW90aW5nIGZy b20gdGhlIGRvY3VtZW50YXRpb246Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKg wqDCoMKgwqAiKsKgwqBCZWZvcmUgZGV0YWNoaW5nLCB0aGV5IG11c3QgYmUgc3RvcHBlZCBhbmQg Y2xvc2VkLgo+IMKgwqDCoMKgPsKgwqDCoMKgwqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgwqDCoMKg wqBEUERLIGFwcGxpY2F0aW9ucyBtdXN0IGNhbGwgInJ0ZV9ldGhfZGV2X3N0b3AoKSIgYW5kCj4g wqDCoMKgwqA+wqDCoMKgwqDCoMKgwqDCoMKgInJ0ZV9ldGhfZGV2X2Nsb3NlKCkiIEFQSXMgYmVm b3JlIGRldGFjaGluZyBwb3J0cy4KPiBUaGVzZQo+IMKgwqDCoMKgPiBmdW5jdGlvbnMgd2lsbAo+ IMKgwqDCoMKgPsKgwqDCoMKgwqDCoMKgwqDCoHN0YXJ0IGZpbmFsaXphdGlvbiBzZXF1ZW5jZSBv ZiB0aGUgUE1Ecy4iCj4gwqDCoMKgwqA+wqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqBo dHRwczovL25hMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNB JQo+IDJGJTJGZAo+IMKgwqDCoMKgPgo+IG9jLmRwZGsub3JnJTJGZ3VpZGVzJTJGcHJvZ19ndWlk ZSUyRnBvcnRfaG90cGx1Z19mcmFtZXdvcmsuaHRtbCZhbXA7ZAo+IMKgwqDCoMKgPgo+IGF0YT0w MiU3QzAxJTdDbGxvdWlzJTQwdm13YXJlLmNvbSU3QzNkODdhNTQ4MmNkMDQ2Njc5ZDc2MDhkNjFk NjhiZjlhJQo+IMKgwqDCoMKgPgo+IDdDYjM5MTM4Y2EzY2VlNGI0YWE0ZDZjZDgzZDlkZDYyZjAl N0MxJTdDMCU3QzYzNjcyODczMzA3ODcwMDkxMSZhbXA7cwo+IMKgwqDCoMKgPgo+IGRhdGE9cUJ4 N3p5T0poVG1WSDBjMlpFQm9obUlITDZQa1l3QjZYUGF3MmVwZ1MwRSUzRCZhbXA7cmVzZXJ2ZWQ9 MAo+IMKgwqDCoMKgPsKgwqDCoMKgwqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgT24gTW9uLCAyMDE4 LTA5LTE3IGF0IDE5OjA2ICswMDAwLCBMb3VpcyBMdW8gd3JvdGU6Cj4gwqDCoMKgwqA+wqDCoMKg wqDCoD4gSGkgTHVjYSwKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgCj4gwqDCoMKgwqA+wqDCoMKg wqDCoD4gV2hlbiBldGhfdm14bmV0M19kZXZfdW5pbml0KCkgaXMgY2FsbGVkLCBpcyBpdCBndWFy YW50ZWVkCj4gdGhhdAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+IHZteG5ldDNfZGV2X2Nsb3NlLyB2 bXhuZXQzX2Rldl9zdG9wIG11c3QgaGF2ZSBiZWVuCj4gY2FsbGVkPyBJJ20KPiDCoMKgwqDCoD4g bm90Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD4gZmFtaWxpYXIgd2l0aCB0aGUgaG90LXBsdWcgcHJv Y2VkdXJlLCBzbyBqdXN0IHdvbmRlciBpZgo+IHRoZXJlCj4gwqDCoMKgwqA+IGlzIGFueQo+IMKg wqDCoMKgPsKgwqDCoMKgwqA+IGNoYW5jZSB0aGF0IGV0aF92bXhuZXQzX2Rldl91bmluaXQoKSBp cyBjYWxsZWQgd2l0aG91dAo+IGNhbGxpbmcKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPiB2bXhuZXQz X2Rldl9jbG9zZS8gdm14bmV0M19kZXZfc3RvcC4KPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgCj4g wqDCoMKgwqA+wqDCoMKgwqDCoD4gVGhhbmtzLAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+IExvdWlz Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+IE9uIDgvMTYv MTgsIDY6NTEgQU0sICJkZXYgb24gYmVoYWxmIG9mIEx1Y2EgQm9jY2Fzc2kiCj4gPGRldi1ib3Vu Cj4gwqDCoMKgwqA+IGNlc0BkCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD4gcGRrLm9yZyBvbiBiZWhh bGYgb2YgYmx1Y2FAZGViaWFuLm9yZz4gd3JvdGU6Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoAo+ IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoFRoZSB2bXhuZXQzIGRyaXZlciBjYW4ndCBj YWxsIGJhY2sgaW50byBkZXZfY2xvc2UoKSwKPiBhbmQKPiDCoMKgwqDCoD4gcG9zc2libHkKPiDC oMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqBkZXZfc3RvcCgpLCBpbiBkZXZfdW5pbml0KCku wqDCoFdoZW4gZGV2X3VuaW5pdCgpIGlzCj4gY2FsbGVkLAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+ IGFueXRoaW5nCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgdGhhdCB0aG9zZSByb3V0 aW5lcyB3b3VsZCB3YW50IHRvIGNsZWFuIHVwIGhhcwo+IGFscmVhZHkgYmVlbgo+IMKgwqDCoMKg PsKgwqDCoMKgwqA+IHJlbGVhc2VkLgo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoEZ1 cnRoZXIsIGZvciBjb21wbGV0ZSBjbGVhbnVwLCBpdCBpcyBuZWNlc3NhcnkgdG8KPiByZWxlYXNl Cj4gwqDCoMKgwqA+IGFueSBvZgo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+IHRoZQo+IMKgwqDCoMKg PsKgwqDCoMKgwqA+wqDCoMKgwqDCoHF1ZXVlIHJlc291cmNlcyBkdXJpbmcgZGV2X2Nsb3NlKCku Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgVGhpcyBhbGxvd3MgYSB2bXhuZXQzIGRl dmljZSB0byBiZSBob3QtdW5wbHVnZ2VkCj4gd2l0aG91dAo+IMKgwqDCoMKgPiBsZWFraW5nCj4g wqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgcXVldWVzLgo+IMKgwqDCoMKgPsKgwqDCoMKg wqA+wqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoEZpeGVzOiBkZmFm ZjM3ZmM0NmQgKCJ2bXhuZXQzOiBpbXBvcnQgbmV3IHZteG5ldDMKPiBwb2xsIG1vZGUKPiDCoMKg wqDCoD7CoMKgwqDCoMKgPiBkcml2ZXIgaW1wbGVtZW50YXRpb24iKQo+IMKgwqDCoMKgPsKgwqDC oMKgwqA+wqDCoMKgwqDCoENjOiBzdGFibGVAZHBkay5vcmcKPiDCoMKgwqDCoD7CoMKgwqDCoMKg PsKgwqDCoMKgwqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqBTaWduZWQtb2ZmLWJ5 OiBCcmlhbiBSdXNzZWxsIDxicnVzc2VsbEBicm9jYWRlLmNvbT4KPiDCoMKgwqDCoD7CoMKgwqDC oMKgPsKgwqDCoMKgwqBTaWduZWQtb2ZmLWJ5OiBMdWNhIEJvY2Nhc3NpIDxibHVjYUBkZWJpYW4u b3JnPgo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoC0tLQo+IMKgwqDCoMKgPsKgwqDC oMKgwqA+wqDCoMKgwqDCoMKgZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jIHwg MzYKPiDCoMKgwqDCoD4gKysrKysrKysrKysrKysrKysrKysKPiDCoMKgwqDCoD7CoMKgwqDCoMKg PiAtLS0tLS0tLQo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgMSBmaWxlIGNoYW5n ZWQsIDI2IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQo+IMKgwqDCoMKgPsKgwqDCoMKg wqA+wqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoGRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMKPiDCoMKgwqDCoD7CoMKgwqDC oMKgPiBiL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYwo+IMKgwqDCoMKgPsKg wqDCoMKgwqA+wqDCoMKgwqDCoGluZGV4IDI2MTNjZDEzNTguLmI1ZDRiZTVlMjQgMTAwNjQ0Cj4g wqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgLS0tIGEvZHJpdmVycy9uZXQvdm14bmV0My92 bXhuZXQzX2V0aGRldi5jCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgKysrIGIvZHJp dmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7C oMKgwqDCoMKgQEAgLTM0OCwxNiArMzQ4LDExIEBAIGV0aF92bXhuZXQzX2Rldl9pbml0KHN0cnVj dAo+IMKgwqDCoMKgPiBydGVfZXRoX2Rldgo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+ICpldGhfZGV2 KQo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgc3RhdGljIGludAo+IMKgwqDCoMKg PsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgZXRoX3ZteG5ldDNfZGV2X3VuaW5pdChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmV0aF9kZXYpCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqB7Cj4g wqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgLQlzdHJ1Y3Qgdm14bmV0M19odyAqaHcgPSBl dGhfZGV2LT5kYXRhLQo+IMKgwqDCoMKgPiA+ZGV2X3ByaXZhdGU7Cj4gwqDCoMKgwqA+wqDCoMKg wqDCoD7CoMKgwqDCoMKgLQo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgCVBNRF9J TklUX0ZVTkNfVFJBQ0UoKTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoAo+IMKg wqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgp ICE9Cj4gUlRFX1BST0NfUFJJTUFSWSkKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDC oAkJcmV0dXJuIDA7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqAKPiDCoMKgwqDC oD7CoMKgwqDCoMKgPsKgwqDCoMKgwqAtCWlmIChody0+YWRhcHRlcl9zdG9wcGVkID09IDApCj4g wqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgLQkJdm14bmV0M19kZXZfY2xvc2UoZXRoX2Rl dik7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgLQo+IMKgwqDCoMKgPsKgwqDCoMKg wqA+wqDCoMKgwqDCoMKgCWV0aF9kZXYtPmRldl9vcHMgPSBOVUxMOwo+IMKgwqDCoMKgPsKgwqDC oMKgwqA+wqDCoMKgwqDCoMKgCWV0aF9kZXYtPnJ4X3BrdF9idXJzdCA9IE5VTEw7Cj4gwqDCoMKg wqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJZXRoX2Rldi0+dHhfcGt0X2J1cnN0ID0gTlVMTDsK PiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqBAQCAtODAzLDcgKzc5OCw3IEBAIHZteG5l dDNfZGV2X3N0b3Aoc3RydWN0Cj4gcnRlX2V0aF9kZXYKPiDCoMKgwqDCoD4gKmRldikKPiDCoMKg wqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoAlQTURfSU5JVF9GVU5DX1RSQUNFKCk7Cj4gwqDC oMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDC oMKgwqDCoAlpZiAoaHctPmFkYXB0ZXJfc3RvcHBlZCA9PSAxKSB7Cj4gwqDCoMKgwqA+wqDCoMKg wqDCoD7CoMKgwqDCoMKgLQkJUE1EX0lOSVRfTE9HKERFQlVHLCAiRGV2aWNlIGFscmVhZHkKPiDC oMKgwqDCoD4gY2xvc2VkLiIpOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoCsJCVBN RF9JTklUX0xPRyhERUJVRywgIkRldmljZSBhbHJlYWR5Cj4gwqDCoMKgwqA+IHN0b3BwZWQuIik7 Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJCXJldHVybjsKPiDCoMKgwqDCoD7C oMKgwqDCoMKgPsKgwqDCoMKgwqDCoAl9Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKg wqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqBAQCAtODI3LDcgKzgyMiw2IEBAIHZt eG5ldDNfZGV2X3N0b3Aoc3RydWN0Cj4gcnRlX2V0aF9kZXYKPiDCoMKgwqDCoD4gKmRldikKPiDC oMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoAkvKiByZXNldCB0aGUgZGV2aWNlICovCj4g wqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJVk1YTkVUM19XUklURV9CQVIxX1JFRyho dywgVk1YTkVUM19SRUdfQ01ELAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+IFZNWE5FVDNfQ01EX1JF U0VUX0RFVik7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJUE1EX0lOSVRfTE9H KERFQlVHLCAiRGV2aWNlIHJlc2V0LiIpOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDC oC0JaHctPmFkYXB0ZXJfc3RvcHBlZCA9IDA7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDC oMKgwqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoAl2bXhuZXQzX2Rldl9jbGVh cl9xdWV1ZXMoZGV2KTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoAo+IMKgwqDC oMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoEBAIC04MzcsNiArODMxLDMwIEBAIHZteG5ldDNfZGV2 X3N0b3Aoc3RydWN0Cj4gcnRlX2V0aF9kZXYKPiDCoMKgwqDCoD4gKmRldikKPiDCoMKgwqDCoD7C oMKgwqDCoMKgPsKgwqDCoMKgwqDCoAlsaW5rLmxpbmtfc3BlZWQgPSBFVEhfU1BFRURfTlVNXzEw RzsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoAlsaW5rLmxpbmtfYXV0b25lZyA9 IEVUSF9MSU5LX0ZJWEVEOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgCXJ0ZV9l dGhfbGlua3N0YXR1c19zZXQoZGV2LCAmbGluayk7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKg wqDCoMKgKwo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoCsJaHctPmFkYXB0ZXJfc3Rv cHBlZCA9IDE7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgK30KPiDCoMKgwqDCoD7C oMKgwqDCoMKgPsKgwqDCoMKgwqArCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgK3N0 YXRpYyB2b2lkCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgK3ZteG5ldDNfZnJlZV9x dWV1ZXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKg wqDCoMKgK3sKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqArCWludCBpOwo+IMKgwqDC oMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoCsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKg wqArCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKg wqArCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgKwlmb3IgKGkgPSAwOyBpIDwgZGV2 LT5kYXRhLT5uYl9yeF9xdWV1ZXM7Cj4gaSsrKSB7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKg wqDCoMKgKwkJdm9pZCAqcnhxID0gZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV07Cj4gwqDCoMKgwqA+ wqDCoMKgwqDCoD7CoMKgwqDCoMKgKwo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoCsJ CXZteG5ldDNfZGV2X3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKg PsKgwqDCoMKgwqArCX0KPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqArCWRldi0+ZGF0 YS0+bmJfcnhfcXVldWVzID0gMDsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqArCj4g wqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgKwlmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRh LT5uYl90eF9xdWV1ZXM7Cj4gaSsrKSB7Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKg KwkJdm9pZCAqdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV07Cj4gwqDCoMKgwqA+wqDCoMKg wqDCoD7CoMKgwqDCoMKgKwo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoCsJCXZteG5l dDNfZGV2X3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDC oMKgwqArCX0KPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqArCWRldi0+ZGF0YS0+bmJf dHhfcXVldWVzID0gMDsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoH0KPiDCoMKg wqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKg wqDCoMKgLyoKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqBAQCAtODQ1LDEyICs4NjMs MTAgQEAgdm14bmV0M19kZXZfc3RvcChzdHJ1Y3QKPiBydGVfZXRoX2Rldgo+IMKgwqDCoMKgPiAq ZGV2KQo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgc3RhdGljIHZvaWQKPiDCoMKg wqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoHZteG5ldDNfZGV2X2Nsb3NlKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2KQo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgewo+IMKgwqDC oMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoC0Jc3RydWN0IHZteG5ldDNfaHcgKmh3ID0gZGV2LT5k YXRhLQo+ID5kZXZfcHJpdmF0ZTsKPiDCoMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqAtCj4g wqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqAJUE1EX0lOSVRfRlVOQ19UUkFDRSgpOwo+ IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgCj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7C oMKgwqDCoMKgwqAJdm14bmV0M19kZXZfc3RvcChkZXYpOwo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+ wqDCoMKgwqDCoC0JaHctPmFkYXB0ZXJfc3RvcHBlZCA9IDE7Cj4gwqDCoMKgwqA+wqDCoMKgwqDC oD7CoMKgwqDCoMKgKwl2bXhuZXQzX2ZyZWVfcXVldWVzKGRldik7Cj4gwqDCoMKgwqA+wqDCoMKg wqDCoD7CoMKgwqDCoMKgwqB9Cj4gwqDCoMKgwqA+wqDCoMKgwqDCoD7CoMKgwqDCoMKgwqAKPiDC oMKgwqDCoD7CoMKgwqDCoMKgPsKgwqDCoMKgwqDCoHN0YXRpYyB2b2lkCj4gwqDCoMKgwqA+wqDC oMKgwqDCoD7CoMKgwqDCoMKgLS3CoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoDIu MTguMAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKg wqA+wqDCoMKgwqDCoAo+IMKgwqDCoMKgPsKgwqDCoMKgwqA+wqAKPiDCoMKgwqDCoD7CoMKgwqDC oMKgCj4gwqDCoMKgwqA+wqDCoMKgwqDCoC0twqAKPiDCoMKgwqDCoD7CoMKgwqDCoMKgS2luZCBy ZWdhcmRzLAo+IMKgwqDCoMKgPsKgwqDCoMKgwqBMdWNhIEJvY2Nhc3NpCj4gwqDCoMKgwqA+wqAK PiDCoMKgwqDCoAo+IMKgwqDCoMKgLS3CoAo+IMKgwqDCoMKgS2luZCByZWdhcmRzLAo+IMKgwqDC oMKgTHVjYSBCb2NjYXNzaQo+IAoKLS0gCktpbmQgcmVnYXJkcywKTHVjYSBCb2NjYXNzaV==