From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kamble, Nitin A" Subject: Re: Bluestore OSD support in ceph-disk Date: Sun, 18 Sep 2016 06:41:28 +0000 Message-ID: <986F2B7B-C38D-4B9D-8E33-561DADC58B51@Teradata.com> References: <4459A44C-1336-4EC1-82F0-F491D0C83712@Teradata.com> <0B017562-31CE-4C51-8ADB-997E5D59C1BF@Teradata.com> <3BA97D41-E3A1-404A-9FEE-41245D56D538@Teradata.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from nat13.teradata.com ([153.65.16.13]:38185 "EHLO rpc7279.td.teradata.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754293AbcIRGla (ORCPT ); Sun, 18 Sep 2016 02:41:30 -0400 In-Reply-To: Content-Language: en-US Content-ID: Sender: ceph-devel-owner@vger.kernel.org List-ID: To: Sage Weil Cc: Somnath Roy , Ceph Development DQo+IE9uIFNlcCAxNywgMjAxNiwgYXQgNzoxNCBBTSwgU2FnZSBXZWlsIDxzYWdlQG5ld2RyZWFt Lm5ldD4gd3JvdGU6DQo+IA0KPiBPbiBGcmksIDE2IFNlcCAyMDE2LCBLYW1ibGUsIE5pdGluIEEg d3JvdGU6DQo+Pj4gT24gU2VwIDE2LCAyMDE2LCBhdCAxOjU0IFBNLCBTYWdlIFdlaWwgPHNhZ2VA bmV3ZHJlYW0ubmV0PiB3cm90ZToNCj4+PiANCj4+PiBPbiBGcmksIDE2IFNlcCAyMDE2LCBLYW1i bGUsIE5pdGluIEEgd3JvdGU6DQo+Pj4+PiBPbiBTZXAgMTYsIDIwMTYsIGF0IDEyOjIzIFBNLCBT b21uYXRoIFJveSA8U29tbmF0aC5Sb3lAc2FuZGlzay5jb20+IHdyb3RlOg0KPj4+Pj4gDQo+Pj4+ PiBIb3cgeW91IGNvbmZpZ3VyZWQgYmx1ZXN0b3JlLCBhbGwgZGVmYXVsdCA/IGkuZSBhbGwgaW4g c2luZ2xlIHBhcnRpdGlvbiAsIG5vIHNlcGFyYXRlIHBhcnRpdGlvbiBmb3IgZGIvd2FsID8NCj4+ Pj4gSXQgaXMgc2VwYXJhdGVkIHBhcnRpdGlvbnMgZm9yIGRhdGEoU1NEKSwgd2FsKFNTRCksIHJv Y2tzZGIoU1NEKSwgJiBibG9jayBzdG9yZSAoSEREKS4NCj4+Pj4gDQo+Pj4+PiBXb25kZXJpbmcg aWYgeW91IGFyZSBvdXQgb2YgZGIgc3BhY2UvZGlzayBzcGFjZSA/DQo+Pj4+IEkgbm90aWNlIGEg bWlzY29uZmlndXJhdGlvbiBvbiB0aGUgY2x1c3RlciBub3cuIFRoZSB3YWwgJiBkYiBwYXJ0aXRp b24gdXNlIGdvdCBzd2FwcGVkLCBzbyBpdCBpcyBnZXR0aW5nIGp1c3QgMTI4TUIgZGIgcGFydGl0 aW9uIG5vdy4gUHJvYmFibHkgdGhpcyBpcyB0aGUgY2F1c2Ugb2YgdGhlIGFzc2VydC4NCj4+PiAN Cj4+PiBGV0lXIGJsdWVmcyBpcyBzdXBwb3NlZCB0byBmYWxsIGJhY2sgb24gYW55IGFsbG9jYXRp b24gZmFpbHVyZSB0byB0aGUgbmV4dCANCj4+PiBsYXJnZXIvc2xvd2VyIGRldmljZSAod2FsIC0+ IGRiIC0+IHByaW1hcnkpLCBzbyBoYXZpbmcgYSB0aW55IHdhbCBvciB0aW55IA0KPj4+IGRiIHNo b3VsZG4ndCBhY3R1YWxseSBtYXR0ZXIuICBBIGJsdWVmcyBsb2cgKGRlYnVnIGJsdWVmcyA9IDEw IG9yIDIwKSANCj4+PiBsZWFkaW5nIHVwIHRvIGFueSBjcmFzaCB0aGVyZSB3b3VsZCBiZSBoZWxw ZnVsLg0KPj4+IA0KPj4+IFRoYW5rcyENCj4+PiBzYWdlDQo+Pj4gDQo+PiANCj4+IEdvb2QgdG8g a25vdyB0aGlzIGZhbGwgYmFjayBtZWNoYW5pc20uDQo+PiBJbiBteSBwcmV2aW91cyBydW4gdGhl IHBhcnRpdGlvbnMgYW5kIHNpemVzIGluIGNvbmZpZyBkaWQgbm90IG1hdGNoLiBJIHNlZSB0aGUg Y2VwaC1kYWVtb24tZHVtcA0KPj4gc2hvd2luZyA5MDBNQisgdXNlZCBmb3IgZGIgd2hpbGUgZGIg cGFydGl0aW9uIHdhcyAxMjhNQi4gSSB3YXMgdGhpbmtpbmcgaXQgc3RhcnRlZCBvdmVyd3JpdGlu ZyBvbg0KPj4gdG8gdGhlIG5leHQgcGFydGl0aW9uLiBCdXQgaW5zdGVhZCBhcyBwZXIgdGhpcyBi YWNrdXAgbG9naWMgaXQgc3RhcnRlZCB1c2luZyBIREQgZm9yIGRiLg0KPj4gDQo+PiBPbmUgaXNz dWUgSSBzZWUgaXMgdGhhdCwgY2VwaC5jb25mIGxpc3RzIHRoZSBzaXplcyBvZiB0aGUgd2FsLGRi LCYgYmxvY2suIEJ1dCBpdCBpcyBwb3NzaWJsZSB0aGF0IGFjdHVhbA0KPj4gcGFydGl0aW9ucyBt YXkgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMuIEZyb20gdGhlIGNlcGgtZGFlbW9uLWR1bXAgb3V0cHV0 IGxvb2tzIGxpa2UgaXQgaXMgbm90IGxvb2tpbmcNCj4+IGF0IHRoZSBwYXJ0aXRpb27igJlzIHJl YWwgc2l6ZSwgaW5zdGVhZCB0aGUgY29kZSBpcyBhc3N1bWluZyB0aGUgc2l6ZXMgZnJvbSB0aGUg Y29uZmlnIGZpbGUgYXMgdGhlIHBhcnRpdGlvbg0KPj4gc2l6ZXMuIEkgdGhpbmsgcHJvYmluZyBv ZiB0aGUgc2l6ZSBvZiBleGlzdGluZyBkZXZpY2VzL2ZpbGVzIHdpbGwgYmUgYmV0dGVyIHRoYW4g dGFraW5nIHRoZSBzaXplcyBmcm9tIHRoZQ0KPj4gY29uZmlnIGZpbGUgYmxpbmRseS4NCj4gDQo+ IFRob3NlIGJsdWVzdG9yZV9ibG9jaypfc2l6ZSBvcHRpb25zIGFyZSBvbmx5IHVzZWQgaW4gY29u anVuY3Rpb24gd2l0aCANCj4gYmx1ZXN0b3JlX2Jsb2NrKl9jcmVhdGUgPSB0cnVlIHRvIGNyZWF0 ZSBhIGR1bW15IGJsb2NrIGRldmljZSBmaWxlIGZvciANCj4gZGVidWdnaW5nL3Rlc3RpbmcgcHVy cG9zZXMuDQoNClNvIGlmIEkgc2V0IHRoZXNlIGNvbmZpZyBvcHRpb25zIGFzIGZhbHNlIGluIHRo ZSBjZXBoLmNvbmYgdGhlbiB0aGUgZGVmYXVsdCBzaXplcyBzaG91bGQgZ2V0IGlnbm9yZWQsIHJp Z2h0Pw0KDQo+IA0KPiBBcmUgeW91IHJlZmVycmluZyB0byB0aGUgcGVyZiBjb3VudGVycyAoY2Vw aCBkYWVtb24gb3NkLk4gcGVyZiBkdW1wKSANCj4gZmlndXJlcz8gIENhbiB5b3Ugc2hhcmUgdGhl IG51bWJlcnMgeW91IHNhdz8gIEl0IHNvdW5kcyBsaWtlIHRoZXJlIG1pZ2h0IA0KPiBiZSBhIGJ1 ZyBpbiB0aGUgaW5zdHJ1bWVudGF0aW9uLg0KDQpZZXMsIEkgcmVmZXJyZWQgdG8gdGhlIHBlcmYg Y291bnRlciB5b3UgbWVudGlvbmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhpcyB0aHJlYWQuDQpV bmZvcnR1bmF0ZWx5IEkgYW0gcmVzdXJyZWN0aW5nIHRoZSBjbHVzdGVyIGZyZXF1ZW50bHkgdG8g Z2V0IHNvbWUgcGVyZm9ybWFuY2UgZGF0YSBvdXQsIHNvIA0KSSBjYW504oCZIHNob3cgeW91IHRo ZSBudW1iZXJzIHJpZ2h0IG5vdy4gSSB3aWxsIHRyeSB0byBjYXB0dXJlIGl0IG5leHQgdGltZS4N ClRoZSAxc3QgYXR0ZW1wdCB3aGVyZSBJIG1lc3NlZCB1cCBwYXJ0aXRpb24gbGlua3MsIGF0IHRo YXQgdGltZSBJIG5vdGljZWQgdGhhdCB0aGUgcGVyZiBzdGF0DQpmb3IgZGIgd2FzIHNob3dpbmcg c2l6ZSBmcm9tIHRoZSBjb25maWcgZmlsZSB3aGljaCB3YXMgbXVjaCBiaWdnZXIgKDM3R0IpIHRo YW4gdGhlIHBhcnRpdGlvbuKAmXMNCmFjdHVhbCBzaXplICgxMjhNQikuIFRoZXJlIGlzIGEgcG9z c2liaWxpdHkgSSBtYXkgaGF2ZSBtYWRlIGEgbWlzdGFrZSBpbiBpZGVudGlmeWluZyB0aGUgcGFy dGl0aW9ucyBjb3JyZWN0bHksDQphcyBJIHdhcyBmb2N1c2luZyBvbiB0aGUgZ2V0dGluZyBzZXR1 cCB3b3JraW5nIG1vcmUgdGhhbiBsb29raW5nIGZvciBwb3NzaWJsZSBidWdzIGluIHRoZSBpbXBs ZW1lbnRhdGlvbi4NCkJ1dCBpdCB3aWxsIGJlIGVhc3kgYW5kIHF1aWNrIHRvIGp1c3QgdHJ5IGl0 IG91dCB0byB2ZXJpZnkgd2hpY2ggcGFydGl0aW9uIHNpemUgaXMgc2hvd24gaW4gdGhlIHBlcmYg c3RhdC4NCg0KQlRXIEluIGFub3RoZXIgcnVuIGZldyBPU0RzIGRpZWQgd2l0aCB0aGUgZm9sbG93 aW5nIGVycm9ycy4gSGVyZSB0aGUgcGFydGl0aW9uIGxheW91dCB3YXMgbm90IG1lc3NlZCB1cC4N Cg0Kb3NkLjIgDQoNCjIwMTYtMDktMTcgMDI6MzY6MTguNDYwMzU3IDdmMWZkMzhjOTcwMCAtMSAq KiogQ2F1Z2h0IHNpZ25hbCAoQWJvcnRlZCkgKioNCiBpbiB0aHJlYWQgN2YxZmQzOGM5NzAwIHRo cmVhZF9uYW1lOnRwX29zZF90cA0KDQogY2VwaCB2ZXJzaW9uIHYxMS4wLjAtMjMwOS1nOTA5NmFk MyAoOTA5NmFkMzdmMmMwNzk4YzI2ZDc3ODRmYjRlN2E3ODFmZWI3MmNiOCkNCiAxOiAoKCkrMHg4 OTJkZDIpIFsweDdmMWZmMjRkOWRkMl0NCiAyOiAoKCkrMHhmODkwKSBbMHg3ZjFmZWU2Y2Y4OTBd DQogMzogKHB0aHJlYWRfY29uZF93YWl0KCkrMHhiZikgWzB4N2YxZmVlNmNjMDVmXQ0KIDQ6IChU aHJvdHRsZTo6X3dhaXQobG9uZykrMHgxYTQpIFsweDdmMWZmMjY1MTk5NF0NCiA1OiAoVGhyb3R0 bGU6OmdldChsb25nLCBsb25nKSsweGM3KSBbMHg3ZjFmZjI2NTI1ZjddDQogNjogKEJsdWVTdG9y ZTo6cXVldWVfdHJhbnNhY3Rpb25zKE9iamVjdFN0b3JlOjpTZXF1ZW5jZXIqLCBzdGQ6OnZlY3Rv cjxPYmplY3RTdG9yZTo6VHJhbnNhY3Rpb24sIHN0ZDo6YWxsb2NhdG9yPE9iamVjdFN0b3JlOjpU cmFuc2FjdGlvbj4gPiYsIHN0ZDo6c2hhcmVkX3B0cjxUcmFja2VkT3A+LCBUaHJlYWQNClBvb2w6 OlRQSGFuZGxlKikrMHg4YTMpIFsweDdmMWZmMjQwN2FkM10NCiA3OiAoUmVwbGljYXRlZFBHOjpx dWV1ZV90cmFuc2FjdGlvbnMoc3RkOjp2ZWN0b3I8T2JqZWN0U3RvcmU6OlRyYW5zYWN0aW9uLCBz dGQ6OmFsbG9jYXRvcjxPYmplY3RTdG9yZTo6VHJhbnNhY3Rpb24+ID4mLCBzdGQ6OnNoYXJlZF9w dHI8T3BSZXF1ZXN0PikrMHg3YykgWzB4N2YxZmYyMWVjOTNjXQ0KIDg6IChSZXBsaWNhdGVkQmFj a2VuZDo6c3ViX29wX21vZGlmeShzdGQ6OnNoYXJlZF9wdHI8T3BSZXF1ZXN0PikrMHhiOGYpIFsw eDdmMWZmMjJiY2YwZl0NCiA5OiAoUmVwbGljYXRlZEJhY2tlbmQ6OmhhbmRsZV9tZXNzYWdlKHN0 ZDo6c2hhcmVkX3B0cjxPcFJlcXVlc3Q+KSsweDNiMykgWzB4N2YxZmYyMmJkODgzXQ0KIDEwOiAo UmVwbGljYXRlZFBHOjpkb19yZXF1ZXN0KHN0ZDo6c2hhcmVkX3B0cjxPcFJlcXVlc3Q+JiwgVGhy ZWFkUG9vbDo6VFBIYW5kbGUmKSsweGZhKSBbMHg3ZjFmZjIxOGM4ZGFdDQogMTE6IChPU0Q6OmRl cXVldWVfb3AoYm9vc3Q6OmludHJ1c2l2ZV9wdHI8UEc+LCBzdGQ6OnNoYXJlZF9wdHI8T3BSZXF1 ZXN0PiwgVGhyZWFkUG9vbDo6VFBIYW5kbGUmKSsweDNmNSkgWzB4N2YxZmYyMDQ1OTA1XQ0KIDEy OiAoUEdRdWV1ZWFibGU6OlJ1blZpczo6b3BlcmF0b3IoKShzdGQ6OnNoYXJlZF9wdHI8T3BSZXF1 ZXN0PiBjb25zdCYpKzB4NWQpIFsweDdmMWZmMjA0NWIyZF0NCiAxMzogKE9TRDo6U2hhcmRlZE9w V1E6Ol9wcm9jZXNzKHVuc2lnbmVkIGludCwgY2VwaDo6aGVhcnRiZWF0X2hhbmRsZV9kKikrMHg4 NzQpIFsweDdmMWZmMjA2NmU4NF0NCiAxNDogKFNoYXJkZWRUaHJlYWRQb29sOjpzaGFyZGVkdGhy ZWFkcG9vbF93b3JrZXIodW5zaWduZWQgaW50KSsweDk0NykgWzB4N2YxZmYyNjYwYTM3XQ0KIDE1 OiAoU2hhcmRlZFRocmVhZFBvb2w6OldvcmtUaHJlYWRTaGFyZGVkOjplbnRyeSgpKzB4MTApIFsw eDdmMWZmMjY2MmI5MF0NCiAxNjogKCgpKzB4ODBhNCkgWzB4N2YxZmVlNmM4MGE0XQ0KIDE3OiAo Y2xvbmUoKSsweDZkKSBbMHg3ZjFmZWQ1NDEwNGRdDQogTk9URTogYSBjb3B5IG9mIHRoZSBleGVj dXRhYmxlLCBvciBgb2JqZHVtcCAtcmRTIDxleGVjdXRhYmxlPmAgaXMgbmVlZGVkIHRvIGludGVy cHJldCB0aGlzLg0KDQoNCk9zZC4zIA0KDQoNCjIwMTYtMDktMTYgMjM6MTA6MzkuNjkwOTIzIDdm MWJiOWM2ZjcwMCAtMSAvYnVpbGQvbml0aW4vbmlnaHRseV9idWlsZHMvMjAxNjA5MTRfMTI1NDU5 LW1hc3Rlci9jZXBoLmdpdC9ycG1idWlsZC9CVUlMRC9jZXBoLXYxMS4wLjAtMjMwOS5nOTA5NmFk My9zcmMvb3MvYmx1ZXN0b3JlL0JsdWVGUy5jYzogSW4gZg0KdW5jdGlvbiAnaW50IEJsdWVGUzo6 X2FsbG9jYXRlKHVpbnQ4X3QsIHVpbnQ2NF90LCBzdGQ6OnZlY3RvcjxibHVlZnNfZXh0ZW50X3Q+ KiknIHRocmVhZCA3ZjFiYjljNmY3MDAgdGltZSAyMDE2LTA5LTE2IDIzOjEwOjM5LjY4NjU3NA0K L2J1aWxkL25pdGluL25pZ2h0bHlfYnVpbGRzLzIwMTYwOTE0XzEyNTQ1OS1tYXN0ZXIvY2VwaC5n aXQvcnBtYnVpbGQvQlVJTEQvY2VwaC12MTEuMC4wLTIzMDkuZzkwOTZhZDMvc3JjL29zL2JsdWVz dG9yZS9CbHVlRlMuY2M6IDE2ODY6IEZBSUxFRCBhc3NlcnQoMCA9PSAiYWxsb2NhdGUgZmFpbGVk Li4uIHd0DQpmIikNCg0KIGNlcGggdmVyc2lvbiB2MTEuMC4wLTIzMDktZzkwOTZhZDMgKDkwOTZh ZDM3ZjJjMDc5OGMyNmQ3Nzg0ZmI0ZTdhNzgxZmViNzJjYjgpDQogMTogKGNlcGg6Ol9fY2VwaF9h c3NlcnRfZmFpbChjaGFyIGNvbnN0KiwgY2hhciBjb25zdCosIGludCwgY2hhciBjb25zdCopKzB4 OGIpIFsweDdmMWJlMmExNTExYl0NCiAyOiAoQmx1ZUZTOjpfYWxsb2NhdGUodW5zaWduZWQgY2hh ciwgdW5zaWduZWQgbG9uZywgc3RkOjp2ZWN0b3I8Ymx1ZWZzX2V4dGVudF90LCBzdGQ6OmFsbG9j YXRvcjxibHVlZnNfZXh0ZW50X3Q+ID4qKSsweDhhZCkgWzB4N2YxYmUyODRlNWRkXQ0KIDM6IChC bHVlRlM6Ol9mbHVzaF9hbmRfc3luY19sb2coc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiYs IHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpKzB4YjRmKSBbMHg3ZjFiZTI4NTVhMWZdDQog NDogKEJsdWVGUzo6X2ZzeW5jKEJsdWVGUzo6RmlsZVdyaXRlciosIHN0ZDo6dW5pcXVlX2xvY2s8 c3RkOjptdXRleD4mKSsweDI5YikgWzB4N2YxYmUyODU2YzliXQ0KIDU6IChCbHVlUm9ja3NXcml0 YWJsZUZpbGU6OlN5bmMoKSsweDRlKSBbMHg3ZjFiZTI4NmMyNWVdDQogNjogKHJvY2tzZGI6Oldy aXRhYmxlRmlsZVdyaXRlcjo6U3luY0ludGVybmFsKGJvb2wpKzB4MTM5KSBbMHg3ZjFiZTI5NjM2 OTldDQogNzogKHJvY2tzZGI6OldyaXRhYmxlRmlsZVdyaXRlcjo6U3luYyhib29sKSsweDg4KSBb MHg3ZjFiZTI5NjQyMzhdDQogODogKHJvY2tzZGI6OkNvbXBhY3Rpb25Kb2I6OkZpbmlzaENvbXBh Y3Rpb25PdXRwdXRGaWxlKHJvY2tzZGI6OlN0YXR1cyBjb25zdCYsIHJvY2tzZGI6OkNvbXBhY3Rp b25Kb2I6OlN1YmNvbXBhY3Rpb25TdGF0ZSopKzB4OGMzKSBbMHg3ZjFiZTI5YTZmYTNdDQogOTog KHJvY2tzZGI6OkNvbXBhY3Rpb25Kb2I6OlByb2Nlc3NLZXlWYWx1ZUNvbXBhY3Rpb24ocm9ja3Nk Yjo6Q29tcGFjdGlvbkpvYjo6U3ViY29tcGFjdGlvblN0YXRlKikrMHhiMTkpIFsweDdmMWJlMjlh ODM1OV0NCiAxMDogKHJvY2tzZGI6OkNvbXBhY3Rpb25Kb2I6OlJ1bigpKzB4MWNmKSBbMHg3ZjFi ZTI5YTk5MGZdDQogMTE6IChyb2Nrc2RiOjpEQkltcGw6OkJhY2tncm91bmRDb21wYWN0aW9uKGJv b2wqLCByb2Nrc2RiOjpKb2JDb250ZXh0Kiwgcm9ja3NkYjo6TG9nQnVmZmVyKiwgdm9pZCopKzB4 YTBjKSBbMHg3ZjFiZTI4YWFmNGNdDQogMTI6IChyb2Nrc2RiOjpEQkltcGw6OkJhY2tncm91bmRD YWxsQ29tcGFjdGlvbih2b2lkKikrMHgyN2QpIFsweDdmMWJlMjhiYTE4ZF0NCiAxMzogKHJvY2tz ZGI6OlRocmVhZFBvb2xJbXBsOjpCR1RocmVhZCh1bnNpZ25lZCBsb25nKSsweDFhMSkgWzB4N2Yx YmUyOTZiOGExXQ0KIDE0OiAoKCkrMHg5NmE5ODMpIFsweDdmMWJlMjk2Yjk4M10NCiAxNTogKCgp KzB4ODBhNCkgWzB4N2YxYmRlYTgyMGE0XQ0KIDE2OiAoY2xvbmUoKSsweDZkKSBbMHg3ZjFiZGQ4 ZmIwNGRdDQogTk9URTogYSBjb3B5IG9mIHRoZSBleGVjdXRhYmxlLCBvciBgb2JqZHVtcCAtcmRT IDxleGVjdXRhYmxlPmAgaXMgbmVlZGVkIHRvIGludGVycHJldCB0aGlzLg0KDQoNCkFsc28gSSBu b3RpY2VkIDMgbW9yZSBPU0RzIG9uIGRpZmZlcmVudCBub2RlcyB3ZXJlIGluIHRoZSBkb3duIHN0 YXRlIHdpdGhvdXQgYW55IGVycm9ycyBpbiB0aGVpciBsb2dzLg0KVGhlIGNlcGgtb3NkIHByb2Nl c3NlcyBmb3IgdGhlc2UgT1NEcyB3ZXJlIHJ1bm5pbmcgYW5kIHdlcmUgY29uc3VtaW5nIDEwMCUg Y3B1LCB3aGlsZSBvdGhlcg0Kd2VsbC1iZWhhdmluZyBPU0RzIHdlcmUgaW4gdXAgc3RhdGUgYW5k IHRha2luZyBjcHUgb2YgMSB0byAzJS4NCkkgY2hlY2tlZCB0aGUgcGVyZiBzdGF0IGluZm9ybWF0 aW9uLCBhbmQgbm90aWNlZCBhbGwgdGhlIDMgaGFkIFdBTCAoMTI4TUIpIGZ1bGx5IGNvbnN1bWVk IHdpdGggMCBieXRlcyBmcmVlLg0KSSBoYXZlIHJlc3VycmVjdGVkIHRoZSBzZXR1cCBhZnRlciB0 aGF0LCBhbmQgSSBhbSBjdXJyZW50bHkgdHJ5aW5nIHRvIGZvY3VzIG9uIGdldHRpbmcgc29tZQ0K cGVyZm9ybWFuY2UgbnVtYmVycyBvZiB0aGUgbGF0ZXN0IGJsdWVzdG9yZSBpbiBhIGNvbnN0cmFp bmVkIHRpbWUgbGltaXQuIE9uY2UgSSBhbSBkb25lIHdpdGggdGhhdCwgdGhlbiANCkkgd2lsbCBi ZSBoZWxwIG91dCBtb3JlIHdpdGggZ2F0aGVyaW5nIG1vcmUgZGV0YWlsZWQgZGF0YSwgYW5kIHdp dGggc29tZSBkZWJ1Z2dpbmcgZWZmb3J0cyBhcyB3ZWxsLg0KDQpUaGFua3MsDQpOaXRpbg0KDQoN Cj4gDQo+PiBBZnRlciA1IGhvdXJzIG9yIHNvIDYrIG9zZHMgd2VyZSBkb3duIG91dCBvZiAzMC4N Cj4+IFdlIHdpbGwgYmUgcnVubmluZyB0aGUgc3RyZXNzIHRlc3Qgb25lIGFnYWluIHdpdGggdGhl IGZpeGVkIHBhcnRpdGlvbiBjb25maWd1cmF0aW9uIHdpdGggZGVidWcgbGV2ZWwgb2YNCj4+IDAs IHRvIGdldCBtYXggcGVyZm9ybWFuY2Ugb3V0LiBBbmQgaWYgdGhhdCBmYWlscyB0aGVuIEkgd2ls bCBzd2l0Y2ggdG8gZGVidWcgbGV2ZWwgMTAgb3IgMjAsIGFuZCBnYXRoZXINCj4+IHNvbWUgZGV0 YWlsZWQgbG9ncy4NCj4gDQo+IEFueSBiYWNrdHJhY2VzIHlvdSBzZWUgd291bGQgYmUgaGVscGZ1 bC4NCj4gDQo+IFRoYW5rcyENCj4gc2FnZQ0KPiANCj4gDQo+PiANCj4+IFRoYW5rcywNCj4+IE5p dGluDQo+PiANCj4+PiANCj4+Pj4+IFdlIGhhZCBzb21lIGlzc3VlcyBpbiB0aGlzIGZyb250IHNv bWV0aW1lcyBiYWNrIHdoaWNoIHdhcyBmaXhlZCwgbWF5IGJlIGEgbmV3IGlzc3VlICg/KS4gTmVl ZCB2ZXJib3NlIGxvZyBmb3IgYXQgbGVhc3QgYmx1ZWZzIChkZWJ1Z19ibHVlZnMgPSAyMC8yMCkN Cj4+Pj4gDQo+Pj4+IExldCBtZSBmaXggdGhlIGNsdXN0ZXIgY29uZmlndXJhdGlvbiwgdG8gZ2l2 ZSBiZXR0ZXIgc3BhY2UgdG8gdGhlIERCIHBhcnRpdGlvbi4gQW5kIGlmIHdpdGggdGhhdCB0aGlz IGlzc3VlIGNvbWVzIHVwIHRoZW4gSSB3aWxsIHRyeSBjYXB0dXJpbmcgZGV0YWlsZWQgbG9ncy4N Cj4+Pj4gDQo+Pj4+PiBCVFcsIHdoYXQgaXMgeW91ciB3b3JrbG9hZCAoYmxvY2sgc2l6ZSwgSU8g cGF0dGVybiApID8NCj4+Pj4gDQo+Pj4+IFRoZSB3b3JrbG9hZCBpcyBpbnRlcm5hbCB0ZXJhZGF0 YSBiZW5jaG1hcmssIHdoaWNoIHNpbXVsYXRlcyBJTyBwYXR0ZXJuIG9mIGRhdGFiYXNlIGRpc2sg YWNjZXNzIHdpdGggdmFyaW91cyBibG9jayBzaXplcyBhbmQgSU8gcGF0dGVybi4gDQo+Pj4+IA0K Pj4+PiBUaGFua3MsDQo+Pj4+IE5pdGluDQo+Pj4+IA0KPj4+PiANCj4+Pj4gDQo+Pj4+PiANCj4+ Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+PiBGcm9tOiBLYW1ibGUsIE5pdGlu IEEgW21haWx0bzpOaXRpbi5LYW1ibGVAVGVyYWRhdGEuY29tXQ0KPj4+Pj4gU2VudDogRnJpZGF5 LCBTZXB0ZW1iZXIgMTYsIDIwMTYgMTI6MDAgUE0NCj4+Pj4+IFRvOiBTb21uYXRoIFJveQ0KPj4+ Pj4gQ2M6IFNhZ2UgV2VpbDsgQ2VwaCBEZXZlbG9wbWVudA0KPj4+Pj4gU3ViamVjdDogUmU6IEJs dWVzdG9yZSBPU0Qgc3VwcG9ydCBpbiBjZXBoLWRpc2sNCj4+Pj4+IA0KPj4+Pj4gDQo+Pj4+Pj4g T24gU2VwIDE2LCAyMDE2LCBhdCAxMTo0MyBBTSwgU29tbmF0aCBSb3kgPFNvbW5hdGguUm95QHNh bmRpc2suY29tPiB3cm90ZToNCj4+Pj4+PiANCj4+Pj4+PiBQbGVhc2Ugc2VuZCB0aGUgc25pcHBl dCAodmVyeSBmaXJzdCB0cmFjZSAsIGdvIHVwIGluIHRoZSBsb2cpIHdoZXJlIGl0IGlzIGFjdHVh bGx5IHByaW50aW5nIHRoZSBhc3NlcnQuDQo+Pj4+Pj4gQlRXLCB3aGF0IHdvcmtsb2FkIHlvdSBh cmUgcnVubmluZyA/DQo+Pj4+Pj4gDQo+Pj4+Pj4gVGhhbmtzICYgUmVnYXJkcw0KPj4+Pj4+IFNv bW5hdGgNCj4+Pj4+PiANCj4+Pj4+IEhlcmUgaXQgaXMuDQo+Pj4+PiANCj4+Pj4+IDIwMTYtMDkt MTYgMDg6NDk6MzAuNjA1ODQ1IDdmYjVhOTZiYTcwMCAtMSAvYnVpbGQvbml0aW4vbmlnaHRseV9i dWlsZHMvMjAxNjA5MTRfMTI1NDU5LW1hc3Rlci9jZXBoLmdpdC9ycG1idWlsZC9CVUlMRC9jZXBo LXYxMS4wLjAtMjMwOS5nOTA5NmFkMy9zcmMvb3MvYmx1ZXN0b3JlL0JsdWVGUy5jYzogSW4gZnVu Y3Rpb24gJ2ludCBCbHVlRlM6Ol9hbGxvY2F0ZSh1aW50OF90LCB1aW50NjRfdCwgc3RkOjp2ZWN0 byByPGJsdWVmc19leHRlbnRfdD4qKScgdGhyZWFkIDdmYjVhOTZiYTcwMCB0aW1lIDIwMTYtMDkt MTYgMDg6NDk6MzAuNjAyMTM5DQo+Pj4+PiAvYnVpbGQvbml0aW4vbmlnaHRseV9idWlsZHMvMjAx NjA5MTRfMTI1NDU5LW1hc3Rlci9jZXBoLmdpdC9ycG1idWlsZC9CVUlMRC9jZXBoLXYxMS4wLjAt MjMwOS5nOTA5NmFkMy9zcmMvb3MvYmx1ZXN0b3JlL0JsdWVGUy5jYzogMTY4NjogRkFJTEVEIGFz c2VydCgwID09ICJhbGxvY2F0ZSBmYWlsZWQuLi4gd3RmIikNCj4+Pj4+IA0KPj4+Pj4gY2VwaCB2 ZXJzaW9uIHYxMS4wLjAtMjMwOS1nOTA5NmFkMyAoOTA5NmFkMzdmMmMwNzk4YzI2ZDc3ODRmYjRl N2E3ODFmZWI3MmNiOCkNCj4+Pj4+IDE6IChjZXBoOjpfX2NlcGhfYXNzZXJ0X2ZhaWwoY2hhciBj b25zdCosIGNoYXIgY29uc3QqLCBpbnQsIGNoYXIgY29uc3QqKSsweDhiKSBbMHg3ZmI1YmY0M2Ex MWJdDQo+Pj4+PiAyOiAoQmx1ZUZTOjpfYWxsb2NhdGUodW5zaWduZWQgY2hhciwgdW5zaWduZWQg bG9uZywgc3RkOjp2ZWN0b3I8Ymx1ZWZzX2V4dGVudF90LCBzdGQ6OmFsbG9jYXRvcjxibHVlZnNf ZXh0ZW50X3Q+ID4qKSsweDhhZCkgWzB4N2ZiNWJmMjczNWRkXQ0KPj4+Pj4gMzogKEJsdWVGUzo6 X2ZsdXNoX2FuZF9zeW5jX2xvZyhzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+JiwgdW5zaWdu ZWQgbG9uZywgdW5zaWduZWQgbG9uZykrMHhiNGYpIFsweDdmYjViZjI3YWExZl0NCj4+Pj4+IDQ6 IChCbHVlRlM6Ol9mc3luYyhCbHVlRlM6OkZpbGVXcml0ZXIqLCBzdGQ6OnVuaXF1ZV9sb2NrPHN0 ZDo6bXV0ZXg+JikrMHgyOWIpIFsweDdmYjViZjI3YmM5Yl0NCj4+Pj4+IDU6IChCbHVlUm9ja3NX cml0YWJsZUZpbGU6OlN5bmMoKSsweDRlKSBbMHg3ZmI1YmYyOTEyNWVdDQo+Pj4+PiA2OiAocm9j a3NkYjo6V3JpdGFibGVGaWxlV3JpdGVyOjpTeW5jSW50ZXJuYWwoYm9vbCkrMHgxMzkpIFsweDdm YjViZjM4ODY5OV0NCj4+Pj4+IDc6IChyb2Nrc2RiOjpXcml0YWJsZUZpbGVXcml0ZXI6OlN5bmMo Ym9vbCkrMHg4OCkgWzB4N2ZiNWJmMzg5MjM4XQ0KPj4+Pj4gODogKHJvY2tzZGI6OkRCSW1wbDo6 V3JpdGVJbXBsKHJvY2tzZGI6OldyaXRlT3B0aW9ucyBjb25zdCYsIHJvY2tzZGI6OldyaXRlQmF0 Y2gqLCByb2Nrc2RiOjpXcml0ZUNhbGxiYWNrKiwgdW5zaWduZWQgbG9uZyosIHVuc2lnbmVkIGxv bmcsIGJvb2wpKzB4MTNjZikgWzB4N2ZiNWJmMmUwYTJmXQ0KPj4+Pj4gOTogKHJvY2tzZGI6OkRC SW1wbDo6V3JpdGUocm9ja3NkYjo6V3JpdGVPcHRpb25zIGNvbnN0Jiwgcm9ja3NkYjo6V3JpdGVC YXRjaCopKzB4MjcpIFsweDdmYjViZjJlMTYzN10NCj4+Pj4+IDEwOiAoUm9ja3NEQlN0b3JlOjpz dWJtaXRfdHJhbnNhY3Rpb25fc3luYyhzdGQ6OnNoYXJlZF9wdHI8S2V5VmFsdWVEQjo6VHJhbnNh Y3Rpb25JbXBsPikrMHg1YikgWzB4N2ZiNWJmMjFhMTRiXQ0KPj4+Pj4gMTE6IChCbHVlU3RvcmU6 Ol9rdl9zeW5jX3RocmVhZCgpKzB4ZjVhKSBbMHg3ZmI1YmYxZTdmZmFdDQo+Pj4+PiAxMjogKEJs dWVTdG9yZTo6S1ZTeW5jVGhyZWFkOjplbnRyeSgpKzB4ZCkgWzB4N2ZiNWJmMWY1YTZkXQ0KPj4+ Pj4gMTM6ICgoKSsweDgwYTQpIFsweDdmYjViYjRhNzBhNF0NCj4+Pj4+IDE0OiAoY2xvbmUoKSsw eDZkKSBbMHg3ZmI1YmEzMjAwNGRdDQo+Pj4+PiBOT1RFOiBhIGNvcHkgb2YgdGhlIGV4ZWN1dGFi bGUsIG9yIGBvYmpkdW1wIC1yZFMgPGV4ZWN1dGFibGU+YCBpcyBuZWVkZWQgdG8gaW50ZXJwcmV0 IHRoaXMuDQo+Pj4+PiANCj4+Pj4+IA0KPj4+Pj4gDQo+Pj4+PiBUaGFua3MsDQo+Pj4+PiBOaXRp bg0KPj4+Pj4gDQo+Pj4+PiBQTEVBU0UgTk9URTogVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBp biB0aGlzIGVsZWN0cm9uaWMgbWFpbCBtZXNzYWdlIGlzIGludGVuZGVkIG9ubHkgZm9yIHRoZSB1 c2Ugb2YgdGhlIGRlc2lnbmF0ZWQgcmVjaXBpZW50KHMpIG5hbWVkIGFib3ZlLiBJZiB0aGUgcmVh ZGVyIG9mIHRoaXMgbWVzc2FnZSBpcyBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFy ZSBoZXJlYnkgbm90aWZpZWQgdGhhdCB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIG1lc3NhZ2UgaW4g ZXJyb3IgYW5kIHRoYXQgYW55IHJldmlldywgZGlzc2VtaW5hdGlvbiwgZGlzdHJpYnV0aW9uLCBv ciBjb3B5aW5nIG9mIHRoaXMgbWVzc2FnZSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLiBJZiB5b3Ug aGF2ZSByZWNlaXZlZCB0aGlzIGNvbW11bmljYXRpb24gaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkg dGhlIHNlbmRlciBieSB0ZWxlcGhvbmUgb3IgZS1tYWlsIChhcyBzaG93biBhYm92ZSkgaW1tZWRp YXRlbHkgYW5kIGRlc3Ryb3kgYW55IGFuZCBhbGwgY29waWVzIG9mIHRoaXMgbWVzc2FnZSBpbiB5 b3VyIHBvc3Nlc3Npb24gKHdoZXRoZXIgaGFyZCBjb3BpZXMgb3IgZWxlY3Ryb25pY2FsbHkgc3Rv cmVkIGNvcGllcykuDQo+Pj4+IA0KPj4+PiAtLQ0KPj4+PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRo aXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgY2VwaC1kZXZlbCIgaW4NCj4+Pj4g dGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcNCj4+Pj4g TW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8t aW5mby5odG1sDQo+PiANCj4+IE4/Pz8/P3I/P3k/Pz8/Pz9YPz/Hp3Y/Pz8p3rp7Lm4/Pz8/P3o/ XXo/Pz8/YXk/HcqH2pk/P2oHPz9mPz8/aD8/Pz8/Hj93Pz8/DD8/P2o6K3Y/Pz93Pz8/Pz8/Pz8H Pz8/P3paKz8/Pz8/Pz9qIj8/Pz9pDQoNCg==