From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: Re: [RFC PATCH 00/31] CPUFreq on ARM Date: Mon, 13 Nov 2017 21:40:58 +0200 Message-ID: References: <1510247421-24094-1-git-send-email-olekstysh@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eEKbP-0003z3-BK for xen-devel@lists.xenproject.org; Mon, 13 Nov 2017 19:41:03 +0000 Received: by mail-it0-f52.google.com with SMTP id r127so10736310itb.5 for ; Mon, 13 Nov 2017 11:41:00 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andre Przywara Cc: "Edgar E . Iglesias" , Stefano Stabellini , Jassi Brar , Andrew Cooper , Julien Grall , Oleksandr Tyshchenko , Jan Beulich , Sudeep Holla , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gTW9uLCBOb3YgMTMsIDIwMTcgYXQgNToyMSBQTSwgQW5kcmUgUHJ6eXdhcmEKPGFuZHJlLnBy enl3YXJhQGxpbmFyby5vcmc+IHdyb3RlOgo+IEhpLApIaSBBbmRyZQoKPgo+IHRoYW5rcyB2ZXJ5 IG11Y2ggZm9yIHlvdXIgd29yayBvbiB0aGlzIQpUaGFuayB5b3UgZm9yIHlvdXIgY29tbWVudHMu Cgo+Cj4gT24gMDkvMTEvMTcgMTc6MDksIE9sZWtzYW5kciBUeXNoY2hlbmtvIHdyb3RlOgo+PiBG cm9tOiBPbGVrc2FuZHIgVHlzaGNoZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVua29AZXBhbS5jb20+ Cj4+Cj4+IEhpLCBhbGwuCj4+Cj4+IFRoZSBwdXJwb3NlIG9mIHRoaXMgUkZDIHBhdGNoIHNlcmll cyBpcyB0byBhZGQgQ1BVRnJlcSBzdXBwb3J0IHRvIFhlbiBvbiBBUk0uCj4+IE1vdGl2YXRpb24g b2YgaHlwZXJ2aXNvciBiYXNlZCBDUFVGcmVxIGlzIHRvIGVuYWJsZSBvbmUgb2YgdGhlIG1haW4g UE0gdXNlLWNhc2VzIGluIHZpcnR1YWxpemVkIHN5c3RlbSBwb3dlcmVkIGJ5IFhlbiBoeXBlcnZp c29yLiBSYXRpb25hbGUgYmVoaW5kIHRoaXMgYWN0aXZpdHkgaXMgdGhhdCBDUFUgdmlydHVhbGl6 YXRpb24gaXMgZG9uZSBieSBoeXBlcnZpc29yIGFuZCB0aGUgZ3Vlc3QgT1MgZG9lc24ndCBhY3R1 YWxseSBrbm93IGFueXRoaW5nIGFib3V0IHBoeXNpY2FsIENQVXMgYmVjYXVzZSBpdCBpcyBydW5u aW5nIG9uIHZpcnR1YWwgQ1BVcy4gSXQgaXMgcXVpdGUgY2xlYXIgdGhhdCBhIGRlY2lzaW9uIGFi b3V0IGZyZXF1ZW5jeSBjaGFuZ2Ugc2hvdWxkIGJlIHRha2VuIGJ5IGh5cGVydmlzb3IgYXMgb25s eSBpdCBoYXMgaW5mb3JtYXRpb24gYWJvdXQgYWN0dWFsIENQVSBsb2FkLgo+Cj4gQ2FuIHlvdSBw bGVhc2Ugc2tldGNoIHlvdXIgdXNhZ2Ugc2NlbmFyaW8gb3Igd29ya2xvYWRzIGhlcmU/IEkgY2Fu IHRoaW5rCj4gb2YgcXVpdGUgZGlmZmVyZW50IHNjZW5hcmlvcyAob3ZlcnN1YnNjcmliZWQgc2Vy dmVyIHZzLiBwYXJ0aXRpb25pbmcKPiBSVE9TIGd1ZXN0cywgZm9yIGluc3RhbmNlKS4gVGhlIHVz ZWZ1bG5lc3Mgb2YgQ1BVRnJlcSBhbmQgdGhlIHRyYWRlLW9mZnMKPiBpbiB0aGUgZGVzaWduIGFy ZSBxdWl0ZSBkaWZmZXJlbnQgYmV0d2VlbiB0aG9zZS4KV2Uga2VlcCBlbWJlZGRlZCB1c2UtY2Fz ZXMgaW4gbWluZC4gRm9yIGV4YW1wbGUsIGl0IGlzIGEgc3lzdGVtIHdpdGgKc2V2ZXJhbCBkb21h aW5zLAp3aGVyZSBvbmUgZG9tYWluIGhhcyBtb3N0IGNyaXRpY2FsIFNXIHJ1bm5pbmcgb24gYW5k IG90aGVyIGRvbWFpbihzKQphcmUsIGxldCBzYXksIGZvciBlbnRlcnRhaW5tZW50IHB1cnBvc2Vz LgpJIHRoaW5rLCB0aGUgQ1BVRnJlcSBpcyB1c2VmdWwgd2hlcmUgcG93ZXIgY29uc3VtcHRpb24g aXMgYSBxdWVzdGlvbi4KCj4KPiBJbiBnZW5lcmFsIEkgZG91YnQgdGhhdCBhIGh5cGVydmlzb3Ig c2NoZWR1bGluZyB2Q1BVcyBpcyBpbiBhIGdvb2QKPiBwb3NpdGlvbiB0byBtYWtlIGEgZGVjaXNp b24gb24gdGhlIHByb3BlciBmcmVxdWVuY3kgcGh5c2ljYWwgQ1BVcyBzaG91bGQKPiBydW4gd2l0 aC4gRnJvbSBhbGwgSSBrbm93IGl0J3MgYWxyZWFkeSBoYXJkIGZvciBhbiBPUyBrZXJuZWwgdG8g bWFrZQo+IHRoYXQgY2FsbC4gU28gSSB3b3VsZCBhY3R1YWxseSBleHBlY3QgdGhhdCBndWVzdHMg cHJvdmlkZSBzb21lIGlucHV0LAo+IGZvciBpbnN0YW5jZSBieSBzaWduYWxsaW5nIE9QUCBjaGFu Z2UgcmVxdWVzdCB1cCB0byB0aGUgaHlwZXJ2aXNvci4gVGhpcwo+IGNvdWxkIHRoZW4gZGVjaWRl IHRvIGFjdCBvbiBpdCAtIG9yIG5vdC4KRWFjaCBydW5uaW5nIGd1ZXN0IHNlZXMgb25seSBwYXJ0 IG9mIHRoZSBwaWN0dXJlLCBidXQgaHlwZXJ2aXNvciBoYXMKdGhlIHdob2xlIHBpY3R1cmUsIGl0 IGtub3dzIGFsbCBhYm91dCBDUFUsIG1lYXN1cmVzIENQVSBsb2FkIGFuZCBhYmxlCnRvIGNob29z ZSByZXF1aXJlZCBDUFUgZnJlcXVlbmN5IHRvIHJ1biBvbi4gSSBhbSB3b25kZXJpbmcsIGRvZXMg WGVuCm5lZWQgYWRkaXRpb25hbCBpbnB1dCBmcm9tIGd1ZXN0cyBmb3IgbWFrZSBhIGRlY2lzaW9u PwpCVFcsIGN1cnJlbnRseSBndWVzdCBkb21haW4gb24gQVJNIGRvZXNuJ3QgZXZlbiBrbm93IGhv dyBtYW55IHBoeXNpY2FsCkNQVXMgdGhlIHN5c3RlbSBoYXMgYW5kIHdoYXQgYXJlIHRoZXNlIE9Q UHMuIFdoZW4gY3JlYXRpbmcgZ3Vlc3QKZG9tYWluIFhlbiBpbnNlcnRzIG9ubHkgZHVtbXkgQ1BV IG5vZGVzLiBBbGwgQ1BVIGluZm8sIHN1Y2ggYXMgY2xvY2tzLApPUFBzLCB0aGVybWFsLCBldGMg YXJlIG5vdCBwYXNzZWQgdG8gZ3Vlc3QuCgo+Cj4+IEFsdGhvdWdoIHRoZXNlIHJlcXVpcmVkIGNv bXBvbmVudHMgKENQVUZyZXEgY29yZSwgZ292ZXJub3JzLCBldGMpIGFscmVhZHkgZXhpc3QgaW4g WGVuLCBpdCBpcyB3b3J0aCB0byBtZW50aW9uIHRoYXQgdGhleSBhcmUgQUNQSSBzcGVjaWZpYy4g U28sIGEgcGFydCBvZiB0aGUgY3VycmVudCBwYXRjaCBzZXJpZXMgbWFrZXMgdGhlbSBtb3JlIGdl bmVyaWMgaW4gb3JkZXIgdG8gbWFrZSBwb3NzaWJsZSBhIENQVUZyZXEgdXNhZ2Ugb24gYXJjaGl0 ZWN0dXJlcyB3aXRob3V0IEFDUEkgc3VwcG9ydCBpbi4KPgo+IEhhdmUgeW91IGxvb2tlZCBhdCBo b3cgdGhpcyBpcyB1c2VkIG9uIHg4NiB0aGVzZSBkYXlzPyBDYW4geW91IGJyaWVmbHkKPiBkZXNj cmliZSBob3cgdGhpcyB3b3JrcyBhbmQgaXQncyB1c2VkIHRoZXJlPwpYZW4gc3VwcG9ydHMgQ1BV RnJlcSBmZWF0dXJlIG9uIHg4NiBbMV0uIEkgZG9uJ3Qga25vdyBob3cgd2lkZWx5IGl0IGlzCnVz ZWQgYXQgdGhlIG1vbWVudCwgYnV0IGl0IGlzIGFub3RoZXIgcXVlc3Rpb24uIFNvLCB0aGVyZSBh cmUgdHdvCnBvc3NpYmxlIG1vZGVzOiBEb21haW4wIGJhc2VkIENQVUZyZXEgYW5kIEh5cGVydmlz b3IgYmFzZWQgQ1BVRnJlcQpbMl0uIEFzIEkgdW5kZXJzdGFuZCwgdGhlIHNlY29uZCBvcHRpb24g aXMgbW9yZSBwb3B1bGFyLgpUd28gZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBvZiAiSHlwZXJ2 aXNvciBiYXNlZCBDUFVGcmVxIiBhcmUKcHJlc2VudDogQUNQSSBQcm9jZXNzb3IgUC1TdGF0ZXMg RHJpdmVyIGFuZCBBTUQgQXJjaGl0ZWN0dXJhbCBQLXN0YXRlCkRyaXZlci4gWW91IGNhbiBmaW5k IGJvdGggdGhlbSBpbiB4ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVxLyBkaXIuCgpbMV0gaHR0cHM6 Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvWGVuX3Bvd2VyX21hbmFnZW1lbnQjQ1BVX1Atc3Rh dGVzXy4yOGNwdWZyZXEuMjkKWzJdIGh0dHBzOi8vd2lraS54ZW5wcm9qZWN0Lm9yZy93aWtpL1hl bl9wb3dlcl9tYW5hZ2VtZW50I0h5cGVydmlzb3JfYmFzZWRfY3B1ZnJlcQoKPgo+PiBCdXQsIHRo ZSBtYWluIHF1ZXN0aW9uIHdlIGhhdmUgdG8gYW5zd2VyIGlzIGFib3V0IGZyZXF1ZW5jeSBjaGFu Z2luZyBpbnRlcmZhY2UgaW4gdmlydHVhbGl6ZWQgc3lzdGVtLiBUaGUgZnJlcXVlbmN5IGNoYW5n aW5nIGludGVyZmFjZSBhbmQgYWxsIGRlcGVuZGVudCBjb21wb25lbnRzIHdoaWNoIG5lZWRlZCBD UFVGcmVxIHRvIGJlIGZ1bmN0aW9uYWwgb24gQVJNIGFyZSBub3QgcHJlc2VudCBpbiBYZW4gdGhl c2UgZGF5cy4gVGhlIGxpc3Qgb2YgcmVxdWlyZWQgY29tcG9uZW50cyBpcyBxdWl0ZSBiaWcgYW5k IG1heSBjaGFuZ2UgYWNyb3NzIGRpZmZlcmVudCBBUk0gU29DIHZlbmRvcnMuIEFzIGFuIGV4YW1w bGUsIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50cyBhcmUgaW52b2x2ZWQgaW4gRFZGUyBvbiBSZW5l c2FzIFNhbHZhdG9yLVggYm9hcmQgd2hpY2ggaGFzIFItQ2FyIEdlbjMgU29DIGluc3RhbGxlZDog Z2VuZXJpYyBjbG9jaywgcmVndWxhdG9yIGFuZCB0aGVybWFsIGZyYW1ld29ya3MsIFZlbmRvcuKA mXMgQ1BHLCBQTUlDLCBBVlMsIFRIUyBkcml2ZXJzLCBpMmMgc3VwcG9ydCwgZXRjLgo+Pgo+PiBX ZSB3ZXJlIGNvbnNpZGVyaW5nIGEgZmV3IHBvc3NpYmxlIGFwcHJvYWNoZXMgb2YgaHlwZXJ2aXNv ciBiYXNlZCBDUFVGcmVxcyBvbiBBUk0gYW5kIGNhbWUgdG8gY29uY2x1c2lvbiB0byBiYXNlIHRo aXMgc29sdXRpb24gb24gcG9wdWxhciBhdCB0aGUgbW9tZW50LCBhbHJlYWR5IHVwc3RyZWFtZWQg dG8gTGludXgsIEFSTSBTeXN0ZW0gQ29udHJvbCBhbmQgUG93ZXIgSW50ZXJmYWNlKFNDUEkpIHBy b3RvY29sIFsxXS4gV2UgY2hvc2UgU0NQSSBwcm90b2NvbCBpbnN0ZWFkIG9mIG5ld2VyIEFSTSBT eXN0ZW0gQ29udHJvbCBhbmQgTWFuYWdlbWVudCBJbnRlcmZhY2UgKFNDTUkpIHByb3RvY29sIFsy XSBzaW5jZSBpdCBpcyB3aWRlbHkgc3ByZWFkIGluIExpbnV4LCB0aGVyZSBhcmUgZ29vZCBleGFt cGxlcyBob3cgdG8gdXNlIGl0LCB0aGUgcmFuZ2Ugb2YgY2FwYWJpbGl0aWVzIGl0IGhhcyBpcyBl bm91Z2ggZm9yIGltcGxlbWVudGluZyBoeXBlcnZpc29yIGJhc2VkIENQVUZyZXEgYW5kLCB3aGF0 IGlzIG1vcmUsIHVwc3RyZWFtIExpbnV4IHN1cHBvcnQgZm9yIFNDTUkgaXMgbWlzc2VkIHNvIGZh ciwgYnV0IFNDTUkgY291bGQgYmUgdXNlZCBhcyB3ZWxsLgo+Pgo+PiBCcmllZmx5IHNwZWFraW5n LCB0aGUgU0NQSSBwcm90b2NvbCBpcyB1c2VkIGJldHdlZW4gdGhlIFN5c3RlbSBDb250cm9sIFBy b2Nlc3NvcihTQ1ApIGFuZCB0aGUgQXBwbGljYXRpb24gUHJvY2Vzc29ycyhBUCkuIFRoZSBtYWls Ym94IGZlYXR1cmUgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIGludGVyLXByb2Nlc3NvciBjb21t dW5pY2F0aW9uIGJldHdlZW4gU0NQIGFuZCBBUC4gVGhlIG1haW4gcHVycG9zZSBvZiBTQ1AgaXMg dG8gb2ZmbG9hZCBkaWZmZXJlbnQgUE0gcmVsYXRlZCB0YXNrcyBmcm9tIEFQIGFuZCBvbmUgb2Yg dGhlIHNlcnZpY2VzIHRoYXQgU0NQIHByb3ZpZGVzIGlzIER5bmFtaWMgdm9sdGFnZSBhbmQgZnJl cXVlbmN5IHNjYWxpbmcgKERWRlMpLCBpdCBpcyB3aGF0IHdlIGFjdHVhbGx5IG5lZWQgZm9yIENQ VUZyZXEuIEkgd2lsbCBkZXNjcmliZSB0aGlzIGFwcHJvYWNoIGluIGRldGFpbHMgZG93biB0aGUg dGV4dC4KPj4KPj4gTGV0IG1lIGV4cGxhaW4gYSBiaXQgbW9yZSB3aGF0IHRoZXNlIHBvc3NpYmxl IGFwcHJvYWNoZXMgYXJlOgo+Pgo+PiAxLiDigJxYZW4raHdkb23igJ0gc29sdXRpb24uCj4+IEds b2JhbExvZ2ljIHRlYW0gcHJvcG9zZWQgc3BsaXQgbW9kZWwgWzNdLCB3aGVyZSDigJxod2RvbS1j cHVmcmVx4oCdIGZyb250ZW5kIGRyaXZlciBpbiBYZW4gaW50ZXJhY3RzIHdpdGggdGhlIOKAnHhl bi1jcHVmcmVx4oCdIGJhY2tlbmQgZHJpdmVyIGluIExpbnV4IGh3ZG9tIChwb3NzaWJseSBkb20w KSBpbiBvcmRlciB0byBzY2FsZSBwaHlzaWNhbCBDUFVzLiBUaGlzIHNvbHV0aW9uIGhhc27igJl0 IGJlZW4gYWNjZXB0ZWQgYnkgWGVuIGNvbW11bml0eSB5ZXQgYW5kIHNlZW1zIGl0IGlzIG5vdCBn b2luZyB0byBiZSBhY2NlcHRlZCB3aXRob3V0IHRha2luZyBpbnRvIHRoZSBhY2NvdW50IHN0aWxs IHVuYW5zd2VyZWQgbWFqb3IgcXVlc3Rpb25zIGFuZCBwcm92aW5nIHRoYXQg4oCcYWxsLWluLVhl buKAnSBzb2x1dGlvbiwgd2hpY2ggWGVuIGNvbW11bml0eSBjb25zaWRlcmVkIGFzIG1vcmUgYXJj aGl0ZWN0dXJhbGx5IGNsZWFuZXIgb3B0aW9uLCB3b3VsZCBiZSB1bndvcmthYmxlIGluIHByYWN0 aWNlLgo+PiBUaGUgb3RoZXIgcmVhc29ucyB3aHkgd2UgZGVjaWRlZCBub3QgdG8gc3RpY2sgdG8g dGhpcyBhcHByb2FjaCBhcmUgY29tcGxleCBjb21tdW5pY2F0aW9uIGludGVyZmFjZSBiZXR3ZWVu IFhlbiBhbmQgaHdkb206IGV2ZW50IGNoYW5uZWwsIGh5cGVyY2FsbHMsIHN5c2NhbGxzLCBwYXNz aW5nIENQVSBpbmZvIHZpYSBEVCwgZXRjIGFuZCBwb3NzaWJsZSBzeW5jaHJvbml6YXRpb24gaXNz dWVzIHdpdGggYSBwcm9wb3NlZCBzb2x1dGlvbi4KPj4gQWx0aG91Z2ggaXQgaXMgd29ydGggdG8g bWVudGlvbiB0aGF0IHRoZSBiZWF1dHkgb2YgdGhpcyBhcHByb2FjaCB3YXMgdGhhdCB0aGVyZSB3 b3VsZG7igJl0IGJlIGEgbmVlZCB0byBwb3J0IGEgbG90IG9mIHRoaW5ncyB0byBYZW4uIEFsbCBm cmVxdWVuY3kgY2hhbmdpbmcgaW50ZXJmYWNlIGFuZCBhbGwgZGVwZW5kZW50IGNvbXBvbmVudHMg d2hpY2ggbmVlZGVkIENQVUZyZXEgdG8gYmUgZnVuY3Rpb25hbCB3ZXJlIGFscmVhZHkgaW4gcGxh Y2UuCj4KPiBTdGVmYW5vLCBKdWxpZW4gYW5kIEkgd2VyZSB0aGlua2luZyBhYm91dCB0aGlzOiBX b3VsZG4ndCBpdCBiZSBwb3NzaWJsZQo+IHRvIGNvbWUgdXAgd2l0aCBzb21lIGhhcmR3YXJlIGRv bWFpbiwgc29sZWx5IGRlYWxpbmcgd2l0aCBDUFVGcmVxCj4gY2hhbmdlcz8gVGhpcyBjb3VsZCBy dW4gYSBMaW51eCBrZXJuZWwsIGJ1dCBubyBvciB2ZXJ5IGxpdHRsZSB1c2VybGFuZC4KPiBBbGwg aXRzIHZDUFVzIHdvdWxkIGJlIHBpbm5lZCB0byBwQ1BVcyBhbmQgd291bGQgbm9ybWFsbHkgbm90 IGJlCj4gc2NoZWR1bGVkIGJ5IFhlbi4gSWYgWGVuIHdhbnRzIHRvIGNoYW5nZSB0aGUgZnJlcXVl bmN5LCBpdCBzY2hlZHVsZXMgdGhlCj4gcmVzcGVjdGl2ZSB2Q1BVIHRvIHRoZSByaWdodCBwQ1BV IGFuZCBwYXNzZXMgZG93biB0aGUgZnJlcXVlbmN5IGNoYW5nZQo+IHJlcXVlc3QuIFNvdW5kcyBh IGJpdCBpbnZvbHZlZCwgdGhvdWdoLCBhbmQgcHJvYmFibHkgZG9lc24ndCBzb2x2ZSB0aGUKPiBw cm9ibGVtIHdoZXJlIHRoaXMgZG9tYWluIG5lZWRzIHRvIHNoYXJlIGFjY2VzcyB0byBoYXJkd2Fy ZSB3aXRoIERvbTAKPiAoY2xvY2tzIGNvbWUgdG8gbWluZCkuClllcywgYW5vdGhlciBxdWVzdGlv biBpcyBob3cgdG8gZ2V0IHRoaXMgTGludXgga2VybmVsIHN0dWZmIChiYWNrZW5kLAp0b3AgbGV2 ZWwgZHJpdmVyLCBldGMpIHVwc3RyZWFtZWQuCgo+Cj4+IEFsdGhvdWdoIHRoaXMgYXBwcm9hY2gg aXMgbm90IHVzZWQsIHN0aWxsIEkgcGlja2VkIGEgZmV3IGFscmVhZHkgYWNrZWQgcGF0Y2hlcyB3 aGljaCBtYWRlIEFDUEkgc3BlY2lmaWMgQ1BVRnJlcSBzdHVmZiBtb3JlIGdlbmVyaWMuCj4+Cj4+ IDIuIOKAnGFsbC1pbi1YZW7igJ0gc29sdXRpb24uCj4+IFRoaXMgaW1wbGllcyB0aGF0IGFsbCBD UFVGcmVxIHJlbGF0ZWQgc3R1ZmYgc2hvdWxkIGJlIGxvY2F0ZWQgaW4gWGVuLgo+PiBDb21tdW5p dHkgY29uc2lkZXJlZCB0aGlzIHNvbHV0aW9uIGFzIG1vcmUgYXJjaGl0ZWN0dXJhbGx5IGNsZWFu ZXIgb3B0aW9uIHRoYW4g4oCcWGVuK2h3ZG9t4oCdIG9uZS4gTm8gbGF5ZXJpbmcgdmlvbGF0aW9u IGNvbXBhcmluZyB3aXRoIHRoZSBwcmV2aW91cyBhcHByb2FjaCAobGV0dGluZyBndWVzdCBPUyBt YW5hZ2Ugb25lIG9yIG1vcmUgcGh5c2ljYWwgQ1BVcyBpcyBtb3JlIG9mIGEgbGF5ZXJpbmcgdmlv bGF0aW9uKS4KPj4gVGhpcyBzb2x1dGlvbiBsb29rcyBiZXR0ZXIsIGJ1dCB0byBiZSBob25lc3Qs IHdlIGFyZSBub3QgaW4gZmF2b3Igb2YgdGhpcyBzb2x1dGlvbiBhcyB3ZWxsLiBXZSBleHBlY3Qg ZW5vcm1vdXMgZGV2ZWxvcGluZyBlZmZvcnQgdG8gZ2V0IHRoaXMgc3VwcG9ydCBpbiAodGhlIHNj b3BlIG9mIHJlcXVpcmVkIGNvbXBvbmVudHMgbG9va3MgdW5yZWFsKSBhbmQgbWFpbnRhaW4gaXQu IFNvLCB3ZSBkZWNpZGVkIG5vdCB0byBzdGljayB0byB0aGlzIGFwcHJvYWNoIGFzIHdlbGwuCj4K PiBZZXMsIEkgZXZlbiB0aGluayBpdCdzIG5vdCBmZWFzaWJsZSB0byBpbXBsZW1lbnQgdGhpcy4g V2l0aCBhIG1vZGVybgo+IGNsb2NrIGltcGxlbWVudGF0aW9uIHRoZXJlIGlzIG9uZSBkcml2ZXIg dG8gY29udHJvbCAqYWxsKiBjbG9ja3Mgb2YgYW4KPiBTb0MsIHNvIHlvdSBjYW4ndCBzaW5nbGUg b3V0IHRoZSBDUFUgY2xvY2sgZWFzaWx5LCBmb3IgaW5zdGFuY2UuIE9uZQo+IHdvdWxkIHByb2Jh Ymx5IHJ1biBpbnRvIHN5bmNocm9uaXNhdGlvbiBpc3N1ZXMsIGF0IGJlc3QuCj4KPj4gMy4g4oCc WGVuK1NDUChBUk0gVEYp4oCdIHNvbHV0aW9uLgo+PiBJdCBpcyB5ZXQgYW5vdGhlciBzb2x1dGlv biBiYXNlZCBvbiBBUk0gU0NQSSBwcm90b2NvbC4gVGhlIGdlbmVyaWMgaWRlYSBoZXJlIGlzIHRo YXQgdGhlcmUgaXMgYSBmaXJtd2FyZSwgd2hpY2ggYmVpbmcgYSBzZXJ2ZXIgcnVucyBvbiBzb21l IGRlZGljYXRlZCBJUCBjb3JlIChzZXJ2ZXIpLCBwcm92aWRlcyBkaWZmZXJlbnQgUE0gc2Vydmlj ZXMgKERWRlMsIHNlbnNvcnMsIGV0YykuIE9uIHRoZSBvdGhlciBzaWRlIHRoZXJlIGlzIGEgQ1BV RnJlcSBkcml2ZXIgaW4gWGVuLCB3aGljaCBpcyBydW5uaW5nIG9uIHRoZSBBUCAoY2xpZW50KSwg Y29uc3VtZXMgdGhlc2Ugc2VydmljZXMuIENQVUZyZXEgZHJpdmVyIG5laXRoZXIgY2hhbmdlcyB0 aGUgQ1BVIGZyZXF1ZW5jeS92b2x0YWdlIGJ5IGl0c2VsZiBub3IgY29vcGVyYXRlcyB3aXRoIExp bnV4IGluIG9yZGVyIHRvIGRvIHN1Y2ggam9iLiBJdCBqdXN0IGNvbW11bmljYXRlcyB3aXRoIFND UCBkaXJlY3RseSB1c2luZyBTQ1BJIHByb3RvY29sLiBBcyBJIHNhaWQgYmVmb3JlLCBzb21lIGlu dGVncmF0ZWQgaW50byBhIFNvQyBtYWlsYm94IElQIG5lZWQgdG8gYmUgdXNlZCBmb3IgSVBDIChk b29yYmVsbCBmb3IgdHJpZ2dlcmluZyBhY3Rpb24gYW5kIHNoYXJlZCBtZW1vcnkgcmVnaW9uIGZv ciBjb21tYW5kcykuIENQVUZyZXEgZHJpdmVyIGRvZXNu4oCZdCBldmVuIG5lZWQgdG8ga25vdyB3 aGF0IHNob3VsZCBiZSBwaHlzaWNhbGx5IGNoYW5nZWQgZm9yIHRoZSBuZXcgZnJlcXVlbmN5IHRv IHRha2UgZWZmZWN0LiBJdCBpcyBhIGNlcnRhaW5seSBTQ1DigJlzIHJlc3BvbnNpYmlsaXR5LiBU aGlzIGFsbCBhdm9pZCBDUFVGcmVxIGluZnJhc3RydWN0dXJlIGluIFhlbiBvbiBBUk0gZnJvbSBk aXZpbmcgaW50byBlYWNoIHN1cHBvcnRlZCBTb0MgaW50ZXJuYWxzIGFuZCBhcyB0aGUgcmVzdWx0 IGhhdmluZyBhIGxvdCBvZiBjb2RlLgo+Pgo+PiBUaGUgcG9zc2libGUgaXNzdWUgaGVyZSBjb3Vs ZCBiZSBpbiBTQ1AsIHRoZSBwcm9ibGVtIGlzIHRoYXQgc29tZSBkZWRpY2F0ZWQgSVAgY29yZSBt YXkgYmUgYWJzZW50IGF0IGFsbCBvciBwZXJmb3JtcyBvdGhlciB0aGFuIFBNIHRhc2tzLiBGb3J0 dW5hdGVseSwgdGhlcmUgaXMgYSBicmlsbGlhbnQgc29sdXRpb24gdG8gdGVhY2ggZmlybXdhcmUg cnVubmluZyBpbiB0aGUgRUwzIGV4Y2VwdGlvbiBsZXZlbCAoQVJNIFRGKSB0byBwZXJmb3JtIFND UCBmdW5jdGlvbnMgYW5kIHVzZSBTTUMgY2FsbHMgZm9yIGNvbW11bmljYXRpb25zIFs0XS4gRXhh Y3RseSB0aGlzIHRyYW5zcG9ydCBpbXBsZW1lbnRhdGlvbiBJIHdhbnQgdG8gYnJpbmcgdG8gWGVu IHRoZSBmaXJzdC4gU3VjaCBzb2x1dGlvbiBpcyBnb2luZyB0byBiZSBnZW5lcmljIGFjcm9zcyBh bGwgQVJNIHBsYXRmb3JtcyB0aGF0IGRvIGhhdmUgZmlybXdhcmUgcnVubmluZyBpbiB0aGUgRUwz IGV4Y2VwdGlvbiBsZXZlbCBhbmQgZG9u4oCZdCBoYXZlIGNhbmRpZGF0ZSBmb3IgYmVpbmcgU0NQ Lgo+Cj4gV2hpbGUgSSBmZWVsIGZsYXR0ZXJlZCB0aGF0IHlvdSBsaWtlIHRoYXQgaWRlYSBhcyB3 ZWxsIDstKSwgeW91IHNob3VsZAo+IG1lbnRpb24gdGhhdCB0aGlzIHJlcXVpcmVzIGFjdHVhbCBm aXJtd2FyZSBwcm92aWRpbmcgdGhvc2Ugc2VydmljZXMuClllcywgYSBzb21lIGZpcm13YXJlLCB3 aGljaCBwcm92aWRlcyB0aGVzZSBzZXJ2aWNlcywgbXVzdCBiZSBwcmVzZW50Cm9uIHRoZSBvdGhl ciBlbmQuCkl0IGlzIGEgZmlybXdhcmUgd2hpY2ggcnVucyBvbiB0aGUgZGVkaWNhdGVkIElQIGNv cmUocykgaW4gY29tbW9uIGNhc2UuCkFuZCBpdCBpcyBhIGZpcm13YXJlIHdoaWNoIHJ1bnMgb24g dGhlIHNhbWUgY29yZShzKSBhcyB0aGUgaHlwZXJ2aXNvcgppbiBwYXJ0aWN1bGFyIGNhc2UuCgo+ IEkKPiBhbSBub3Qgc3VyZSB0aGVyZSBpcyBhY3R1YWxseSAqYW55KiBpbXBsZW1lbnRhdGlvbiBv ZiB0aGlzIGF0IHRoZQo+IG1vbWVudCwgYXBhcnQgZnJvbSBteSBQb0MgY29kZSBmb3IgQWxsd2lu bmVyLgpZb3VyIFBvQyBpcyBhIGdvb2QgZXhhbXBsZSBmb3Igd3JpdGluZyBmaXJtd2FyZSBzaWRl LiBTbywgd2h5IGRvbid0CnVzZSBpdCBhcyBhIGJhc2UgZm9yCm90aGVyIHBsYXRmb3JtLgoKPiBB bmQgZnJvbSBhIFhlbiBwb2ludCBvZiB2aWV3IEkgYW0gbm90IHN1cmUgd2UgYXJlIGluIHRoZSBw b3NpdGlvbiB0bwo+IGZvcmNlIHVzZXJzIHRvIHVzZSB0aGlzIGZpcm13YXJlLiBUaGlzIG1heSBi ZSBmZWFzaWJsZSBpbiBhIGNsYXNzaWMKPiBlbWJlZGRlZCBzY2VuYXJpbywgd2hlcmUgYm90aCBm aXJtd2FyZSBhbmQgc29mdHdhcmUgYXJlIHByb3ZpZGVkIGJ5IHRoZQo+IHNhbWUgZW50aXR5LCBi dXQgdGhhdCBzaG91bGQgYmUgY2xlYXJseSBub3RlZCBhcyBhIHJlc3RyaWN0aW9uLgpBZ3JlZS4K Cj4KPj4gSGVyZSB3ZSBoYXZlIGNvbXBsZXRlbHkgc3luY2hyb25vdXMgY2FzZSBiZWNhdXNlIG9m IFNNQyBjYWxscyBuYXR1cmUuIFNNQyB0cmlnZ2VyZWQgbWFpbGJveCBkcml2ZXIgZW11bGF0ZXMg YSBtYWlsYm94IHdoaWNoIHNpZ25hbHMgdHJhbnNtaXR0ZWQgZGF0YSB2aWEgU2VjdXJlIE1vbml0 b3IgQ2FsbCAoU01DKSBpbnN0cnVjdGlvbiBbNV0uIFRoZSBtYWlsYm94IHJlY2VpdmVyIGlzIGlt cGxlbWVudGVkIGluIGZpcm13YXJlIGFuZCBzeW5jaHJvbm91c2x5IHJldHVybnMgZGF0YSB3aGVu IGl0IHJldHVybnMgZXhlY3V0aW9uIHRvIHRoZSBub24tc2VjdXJlIHdvcmxkIGFnYWluLiBUaGlz IHdvdWxkIGFsbG93IHVzIGJvdGggdG8gdHJpZ2dlciBhIHJlcXVlc3QgYW5kIHRyYW5zZmVyIGV4 ZWN1dGlvbiB0byB0aGUgZmlybXdhcmUgY29kZSBpbiBhIHNhZmUgYW5kIGFyY2hpdGVjdGVkIHdh eS4gTGlrZSBQU0NJIHJlcXVlc3RzLgo+PiBBcyB5b3UgY2FuIHNlZSB0aGlzIG1ldGhvZCBpcyBm cmVlIGZyb20gc3luY2hyb25pemF0aW9uIGlzc3Vlcy4gV2hhdCBpcyBtb3JlLCB0aGlzIHNvbHV0 aW9uIGlzIG1vcmUgYXJjaGl0ZWN0dXJhbGx5IGNsZWFuZXIgc29sdXRpb24gdGhhbiBzcGxpdCBt b2RlbCDigJxYZW4raHdkb23igJ0gb25lLiBGcm9tIHRoZSBzZWN1cml0eSBwb2ludCBvZiB2aWV3 LCBJIGhvcGUsIGV2ZXJ5dGhpbmcgd2lsbCBiZSBtdWNoIG1vcmUgY29ycmVjdCBzaW5jZSB0aGUg QVJNIFRGLCB3aGljaCB3ZSB3YW50IHRvIHNlZSBpbiBjaGFyZ2Ugb2YgY29udHJvbGxpbmcgQ1BV IGZyZXF1ZW5jeS92b2x0YWdlLCBpcyBhIHRydXN0ZWQgU1cgbGF5ZXIuIE1vcmVvdmVyLCBBUk0g VEYgaXMgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBDUFUgKFBTQ0kpIGFuZCBu b2JvZHkgY29tcGxhaW5zIGFib3V0IGl0LCBzbyBsZXQgaXQgZG8gRFZGUyB0b28uCj4KPiBJdCBz aG91bGQgYmUgbm90ZWQgdGhhdCB0aGlzIHN5bmNocm9ub3VzIG5hdHVyZSBvZiB0aGUgY29tbXVu aWNhdGlvbiBjYW4KPiBhY3R1YWxseSBiZSBhIHByb2JsZW06IGEgRFZGUyByZXF1ZXN0IHVzdWFs bHkgaW52b2x2ZXMgcmVndWxhdG9yIGFuZCBQTEwKPiBjaGFuZ2VzLCB3aGljaCBjb3VsZCB0YWtl IHNvbWUgdGltZSB0byBzZXR0bGUgaW4uIEJsb2NraW5nIGFsbCBvZiB0aGlzCj4gdGltZSAobWls bGlzZWNvbmRzPykgaW4gRUwzIChwcm9iYWJseSBidXN5LXdhaXRpbmcpIG1pZ2h0IG5vdCBiZSBk ZXNpcmFibGUuCkFncmVlLiBJIGhhdmVuJ3QgbWVhc3VyZWQgdGltZSB5ZXQgdG8gc2F5IGhvdyBs b25nIGlzIGl0LCBzaW5jZSBJCmRvbid0IGhhdmUgYSB3b3JraW5nIGZpcm13YXJlIGF0IHRoZSBt b21lbnQsIGp1c3QgYW4gZW11bGF0b3IsCmJ1dCwgeWVzLCBpdCB3aWxsIGRlZmluaXRlbHkgdGFr ZSBzb21lIHRpbWUuIFRoZSB3aG9sZSBzeXN0ZW0gd29uJ3QgYmUKYmxvY2tlZCwgb25seSB0aGUg Q1BVIHdoaWNoIHBlcmZvcm1zIFNNQyBjYWxsLgpCdXQsIGlmIHdlIGFzayBod2RvbSB0byBjaGFu Z2UgZnJlcXVlbmN5IHdlIHdpbGwgd2FpdCB0b28/IE9yIGlmIFhlbgptYW5hZ2VzIFBMTC9yZWd1 bGF0b3IgYnkgaXRzZWxmLCBpdCB3aWxsIHdhaXQgYW55d2F5PwoKPgo+PiBJIGhhdmUgdG8gYWRt aXQgdGhhdCBJIGhhdmUgY2hlY2tlZCB0aGlzIHNvbHV0aW9uIG9ubHkgZHVlIHRvIGEgbGFjayBv ZiBjYW5kaWRhdGUgZm9yIGJlaW5nIFNDUC4gQnV0LCBJIGhvcGUsIHRoYXQgb3RoZXIgQVJNIFNv Q3Mgd2hlcmUgZGVkaWNhdGVkIFNDUCBpcyBwcmVzZW50IChhc3luY2hyb25vdXMgY2FzZSkgd2ls bCB3b3JrIHRvbywgYnV0IHdpdGggc29tZSBsaW1pdGF0aW9ucy4gVGhlIG1haWxib3ggSVBzIGZv ciB0aGVzZSBBUk0gU29DcyBtdXN0IGhhdmUgVFgvUlgtZG9uZSBpcnFzLiBJIGhhdmUgZGVzY3Jp YmVkIGluIHRoZSBjb3JyZXNwb25kaW5nIHBhdGNoZXMgd2h5IHRoaXMgbGltaXRhdGlvbiBpcyBw cmVzZW50Lgo+Pgo+PiBUbyBiZSBob25lc3QgSSBoYXZlIFJlbmVzYXMgUi1DYXIgR2VuMyBTb0Nz IGluIG1pbmQgYXMgb3VyIG5lYXJlc3QgdGFyZ2V0LCBidXQgSSB3b3VsZCBsaWtlIHRvIG1ha2Ug dGhpcyBzb2x1dGlvbiBhcyBnZW5lcmljIGFzIHBvc3NpYmxlLiBJIGRvbuKAmXQgdHJlYXQgcHJv cG9zZWQgc29sdXRpb24gYXMgd29ybGQtd2lkZSBnZW5lcmljLCBidXQgSSBob3BlLCB0aGlzIHNv bHV0aW9uIG1heSBiZSBzdWl0YWJsZSBmb3Igb3RoZXIgQVJNIFNvQ3Mgd2hpY2ggbWVldCBzdWNo IHJlcXVpcmVtZW50cy4gQW55d2F5LCBoYXZpbmcgc29tZXRoaW5nIHdoaWNoIHdvcmtzLCBidXQg ZG9lc27igJl0IGNvdmVyIGFsbCBjYXNlcyBpcyBiZXR0ZXIgdGhhbiBoYXZpbmcgbm90aGluZy4K Pj4KPj4gSSB3b3VsZCBsaWtlIHRvIG5vdGljZSB0aGF0IHRoZSBwYXRjaGVzIGFyZSBQT0Mgc3Rh dGUgYW5kIEkgcG9zdCB0aGVtIGp1c3QgdG8gaWxsdXN0cmF0ZSBpbiBtb3JlIGRldGFpbCBvZiB3 aGF0IEkgYW0gdGFsa2luZyBhYm91dC4gUGF0Y2ggc2VyaWVzIGNvbnNpc3Qgb2YgdGhlIGZvbGxv d2luZyBwYXJ0czoKPj4gMS4gR0zigJlzIHBhdGNoZXMgd2hpY2ggbWFrZSBBQ1BJIHNwZWNpZmlj IENQVUZyZXEgc3R1ZmYgbW9yZSBnZW5lcmljLiBBbHRob3VnaCB0aGVzZSBwYXRjaGVzIGhhcyBi ZWVuIGFscmVhZHkgYWNrZWQgYnkgWGVuIGNvbW11bml0eSBhbmQgdGhlIENQVUZyZXEgY29kZSBi YXNlIGhhc27igJl0IGNoYW5nZWQgaW4gYSBsYXN0IGZldyB5ZWFycyBJIGRyb3AgYWxsIEEtYi4K Pj4gMi4gQSBidW5jaCBvZiBkZXZpY2UtdHJlZSBoZWxwZXJzIGFuZCBtYWNyb3MuCj4+IDMuIERp cmVjdCBwb3J0ZWQgU0NQSSBwcm90b2NvbCwgbWFpbGJveCBpbmZyYXN0cnVjdHVyZSBhbmQgdGhl IEFSTSBTTUMgdHJpZ2dlcmVkIG1haWxib3ggZHJpdmVyLiBBbGwgY29tcG9uZW50cyBleGNlcHQg bWFpbGJveCBkcml2ZXIgYXJlIGluIG1haW5saW5lIExpbnV4Lgo+Cj4gV2h5IGRvIHlvdSBhY3R1 YWxseSBuZWVkIHRoaXMgbWFpbGJveCBmcmFtZXdvcms/IEFjdHVhbGx5IEkganVzdAo+IHByb3Bv c2VkIHRoZSBTTUMgZHJpdmVyIHRoZSBtYWtlIGl0IGZpdCBpbnRvIHRoZSBMaW51eCBmcmFtZXdv cmsuIEFsbCB3ZQo+IGFjdHVhbGx5IG5lZWQgZm9yIFNDUEkgaXMgdG8gd3JpdGUgYSBzaW1wbGUg Y29tbWFuZCBpbnRvIHNvbWUgbWVtb3J5IGFuZAo+ICJwcmVzcyBhIGJ1dHRvbiIuIEkgZG9uJ3Qg c2VlIGEgbmVlZCB0byBpbXBvcnQgdGhlIHdob2xlIExpbnV4Cj4gZnJhbWV3b3JrLCBlc3BlY2lh bGx5IGFzIG91ciBtYWlsYm94IHVzYWdlIGlzIGFjdHVhbGx5IGp1c3QgYSBjb3JuZXIKPiBjYXNl IG9mIHRoZSBtYWlsYm94J3MgY2FwYWJpbGl0eSAobmFtZWx5IGEgInNpbmdsZS1iaXQiIGRvb3Ji ZWxsKS4KPiBUaGUgU01DIHVzZSBjYXNlIGlzIHRyaXZpYWwgdG8gaW1wbGVtZW50LCBhbmQgSSBi ZWxpZXZlIHVzaW5nIHRoZSBKdW5vCj4gbWFpbGJveCBpcyBzaW1pbGFybHkgc2ltcGxlLCBmb3Ig aW5zdGFuY2UuCkkgZGlkIGEgZGlyZWN0IHBvcnQgZm9yIFNDUEkgcHJvdG9jb2wuIEkgdGhpbmss IGl0IGlzIHNvbWV0aGluZyB0aGF0CnNob3VsZCBiZSByZXRhaW5lZCBhcyBtdWNoIGFzIHBvc3Np YmxlLgpQcm90b2NvbCByZWxpZXMgb24gbWFpbGJveCBmZWF0dXJlLCBzbyBJIHBvcnRlZCBtYWls Ym94IHRvby4gSSB0aGluaywKaXQgd291bGQgYmUgbXVjaCBtb3JlIGVhc3kgZm9yIG1lIHRvIGp1 c3QgYWRkCmEgZmV3IHJlcXVpcmVkIGNvbW1hbmRzIGhhbmRsaW5nIHdpdGggaXNzdWluZyBTTUMg Y2FsbCBhbmQgd2l0aG91dCBhbnkKbWFpbGJveCBpbmZyYXN0cnVjdHVyZSBpbnZvbHZlZC4KQnV0 LCBJIHdhbnQgdG8gc2hvdyB3aGF0IGlzIGdvaW5nIG9uIGFuZCB3aGF0IHBsYWNlIHRoZXNlIHRo aW5ncyBjb21lIGZyb20uCgpXaGF0IGlzIG1vcmUsIEkgZG9uJ3Qgd2FudCB0byByZXN0cmljdCBh IHVzYWdlIG9mIHRoaXMgQ1BVRnJlcSBieSBvbmx5CmNvdmVyaW5nIHNpbmdsZSBzY2VuYXJpbyB3 aGVyZSBhCmZpcm13YXJlLCB3aGljaCBwcm92aWRlcyBEVkZTIHNlcnZpY2UsIGlzIGluIEFSTSBU Ri4gSSBob3BlLCB0aGF0IHRoaXMKc29sdXRpb24gd2lsbCBiZSBzdWl0YWJsZSBmb3IgQVJNIFNv Q3Mgd2hlcmUgYSBzdGFuZGFsb25lIFNDUAppcyBwcmVzZW50IGFuZCByZWFsIG1haWxib3ggSVAs IHdoaWNoIGhhcyBhc3luY2hyb25vdXMgbmF0dXJlLCBpcyB1c2VkCmZvciBJUEMuIE9mIGNvdXJz ZSwgdGhpcyBtYWlsYm94IG11c3QgaGF2ZSBUWC9SWC1kb25lIGlycXMuClRoaXMgaXMgYSBsaW1p dGF0aW9uIGF0IHRoZSBtb21lbnQuCgo+Cj4KPiBTbyB0byBzdW1tYXJpemUgSSB0aGluayB3ZSBu ZWVkIHRvIGFncmVlIG9uIHRob3NlIGdlbmVyYWwgcXVlc3Rpb25zOgo+IDEpIFNoYWxsIHRoZSBY ZW4gaHlwZXJ2aXNvciBhY3R1YWxseSBiZSBpbnZvbHZlZCBpbiBDUFVGcmVxIGF0IGFsbD8gQ2Fu Cj4gdGhpcyBiZSBsZWZ0IHRvIGNvcm5lci1jYXNlcyBsaWtlIHBpbm5lZCBDUFVzL2d1ZXN0cywg d2hlcmUgZ3Vlc3RzCj4gcmVxdWVzdHMgYXJlIHBhc3NlZCBvbiB0byB0aGUgaGFyZHdhcmU/Cj4g MikgSXMgRUwzL0FURiBwcm92aWRpbmcgU0NQSSBzZXJ2aWNlcyBzb21ldGhpbmcgd2UgY2FuIGJ1 aWxkIG9uPwo+IE5vcm1hbGx5IEkgd291bGQgZXhwZWN0IHdlIHdyaXRlIGRyaXZlcnMgdG8gbWF0 Y2ggZXhpc3RpbmcgZmlybXdhcmUuCj4gMykgV2hlbiB3ZSBnbyB0aGlzIHdheSwgZG8gd2UgcmVh bGx5IG5lZWQgdG8gcG9ydCBhbGwgb2YgdGhlIExpbnV4Cj4gZHJpdmVycyBhbmQgaXRzIGZyYW1l d29yayB0byBYZW4/IENhbid0IHdlIGdldCBhd2F5IHdpdGggbXVjaCBzaW1wbGVyCj4gc29sdXRp b25zPyBJbiB0aGUgZW5kIGFsbCB0aGUgU01DIG1haWxib3ggZHJpdmVyIGRvZXMgaXQgdG8gdHJp Z2dlciBhbgo+IHNpbmdsZSBTTUMgY2FsbCwgZW1iZWRkZWQgaW4gYSBsb3Qgb2YgZ2xvcmlvdXMg TGludXggYm9pbGVyIHBsYXRlIGNvZGUuCj4KPiBXaGF0IEkgd2FzICphY3R1YWxseSogdGhpbmtp bmcgb2Ygd2hlbiB1c2luZyB0aGUgU01DIG1haWxib3ggYXBwcm9hY2ggaXMKPiB0aGUgYWJpbGl0 eSB0byBwcm92aWRlICp2aXJ0dWFsKiBTQ1BJIHNlcnZpY2VzIHRvIGd1ZXN0LCBpbiBhIGdlbmVy aWMsCj4gbm90LVNvQy1zcGVjaWZpYyB3YXkuIFRoZSBwcm9wb3NlZCBTTUMgbWFpbGJveCBiaW5k aW5nIGFsbG93cyB1c2luZwo+ICpodmMqIGNhbGxzIHRvIHRyaWdnZXIgc2VydmljZXMsIHNvIFhl biBjb3VsZCBwaWNrIHVwIERWRlMgcmVxdWVzdHMgZnJvbQo+IGd1ZXN0cyBpbiBhIGdlbmVyaWMg d2F5IGFuZCBhY3QgdXBvbiB0aGVtLgo+Cj4gQ2hlZXJzLAo+IEFuZHJlLgo+Cj4+IDQuIFhlbiBj aGFuZ2VzIHRvIGRpcmVjdCBwb3J0ZWQgY29kZSBmb3IgbWFraW5nIGl0IGNvbXBpbGFibGUuIFRo ZXNlIGNoYW5nZXMgZG9u4oCZdCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KPj4gNS4gU29tZSBtb2Rp ZmljYXRpb24gdG8gZGlyZWN0IHBvcnRlZCBjb2RlIHdoaWNoIHNsaWdodGx5IGNoYW5nZSBmdW5j dGlvbmFsaXR5LCBJIHdvdWxkIHNheSB0byByZXN0cmljdCBpdC4KPj4gNi4gU0NQSSBiYXNlZCBD UFVGcmVxIGRyaXZlciBhbmQgQ1BVRnJlcSBpbnRlcmZhY2UgY29tcG9uZW50Lgo+PiA3LiBNaXNj IHBhdGNoZXMgbW9zdGx5IHRvIEFSTSBzdWJzeXN0ZW0uCj4+IDguIFBhdGNoIGZyb20gVm9sb2R5 bXlyIEJhYmNodWsgd2hpY2ggYWRkcyBTTUMgd3JhcHBlci4KPj4KPj4gTW9zdCBpbXBvcnRhbnQg VE9ET3MgcmVnYXJkaW5nIHRoZSB3aG9sZSBwYXRjaCBzZXJpZXM6Cj4+IDEuIEhhbmRsZSBkZXZt IGluIHRoZSBkaXJlY3QgcG9ydGVkIGNvZGUuIEN1cnJlbnRseSwgaW4gY2FzZSBvZiBhbnkgZXJy b3JzIHByZXZpb3VzbHkgYWxsb2NhdGVkIHJlc291cmNlcyBhcmUgbGVmdCB1bmZyZWVkLgo+PiAy LiBUaGVybWFsIG1hbmFnZW1lbnQgaW50ZWdyYXRpb24uCj4+IDMuIERvbid0IHBhc3MgQ1BVRnJl cSByZWxhdGVkIG5vZGVzIHRvIGRvbTAuIFhlbiBvd25zIFNDUEkgY29tcGxldGVseS4KPj4gNC4g SGFuZGxlIENQVV9UVVJCTyBmcmVxdWVuY2llcyBpZiB0aGV5IGFyZSBzdXBwb3J0ZWQgYnkgSFcu Cj4+Cj4+IFlvdSBjYW4gZmluZCB0aGUgd2hvbGUgcGF0Y2ggc2VyaWVzIGhlcmU6Cj4+IHJlcG86 IGh0dHBzOi8vZ2l0aHViLmNvbS9vdHlzaGNoZW5rbzEveGVuLmdpdCBicmFuY2g6IGNwdWZyZXEt ZGV2ZWwxCj4+Cj4+IFAuUy4gVGhlcmUgaXMgbm8gbmVlZCB0byBtb2RpZnkgeGVucG0gdG9vbC4g SXQgd29ya3Mgb3V0IG9mIHRoZSBib3ggb24gQVJNLgo+Pgo+PiBbMV0KPj4gTGludXggY29kZToK Pj4gaHR0cDovL2VsaXhpci5mcmVlLWVsZWN0cm9ucy5jb20vbGludXgvdjQuMTQtcmM2L3NvdXJj ZS9kcml2ZXJzL2Zpcm13YXJlL2FybV9zY3BpLmMKPj4gaHR0cDovL2VsaXhpci5mcmVlLWVsZWN0 cm9ucy5jb20vbGludXgvdjQuMTQtcmM2L3NvdXJjZS9pbmNsdWRlL2xpbnV4L3NjcGlfcHJvdG9j b2wuaAo+PiBodHRwOi8vZWxpeGlyLmZyZWUtZWxlY3Ryb25zLmNvbS9saW51eC92NC4xNC1yYzYv c291cmNlL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vYXJtLHNjcGkudHh0 Cj4+Cj4+IFJlY2VudCBwcm90b2NvbCB2ZXJzaW9uOgo+PiBodHRwOi8vaW5mb2NlbnRlci5hcm0u Y29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuZHVpMDkyMmcvc2NwX21lc3NhZ2VfaW50ZXJmYWNl X3YxXzJfRFVJMDkyMkdfZW4ucGRmCj4+Cj4+IFsyXQo+PiBYZW4gcGFydDoKPj4gaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTQtMTEvbXNnMDA5NDAuaHRt bAo+PiBMaW51eCBwYXJ0Ogo+PiBodHRwczovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94 ZW4tZGV2ZWwvMjAxNC0xMS9tc2cwMDk0NC5odG1sCj4+Cj4+IFszXQo+PiBodHRwOi8vaW5mb2Nl bnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuZGVuMDA1NmEvREVOMDA1NkFfU3lz dGVtX0NvbnRyb2xfYW5kX01hbmFnZW1lbnRfSW50ZXJmYWNlLnBkZgo+Pgo+PiBbNF0KPj4gaHR0 cDovL2xpbnV4LXN1bnhpLm5hcmtpdmUuY29tL3FZV0pxalhVL3BhdGNoLXYyLTAtMy1tYWlsYm94 LWFybS1pbnRyb2R1Y2Utc21jLXRyaWdnZXJlZC1tYWlsYm94Cj4+Cj4+IFs1XQo+PiBodHRwOi8v aW5mb2NlbnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuZGVuMDAyOGIvQVJNX0RF TjAwMjhCX1NNQ19DYWxsaW5nX0NvbnZlbnRpb24ucGRmCj4+Cj4+IE9sZWtzYW5kciBEbXl0cnlz aHluICg2KToKPj4gICBjcHVmcmVxOiBtb3ZlIGNwdWZyZXEuaCBmaWxlIHRvIHRoZSB4ZW4vaW5j bHVkZS94ZW4gbG9jYXRpb24KPj4gICBwbTogbW92ZSBwcm9jZXNzb3JfcGVyZi5oIGZpbGUgdG8g dGhlIHhlbi9pbmNsdWRlL3hlbiBsb2NhdGlvbgo+PiAgIHBtc3RhdDogbW92ZSBwbXN0YXQuYyBm aWxlIHRvIHRoZSB4ZW4vZHJpdmVycy9wbS9zdGF0LmMgbG9jYXRpb24KPj4gICBjcHVmcmVxOiBt YWtlIHR1cmJvIHNldHRpbmdzIHRvIGJlIGNvbmZpZ3VyYWJsZQo+PiAgIHBtc3RhdDogbWFrZSBw bXN0YXQgZnVuY3Rpb25zIG1vcmUgZ2VuZXJhbGl6YWJsZQo+PiAgIGNwdWZyZXE6IG1ha2UgY3B1 ZnJlcSBkcml2ZXIgbW9yZSBnZW5lcmFsaXphYmxlCj4+Cj4+IE9sZWtzYW5kciBUeXNoY2hlbmtv ICgyNCk6Cj4+ICAgeGVucG06IENsYXJpZnkgeGVucG0gdXNhZ2UKPj4gICB4ZW4vZGV2aWNlLXRy ZWU6IEFkZCBkdF9jb3VudF9waGFuZGxlX3dpdGhfYXJncyBoZWxwZXIKPj4gICB4ZW4vZGV2aWNl LXRyZWU6IEFkZCBkdF9wcm9wZXJ0eV9mb3JfZWFjaF9zdHJpbmcgbWFjcm9zCj4+ICAgeGVuL2Rl dmljZS10cmVlOiBBZGQgZHRfcHJvcGVydHlfcmVhZF91MzJfaW5kZXggaGVscGVyCj4+ICAgeGVu L2RldmljZS10cmVlOiBBZGQgZHRfcHJvcGVydHlfY291bnRfZWxlbXNfb2Zfc2l6ZSBoZWxwZXIK Pj4gICB4ZW4vZGV2aWNlLXRyZWU6IEFkZCBkdF9wcm9wZXJ0eV9yZWFkX3N0cmluZ19oZWxwZXIg YW5kIGZyaWVuZHMKPj4gICB4ZW4vYXJtOiBBZGQgZHJpdmVyX2RhdGEgZmllbGQgdG8gc3RydWN0 IGRldmljZQo+PiAgIHhlbi9hcm06IEFkZCBERVZJQ0VfTUFJTEJPWCBkZXZpY2UgY2xhc3MKPj4g ICB4ZW4vYXJtOiBTdG9yZSBkZXZpY2UtdHJlZSBub2RlIHBlciBjcHUKPj4gICB4ZW4vYXJtOiBB ZGQgQVJNIFN5c3RlbSBDb250cm9sIGFuZCBQb3dlciBJbnRlcmZhY2UgKFNDUEkpIHByb3RvY29s Cj4+ICAgeGVuL2FybTogQWRkIG1haWxib3ggaW5mcmFzdHJ1Y3R1cmUKPj4gICB4ZW4vYXJtOiBJ bnRyb2R1Y2UgQVJNIFNNQyBiYXNlZCBtYWlsYm94Cj4+ICAgeGVuL2FybTogQWRkIGNvbW1vbiBo ZWFkZXIgZmlsZSB3cmFwcGVycy5oCj4+ICAgeGVuL2FybTogQWRkIHJ4ZG9uZV9hdXRvIGZsYWcg dG8gbWJveF9jb250cm9sbGVyIHN0cnVjdHVyZQo+PiAgIHhlbi9hcm06IEFkZCBYZW4gY2hhbmdl cyB0byBTQ1BJIHByb3RvY29sCj4+ICAgeGVuL2FybTogQWRkIFhlbiBjaGFuZ2VzIHRvIG1haWxi b3ggaW5mcmFzdHJ1Y3R1cmUKPj4gICB4ZW4vYXJtOiBBZGQgWGVuIGNoYW5nZXMgdG8gQVJNIFNN QyBiYXNlZCBtYWlsYm94Cj4+ICAgeGVuL2FybTogVXNlIG5vbi1ibG9ja2luZyBtb2RlIGZvciBT Q1BJIHByb3RvY29sCj4+ICAgeGVuL2FybTogRG9uJ3Qgc2V0IHR4ZG9uZV9wb2xsIGZsYWcgZm9y IEFSTSBTTUMgbWFpbGJveAo+PiAgIGNwdWZyZXE6IGhhY2s6IHBlcmYtPnN0YXRlcyBpc24ndCBh IHJlYWwgZ3Vlc3QgaGFuZGxlIG9uIEFSTQo+PiAgIHhlbi9hcm06IEludHJvZHVjZSBTQ1BJIGJh c2VkIENQVUZyZXEgZHJpdmVyCj4+ICAgeGVuL2FybTogSW50cm9kdWNlIENQVUZyZXEgSW50ZXJm YWNlIGNvbXBvbmVudAo+PiAgIHhlbi9hcm06IEJ1aWxkIENQVUZyZXEgY29tcG9uZW50cwo+PiAg IHhlbi9hcm06IEVuYWJsZSBDUFVGcmVxIG9uIEFSTQo+Pgo+PiBWb2xvZHlteXIgQmFiY2h1ayAo MSk6Cj4+ICAgYXJtOiBhZGQgU01DIHdyYXBwZXIgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggU01D Q0MKPj4KPj4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgNCArLQo+PiAgdG9vbHMvbWlzYy94ZW5wbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICA2ICstCj4+ICB4ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDIgKwo+PiAgeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAxICsKPj4gIHhlbi9hcmNoL2FybS9hcm0zMi9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgIHwgICAgMSArCj4+ICB4ZW4vYXJjaC9hcm0vYXJtMzIvc21jLlMgICAgICAgICAgICAgICAg ICAgICB8ICAgMzIgKwo+PiAgeGVuL2FyY2gvYXJtL2FybTY0L01ha2VmaWxlICAgICAgICAgICAg ICAgICAgfCAgICAxICsKPj4gIHhlbi9hcmNoL2FybS9hcm02NC9zbWMuUyAgICAgICAgICAgICAg ICAgICAgIHwgICAyOSArCj4+ICB4ZW4vYXJjaC9hcm0vY3B1ZnJlcS9NYWtlZmlsZSAgICAgICAg ICAgICAgICB8ICAgIDUgKwo+PiAgeGVuL2FyY2gvYXJtL2NwdWZyZXEvYXJtLXNtYy1tYWlsYm94 LmMgICAgICAgfCAgMjQ4ICsrKysrKwo+PiAgeGVuL2FyY2gvYXJtL2NwdWZyZXEvYXJtX3NjcGku YyAgICAgICAgICAgICAgfCAxMTkxICsrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICB4ZW4v YXJjaC9hcm0vY3B1ZnJlcS9jcHVmcmVxX2lmLmMgICAgICAgICAgICB8ICA1MjIgKysrKysrKysr KysKPj4gIHhlbi9hcmNoL2FybS9jcHVmcmVxL21haWxib3guYyAgICAgICAgICAgICAgIHwgIDU2 MiArKysrKysrKysrKysKPj4gIHhlbi9hcmNoL2FybS9jcHVmcmVxL21haWxib3guaCAgICAgICAg ICAgICAgIHwgICAyOCArCj4+ICB4ZW4vYXJjaC9hcm0vY3B1ZnJlcS9tYWlsYm94X2NsaWVudC5o ICAgICAgICB8ICAgNjkgKysKPj4gIHhlbi9hcmNoL2FybS9jcHVmcmVxL21haWxib3hfY29udHJv bGxlci5oICAgIHwgIDE2MSArKysrCj4+ICB4ZW4vYXJjaC9hcm0vY3B1ZnJlcS9zY3BpX2NwdWZy ZXEuYyAgICAgICAgICB8ICAzMjggKysrKysrKwo+PiAgeGVuL2FyY2gvYXJtL2NwdWZyZXEvc2Nw aV9wcm90b2NvbC5oICAgICAgICAgfCAgMTE2ICsrKwo+PiAgeGVuL2FyY2gvYXJtL2NwdWZyZXEv d3JhcHBlcnMuaCAgICAgICAgICAgICAgfCAgMjM5ICsrKysrKwo+PiAgeGVuL2FyY2gvYXJtL3Nt cGJvb3QuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICsKPj4gIHhlbi9hcmNoL3g4Ni9L Y29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCj4+ICB4ZW4vYXJjaC94ODYv YWNwaS9jcHVfaWRsZS5jICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KPj4gIHhlbi9hcmNoL3g4 Ni9hY3BpL2NwdWZyZXEvY3B1ZnJlcS5jICAgICAgICAgIHwgICAgMiArLQo+PiAgeGVuL2FyY2gv eDg2L2FjcGkvY3B1ZnJlcS9wb3dlcm5vdy5jICAgICAgICAgfCAgICAyICstCj4+ICB4ZW4vYXJj aC94ODYvYWNwaS9wb3dlci5jICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KPj4gIHhlbi9h cmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jICAgICAgICAgICAgICAgIHwgICAgMiArLQo+PiAgeGVu L2FyY2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jICAgICAgICAgICAgfCAgICAyICstCj4+ICB4 ZW4vY29tbW9uL2RldmljZV90cmVlLmMgICAgICAgICAgICAgICAgICAgICB8ICAxMjQgKysrCj4+ ICB4ZW4vY29tbW9uL3N5c2N0bC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0K Pj4gIHhlbi9kcml2ZXJzL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAr Cj4+ICB4ZW4vZHJpdmVycy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEg Kwo+PiAgeGVuL2RyaXZlcnMvYWNwaS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCAgICAx IC0KPj4gIHhlbi9kcml2ZXJzL2FjcGkvcG1zdGF0LmMgICAgICAgICAgICAgICAgICAgIHwgIDUy NiAtLS0tLS0tLS0tLS0KPj4gIHhlbi9kcml2ZXJzL2NwdWZyZXEvS2NvbmZpZyAgICAgICAgICAg ICAgICAgIHwgICAgMyArCj4+ICB4ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEuYyAgICAgICAg ICAgICAgICB8ICAxMDIgKystCj4+ICB4ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZyZXFfbWlzY19n b3Zlcm5vcnMuYyB8ICAgIDIgKy0KPj4gIHhlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcV9vbmRl bWFuZC5jICAgICAgIHwgICAgNCArLQo+PiAgeGVuL2RyaXZlcnMvY3B1ZnJlcS91dGlsaXR5LmMg ICAgICAgICAgICAgICAgfCAgIDEzICstCj4+ICB4ZW4vZHJpdmVycy9wbS9LY29uZmlnICAgICAg ICAgICAgICAgICAgICAgICB8ICAgIDMgKwo+PiAgeGVuL2RyaXZlcnMvcG0vTWFrZWZpbGUgICAg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKPj4gIHhlbi9kcml2ZXJzL3BtL3N0YXQuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDUzOCArKysrKysrKysrKysKPj4gIHhlbi9pbmNsdWRlL2Fj cGkvY3B1ZnJlcS9jcHVmcmVxLmggICAgICAgICAgIHwgIDI0NSAtLS0tLS0KPj4gIHhlbi9pbmNs dWRlL2FjcGkvY3B1ZnJlcS9wcm9jZXNzb3JfcGVyZi5oICAgIHwgICA2MyAtLQo+PiAgeGVuL2lu Y2x1ZGUvYXNtLWFybS9kZXZpY2UuaCAgICAgICAgICAgICAgICAgfCAgICAyICsKPj4gIHhlbi9p bmNsdWRlL2FzbS1hcm0vcHJvY2Vzc29yLmggICAgICAgICAgICAgIHwgICAgNCArCj4+ICB4ZW4v aW5jbHVkZS9wdWJsaWMvcGxhdGZvcm0uaCAgICAgICAgICAgICAgICB8ICAgIDEgKwo+PiAgeGVu L2luY2x1ZGUveGVuL2NwdWZyZXEuaCAgICAgICAgICAgICAgICAgICAgfCAgMjU0ICsrKysrKwo+ PiAgeGVuL2luY2x1ZGUveGVuL2RldmljZV90cmVlLmggICAgICAgICAgICAgICAgfCAgMTU4ICsr KysKPj4gIHhlbi9pbmNsdWRlL3hlbi9wbXN0YXQuaCAgICAgICAgICAgICAgICAgICAgIHwgICAg MiArCj4+ICB4ZW4vaW5jbHVkZS94ZW4vcHJvY2Vzc29yX3BlcmYuaCAgICAgICAgICAgICB8ICAg NjkgKysKPj4gIDUwIGZpbGVzIGNoYW5nZWQsIDQ4MjIgaW5zZXJ0aW9ucygrKSwgODYyIGRlbGV0 aW9ucygtKQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9hcm0zMi9zbWMuUwo+ PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9hcm02NC9zbWMuUwo+PiAgY3JlYXRl IG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9jcHVmcmVxL01ha2VmaWxlCj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2NwdWZyZXEvYXJtLXNtYy1tYWlsYm94LmMKPj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vY3B1ZnJlcS9hcm1fc2NwaS5jCj4+ICBjcmVhdGUg bW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2NwdWZyZXEvY3B1ZnJlcV9pZi5jCj4+ICBjcmVhdGUg bW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2NwdWZyZXEvbWFpbGJveC5jCj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2NwdWZyZXEvbWFpbGJveC5oCj4+ICBjcmVhdGUgbW9kZSAx MDA2NDQgeGVuL2FyY2gvYXJtL2NwdWZyZXEvbWFpbGJveF9jbGllbnQuaAo+PiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9jcHVmcmVxL21haWxib3hfY29udHJvbGxlci5oCj4+ICBj cmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2NwdWZyZXEvc2NwaV9jcHVmcmVxLmMKPj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vY3B1ZnJlcS9zY3BpX3Byb3RvY29sLmgK Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vY3B1ZnJlcS93cmFwcGVycy5oCj4+ ICBkZWxldGUgbW9kZSAxMDA2NDQgeGVuL2RyaXZlcnMvYWNwaS9wbXN0YXQuYwo+PiAgY3JlYXRl IG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3BtL0tjb25maWcKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCB4ZW4vZHJpdmVycy9wbS9NYWtlZmlsZQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2 ZXJzL3BtL3N0YXQuYwo+PiAgZGVsZXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL2FjcGkvY3B1 ZnJlcS9jcHVmcmVxLmgKPj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9hY3BpL2Nw dWZyZXEvcHJvY2Vzc29yX3BlcmYuaAo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRl L3hlbi9jcHVmcmVxLmgKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS94ZW4vcHJv Y2Vzc29yX3BlcmYuaAo+PgoKCi0tIApSZWdhcmRzLAoKT2xla3NhbmRyIFR5c2hjaGVua28KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=