From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.jd.com (smtp.jd.com [58.83.206.59]) by dpdk.org (Postfix) with ESMTP id 5B9EE1B1EE for ; Fri, 20 Oct 2017 11:25:02 +0200 (CEST) Received: from MBX05.360buyAD.local ([fe80::7043:229a:8a1b:2ced]) by HUB01.360buyAD.local ([fe80::c000:44d0:b80f:bcb%13]) with mapi id 14.03.0361.001; Fri, 20 Oct 2017 17:24:56 +0800 From: =?utf-8?B?546L5b+X5YWL?= To: "Tan, Jianfeng (jianfeng.tan@intel.com)" , "avi.cohen@huawei.com" , "dpdk-ovs@lists.01.org" , "users@dpdk.org" Thread-Topic: Re: VIRTIO for containers Thread-Index: AdNJhUnwGdOUL0NNS36cWazSUUgzHg== Date: Fri, 20 Oct 2017 09:24:55 +0000 Message-ID: <6DAF063A35010343823807B082E5681F41D22305@mbx05.360buyAD.local> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.17.27.83] MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-users] VIRTIO for containers X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Oct 2017 09:25:07 -0000 SSByZWFkIHRoaXMgdGhyZWFkLCBhbmQgdHJ5IHRvIGRvIHRoZSBzYW1lIHdheSAobGVnYWN5IGNv bnRhaW5lcnMgY29ubmVjdCB0byBvdnMrZHBkaykuIEhvd2V2ZXIsIEkgbWVldCBmb2xsb3dpbmcg ZXJyb3Igd2hlbiBjcmVhdGluZyBvdnMgcG9ydC4NCg0Kb3ZzLXZzY3RsIGFkZC1wb3J0IGJyMCB2 aXJ0aW91c2VyMCAtLSBzZXQgSW50ZXJmYWNlIHZpcnRpb3VzZXIwIHR5cGU9ZHBkayBvcHRpb25z OmRwZGstZGV2YXJncz1uZXRfdmlydGlvX3VzZXIwLHBhdGg9L2Rldi92aG9zdC1uZXQNCm92cy12 c2N0bDogRXJyb3IgZGV0ZWN0ZWQgd2hpbGUgc2V0dGluZyB1cCAndmlydGlvdXNlcjAnOiBFcnJv ciBhdHRhY2hpbmcgZGV2aWNlICduZXRfdmlydGlvX3VzZXIwLHBhdGg9L2Rldi92aG9zdC1uZXQn IHRvIERQREsuICBTZWUgb3ZzLXZzd2l0Y2hkIGxvZyBmb3IgZGV0YWlscy4NCm92cy12c2N0bDog VGhlIGRlZmF1bHQgbG9nIGRpcmVjdG9yeSBpcyAiL3Zhci9sb2cvb3BlbnZzd2l0Y2giLg0KDQpE ZWJ1ZyBzaG93cyB0aGF0IGl0IGNhbGxzIHZpcnRpb191c2VyX2Rldl9pbml0KCktPnZob3N0X3Vz ZXJfc2V0dXAoKSwgYW5kIGZhaWxlZCBpbiBjb25uZWN0KCkgd2l0aCB0YXJnZXQgL2Rldi92aG9z dC1uZXQuIFRoZSBlcnJubyBpcyBFQ09OTlJFRlVTRUQuDQpCZWxvdyBjb21tYW5kIGluZGVlZCBz aG93cyBubyBvbmUgaXMgbGlzdGVuaW5nLg0KbHNvZiB8IGdyZXAgdmhvc3QtbmV0DQoNCkluIGtl cm5lbCBPVlMsIEkgZ3Vlc3MgcWVtdS1rdm0gd291bGQgbGlzdG5lIHRvIC9kZXYvdmhvc3QtbmV0 LiBCdXQgZm9yIG92c19kcGRrIGFuZCBjb250YWluZXIsIHdoYXQgZXh0cmEgd29yayBuZWVkIGJl IGRvbmU/IEFwcHJlY2lhdGUgYW55IGhlbHAuDQoNCkJyLA0KV2FuZyBaaGlrZQ0KDQoNCg0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KDQo+IEZyb206IEF2aSBDb2hlbiAoQSkgW21haWx0 bzphdmkuY29oZW4gYXQgaHVhd2VpLmNvbTxodHRwOi8vZHBkay5vcmcvbWwvbGlzdGluZm8vdXNl cnM+XQ0KDQo+IFNlbnQ6IFN1bmRheSwgSnVseSA5LCAyMDE3IDExOjMyIFBNDQoNCj4gVG86IFRh biwgSmlhbmZlbmc7IGRwZGstb3ZzIGF0IGxpc3RzLjAxLm9yZzxodHRwOi8vZHBkay5vcmcvbWwv bGlzdGluZm8vdXNlcnM+OyB1c2VycyBhdCBkcGRrLm9yZzxodHRwOi8vZHBkay5vcmcvbWwvbGlz dGluZm8vdXNlcnM+DQoNCj4gU3ViamVjdDogUkU6IFZJUlRJTyBmb3IgY29udGFpbmVycw0KDQo+ DQoNCj4gVGhhbmtzIHlvdSBKaWFuZmVuZyAtIHBscyBzZWUgaW5saW5lIG1hcmtlZCAgW0F2aSBD b2hlbiAoQSldDQoNCj4NCg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQoNCj4gPiBG cm9tOiBUYW4sIEppYW5mZW5nIFttYWlsdG86amlhbmZlbmcudGFuIGF0IGludGVsLmNvbTxodHRw Oi8vZHBkay5vcmcvbWwvbGlzdGluZm8vdXNlcnM+XQ0KDQo+ID4gU2VudDogTW9uZGF5LCAwMyBK dWx5LCAyMDE3IDEwOjIyIEFNDQoNCj4gPiBUbzogQXZpIENvaGVuIChBKTsgZHBkay1vdnMgYXQg bGlzdHMuMDEub3JnPGh0dHA6Ly9kcGRrLm9yZy9tbC9saXN0aW5mby91c2Vycz47IHVzZXJzIGF0 IGRwZGsub3JnPGh0dHA6Ly9kcGRrLm9yZy9tbC9saXN0aW5mby91c2Vycz4NCg0KPiA+IFN1Ympl Y3Q6IFJFOiBWSVJUSU8gZm9yIGNvbnRhaW5lcnMNCg0KPiA+DQoNCj4gPg0KDQo+ID4NCg0KPiA+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCg0KPiA+ID4gRnJvbTogQXZpIENvaGVuIChB KSBbbWFpbHRvOmF2aS5jb2hlbiBhdCBodWF3ZWkuY29tPGh0dHA6Ly9kcGRrLm9yZy9tbC9saXN0 aW5mby91c2Vycz5dDQoNCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAyOCwgMjAxNyAyOjQ1 IFBNDQoNCj4gPiA+IFRvOiBUYW4sIEppYW5mZW5nOyBkcGRrLW92cyBhdCBsaXN0cy4wMS5vcmc8 aHR0cDovL2RwZGsub3JnL21sL2xpc3RpbmZvL3VzZXJzPjsgdXNlcnMgYXQgZHBkay5vcmc8aHR0 cDovL2RwZGsub3JnL21sL2xpc3RpbmZvL3VzZXJzPg0KDQo+ID4gPiBTdWJqZWN0OiBSRTogVklS VElPIGZvciBjb250YWluZXJzDQoNCj4gPiA+DQoNCj4gPiA+IFRoYW5rIHlvdSBKaWFuZmVuZw0K DQo+ID4gPg0KDQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQoNCj4gPiA+ID4g RnJvbTogVGFuLCBKaWFuZmVuZyBbbWFpbHRvOmppYW5mZW5nLnRhbiBhdCBpbnRlbC5jb208aHR0 cDovL2RwZGsub3JnL21sL2xpc3RpbmZvL3VzZXJzPl0NCg0KPiA+ID4gPiBTZW50OiBUdWVzZGF5 LCAyNyBKdW5lLCAyMDE3IDU6MjIgUE0NCg0KPiA+ID4gPiBUbzogQXZpIENvaGVuIChBKTsgZHBk ay1vdnMgYXQgbGlzdHMuMDEub3JnPGh0dHA6Ly9kcGRrLm9yZy9tbC9saXN0aW5mby91c2Vycz47 IHVzZXJzIGF0IGRwZGsub3JnPGh0dHA6Ly9kcGRrLm9yZy9tbC9saXN0aW5mby91c2Vycz4NCg0K PiA+ID4gPiBTdWJqZWN0OiBSZTogVklSVElPIGZvciBjb250YWluZXJzDQoNCj4gPiA+ID4NCg0K PiA+ID4gPg0KDQo+ID4gPiA+DQoNCj4gPiA+ID4gT24gNi8yNi8yMDE3IDg6MDYgUE0sIEF2aSBD b2hlbiAoQSkgd3JvdGU6DQoNCj4gPiA+ID4gPiBUaGFuayBZb3UgSmlhbmZlbmcNCg0KPiA+ID4g PiA+DQoNCj4gPiA+ID4gPj4gV2UgaGF2ZSBkZXZlbG9wZWQgdmlydGlvLXVzZXIgKyB2aG9zdC1r ZXJuZWwgYXMgdGhlIGJhY2tlbmQuIEluDQoNCj4gPiA+ID4gPj4gdGhhdCBzY2VuYXJpbywgeW91 IGNhbiBhZGQgdGhlIHRhcCBpbnRlcmZhY2UgaW50byBhIGNvbnRhaW5lcg0KDQo+ID4gPiA+ID4+ IG5ldHdvcmsNCg0KPiA+ID4gPiBuYW1lc3BhY2UuDQoNCj4gPiA+ID4gPj4gQW5kIHRoZXJlJ3Mg YSB2aG9zdCBrdGhyZWFkIHRvIHB1c2ggdGhlIGRhdGEgb3V0IHRvIHVzZXIgc3BhY2UuDQoNCj4g PiA+ID4gPj4NCg0KPiA+ID4gPiA+PiBBbmQgSSBjYW5ub3QgZ3VhcmFudGVlIHRoZSBwZXJmb3Jt YW5jZSBhcyBpdCBoYXMgZGlhbWV0cmljIG1vZGVsDQoNCj4gPiA+ID4gPj4gaW4gVk0NCg0KPiA+ ID4gPiA+PiAodmlydGlvKSAtIE9WUy1EUERLICh2aG9zdCkuDQoNCj4gPiA+ID4gPj4NCg0KPiA+ ID4gPiA+IFtBdmkgQ29oZW4gKEEpXQ0KDQo+ID4gPiA+ID4gQ2FuIHlvdSByZWZlciB0byBhIGRv Y3VtZW50IGhvdyB0byBydW4gdGhpcyBzZXR1cD8NCg0KPiA+ID4gPg0KDQo+ID4gPiA+IFBsZWFz ZSByZWZlciB0bw0KDQo+ID4gPiA+DQoNCj4gaHR0cDovL2RwZGsub3JnL2RvYy9ndWlkZXMvaG93 dG8vdmlydGlvX3VzZXJfYXNfZXhjZXB0aW9uYWxfcGF0aC5odG0NCg0KPiA+ID4gPiBsDQoNCj4g PiA+ID4NCg0KPiA+ID4gW0F2aSBDb2hlbiAoQSldDQoNCj4gPiA+IE15IHNldHVwIGluY2x1ZGVz IGEgY29udGFpbmVyIGFuZCBvdnMtZHBkayAsIGkgc3RpbGwgbm90IHN1cmUgYWJvdXQ6DQoNCj4g PiA+ICAtIEhvdyB0byBzZXQgdGhlIHZpcnRpbyBiYWNrZW5kIHBvcnQgaW4gdGhlIG92cy1kcGRr ID8NCg0KPiA+DQoNCj4gPiBGb3IgT1ZTLURQREssIHlvdSBuZWVkIGEgdmVyc2lvbiBhYm92ZSAy LjcuMC4gQmVsb3cgY29tbWFuZCBpcyB1c2VkIHRvDQoNCj4gPiBjcmVhdGUgYSB2aXJ0aW8tdXNl ciBwb3J0IHdpdGggdmhvc3Qta2VybmVsIGJhY2tlbmQ6DQoNCj4gPiAjIG92cy12c2N0bCBhZGQt cG9ydCBicjAgdmlydGlvdXNlcjAgLS0gc2V0IEludGVyZmFjZSB2aXJ0aW91c2VyMCB0eXBlPWRw ZGsNCg0KPiA+IG9wdGlvbnM6ZHBkay1kZXZhcmdzPXZpcnRpb191c2VyMCxwYXRoPS9kZXYvdmhv c3QtbmV0DQoNCj4gPg0KDQo+ID4gPiAgLSBIb3cgdG8gc2V0IHRoZSBjb250YWluZXIgd2l0aCB0 aGUgdmlydGlvIGZyb250ZW5kID8NCg0KPiA+DQoNCj4gPiBObywgY29udGFpbmVycyB3aWxsIG5v dCBob2xkIHRoZSB2aXJ0aW8gZnJvbnRlbmQgaW4gdGhpcyBjYXNlLiBBYm92ZSBvdnMtdnNjdGwN Cg0KPiA+IGNvbW1hbmQgd2lsbCBnZW5lcmF0ZSBhIHZpcnRpby11c2VyIHBvcnQgaW4gT1ZTLCBh bmQgYSB0YXAgaW50ZXJmYWNlIGluDQoNCj4gPiBrZXJuZWwsIHlvdSBjYW4gYXNzaWduIHRoZSB0 YXAgaW50ZXJmYWNlIGludG8gYSBuZXQgbmFtZXNwYWNlIG9mIHNvbWUNCg0KPiA+IGNvbnRhaW5l ciBzbyB0aGF0IGl0cyBuZXR3b3JraW5nIGZsb3cgd2lsbCBnbyB0aHJvdWdoIE9WUy1EUERLIHRo ZW4gdG8NCg0KPiA+IG91dHNpZGUuDQoNCj4gW0F2aSBDb2hlbiAoQSldDQoNCj4gVGhhbmtzIHlv dSBKaWFuZmVuZw0KDQo+IEkndmUgdGVzdGVkIGl0IGFuZCB0aGUgcGVyZm9ybWFuY2UgbG9va3Mg dmVyeSBnb29kIGNvbXBhcmVkIHRvIG5hdGl2ZSBvdnMuDQoNCj4gSSBoYXZlIDEgbW9yZSBxdWVz dGlvbjoNCg0KPiBZb3Ugd3JvdGUgIiB0aGVyZSdzIGEgdmhvc3Qga3RocmVhZCB0byBwdXNoIHRo ZSBkYXRhIG91dCB0byB1c2VyIHNwYWNlICIgLQ0KDQo+IElzIHRoYXQgbWVhbiBhIGNvcHkgZnJv bSB1c2Vyc3BhY2UgdG8ga2VybmVsIChhbmQgdmljZXZlcnNhKSBvciB0aGVyZSBpcyBhDQoNCj4g emVyby1jb3B5IG1tYXAgIGxpa2UgaW4gQUZfUEFDS0VUIHdoaWNoIGhhbmRsZXMgVFgvUlggcmlu Z3MgaW4gdXNlcnNwYWNlID8NCg0KPiBCZXN0IFJlZ2FyZHMNCg0KPiBhdmkNCg0KDQoNClNvIGZh ciBpdCBuZWVkcyBkYXRhIGNvcHkgYXQgbGVhc3QgZnJvbSBrZXJuZWwgdG8gdXNlciBwYXRoOyB0 aGVyZSdzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLCBuYW1lZCBleHBlcmltZW50YWxfemNvcHl0 eCwgdG8gYXZvaWQgZGF0YSBjb3B5LCBidXQgbm90IHZlcnkgdXNlZnVsIGR1ZSB0byB0aGUgaW1w bGVtZW50YXRpb24gbGltaXRhdGlvbi4NCg0KDQoNClBhY2tldCBtbWFwIChzaW1pbGFyIHRvIEFG X1BBQ0tFVCkgaXMgZXhhY3RseSB0aGUgZGlyZWN0aW9uIHdlIHdlcmUgZGlzY3Vzc2luZyBmb3Ig dGhlIGZ1cnRoZXIgb3B0aW1pemF0aW9uLiBQbHVzLCBhbiBvcHRpbWl6ZWQgdmhvc3QgdGhyZWFk IG1vZGVsIChjdXJyZW50IHRocmVhZCBtb2RlbCBpczogb25lIHRocmVhZCBmb3Igb25lIHJ4LXR4 IHF1ZXVlIHBhaXIpIGlzIGFsc28gY29uc2lkZXJlZC4NCg0KDQoNClRoYW5rcywNCg0KSmlhbmZl bmcNCg0KDQoNCj4gPg0KDQo+ID4gVGhhbmtzLA0KDQo+ID4gSmlhbmZlbmcNCg0KPiA+DQoNCj4g PiA+IEJlc3QgUmVnYXJkcw0KDQo+ID4gPiBhdmkNCg0KPiA+ID4NCg0KPiA+ID4gPiBUaGFua3Ms DQoNCj4gPiA+ID4gSmlhbmZlbmcNCg0KPiA+ID4gPg0KDQo+ID4gPiA+ID4gQmVzdCBSZWdhcmRz DQoNCj4gPiA+ID4gPiBhdmkNCg0KPiA+ID4gPiA+Pj4gSSd2ZSB0ZXN0ZWQgdGhlIHBlcmZvcm1h bmNlIG9mIGEgY29udGFpbmVyIGNvbm5lY3RlZCB0byBPVlMtDQoNCj4gRFBESw0KDQo+ID4gPiA+ ID4+PiB2aWEgdmRldi1hZl9wYWNrZXQgIGFuZCBwcm9jZXNzZWQgYnkgdmlydHVhbCBQTUQsIGFu ZCBpdHMNCg0KPiA+ID4gPiA+Pj4gcGVyZm9ybWFuY2UgaXMgZ29vZCBbdXNlcyBtbWFwJ2VkIHRv IHVzZXJzcGFjZSAgLSB6ZXJvIGNvcHkNCg0KPiA+ID4gPiA+Pj4gUlgvVFggcmluZyBidWZmZXJd IGJ1dCBub3QgZ29vZCBhcyAgdGhlIHBlcmZvcm1hbmNlICBvZiBhICBWTQ0KDQo+ID4gPiA+ID4+ PiBjb25uZWN0ZWQgdG8gT1ZTLURQREsgKEBob3N0KSB2aWEgdmhvc3QtdXNlciB2aXJ0aW8uDQoN Cj4gPiA+ID4gPj4+IEJlc3QgUmVnYXJkcw0KDQo+ID4gPiA+ID4+PiBhdmkNCg0KPiA+ID4gPiA+ Pj4NCg0KPiA+ID4gPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQoNCj4gPiA+ID4g Pj4+PiBGcm9tOiBUYW4sIEppYW5mZW5nIFttYWlsdG86amlhbmZlbmcudGFuIGF0IGludGVsLmNv bTxodHRwOi8vZHBkay5vcmcvbWwvbGlzdGluZm8vdXNlcnM+XQ0KDQo+ID4gPiA+ID4+Pj4gU2Vu dDogTW9uZGF5LCAyNiBKdW5lLCAyMDE3IDY6MTUgQU0NCg0KPiA+ID4gPiA+Pj4+IFRvOiBBdmkg Q29oZW4gKEEpOyBkcGRrLW92cyBhdCBsaXN0cy4wMS5vcmc8aHR0cDovL2RwZGsub3JnL21sL2xp c3RpbmZvL3VzZXJzPjsgdXNlcnMgYXQgZHBkay5vcmc8aHR0cDovL2RwZGsub3JnL21sL2xpc3Rp bmZvL3VzZXJzPg0KDQo+ID4gPiA+ID4+Pj4gU3ViamVjdDogUkU6IFZJUlRJTyBmb3IgY29udGFp bmVycw0KDQo+ID4gPiA+ID4+Pj4NCg0KPiA+ID4gPiA+Pj4+IEhpIEF2aSwNCg0KPiA+ID4gPiA+ Pj4+DQoNCj4gPiA+ID4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCg0KPiA+ID4g PiA+Pj4+PiBGcm9tOiB1c2VycyBbbWFpbHRvOnVzZXJzLWJvdW5jZXMgYXQgZHBkay5vcmc8aHR0 cDovL2RwZGsub3JnL21sL2xpc3RpbmZvL3VzZXJzPl0gT24gQmVoYWxmIE9mIEF2aQ0KDQo+ID4g PiBDb2hlbg0KDQo+ID4gPiA+ID4+Pj4+IChBKQ0KDQo+ID4gPiA+ID4+Pj4+IFNlbnQ6IFN1bmRh eSwgSnVuZSAyNSwgMjAxNyAxMToxMyBQTQ0KDQo+ID4gPiA+ID4+Pj4+IFRvOiBkcGRrLW92cyBh dCBsaXN0cy4wMS5vcmc8aHR0cDovL2RwZGsub3JnL21sL2xpc3RpbmZvL3VzZXJzPjsgdXNlcnMg YXQgZHBkay5vcmc8aHR0cDovL2RwZGsub3JnL21sL2xpc3RpbmZvL3VzZXJzPg0KDQo+ID4gPiA+ ID4+Pj4+IFN1YmplY3Q6IFtkcGRrLXVzZXJzXSBWSVJUSU8gZm9yIGNvbnRhaW5lcnMNCg0KPiA+ ID4gPiA+Pj4+Pg0KDQo+ID4gPiA+ID4+Pj4+IEhlbGxvLA0KDQo+ID4gPiA+ID4+Pj4+IERvZXMg IGFueW9uZSBrbm93IHRoZSBzdGF0dXMgb2YgdGhpcyBwcm9qZWN0DQoNCj4gPiA+ID4gPj4+Pj4g aHR0cDovL2RwZGsub3JnL21sL2FyY2hpdmVzL2Rldi8yMDE1LU5vdmVtYmVyLzAyNzczMi5odG1s DQoNCj4gLQ0KDQo+ID4gPiA+ID4+Pj4+IEltcGxlbWVudGluZyBhIHZpcnRpbyBkZXZpY2UgZm9y IGNvbnRhaW5lcnMgPw0KDQo+ID4gPiA+ID4+Pj4gSXQgaGFzIGJlZW4gdXBzdHJlYW1lZCBzaW5j ZSB2MTYuMDcuIEhlcmUgaXMgYSBob3d0byBkb2M6DQoNCj4gPiA+ID4gPj4+Pg0KDQo+ID4gPiA+ ID4+Pg0KDQo+ID4gPiA+DQoNCj4gPiBodHRwOi8vZHBkay5vcmcvZG9jL2d1aWRlcy9ob3d0by92 aXJ0aW9fdXNlcl9mb3JfY29udGFpbmVyX25ldHdvcmtpbmcuDQoNCj4gPiA+ID4gPj4+IGgNCg0K PiA+ID4gPiA+Pj4+IHRtbA0KDQo+ID4gPiA+ID4+Pj4NCg0KPiA+ID4gPiA+Pj4+DQoNCj4gPiA+ ID4gPj4+PiBUaGFua3MsDQoNCj4gPiA+ID4gPj4+PiBKaWFuZmVuZw0KDQo+ID4gPiA+ID4+Pj4N Cg0KPiA+ID4gPiA+Pj4+PiBCZXN0IFJlZ2FyZHMNCg0KPiA+ID4gPiA+Pj4+PiBhdmkNCg0KDQoN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQoNCiAgKiAgIFByZXZpb3VzIG1lc3Nh Z2U6IFtkcGRrLXVzZXJzXSBWSVJUSU8gZm9yIGNvbnRhaW5lcnMgPGh0dHA6Ly9kcGRrLm9yZy9t bC9hcmNoaXZlcy91c2Vycy8yMDE3LUp1bHkvMDAyMTYyLmh0bWw+DQogICogICBOZXh0IG1lc3Nh Z2U6IFtkcGRrLXVzZXJzXSBWSVJUSU8gZm9yIGNvbnRhaW5lcnMgPGh0dHA6Ly9kcGRrLm9yZy9t bC9hcmNoaXZlcy91c2Vycy8yMDE3LUp1bHkvMDAyMTY1Lmh0bWw+DQogICogICBNZXNzYWdlcyBz b3J0ZWQgYnk6IFsgZGF0ZSBdPGh0dHA6Ly9kcGRrLm9yZy9tbC9hcmNoaXZlcy91c2Vycy8yMDE3 LUp1bHkvZGF0ZS5odG1sIzIxNjQ+IFsgdGhyZWFkIF08aHR0cDovL2RwZGsub3JnL21sL2FyY2hp dmVzL3VzZXJzLzIwMTctSnVseS90aHJlYWQuaHRtbCMyMTY0PiBbIHN1YmplY3QgXTxodHRwOi8v ZHBkay5vcmcvbWwvYXJjaGl2ZXMvdXNlcnMvMjAxNy1KdWx5L3N1YmplY3QuaHRtbCMyMTY0PiBb IGF1dGhvciBdPGh0dHA6Ly9kcGRrLm9yZy9tbC9hcmNoaXZlcy91c2Vycy8yMDE3LUp1bHkvYXV0 aG9yLmh0bWwjMjE2ND4NCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCk1vcmUg aW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzZXJzIG1haWxpbmcgbGlzdDxodHRwOi8vZHBkay5vcmcv bWwvbGlzdGluZm8vdXNlcnM+DQo=