From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH v4] displif: add ABI for para-virtual display Date: Tue, 4 Apr 2017 23:03:44 +0300 Message-ID: <211b0ef5-93fb-93b4-825c-ceb5e077e113@gmail.com> References: <1490000192-17467-1-git-send-email-andr2000@gmail.com> <1490000192-17467-2-git-send-email-andr2000@gmail.com> <20170404193824.GA29986@char.us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cvUgA-0004RP-UL for xen-devel@lists.xenproject.org; Tue, 04 Apr 2017 20:03:51 +0000 Received: by mail-lf0-f65.google.com with SMTP id x137so16378373lff.1 for ; Tue, 04 Apr 2017 13:03:48 -0700 (PDT) In-Reply-To: <20170404193824.GA29986@char.us.oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Konrad Rzeszutek Wilk Cc: lars.kurth@citrix.com, Oleksandr Andrushchenko , vlad.babchuk@gmail.com, julien.grall@arm.com, andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, Oleksandr Grytsov , xen-devel@lists.xenproject.org, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org SGksIEtvbnJhZCEKCgpPbiAwNC8wNC8yMDE3IDEwOjM4IFBNLCBLb25yYWQgUnplc3p1dGVrIFdp bGsgd3JvdGU6Cj4gSGV5IQo+Cj4gSSBvbmx5IGhhZCBtaW5vciBjb21tZW50cyAtIGFuZCBpZiB5 b3UgYXJlIE9LIHdpdGggdGhlbQpjb21tZW50cyBzZWVtIHRvIGJlIHJlYXNvbmFibGUgdG8gbWUK PiAgIEkgY2FuIGFsc28KPiBwdXQgdGhlbSBpbiB0aGUgcGF0Y2ggd2hlbiBjaGVja2luZyB0aGVt IGluClBsZWFzZSwgZG8gbWUgYSBmYXZvcgo+ICAgKG9yIGlmIHlvdSB3YW50IHlvdSBjYW4KPiBy ZXBvc3QgaXQgcmlnaHQgYXdheSBhbmQgSSB3aWxsIGNoZWNrIGluIHRoZSBuZXcgdmVyc2lvbiku Cj4KPj4gLS0tCj4+IENoYW5nZXMgc2luY2UgdjM6Cj4+ICAgKiBhZGQgY2xhcmlmaWNhdGlvbiBv biBidWZmZXIncyBzaXplL2RlcHRoL2Zvcm1hdCBhbmQKPj4gICAgIGNvbm5lY3RvcidzIHJlc29s dXRpb24KPj4gICAqIG1vdmUgYmVfYWxsb2MgZmVhdHVyZSBpbnRvIGRvbWFpbidzIGNvbmZpZ3Vy YXRpb24KPj4gICAgIHRvIGFsbG93IG1vcmUgdXNlLWNhc2VzIGFuZCBmcmVlZG9tIChlLmcuIGZv ciAxOjEKPj4gICAgIG1hcHBlZCBkb21haW5zIHRoZXJlIG1heSBiZSBubyBuZWVkIHRvIHJlcXVl c3QgYmFja2VuZAo+PiAgICAgdG8gYWxsb2NhdGUgYnVmZmVycywgd2hpbGUgZm9yIHRoZSByZXN0 IGl0IG1heSBtYWtlIG1vcmUKPj4gICAgIHNlbnNlKQo+PiAgICogcmVuYW1lIFhlblN0b3JlIGVu dHJpZXM6Cj4+ICAgICAgIGN0cmwtcmluZy1yZWYgLT4gcmVxLXJpbmctcmVmCj4+ICAgICAgIGN0 cmwtY2hhbm5lbCAtPiByZXEtZXZlbnQtY2hhbm5lbAo+PiAgICAgICBldmVudC1yaW5nLXJlZiAt PiBldnQtcmluZy1yZWYKPj4gICAgICAgZXZlbnQtY2hhbm5lbCAtPiBldnQtZXZlbnQtY2hhbm5l bAo+PiAgICogaGF2ZSAyIHNlcGFyYXRlIHNlY3Rpb25zIGZvciByZXEvcmVzcCBhbmQgZXZ0IHRy YW5zcG9ydAo+PiAgICAgcGFyYW1ldGVycwo+PiAgICogZml4IGFuZCBleHRlbmQgcmVjb3Zlcnkg ZmxvdyBkZXNjcmlwdGlvbgo+PiAgICogcmVzZXJ2ZSByZXF1ZXN0IGNvZGVzIGZvciBmdXR1cmUg ZmJpZiBpbnRlZ3JhdGlvbiBpZiBuZWVkIGJlCj4+ICAgICAocmVxdWVzdCBjb2RlcyBbMDsgMTVd IGFyZSByZXNlcnZlZCkKPj4gICAqIGVycm9yIG9uIGF0dGVtcHQgdG8gY3JlYXRlIG11bHRpcGxl IGJ1ZmZlcnMgd2l0aCBzYW1lIGNvb2tpZShzKQo+PiAgICogY2xhcmlmaWNhdGlvbiBvZiBwYWdl IGRpcmVjdG9yeSB1c2FnZSBmb3IgYmVfYWxsb2MgZmVhdHVyZQo+PiAgICogYWRkIGVkaXRvcidz IGJsb2NrCj4+Cj4+IENoYW5nZXMgc2luY2UgdjI6Cj4+ICAgKiB1cGRhdGVkIFhlblN0b3JlIGNv bmZpZ3VyYXRpb24gdGVtcGxhdGUvcGF0dGVybgo+PiAgICogYWRkZWQgIlJlY292ZXJ5IGZsb3ci IHRvIHN0YXRlIGRpYWdyYW0gZGVzY3JpcHRpb24KPj4gICAqIHJlbmFtZWQgZ3JlZl9kaXJlY3Rv cnlfc3RhcnQgdG8gZ3JlZl9kaXJlY3RvcnkKPj4gICAqIGFkZGVkIG1pc3NpbmcgInZlcnNpb25z IiBhbmQgInZlcnNpb24iIHN0cmluZyBjb25zdGFudHMKPj4KPj4gQ2hhbmdlcyBzaW5jZSB2MToK Pj4gICAqIGZpeGVkIHhlbmRpc3BsX2V2ZW50X3BhZ2UgcGFkZGluZyBzaXplCj4+ICAgKiBhZGRl ZCB2ZXJzaW9uaW5nIHN1cHBvcnQKPj4gICAqIGV4cGxpY2l0bHkgZGVmaW5lIHZhbHVlIHR5cGVz IGZvciBYZW5TdG9yZSBmaWVsZHMKPj4gICAqIHRleHQgZGVjb3JhdGlvbiByZS13b3JrCj4+ICAg KiBhZGRlZCBvZmZzZXRzIHRvIEFTQ0lJIGJveCBub3RhdGlvbgo+Pgo+PiBDaGFuZ2VzIHNpbmNl IGluaXRpYWw6Cj4+ICAgKiBEUk0gY2hhbmdlZCB0byBESVNQTCwgcHJvdG9jb2wgbWFkZSBnZW5l cmljCj4+ICAgKiBtYWpvciByZS13b3JrIGFkZHJlc3NpbmcgaXNzdWVzIHJhaXNlZCBmb3Igc25k aWYKPj4KPj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0 c292QGVwYW0uY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8 b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4+IC0tLQo+PiAgIHhlbi9pbmNsdWRl L3B1YmxpYy9pby9kaXNwbGlmLmggfCA4NDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+PiAgIDEgZmlsZSBjaGFuZ2VkLCA4NDcgaW5zZXJ0aW9ucygrKQo+PiAgIGNy ZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8vZGlzcGxpZi5oCj4+Cj4+IGRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaW8vZGlzcGxpZi5oIGIveGVuL2luY2x1ZGUv cHVibGljL2lvL2Rpc3BsaWYuaAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAw MDAwMDAwMDAuLmFjNTVjNGZlOGJiZQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL3hlbi9pbmNs dWRlL3B1YmxpYy9pby9kaXNwbGlmLmgKPj4gQEAgLTAsMCArMSw4NDcgQEAKPj4gKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKPj4gKyAqIGRpc3BsaWYuaAo+PiArICoKPj4gKyAqIFVuaWZpZWQgZGlz cGxheSBkZXZpY2UgSS9PIGludGVyZmFjZSBmb3IgWGVuIGd1ZXN0IE9TZXMuCj4+ICsgKgo+PiAr ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24gb2J0YWluaW5nIGEgY29weQo+PiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4+ICsgKiBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uIHRoZQo+PiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4+ICsgKiBzZWxsIGNvcGll cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0 d2FyZSBpcwo+PiArICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+PiArICogYWxs IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4+ICsgKgo+ PiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+PiArICogRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8g RVZFTlQgU0hBTEwgVEhFCj4+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+ICsgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO Rwo+PiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUgo+PiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+PiAr ICoKPj4gKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEVQQU0gU3lzdGVtcyBJbmMuCj4+ICsg Kgo+PiArICogQXV0aG9yczogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRy dXNoY2hlbmtvQGVwYW0uY29tPgo+PiArICogICAgICAgICAgT2xla3NhbmRyIEdyeXRzb3YgPG9s ZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgo+PiArICovCj4+ICsKPj4gKyNpZm5kZWYgX19YRU5f UFVCTElDX0lPX0RJU1BMSUZfSF9fCj4+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19JT19ESVNQTElG X0hfXwo+PiArCj4+ICsjaW5jbHVkZSAicmluZy5oIgo+PiArI2luY2x1ZGUgIi4uL2dyYW50X3Rh YmxlLmgiCj4+ICsKPj4gKy8qCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAg ICAgICAgICAgICAgIE1haW4gZmVhdHVyZXMgcHJvdmlkZWQgYnkgdGhlIHByb3RvY29sCj4+ICsg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiBUaGlzIHByb3RvY29sIGFpbXMgdG8gcHJvdmlk ZSBhIHVuaWZpZWQgcHJvdG9jb2wgd2hpY2ggZml0cyBtb3JlCj4+ICsgKiBzb3BoaXN0aWNhdGVk IHVzZS1jYXNlcyB0aGFuIGEgZnJhbWVidWZmZXIgZGV2aWNlIGNhbiBoYW5kbGUuIEF0IHRoZQo+ PiArICogbW9tZW50IGJhc2ljIGZ1bmN0aW9uYWxpdHkgaXMgc3VwcG9ydGVkIHdpdGggdGhlIGlu dGVudGlvbiB0byBiZSBleHRlbmRlZDoKPj4gKyAqICBvIG11bHRpcGxlIGR5bmFtaWNhbGx5IGFs bG9jYXRlZC9kZXN0cm95ZWQgZnJhbWVidWZmZXJzCj4+ICsgKiAgbyBidWZmZXJzIG9mIGFyYml0 cmFyeSBzaXplcwo+PiArICogIG8gYnVmZmVyIGFsbG9jYXRpb24gYXQgZWl0aGVyIGJhY2sgb3Ig ZnJvbnQgZW5kCj4+ICsgKiAgbyBiZXR0ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIGluY2x1ZGlu ZyBtdWx0aXBsZSBkaXNwbGF5IHN1cHBvcnQKPj4gKyAqCj4+ICsgKiBOb3RlOiBleGlzdGluZyBm YmlmIGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggZGlzcGxpZiBydW5uaW5nIGF0IHRoZQo+PiAr ICogc2FtZSB0aW1lLCBlLmcuIG9uIExpbnV4IG9uZSBwcm92aWRlcyBmcmFtZWJ1ZmZlciBhbmQg YW5vdGhlciBEUk0vS01TCj4+ICsgKgo+PiArICogTm90ZTogZGlzcGxheSByZXNvbHV0aW9uIChY ZW5TdG9yZSdzICJyZXNvbHV0aW9uIiBwcm9wZXJ0eSkgZGVmaW5lcwo+PiArICogdmlzaWJsZSBh cmVhIG9mIHRoZSB2aXJ0dWFsIGRpc3BsYXkuIEF0IHRoZSBzYW1lIHRpbWUgcmVzb2x1dGlvbiBv Zgo+PiArICogdGhlIGRpc3BsYXkgYW5kIGZyYW1lIGJ1ZmZlcnMgbWF5IGRpZmZlcjogYnVmZmVy cyBjYW4gYmUgc21hbGxlciwgZXF1YWwKPj4gKyAqIG9yIGJpZ2dlciB0aGFuIHRoZSB2aXNpYmxl IGFyZWEuIFRoaXMgaXMgdG8gZW5hYmxlIHVzZS1jYXNlcywgd2hlcmUgYmFja2VuZAo+PiArICog bWF5IGRvIHNvbWUgcG9zdC1wcm9jZXNzaW5nIG9mIHRoZSBkaXNwbGF5IGFuZCBmcmFtZSBidWZm ZXJzIHN1cHBsaWVkLAo+PiArICogZS5nLiB0aG9zZSBidWZmZXJzIGNhbiBiZSBqdXN0IGEgcGFy dCBvZiB0aGUgZmluYWwgY29tcG9zaXRpb24uCj4+ICsgKgo+PiArICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICBEaXJlY3Rpb24gb2YgaW1wcm92ZW1l bnRzCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiBGdXR1cmUgZXh0ZW5zaW9ucyB0 byB0aGUgZXhpc3RpbmcgcHJvdG9jb2wgbWF5IGluY2x1ZGU6Cj4+ICsgKiAgbyBkaXNwbGF5L2Nv bm5lY3RvciBjbG9uaW5nCj4+ICsgKiAgbyBhbGxvY2F0aW9uIG9mIG9iamVjdHMgb3RoZXIgdGhh biBkaXNwbGF5IGJ1ZmZlcnMKPj4gKyAqICBvIHBsYW5lL292ZXJsYXkgc3VwcG9ydAo+PiArICog IG8gc2NhbGluZyBzdXBwb3J0Cj4+ICsgKiAgbyByb3RhdGlvbiBzdXBwb3J0Cj4+ICsgKgo+PiAr ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICBGZWF0dXJlIGFu ZCBQYXJhbWV0ZXIgTmVnb3RpYXRpb24KPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAq Cj4+ICsgKiBGcm9udC0+YmFjayBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyBy ZXF1ZXN0LCBzZW5kaW5nIGEKPj4gKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRp b25hbCBvbiB4ZW5kaXNwbF9yZXEgKGkuZS4sIHRoZSBnZW5lcmljCj4+ICsgKiBob2xkLW9mZiBt ZWNoYW5pc20gcHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gQmFja2VuZHMgbXVzdCBzZXQK Pj4gKyAqIHhlbmRpc3BsX3JlcSBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFM X0NIRUNLX0ZPUl9SRVFVRVNUUygpKS4KPj4gKyAqCj4+ICsgKiBCYWNrLT5mcm9udCBub3RpZmlj YXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXNwb25zZSwgc2VuZGluZyBhCj4+ICsgKiBu b3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24geGVuZGlzcGxfcmVzcCAoaS5l LiwgdGhlIGdlbmVyaWMKPj4gKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUg cmluZyBtYWNyb3MpLiBGcm9udGVuZHMgbXVzdCBzZXQKPj4gKyAqIHhlbmRpc3BsX3Jlc3AgYXBw cm9wcmlhdGVseSAoZS5nLiwgdXNpbmcgUklOR19GSU5BTF9DSEVDS19GT1JfUkVTUE9OU0VTKCkp Lgo+PiArICoKPj4gKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12aXJ0dWFsIGRpc3BsYXkg ZHJpdmVyIHV0aWxpemUgbm9kZXMgd2l0aGluCj4+ICsgKiBYZW5TdG9yZSB0byBjb21tdW5pY2F0 ZSBjYXBhYmlsaXRpZXMgYW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcgcGFyYW1ldGVycy4KPj4g KyAqIFRoaXMgc2VjdGlvbiBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0 aGUgcmVzcGVjdGl2ZSBmcm9udCBhbmQKPj4gKyAqIGJhY2tlbmQgcG9ydGlvbnMgb2YgWGVuU3Rv cmUsIGZvbGxvd2luZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uCj4+ICsgKgo+PiArICogQWxsIGRh dGEgaW4gWGVuU3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuIE5vZGVzIHNwZWNpZnlpbmcgbnVt ZXJpYwo+PiArICogdmFsdWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwuIEludGVnZXIgdmFsdWUg cmFuZ2VzIGxpc3RlZCBiZWxvdyBhcmUKPj4gKyAqIGV4cHJlc3NlZCBhcyBmaXhlZCBzaXplZCBp bnRlZ2VyIHR5cGVzIGNhcGFibGUgb2Ygc3RvcmluZyB0aGUgY29udmVyc2lvbgo+PiArICogb2Yg YSBwcm9wZXJseSBmb3JtYXRlZCBub2RlIHN0cmluZywgd2l0aG91dCBsb3NzIG9mIGluZm9ybWF0 aW9uLgo+PiArICoKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAg ICAgICAgICAgICAgRXhhbXBsZSBjb25maWd1cmF0aW9uCj4+ICsgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCj4+ICsgKgo+PiArICogTm90ZTogZGVwZW5kaW5nIG9uIHRoZSB1c2UtY2FzZSBiYWNrZW5k IGNhbiBleHBvc2UgbW9yZSBkaXNwbGF5IGNvbm5lY3RvcnMKPj4gKyAqIHRoYW4gdGhlIHVuZGVy bHlpbmcgSFcgcGh5c2ljYWxseSBoYXMgYnkgZW1wbG95aW5nIFNXIGdyYXBoaWNzIGNvbXBvc2l0 b3JzCj4+ICsgKgo+PiArICogVGhpcyBpcyBhbiBleGFtcGxlIG9mIGJhY2tlbmQgYW5kIGZyb250 ZW5kIGNvbmZpZ3VyYXRpb246Cj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gQmFja2VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAr ICoKPj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZkaXNwbC8xLzAvZnJvbnRlbmQtaWQg PSAiMSIKPj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZkaXNwbC8xLzAvZnJvbnRlbmQg PSAiL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMCIKPj4gKyAqIC9sb2NhbC9kb21haW4v MC9iYWNrZW5kL3ZkaXNwbC8xLzAvc3RhdGUgPSAiNCIKPj4gKyAqIC9sb2NhbC9kb21haW4vMC9i YWNrZW5kL3ZkaXNwbC8xLzAvdmVyc2lvbnMgPSAiMSwyIgo+PiArICoKPj4gKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZyb250ZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8w L2JhY2tlbmQtaWQgPSAiMCIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAv YmFja2VuZCA9ICIvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92ZGlzcGwvMS8wIgo+PiArICogL2xv Y2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC9zdGF0ZSA9ICI0Igo+PiArICogL2xvY2FsL2Rv bWFpbi8xL2RldmljZS92ZGlzcGwvMC92ZXJzaW9uID0gIjEiCj4+ICsgKiAvbG9jYWwvZG9tYWlu LzEvZGV2aWNlL3ZkaXNwbC8wL2JlX2FsbG9jID0gIjEiCj4KPiBUaGlzIGNvdWxkIGJlIGNoYW5n ZWQgdG8gJy0nLiBBcyBpbiAiYmUtYWxsb2MiIGluc3RlYWQgb2YgImJlX2FsbG9jIgo+PiArICoK Pj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29ubmVjdG9yIDAgY29uZmlndXJhdGlv biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEv ZGV2aWNlL3ZkaXNwbC8wLzAvcmVzb2x1dGlvbiA9ICIxOTIweDEwODAiCj4+ICsgKiAvbG9jYWwv ZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wLzAvcmVxLXJpbmctcmVmID0gIjI4MzIiCj4+ICsgKiAv bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wLzAvcmVxLWV2ZW50LWNoYW5uZWwgPSAiMTUi Cj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZkaXNwbC8wLzAvZXZ0LXJpbmctcmVmID0g IjM4NyIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMC9ldnQtZXZlbnQt Y2hhbm5lbCA9ICIxNiIKPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENv bm5lY3RvciAxIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+ PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92ZGlzcGwvMC8xL3Jlc29sdXRpb24gPSAiODAw eDYwMCIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMS9yZXEtcmluZy1y ZWYgPSAiMjgzMyIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3BsLzAvMS9yZXEt ZXZlbnQtY2hhbm5lbCA9ICIxNyIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmRpc3Bs LzAvMS9ldnQtcmluZy1yZWYgPSAiMzg4Igo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92 ZGlzcGwvMC8xL2V2dC1ldmVudC1jaGFubmVsID0gIjE4Igo+PiArICoKPj4gKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmQgWGVu QnVzIE5vZGVzCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKgo+PiArICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90b2NvbCB2ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIHZlcnNpb25zCj4+ICsgKiAgICAgIFZhbHVlczog ICAgICAgICA8c3RyaW5nPgo+PiArICoKPj4gKyAqICAgICAgTGlzdCBvZiBYRU5ESVNQTF9MSVNU X1NFUEFSQVRPUiBzZXBhcmF0ZWQgcHJvdG9jb2wgdmVyc2lvbnMgc3VwcG9ydGVkCj4+ICsgKiAg ICAgIGJ5IHRoZSBiYWNrZW5kLiBGb3IgZXhhbXBsZSAiMSwyLDMiLgo+PiArICoKPj4gKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250 ZW5kIFhlbkJ1cyBOb2Rlcwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICoKPj4gKyAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQWRkcmVzc2luZyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBkb20taWQKPj4gKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDx1aW50MTZfdD4KPj4gKyAqCj4+ICsgKiAgICAgIERvbWFpbiBpZGVudGlm aWVyLgo+PiArICoKPj4gKyAqIGRldi1pZAo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVp bnQxNl90Pgo+PiArICoKPj4gKyAqICAgICAgRGV2aWNlIGlkZW50aWZpZXIuCj4+ICsgKgo+PiAr ICogY29ubi1pZHgKPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50OF90Pgo+PiArICoK Pj4gKyAqICAgICAgWmVybyBiYXNlZCBjb250aWdvdXMgaW5kZXggb2YgdGhlIGNvbm5lY3Rvci4K Pj4gKyAqICAgICAgL2xvY2FsL2RvbWFpbi88ZG9tLWlkPi9kZXZpY2UvdmRpc3BsLzxkZXYtaWQ+ Lzxjb25uLWlkeD4vLi4uCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSBQcm90b2NvbCB2ZXJzaW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoK Pj4gKyAqIHZlcnNpb24KPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxzdHJpbmc+Cj4+ICsg Kgo+PiArICogICAgICBQcm90b2NvbCB2ZXJzaW9uLCBjaG9zZW4gYW1vbmcgdGhlIG9uZXMgc3Vw cG9ydGVkIGJ5IHRoZSBiYWNrZW5kLgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBCYWNrZW5kIGJ1ZmZlciBhbGxvY2F0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4gKyAqCj4+ICsgKiBiZV9hbGxvYwo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgIjAiLCAi MSIKPj4gKyAqCj4+ICsgKiAgICAgIElmIHZhbHVlIGlzIHNldCB0byAiMSIsIHRoZW4gYmFja2Vu ZCBjYW4gYmUgYSBidWZmZXIgcHJvdmlkZXIvYWxsb2NhdG9yCj4+ICsgKiAgICAgIGZvciB0aGlz IGRvbWFpbiBkdXJpbmcgWEVORElTUExfT1BfREJVRl9DUkVBVEUgb3BlcmF0aW9uIChzZWUgYmVs b3cKPj4gKyAqICAgICAgZm9yIG5lZ290aWF0aW9uKS4KPj4gKyAqICAgICAgSWYgdmFsdWUgaXMg bm90ICIxIiBvciBvbWl0dGVkIGZyb250ZW5kIG11c3QgYWxsb2NhdGUgYnVmZmVycyBpdHNlbGYu Cj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb25uZWN0b3Igc2V0 dGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIHJlc29sdXRp b24KPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx3aWR0aCwgdWludDMyX3Q+eDxoZWlnaHQs IHVpbnQzMl90Pgo+PiArICoKPj4gKyAqICAgICAgV2lkdGggYW5kIGhlaWdodCBvZiB0aGUgY29u bmVjdG9yIGluIHBpeGVscyBzZXBhcmF0ZWQgYnkKPj4gKyAqICAgICAgWEVORElTUExfUkVTT0xV VElPTl9TRVBBUkFUT1IuIFRoaXMgZGVmaW5lcyB2aXNpYmxlIGFyZWEgb2YgdGhlCj4+ICsgKiAg ICAgIGRpc3BsYXkuCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0gQ29ubmVjdG9yIFJl cXVlc3QgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4g KyAqIFRoaXMgY29tbXVuaWNhdGlvbiBwYXRoIGlzIHVzZWQgdG8gZGVsaXZlciByZXF1ZXN0cyBm cm9tIGZyb250ZW5kIHRvIGJhY2tlbmQKPj4gKyAqIGFuZCBnZXQgdGhlIGNvcnJlc3BvbmRpbmcg cmVzcG9uc2VzIGZyb20gYmFja2VuZCB0byBmcm9udGVuZCwKPj4gKyAqIHNldCB1cCBwZXIgY29u bmVjdG9yLgo+PiArICoKPj4gKyAqIHJlcS1ldmVudC1jaGFubmVsCj4+ICsgKiAgICAgIFZhbHVl czogICAgICAgICA8dWludDMyX3Q+Cj4+ICsgKgo+PiArICogICAgICBUaGUgaWRlbnRpZmllciBv ZiB0aGUgWGVuIGNvbm5lY3RvcidzIGNvbnRyb2wgZXZlbnQgY2hhbm5lbAo+PiArICogICAgICB1 c2VkIHRvIHNpZ25hbCBhY3Rpdml0eSBpbiB0aGUgcmluZyBidWZmZXIuCj4+ICsgKgo+PiArICog cmVxLXJpbmctcmVmCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+Cj4+ICsg Kgo+PiArICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9u IGZvciB0aGUgYmFja2VuZCB0byBtYXAKPj4gKyAqICAgICAgYSBzb2xlIHBhZ2UgaW4gYSBzaW5n bGUgcGFnZSBzaXplZCBjb25uZWN0b3IncyBjb250cm9sIHJpbmcgYnVmZmVyLgo+IFBlcmhhcHMg cy9pbiBhIHNpbmdsZSBwYWdlIHNpemVkL29mLyA/Cj4KPgo+PiArICoKPj4gKyAqLS0tLS0tLS0t LS0tLS0tLS0tLSBDb25uZWN0b3IgRXZlbnQgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0t LS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBUaGlzIGNvbW11bmljYXRpb24gcGF0aCBpcyB1c2Vk IHRvIGRlbGl2ZXIgYXN5bmNocm9ub3VzIGV2ZW50cyBmcm9tIGJhY2tlbmQKPj4gKyAqIHRvIGZy b250ZW5kLCBzZXQgdXAgcGVyIGNvbm5lY3Rvci4KPj4gKyAqCj4+ICsgKiBldnQtZXZlbnQtY2hh bm5lbAo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgo+PiArICoKPj4gKyAq ICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBjb25uZWN0b3IncyBldmVudCBjaGFubmVs Cj4+ICsgKiAgICAgIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5IGluIHRoZSByaW5nIGJ1ZmZlci4K Pj4gKyAqCj4+ICsgKiBldnQtcmluZy1yZWYKPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1 aW50MzJfdD4KPj4gKyAqCj4+ICsgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50 aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAo+PiArICogICAgICBhIHNvbGUg cGFnZSBpbiBhIHNpbmdsZSBwYWdlIHNpemVkIGNvbm5lY3RvcidzIGV2ZW50IHJpbmcgYnVmZmVy Lgo+IFRoZSBzYW1lIGhlcmU/IHMvaW4gYSBzaW5nbGUgcGFnZSBzaXplZC9vZi8KPj4gKyAqLwo+ PiArCj4+ICsvKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU1RBVEUgRElBR1JBTVMKPj4gKyAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKPj4gKyAqCj4+ICsgKiBUb29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5kIGJhY2sgc3RhdGUg bm9kZXMgd2l0aCBpbml0aWFsIHN0YXRlCj4+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4K Pj4gKyAqIFRvb2wgc3RhY2sgY3JlYXRlcyBhbmQgc2V0cyB1cCBmcm9udGVuZCBkaXNwbGF5IGNv bmZpZ3VyYXRpb24KPj4gKyAqIG5vZGVzIHBlciBkb21haW4uCj4+ICsgKgo+PiArICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBOb3JtYWwgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIEZyb250ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCYWNrCj4+ICsgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gICAg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+PiArICogWGVuYnVzU3RhdGVJ bml0aWFsaXNpbmcgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nCj4+ICsgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgYmFja2VuZCBkZXZp Y2UgaWRlbnRpZmljYXRpb24KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhLgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tlbmQgZGV2aWNlLgo+PiArICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgo+PiArICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQKPj4gKyAqCj4+ICsgKiBv IFF1ZXJ5IGZyb250ZW5kIGNvbmZpZ3VyYXRpb24KPj4gKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRp YWxpemUKPj4gKyAqICAgZXZlbnQgY2hhbm5lbHMgcGVyIGNvbmZpZ3VyZWQKPj4gKyAqICAgY29u bmVjdG9yLgo+PiArICogbyBQdWJsaXNoIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCj4+ICsgKiAgIHRo YXQgd2lsbCBiZSBpbiBlZmZlY3QgZHVyaW5nCj4+ICsgKiAgIHRoaXMgY29ubmVjdGlvbi4KPj4g KyAqICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAg ICAgIFYKPj4gKyAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQKPj4gKyAqCj4+ICsgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgZnJvbnRlbmQgdHJhbnNwb3J0 IHBhcmFtZXRlcnMuCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG8gQ29ubmVjdCB0byB0aGUgZXZlbnQgY2hhbm5lbHMuCj4+ICsgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCj4+ICsgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDb25uZWN0ZWQKPj4gKyAqCj4+ICsgKiAgbyBD cmVhdGUgYW5kIGluaXRpYWxpemUgT1MKPj4gKyAqICAgIHZpcnR1YWwgZGlzcGxheSBjb25uZWN0 b3JzCj4+ICsgKiAgICBhcyBwZXIgY29uZmlndXJhdGlvbi4KPj4gKyAqICAgICAgICAgICAgICB8 Cj4+ICsgKiAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgIFYKPj4gKyAqIFhlbmJ1 c1N0YXRlQ29ubmVjdGVkCj4+ICsgKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFhlbmJ1c1N0YXRlVW5rbm93bgo+PiArICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2VkCj4+ICsgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9zaW5nCj4+ICsgKiBvIFJlbW92ZSB2 aXJ0dWFsIGRpc3BsYXkgZGV2aWNlCj4+ICsgKiBvIFJlbW92ZSBldmVudCBjaGFubmVscwo+PiAr ICogICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAg ICAgVgo+PiArICogWGVuYnVzU3RhdGVDbG9zZWQKPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gUmVjb3ZlcnkgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4+ICsgKgo+PiArICogSW4gY2FzZSBvZiBmcm9udGVuZCB1bnJlY292ZXJhYmxlIGVy cm9ycyBiYWNrZW5kIGhhbmRsZXMgdGhhdCBhcwo+PiArICogaWYgZnJvbnRlbmQgZ29lcyBpbnRv IHRoZSBYZW5idXNTdGF0ZUNsb3NlZCBzdGF0ZS4KPj4gKyAqCj4+ICsgKiBJbiBjYXNlIG9mIGJh Y2tlbmQgdW5yZWNvdmVyYWJsZSBlcnJvcnMgZnJvbnRlbmQgdHJpZXMgcmVtb3ZpbmcKPj4gKyAq IHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuIElmIHRoaXMgaXMgcG9zc2libGUgYXQgdGhlIG1vbWVu dCBvZiBlcnJvciwKPj4gKyAqIHRoZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRoZSBYZW5idXNTdGF0 ZUluaXRpYWxpc2luZyBzdGF0ZSBhbmQgaXMgcmVhZHkgZm9yCj4+ICsgKiBuZXcgY29ubmVjdGlv biB3aXRoIGJhY2tlbmQuIElmIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgaXMgc3RpbGwgaW4gdXNl IGFuZAo+PiArICogY2Fubm90IGJlIHJlbW92ZWQsIHRoZW4gZnJvbnRlbmQgZ29lcyBpbnRvIHRo ZSBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUKPj4gKyAqIHVudGlsIGVpdGhlciB0aGUg dmlydHVhbGl6ZWQgZGV2aWNlIHJlbW92ZWQgb3IgYmFja2VuZCBpbml0aWF0ZXMgYSBuZXcKPiBz L3JlbW92ZWQvaXMgcmVtb3ZlZC8KPgo+PiArICogY29ubmVjdGlvbi4gT24gdGhlIHZpcnR1YWxp emVkIGRldmljZSByZW1vdmFsIGZyb250ZW5kIGdvZXMgaW50byB0aGUKPj4gKyAqIFhlbmJ1c1N0 YXRlSW5pdGlhbGlzaW5nIHN0YXRlLgo+PiArICoKPj4gKyAqIE5vdGUgb24gWGVuYnVzU3RhdGVS ZWNvbmZpZ3VyaW5nIHN0YXRlIG9mIHRoZSBmcm9udGVuZDogaWYgYmFja2VuZCBoYXMKPj4gKyAq IHVucmVjb3ZlcmFibGUgZXJyb3JzIHRoZW4gZnJvbnRlbmQgY2Fubm90IHNlbmQgcmVxdWVzdHMg dG8gdGhlIGJhY2tlbmQKPj4gKyAqIGFuZCB0aHVzIGNhbm5vdCBwcm92aWRlIGZ1bmN0aW9uYWxp dHkgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhbnltb3JlLgo+PiArICogQWZ0ZXIgYmFja2Vu ZCBpcyBiYWNrIHRvIG5vcm1hbCB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIG1heSBzdGlsbCBob2xk IHNvbWUKPj4gKyAqIHN0YXRlOiBjb25maWd1cmF0aW9uIGluIHVzZSwgYWxsb2NhdGVkIGJ1ZmZl cnMsIGNsaWVudCBhcHBsaWNhdGlvbiBzdGF0ZSBldGMuCj4+ICsgKiBTbywgaW4gbW9zdCBjYXNl cywgdGhpcyB3aWxsIHJlcXVpcmUgZnJvbnRlbmQgdG8gaW1wbGVtZW50IGNvbXBsZXggcmVjb3Zl cnkKPiBzL1NvLCBpbi9Jbi8KPj4gKyAqIHJlY29ubmVjdCBsb2dpYy4gSW5zdGVhZCwgYnkgZ29p bmcgaW50byBYZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUsCj4+ICsgKiBmcm9udGVuZCB3 aWxsIG1ha2Ugc3VyZSBubyBuZXcgY2xpZW50cyBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGFy ZQo+PiArICogYWNjZXB0ZWQsIGFsbG93IGV4aXN0aW5nIGNsaWVudChzKSB0byBleGl0IGdyYWNl ZnVsbHkgYnkgc2lnbmFsaW5nIGVycm9yCj4+ICsgKiBzdGF0ZSBldGMuCj4+ICsgKiBPbmNlIGFs bCB0aGUgY2xpZW50cyBhcmUgZ29uZSBmcm9udGVuZCBjYW4gcmVpbml0aWFsaXplIHRoZSB2aXJ0 dWFsaXplZAo+PiArICogZGV2aWNlIGFuZCBnZXQgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2lu ZyBzdGF0ZSBhZ2FpbiBzaWduYWxpbmcgdGhlCj4+ICsgKiBiYWNrZW5kIHRoYXQgYSBuZXcgY29u bmVjdGlvbiBjYW4gYmUgbWFkZS4KPj4gKyAqCj4+ICsgKiBUaGVyZSBhcmUgbXVsdGlwbGUgY29u ZGl0aW9ucyBwb3NzaWJsZSB1bmRlciB3aGljaCBmcm9udGVuZCB3aWxsIGdvIGZyb20KPj4gKyAq IFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZyBpbnRvIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLCBz b21lIG9mIHRoZW0gYXJlIE9TCj4+ICsgKiBzcGVjaWZpYy4gRm9yIGV4YW1wbGU6Cj4+ICsgKiAx LiBUaGUgdW5kZXJseWluZyBPUyBmcmFtZXdvcmsgbWF5IHByb3ZpZGUgY2FsbGJhY2tzIHRvIHNp Z25hbCB0aGF0IHRoZSBsYXN0Cj4+ICsgKiAgICBjbGllbnQgb2YgdGhlIHZpcnR1YWxpemVkIGRl dmljZSBoYXMgZ29uZSBhbmQgdGhlIGRldmljZSBjYW4gYmUgcmVtb3ZlZAo+PiArICogMi4gRnJv bnRlbmQgY2FuIHNjaGVkdWxlIGEgZGVmZXJyZWQgd29yayAodGltZXIvdGFza2xldC93b3JrcXVl dWUpCj4+ICsgKiAgICB0byBwZXJpb2RpY2FsbHkgY2hlY2sgaWYgdGhpcyBpcyB0aGUgcmlnaHQg dGltZSB0byByZS10cnkgcmVtb3ZhbCBvZgo+PiArICogICAgdGhlIHZpcnR1YWxpemVkIGRldmlj ZS4KPj4gKyAqIDMuIEJ5IGFueSBvdGhlciBtZWFucy4KPj4gKyAqCj4+ICsgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVCBDT0RF Uwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogUmVxdWVzdCBjb2RlcyBbMDsgMTVd IGFyZSByZXNlcnZlZCBhbmQgbXVzdCBub3QgYmUgdXNlZAo+PiArICovCj4+ICsKPj4gKyNkZWZp bmUgWEVORElTUExfT1BfREJVRl9DUkVBVEUgICAgICAgMHgxMAo+PiArI2RlZmluZSBYRU5ESVNQ TF9PUF9EQlVGX0RFU1RST1kgICAgICAweDExCj4+ICsjZGVmaW5lIFhFTkRJU1BMX09QX0ZCX0FU VEFDSCAgICAgICAgIDB4MTIKPj4gKyNkZWZpbmUgWEVORElTUExfT1BfRkJfREVUQUNIICAgICAg ICAgMHgxMwo+PiArI2RlZmluZSBYRU5ESVNQTF9PUF9TRVRfQ09ORklHICAgICAgICAweDE0Cj4+ ICsjZGVmaW5lIFhFTkRJU1BMX09QX1BHX0ZMSVAgICAgICAgICAgIDB4MTUKPj4gKwo+PiArLyoK Pj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRVZFTlQgQ09ERVMKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqLwo+ PiArI2RlZmluZSBYRU5ESVNQTF9FVlRfUEdfRkxJUCAgICAgICAgICAweDAwCj4+ICsKPj4gKy8q Cj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgIFhFTlNUT1JF IEZJRUxEIEFORCBQQVRIIE5BTUUgU1RSSU5HUywgSEVMUEVSUwo+PiArICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgo+PiArICovCj4+ICsjZGVmaW5lIFhFTkRJU1BMX0RSSVZFUl9OQU1FICAgICAgICAg ICJ2ZGlzcGwiCj4+ICsKPj4gKyNkZWZpbmUgWEVORElTUExfTElTVF9TRVBBUkFUT1IgICAgICAg IiwiCj4+ICsjZGVmaW5lIFhFTkRJU1BMX1JFU09MVVRJT05fU0VQQVJBVE9SICJ4Igo+PiArCj4+ ICsjZGVmaW5lIFhFTkRJU1BMX0ZJRUxEX0JFX1ZFUlNJT05TICAgICJ2ZXJzaW9ucyIKPj4gKyNk ZWZpbmUgWEVORElTUExfRklFTERfRkVfVkVSU0lPTiAgICAgInZlcnNpb24iCj4+ICsjZGVmaW5l IFhFTkRJU1BMX0ZJRUxEX1JFUV9SSU5HX1JFRiAgICJyZXEtcmluZy1yZWYiCj4+ICsjZGVmaW5l IFhFTkRJU1BMX0ZJRUxEX1JFUV9DSEFOTkVMICAgICJyZXEtZXZlbnQtY2hhbm5lbCIKPj4gKyNk ZWZpbmUgWEVORElTUExfRklFTERfRVZUX1JJTkdfUkVGICAgImV2dC1yaW5nLXJlZiIKPj4gKyNk ZWZpbmUgWEVORElTUExfRklFTERfRVZUX0NIQU5ORUwgICAgImV2dC1ldmVudC1jaGFubmVsIgo+ PiArI2RlZmluZSBYRU5ESVNQTF9GSUVMRF9SRVNPTFVUSU9OICAgICAicmVzb2x1dGlvbiIKPj4g KyNkZWZpbmUgWEVORElTUExfRklFTERfQkVfQUxMT0MgICAgICAgImJlX2FsbG9jIgo+IHMvYmVf YWxsb2MvYmUtYWxsb2MvID8KPgo+Cj4+ICsKPj4gKy8qCj4+ICsgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVFVTIFJFVFVSTiBDT0RFUwo+ PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICoKPj4gKyAqIFN0YXR1cyByZXR1cm4gY29k ZSBpcyB6ZXJvIG9uIHN1Y2Nlc3MgYW5kIC1YRU5fRVhYIG9uIGZhaWx1cmUuCj4+ICsgKgo+PiAr ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBc3N1bXB0aW9ucwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogbyB1c2FnZSBv ZiBncmFudCByZWZlcmVuY2UgMCBhcyBpbnZhbGlkIGdyYW50IHJlZmVyZW5jZToKPj4gKyAqICAg Z3JhbnQgcmVmZXJlbmNlIDAgaXMgdmFsaWQsIGJ1dCBuZXZlciBleHBvc2VkIHRvIGEgUFYgZHJp dmVyLAo+PiArICogICBiZWNhdXNlIG9mIHRoZSBmYWN0IGl0IGlzIGFscmVhZHkgaW4gdXNlL3Jl c2VydmVkIGJ5IHRoZSBQViBjb25zb2xlLgo+PiArICogbyBhbGwgcmVmZXJlbmNlcyBpbiB0aGlz IGRvY3VtZW50IHRvIHBhZ2Ugc2l6ZXMgbXVzdCBiZSB0cmVhdGVkCj4+ICsgKiAgIGFzIHBhZ2Vz IG9mIHNpemUgWEVOX1BBR0VfU0laRSB1bmxlc3Mgb3RoZXJ3aXNlIG5vdGVkLgo+PiArICoKPj4g KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgIERlc2NyaXB0aW9uIG9mIHRoZSBw cm90b2NvbCBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlcgo+PiArICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgo+PiArICoKPj4gKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEgUGFyYS12aXJ0 dWFsIGRpc3BsYXkgZHJpdmVyIGNvbW11bmljYXRlIHdpdGgKPj4gKyAqIGVhY2ggb3RoZXIgdXNp bmcgc2hhcmVkIHBhZ2VzIGFuZCBldmVudCBjaGFubmVscy4KPj4gKyAqIFNoYXJlZCBwYWdlIGNv bnRhaW5zIGEgcmluZyB3aXRoIHJlcXVlc3QvcmVzcG9uc2UgcGFja2V0cy4KPj4gKyAqCj4+ICsg KiBBbGwgcmVzZXJ2ZWQgZmllbGRzIGluIHRoZSBzdHJ1Y3R1cmVzIGJlbG93IG11c3QgYmUgMC4K Pj4gKyAqIERpc3BsYXkgYnVmZmVycydzIGNvb2tpZSBvZiB2YWx1ZSAwIHRyZWF0ZWQgYXMgaW52 YWxpZC4KPiBzL3RyZWF0ZWQvaXMgdHJlYXRlZC8KPj4gKyAqIEZyYW1lYnVmZmVyJ3MgY29va2ll IG9mIHZhbHVlIDAgdHJlYXRlZCBhcyBpbnZhbGlkLgo+IHMvdHJlYXRlZC9pcyB0cmVhdGVkLwo+ PiArICoKPj4gKyAqIEZvciBhbGwgcmVxdWVzdC9yZXNwb25zZS9ldmVudCBwYWNrZXRzIHRoYXQg dXNlIGNvb2tpZXM6Cj4+ICsgKiAgIGRidWZfY29va2llIC0gdWludDY0X3QsIHVuaXF1ZSB0byBn dWVzdCBkb21haW4gdmFsdWUgdXNlZCBieSB0aGUgYmFja2VuZAo+PiArICogICAgIHRvIG1hcCBy ZW1vdGUgZGlzcGxheSBidWZmZXIgdG8gaXRzIGxvY2FsIG9uZQo+PiArICogICBmYl9jb29raWUg LSB1aW50NjRfdCwgdW5pcXVlIHRvIGd1ZXN0IGRvbWFpbiB2YWx1ZSB1c2VkIGJ5IHRoZSBiYWNr ZW5kCj4+ICsgKiAgICAgdG8gbWFwIHJlbW90ZSBmcmFtZWJ1ZmZlciB0byBpdHMgbG9jYWwgb25l Cj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlcXVlc3Rz IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIEFsbCByZXF1 ZXN0cy9yZXNwb25zZXMsIHdoaWNoIGFyZSBub3QgY29ubmVjdG9yIHNwZWNpZmljLCBtdXN0IGJl IHNlbnQgb3Zlcgo+PiArICogY29udHJvbCByaW5nIG9mIHRoZSBjb25uZWN0b3Igd2l0aCBpbmRl eCAwLgo+IHMvd2l0aCBpbmRleCAwL3doaWNoIGhhcyB0aGUgaW5kZXggdmFsdWUgb2YgMC8gPwo+ Cj4gW2FuZCBmb3IgdGhlIGZvdXIgb3RoZXIgcGxhY2VzXS4gVGhlICd3aXRoIGluZGV4IDAnIGdv dCBtZSB0aGlua2luZyB0aGF0IHRoZQo+IHN0cnVjdHVyZSBoYXMgdG8gaGF2ZSBzb21lIGluZGV4 IDAuIEJ1dCB5b3UgbWVhbiB0aGF0IGl0IHNob3VsZCBnbyBvdmVyOgo+Cj4gL2xvY2FsL2RvbWFp bi88ZG9tLWlkPi9kZXZpY2UvdmRpc3BsLzxkZXYtaWQ+LzAvcmVxLXJpbmctcmVmCj4KPiBQZXJo YXBzIGluY2x1ZGUgdGhhdD8gTGlrZToKPgo+ICIKPiBjb250cm9sIHJpbmcgb2YgdGhlIGNvbm5l Y3RvciB3aGljaCBoYXMgdGhlIGluZGV4IHZhbHVlIG9mIDA6Cj4gL2xvY2FsL2RvbWFpbi88ZG9t LWlkPi9kZXZpY2UvdmRpc3BsLzxkZXYtaWQ+LzAvcmVxLXJpbmctcmVmCj4KPiAiPwo+Cj4+ICsg Kgo+PiArICogQWxsIHJlcXVlc3QgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0 ZXRzKQo+PiArICogQWxsIHJlcXVlc3QgcGFja2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6Cj4+ICsg KiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAg ICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgIHwgICByZXNlcnZlZCAgICAg fCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqICAgaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1ZSwgZWNo b2VkIGluIHJlc3BvbnNlCj4+ICsgKiAgIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIG9wZXJhdGlvbiBj b2RlLCBYRU5ESVNQTF9PUF8/Pz8KPj4gKyAqCj4+ICsgKiBSZXF1ZXN0IGRidWYgY3JlYXRpb24g LSByZXF1ZXN0IGNyZWF0aW9uIG9mIGEgZGlzcGxheSBidWZmZXIuCj4+ICsgKiAgICAgICAgIDAg ICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAg IG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAg ICAgICAgICAgICB8X09QX0RCVUZfQ1JFQVRFIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRidWZfY29va2llIGxvdyAzMi1iaXQgICAgICAg ICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICBkYnVmX2Nvb2tpZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAg IHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicHAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMjgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3N6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDMyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNgo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJl Y3RvcnkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDAKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDQ0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIE11c3QgYmUgc2VudCBvdmVyIGNvbnRyb2wgcmluZyBv ZiB0aGUgY29ubmVjdG9yIHdpdGggaW5kZXggMC4KPj4gKyAqIEFsbCB1bnVzZWQgYml0cyBpbiBm bGFncyBmaWVsZCBtdXN0IGJlIHNldCB0byAwLgo+PiArICoKPj4gKyAqIEFuIGF0dGVtcHQgdG8g Y3JlYXRlIG11bHRpcGxlIGRpc3BsYXkgYnVmZmVycyB3aXRoIHRoZSBzYW1lIGRidWZfY29va2ll IGlzCj4+ICsgKiBhbiBlcnJvci4gZGJ1Zl9jb29raWUgY2FuIGJlIHJlLXVzZWQgYWZ0ZXIgZGVz dHJveWluZyB0aGUgY29ycmVzcG9uZGluZwo+PiArICogZGlzcGxheSBidWZmZXIuCj4+ICsgKgo+ PiArICogV2lkdGggYW5kIGhlaWdodCBvZiB0aGUgZGlzcGxheSBidWZmZXJzIGNhbiBiZSBzbWFs bGVyLCBlcXVhbCBvciBiaWdnZXIKPj4gKyAqIHRoYW4gdGhlIGNvbm5lY3RvcidzIHJlc29sdXRp b24uIERlcHRoL3BpeGVsIGZvcm1hdCBvZiB0aGUgaW5kaXZpZHVhbAo+PiArICogYnVmZmVycyBj YW4gZGlmZmVyIGFzIHdlbGwuCj4+ICsgKgo+PiArICogd2lkdGggLSB1aW50MzJfdCwgd2lkdGgg aW4gcGl4ZWxzCj4+ICsgKiBoZWlnaHQgLSB1aW50MzJfdCwgaGVpZ2h0IGluIHBpeGVscwo+PiAr ICogYnBwIC0gdWludDMyX3QsIGJpdHMgcGVyIHBpeGVsCj4+ICsgKiBidWZmZXJfc3ogLSB1aW50 MzJfdCwgYnVmZmVyIHNpemUgdG8gYmUgYWxsb2NhdGVkLCBvY3RldHMKPj4gKyAqIGZsYWdzIC0g dWludDMyX3QsIGZsYWdzIG9mIHRoZSBvcGVyYXRpb24KPj4gKyAqICAgbyBYRU5ESVNQTF9EQlVG X0ZMR19SRVFfQUxMT0MgLSBpZiBzZXQsIHRoZW4gYmFja2VuZCBpcyByZXF1ZXN0ZWQKPj4gKyAq ICAgICB0byBhbGxvY2F0ZSB0aGUgYnVmZmVyIHdpdGggdGhlIHBhcmFtZXRlcnMgcHJvdmlkZWQg aW4gdGhpcyByZXF1ZXN0Lgo+PiArICogICAgIFBhZ2UgZGlyZWN0b3J5IGlzIGhhbmRsZWQgYXMg Zm9sbG93czoKPj4gKyAqICAgICAgIEZyb250ZW5kIG9uIHJlcXVlc3Q6Cj4+ICsgKiAgICAgICAg IG8gYWxsb2NhdGVzIHBhZ2VzIGZvciB0aGUgZGlyZWN0b3J5IChncmVmX2RpcmVjdG9yeSwKPj4g KyAqICAgICAgICAgICBncmVmX2Rpcl9uZXh0X3BhZ2UocykKPj4gKyAqICAgICAgICAgbyBncmFu dHMgcGVybWlzc2lvbnMgZm9yIHRoZSBwYWdlcyBvZiB0aGUgZGlyZWN0b3J5Cj4gLi4gdG8gdGhl IGJhY2tlbmQuCj4+ICsgKiAgICAgICAgIG8gc2V0cyBncmVmX2Rpcl9uZXh0X3BhZ2UgZmllbGRz Cj4+ICsgKiAgICAgICBCYWNrZW5kIG9uIHJlc3BvbnNlOgo+PiArICogICAgICAgICBvIGdyYW50 cyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBhZ2VzIG9mIHRoZSBidWZmZXIgYWxsb2NhdGVkCj4gLi4g dG8gdGhlIGZyb250ZW5kCj4+ICsgKiAgICAgICAgIG8gZmlsbHMgaW4gcGFnZSBkaXJlY3Rvcnkg d2l0aCBncmFudCByZWZlcmVuY2VzCj4+ICsgKiAgICAgICAgICAgKGdyZWZbXSBpbiBzdHJ1Y3Qg eGVuZGlzcGxfcGFnZV9kaXJlY3RvcnlncmVmKQo+IHMvZGlyZWN0b3J5Z3JlZi94ZW5kaXNwbF9w YWdlX2RpcmVjdG9yeQo+Cj4+ICsgKiBncmVmX2RpcmVjdG9yeSAtIGdyYW50X3JlZl90LCBhIHJl ZmVyZW5jZSB0byB0aGUgZmlyc3Qgc2hhcmVkIHBhZ2UKPj4gKyAqICAgZGVzY3JpYmluZyBzaGFy ZWQgYnVmZmVyIHJlZmVyZW5jZXMuIEF0IGxlYXN0IG9uZSBwYWdlIGV4aXN0cy4gSWYgc2hhcmVk Cj4+ICsgKiAgIGJ1ZmZlciBzaXplIChidWZmZXJfc3opIGV4Y2VlZHMgd2hhdCBjYW4gYmUgYWRk cmVzc2VkIGJ5IHRoaXMgc2luZ2xlIHBhZ2UsCj4+ICsgKiAgIHRoZW4gcmVmZXJlbmNlIHRvIHRo ZSBuZXh0IHBhZ2UgbXVzdCBiZSBzdXBwbGllZCAoc2VlIGdyZWZfZGlyX25leHRfcGFnZQo+PiAr ICogICBiZWxvdykKPj4gKyAqLwo+PiArCj4gLi4gc25pcC4uCj4+ICsgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sgdG8gZnJvbnQgZXZlbnRz IGRlbGl2ZXJ5Cj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiBJbiBvcmRlciB0byBk ZWxpdmVyIGFzeW5jaHJvbm91cyBldmVudHMgZnJvbSBiYWNrIHRvIGZyb250IGEgc2hhcmVkIHBh Z2UgaXMKPj4gKyAqIGFsbG9jYXRlZCBieSBmcm9udCBhbmQgaXRzIGdyYW50ZWQgcmVmZXJlbmNl IHByb3BhZ2F0ZWQgdG8gYmFjayB2aWEKPj4gKyAqIFhlblN0b3JlIGVudHJpZXMgKGV2ZW50LVhY WCkuCj4KPiBzL2V2ZW50LVhYWFgvLi4gdGhlIHJpZ2h0IG5hbWU/Lwo+Cj4+ICsgKiBUaGlzIHBh Z2UgaGFzIGEgY29tbW9uIGhlYWRlciB1c2VkIGJ5IGJvdGggZnJvbnQgYW5kIGJhY2sgdG8gc3lu Y2hyb25pemUKPj4gKyAqIGFjY2VzcyBhbmQgY29udHJvbCBldmVudCdzIHJpbmcgYnVmZmVyLCB3 aGlsZSBiYWNrIGJlaW5nIGEgcHJvZHVjZXIgb2YgdGhlCj4+ICsgKiBldmVudHMgYW5kIGZyb250 IGJlaW5nIGEgY29uc3VtZXIuIFRoZSByZXN0IG9mIHRoZSBwYWdlIGFmdGVyIHRoZSBoZWFkZXIK Pj4gKyAqIGlzIHVzZWQgZm9yIGV2ZW50IHBhY2tldHMuCj4+ICsgKgo+PiArICogVXBvbiByZWNl cHRpb24gb2YgYW4gZXZlbnQocykgZnJvbnQgbWF5IGNvbmZpcm0gaXRzIHJlY2VwdGlvbgo+PiAr ICogZm9yIGVpdGhlciBlYWNoIGV2ZW50LCBncm91cCBvZiBldmVudHMgb3Igbm9uZS4KPj4gKyAq Lwo+PiArCj4+ICtzdHJ1Y3QgeGVuZGlzcGxfZXZlbnRfcGFnZSB7Cj4+ICsgICAgdWludDMyX3Qg aW5fY29uczsKPj4gKyAgICB1aW50MzJfdCBpbl9wcm9kOwo+PiArICAgIHVpbnQ4X3QgcmVzZXJ2 ZWRbNTZdOwo+PiArfTsKPj4gKwo+PiArI2RlZmluZSBYRU5ESVNQTF9FVkVOVF9QQUdFX1NJWkUg NDA5Ngo+PiArI2RlZmluZSBYRU5ESVNQTF9JTl9SSU5HX09GRlMgKHNpemVvZihzdHJ1Y3QgeGVu ZGlzcGxfZXZlbnRfcGFnZSkpCj4+ICsjZGVmaW5lIFhFTkRJU1BMX0lOX1JJTkdfU0laRSAoWEVO RElTUExfRVZFTlRfUEFHRV9TSVpFIC0gWEVORElTUExfSU5fUklOR19PRkZTKQo+PiArI2RlZmlu ZSBYRU5ESVNQTF9JTl9SSU5HX0xFTiAoWEVORElTUExfSU5fUklOR19TSVpFIC8gc2l6ZW9mKHN0 cnVjdCB4ZW5kaXNwbF9ldnQpKQo+PiArI2RlZmluZSBYRU5ESVNQTF9JTl9SSU5HKHBhZ2UpIFwK Pj4gKwkoKHN0cnVjdCB4ZW5kaXNwbF9ldnQgKikoKGNoYXIgKikocGFnZSkgKyBYRU5ESVNQTF9J Tl9SSU5HX09GRlMpKQo+PiArI2RlZmluZSBYRU5ESVNQTF9JTl9SSU5HX1JFRihwYWdlLCBpZHgp IFwKPj4gKwkoWEVORElTUExfSU5fUklORygocGFnZSkpWyhpZHgpICUgWEVORElTUExfSU5fUklO R19MRU5dKQo+PiArCj4+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX0lPX0RJU1BMSUZfSF9fICov Cj4+ICsKPj4gKy8qCj4+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4+ICsgKiBtb2RlOiBDCj4+ICsg KiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+PiArICogdGFi LXdpZHRoOiA0Cj4+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPj4gKyAqIEVuZDoKPj4gKyAq Lwo+PiAtLSAKPj4gMi43LjQKPj4KVGhhbmsgeW91LApPbGVrc2FuZHIKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=