From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from 10.mo178.mail-out.ovh.net (10.mo178.mail-out.ovh.net [46.105.76.150]) by gabe.freedesktop.org (Postfix) with ESMTPS id E95C789DEC for ; Tue, 16 Apr 2019 23:10:34 +0000 (UTC) Received: from player159.ha.ovh.net (unknown [10.109.146.53]) by mo178.mail-out.ovh.net (Postfix) with ESMTP id C752C5BEFE for ; Wed, 17 Apr 2019 01:10:31 +0200 (CEST) From: Andi Shyti Date: Wed, 17 Apr 2019 02:10:17 +0300 Message-Id: <20190416231023.18086-1-andi@etezian.org> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v22 0/6] 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 NF0uCgpUaGFua3MgVHZydGtvLCBDaHJpcywgQW50b25pbyBhbmQgUGV0cmkgZm9yIHlvdXIgY29t bWVudHMgaW4gdGhlCnByZXZpb3VzIFJGQ3MuCgpBbmRpCgp2MjEgLS0+IHYyMgo9PT09PT09PT09 PQogLSBqdXN0IHJlbW92ZWQgY29udGV4dCBjcmVhdGlvbiBhbmQgZGVsZXRpb24gZnJvbQogICBl bmdpbmVfdG9wb2xvZ3kgYW5kIGZpeGVkIHBlcmZfcG11IGFjY29yZGluZ2x5LgoKdjIwIC0tPiB2 MjEKPT09PT09PT09PT0KIC0gcmVtb3ZlZCBUdnJ0a28ncyBkZWJ1ZyBtZXNzYWdlcwogLSBmZXcg Zml4ZXMgZnJvbSBDaHJpcyBsYXN0IHJldmlldwoKdjE5IC0tPiB2MjAKPT09PT09PT09PT0KIC0g YWRkZWQgc29tZSBkZWJ1Z3MgZnJvbSBUdnJ0a28gdG8gZ2V0IG1vcmUgaW5mbyBhYm91dCBnZW1f d2FpdAogICBmYWlsdXJlLgogLSBmZXcgZml4ZXMgaW4gZ2VtX2VuZ2luZV90b3BvbG9neS5jIGZy b20gVHZydGtvJ3MgY29tbWVudHMsCiAgIGluY2x1ZGluZyBhIGJpZ2dlciBmaXggYWJvdXQgYW4g dW5jb250cm9sbGVkIHZhcmlhYmxlCiAgIGluY3JlbWVudCBpbiB0aGUgX25leHQgZnVuY3Rpb24K CnYxOCAtLT4gdjE5Cj09PT09PT09PT09CiAtIGludGVncmF0ZWQgVHZydGtvJ3MgZml4dXAgcGF0 Y2ggWzE3XS4gRnJvbSB0aGlzIHBhdGNoIHNvbWUKICAgY2hhbmdlcyBoYXZlIGJlZW4gbW92ZWQg dG8gZ2VtX2VuZ2luZV90b3BvbG9neSBhcyBhIG5ldyBoZWxwZXIKICAgZm9yIGdldHRpbmcgdGhl IGVuZ2luZSdzIHByb3BlcnRpZXMuCgp2MTcgLS0+IHYxOAo9PT09PT09PT09PQogLSB0aHJlZSBw YXRjaGVzIGhhdmUgYmVlbiBhcHBsaWVkICh0aGUgb25lcyB0aGF0IGFkZAogICBnZW1fY29udGV4 dF9oYXNfZW5naW5lKCkgZnVuY3Rpb24pCiAtIGZldyBjb3NtZXRpYyBmaXhlcwogLSBhbmQgc29t ZSBjaGFuZ2VzIGNvbWluZyBmcm9tIFR2cnRrbydzIHJldmlldyBvbiB2MTcKCnYxNiAtLT4gdjE3 Cj09PT09PT09PT09CmFtb25nc3QgbWFueSBsaXR0bGUgdGhpbmdzLCB0aHJlZSBtYWluIGNoYW5n ZXM6CiAtIGltcHJvdmVkIHBlcmZfcG11IGFkYXB0YXRpb24gdG8gZ2VtX2VuZ2luZV90b3BvbG9n eQogLSByZW1vdmVkIHRoZSBleGVjLWN0eCB0ZXN0LCBwZXJmX3BtdSB3aWxsIGJlIHRoZSBmbGFn IHRlc3QKIC0gd2hlbiBjcmVhdGluZyB0aGUgZW5naW5lIGxpc3QsIG5vdyB0aGUKICAgZm9yX2Vh Y2hfZW5naW5lX3BoeXNpY2FsIGNhbiBiZSBleGVjdXRlZCBzYWZlbHkgZHVyaW5nIHN1YnRlc3QK ICAgbGlzdGluZwoKdjE1IC0tPiB2MTYKPT09PT09PT09PT0KIC0gZmV3IGNoYW5nZXMgdG8gdGhl IGdlbV9lbmdpbmVfdG9wb2xvZ3kgc3R1ZmYKIC0gYWRkZWQgdW5lIG1vcmUgZHVtbXkgdGVzdCB3 aGljaCBsb29wcyB0aHJvdWdoIHRoZSBwaHlzaWNhbAogICBlbmdpbmVzLCBhcyB3ZWxsLgogLSBj aGFuZ2VzIHRvIHRlc3QvcGVyZl9wbXUgcmVxdWlyZWQgc29tZSBtb3JlIGNoYW5nZXMgdGhhbgog ICBleHBlY3RlZCAodGhlIDMgbGFzdCBwYXRjaGVzKQoKdjE0IC0tPiB2MTUKPT09PT09PT09PT0K UEFUQ0ggdjE0OiBbMTZdCgogLSB2aXJ0dWFsIGVuZ2luZXMgd2lsbCBiZSBjYWxsZWQgInZpcnR1 YWwiIGxpa2UgdW5yZWNvZ25pc2VkCiAgIGVuZ2luZXMgd2lsbCBiZSBjYWxsZWQgInVua25vd24i CgogLSByZW5hbWVkIHRoZSBmb3JfZWFjaCBsb29wcyB0byBtb3JlIG1lYW5pbmdmdWwgbmFtZXMK ICAgKF9fZm9yX2VhY2hfc3RhdGljX2VuZ2luZSBhbmQgZm9yX2VhY2hfY29udGV4dF9lbmdpbmUp IGFuZAogICBtb3ZlZCBpbnRvIGdlbV9lbmdpbmVfdG9wb2xvZ3kuaAoKIC0gbWlub3IgY2hhbmdl cyBhYm91dCBkYXRhIHR5cGVzLgoKdjEzIC0tPiB2MTQKPT09PT09PT09PT0KUEFUQ0ggdjEzOiBb MTVdCm1pbm9yIGNoYW5nZXMgdGhpcyB0aW1lOgogLSBzcXVhc2hlZCBwYXRjaCAyIGFuZCAzIChm cm9tIHYxMykgd2l0aCBhIGxpdHRsZSByZW5hbWUgYW5kCiAgIGFkZGVkIENocmlzIHItYgoKIC0g Zml4ZWQgc29tZSBpbmRleCBpc3N1ZXMgYW5kIHN0cmluZyBhc3NpZ25lbWVudCBsZWFrcwoKIC0g c3F1YXNoZWQgcGF0Y2hlcyA1LCA2LCA3IGFuZCA4IGZyb20gdjEzCgp2MTIgLS0+IHYxMwo9PT09 PT09PT09PQpQQVRDSCB2MTI6IFsxNF0KVGhpcyBwYXRjaCBpcyBhbHNvIHZlcnkgZGlmZmVyZW50 IGZyb20gdGhlIHByZXZpb3VzIG90aGVyIHRoYW4Kc29tZSByZW9yZ2FuaXphdGlvbiBvZiB0aGUg Y29kZSB0aGVzZSBhcmUgdGhlIG1haW4gY2hhbmdlczoKCiAtIHRoZSBwcmV2aW91cyB2ZXJzaW9u IGxhY2tlZCB0aGUgY2FzZSB3aGVuIHRoZSBjb250ZXh0IGhhZCBpdHMKICAgZW5naW5lcyBtYXBw ZWQuIGNoZWNrcyBpbiB0aGUgZm9sbG93aW5nIG9yZGVyCgogaWYgdGhlIGRyaXZlciBkb2Vzbid0 IGhhdmUgdGhlIG5ldyBBUEkKICAtPiBnZXQgdGhlIGVuZ2luZXMgZnJvbSB0aGUgc3RhdGljIGxp c3QKIGlmIHRoZSBkcml2ZXIgaGFzIHRoZSBBUEkgYnV0IHRoZSBjb250ZXh0IGhhcyBub3RoaW5n IG1hcHBlZAogIC0+IGdldCB0aGUgZW5naW5lcyBmcm9tICJxdWVyeSIgYW5kIG1hcCB0aGVtCiBp ZiB0aGUgZHJpdmVyIGhhcyB0aGUgQVBJIGFuZCB0aGUgY29udGV4dCBoYXMgZW5naW5lcyBtYXBw ZWQKICAtPiBnZXQgdGhlIGVuZ2luZXMgZnJvbSB0aGUgY29udGV4dAoKIC0gdGhlIGhlbHBlciBm dW5jdGlvbnMgaGF2ZSBiZWVuIHJlbW92ZWQgYXMgdGhleSB3ZXJlIG9mIG5vIHVzZS4KCnYxMSAt LT4gdjEyCj09PT09PT09PT09ClBBVENIIHYxMTogWzEzXQpUaGlzIDEydGggdmVyc2lvbiBzdGFy dHMgZnJvbSBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IHRob3VnaHQuCkhlcmUncyB0aGUgbWFpbiBk aWZmZXJlbmNlczoKCiAtIFRoZSBsaXN0IG9mIGVuZ2luZXMgaXMgcHJvdmlkZWQgaW4gYW4gZW5n aW5lX2RhdGEgc3RydWN0dXJlCiAgIHdoaWNoIGNvbnRhaW5zIGFuIGluZGV4ICh1c2VmdWwgZm9y IGxvb3BpbmcgdGhyb3VnaCBhbmQgZm9yCiAgIGVuZ2luZS9jb250ZXh0IGluZGV4IG1hcHBpbmcp IGluc3RlYWQgb2YgYW4gYXJyYXkgb2YgZW5naW5lcy4KCiAtIFRoZSBsaXN0IG9mIGVuZ2luZXMg aXMgZ2VuZXJhdGVkIGV2ZXJ5IHRpbWUgdGhlIGluaXQgZnVuY3Rpb24KICAgaXMgY2FsbGVkIGFu ZCBub3RoaW5nIGlzIGFsbG9jYXRlZCBpbiBoZWFwIG1lbW9yeS4KCiAtIFRoZSBpb2N0bCBjaGVj ayBpcyBkb25lIGFscmVhZHkgZHVyaW5nIHRoZSBpbml0aWFsaXphdGlvbiBwYXJ0CiAgIGFuZCBp ZiB0aGUgbmV3IGlvY3RscyBhcmUgbm90IGltcGxlbWVudGVkLCB0aGVuIHRoZSBpbml0CiAgIGZ1 bmN0aW9uIHN0aWxsIHN0b3JlcyBvbmx5IHRob3NlIHByZXNlbnQgaW4gdGhlIEdQVS4KCiAtIFRo ZSBmb3JfZWFjaCBsb29wIGlzIGltcGxlbWVudGVkIGJ5IHJlLXVzaW5nIHRoZSBwcmV2aW91cwog ICAnZm9yX2VhY2hfZW5naW5lX2NsYXNzX2luc3RhbmNlKCknIGltcGxlbWVudGVkIGJ5IFR2cnRr by4KCiAtIFRoZSBnZW1fdG9wb2xvZ3kgbGlicmFyeSBvZmZlcnMgZmV3IGhlbHBlciBmdW5jdGlv bnMgZm9yCiAgIGNoZWNraW5nIHRoZSBlbmdpbmUgcHJlc2VuY2UsIGNoZWNraW5nIHRoZSBpbXBs ZW1lbnRhdGlvbiBvZgogICB0aGUgaW9jdGxzIGFuZCBleGVjdXRpbmcgdGhlIGJ1ZmZlciwgaW4g b3JkZXIgdG8gYmUgY29tcGxldGVseQogICB1bmF3YXJlIG9mIHRoZSBkcml2ZXIgaW1wbGVtZW50 YXRpb24uCgpUaGFua3MgVHZydGtvIGZvciBhbGwgeW91ciBpbnB1dHMuCgp2MTAgLS0+IHYxMQo9 PT09PT09PT09PQpSRkMgdjEwOiBbMTJdCmZldyBjb3NtZXRpYyBjaGFuZ2VzIGluIHYxMSBhbmQg bWlub3IgYXJjaGl0ZWN0dXJhbCBkZXRhaWxzLgpUaGFua3MgVHZydGtvLgoKLSB0aGUgJ3F1ZXJ5 X2VuZ2luZXMoKScgZnVuY3Rpb25zIGFyZSBzdGF0aWMgYXMgbm8gb25lIGlzIHVzaW5nCiAgdGhl bSB5ZXQuCgotIHJlbW92ZWQgdGhlICdnZW1faGFzX2VuZ2luZV90b3BvbG9neSgpJyBmdW5jdGlv biBiZWNhdXNlIGl0J3MKICB2ZXJ5IGxpdHRsZSB1c2VkLCAnZ2V0X2FjdGl2ZV9lbmdpbmVzKCkn IGNhbiBiZSB1c2VkIGluc3RlYWQuCgotIGEgbWlub3IgcmluZyAtPiBlbmdpbmUgcmVuYW1pbmcg Y29taW5nIGZyb20gQ2hyaXMuIAoKdjkgLS0+IHYxMAo9PT09PT09PT09ClJGQyB2OTogWzExXQph bHNvIHRoaXMgdGltZSBxdWl0ZSBtYW55IGNoYW5nZXMsIHRoYW5rcyBDaHJpcyBmb3IgdGhlIHJl dmlld3MsCmhlcmUgdGhlIG1vc3QgcmVsZXZhbnQgb2YgdGhlbS4KCi0gZ2VtX3F1ZXJ5LltjaF0g aGF2ZSBiZWVuIHJlbmFtZWQgdG8gZ2VtX2VuZ2luZV90b3BvbG9neS5bY2hdCiAgYW5kIGFsbCB0 aGUgZnVuY3Rpb25zIGVuZGVkIHVwIHRoZXJlIGFzIHRoZXkgYXJlIHJlZmVycmluZyB0bwogIHRo ZSB0b3BvbG9neSBvZiB0aGUgZW5naW5lcy4KCi0gdGhlIGZ1bmN0aW9ucyAnZ2V0X2FjdGl2ZV9l bmdpbmVzKCknLAogICdnZW1fc2V0X2NvbnRleHRfZ2V0X2VuZ2luZXMoKScgYW5kCiAgJ2lndF9y ZXF1aXJlX2dlbV9lbmdpbmVfbGlzdCgpJyB3aWxsIGJlIHRoZSBtYWluIGludGVyZmFjZSB0bwog IHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnksIHJlZmVyIHRvIHBhdGNoIDIgZm9yIGRl dGFpbHMuCgotIHRoZSBkZWZpbmUgJ2Zvcl9lYWNoX2VuZ2luZTIoKScgZG9lc24ndCBleHBvc2Ug YW55bW9yZSB0aGUKICBpdGVyYXRvci4KCi0gJ2dlbV9jb250ZXh0X2hhc19lbmdpbmUoKScgaGFz IGJlZW4gbW92ZWQgZnJvbSBpb2N0bF93cmFwcGVycy5jCiAgdG8gZ2VtX2NvbnRleHQuYy4KCi0g dGhlIGdlbV9leGVjX2Jhc2ljIGV4ZWMtY3R4IHN1YnRlc3QgZG9lcyBub3QgYWJvcnQgaWYgdGhl IG5ldwogIGdldHBhcmFtL3NldHBhcmFtIGFuZCBxdWVyeSBhcGlzIGFyZSBub3QgaW1wbGVtZW50 ZWQgYXMgaXQgY2FuCiAgd29yayB3aXRoIGJvdGggKGFzIGl0IHdhcyBkb25lIGF0IHRoZSBiZWdp bm5pbmcpLgoKdjggLS0+IHY5Cj09PT09PT09PQpSRkMgdjg6IFsxMF0KcXVpdGUgbWFueSBjaGFu Z2VzLCBwbGVhc2UgcmVmZXIgdG8gdGhlIHJldmlldyBpbiBbMTBdLiBUaGFua3MKQ2hyaXMgZm9y IHRoZSByZXZpZXcuIFRoZXNlIGFyZSB0aGUgbW9zdCByZWxldmFudDoKCi0gYWxsIHRoZSBhbGxv Y2F0aW9uIGluIGdlbV9xdWVyeSBoYXZlIGJlZW4gbWFkZSBpbiBzdGFjaywgbm90CiAgYW55bW9y ZSBhbGxvY2F0ZWQgZHluYW1pY2FsbHkuCgotIHJlbW92ZWQgZ2V0L3NldF9jb250ZXh0IGFzIGl0 IHdhcyBhbHJlYWR5IGltcGxlbWVudGVkIGFuZCBJCiAgZGlkbid0IGtub3cuCgotIHJlbmFtZWQg c29tZSBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcyB0byBob3BlZnVsbHkgbW9yZQogIG1lYW5pbmdm dWwgbmFtZXMuCgpWNyAtLT4gdjgKPT09PT09PT09ClJGQyB2NzogWzldCgotIGFsbCBmdW5jdGlv bnMgaGF2ZSBiZWVuIG1vdmVkIGZyb20gbGliL2lndF9ndC57YyxofSBhbmQKICBsaWIvaW9jdGxf d3JhcHBlcnMue2MsaH0gdG8gbGliL2k5MTYvZ2VtX3F1ZXJ5LntjLGh9LiAodGhhbmtzCiAgQ2hy aXMpCgotICdmb3JfZWFjaF9lbmdpbmVfY3R4JyBoYXMgYmVlbiByZW5hbWVkIHRvICdmb3JfZWFj aF9lbmdpbmUyJyB0bwogIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgJzInIHRoYXQgaW5kaWNhdGVz IHRoZSBuZXcgJ3N0cnVjdAogIGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyJyBkYXRhIHN0cnVjdHVy ZS4KClY2IC0tPiBWNwo9PT09PT09PT0KUkZDIHY2OiBbOF0KCi0gYSBuZXcgcGF0Y2ggaGFzIGJl ZW4gYWRkZWQgKHBhdGNoIDMpIHdoaWNoIGFkZHMgYSBuZXcKICByZXF1aXJlbWVudCBjaGVjayB0 aHJvdWdoIHRoZSBpZ3RfcmVxdWlyZV9nZW1fZW5naW5lX2xpc3QoKQogIGZ1bmN0aW9uLiAodGhh bmtzIENocmlzKSBUaGlzIGZ1bmN0aW9uIHdpbGwgaW5pdGlhbGl6ZSB0aGUKICBlbmdpbmUgbGlz dCBpbnN0ZWFkIG9mIHRoZSBpbnN0ZWFkIG9mIGlndF9yZXF1aXJlX2dlbSgpIGFzIGl0CiAgd2Fz IGluIHY2CgotIGFsbCB0aGUgaW9jdGxzIGhhdmUgYmVlbiB3cmFwcGVkICh0aGFua3MgQ2hyaXMg YW5kIEFudG9uaW8pIGFuZAogIG5ldyBsaWJyYXJ5IGZ1bmN0aW9ucyBoYXZlIGJlZW4gYWRkZWQg YW5kIGFzc2VydCB0aGUgaW9jdGxzCgotIGdlbV9pbml0X2VuZ2luZV9saXN0KCkgZnVuY3Rpb24g cmV0dXJucyB0aGUgZXJybm8gZnJvbSB0aGUKICBHRVRQQVJBTSBpb2N0bCBpbiBvcmRlciB0byBi ZSB1c2VkIGFzIGEgcmVxdWlyZW1lbnQuICh0aGFua3MKICBDaHJpcykKCi0gZml4ZWQgZmV3IHJl cXVpcmVzL2Fzc2VydHMKCi0gVGhlIGVuZ2luZSBsaXN0ICJpbnRlbF9hY3RpdmVfZW5naW5lczIi IGlzIGFsbG9jYXRlZCBvZiB0aGUKICBudW1iZXIgb2YgZW5naW5lcyBpbnN0ZWFkIG9mIGEgcG9s aXRpY2FsIDY0ICh0aGFua3MgQW50b25pbykuCgotIHNvbWUgcGFyYW1ldGVyIHJlbmFtaW5nIGlu IGdlbV9oYXNfcmluZ19ieV9pZHgoKS4gKHRoYW5rcwogIENocmlzKS4KCi0gdGhlIG9yaWdpbmFs ICJpbnRlbF9leGVjdXRpb25fZW5naW5lczIiIGhhcyBub3QgYmVlbiByZW5hbWVkLAogIGJlY2F1 c2UgaXQgaXMgdXNlZCB0byBjcmVhdGUgc3VidGVzdHMgYmVmb3JlIGV2ZW4gZXhlY3V0aW5nIGFu eQogIHRlc3QvaW9jdGwuIEJ5IHJlbmFtaW5nIGl0LCBzb21lIHN1YnRlc3QgZ2VuZXJhdGlvbnMg ZmFpbGVkLgogICh0aGFua3MgUGV0cmkpCgpWNSAtLT4gVjYKPT09PT09PT09ClJGQyB2NTogWzdd Ci0gQ2hyaXMgaW1wbGVtZW50ZWQgdGhlIGdldHBhcmFtIGlvY3RsIHdoaWNoIGFsbG93cyB0byB0 aGUgdGVzdAogIHRvIGZpZ3VyZSBvdHUgd2hldGhlciB0aGUgbmV3IGludGVyZmFjZSBoYXMgYmVl biBpbXBsZW1lbnRlZC4KICBUaGlzIHdheSB0aGUgZm9yX2VhY2hfZW5naW5lX2N0eCgpIGlzIGFi bGUgdG8gd29yayB3aXRoIG5ldyBhbmQKICBvbGQga2VybmVsIHVhcGkgKHRoYW5rcyBDaHJpcykK ClY0IC0tPiBWNQo9PT09PT09PT0KUkZDIHY0OiBbNl0KCi0gdGhlIGVuZ2luZSBsaXN0IGlzIG5v dyBidWlsdCBpbiAnaWd0X3JlcXVpcmVfZ2VtKCknIGluc3RlYWQgb2YKICAnX19vcGVuX2RyaXZl cigpJyBzbyB0aGF0IHdlIGtlZXAgdGhpcyBkaXNjb3ZlcnkgbWV0aG9kCiAgc3BlY2lmaWMgdG8g dGhlIGk5MTUgZHJpdmVyICh0aGFua3MgQ2hyaXMpLgoKLSBBbGwgdGhlIHF1ZXJ5L3NldHBhcmFt IHN0cnVjdHVyZXMgZHluYW1pYyBhbGxvY2F0aW9uIGJhc2VkIG9uCiAgdGhlIG51bWJlciBvZiBl bmdpbmVzLCBub3cgYXJlIHBvbGl0aWNhbGx5IGFsbG9jYXRlZCA2NCB0aW1lcywKICB0byBhdm9p ZCBleHRyYSBpb2N0bCBjYWxscyB0aGF0IHJldHJpZXZlIHRoZSBlbmdpbmUgbnVtYmVyCiAgKHRo YW5rcyBDaHJpcykKCi0gdXNlIGlndF9pb2N0bCBpbnN0ZWFkIG9mIGlvY3RsICh0aGFua3MgQ2hy aXMpCgotIGFsbG9jYXRlIGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMiBkeW5hbWljYWxseSBpbnN0 ZWFkIG9mCiAgc3RhdGljYWxseSAodGhhbmtzIFR2cnRrbykKCi0gc2ltcGxpZnkgdGhlIHRlc3Qg aW4gJ2dlbV9leGVjX2Jhc2ljKCknIHNvIHRoYXQgc2ltcGx5IGNoZWNrcwogIHRoZSBwcmVzZW5j ZSBvZiB0aGUgZW5naW5lIGluc3RlYWQgb2YgZXhlY3V0aW5nIGEgYnVmZmVyCiAgKHRoYW5rIENo cmlzKQoKLSBhIG5ldyBwYXRjaCBoYXMgYmVlbiBhZGRlZCAocGF0Y2ggMykgdGhhdCBleHRlbmRz IHRoZQogICdnZW1faGFzX3JpbmcoKScgYm9vbGVhbiBmdW5jdGlvbi4gVGhlIG5ldyB2ZXJzaW9u IHNldHMgdGhlCiAgaW5kZXggYXMgaXQncyBtYXBwZWQgaW4gdGhlIGtlcm5lbC5UaGUgcHJldmlv dXMgZnVuY3Rpb24gaXMgbm93CiAgYSB3cmFwcGVyIHRvIHRoZSBuZXcgZnVuY3Rpb24uCgpWMyAt LT4gVjQKPT09PT09PT09ClBBVENIIHYzOiBbM10KCi0gcmUtYXJjaGl0ZWN0dXJlZCB0aGUgZGlz Y292ZXJ5IG1lY2hhbmlzbSBiYXNlZCBvbiBUdnJ0a28ncwogIHN1Z2VzdGlvbiBhbmQgcmV2aWV3 cy4uIEluIHRoaXMgdmVyc2lvbiB0aGUgZGlzY292ZXJ5IGlzIGRvbmUKICBkdXJpbmcgdGhlIGRl dmljZSBvcGVuaW5nIGFuZCBzdG9yZWQgaW4gYSBOVUxMIHRlcm1pbmF0ZWQKICBhcnJheSwgd2hp Y2ggcmVwbGFjZXMgdGhlIGV4aXN0aW5nIGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMgogIHRoYXQg aXMgbWFpbmx5IHVzZWQgYXMgYSByZWZlcmVuY2UuCgpWMiAtLT4gVjMKPT09PT09PT09ClJGQyB2 MjogWzJdCgotIHJlbW92ZWQgYSBzdGFuZGFsb25lIGdlbV9xdWVyeV9lbmdpbmVzX2RlbW8gdGVz dCBhbmQgYWRkZWQgdGhlCiAgZXhlYy1jdHggc3VidGVzdCBpbnNpZGUgZ2VtX2V4ZWNfYmFzaWMg KHRoYW5rcyBUdnJ0a28pLgoKLSBmaXhlZCBtb3N0IG9mIFR2cnRrbydzIGNvbW1lbnRzIGluIFs1 XSwgd2hpY2ggY29uc2lzdCBpbgogIHB1dHRpbmcgdGhlIG1hbGxvY3MgaWd0X2Fzc2VydCBhbmQg aWN0bHMgaW4gaWd0X3JlcXVpcmUgYW5kIGZldwogIHJlZmFjdG9yaW5nICh0aGFua3MgVHZydGtv KS4KClYxIC0tPiBWMgo9PT09PT09PT0KUkZDIHYxOiBbMV0KCi0gYWRkZWQgYSBkZW1vIHRlc3Qg dGhhdCBzaW1wbHkgcXVlcmllcyB0aGUgZHJpdmVyIGFib3V0IHRoZQogIGVuZ2luZXMgYW5kIGV4 ZWN1dGVzIGEgYnVmZmVyICh0aGFua3MgVHZydGtvKQoKLSByZWZhY3RvcmVkIHRoZSBmb3JfZWFj aF9lbmdpbmVfY3R4KCkgbWFjcm8gc28gdGhhdCB3aGF0IGluIHRoZQogIHByZXZpb3VzIHZlcnNp b24gd2FzIGRvbmUgYnkgdGhlICJiaW5kIiBmdW5jdGlvbiwgbm93IGl0J3MgZG9uZQogIGluIHRo ZSBmaXJzdCBpdGVyYXRpb24uIChUaGFua3MgQ3JoaXMpCgotIHJlbW92ZWQgdGhlICJnZW1faGFz X3JpbmdfY3R4KCkiIGJlY2F1c2UgaXQgd2FzIG91dCBvZiB0aGUKICBzY29wZS4KCi0gcmVuYW1l IGZ1bmN0aW9ucyB0byBtb3JlIG1lYW5pbmdmdWwgbmFtZXMKClsxXSBSRkMgdjE6IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAxOC1Ob3ZlbWJlci8wMDcw MjUuaHRtbApbMl0gUkZDIHYyOiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZl cy9pZ3QtZGV2LzIwMTgtTm92ZW1iZXIvMDA3MDc5Lmh0bWwKWzNdIFBBVENIIHYzOiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pZ3QtZGV2LzIwMTgtTm92ZW1iZXIvMDA3 MTQ4Lmh0bWwKWzRdIGh0dHBzOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvfnR1cnN1bGluL2RybS1p bnRlbC9sb2cvP2g9bWVkaWEKWzVdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hp dmVzL2lndC1kZXYvMjAxOC1Ob3ZlbWJlci8wMDcxMDAuaHRtbApbNl0gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaWd0LWRldi8yMDE5LUphbnVhcnkvMDA4MDI5Lmh0bWwK WzddIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAxOS1K YW51YXJ5LzAwODE2NS5odG1sCls4XSBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNo aXZlcy9pZ3QtZGV2LzIwMTktRmVicnVhcnkvMDA4OTAyLmh0bWwKWzldIGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAxOS1GZWJydWFyeS8wMDkxODUuaHRt bApbMTBdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAx OS1GZWJydWFyeS8wMDkyMDUuaHRtbApbMTFdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L2FyY2hpdmVzL2lndC1kZXYvMjAxOS1GZWJydWFyeS8wMDkyNzcuaHRtbApbMTJdIGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAxOS1NYXJjaC8wMTAxOTcu aHRtbApbMTNdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYv MjAxOS1NYXJjaC8wMTA0NjcuaHRtbApbMTRdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L2FyY2hpdmVzL2lndC1kZXYvMjAxOS1NYXJjaC8wMTA3NzYuaHRtbApbMTVdIGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAxOS1NYXJjaC8wMTA4MjcuaHRt bApbMTZdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lndC1kZXYvMjAx OS1NYXJjaC8wMTA5MTYuaHRtbApbMTddIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2Fy Y2hpdmVzL2lndC1kZXYvMjAxOS1BcHJpbC8wMTE4MjEuaHRtbAoKQW5kaSBTaHl0aSAoNik6CiAg aW5jbHVkZS9kcm0tdWFwaTogaW1wb3J0IGk5MTVfZHJtLmggaGVhZGVyIGZpbGUKICBsaWIvaTkx NTogYWRkIGdlbV9lbmdpbmVfdG9wb2xvZ3kgbGlicmFyeSBhbmQgZm9yX2VhY2ggbG9vcCBkZWZp bml0aW9uCiAgbGliOiBpZ3RfZ3Q6IGFkZCBleGVjdXRpb24gYnVmZmVyIGZsYWdzIHRvIGNsYXNz IGhlbHBlcgogIGxpYjogaWd0X2d0OiBtYWtlIGdlbV9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKCkg Y2hlY2sgZW5naW5lIGNsYXNzCiAgbGliOiBpZ3RfZHVtbXlsb2FkOiB1c2UgZm9yX2VhY2hfY29u dGV4dF9lbmdpbmUoKQogIHRlc3Q6IHBlcmZfcG11OiB1c2UgdGhlIGdlbV9lbmdpbmVfdG9wb2xv Z3kgbGlicmFyeQoKIGluY2x1ZGUvZHJtLXVhcGkvaTkxNV9kcm0uaCAgICB8IDM2MSArKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0KIGxpYi9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAg ICB8ICAgMiArCiBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMgfCAyODIgKysrKysrKysr KysrKysrKysrKysrKysrKwogbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIHwgIDc5ICsr KysrKysrCiBsaWIvaWd0LmggICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogbGliL2lndF9k dW1teWxvYWQuYyAgICAgICAgICAgIHwgIDI5ICsrLQogbGliL2lndF9ndC5jICAgICAgICAgICAg ICAgICAgIHwgIDMwICsrLQogbGliL2lndF9ndC5oICAgICAgICAgICAgICAgICAgIHwgIDEyICst CiBsaWIvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMvcGVyZl9wbXUu YyAgICAgICAgICAgICAgIHwgMTU0ICsrKysrKysrLS0tLS0tCiAxMCBmaWxlcyBjaGFuZ2VkLCA4 MTQgaW5zZXJ0aW9ucygrKSwgMTM3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxp Yi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1 L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAoKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2