From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stewart Hildebrand Subject: Re: [PATCH v6 1/4] xen: introduce SYMBOL Date: Tue, 15 Jan 2019 20:03:45 +0000 Message-ID: References: <5C37013C020000780020C17D@prv1-mh.provo.novell.com> <5C387472020000780020C9A7@prv1-mh.provo.novell.com> <0e731cbd10b64a2faac309c04c2030e2@dornerworks.com> <3cc0862e5f0442d49c33c08f21b423ab@dornerworks.com> <5C3C63E0020000780020D22C@prv1-mh.provo.novell.com> <1CACC1FB020000D800417A66@prv1-mh.provo.novell.com> <5C3D97FE020000780020D9F3@prv1-mh.provo.novell.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 1gjUwF-0004bH-2U for xen-devel@lists.xenproject.org; Tue, 15 Jan 2019 20:03:55 +0000 In-Reply-To: <5C3D97FE020000780020D9F3@prv1-mh.provo.novell.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Jan Beulich , Stefano Stabellini Cc: Juergen Gross , Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Julien Grall , xen-devel List-Id: xen-devel@lists.xenproject.org T24gVHVlc2RheSwgSmFudWFyeSAxNSwgMjAxOSAzOjIxIEFNLCBKYW4gQmV1bGljaCB3cm90ZToN Cj4gPj4+IE9uIDE0LjAxLjE5IGF0IDIyOjE4LCA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4gd3Jv dGU6DQo+ID4gSGkgSmFuLA0KPiA+DQo+ID4gT25lIHF1ZXN0aW9uIGJlbG93IHRvIG1ha2UgYSBk ZWNpc2lvbiBvbiB0aGUgd2F5IGZvcndhcmQuDQo+ID4NCj4gPiBPbiBNb24sIDE0IEphbiAyMDE5 LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gPj4gPj4+IE9uIDE0LjAxLjE5IGF0IDA0OjQ1LCA8U3Rl d2FydC5IaWxkZWJyYW5kQGRvcm5lcndvcmtzLmNvbT4gd3JvdGU6DQo+ID4+ID4gVGhlIGRpZmZl cmVuY2Ugd291bGQgYmUgd2hldGhlciB3ZSB3YW50IHRvIHJlbHkgb24gaW1wbGVtZW50YXRpb24t ZGVmaW5lZA0KPiA+PiA+IGJlaGF2aW9yIG9yIG5vdC4NCj4gPj4NCj4gPj4gV2h5IG5vdD8gU2lt cGx5IHNwZWNpZnkgdGhhdCBjb21waWxlcnMgd2l0aCBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkDQo+ ID4+IGJlaGF2aW9yIG5vdCBtYXRjaGluZyBvdXIgZXhwZWN0YXRpb25zIGFyZSB1bnN1aXRhYmxl LiBBbmQgYnR3LCBJDQo+ID4+IHN1cHBvc2UgdGhpcyBpcyBqdXN0IHRoZSB0aW55IHRpcCBvZiB0 aGUgaWNlYmVyZyBvZiBvdXIgcmVsaWFuY2Ugb24NCj4gPj4gaW1wbGVtZW50YXRpb24gZGVmaW5l ZCBiZWhhdmlvci4NCj4gPg0KPiA+IFRoZSByZWFzb24gaXMgdGhhdCByZWx5aW5nIG9uIHVuZGVm aW5lZCBiZWhhdmlvciBpcyBub3QgcmVsaWFibGUsIGl0IGlzDQo+ID4gbm90IEMgY29tcGxpYW50 LCBpdCBpcyBub3QgYWxsb3dlZCBieSBNSVNSQS1DLCBhbmQgbm90IGd1YXJhbnRlZWQgdG8NCj4g PiB3b3JrIHdpdGggYW55IGNvbXBpbGVyLg0KPiANCj4gInVuZGVmaW5lZCBiZWhhdmlvciIgIT0g ImltcGxlbWVudGF0aW9uIGRlZmluZWQgYmVoYXZpb3IiDQo+IA0KDQpUaGUgQyBzdGFuZGFyZCBn aXZlcyBkZWZpbml0aW9ucyBmb3IgdW5zcGVjaWZpZWQsIGltcGxlbWVudGF0aW9uIGRlZmluZWQs DQphbmQgdW5kZWZpbmVkIGJlaGF2aW9yLg0KVG8gcGFyYXBocmFzZToNCi0gVW5zcGVjaWZpZWQg YmVoYXZpb3I6IHRoZSBDIHN0YW5kYXJkIGludGVudGlvbmFsbHkgbGVhdmVzIGEgY2hvaWNlIGZv cg0KICB0aGUgaW1wbGVtZW50YXRpb24gdG8gbWFrZS4NCi0gSW1wbGVtZW50YXRpb24gZGVmaW5l ZCBiZWhhdmlvcjogdGhlIGltcGxlbWVudGF0aW9uJ3MgY2hvaWNlIG9mIHRoZQ0KICB1bnNwZWNp ZmllZCBiZWhhdmlvci4NCi0gVW5kZWZpbmVkIGJlaGF2aW9yOiB0aGUgQyBzdGFuZGFyZCBkb2Vz IG5vdCBpbXBvc2UgYW55IHJlcXVpcmVtZW50cy4NCg0KQW5uZXggSiBpbiB0aGUgQzk5IHN0YW5k YXJkIGxpc3RzIGNhc2VzIG9mIHVuc3BlY2lmaWVkLCBpbXBsZW1lbnRhdGlvbg0KZGVmaW5lZCwg YW5kIHVuZGVmaW5lZCBiZWhhdmlvci4NCg0KVHdvIHJlbGV2YW50IGV4YW1wbGVzIGFyZToNCi0g VGhlIHdpZHRoIG9mIHVuc2lnbmVkIGxvbmcgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZCAoaS5l LiBVTE9OR19NQVggaXMNCiAgaW1wbGVtZW50YXRpb24tZGVmaW5lZCkuIFRoZSBleGFtcGxlIGdp dmVuIGluIEFubmV4IEUgaW4gdGhlIEMgc3RhbmRhcmQNCiAgaXMgIiNkZWZpbmUgVUxPTkdfTUFY IDQyOTQ5NjcyOTUiLCBidXQgdGhhdCBpcyB0byBiZSByZXBsYWNlZCBieSB0aGUNCiAgaW1wbGVt ZW50YXRpb24ncyBjaG9pY2UuDQotIFBlcmZvcm1pbmcgc3VidHJhY3Rpb24gb24gcG9pbnRlcnMg dG8gZGlmZmVyZW50IG9iamVjdHMgaXMgdW5kZWZpbmVkDQogIGJlaGF2aW9yLg0KDQo+ID4gWWVz LCB0aGlzIGluc3RhbmNlIGlzIG9ubHkgdGhlIHRpcCBvZiB0aGUNCj4gPiBpY2ViZXJnLCB3ZSBo YXZlIGEgbG9uZyByb2FkIGFoZWFkLCBidXQgd2Ugc2hvdWxkbid0IHJlYWxseSBnaXZlIHVwDQo+ ID4gYmVjYXVzZSBpdCBpcyBnb2luZyB0byBiZSBkaWZmaWN1bHQgOi0pIFN0ZXdhcnQncyBhcHBy b2FjaCB3b3VsZA0KPiA+IGFjdHVhbGx5IGJlIGNvbXBsaWFudCBhbmQgaGVscCB0b3dhcmQgcmVk dWNpbmcgcmVsaWFuY2Ugb24gdW5kZWZpbmVkDQo+ID4gYmVoYXZpb3IuDQo+ID4NCj4gPiBXb3Vs ZCB5b3UgYmUgT0sgaWYgSSByZXdvcmsgdGhlIHNlcmllcyB0byBmb2xsb3cgaGlzIGFwcHJvYWNo IHVzaW5nDQo+ID4gaW50ZXJtZWRpYXRlIHZhcmlhYmxlcz8gU2VlIHRoZSBhdHRhY2hlZCBwYXRj aCBhcyBhIHJlZmVyZW5jZSwgaXQgb25seQ0KPiA+ICJjb252ZXJ0cyIgX3N0YXJ0IGFuZCBfZW5k IGFzIGFuIGV4YW1wbGUuIEZvcnR1bmF0ZWx5LCBpdCB3aWxsIGJlDQo+ID4gdGV4dHVhbGx5IHNp bWlsYXIgdG8gdGhlIHByZXZpb3VzIFNZTUJPTCByZXR1cm5pbmcgdW5zaWduZWQgbG9uZyB2ZXJz aW9uDQo+ID4gb2YgdGhlIHNlcmllcy4NCj4gDQo+IFdlbGwsIEkndmUgZ2l2ZW4gcmVhc29ucyB3 aHkgSSBkaXNsaWtlIHRoYXQsIGFuZCB3aHkgKEkgdGhpbmspIGl0IHdhcw0KPiBkb25lIHdpdGhv dXQgc3VjaCBpbnRlcm1lZGlhdGUgdmFyaWFibGVzLiBOZXZlcnRoZWxlc3MsIGlmIHRoaXMgaXMN Cj4gX3RoZSBvbmx5IHdheV8gdG8gYWNoaWV2ZSBjb21wbGlhbmNlLCBJIGRvbid0IHRoaW5rIEkg Y291bGQNCj4gcmVhc29uYWJseSBOQUsgaXQuDQo+IA0KPiBUaGUgdGhpbmcgdGhhdCBJIGRvbid0 IHVuZGVyc3RhbmQgdGhvdWdoIGlzIGhvdyB0aGUgdW5kZWZpbmVkDQo+IGJlaGF2aW9yIChpZiB0 aGVyZSByZWFsbHkgaXMgYW55KSBnb2VzIGF3YXk6IEV2ZW4gaWYgeW91IGNvbXBhcmUNCj4gdGhl IGNvbnRlbnRzIG9mIHRoZSB2YXJpYWJsZXMgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgKHBlcmhh cHMNCj4gY2FzdGVkKSBwb2ludGVycywgaW4gdGhlIGVuZCB5b3Ugc3RpbGwgY29tcGFyZSB3aGF0 IEMgd291bGQNCj4gY29uc2lkZXIgcG9pbnRlcnMgdG8gZGlmZmVyZW50IG9iamVjdHMuIEl0J3Mg bWVyZWx5IGEgZGlmZmVyZW50DQo+IHdheSBvZiBoaWRpbmcgdGhhdCBmYWN0IGZyb20gQy4gVW5k ZWZpbmVkIGJlaGF2aW9yIHdvdWxkIGltbw0KPiBnbyBhd2F5IG9ubHkgaWYgdGhvc2UgY29tcGFy aXNvbnMvc3VidHJhY3Rpb25zIGRpZG4ndCBoYXBwZW4NCj4gaW4gQyBhbnltb3JlLiBJT1cgLSBz ZWUgbXkgLnN0YXJ0b2YuKCkgLyAuc2l6ZW9mLigpIHByb3Bvc2FsLg0KDQpObywgdGhlIEMgc3Rh bmRhcmQgcHJvdmlkZXMgdXMgYSBndWFyYW50ZWUuDQoNClRvIHF1b3RlIHRoZSBJU08vSUVDIDk4 OTkgQzk5IHN0YW5kYXJkIHJlZ2FyZGluZyB0aGUgc3VidHJhY3Qgb3BlcmF0b3I6DQo+IEZvciBz dWJ0cmFjdGlvbiwgb25lIG9mIHRoZSBmb2xsb3dpbmcgc2hhbGwgaG9sZDoNCj4gLSBib3RoIG9w ZXJhbmRzIGhhdmUgYXJpdGhtZXRpYyB0eXBlOw0KPiAtIGJvdGggb3BlcmFuZHMgYXJlIHBvaW50 ZXJzIHRvIHF1YWxpZmllZCBvciB1bnF1YWxpZmllZCB2ZXJzaW9ucyBvZg0KPiAgIGNvbXBhdGli bGUgb2JqZWN0IHR5cGVzOyBvcg0KPiAtIHRoZSBsZWZ0IG9wZXJhbmQgaXMgYSBwb2ludGVyIHRv IGFuIG9iamVjdCB0eXBlIGFuZCB0aGUgcmlnaHQgb3BlcmFuZA0KPiAgIGhhcyBpbnRlZ2VyIHR5 cGUuDQo+IA0KPiBJZiBib3RoIG9wZXJhbmRzIGhhdmUgYXJpdGhtZXRpYyB0eXBlLCB0aGUgdXN1 YWwgYXJpdGhtZXRpYyBjb252ZXJzaW9ucw0KPiBhcmUgcGVyZm9ybWVkIG9uIHRoZW0uDQo+IA0K PiBXaGVuIGFuIGV4cHJlc3Npb24gdGhhdCBoYXMgaW50ZWdlciB0eXBlIGlzIGFkZGVkIHRvIG9y IHN1YnRyYWN0ZWQgZnJvbQ0KPiBhIHBvaW50ZXIgLi4uIElmIGJvdGggdGhlIHBvaW50ZXIgb3Bl cmFuZCBhbmQgdGhlIHJlc3VsdCBwb2ludCB0bw0KPiBlbGVtZW50cyBvZiB0aGUgc2FtZSBhcnJh eSBvYmplY3QsIG9yIG9uZSBwYXN0IHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlDQo+IGFycmF5IG9i amVjdCwgdGhlIGV2YWx1YXRpb24gc2hhbGwgbm90IHByb2R1Y2UgYW4gb3ZlcmZsb3c7IG90aGVy d2lzZSwNCj4gdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4NCg0KSGVyZSwgImFyaXRobWV0aWMg dHlwZSIgaXMgZWl0aGVyIGludGVnZXIgdHlwZSBvciBmbG9hdGluZyBwb2ludCB0eXBlIChidXQN Ck5PVCBwb2ludGVyIHR5cGUpLg0KDQpUaGVyZSBpcyBzaW1pbGFyIGxhbmd1YWdlIGZvciB0aGUg ZXF1YWxpdHkgY29tcGFyaXNvbiBvcGVyYXRvciB0aGF0DQpTdGVmYW5vIHF1b3RlZCBlYXJsaWVy IGluIHRoZSB0aHJlYWQuDQoNCk15IGludGVycHJldGF0aW9uIG9mIHRoZSBzdGFuZGFyZCBpczoN ClN1YnRyYWN0L2NvbXBhcmUgb3BlcmF0aW9ucyB3aGVyZSBvbmUgb3IgYm90aCBvcGVyYW5kcyBh cmUgcG9pbnRlciB0eXBlcw0KYXJlIHBvdGVudGlhbGx5IHN1YmplY3QgdG8gdGhlICJwb2ludGVy cyB0byBkaWZmZXJlbnQgb2JqZWN0cyIgaXNzdWUsIGFuZA0KdGhlIGNvbXBpbGVyIGlzIGZyZWUg dG8gbWFrZSB0aGF0IGRldGVybWluYXRpb24gYnkgYW55IG1lYW5zIGF2YWlsYWJsZS4NClN1YnRy YWN0L2NvbXBhcmUgb3BlcmF0aW9ucyB3aGVyZSBib3RoIG9wZXJhbmRzIGFyZSBpbnRlZ2VyIHR5 cGVzIGFyZSB3ZWxsDQpkZWZpbmVkIGluIHRoZSBDIHN0YW5kYXJkLCBhbmQsIHBlciB0aGUgQyBz dGFuZGFyZCwgYXJlIE5PVCBzdWJqZWN0IHRvIHRoZQ0KInBvaW50ZXJzIHRvIGRpZmZlcmVudCBv YmplY3RzIiBpc3N1ZS4gSWYgdGhlIGNvbXBpbGVyIHN0YXJ0cyB0byBjb25zaWRlcg0KaW50ZWdl ciB0eXBlcyBiZWluZyAicG9pbnRlcnMgdG8gZGlmZmVyZW50IG9iamVjdHMiIHRoZW4gdGhlIGNv bXBpbGVyDQpjbGVhcmx5IGRvZXMgbm90IGFkaGVyZSB0byB0aGUgQyBzdGFuZGFyZC4gVGhlIGNv bXBpbGVyIG1heSBsb29rIHRocm91Z2gNCipwb2ludGVyIHR5cGUqIGNhc3RzLCBidXQgaWYgaXQg c3RhcnRlZCB0byBsb29rIHRocm91Z2ggKmludGVnZXIgdHlwZSoNCmNhc3RzLCB3ZSB3b3VsZCBo YXZlIGdvb2QgcmVhc29uIHRvIGNvbXBsYWluIHRvIHRoZSBHQ0MgbWFpbGluZyBsaXN0Lg0KDQpZ b3UgY291bGQgYWNoaWV2ZSBib3RoIG9wZXJhbmRzIGJlaW5nIGludGVnZXIgdHlwZXMgZWl0aGVy IGJ5IGNoYW5naW5nIHRoZQ0KdHlwZSBvZiBfc3RhcnQgKHVzaW5nIGludGVybWVkaWF0ZSB2YXJp YWJsZXMpIG9yIGJ5IGNhc3RpbmcgKHVzaW5nDQpTWU1CT0xfSElERSB3aXRoIGFuIGludGVnZXIg cmV0dXJuIHR5cGUpLiBJIHdvdWxkIGFyZ3VlIHRoYXQgY2hhbmdpbmcgdGhlDQp0eXBlIG9mIF9z dGFydCB3b3VsZCBiZSBsZXNzIHByb25lIHRvIGh1bWFuIGVycm9yLCBzaW5jZSBkZXZlbG9wZXJz DQp3b3VsZG4ndCBoYXZlIHRvIHJlbWVtYmVyIHRvIGV4cGxpY2l0bHkgd3JhcCBlYWNoIHJlZmVy ZW5jZSB0byBfc3RhcnQgYW5kDQpmcmllbmRzIGluIGEgbWFjcm8uIFRoYXQncyBwcm9iYWJseSBu b3QgYW4gaXNzdWUgZm9yIHRoZSBwYXRjaGVzIHN1Ym1pdHRlZA0KdG8geGVuLWRldmVsIHRoYXQg YXJlIHN1YmplY3QgdG8gaW5mb3JtZWQgcmV2aWV3LCBidXQgaW4gcG90ZW50aWFsDQpkb3duc3Ry ZWFtL2ZvcmtzIG9mIFhlbiwgaXQgd291bGQgYmUgZWFzeSBmb3Igc29tZWJvZHkgdG8gbWlzcyB0 aGUNCnJlcXVpcmVtZW50IG9mIGhhdmluZyB0byB1c2UgU1lNQk9MX0hJREUgZXZlcnkgdGltZSB0 aGUgdmFyaWFibGUgaXMNCnJlZmVyZW5jZWQuIFNvbWVib2R5IHdyb3RlIHRoZSBjb2RlIHRoaXMg d2F5IGluIHRoZSBmaXJzdCBwbGFjZSwgYW5kIHRoZQ0KcG90ZW50aWFsbHkgdW5kZWZpbmVkIGJl aGF2aW9yIGhhcyBiZWVuIGluIHVwc3RyZWFtIGZvciB5ZWFycyB3aXRob3V0IGFueQ0KcmVtZWRp YXRpb24uDQoNCldpdGggdGhlIFNZTUJPTF9ISURFIGFwcHJvYWNoLCB3ZSBhcmUgcHJvYmFibHkg dmlvbGF0aW5nIGEgZmV3IE1JU1JBIHJ1bGVzDQp3aXRoIGFsbCB0aGUgdHJpY2tzIGdvaW5nIG9u IGluc2lkZSBTWU1CT0xfSElERSwgc28gd2UnZCBoYXZlIHRvIHdyaXRlIHVwDQpkZXZpYXRpb25z IHdpdGgganVzdGlmaWNhdGlvbiBmb3IgdGhhdCBhbmQgdHJhY2sgZWFjaCBvY2N1cnJlbmNlLiBX aXRoIHRoZQ0KYXBwcm9hY2ggb2YgY2hhbmdpbmcgdGhlIHR5cGUgb2YgX3N0YXJ0LCBJIGJlbGll dmUgdGhlcmUgd2lsbCBiZSBmZXdlcg0KTUlTUkEgcnVsZSB2aW9sYXRpb25zLg0KDQpKdXN0IHRv IHJlaXRlcmF0ZSwgTUlTUkEgQyBzYXlzOiBkb24ndCBzdWJ0cmFjdC9jb21wYXJlICpwb2ludGVy IHR5cGVzKg0KcG9pbnRpbmcgdG8gZGlmZmVyZW50IG9iamVjdHMsIG90aGVyd2lzZSBpdCdzICJ1 bmRlZmluZWQgYmVoYXZpb3IiIGV4Y2VwdA0KaW4gb25lIGlycmVsZXZhbnQgY29ybmVyIGNhc2Ug KEknbSBwYXJhcGhyYXNpbmcgc2luY2UgdGhlIGFjdHVhbCB0ZXh0IGlzDQpjb3B5cmlnaHRlZCku IElmIHRoZSBvcGVyYW5kcyBhcmUgYm90aCBpbnRlZ2VyIHR5cGVzIChub3QgcG9pbnRlciB0eXBl cyksDQp3ZSBkb24ndCByaXNrIHZpb2xhdGluZyB0aGUgTUlTUkEgcnVsZXMgcGVydGFpbmluZyB0 byBwb2ludGVyIHR5cGVzLiBGb3INCmNvbXBsZXRlbmVzcywgdGhlIGNvcm5lciBjYXNlIGlzIHBv aW50ZXIgQSBwb2ludGluZyB0byBvbmUgZWxlbWVudCBwYXN0DQp0aGUgZW5kIG9mIG9iamVjdCBB LCBhbmQgcG9pbnRlciBCIHBvaW50aW5nIHRvIHRoZSBiZWdpbm5pbmcgb2Ygb2JqZWN0IEIuDQoN Cj4gDQo+ID4gSWYgeW91IGFyZSBPSyB3aXRoIGl0LCBkbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdGlv bnMgb24gaG93IHdvdWxkIHlvdSBsaWtlDQo+ID4gdGhlIGludGVybWVkaWF0ZSB2YXJpYWJsZXMg dG8gYmUgY2FsbGVkPyBJIHdlbnQgd2l0aCBfc3RhcnQvc3RhcnRfIGFuZA0KPiA+IF9lbmQvZW5k XyBidXQgSSBhbSBvcGVuIHRvIHN1Z2dlc3Rpb25zLiBBbHNvIHRvIHdoaWNoIGFzc2VtYmx5IGZp bGUgeW91DQo+ID4gd291bGQgbGlrZSB0aGUgbmV3IHZhcmlhYmxlcyBiZWluZyBhZGRlZCAtLSBJ IGNyZWF0ZWQgYSBuZXcgb25lIGZvciB0aGUNCj4gPiBwdXJwb3NlIG5hbWVkIHZhci5TIGluIHRo ZSBhdHRhY2hlZCBleGFtcGxlLg0KPiANCj4gRmlyc3Qgb2YgYWxsIHdlIHNob3VsZCBleHBsb3Jl IHdoZXRoZXIgdGhlIHZhcmlhYmxlcyBjb3VsZCBhbHNvIGJlDQo+IGxpbmtlciBnZW5lcmF0ZWQs IGluIHBhcnRpY3VsYXIgdG8gYXZvaWQgdGhlIGN1cnJlbnQgc3ltYm9scyB0byBiZQ0KPiBnbG9i YWwgKHRodXMgbWFraW5nIGl0IGltcG9zc2libGUgdG8gYWNjZXNzIHRoZW0gZnJvbSBDIGZpbGVz IGluIHRoZQ0KPiBmaXJzdCBwbGFjZSkuDQoNCkludGVyZXN0aW5nIGlkZWEuIFRoYXQgY2VydGFp bmx5IHdvdWxkIGJlIGlkZWFsIGlmIHRoZSBsaW5rZXIgd2lsbCBhbGxvdw0KaXQuDQoNCj4gRmFp bGluZyB0aGF0LCBJIGRvbid0IHRoaW5rIGl0IG1hdHRlcnMgbXVjaCB3aGVyZSB0aGVzZQ0KPiBo ZWxwZXIgc3ltYm9scyBsaXZlLCBhbmQgaGVuY2UgeW91ciBjaG9pY2UgaXMgcHJvYmFibHkgZmlu ZSAoSSdkDQo+IHByZWZlciB0aG91Z2ggaWYsIGp1c3QgbGlrZSBvbiBBcm0sIHRoZSB4ODYgZmls ZSBkaWRuJ3QgbGl2ZSBpbiB0aGUNCj4gYm9vdC8gc3ViZGlyZWN0b3J5OyBpbiB0aGUgZW5kIGl0 IG1pZ2h0IGV2ZW4gYmUgcG9zc2libGUgdG8gaGF2ZQ0KPiBzb21lIG9mIHRoZW0gaW4geGVuL2Nv bW1vbi92YXIuUykuDQo+IA0KPiBKYW4NCg0KKGlmIHlvdSdyZSB0aXJlZCBvZiByZWFkaW5nIG15 IHdhbGxzIG9mIHRleHQsIHlvdSBjYW4gc3RvcCBoZXJlKQ0KDQpMYXN0bHksIHBsZWFzZSBsZXQg bWUgdGFrZSBhIG1vbWVudCB0byByZWl0ZXJhdGUgd2h5IE1JU1JBIEMgZXhpc3RzIGFuZA0KaG93 IHNhZmV0eSBjZXJ0aWZpY2F0aW9uIHJlbGF0ZXMgdG8gdGhlIFhlbiBwcm9qZWN0LiBIZXJlIGlz IGEgcXVpY2sNCmRlZmluaXRpb24gdHdvIGRpc3RpbmN0IGNvbmNlcHRzOg0KU2FmZXR5OiBwcmVz ZXJ2YXRpb24gb2YgaHVtYW4gbGlmZSBhbmQgYXZvaWRpbmcgaGFybWZ1bCBiZWhhdmlvci4NClNl Y3VyaXR5OiBsb2NraW5nIHVwIHlvdXIgdmFsdWFibGVzLg0KDQpBcyBlbWJlZGRlZCBkZXZpY2Vz IGdhaW4gbW9yZSBjb25uZWN0aXZpdHkgYW5kIGZ1bmN0aW9uYWxpdHksIGl0IGlzDQpiZWNvbWlu ZyBtb3JlIGVjb25vbWljYWwgdG8gY29uc29saWRhdGUgZnVuY3Rpb25zIChib3RoIHNhZmV0eSBh bmQNCm5vbi1zYWZldHkgY3JpdGljYWwpIG9uIHRvIGEgc2luZ2xlIGhhcmR3YXJlIHBsYXRmb3Jt LCBoZW5jZSB0aGUgbmVlZCBmb3INCmEgaHlwZXJ2aXNvci4gT25lIG9mIHRoZSBkcmF3cyBvZiBw b3RlbnRpYWxseSB1c2luZyBYZW4gaW4gYSBzYWZldHkNCmNyaXRpY2FsIHN5c3RlbSBpcyB0aGF0 IGl0IGFscmVhZHkgaGFzIGFuIGV4dHJlbWVseSBsYXJnZSB1c2VyIGJhc2UgdGhhdA0KY2FyZXMg YSBsb3QgYWJvdXQgc2VjdXJpdHkuIEFsdGhvdWdoIHNhZmV0eSBhbmQgc2VjdXJpdHkgYXJlIHR3 byBkaXN0aW5jdA0KY29uY2VwdHMsIHRoZXJlIGlzIHN0aWxsIGEgbG90IG9mIG92ZXJsYXAuIEEg Y29kaW5nIGVycm9yIHRoYXQgYWxsb3dzIGENCmhhY2tlciB0byBhY2Nlc3MgYSBwcml2YXRlIGRh dGFiYXNlIGNvdWxkIGp1c3QgYXMgd2VsbCBjYXVzZSB1bmludGVuZGVkDQphY2NlbGVyYXRpb24g aW4gYSBkcml2ZS1ieS13aXJlIHN5c3RlbS4gSW4gdGhlIHNhZmV0eSBjcml0aWNhbCB3b3JsZCwg aXQNCmlzIG5vdCBlbm91Z2ggdG8gc2F5IHRoYXQgc29tZXRoaW5nIHdvcmtzLCB3ZSBhbHNvIGhh dmUgdG8gZG8gb3VyIGR1ZQ0KZGlsaWdlbmNlIHRvIGVuc3VyZSB0aGF0IGl0IHdvbid0IGV4aGli aXQgdW5pbnRlbmRlZCBiZWhhdmlvciBhbmQgdGhhdCBpdA0Ka2VlcHMgd29ya2luZyByZWxpYWJs eS4gVGhlIHJpZ29yIGFuZCBhc3N1cmFuY2UgaW52b2x2ZWQgaW4gYSBzYWZldHkNCmNyaXRpY2Fs IHByb2Nlc3MgaXMgYSBwcmV0dHkgcG93ZXJmdWwgYmVuZWZpdCB0aGF0IEkgdGhpbmsgY2Fycmll cyBvdmVyIHRvDQp0aG9zZSB3aG8gY2FyZSBhYm91dCBzZWN1cml0eS4NCg0KRnJvbSBhIE1JU1JB IHBlcnNwZWN0aXZlLCB3ZSBoYXZlIHRvIGRvY3VtZW50IGFuZCBlbnN1cmUgZGV2ZWxvcGVycw0K dW5kZXJzdGFuZCBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGJlaGF2aW9yIChNSVNSQSBDOjIwMTIg RGlyZWN0aXZlIDEuMSkuDQpXZSBhbHNvIGNhbid0IHVzZSBhbnkgdW5kZWZpbmVkIGJlaGF2aW9y IChSdWxlIDEuMykuIFdoZXJlIGl0IGlzDQp1bmF2b2lkYWJsZSB0byB2aW9sYXRlIGEgcnVsZSwg d2UgaGF2ZSB0byB3cml0ZSB1cCBkZXZpYXRpb25zIGZvciBNSVNSQQ0KcnVsZXMgdGhhdCBhcmUg dmlvbGF0ZWQsIGFuZCBqdXN0aWZ5L21haW50YWluIGVhY2ggdmlvbGF0aW9uIG9mIGEgTUlTUkEN CnJ1bGUuIEl0J3MgbXVjaCBtb3JlIG1haW50YWluYWJsZSBhbmQganVzdGlmaWFibGUgZnJvbSBh IE1JU1JBIHBlcnNwZWN0aXZlDQp0byBub3QgdmlvbGF0ZSB0aGUgcnVsZSBpbiB0aGUgZmlyc3Qg cGxhY2UuIFRoZSBsb25nZXIgb3VyIGxpc3Qgb2YNCnZpb2xhdGlvbnMgYmVjb21lcywgdGhlIGxh cmdlciB0aGUgYnVyZGVuIGltcG9zZWQgb24gdGhlIGNvbW11bml0eSB0aGF0DQpjYXJlcyBhYm91 dCBzYWZldHkgY2VydGlmaWNhdGlvbi4gVGhpcyBpcyBub3Qgc29tZXRoaW5nIHRoYXQgd291bGQg YmUNCm5lY2Vzc2FyeSBmb3IgdGhlIGVudGlyZSBjb2RlYmFzZSwgb25seSBhIHNhZmV0eSBjZXJ0 aWZpZWQgc3Vic2V0LiBGb3INCk1JU1JBLCB3ZSBoYXZlIG5vIGNob2ljZSBidXQgdG8gcGljayBh cGFydCB0aGUgZW50aXJlIHNhZmV0eSBjZXJ0aWZpZWQNCnN1YnNldCBvZiB0aGUgaWNlYmVyZy4N Cg0KTGV0J3MgYXNzdW1lLCBmb3IgZXhhbXBsZSwgdGhhdCB3ZSB3b3VsZCBoYXZlIHRvIGRvY3Vt ZW50IHdoeSAiaW5zcGVjdGluZw0KdGhlIHRleHQgb2YgYW4gYXNtKCkgaXMgc29tZXRoaW5nIHRo YXQgc2hvdWxkIG5ldmVyIGhhcHBlbiIsIHRodXMNCmd1YXJhbnRlZWluZyB0aGF0IHRoZSBjb21w aWxlciB3b24ndCBtYWtlIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIHZhbHVlDQpwYXNzZWQgdGhy b3VnaCB0aGF0IGlubGluZSBhc3NlbWJseSBjb3VsZCBiZSBjb25zaWRlcmVkIGEgInBvaW50ZXIg dG8gYQ0KZGlmZmVyZW50IG9iamVjdCIuIERvY3VtZW50aW5nIHRoaXMgY291bGQgcmFuZ2UgYW55 d2hlcmUgZnJvbSBzaW1wbHkNCnJlZmVyZW5jaW5nIGNvbXBpbGVyIGRvY3VtZW50YXRpb24gdG8g aW5zcGVjdGluZyBjb21waWxlciBzb3VyY2UgY29kZSBhbmQNCnBvdGVudGlhbGx5IGltcG9zaW5n IGNlcnRhaW4gcmVzdHJpY3Rpb25zIG9uIHdoYXQgb3B0aW1pemF0aW9uIGZsYWdzIHdlJ3JlDQph bGxvd2VkIHRvIHVzZSwgYW5kIHRoZW4gbGlrZWx5IHBpbm5pbmcgdGhlIGNvbXBpbGVyIHZlcnNp b24uDQoNCk9uY2UgdGhlIHNhZmV0eSBjcml0aWNhbCBzdWJzZXQgaGFzIGJlZW4gZnVsbHkgZGVm aW5lZCwgSSB3b3VsZG4ndCBydWxlDQpvdXQgdGhlIHBvc3NpYmlsaXR5IHRoYXQgc29tZWJvZHkg d2lsbCB0cnkgdG8gdXNlIGEgY29tcGlsZXIgYnVpbHQgZm9yDQpzYWZldHkgY3JpdGljYWwgYXBw bGljYXRpb25zLiBHQ0MgaGFzIHRvbyBtYW55IHVucmVndWxhdGVkIG1vdmluZyBwaWVjZXMNCnRv IHJlYWxseSBiZSBzdWl0YWJsZSBmb3IgaGlnaGVyIGxldmVscyBvZiBzYWZldHkgYXNzdXJhbmNl ICh1bmxlc3MgeW91DQpwYWluc3Rha2luZ2x5IHBlcmZvcm0gbWFudWFsIG9iamVjdCBjb2RlIHZl cmlmaWNhdGlvbiAtIHdoaWNoIHdlIG9idmlvdXNseQ0KdHJ5IHRvIGF2b2lkIGlmIHdlIGNhbiBk dWUgdG8gdGhlIGVmZm9ydCBpbnZvbHZlZC4gQW5kIGV2ZW4gd2l0aCB0aGUgcmlnaHQNCmNvbXBp bGVyLCBzb21ldGltZXMgdGhpcyBzdGlsbCBoYXMgdG8gYmUgZG9uZSBmb3IgY2VydGFpbiBzb2Z0 d2FyZSBvbg0KY29tbWVyY2lhbCBhaXJsaW5lcnMgLSBidXQgWGVuIGhhcyBxdWl0ZSBhIHdheSB0 byBnbyBiZWZvcmUgdGhhdCB3b3VsZA0KcmVhc29uYWJseSBoYXBwZW4pLg0KDQpBdCB0aGUgZW5k IG9mIHRoZSBkYXksIEkgaGF2ZSBhIGhhcmRlciB0aW1lIGp1c3RpZnlpbmcgbW9yZSBhbmQgbW9y ZQ0KaW1wbGVtZW50YXRpb24gZGVmaW5lZCBiZWhhdmlvciBhbmQgcnVsZSB2aW9sYXRpb25zIHdo ZW4gdGhlcmUgaXMgYQ0KcHJvcG9zZWQgc29sdXRpb24gdGhhdCBhdm9pZHMgdmlvbGF0aW5nIGNl cnRhaW4gTUlTUkEgcnVsZXMgaW4gdGhlIGZpcnN0DQpwbGFjZS4gSSBsaXZlIGluIGEgd29ybGQg d2hlcmUgKnNob3VsZCBuZXZlciogaXNuJ3Qgc29tZXRoaW5nIEkgd291bGQNCnRydXN0IG15IGxp ZmUgdG8uDQoNClN0ZXcNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=