From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from 11.mo4.mail-out.ovh.net (11.mo4.mail-out.ovh.net [46.105.34.195]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4215A6E5CE for ; Fri, 5 Apr 2019 02:27:26 +0000 (UTC) Received: from player731.ha.ovh.net (unknown [10.109.160.54]) by mo4.mail-out.ovh.net (Postfix) with ESMTP id 76C351DF53F for ; Fri, 5 Apr 2019 03:07:50 +0200 (CEST) From: Andi Shyti Date: Fri, 5 Apr 2019 04:07:30 +0300 Message-Id: <20190405010737.19111-1-andi@etezian.org> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v17 0/7] new engine discovery interface List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: IGT dev Cc: Andi Shyti List-ID: RnJvbTogQW5kaSBTaHl0aSA8YW5kaS5zaHl0aUBpbnRlbC5jb20+CgpIaSwKCkluIHRoaXMgcGF0 Y2hzZXQgSSBwcm9wb3NlIGFuIGFsdGVybmF0aXZlIHdheSBvZiBlbmdpbmUgZGlzY292ZXJ5CnRo YW5rcyB0byB0aGUgbmV3IGludGVyZmFjZXMgZGV2ZWxvcGVkIGJ5IFR2cnRrbyBhbmQgQ2hyaXNb NF0uCgpUaGUgY2hhbmdlcyB0byBwZXJmX3BtdSBhcmUgYSBwcm9wb3NhbCwgbW9zdCBwcm9iYWJs eSB0aGV5IGRvbid0CndvcmsgKGl0J3MgYW55d2F5IGFuIFJGQykgYmVjYXVzZSB0aGUgZGVwZW5k ZW5jeSB0byBsZWdhY3kgY29kZQppcyBzdGlsbCB0b28gc3Ryb25nLgoKVGhhbmtzIFR2cnRrbywg Q2hyaXMsIEFudG9uaW8gYW5kIFBldHJpIGZvciB5b3VyIGNvbW1lbnRzIGluIHRoZQpwcmV2aW91 cyBSRkNzLgoKQW5kaQoKdjE2IC0tPiB2MTcKPT09PT09PT09PT0KYW1vbmdzdCBtYW55IGxpdHRs ZSB0aGluZ3MsIHRocmVlIG1haW4gY2hhbmdlczoKIC0gaW1wcm92ZWQgcGVyZl9wbXUgYWRhcHRh dGlvbiB0byBnZW1fZW5naW5lX3RvcG9sb2d5CiAtIHJlbW92ZWQgdGhlIGV4ZWMtY3R4IHRlc3Qs IHBlcmZfcG11IHdpbGwgYmUgdGhlIGZsYWcgdGVzdAogLSB3aGVuIGNyZWF0aW5nIHRoZSBlbmdp bmUgbGlzdCwgbm93IHRoZQogICBmb3JfZWFjaF9lbmdpbmVfcGh5c2ljYWwgY2FuIGJlIGV4ZWN1 dGVkIHNhZmVseSBkdXJpbmcgc3VidGVzdAogICBsaXN0aW5nCgp2MTUgLS0+IHYxNgo9PT09PT09 PT09PQogLSBmZXcgY2hhbmdlcyB0byB0aGUgZ2VtX2VuZ2luZV90b3BvbG9neSBzdHVmZgogLSBh ZGRlZCB1bmUgbW9yZSBkdW1teSB0ZXN0IHdoaWNoIGxvb3BzIHRocm91Z2ggdGhlIHBoeXNpY2Fs CiAgIGVuZ2luZXMsIGFzIHdlbGwuCiAtIGNoYW5nZXMgdG8gdGVzdC9wZXJmX3BtdSByZXF1aXJl ZCBzb21lIG1vcmUgY2hhbmdlcyB0aGFuCiAgIGV4cGVjdGVkICh0aGUgMyBsYXN0IHBhdGNoZXMp Cgp2MTQgLS0+IHYxNQo9PT09PT09PT09PQpQQVRDSCB2MTQ6IFsxNl0KCiAtIHZpcnR1YWwgZW5n aW5lcyB3aWxsIGJlIGNhbGxlZCAidmlydHVhbCIgbGlrZSB1bnJlY29nbmlzZWQKICAgZW5naW5l cyB3aWxsIGJlIGNhbGxlZCAidW5rbm93biIKCiAtIHJlbmFtZWQgdGhlIGZvcl9lYWNoIGxvb3Bz IHRvIG1vcmUgbWVhbmluZ2Z1bCBuYW1lcwogICAoX19mb3JfZWFjaF9zdGF0aWNfZW5naW5lIGFu ZCBmb3JfZWFjaF9jb250ZXh0X2VuZ2luZSkgYW5kCiAgIG1vdmVkIGludG8gZ2VtX2VuZ2luZV90 b3BvbG9neS5oCgogLSBtaW5vciBjaGFuZ2VzIGFib3V0IGRhdGEgdHlwZXMuCgp2MTMgLS0+IHYx NAo9PT09PT09PT09PQpQQVRDSCB2MTM6IFsxNV0KbWlub3IgY2hhbmdlcyB0aGlzIHRpbWU6CiAt IHNxdWFzaGVkIHBhdGNoIDIgYW5kIDMgKGZyb20gdjEzKSB3aXRoIGEgbGl0dGxlIHJlbmFtZSBh bmQKICAgYWRkZWQgQ2hyaXMgci1iCgogLSBmaXhlZCBzb21lIGluZGV4IGlzc3VlcyBhbmQgc3Ry aW5nIGFzc2lnbmVtZW50IGxlYWtzCgogLSBzcXVhc2hlZCBwYXRjaGVzIDUsIDYsIDcgYW5kIDgg ZnJvbSB2MTMKCnYxMiAtLT4gdjEzCj09PT09PT09PT09ClBBVENIIHYxMjogWzE0XQpUaGlzIHBh dGNoIGlzIGFsc28gdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgb3RoZXIgdGhhbgpz b21lIHJlb3JnYW5pemF0aW9uIG9mIHRoZSBjb2RlIHRoZXNlIGFyZSB0aGUgbWFpbiBjaGFuZ2Vz OgoKIC0gdGhlIHByZXZpb3VzIHZlcnNpb24gbGFja2VkIHRoZSBjYXNlIHdoZW4gdGhlIGNvbnRl eHQgaGFkIGl0cwogICBlbmdpbmVzIG1hcHBlZC4gY2hlY2tzIGluIHRoZSBmb2xsb3dpbmcgb3Jk ZXIKCiBpZiB0aGUgZHJpdmVyIGRvZXNuJ3QgaGF2ZSB0aGUgbmV3IEFQSQogIC0+IGdldCB0aGUg ZW5naW5lcyBmcm9tIHRoZSBzdGF0aWMgbGlzdAogaWYgdGhlIGRyaXZlciBoYXMgdGhlIEFQSSBi dXQgdGhlIGNvbnRleHQgaGFzIG5vdGhpbmcgbWFwcGVkCiAgLT4gZ2V0IHRoZSBlbmdpbmVzIGZy b20gInF1ZXJ5IiBhbmQgbWFwIHRoZW0KIGlmIHRoZSBkcml2ZXIgaGFzIHRoZSBBUEkgYW5kIHRo ZSBjb250ZXh0IGhhcyBlbmdpbmVzIG1hcHBlZAogIC0+IGdldCB0aGUgZW5naW5lcyBmcm9tIHRo ZSBjb250ZXh0CgogLSB0aGUgaGVscGVyIGZ1bmN0aW9ucyBoYXZlIGJlZW4gcmVtb3ZlZCBhcyB0 aGV5IHdlcmUgb2Ygbm8gdXNlLgoKdjExIC0tPiB2MTIKPT09PT09PT09PT0KUEFUQ0ggdjExOiBb MTNdClRoaXMgMTJ0aCB2ZXJzaW9uIHN0YXJ0cyBmcm9tIGEgY29tcGxldGVseSBkaWZmZXJlbnQg dGhvdWdodC4KSGVyZSdzIHRoZSBtYWluIGRpZmZlcmVuY2VzOgoKIC0gVGhlIGxpc3Qgb2YgZW5n aW5lcyBpcyBwcm92aWRlZCBpbiBhbiBlbmdpbmVfZGF0YSBzdHJ1Y3R1cmUKICAgd2hpY2ggY29u dGFpbnMgYW4gaW5kZXggKHVzZWZ1bCBmb3IgbG9vcGluZyB0aHJvdWdoIGFuZCBmb3IKICAgZW5n aW5lL2NvbnRleHQgaW5kZXggbWFwcGluZykgaW5zdGVhZCBvZiBhbiBhcnJheSBvZiBlbmdpbmVz LgoKIC0gVGhlIGxpc3Qgb2YgZW5naW5lcyBpcyBnZW5lcmF0ZWQgZXZlcnkgdGltZSB0aGUgaW5p dCBmdW5jdGlvbgogICBpcyBjYWxsZWQgYW5kIG5vdGhpbmcgaXMgYWxsb2NhdGVkIGluIGhlYXAg bWVtb3J5LgoKIC0gVGhlIGlvY3RsIGNoZWNrIGlzIGRvbmUgYWxyZWFkeSBkdXJpbmcgdGhlIGlu aXRpYWxpemF0aW9uIHBhcnQKICAgYW5kIGlmIHRoZSBuZXcgaW9jdGxzIGFyZSBub3QgaW1wbGVt ZW50ZWQsIHRoZW4gdGhlIGluaXQKICAgZnVuY3Rpb24gc3RpbGwgc3RvcmVzIG9ubHkgdGhvc2Ug cHJlc2VudCBpbiB0aGUgR1BVLgoKIC0gVGhlIGZvcl9lYWNoIGxvb3AgaXMgaW1wbGVtZW50ZWQg YnkgcmUtdXNpbmcgdGhlIHByZXZpb3VzCiAgICdmb3JfZWFjaF9lbmdpbmVfY2xhc3NfaW5zdGFu Y2UoKScgaW1wbGVtZW50ZWQgYnkgVHZydGtvLgoKIC0gVGhlIGdlbV90b3BvbG9neSBsaWJyYXJ5 IG9mZmVycyBmZXcgaGVscGVyIGZ1bmN0aW9ucyBmb3IKICAgY2hlY2tpbmcgdGhlIGVuZ2luZSBw cmVzZW5jZSwgY2hlY2tpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mCiAgIHRoZSBpb2N0bHMgYW5k IGV4ZWN1dGluZyB0aGUgYnVmZmVyLCBpbiBvcmRlciB0byBiZSBjb21wbGV0ZWx5CiAgIHVuYXdh cmUgb2YgdGhlIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4KClRoYW5rcyBUdnJ0a28gZm9yIGFsbCB5 b3VyIGlucHV0cy4KCnYxMCAtLT4gdjExCj09PT09PT09PT09ClJGQyB2MTA6IFsxMl0KZmV3IGNv c21ldGljIGNoYW5nZXMgaW4gdjExIGFuZCBtaW5vciBhcmNoaXRlY3R1cmFsIGRldGFpbHMuClRo YW5rcyBUdnJ0a28uCgotIHRoZSAncXVlcnlfZW5naW5lcygpJyBmdW5jdGlvbnMgYXJlIHN0YXRp YyBhcyBubyBvbmUgaXMgdXNpbmcKICB0aGVtIHlldC4KCi0gcmVtb3ZlZCB0aGUgJ2dlbV9oYXNf ZW5naW5lX3RvcG9sb2d5KCknIGZ1bmN0aW9uIGJlY2F1c2UgaXQncwogIHZlcnkgbGl0dGxlIHVz ZWQsICdnZXRfYWN0aXZlX2VuZ2luZXMoKScgY2FuIGJlIHVzZWQgaW5zdGVhZC4KCi0gYSBtaW5v ciByaW5nIC0+IGVuZ2luZSByZW5hbWluZyBjb21pbmcgZnJvbSBDaHJpcy4gCgp2OSAtLT4gdjEw Cj09PT09PT09PT0KUkZDIHY5OiBbMTFdCmFsc28gdGhpcyB0aW1lIHF1aXRlIG1hbnkgY2hhbmdl cywgdGhhbmtzIENocmlzIGZvciB0aGUgcmV2aWV3cywKaGVyZSB0aGUgbW9zdCByZWxldmFudCBv ZiB0aGVtLgoKLSBnZW1fcXVlcnkuW2NoXSBoYXZlIGJlZW4gcmVuYW1lZCB0byBnZW1fZW5naW5l X3RvcG9sb2d5LltjaF0KICBhbmQgYWxsIHRoZSBmdW5jdGlvbnMgZW5kZWQgdXAgdGhlcmUgYXMg dGhleSBhcmUgcmVmZXJyaW5nIHRvCiAgdGhlIHRvcG9sb2d5IG9mIHRoZSBlbmdpbmVzLgoKLSB0 aGUgZnVuY3Rpb25zICdnZXRfYWN0aXZlX2VuZ2luZXMoKScsCiAgJ2dlbV9zZXRfY29udGV4dF9n ZXRfZW5naW5lcygpJyBhbmQKICAnaWd0X3JlcXVpcmVfZ2VtX2VuZ2luZV9saXN0KCknIHdpbGwg YmUgdGhlIG1haW4gaW50ZXJmYWNlIHRvCiAgdGhlIGdlbV9lbmdpbmVfdG9wb2xvZ3kgbGlicmFy eSwgcmVmZXIgdG8gcGF0Y2ggMiBmb3IgZGV0YWlscy4KCi0gdGhlIGRlZmluZSAnZm9yX2VhY2hf ZW5naW5lMigpJyBkb2Vzbid0IGV4cG9zZSBhbnltb3JlIHRoZQogIGl0ZXJhdG9yLgoKLSAnZ2Vt X2NvbnRleHRfaGFzX2VuZ2luZSgpJyBoYXMgYmVlbiBtb3ZlZCBmcm9tIGlvY3RsX3dyYXBwZXJz LmMKICB0byBnZW1fY29udGV4dC5jLgoKLSB0aGUgZ2VtX2V4ZWNfYmFzaWMgZXhlYy1jdHggc3Vi dGVzdCBkb2VzIG5vdCBhYm9ydCBpZiB0aGUgbmV3CiAgZ2V0cGFyYW0vc2V0cGFyYW0gYW5kIHF1 ZXJ5IGFwaXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBhcyBpdCBjYW4KICB3b3JrIHdpdGggYm90aCAo YXMgaXQgd2FzIGRvbmUgYXQgdGhlIGJlZ2lubmluZykuCgp2OCAtLT4gdjkKPT09PT09PT09ClJG QyB2ODogWzEwXQpxdWl0ZSBtYW55IGNoYW5nZXMsIHBsZWFzZSByZWZlciB0byB0aGUgcmV2aWV3 IGluIFsxMF0uIFRoYW5rcwpDaHJpcyBmb3IgdGhlIHJldmlldy4gVGhlc2UgYXJlIHRoZSBtb3N0 IHJlbGV2YW50OgoKLSBhbGwgdGhlIGFsbG9jYXRpb24gaW4gZ2VtX3F1ZXJ5IGhhdmUgYmVlbiBt YWRlIGluIHN0YWNrLCBub3QKICBhbnltb3JlIGFsbG9jYXRlZCBkeW5hbWljYWxseS4KCi0gcmVt b3ZlZCBnZXQvc2V0X2NvbnRleHQgYXMgaXQgd2FzIGFscmVhZHkgaW1wbGVtZW50ZWQgYW5kIEkK ICBkaWRuJ3Qga25vdy4KCi0gcmVuYW1lZCBzb21lIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIHRv IGhvcGVmdWxseSBtb3JlCiAgbWVhbmluZ2Z1bCBuYW1lcy4KClY3IC0tPiB2OAo9PT09PT09PT0K UkZDIHY3OiBbOV0KCi0gYWxsIGZ1bmN0aW9ucyBoYXZlIGJlZW4gbW92ZWQgZnJvbSBsaWIvaWd0 X2d0LntjLGh9IGFuZAogIGxpYi9pb2N0bF93cmFwcGVycy57YyxofSB0byBsaWIvaTkxNi9nZW1f cXVlcnkue2MsaH0uICh0aGFua3MKICBDaHJpcykKCi0gJ2Zvcl9lYWNoX2VuZ2luZV9jdHgnIGhh cyBiZWVuIHJlbmFtZWQgdG8gJ2Zvcl9lYWNoX2VuZ2luZTInIHRvCiAgYmUgY29uc2lzdGVudCB3 aXRoIHRoZSAnMicgdGhhdCBpbmRpY2F0ZXMgdGhlIG5ldyAnc3RydWN0CiAgaW50ZWxfZXhlY3V0 aW9uX2VuZ2luZTInIGRhdGEgc3RydWN0dXJlLgoKVjYgLS0+IFY3Cj09PT09PT09PQpSRkMgdjY6 IFs4XQoKLSBhIG5ldyBwYXRjaCBoYXMgYmVlbiBhZGRlZCAocGF0Y2ggMykgd2hpY2ggYWRkcyBh IG5ldwogIHJlcXVpcmVtZW50IGNoZWNrIHRocm91Z2ggdGhlIGlndF9yZXF1aXJlX2dlbV9lbmdp bmVfbGlzdCgpCiAgZnVuY3Rpb24uICh0aGFua3MgQ2hyaXMpIFRoaXMgZnVuY3Rpb24gd2lsbCBp bml0aWFsaXplIHRoZQogIGVuZ2luZSBsaXN0IGluc3RlYWQgb2YgdGhlIGluc3RlYWQgb2YgaWd0 X3JlcXVpcmVfZ2VtKCkgYXMgaXQKICB3YXMgaW4gdjYKCi0gYWxsIHRoZSBpb2N0bHMgaGF2ZSBi ZWVuIHdyYXBwZWQgKHRoYW5rcyBDaHJpcyBhbmQgQW50b25pbykgYW5kCiAgbmV3IGxpYnJhcnkg ZnVuY3Rpb25zIGhhdmUgYmVlbiBhZGRlZCBhbmQgYXNzZXJ0IHRoZSBpb2N0bHMKCi0gZ2VtX2lu aXRfZW5naW5lX2xpc3QoKSBmdW5jdGlvbiByZXR1cm5zIHRoZSBlcnJubyBmcm9tIHRoZQogIEdF VFBBUkFNIGlvY3RsIGluIG9yZGVyIHRvIGJlIHVzZWQgYXMgYSByZXF1aXJlbWVudC4gKHRoYW5r cwogIENocmlzKQoKLSBmaXhlZCBmZXcgcmVxdWlyZXMvYXNzZXJ0cwoKLSBUaGUgZW5naW5lIGxp c3QgImludGVsX2FjdGl2ZV9lbmdpbmVzMiIgaXMgYWxsb2NhdGVkIG9mIHRoZQogIG51bWJlciBv ZiBlbmdpbmVzIGluc3RlYWQgb2YgYSBwb2xpdGljYWwgNjQgKHRoYW5rcyBBbnRvbmlvKS4KCi0g c29tZSBwYXJhbWV0ZXIgcmVuYW1pbmcgaW4gZ2VtX2hhc19yaW5nX2J5X2lkeCgpLiAodGhhbmtz CiAgQ2hyaXMpLgoKLSB0aGUgb3JpZ2luYWwgImludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMiIgaGFz IG5vdCBiZWVuIHJlbmFtZWQsCiAgYmVjYXVzZSBpdCBpcyB1c2VkIHRvIGNyZWF0ZSBzdWJ0ZXN0 cyBiZWZvcmUgZXZlbiBleGVjdXRpbmcgYW55CiAgdGVzdC9pb2N0bC4gQnkgcmVuYW1pbmcgaXQs IHNvbWUgc3VidGVzdCBnZW5lcmF0aW9ucyBmYWlsZWQuCiAgKHRoYW5rcyBQZXRyaSkKClY1IC0t PiBWNgo9PT09PT09PT0KUkZDIHY1OiBbN10KLSBDaHJpcyBpbXBsZW1lbnRlZCB0aGUgZ2V0cGFy YW0gaW9jdGwgd2hpY2ggYWxsb3dzIHRvIHRoZSB0ZXN0CiAgdG8gZmlndXJlIG90dSB3aGV0aGVy IHRoZSBuZXcgaW50ZXJmYWNlIGhhcyBiZWVuIGltcGxlbWVudGVkLgogIFRoaXMgd2F5IHRoZSBm b3JfZWFjaF9lbmdpbmVfY3R4KCkgaXMgYWJsZSB0byB3b3JrIHdpdGggbmV3IGFuZAogIG9sZCBr ZXJuZWwgdWFwaSAodGhhbmtzIENocmlzKQoKVjQgLS0+IFY1Cj09PT09PT09PQpSRkMgdjQ6IFs2 XQoKLSB0aGUgZW5naW5lIGxpc3QgaXMgbm93IGJ1aWx0IGluICdpZ3RfcmVxdWlyZV9nZW0oKScg aW5zdGVhZCBvZgogICdfX29wZW5fZHJpdmVyKCknIHNvIHRoYXQgd2Uga2VlcCB0aGlzIGRpc2Nv dmVyeSBtZXRob2QKICBzcGVjaWZpYyB0byB0aGUgaTkxNSBkcml2ZXIgKHRoYW5rcyBDaHJpcyku CgotIEFsbCB0aGUgcXVlcnkvc2V0cGFyYW0gc3RydWN0dXJlcyBkeW5hbWljIGFsbG9jYXRpb24g YmFzZWQgb24KICB0aGUgbnVtYmVyIG9mIGVuZ2luZXMsIG5vdyBhcmUgcG9saXRpY2FsbHkgYWxs b2NhdGVkIDY0IHRpbWVzLAogIHRvIGF2b2lkIGV4dHJhIGlvY3RsIGNhbGxzIHRoYXQgcmV0cmll dmUgdGhlIGVuZ2luZSBudW1iZXIKICAodGhhbmtzIENocmlzKQoKLSB1c2UgaWd0X2lvY3RsIGlu c3RlYWQgb2YgaW9jdGwgKHRoYW5rcyBDaHJpcykKCi0gYWxsb2NhdGUgaW50ZWxfZXhlY3V0aW9u X2VuZ2luZXMyIGR5bmFtaWNhbGx5IGluc3RlYWQgb2YKICBzdGF0aWNhbGx5ICh0aGFua3MgVHZy dGtvKQoKLSBzaW1wbGlmeSB0aGUgdGVzdCBpbiAnZ2VtX2V4ZWNfYmFzaWMoKScgc28gdGhhdCBz aW1wbHkgY2hlY2tzCiAgdGhlIHByZXNlbmNlIG9mIHRoZSBlbmdpbmUgaW5zdGVhZCBvZiBleGVj dXRpbmcgYSBidWZmZXIKICAodGhhbmsgQ2hyaXMpCgotIGEgbmV3IHBhdGNoIGhhcyBiZWVuIGFk ZGVkIChwYXRjaCAzKSB0aGF0IGV4dGVuZHMgdGhlCiAgJ2dlbV9oYXNfcmluZygpJyBib29sZWFu IGZ1bmN0aW9uLiBUaGUgbmV3IHZlcnNpb24gc2V0cyB0aGUKICBpbmRleCBhcyBpdCdzIG1hcHBl ZCBpbiB0aGUga2VybmVsLlRoZSBwcmV2aW91cyBmdW5jdGlvbiBpcyBub3cKICBhIHdyYXBwZXIg dG8gdGhlIG5ldyBmdW5jdGlvbi4KClYzIC0tPiBWNAo9PT09PT09PT0KUEFUQ0ggdjM6IFszXQoK LSByZS1hcmNoaXRlY3R1cmVkIHRoZSBkaXNjb3ZlcnkgbWVjaGFuaXNtIGJhc2VkIG9uIFR2cnRr bydzCiAgc3VnZXN0aW9uIGFuZCByZXZpZXdzLi4gSW4gdGhpcyB2ZXJzaW9uIHRoZSBkaXNjb3Zl cnkgaXMgZG9uZQogIGR1cmluZyB0aGUgZGV2aWNlIG9wZW5pbmcgYW5kIHN0b3JlZCBpbiBhIE5V TEwgdGVybWluYXRlZAogIGFycmF5LCB3aGljaCByZXBsYWNlcyB0aGUgZXhpc3RpbmcgaW50ZWxf ZXhlY3V0aW9uX2VuZ2luZXMyCiAgdGhhdCBpcyBtYWlubHkgdXNlZCBhcyBhIHJlZmVyZW5jZS4K ClYyIC0tPiBWMwo9PT09PT09PT0KUkZDIHYyOiBbMl0KCi0gcmVtb3ZlZCBhIHN0YW5kYWxvbmUg Z2VtX3F1ZXJ5X2VuZ2luZXNfZGVtbyB0ZXN0IGFuZCBhZGRlZCB0aGUKICBleGVjLWN0eCBzdWJ0 ZXN0IGluc2lkZSBnZW1fZXhlY19iYXNpYyAodGhhbmtzIFR2cnRrbykuCgotIGZpeGVkIG1vc3Qg b2YgVHZydGtvJ3MgY29tbWVudHMgaW4gWzVdLCB3aGljaCBjb25zaXN0IGluCiAgcHV0dGluZyB0 aGUgbWFsbG9jcyBpZ3RfYXNzZXJ0IGFuZCBpY3RscyBpbiBpZ3RfcmVxdWlyZSBhbmQgZmV3CiAg cmVmYWN0b3JpbmcgKHRoYW5rcyBUdnJ0a28pLgoKVjEgLS0+IFYyCj09PT09PT09PQpSRkMgdjE6 IFsxXQoKLSBhZGRlZCBhIGRlbW8gdGVzdCB0aGF0IHNpbXBseSBxdWVyaWVzIHRoZSBkcml2ZXIg YWJvdXQgdGhlCiAgZW5naW5lcyBhbmQgZXhlY3V0ZXMgYSBidWZmZXIgKHRoYW5rcyBUdnJ0a28p CgotIHJlZmFjdG9yZWQgdGhlIGZvcl9lYWNoX2VuZ2luZV9jdHgoKSBtYWNybyBzbyB0aGF0IHdo YXQgaW4gdGhlCiAgcHJldmlvdXMgdmVyc2lvbiB3YXMgZG9uZSBieSB0aGUgImJpbmQiIGZ1bmN0 aW9uLCBub3cgaXQncyBkb25lCiAgaW4gdGhlIGZpcnN0IGl0ZXJhdGlvbi4gKFRoYW5rcyBDcmhp cykKCi0gcmVtb3ZlZCB0aGUgImdlbV9oYXNfcmluZ19jdHgoKSIgYmVjYXVzZSBpdCB3YXMgb3V0 IG9mIHRoZQogIHNjb3BlLgoKLSByZW5hbWUgZnVuY3Rpb25zIHRvIG1vcmUgbWVhbmluZ2Z1bCBu YW1lcwoKWzFdIFJGQyB2MTogaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv aWd0LWRldi8yMDE4LU5vdmVtYmVyLzAwNzAyNS5odG1sClsyXSBSRkMgdjI6IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAxOC1Ob3ZlbWJlci8wMDcwNzku aHRtbApbM10gUEFUQ0ggdjM6IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVz L2lndC1kZXYvMjAxOC1Ob3ZlbWJlci8wMDcxNDguaHRtbApbNF0gaHR0cHM6Ly9jZ2l0LmZyZWVk ZXNrdG9wLm9yZy9+dHVyc3VsaW4vZHJtLWludGVsL2xvZy8/aD1tZWRpYQpbNV0gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE4LU5vdmVtYmVyLzAwNzEw MC5odG1sCls2XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2 LzIwMTktSmFudWFyeS8wMDgwMjkuaHRtbApbN10gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5LUphbnVhcnkvMDA4MTY1Lmh0bWwKWzhdIGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAxOS1GZWJydWFyeS8wMDg5 MDIuaHRtbApbOV0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRl di8yMDE5LUZlYnJ1YXJ5LzAwOTE4NS5odG1sClsxMF0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5LUZlYnJ1YXJ5LzAwOTIwNS5odG1sClsxMV0gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5LUZlYnJ1YXJ5 LzAwOTI3Ny5odG1sClsxMl0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv aWd0LWRldi8yMDE5LU1hcmNoLzAxMDE5Ny5odG1sClsxM10gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5LU1hcmNoLzAxMDQ2Ny5odG1sClsxNF0gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5LU1hcmNoLzAx MDc3Ni5odG1sClsxNV0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0 LWRldi8yMDE5LU1hcmNoLzAxMDgyNy5odG1sClsxNl0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5LU1hcmNoLzAxMDkxNi5odG1sCgpBbmRpIFNoeXRp ICg3KToKICBsaWIvaWd0X2d0OiByZW1vdmUgdW5uZWNlc3NhcnkgYXJndW1lbnQKICBsaWI6IGlv Y3RsX3dyYXBwZXJzOiByZWFjaCBlbmdpbmVzIGJ5IGluZGV4IGFzIHdlbGwKICBpbmNsdWRlL2Ry bS11YXBpOiBpbXBvcnQgaTkxNV9kcm0uaCBoZWFkZXIgZmlsZQogIGxpYi9pOTE1OiBhZGQgZ2Vt X2VuZ2luZV90b3BvbG9neSBsaWJyYXJ5IGFuZCBmb3JfZWFjaCBsb29wIGRlZmluaXRpb24KICBs aWI6IGlndF9ndDogYWRkIGViIGZsYWdzIHRvIGNsYXNzIGhlbHBlcgogIGxpYjogaWd0X2d0OiBt YWtlIGdlbV9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKCkgY2hlY2sgZW5naW5lIGNsYXNzCiAgdGVz dDogcGVyZl9wbXU6IHVzZSB0aGUgZ2VtX2VuZ2luZV90b3BvbG9neSBsaWJyYXJ5CgogaW5jbHVk ZS9kcm0tdWFwaS9pOTE1X2RybS5oICAgIHwgMzYxICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLQogbGliL01ha2VmaWxlLnNvdXJjZXMgICAgICAgICAgIHwgICAyICsKIGxpYi9pOTE1 L2dlbV9jb250ZXh0LmMgICAgICAgICB8ICAyNyArKysKIGxpYi9pOTE1L2dlbV9jb250ZXh0Lmgg ICAgICAgICB8ICAgMiArCiBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMgfCAyNTYgKysr KysrKysrKysrKysrKysrKysrKysKIGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaCB8ICA2 NiArKysrKysKIGxpYi9pZ3QuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBsaWIvaWd0 X2d0LmMgICAgICAgICAgICAgICAgICAgfCAgMjcgKystCiBsaWIvaWd0X2d0LmggICAgICAgICAg ICAgICAgICAgfCAgMTIgKy0KIGxpYi9pb2N0bF93cmFwcGVycy5jICAgICAgICAgICB8ICAxOSAt LQogbGliL2lvY3RsX3dyYXBwZXJzLmggICAgICAgICAgIHwgICAzICstCiBsaWIvbWVzb24uYnVp bGQgICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMvcGVyZl9wbXUuYyAgICAgICAgICAgICAg IHwgIDUzICsrKy0tCiAxMyBmaWxlcyBjaGFuZ2VkLCA3MTQgaW5zZXJ0aW9ucygrKSwgMTE2IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xv Z3kuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAoK LS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2