From mboxrd@z Thu Jan 1 00:00:00 1970 From: Honnappa Nagarahalli Subject: Re: [PATCH v3 1/3] ring: read tail using atomic load Date: Fri, 5 Oct 2018 20:06:45 +0000 Message-ID: References: <20180807031943.5331-1-gavin.hu@arm.com> <1537172244-64874-1-git-send-email-gavin.hu@arm.com> <20180929104857.GA30457@jerin> <2601191342CEEE43887BDE71AB9772580102FE261A@IRSMSX106.ger.corp.intel.com> <621E373E-048D-4808-8CE8-84373EA98D2F@arm.com> <2601191342CEEE43887BDE71AB9772580102FE2951@IRSMSX106.ger.corp.intel.com> <20181005170725.GA18671@jerin> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "Ananyev, Konstantin" , "Gavin Hu (Arm Technology China)" , "dev@dpdk.org" , Steve Capper , nd , "stable@dpdk.org" To: Ola Liljedahl , Jerin Jacob Return-path: In-Reply-To: Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgSmVyaW4sDQoJVGhhbmsgeW91IGZvciBnZW5lcmF0aW5nIHRoZSBkaXNhc3NlbWJseSwgdGhh dCBpcyByZWFsbHkgaGVscGZ1bC4gSSBhZ3JlZSB3aXRoIHlvdSB0aGF0IHdlIGhhdmUgdGhlIG9w dGlvbiBvZiBtb3ZpbmcgcGFydHMgMiBhbmQgMyBmb3J3YXJkLiBJIHdpbGwgbGV0IEdhdmluIHRh a2UgYSBkZWNpc2lvbi4NCg0KSSBzdWdnZXN0IHRoYXQgd2UgcnVuIGJlbmNobWFya3Mgb24gdGhp cyBwYXRjaCBhbG9uZSBhbmQgaW4gY29tYmluYXRpb24gd2l0aCBvdGhlciBwYXRjaGVzIGluIHRo ZSBzZXJpZXMuIFdlIGhhdmUgZmV3IEFybSBtYWNoaW5lcyBhbmQgd2Ugd2lsbCBydW4gb24gYWxs IG9mIHRoZW0gYWxvbmcgd2l0aCB4ODYuIFdlIHRha2UgYSBkZWNpc2lvbiBiYXNlZCBvbiB0aGF0 Lg0KDQpXb3VsZCB0aGF0IGJlIGEgd2F5IHRvIG1vdmUgZm9yd2FyZD8gSSB0aGluayB0aGlzIHNo b3VsZCBhZGRyZXNzIGJvdGggeW91ciBhbmQgT2xhJ3MgY29uY2VybnMuDQoNCkkgYW0gb3BlbiBm b3Igb3RoZXIgc3VnZ2VzdGlvbnMgYXMgd2VsbC4NCg0KVGhhbmsgeW91LA0KSG9ubmFwcGENCg0K PiANCj4gU28geW91IGRvbid0IHdhbnQgdG8gd3JpdGUgdGhlIHByb3BlciBDMTEgY29kZSBiZWNh dXNlIHRoZSBjb21waWxlcg0KPiBnZW5lcmF0ZXMgb25lIGV4dHJhIGluc3RydWN0aW9uIHRoYXQg d2F5Pw0KPiBZb3UgZG9uJ3QgZXZlbiBrbm93IGlmIHRoYXQgb25lIGV4dHJhIGluc3RydWN0aW9u IGhhcyBhbnkgbWVhc3VyYWJsZQ0KPiBpbXBhY3Qgb24gcGVyZm9ybWFuY2UuIEUuZy4gaXQgY291 bGQgYmUgaXNzdWVkIHRoZSBjeWNsZSBiZWZvcmUgdG9nZXRoZXINCj4gd2l0aCBvdGhlciBpbnN0 cnVjdGlvbnMuDQo+IA0KPiBXZSBjYW4gY29tcGxhaW4gdG8gdGhlIGNvbXBpbGVyIHdyaXRlcnMg dGhhdCB0aGUgY29kZSBnZW5lcmF0aW9uIGZvcg0KPiBfX2F0b21pY19sb2FkX24oLCBfX0FUT01J Q19SRUxBWEVEKSBpcyBub3Qgb3B0aW1hbCAoYXQgbGVhc3Qgb24NCj4gQVJNL0E2NCkuIEkgdGhp bmsgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgX19hdG9taWMgYnVpbHRpbnMgb25seSBhY2NlcHQg YQ0KPiBiYXNlIGFkZHJlc3Mgd2l0aG91dCBhbnkgb2Zmc2V0IGFuZCB0aGlzIGlzIHBvc3NpYmx5 IGJlY2F1c2UgZS5nLiBsb2FkL3N0b3JlDQo+IGV4Y2x1c2l2ZSAoTERYL1NUWCkgYW5kIGxvYWQt YWNxdWlyZSAoTERBUikgYW5kIHN0b3JlLXJlbGVhc2UgKFNUTFIpIG9ubHkNCj4gYWNjZXB0IGEg YmFzZSByZWdpc3RlciB3aXRoIG5vIG9mZnNldC4gU28gYW55IG9mZnNldCBoYXMgdG8gYmUgYWRk ZWQgYmVmb3JlDQo+IHRoZSBhY3R1YWwgImF0b21pYyIgaW5zdHJ1Y3Rpb24sIExEUiBpbiB0aGlz IGNhc2UuDQo+IA0KPiANCj4gLS0gT2xhDQo+IA0KPiANCj4g77u/T24gMDUvMTAvMjAxOCwgMTk6 MDcsICJKZXJpbiBKYWNvYiIgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4NCj4gd3Jv dGU6DQo+IA0KPiAgICAgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gICAgID4gRGF0ZTog RnJpLCA1IE9jdCAyMDE4IDE1OjExOjQ0ICswMDAwDQo+ICAgICA+IEZyb206IEhvbm5hcHBhIE5h Z2FyYWhhbGxpIDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPg0KPiAgICAgPiBUbzogIkFu YW55ZXYsIEtvbnN0YW50aW4iIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPiwgT2xhDQo+ IExpbGplZGFobA0KPiAgICAgPiAgPE9sYS5MaWxqZWRhaGxAYXJtLmNvbT4sICJHYXZpbiBIdSAo QXJtIFRlY2hub2xvZ3kgQ2hpbmEpIg0KPiAgICAgPiAgPEdhdmluLkh1QGFybS5jb20+LCBKZXJp biBKYWNvYiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPg0KPiAgICAgPiBDQzogImRl dkBkcGRrLm9yZyIgPGRldkBkcGRrLm9yZz4sIFN0ZXZlIENhcHBlcg0KPiA8U3RldmUuQ2FwcGVy QGFybS5jb20+LCBuZA0KPiAgICAgPiAgPG5kQGFybS5jb20+LCAic3RhYmxlQGRwZGsub3JnIiA8 c3RhYmxlQGRwZGsub3JnPg0KPiAgICAgPiBTdWJqZWN0OiBSRTogW1BBVENIIHYzIDEvM10gcmlu ZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBsb2FkDQo+ICAgICA+DQo+ICAgICA+ID4gPiAgICAg ICAgID4gSGkgSmVyaW4sDQo+ICAgICA+ID4gPiAgICAgICAgID4NCj4gICAgID4gPiA+ICAgICAg ICAgPiBUaGFua3MgZm9yIHlvdXIgcmV2aWV3LCBpbmxpbmUgY29tbWVudHMgZnJvbSBvdXIgaW50 ZXJuYWwNCj4gICAgID4gPiBkaXNjdXNzaW9ucy4NCj4gICAgID4gPiA+ICAgICAgICAgPg0KPiAg ICAgPiA+ID4gICAgICAgICA+IEJSLiBHYXZpbg0KPiAgICAgPiA+ID4gICAgICAgICA+DQo+ICAg ICA+ID4gPiAgICAgICAgID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiAgICAgPiA+ ID4gICAgICAgICA+ID4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdv cmtzLmNvbT4NCj4gICAgID4gPiA+ICAgICAgICAgPiA+IFNlbnQ6IFNhdHVyZGF5LCBTZXB0ZW1i ZXIgMjksIDIwMTggNjo0OSBQTQ0KPiAgICAgPiA+ID4gICAgICAgICA+ID4gVG86IEdhdmluIEh1 IChBcm0gVGVjaG5vbG9neSBDaGluYSkgPEdhdmluLkh1QGFybS5jb20+DQo+ICAgICA+ID4gPiAg ICAgICAgID4gPiBDYzogZGV2QGRwZGsub3JnOyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiAgICAg PiA+ID4gICAgICAgICA+ID4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+OyBTdGV2ZSBD YXBwZXINCj4gICAgID4gPiA+ICAgICAgICAgPiA+IDxTdGV2ZS5DYXBwZXJAYXJtLmNvbT47IE9s YSBMaWxqZWRhaGwNCj4gPE9sYS5MaWxqZWRhaGxAYXJtLmNvbT47DQo+ICAgICA+ID4gbmQNCj4g ICAgID4gPiA+ICAgICAgICAgPiA+IDxuZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsub3JnDQo+ICAg ICA+ID4gPiAgICAgICAgID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvM10gcmluZzogcmVh ZCB0YWlsIHVzaW5nIGF0b21pYyBsb2FkDQo+ICAgICA+ID4gPiAgICAgICAgID4gPg0KPiAgICAg PiA+ID4gICAgICAgICA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gICAgID4gPiA+ ICAgICAgICAgPiA+ID4gRGF0ZTogTW9uLCAxNyBTZXAgMjAxOCAxNjoxNzoyMiArMDgwMA0KPiAg ICAgPiA+ID4gICAgICAgICA+ID4gPiBGcm9tOiBHYXZpbiBIdSA8Z2F2aW4uaHVAYXJtLmNvbT4N Cj4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gVG86IGRldkBkcGRrLm9yZw0KPiAgICAgPiA+ID4g ICAgICAgICA+ID4gPiBDQzogZ2F2aW4uaHVAYXJtLmNvbSwgSG9ubmFwcGEuTmFnYXJhaGFsbGlA YXJtLmNvbSwNCj4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gc3RldmUuY2FwcGVyQGFybS5jb20s ICBPbGEuTGlsamVkYWhsQGFybS5jb20sDQo+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IGplcmlu LmphY29iQGNhdml1bW5ldHdvcmtzLmNvbSwgbmRAYXJtLmNvbSwNCj4gICAgID4gPiBzdGFibGVA ZHBkay5vcmcNCj4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gU3ViamVjdDogW1BBVENIIHYzIDEv M10gcmluZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBsb2FkDQo+ICAgICA+ID4gPiAgICAgICAg ID4gPiA+IFgtTWFpbGVyOiBnaXQtc2VuZC1lbWFpbCAyLjcuNA0KPiAgICAgPiA+ID4gICAgICAg ICA+ID4gPg0KPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBFeHRlcm5hbCBFbWFpbA0KPiAgICAg PiA+ID4gICAgICAgICA+ID4gPg0KPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBJbiB1cGRhdGVf dGFpbCwgcmVhZCBodC0+dGFpbCB1c2luZw0KPiBfX2F0b21pY19sb2FkLkFsdGhvdWdoIHRoZQ0K PiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBjb21waWxlciBjdXJyZW50bHkgc2VlbXMgdG8gYmUg ZG9pbmcgdGhlIHJpZ2h0IHRoaW5nIGV2ZW4NCj4gd2l0aG91dA0KPiAgICAgPiA+ID4gICAgICAg ICA+ID4gPiBfYXRvbWljX2xvYWQsIHdlIGRvbid0IHdhbnQgdG8gZ2l2ZSB0aGUgY29tcGlsZXIN Cj4gZnJlZWRvbSB0bw0KPiAgICAgPiA+IG9wdGltaXNlDQo+ICAgICA+ID4gPiAgICAgICAgID4g PiA+IHdoYXQgc2hvdWxkIGJlIGFuIGF0b21pYyBsb2FkLCBpdCBzaG91bGQgbm90IGJlIGFyYml0 YXJpbHkNCj4gbW92ZWQNCj4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gYXJvdW5kLg0KPiAgICAg PiA+ID4gICAgICAgICA+ID4gPg0KPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBGaXhlczogMzkz NjhlYmZjNiAoInJpbmc6IGludHJvZHVjZSBDMTEgbWVtb3J5IG1vZGVsDQo+IGJhcnJpZXINCj4g ICAgID4gPiBvcHRpb24iKQ0KPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBDYzogc3RhYmxlQGRw ZGsub3JnDQo+ICAgICA+ID4gPiAgICAgICAgID4gPiA+DQo+ICAgICA+ID4gPiAgICAgICAgID4g PiA+IFNpZ25lZC1vZmYtYnk6IEdhdmluIEh1IDxnYXZpbi5odUBhcm0uY29tPg0KPiAgICAgPiA+ ID4gICAgICAgICA+ID4gPiBSZXZpZXdlZC1ieTogSG9ubmFwcGEgTmFnYXJhaGFsbGkNCj4gICAg ID4gPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4NCj4gICAgID4gPiA+ICAgICAgICAg PiA+ID4gUmV2aWV3ZWQtYnk6IFN0ZXZlIENhcHBlciA8c3RldmUuY2FwcGVyQGFybS5jb20+DQo+ ICAgICA+ID4gPiAgICAgICAgID4gPiA+IFJldmlld2VkLWJ5OiBPbGEgTGlsamVkYWhsIDxPbGEu TGlsamVkYWhsQGFybS5jb20+DQo+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IC0tLQ0KPiAgICAg PiA+ID4gICAgICAgICA+ID4gPiAgbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2MxMV9tZW0uaCB8 IDMgKystDQo+ICAgICA+ID4gPiAgICAgICAgID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ICAgICA+ID4gPiAgICAgICAgID4gPiA+DQo+ICAg ICA+ID4gPiAgICAgICAgID4gVGhlIHJlYWQgb2YgaHQtPnRhaWwgbmVlZHMgdG8gYmUgYXRvbWlj LCBhIG5vbi1hdG9taWMgcmVhZA0KPiB3b3VsZCBub3QNCj4gICAgID4gPiBiZSBjb3JyZWN0Lg0K PiAgICAgPiA+ID4NCj4gICAgID4gPiA+ICAgICAgICAgVGhhdCdzIGEgMzJiaXQgdmFsdWUgbG9h ZC4NCj4gICAgID4gPiA+ICAgICAgICAgQUZBSUsgb24gYWxsIENQVXMgdGhhdCB3ZSBzdXBwb3J0 IGl0IGlzIGFuIGF0b21pYyBvcGVyYXRpb24uDQo+ICAgICA+ID4gPiAgICAgW09sYV0gQnV0IHRo YXQgdGhlIG9yZGluYXJ5IEMgbG9hZCBpcyB0cmFuc2xhdGVkIHRvIGFuIGF0b21pYyBsb2FkDQo+ IGZvciB0aGUNCj4gICAgID4gPiB0YXJnZXQgYXJjaGl0ZWN0dXJlIGlzIGluY2lkZW50YWwuDQo+ ICAgICA+ID4gPg0KPiAgICAgPiA+ID4gICAgIElmIHRoZSBkZXNpZ24gcmVxdWlyZXMgYW4gYXRv bWljIGxvYWQgKHdoaWNoIGlzIHRoZSBjYXNlIGhlcmUpLCB3ZQ0KPiAgICAgPiA+ID4gc2hvdWxk IHVzZSBhbiBhdG9taWMgbG9hZCBvbiB0aGUgbGFuZ3VhZ2UgbGV2ZWwuIFRoZW4gd2UgY2FuIGJl DQo+IHN1cmUgaXQgd2lsbA0KPiAgICAgPiA+IGFsd2F5cyBiZSB0cmFuc2xhdGVkIHRvIGFuIGF0 b21pYyBsb2FkIGZvciB0aGUgdGFyZ2V0IGluIHF1ZXN0aW9uIG9yDQo+ICAgICA+ID4gY29tcGls YXRpb24gd2lsbCBmYWlsLiBXZSBkb24ndCBoYXZlIHRvIGRlcGVuZCBvbiBhc3N1bXB0aW9ucy4N Cj4gICAgID4gPg0KPiAgICAgPiA+IFdlIGFsbCBrbm93IHRoYXQgMzJiaXQgbG9hZC9zdG9yZSBv biBjcHUgd2Ugc3VwcG9ydCAtIGFyZSBhdG9taWMuDQo+ICAgICA+ID4gSWYgaXQgd291bGRuJ3Qg YmUgdGhlIGNhc2UgLSBEUERLIHdvdWxkIGJlIGJyb2tlbiBpbiBkb3plbiBwbGFjZXMuDQo+ICAg ICA+ID4gU28gd2hhdCB0aGUgcG9pbnQgdG8gcHJldGVuZCB0aGF0ICJpdCBtaWdodCBiZSBub3Qg YXRvbWljIiBpZiB3ZSBkbw0KPiBrbm93IGZvcg0KPiAgICAgPiA+IHN1cmUgdGhhdCBpdCBpcz8N Cj4gICAgID4gPiBJIGRvIHVuZGVyc3RhbmQgdGhhdCB5b3Ugd2FudCB0byB1c2UgYXRvbWljX2xv YWQocmVsYXhlZCkgaGVyZSBmb3INCj4gICAgID4gPiBjb25zaXN0ZW5jeSwgYW5kIHRvIGNvbmZv cm0gd2l0aCBDMTEgbWVtLW1vZGVsIGFuZCBJIGRvbid0IHNlZSBhbnkNCj4gaGFybSBpbg0KPiAg ICAgPiA+IHRoYXQuDQo+ICAgICA+IFdlIGNhbiBjb250aW51ZSB0byBkaXNjdXNzIHRoZSB0b3Bp YywgaXQgaXMgYSBnb29kIGRpc2N1c3Npb24uIEJ1dCwgYXMgZmFyDQo+IHRoaXMgcGF0Y2ggaXMg Y29uY2VybmVkLCBjYW4gSSBjb25zaWRlciB0aGlzIGFzIHVzIGhhdmluZyBhIGNvbnNlbnN1cz8g VGhlDQo+IGZpbGUgcnRlX3JpbmdfYzExX21lbS5oIGlzIHNwZWNpZmljYWxseSBmb3IgQzExIG1l bW9yeSBtb2RlbCBhbmQgSSBhbHNvIGRvDQo+IG5vdCBzZWUgYW55IGhhcm0gaW4gaGF2aW5nIGNv ZGUgdGhhdCBjb21wbGV0ZWx5IGNvbmZvcm1zIHRvIEMxMSBtZW1vcnkNCj4gbW9kZWwuDQo+IA0K PiAgICAgSGF2ZSB5b3UgZ3V5cyBjaGVja2VkIHRoZSBvdXRwdXQgYXNzZW1ibHkgd2l0aCBhbmQg d2l0aG91dCBhdG9taWMNCj4gbG9hZD8NCj4gICAgIFRoZXJlIGlzIGFuIGV4dHJhICJhZGQiIGlu c3RydWN0aW9uIHdpdGggYXQgbGVhc3QgdGhlIGNvZGUgSSBoYXZlIGNoZWNrZWQuDQo+ICAgICBJ IHRoaW5rLCBjb21waWxlciBpcyBub3Qgc21hcnQgZW5vdWdoIHRvIHVuZGVyc3RhbmQgaXQgaXMg YSBkZWFkIGNvZGUgZm9yDQo+ICAgICBhcm02NC4NCj4gDQo+ICAgICDinpwgW35dICQgYWFyY2g2 NC1saW51eC1nbnUtZ2NjIC12DQo+ICAgICBVc2luZyBidWlsdC1pbiBzcGVjcy4NCj4gICAgIENP TExFQ1RfR0NDPWFhcmNoNjQtbGludXgtZ251LWdjYw0KPiAgICAgQ09MTEVDVF9MVE9fV1JBUFBF Uj0vdXNyL2xpYi9nY2MvYWFyY2g2NC1saW51eC1nbnUvOC4yLjAvbHRvLQ0KPiB3cmFwcGVyDQo+ ICAgICBUYXJnZXQ6IGFhcmNoNjQtbGludXgtZ251DQo+ICAgICBDb25maWd1cmVkIHdpdGg6IC9i dWlsZC9hYXJjaDY0LWxpbnV4LWdudS1nY2Mvc3JjL2djYy04LjIuMC9jb25maWd1cmUNCj4gICAg IC0tcHJlZml4PS91c3IgLS1wcm9ncmFtLXByZWZpeD1hYXJjaDY0LWxpbnV4LWdudS0NCj4gICAg IC0td2l0aC1sb2NhbC1wcmVmaXg9L3Vzci9hYXJjaDY0LWxpbnV4LWdudQ0KPiAgICAgLS13aXRo LXN5c3Jvb3Q9L3Vzci9hYXJjaDY0LWxpbnV4LWdudQ0KPiAgICAgLS13aXRoLWJ1aWxkLXN5c3Jv b3Q9L3Vzci9hYXJjaDY0LWxpbnV4LWdudSAtLWxpYmRpcj0vdXNyL2xpYg0KPiAgICAgLS1saWJl eGVjZGlyPS91c3IvbGliIC0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251DQo+ICAgICAtLWhvc3Q9 eDg2XzY0LXBjLWxpbnV4LWdudSAtLWJ1aWxkPXg4Nl82NC1wYy1saW51eC1nbnUgLS1kaXNhYmxl LW5scw0KPiAgICAgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrIC0tZW5hYmxlLXNoYXJlZCAtLWVu YWJsZS10aHJlYWRzPXBvc2l4DQo+ICAgICAtLXdpdGgtc3lzdGVtLXpsaWIgLS13aXRoLWlzbCAt LWVuYWJsZS1fX2N4YV9hdGV4aXQNCj4gICAgIC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9u cyAtLWVuYWJsZS1jbG9jYWxlPWdudQ0KPiAgICAgLS1kaXNhYmxlLWxpYnN0ZGN4eC1wY2ggLS1k aXNhYmxlLWxpYnNzcCAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdA0KPiAgICAgLS1lbmFibGUt bGlua2VyLWJ1aWxkLWlkIC0tZW5hYmxlLWx0byAtLWVuYWJsZS1wbHVnaW4NCj4gICAgIC0tZW5h YmxlLWluc3RhbGwtbGliaWJlcnR5IC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUNCj4gICAg IC0tZW5hYmxlLWdudS1pbmRpcmVjdC1mdW5jdGlvbiAtLWRpc2FibGUtbXVsdGlsaWIgLS1kaXNh YmxlLXdlcnJvcg0KPiAgICAgLS1lbmFibGUtY2hlY2tpbmc9cmVsZWFzZQ0KPiAgICAgVGhyZWFk IG1vZGVsOiBwb3NpeA0KPiAgICAgZ2NjIHZlcnNpb24gOC4yLjAgKEdDQykNCj4gDQo+IA0KPiAg ICAgIyBidWlsZCBzZXR1cA0KPiAgICAgbWFrZSAtaiA4IGNvbmZpZyBUPWFybTY0LWFybXY4YS1s aW51eGFwcC1nY2MgIENST1NTPWFhcmNoNjQtbGludXgtZ251LQ0KPiAgICAgbWFrZSAtaiA4IHRl c3QtYnVpbGQgQ1JPU1M9YWFyY2g2NC1saW51eC1nbnUtDQo+IA0KPiAgICAgIyBnZW5lcmF0ZSBh c20NCj4gICAgIGFhcmNoNjQtbGludXgtZ251LWdkYiAtYmF0Y2ggLWV4ICdmaWxlIGJ1aWxkL2Fw cC90ZXN0ICcgLWV4ICdkaXNhc3NlbWJsZSAvcnMNCj4gYnVja2V0X2VucXVldWVfc2luZ2xlJw0K PiANCj4gICAgIEkgaGF2ZSB1cGxvYWRlZCBnZW5lcmF0ZWQgZmlsZSBmb3IgeW91ciBjb252ZW5p ZW5jZQ0KPiAgICAgd2l0aF9hdG9taWNfbG9hZC50eHQoaW5jbHVkZXMgcGF0Y2ggMSwyLDMpDQo+ ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgICAgaHR0cHM6Ly9wYXN0ZWJpbi5jb20v U1E2dzF5UnUNCj4gDQo+ICAgICB3aXRob3V0X2F0b21pY19sb2FkLnR4dChpbmNsdWRlcyBwYXRj aCAyLDMpDQo+ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgICAgaHR0cHM6Ly9wYXN0 ZWJpbi5jb20vQnB2bkQwQ0ENCj4gDQo+IA0KPiAgICAgd2l0aG91dF9hdG9taWMNCj4gICAgIC0t LS0tLS0tLS0tLS0NCj4gICAgIDIzICAgICAgICAgICAgICBpZiAoIXNpbmdsZSkNCj4gICAgICAg IDB4MDAwMDAwMDAwMDY4ZDI5MCA8KzI0MD46ICAgODUgMDAgMDAgMzUgICAgIGNibnogICAgdzUs IDB4NjhkMmEwDQo+IDxidWNrZXRfZW5xdWV1ZV9zaW5nbGUrMjU2Pg0KPiAgICAgICAgMHgwMDAw MDAwMDAwNjhkMjk0IDwrMjQ0PjogICA4MiAwNCA0MCBiOSAgICAgbGRyICAgICB3MiwgW3g0LCAj NF0NCj4gICAgICAgIDB4MDAwMDAwMDAwMDY4ZDI5OCA8KzI0OD46ICAgNWYgMDAgMDEgNmIgICAg IGNtcCAgICAgdzIsIHcxDQo+ICAgICAgICAweDAwMDAwMDAwMDA2OGQyOWMgPCsyNTI+OiAgIDIx IDAxIDAwIDU0ICAgICBiLm5lICAgIDB4NjhkMmMwDQo+IDxidWNrZXRfZW5xdWV1ZV9zaW5nbGUr Mjg4PiAgLy8gYi5hbnkNCj4gDQo+ICAgICAyNCAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAo dW5saWtlbHkoaHQtPnRhaWwgIT0gb2xkX3ZhbCkpDQo+ICAgICAyNSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJ0ZV9wYXVzZSgpOw0KPiANCj4gDQo+ICAgICB3aXRoX2F0b21pYw0KPiAg ICAgLS0tLS0tLS0tLS0NCj4gICAgIDIzICAgICAgICAgICAgICBpZiAoIXNpbmdsZSkNCj4gICAg ICAgIDB4MDAwMDAwMDAwMDY4Y2ViMCA8KzI0MD46ICAgMDAgMTAgMDQgOTEgICAgIGFkZCAgICAg eDAsIHgwLCAjMHgxMDQNCj4gICAgICAgIDB4MDAwMDAwMDAwMDY4Y2ViNCA8KzI0ND46ICAgODQg MDAgMDAgMzUgICAgIGNibnogICAgdzQsIDB4NjhjZWM0DQo+IDxidWNrZXRfZW5xdWV1ZV9zaW5n bGUrMjYwPg0KPiAgICAgICAgMHgwMDAwMDAwMDAwNjhjZWI4IDwrMjQ4PjogICAwMiAwMCA0MCBi OSAgICAgbGRyICAgICB3MiwgW3gwXQ0KPiAgICAgICAgMHgwMDAwMDAwMDAwNjhjZWJjIDwrMjUy PjogICAzZiAwMCAwMiA2YiAgICAgY21wICAgICB3MSwgdzINCj4gICAgICAgIDB4MDAwMDAwMDAw MDY4Y2VjMCA8KzI1Nj46ICAgMDEgMDkgMDAgNTQgICAgIGIubmUgICAgMHg2OGNmZTANCj4gPGJ1 Y2tldF9lbnF1ZXVlX3NpbmdsZSs1NDQ+ICAvLyBiLmFueQ0KPiANCj4gICAgIDI0ICAgICAgICAg ICAgICAgICAgICAgIHdoaWxlICh1bmxpa2VseShvbGRfdmFsICE9IF9fYXRvbWljX2xvYWRfbigm aHQtPnRhaWwsDQo+IF9fQVRPTUlDX1JFTEFYRUQpKSkNCj4gDQo+IA0KPiAgICAgSSBkb24ndCB3 YW50IHRvIGJsb2NrIHRoaXMgc2VyaWVzIG9mIHBhdGNoZXMgZHVlIHRoaXMgcGF0Y2guIENhbiB3 ZSBtYWtlDQo+ICAgICByZSBzcGluIG9uZSBzZXJpZXMgd2l0aCAyIGFuZCAzIHBhdGNoZXMuIEFu ZCBXYWl0IGZvciBwYXRjaCAxIHRvIGNvbmNsdWRlPw0KPiANCj4gICAgIFRob3VnaHRzPw0KPiAN Cj4gDQo+IA0KPiANCj4gICAgID4NCj4gICAgID4gPiBCdXQgYXJndW1lbnQgdGhhdCB3ZSBzaG91 bGRuJ3QgYXNzdW1lIDMyYml0IGxvYWQvc3RvcmUgb3BzIGFzDQo+IGF0b21pYw0KPiAgICAgPiA+ IHNvdW5kcyBhIGJpdCBmbGFreSB0byBtZS4NCj4gICAgID4gPiBLb25zdGFudGluDQo+ICAgICA+ ID4NCj4gICAgID4gPg0KPiAgICAgPiA+ID4NCj4gICAgID4gPiA+DQo+ICAgICA+ID4gPg0KPiAg ICAgPiA+ID4gICAgICAgICA+IEJ1dCB0aGVyZSBhcmUgbm8gbWVtb3J5IG9yZGVyaW5nIHJlcXVp cmVtZW50cyAod2l0aA0KPiAgICAgPiA+ID4gICAgICAgICA+IHJlZ2FyZHMgdG8gb3RoZXIgbG9h ZHMgYW5kL29yIHN0b3JlcyBieSB0aGlzIHRocmVhZCkgc28NCj4gcmVsYXhlZA0KPiAgICAgPiA+ IG1lbW9yeSBvcmRlciBpcyBzdWZmaWNpZW50Lg0KPiAgICAgPiA+ID4gICAgICAgICA+IEFub3Ro ZXIgYXNwZWN0IG9mIHVzaW5nIF9fYXRvbWljX2xvYWRfbigpIGlzIHRoYXQgdGhlDQo+ICAgICA+ ID4gPiBjb21waWxlciBjYW5ub3QgIm9wdGltaXNlIiB0aGlzIGxvYWQgKGUuZy4gY29tYmluZSwg aG9pc3QgZXRjKSwgaXQgaGFzDQo+IHRvIGJlDQo+ICAgICA+ID4gZG9uZSBhcw0KPiAgICAgPiA+ ID4gICAgICAgICA+IHNwZWNpZmllZCBpbiB0aGUgc291cmNlIGNvZGUgd2hpY2ggaXMgYWxzbyB3 aGF0IHdlIG5lZWQgaGVyZS4NCj4gICAgID4gPiA+DQo+ICAgICA+ID4gPiAgICAgICAgIEkgdGhp bmsgSmVyaW4gcG9pbnRzIHRoYXQgcnRlX3BhdXNlKCkgYWN0cyBoZXJlIGFzIGNvbXBpbGVyDQo+ IGJhcnJpZXIgdG9vLA0KPiAgICAgPiA+ID4gICAgICAgICBzbyBubyBuZWVkIHRvIHdvcnJ5IHRo YXQgY29tcGlsZXIgd291bGQgb3B0aW1pemUgb3V0IHRoZSBsb29wLg0KPiAgICAgPiA+ID4gICAg IFtPbGFdIFNvcnJ5IG1pc3NlZCB0aGF0LiBCdXQgdGhlIGJhcnJpZXIgYmVoYXZpb3VyIG9mIHJ0 ZV9wYXVzZSgpDQo+ICAgICA+ID4gPiBpcyBub3QgcGFydCBvZiBDMTEsIGlzIGl0IGVzc2VudGlh bGx5IGEgaGFuZC1tYWRlIGZlYXR1cmUgdG8gc3VwcG9ydA0KPiAgICAgPiA+ID4gdGhlIGxlZ2Fj eSBtdWx0aXRocmVhZGVkIG1lbW9yeSBtb2RlbCAod2hpY2ggdXNlcyBleHBsaWNpdCBIVw0KPiBh bmQNCj4gICAgID4gPiBjb21waWxlciBiYXJyaWVycykuIEknZCBwcmVmZXIgY29kZSB1c2luZyB0 aGUgQzExIG1lbW9yeSBtb2RlbCBub3QgdG8NCj4gICAgID4gPiBkZXBlbmQgb24gc3VjaCBsZWdh Y3kgZmVhdHVyZXMuDQo+ICAgICA+ID4gPg0KPiAgICAgPiA+ID4NCj4gICAgID4gPiA+DQo+ICAg ICA+ID4gPiAgICAgICAgIEtvbnN0YW50aW4NCj4gICAgID4gPiA+DQo+ICAgICA+ID4gPiAgICAg ICAgID4NCj4gICAgID4gPiA+ICAgICAgICAgPiBPbmUgcG9pbnQgd29ydGggbWVudGlvbmluZyB0 aG91Z2ggaXMgdGhhdCB0aGlzIGNoYW5nZSBpcyBmb3INCj4gICAgID4gPiA+IHRoZSBydGVfcmlu Z19jMTFfbWVtLmggZmlsZSwgbm90IHRoZSBsZWdhY3kgcmluZy4gSXQgbWF5IGJlIHdvcnRoDQo+ IHBlcnNpc3RpbmcNCj4gICAgID4gPiA+ICAgICAgICAgPiB3aXRoIGdldHRpbmcgdGhlIEMxMSBj b2RlIHJpZ2h0IHdoZW4gcGVvcGxlIGFyZSBsZXNzIGV4Y2l0ZWQNCj4gYWJvdXQNCj4gICAgID4g PiBzZW5kaW5nIGEgcmVsZWFzZSBvdXQ/DQo+ICAgICA+ID4gPiAgICAgICAgID4NCj4gICAgID4g PiA+ICAgICAgICAgPiBXZSBjYW4gZXhwbGFpbiB0aGF0IGZvciBDMTEgd2Ugd291bGQgcHJlZmVy IHRvIGRvIGxvYWRzIGFuZA0KPiBzdG9yZXMNCj4gICAgID4gPiBhcyBwZXIgdGhlIEMxMSBtZW1v cnkgbW9kZWwuIEluIHRoZSBjYXNlIG9mIHJ0ZV9yaW5nLCB0aGUgY29kZSBpcw0KPiAgICAgPiA+ ID4gICAgICAgICA+IHNlcGFyYXRlZCBjbGVhbmx5IGludG8gQzExIHNwZWNpZmljIGZpbGVzIGFu eXdheS4NCj4gICAgID4gPiA+ICAgICAgICAgPg0KPiAgICAgPiA+ID4gICAgICAgICA+IEkgdGhp bmsgcmVhZGluZyBodC0+dGFpbCB1c2luZyBfX2F0b21pY19sb2FkX24oKSBpcyB0aGUgbW9zdA0K PiAgICAgPiA+IGFwcHJvcHJpYXRlIHdheS4gV2Ugc2hvdyB0aGF0IGh0LT50YWlsIGlzIHVzZWQg Zm9yIHN5bmNocm9uaXphdGlvbiwNCj4gd2UNCj4gICAgID4gPiA+ICAgICAgICAgPiBhY2tub3ds ZWRnZSB0aGF0IGh0LT50YWlsIG1heSBiZSB3cml0dGVuIGJ5IG90aGVyIHRocmVhZHMNCj4gICAg ID4gPiA+IHdpdGhvdXQgYW55IG90aGVyIGtpbmQgb2Ygc3luY2hyb25pemF0aW9uIChlLmcuIG5v IGxvY2sgaW52b2x2ZWQpDQo+IGFuZCB3ZQ0KPiAgICAgPiA+IHJlcXVpcmUNCj4gICAgID4gPiA+ ICAgICAgICAgPiBhbiBhdG9taWMgbG9hZCAoYW55IHdyaXRlIHRvIGh0LT50YWlsIG11c3QgYWxz byBiZSBhdG9taWMpLg0KPiAgICAgPiA+ID4gICAgICAgICA+DQo+ICAgICA+ID4gPiAgICAgICAg ID4gVXNpbmcgdm9sYXRpbGUgYW5kIGV4cGxpY2l0IGNvbXBpbGVyIChvciBwcm9jZXNzb3IpIG1l bW9yeQ0KPiBiYXJyaWVycw0KPiAgICAgPiA+IChmZW5jZXMpIGlzIHRoZSBsZWdhY3kgcHJlLUMx MSB3YXkgb2YgYWNjb21wbGlzaGluZyB0aGVzZSB0aGluZ3MuDQo+ICAgICA+ID4gPiBUaGVyZSdz DQo+ICAgICA+ID4gPiAgICAgICAgID4gYSByZWFzb24gd2h5IEMxMS9DKysxMSBtb3ZlZCBhd2F5 IGZyb20gdGhlIG9sZCB3YXlzLg0KPiAgICAgPiA+ID4gICAgICAgICA+ID4gPg0KPiAgICAgPiA+ ID4gICAgICAgICA+ID4gPiAgICAgICAgIF9fYXRvbWljX3N0b3JlX24oJmh0LT50YWlsLCBuZXdf dmFsLA0KPiBfX0FUT01JQ19SRUxFQVNFKTsNCj4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gLS0N Cj4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gMi43LjQNCj4gICAgID4gPiA+ICAgICAgICAgPiA+ ID4NCj4gICAgID4gPiA+DQo+ICAgICA+ID4gPg0KPiAgICAgPiA+ID4NCj4gICAgID4NCj4gDQoN Cg==