From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 44361C433B4 for ; Wed, 28 Apr 2021 16:41:45 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C50BD60E08 for ; Wed, 28 Apr 2021 16:41:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C50BD60E08 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7E2196EBB7; Wed, 28 Apr 2021 16:41:43 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 293C56EBB7; Wed, 28 Apr 2021 16:41:42 +0000 (UTC) IronPort-SDR: /QtQMJb2MOpYGZ+2HaaNUJxEYlH+BbdYyDei+kUAgzExycVoDjPAdRF4AGas47U2UAEDeho1do rEFV80iqEdyw== X-IronPort-AV: E=McAfee;i="6200,9189,9968"; a="217508859" X-IronPort-AV: E=Sophos;i="5.82,258,1613462400"; d="scan'208";a="217508859" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2021 09:41:23 -0700 IronPort-SDR: py7HQunuNKLFv9IwoC74WJqpMMv1kNgwC2ZcDJRKqcy8vJRAPyHuBI3BK5SFTGOa2+3tnZ/qMA mfPoGOJeLutQ== X-IronPort-AV: E=Sophos;i="5.82,258,1613462400"; d="scan'208";a="403747152" Received: from gstedje-mobl2.ger.corp.intel.com (HELO [10.252.13.124]) ([10.252.13.124]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2021 09:41:19 -0700 Subject: Re: [PATCH 1/9] drm/doc/rfc: i915 DG1 uAPI To: Jason Ekstrand References: <20210426093901.28937-1-matthew.auld@intel.com> From: Matthew Auld Message-ID: Date: Wed, 28 Apr 2021 17:41:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-GB X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lionel Landwerlin , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , Dave Airlie , Jordan Justen , Intel GFX , Maling list - DRI developers , Daniel Vetter , Kenneth Graunke , Daniele Ceraolo Spurio , Jon Bloomfield , ML mesa-dev , Daniel Vetter Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gMjgvMDQvMjAyMSAxNjo1MSwgSmFzb24gRWtzdHJhbmQgd3JvdGU6Cj4gT24gTW9uLCBBcHIg MjYsIDIwMjEgYXQgNDo0MiBBTSBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+ IHdyb3RlOgo+Pgo+PiBBZGQgYW4gZW50cnkgZm9yIHRoZSBuZXcgdUFQSSBuZWVkZWQgZm9yIERH MS4gQWxzbyBhZGQgdGhlIG92ZXJhbGwKPj4gdXBzdHJlYW0gcGxhbiwgaW5jbHVkaW5nIHNvbWUg bm90ZXMgZm9yIHRoZSBUVE0gY29udmVyc2lvbi4KPj4KPj4gdjIoRGFuaWVsKToKPj4gICAgLSBp bmNsdWRlIHRoZSBvdmVyYWxsIHVwc3RyZWFtaW5nIHBsYW4KPj4gICAgLSBhZGQgYSBub3RlIGZv ciBtbWFwLCB0aGVyZSBhcmUgZGlmZmVyZW5jZXMgaGVyZSBmb3IgVFRNIHZzIGk5MTUKPj4gICAg LSBidW5jaCBvZiBvdGhlciBzdWdnZXN0aW9ucyBmcm9tIERhbmllbAo+PiB2MzoKPj4gICAoRGFu aWVsKQo+PiAgICAtIGFkZCBhIG5vdGUgZm9yIHNldC9nZXQgY2FjaGluZyBzdHVmZgo+PiAgICAt IGFkZCBzb21lIG1vcmUgZG9jcyBmb3IgZXhpc3RpbmcgcXVlcnkgYW5kIGV4dGVuc2lvbnMgc3R1 ZmYKPj4gICAgLSBhZGQgYW4gYWN0dWFsIGNvZGUgZXhhbXBsZSBmb3IgcmVnaW9ucyBxdWVyeQo+ PiAgICAtIGJ1bmNoIG9mIG90aGVyIHN0dWZmCj4+ICAgKEphc29uKQo+PiAgICAtIHVBUEkgY2hh bmdlKCEpOgo+PiAgICAgICAgICAtIHRyeSBhIHNpbXBsZXIgZGVzaWduIHdpdGggdGhlIHBsYWNl bWVudHMgZXh0ZW5zaW9uCj4+ICAgICAgICAgIC0gcmF0aGVyIHRoYW4gaGF2ZSBhIGdlbmVyaWMg c2V0cGFyYW0gd2hpY2ggY2FuIGNvdmVyIG11bHRpcGxlCj4+ICAgICAgICAgICAgdXNlIGNhc2Vz LCBoYXZlIGVhY2ggZXh0ZW5zaW9uIGJlIHJlc3BvbnNpYmxlIGZvciBvbmUgdGhpbmcKPj4gICAg ICAgICAgICBvbmx5Cj4+IHY0Ogo+PiAgIChEYW5pZWwpCj4+ICAgIC0gYWRkIHNvbWUgbW9yZSBu b3RlcyBmb3IgdHRtIGNvbnZlcnNpb24KPj4gICAgLSBidW5jaCBvZiBvdGhlciBzdHVmZgo+PiAg IChKYXNvbikKPj4gICAgLSB1QVBJIGNoYW5nZSghKToKPj4gICAgICAgICAgLSBkcm9wIGFsbCB0 aGUgZXh0cmEgcnN2ZCBtZW1iZXJzIGZvciB0aGUgcmVnaW9uX3F1ZXJ5IGFuZAo+PiAgICAgICAg ICAgIHJlZ2lvbl9pbmZvLCBqdXN0IGtlZXAgdGhlIGJhcmUgbWluaW11bSBuZWVkZWQgZm9yIHBh ZGRpbmcKPj4KPj4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50 ZWwuY29tPgo+PiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50 ZWwuY29tPgo+PiBDYzogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXgu aW50ZWwuY29tPgo+PiBDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xv c3B1cmlvQGludGVsLmNvbT4KPj4gQ2M6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5k d2VybGluQGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6IEpvbiBCbG9vbWZpZWxkIDxqb24uYmxvb21m aWVsZEBpbnRlbC5jb20+Cj4+IENjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4ubC5qdXN0ZW5AaW50 ZWwuY29tPgo+PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4+ IENjOiBLZW5uZXRoIEdyYXVua2UgPGtlbm5ldGhAd2hpdGVjYXBlLm9yZz4KPj4gQ2M6IEphc29u IEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5kLm5ldD4KPj4gQ2M6IERhdmUgQWlybGllIDxhaXJs aWVkQGdtYWlsLmNvbT4KPj4gQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4g Q2M6IG1lc2EtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBBY2tlZC1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPj4gQWNrZWQtYnk6IERhdmUgQWlybGllIDxh aXJsaWVkQHJlZGhhdC5jb20+Cj4+IC0tLQo+PiAgIERvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1 X2dlbV9sbWVtLmggICB8IDIxMiArKysrKysrKysrKysrKysrKysrKysrKysKPj4gICBEb2N1bWVu dGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1fbG1lbS5yc3QgfCAxMzAgKysrKysrKysrKysrKysrCj4+ ICAgRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2luZGV4LnJzdCAgICAgICAgIHwgICA0ICsKPj4gICAz IGZpbGVzIGNoYW5nZWQsIDM0NiBpbnNlcnRpb25zKCspCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IERvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgKPj4gICBjcmVhdGUgbW9kZSAx MDA2NDQgRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0ucnN0Cj4+Cj4+IGRpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1fbG1lbS5oIGIvRG9jdW1lbnRh dGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0uaAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBp bmRleCAwMDAwMDAwMDAwMDAuLjdlZDU5YjYyMDJkNQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBi L0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgKPj4gQEAgLTAsMCArMSwyMTIg QEAKPj4gKy8qKgo+PiArICogZW51bSBkcm1faTkxNV9nZW1fbWVtb3J5X2NsYXNzIC0gU3VwcG9y dGVkIG1lbW9yeSBjbGFzc2VzCj4+ICsgKi8KPj4gK2VudW0gZHJtX2k5MTVfZ2VtX21lbW9yeV9j bGFzcyB7Cj4+ICsgICAgICAgLyoqIEBJOTE1X01FTU9SWV9DTEFTU19TWVNURU06IFN5c3RlbSBt ZW1vcnkgKi8KPj4gKyAgICAgICBJOTE1X01FTU9SWV9DTEFTU19TWVNURU0gPSAwLAo+PiArICAg ICAgIC8qKiBASTkxNV9NRU1PUllfQ0xBU1NfREVWSUNFOiBEZXZpY2UgbG9jYWwtbWVtb3J5ICov Cj4+ICsgICAgICAgSTkxNV9NRU1PUllfQ0xBU1NfREVWSUNFLAo+PiArfTsKPj4gKwo+PiArLyoq Cj4+ICsgKiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSAtIElkZW50 aWZ5IHBhcnRpY3VsYXIgbWVtb3J5IHJlZ2lvbgo+PiArICovCj4+ICtzdHJ1Y3QgZHJtX2k5MTVf Z2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSB7Cj4+ICsgICAgICAgLyoqIEBtZW1vcnlfY2xhc3M6 IFNlZSBlbnVtIGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3MgKi8KPj4gKyAgICAgICBfX3UxNiBt ZW1vcnlfY2xhc3M7Cj4+ICsKPj4gKyAgICAgICAvKiogQG1lbW9yeV9pbnN0YW5jZTogV2hpY2gg aW5zdGFuY2UgKi8KPj4gKyAgICAgICBfX3UxNiBtZW1vcnlfaW5zdGFuY2U7Cj4+ICt9Owo+PiAr Cj4+ICsvKioKPj4gKyAqIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2luZm8gLSBEZXNj cmliZXMgb25lIHJlZ2lvbiBhcyBrbm93biB0byB0aGUKPj4gKyAqIGRyaXZlci4KPj4gKyAqCj4+ ICsgKiBOb3RlIHRoYXQgd2UgcmVzZXJ2ZSBzb21lIHN0dWZmIGhlcmUgZm9yIHBvdGVudGlhbCBm dXR1cmUgd29yay4gQXMgYW4gZXhhbXBsZQo+PiArICogd2UgbWlnaHQgd2FudCBleHBvc2UgdGhl IGNhcGFiaWxpdGllcyhzZWUgQGNhcHMpIGZvciBhIGdpdmVuIHJlZ2lvbiwgd2hpY2gKPj4gKyAq IGNvdWxkIGluY2x1ZGUgdGhpbmdzIGxpa2UgaWYgdGhlIHJlZ2lvbiBpcyBDUFUgbWFwcGFibGUv YWNjZXNzaWJsZSwgd2hhdCBhcmUKPj4gKyAqIHRoZSBzdXBwb3J0ZWQgbWFwcGluZyB0eXBlcyBl dGMuCj4+ICsgKgo+PiArICogTm90ZSB0aGlzIGlzIHVzaW5nIGJvdGggc3RydWN0IGRybV9pOTE1 X3F1ZXJ5X2l0ZW0gYW5kIHN0cnVjdCBkcm1faTkxNV9xdWVyeS4KPj4gKyAqIEZvciB0aGlzIG5l dyBxdWVyeSB3ZSBhcmUgYWRkaW5nIHRoZSBuZXcgcXVlcnkgaWQgRFJNX0k5MTVfUVVFUllfTUVN T1JZX1JFR0lPTlMKPj4gKyAqIGF0ICZkcm1faTkxNV9xdWVyeV9pdGVtLnF1ZXJ5X2lkLgo+PiAr ICovCj4+ICtzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHsKPj4gKyAgICAgICAv KiogQHJlZ2lvbjogVGhlIGNsYXNzOmluc3RhbmNlIHBhaXIgZW5jb2RpbmcgKi8KPj4gKyAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSByZWdpb247Cj4+ICsK Pj4gKyAgICAgICAvKiogQHBhZDogTUJaICovCj4+ICsgICAgICAgX191MzIgcGFkOwo+PiArCj4+ ICsgICAgICAgLyoqIEBjYXBzOiBNQlogKi8KPj4gKyAgICAgICBfX3U2NCBjYXBzOwo+IAo+IEFz IHdhcyBjb21tZW50ZWQgb24gYW5vdGhlciB0aHJlYWQgc29tZXdoZXJlLCBpZiB3ZSdyZSBnb2lu ZyB0byBoYXZlCj4gY2Fwcywgd2Ugc2hvdWxkIGhhdmUgYW5vdGhlciBfX3U2NCBzdXBwb3J0ZWRf Y2FwcyB3aGljaCB0ZWxscwo+IHVzZXJzcGFjZSB3aGF0IGNhcHMgdGhlIGtlcm5lbCBpcyBjYXBh YmxlIG9mIGFkdmVydGlzaW5nLiAgVGhhdCB3YXkKPiB1c2Vyc3BhY2UgY2FuIHRlbGwgdGhlIGRp ZmZlcmVuY2UgYmV0d2VlbiBhIGtlcm5lbCB3aGljaCBkb2Vzbid0Cj4gYWR2ZXJ0aXNlIGEgY2Fw IGFuZCBhIGtlcm5lbCB3aGljaCBjYW4gYWR2ZXJ0aXNlIHRoZSBjYXAgYnV0IHdoZXJlIHRoZQo+ IGNhcCBpc24ndCBzdXBwb3J0ZWQuCgpZZWFoLCBteSBwbGFuIHdhcyB0byBqdXN0IGdvIHdpdGgg cnN2ZFtdLCBzbyBkcm9wIHRoZSBmbGFncy9jYXBzIGZvciAKbm93LCBhbmQgYWRkIGEgY29tbWVu dC9leGFtcGxlIGZvciBob3cgd2UgcGxhbiB0byBleHRlbmQgdGhpcyBpbiB0aGUgCmZ1dHVyZSh1 c2luZyB5b3VyIHVuaW9uICsgYXJyYXkgdHJpY2spLiBIb3BlZnVsbHkgdGhhdCdzIHJlYXNvbmFi bGUuCgo+IAo+PiArCj4+ICsgICAgICAgLyoqIEBwcm9iZWRfc2l6ZTogTWVtb3J5IHByb2JlZCBi eSB0aGUgZHJpdmVyICgtMSA9IHVua25vd24pICovCj4+ICsgICAgICAgX191NjQgcHJvYmVkX3Np emU7Cj4+ICsKPj4gKyAgICAgICAvKiogQHVuYWxsb2NhdGVkX3NpemU6IEVzdGltYXRlIG9mIG1l bW9yeSByZW1haW5pbmcgKC0xID0gdW5rbm93bikgKi8KPj4gKyAgICAgICBfX3U2NCB1bmFsbG9j YXRlZF9zaXplOwo+PiArfTsKPj4gKwo+PiArLyoqCj4+ICsgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVl cnlfbWVtb3J5X3JlZ2lvbnMKPj4gKyAqCj4+ICsgKiBUaGUgcmVnaW9uIGluZm8gcXVlcnkgZW51 bWVyYXRlcyBhbGwgcmVnaW9ucyBrbm93biB0byB0aGUgZHJpdmVyIGJ5IGZpbGxpbmcKPj4gKyAq IGluIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2luZm8gc3RydWN0 dXJlcy4KPj4gKyAqCj4+ICsgKiBFeGFtcGxlIGZvciBnZXR0aW5nIHRoZSBsaXN0IG9mIHN1cHBv cnRlZCByZWdpb25zOgo+PiArICoKPj4gKyAqIC4uIGNvZGUtYmxvY2s6OiBDCj4+ICsgKgo+PiAr ICogICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyAqaW5mbzsKPj4gKyAq ICAgICBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSBpdGVtID0gewo+PiArICogICAgICAgICAg ICAgLnF1ZXJ5X2lkID0gRFJNX0k5MTVfUVVFUllfTUVNT1JZX1JFR0lPTlM7Cj4+ICsgKiAgICAg fTsKPj4gKyAqICAgICBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgcXVlcnkgPSB7Cj4+ICsgKiAgICAg ICAgICAgICAubnVtX2l0ZW1zID0gMSwKPj4gKyAqICAgICAgICAgICAgIC5pdGVtc19wdHIgPSAo dWludHB0cl90KSZpdGVtLAo+PiArICogICAgIH07Cj4+ICsgKiAgICAgaW50IGVyciwgaTsKPj4g KyAqCj4+ICsgKiAgICAgLy8gRmlyc3QgcXVlcnkgdGhlIHNpemUgb2YgdGhlIGJsb2Igd2UgbmVl ZCwgdGhpcyBuZWVkcyB0byBiZSBsYXJnZQo+PiArICogICAgIC8vIGVub3VnaCB0byBob2xkIG91 ciBhcnJheSBvZiByZWdpb25zLiBUaGUga2VybmVsIHdpbGwgZmlsbCBvdXQgdGhlCj4+ICsgKiAg ICAgLy8gaXRlbS5sZW5ndGggZm9yIHVzLCB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdl IG5lZWQuCj4+ICsgKiAgICAgZXJyID0gaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X1FVRVJZLCAm cXVlcnkpOwo+PiArICogICAgIGlmIChlcnIpIC4uLgo+PiArICoKPj4gKyAqICAgICBpbmZvID0g Y2FsbG9jKDEsIGl0ZW0ubGVuZ3RoKTsKPj4gKyAqICAgICAvLyBOb3cgdGhhdCB3ZSBhbGxvY2F0 ZWQgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBieXRlcywgd2UgY2FsbCB0aGUgaW9jdGwKPj4gKyAq ICAgICAvLyBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggdGhlIGRhdGFfcHRyIHBvaW50aW5nIHRvIG91 ciBuZXdseSBhbGxvY2F0ZWQKPj4gKyAqICAgICAvLyBibG9iLCB3aGljaCB0aGUga2VybmVsIGNh biB0aGVuIHBvcHVsYXRlIHdpdGggdGhlIGFsbCB0aGUgcmVnaW9uIGluZm8uCj4+ICsgKiAgICAg aXRlbS5kYXRhX3B0ciA9ICh1aW50cHRyX3QpJmluZm8sCj4+ICsgKgo+PiArICogICAgIGVyciA9 IGlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9RVUVSWSwgJnF1ZXJ5KTsKPj4gKyAqICAgICBpZiAo ZXJyKSAuLi4KPj4gKyAqCj4+ICsgKiAgICAgLy8gV2UgY2FuIG5vdyBhY2Nlc3MgZWFjaCByZWdp b24gaW4gdGhlIGFycmF5Cj4+ICsgKiAgICAgZm9yIChpID0gMDsgaSA8IGluZm8tPm51bV9yZWdp b25zOyBpKyspIHsKPj4gKyAqICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVn aW9uX2luZm8gbXIgPSBpbmZvLT5yZWdpb25zW2ldOwo+PiArICogICAgICAgICAgICAgdTE2IGNs YXNzID0gbXIucmVnaW9uLmNsYXNzOwo+PiArICogICAgICAgICAgICAgdTE2IGluc3RhbmNlID0g bXIucmVnaW9uLmluc3RhbmNlOwo+PiArICoKPj4gKyAqICAgICAgICAgICAgIC4uLi4KPj4gKyAq ICAgICB9Cj4+ICsgKgo+PiArICogICAgIGZyZWUoaW5mbyk7Cj4+ICsgKi8KPj4gK3N0cnVjdCBk cm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyB7Cj4+ICsgICAgICAgLyoqIEBudW1fcmVnaW9u czogTnVtYmVyIG9mIHN1cHBvcnRlZCByZWdpb25zICovCj4+ICsgICAgICAgX191MzIgbnVtX3Jl Z2lvbnM7Cj4+ICsKPj4gKyAgICAgICAvKiogQHBhZDogTUJaICovCj4+ICsgICAgICAgX191MzIg cGFkOwo+PiArCj4+ICsgICAgICAgLyoqIEByZWdpb25zOiBJbmZvIGFib3V0IGVhY2ggc3VwcG9y dGVkIHJlZ2lvbiAqLwo+PiArICAgICAgIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2lu Zm8gcmVnaW9uc1tdOwo+PiArfTsKPj4gKwo+PiArI2RlZmluZSBEUk1fSTkxNV9HRU1fQ1JFQVRF X0VYVCAgICAgICAgICAgICAgICAweGRlYWRiZWFmCj4+ICsjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X0dFTV9DUkVBVEVfRVhUICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VN X0NSRUFURV9FWFQsIHN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlX2V4dCkKPj4gKwo+PiArLyoq Cj4+ICsgKiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHQgLSBFeGlzdGluZyBnZW1fY3Jl YXRlIGJlaGF2aW91ciwgd2l0aCBhZGRlZAo+PiArICogZXh0ZW5zaW9uIHN1cHBvcnQgdXNpbmcg c3RydWN0IGk5MTVfdXNlcl9leHRlbnNpb24uCj4+ICsgKgo+PiArICogTm90ZSB0aGF0IGluIHRo ZSBmdXR1cmUgd2Ugd2FudCB0byBoYXZlIG91ciBidWZmZXIgZmxhZ3MgaGVyZSwgYXQgbGVhc3Qg Zm9yCj4+ICsgKiB0aGUgc3R1ZmYgdGhhdCBpcyBpbW11dGFibGUuIFByZXZpb3VzbHkgd2Ugd291 bGQgaGF2ZSB0d28gaW9jdGxzLCBvbmUgdG8KPj4gKyAqIGNyZWF0ZSB0aGUgb2JqZWN0IHdpdGgg Z2VtX2NyZWF0ZSwgYW5kIGFub3RoZXIgdG8gYXBwbHkgdmFyaW91cyBwYXJhbWV0ZXJzLAo+PiAr ICogaG93ZXZlciB0aGlzIGNyZWF0ZXMgc29tZSBhbWJpZ3VpdHkgZm9yIHRoZSBwYXJhbXMgd2hp Y2ggYXJlIGNvbnNpZGVyZWQKPj4gKyAqIGltbXV0YWJsZS4gQWxzbyBpbiBnZW5lcmFsIHdlJ3Jl IHBoYXNpbmcgb3V0IHRoZSB2YXJpb3VzIFNFVC9HRVQgaW9jdGxzLgo+PiArICovCj4+ICtzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHQgewo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAq IEBzaXplOiBSZXF1ZXN0ZWQgc2l6ZSBmb3IgdGhlIG9iamVjdC4KPj4gKyAgICAgICAgKgo+PiAr ICAgICAgICAqIFRoZSAocGFnZS1hbGlnbmVkKSBhbGxvY2F0ZWQgc2l6ZSBmb3IgdGhlIG9iamVj dCB3aWxsIGJlIHJldHVybmVkLgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogTm90ZSB0aGF0 IGZvciBzb21lIGRldmljZXMgd2UgaGF2ZSBtaWdodCBoYXZlIGZ1cnRoZXIgbWluaW11bQo+PiAr ICAgICAgICAqIHBhZ2Utc2l6ZSByZXN0cmljdGlvbnMobGFyZ2VyIHRoYW4gNEspLCBsaWtlIGZv ciBkZXZpY2UgbG9jYWwtbWVtb3J5Lgo+PiArICAgICAgICAqIEhvd2V2ZXIgaW4gZ2VuZXJhbCB0 aGUgZmluYWwgc2l6ZSBoZXJlIHNob3VsZCBhbHdheXMgcmVmbGVjdCBhbnkKPj4gKyAgICAgICAg KiByb3VuZGluZyB1cCwgaWYgZm9yIGV4YW1wbGUgdXNpbmcgdGhlIEk5MTVfR0VNX0NSRUFURV9F WFRfTUVNT1JZX1JFR0lPTlMKPj4gKyAgICAgICAgKiBleHRlbnNpb24gdG8gcGxhY2UgdGhlIG9i amVjdCBpbiBkZXZpY2UgbG9jYWwtbWVtb3J5Lgo+PiArICAgICAgICAqLwo+PiArICAgICAgIF9f dTY0IHNpemU7Cj4+ICsgICAgICAgLyoqCj4+ICsgICAgICAgICogQGhhbmRsZTogUmV0dXJuZWQg aGFuZGxlIGZvciB0aGUgb2JqZWN0Lgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogT2JqZWN0 IGhhbmRsZXMgYXJlIG5vbnplcm8uCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgX191MzIgaGFu ZGxlOwo+PiArICAgICAgIC8qKiBAZmxhZ3M6IE1CWiAqLwo+PiArICAgICAgIF9fdTMyIGZsYWdz Owo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIEBleHRlbnNpb25zOiBUaGUgY2hhaW4gb2Yg ZXh0ZW5zaW9ucyB0byBhcHBseSB0byB0aGlzIG9iamVjdC4KPj4gKyAgICAgICAgKgo+PiArICAg ICAgICAqIFRoaXMgd2lsbCBiZSB1c2VmdWwgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIG5lZWQgdG8g c3VwcG9ydCBzZXZlcmFsCj4+ICsgICAgICAgICogZGlmZmVyZW50IGV4dGVuc2lvbnMsIGFuZCB3 ZSBuZWVkIHRvIGFwcGx5IG1vcmUgdGhhbiBvbmUgd2hlbgo+PiArICAgICAgICAqIGNyZWF0aW5n IHRoZSBvYmplY3QuIFNlZSBzdHJ1Y3QgaTkxNV91c2VyX2V4dGVuc2lvbi4KPj4gKyAgICAgICAg Kgo+PiArICAgICAgICAqIElmIHdlIGRvbid0IHN1cHBseSBhbnkgZXh0ZW5zaW9ucyB0aGVuIHdl IGdldCB0aGUgc2FtZSBvbGQgZ2VtX2NyZWF0ZQo+PiArICAgICAgICAqIGJlaGF2aW91ci4KPj4g KyAgICAgICAgKgo+PiArICAgICAgICAqIEZvciBJOTE1X0dFTV9DUkVBVEVfRVhUX01FTU9SWV9S RUdJT05TIHVzYWdlIHNlZQo+PiArICAgICAgICAqIHN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRl X2V4dF9tZW1vcnlfcmVnaW9ucy4KPj4gKyAgICAgICAgKi8KPj4gKyNkZWZpbmUgSTkxNV9HRU1f Q1JFQVRFX0VYVF9NRU1PUllfUkVHSU9OUyAwCj4+ICsgICAgICAgX191NjQgZXh0ZW5zaW9uczsK Pj4gK307Cj4+ICsKPj4gKy8qKgo+PiArICogc3RydWN0IGRybV9pOTE1X2dlbV9jcmVhdGVfZXh0 X21lbW9yeV9yZWdpb25zIC0gVGhlCj4+ICsgKiBJOTE1X0dFTV9DUkVBVEVfRVhUX01FTU9SWV9S RUdJT05TIGV4dGVuc2lvbi4KPj4gKyAqCj4+ICsgKiBTZXQgdGhlIG9iamVjdCB3aXRoIHRoZSBk ZXNpcmVkIHNldCBvZiBwbGFjZW1lbnRzL3JlZ2lvbnMgaW4gcHJpb3JpdHkKPj4gKyAqIG9yZGVy LiBFYWNoIGVudHJ5IG11c3QgYmUgdW5pcXVlIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZS4K Pj4gKyAqCj4+ICsgKiBUaGlzIGlzIHByb3ZpZGVkIGFzIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1f aTkxNV9nZW1fbWVtb3J5X2NsYXNzX2luc3RhbmNlLCBvcgo+PiArICogYW4gZXF1aXZhbGVudCBs YXlvdXQgb2YgY2xhc3M6aW5zdGFuY2UgcGFpciBlbmNvZGluZ3MuIFNlZSBzdHJ1Y3QKPj4gKyAq IGRybV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25zIGFuZCBEUk1fSTkxNV9RVUVSWV9NRU1PUllf UkVHSU9OUyBmb3IgaG93IHRvCj4+ICsgKiBxdWVyeSB0aGUgc3VwcG9ydGVkIHJlZ2lvbnMgZm9y IGEgZGV2aWNlLgo+PiArICoKPj4gKyAqIEFzIGFuIGV4YW1wbGUsIG9uIGRpc2NyZXRlIGRldmlj ZXMsIGlmIHdlIHdpc2ggdG8gc2V0IHRoZSBwbGFjZW1lbnQgYXMKPj4gKyAqIGRldmljZSBsb2Nh bC1tZW1vcnkgd2UgY2FuIGRvIHNvbWV0aGluZyBsaWtlOgo+PiArICoKPj4gKyAqIC4uIGNvZGUt YmxvY2s6OiBDCj4+ICsgKgo+PiArICogICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fbWVtb3J5X2Ns YXNzX2luc3RhbmNlIHJlZ2lvbl9sbWVtID0gewo+PiArICogICAgICAgICAgICAgIC5tZW1vcnlf Y2xhc3MgPSBJOTE1X01FTU9SWV9DTEFTU19ERVZJQ0UsCj4+ICsgKiAgICAgICAgICAgICAgLm1l bW9yeV9pbnN0YW5jZSA9IDAsCj4+ICsgKiAgICAgIH07Cj4+ICsgKiAgICAgIHN0cnVjdCBkcm1f aTkxNV9nZW1fY3JlYXRlX2V4dF9tZW1vcnlfcmVnaW9ucyByZWdpb25zID0gewo+PiArICogICAg ICAgICAgICAgIC5iYXNlID0geyAubmFtZSA9IEk5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JF R0lPTlMgfSwKPj4gKyAqICAgICAgICAgICAgICAucmVnaW9ucyA9ICh1aW50cHRyX3QpJnJlZ2lv bl9sbWVtLAo+PiArICogICAgICAgICAgICAgIC5udW1fcmVnaW9ucyA9IDEsCj4+ICsgKiAgICAg IH07Cj4+ICsgKiAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlX2V4dCBjcmVhdGVfZXh0 ID0gewo+PiArICogICAgICAgICAgICAgIC5zaXplID0gMTYgKiBQQUdFX1NJWkUsCj4+ICsgKiAg ICAgICAgICAgICAgLmV4dGVuc2lvbnMgPSAodWludHB0cl90KSZyZWdpb25zLAo+PiArICogICAg ICB9Owo+PiArICoKPj4gKyAqICAgICAgaW50IGVyciA9IGlvY3RsKGZkLCBEUk1fSU9DVExfSTkx NV9HRU1fQ1JFQVRFX0VYVCwgJmNyZWF0ZV9leHQpOwo+PiArICogICAgICBpZiAoZXJyKSAuLi4K Pj4gKyAqCj4+ICsgKiBBdCB3aGljaCBwb2ludCB3ZSBnZXQgdGhlIG9iamVjdCBoYW5kbGUgaW4g JmRybV9pOTE1X2dlbV9jcmVhdGVfZXh0LmhhbmRsZSwKPj4gKyAqIGFsb25nIHdpdGggdGhlIGZp bmFsIG9iamVjdCBzaXplIGluICZkcm1faTkxNV9nZW1fY3JlYXRlX2V4dC5zaXplLCB3aGljaAo+ PiArICogc2hvdWxkIGFjY291bnQgZm9yIGFueSByb3VuZGluZyB1cCwgaWYgcmVxdWlyZWQuCj4+ ICsgKi8KPj4gK3N0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlX2V4dF9tZW1vcnlfcmVnaW9ucyB7 Cj4+ICsgICAgICAgLyoqIEBiYXNlOiBFeHRlbnNpb24gbGluay4gU2VlIHN0cnVjdCBpOTE1X3Vz ZXJfZXh0ZW5zaW9uLiAqLwo+PiArICAgICAgIHN0cnVjdCBpOTE1X3VzZXJfZXh0ZW5zaW9uIGJh c2U7Cj4+ICsKPj4gKyAgICAgICAvKiogQHBhZDogTUJaICovCj4+ICsgICAgICAgX191MzIgcGFk Owo+PiArICAgICAgIC8qKiBAbnVtX3JlZ2lvbnM6IE51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUg QHJlZ2lvbnMgYXJyYXkuICovCj4+ICsgICAgICAgX191MzIgbnVtX3JlZ2lvbnM7Cj4+ICsgICAg ICAgLyoqCj4+ICsgICAgICAgICogQHJlZ2lvbnM6IFRoZSByZWdpb25zL3BsYWNlbWVudHMgYXJy YXkuCj4+ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBBbiBhcnJheSBvZiBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZS4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBf X3U2NCByZWdpb25zOwo+PiArfTsKPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L3Jm Yy9pOTE1X2dlbV9sbWVtLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVt LnJzdAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjQ2MmYx ZWZkOTAwMwo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3JmYy9p OTE1X2dlbV9sbWVtLnJzdAo+PiBAQCAtMCwwICsxLDEzMCBAQAo+PiArPT09PT09PT09PT09PT09 PT09PT09PT09PQo+PiArSTkxNSBERzEvTE1FTSBSRkMgU2VjdGlvbgo+PiArPT09PT09PT09PT09 PT09PT09PT09PT09PQo+PiArCj4+ICtVcHN0cmVhbSBwbGFuCj4+ICs9PT09PT09PT09PT09Cj4+ ICtGb3IgdXBzdHJlYW0gdGhlIG92ZXJhbGwgcGxhbiBmb3IgbGFuZGluZyBhbGwgdGhlIERHMSBz dHVmZiBhbmQgdHVybmluZyBpdCBmb3IKPj4gK3JlYWwsIHdpdGggYWxsIHRoZSB1QVBJIGJpdHMg aXM6Cj4+ICsKPj4gKyogTWVyZ2UgYmFzaWMgSFcgZW5hYmxpbmcgb2YgREcxKHN0aWxsIHdpdGhv dXQgcGNpaWQpCj4+ICsqIE1lcmdlIHRoZSB1QVBJIGJpdHMgYmVoaW5kIHNwZWNpYWwgQ09ORklH X0JST0tFTihvciBzbykgZmxhZwo+PiArICAgICAgICAqIEF0IHRoaXMgcG9pbnQgd2UgY2FuIHN0 aWxsIG1ha2UgY2hhbmdlcywgYnV0IGltcG9ydGFudGx5IHRoaXMgbGV0cyB1cwo+PiArICAgICAg ICAgIHN0YXJ0IHJ1bm5pbmcgSUdUcyB3aGljaCBjYW4gdXRpbGl6ZSBsb2NhbC1tZW1vcnkgaW4g Q0kKPj4gKyogQ29udmVydCBvdmVyIHRvIFRUTSwgbWFrZSBzdXJlIGl0IGFsbCBrZWVwcyB3b3Jr aW5nLiBTb21lIG9mIHRoZSB3b3JrIGl0ZW1zOgo+PiArICAgICAgICAqIFRUTSBzaHJpbmtlciBm b3IgZGlzY3JldGUKPj4gKyAgICAgICAgKiBkbWFfcmVzdl9sb2NraXRlbSBmb3IgZnVsbCBkbWFf cmVzdl9sb2NrLCBpLmUgbm90IGp1c3QgdHJ5bG9jawo+PiArICAgICAgICAqIFVzZSBUVE0gQ1BV IHBhZ2VmYXVsdCBoYW5kbGVyCj4+ICsgICAgICAgICogUm91dGUgc2htZW0gYmFja2VuZCBvdmVy IHRvIFRUTSBTWVNURU0gZm9yIGRpc2NyZXRlCj4+ICsgICAgICAgICogVFRNIHB1cmdlYWJsZSBv YmplY3Qgc3VwcG9ydAo+PiArICAgICAgICAqIE1vdmUgaTkxNSBidWRkeSBhbGxvY2F0b3Igb3Zl ciB0byBUVE0KPj4gKyAgICAgICAgKiBNTUFQIGlvY3RsIG1vZGUoc2VlIGBJOTE1IE1NQVBgXykK Pj4gKyAgICAgICAgKiBTRVQvR0VUIGlvY3RsIGNhY2hpbmcoc2VlIGBJOTE1IFNFVC9HRVQgQ0FD SElOR2BfKQo+PiArKiBBZGQgcGNpaWQgZm9yIERHMSBhbmQgdHVybiBvbiB1QVBJIGZvciByZWFs Cj4gCj4gUGFydCBvZiB0aGlzIHByb2Nlc3Mgc2hvdWxkIGJlIGFub3RoZXIgUkZDIGUtbWFpbCwg Y2MnZCB0byBtZXNhLWRldgo+IGZvciBmaW5hbCBzaWduLW9mZiBiZWZvcmUgd2UgbG9jayB0aGUg QVBJIGRvd24uCgpEbyB5b3UgbWVhbiBmb3IgdGhlIGFjdHVhbCBwYXRjaGVzIHRoYXQgaW1wbGVt ZW50IHRoZSBwcm9wb3NlZCB1QVBJLCBvciAKYXJlIHlvdSByZWZlcnJpbmcgdG8gdGhpcyBkb2Mv cmZjIHBhdGNoPwoKPiAKPiAKPj4gKwo+PiArTmV3IG9iamVjdCBwbGFjZW1lbnQgYW5kIHJlZ2lv biBxdWVyeSB1QVBJCj4+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPj4gK1N0YXJ0aW5nIGZyb20gREcxIHdlIG5lZWQgdG8gZ2l2ZSB1c2Vyc3BhY2UgdGhlIGFi aWxpdHkgdG8gYWxsb2NhdGUgYnVmZmVycyBmcm9tCj4+ICtkZXZpY2UgbG9jYWwtbWVtb3J5LiBD dXJyZW50bHkgdGhlIGRyaXZlciBzdXBwb3J0cyBnZW1fY3JlYXRlLCB3aGljaCBjYW4gcGxhY2UK Pj4gK2J1ZmZlcnMgaW4gc3lzdGVtIG1lbW9yeSB2aWEgc2htZW0sIGFuZCB0aGUgdXN1YWwgYXNz b3J0bWVudCBvZiBvdGhlcgo+PiAraW50ZXJmYWNlcywgbGlrZSBkdW1iIGJ1ZmZlcnMgYW5kIHVz ZXJwdHIuCj4+ICsKPj4gK1RvIHN1cHBvcnQgdGhpcyBuZXcgY2FwYWJpbGl0eSwgd2hpbGUgYWxz byBwcm92aWRpbmcgYSB1QVBJIHdoaWNoIHdpbGwgd29yawo+PiArYmV5b25kIGp1c3QgREcxLCB3 ZSBwcm9wb3NlIHRvIG9mZmVyIHRocmVlIG5ldyBiaXRzIG9mIHVBUEk6Cj4+ICsKPj4gK0RSTV9J OTE1X1FVRVJZX01FTU9SWV9SRUdJT05TCj4+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+PiArTmV3IHF1ZXJ5IElEIHdoaWNoIGFsbG93cyB1c2Vyc3BhY2UgdG8gZGlzY292ZXIgdGhl IGxpc3Qgb2Ygc3VwcG9ydGVkIG1lbW9yeQo+PiArcmVnaW9ucyhsaWtlIHN5c3RlbS1tZW1vcnkg YW5kIGxvY2FsLW1lbW9yeSkgZm9yIGEgZ2l2ZW4gZGV2aWNlLiBXZSBpZGVudGlmeQo+PiArZWFj aCByZWdpb24gd2l0aCBhIGNsYXNzIGFuZCBpbnN0YW5jZSBwYWlyLCB3aGljaCBzaG91bGQgYmUg dW5pcXVlLiBUaGUgY2xhc3MKPj4gK2hlcmUgd291bGQgYmUgREVWSUNFIG9yIFNZU1RFTSwgYW5k IHRoZSBpbnN0YW5jZSB3b3VsZCBiZSB6ZXJvLCBvbiBwbGF0Zm9ybXMKPj4gK2xpa2UgREcxLgo+ PiArCj4+ICtTaWRlIG5vdGU6IFRoZSBjbGFzcy9pbnN0YW5jZSBkZXNpZ24gaXMgYm9ycm93ZWQg ZnJvbSBvdXIgZXhpc3RpbmcgZW5naW5lIHVBUEksCj4+ICt3aGVyZSB3ZSBkZXNjcmliZSBldmVy eSBwaHlzaWNhbCBlbmdpbmUgaW4gdGVybXMgb2YgaXRzIGNsYXNzLCBhbmQgdGhlCj4+ICtwYXJ0 aWN1bGFyIGluc3RhbmNlLCBzaW5jZSB3ZSBjYW4gaGF2ZSBtb3JlIHRoYW4gb25lIHBlciBjbGFz cy4KPj4gKwo+PiArSW4gdGhlIGZ1dHVyZSB3ZSBhbHNvIHdhbnQgdG8gZXhwb3NlIG1vcmUgaW5m b3JtYXRpb24gd2hpY2ggY2FuIGZ1cnRoZXIKPj4gK2Rlc2NyaWJlIHRoZSBjYXBhYmlsaXRpZXMg b2YgYSByZWdpb24uCj4+ICsKPj4gKy4uIGtlcm5lbC1kb2M6OiBEb2N1bWVudGF0aW9uL2dwdS9y ZmMvaTkxNV9nZW1fbG1lbS5oCj4+ICsgICAgICAgIDpmdW5jdGlvbnM6IGRybV9pOTE1X2dlbV9t ZW1vcnlfY2xhc3MgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSBkcm1faTkxNV9t ZW1vcnlfcmVnaW9uX2luZm8gZHJtX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbnMKPj4gKwo+PiAr R0VNX0NSRUFURV9FWFQKPj4gKy0tLS0tLS0tLS0tLS0tCj4+ICtOZXcgaW9jdGwgd2hpY2ggaXMg YmFzaWNhbGx5IGp1c3QgZ2VtX2NyZWF0ZSBidXQgbm93IGFsbG93cyB1c2Vyc3BhY2UgdG8KPj4g K3Byb3ZpZGUgYSBjaGFpbiBvZiBwb3NzaWJsZSBleHRlbnNpb25zLiBOb3RlIHRoYXQgaWYgd2Ug ZG9uJ3QgcHJvdmlkZSBhbnkKPj4gK2V4dGVuc2lvbnMgdGhlbiB3ZSBnZXQgdGhlIGV4YWN0IHNh bWUgYmVoYXZpb3VyIGFzIGdlbV9jcmVhdGUuCj4gCj4gImRvbid0IHByb3ZpZGUgYW55IGV4dGVu c2lvbnMgYW5kIHNldCBmbGFncz0wIgo+IAo+PiArCj4+ICtTaWRlIG5vdGU6IFdlIGFsc28gbmVl ZCB0byBzdXBwb3J0IFBYUFsxXSBpbiB0aGUgbmVhciBmdXR1cmUsIHdoaWNoIGlzIGFsc28KPj4g K2FwcGxpY2FibGUgdG8gaW50ZWdyYXRlZCBwbGF0Zm9ybXMsIGFuZCBhZGRzIGl0cyBvd24gZ2Vt X2NyZWF0ZV9leHQgZXh0ZW5zaW9uLAo+PiArd2hpY2ggYmFzaWNhbGx5IGxldHMgdXNlcnNwYWNl IG1hcmsgYSBidWZmZXIgYXMgInByb3RlY3RlZCIuCj4+ICsKPj4gKy4uIGtlcm5lbC1kb2M6OiBE b2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1fbG1lbS5oCj4+ICsgICAgICAgIDpmdW5jdGlv bnM6IGRybV9pOTE1X2dlbV9jcmVhdGVfZXh0Cj4+ICsKPj4gK0k5MTVfR0VNX0NSRUFURV9FWFRf TUVNT1JZX1JFR0lPTlMKPj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4g K0ltcGxlbWVudGVkIGFzIGFuIGV4dGVuc2lvbiBmb3IgZ2VtX2NyZWF0ZV9leHQsIHdlIHdvdWxk IG5vdyBhbGxvdyB1c2Vyc3BhY2UgdG8KPj4gK29wdGlvbmFsbHkgcHJvdmlkZSBhbiBpbW11dGFi bGUgbGlzdCBvZiBwcmVmZXJyZWQgcGxhY2VtZW50cyBhdCBjcmVhdGlvbiB0aW1lLAo+PiAraW4g cHJpb3JpdHkgb3JkZXIsIGZvciBhIGdpdmVuIGJ1ZmZlciBvYmplY3QuICBGb3IgdGhlIHBsYWNl bWVudHMgd2UgZXhwZWN0Cj4+ICt0aGVtIGVhY2ggdG8gdXNlIHRoZSBjbGFzcy9pbnN0YW5jZSBl bmNvZGluZywgYXMgcGVyIHRoZSBvdXRwdXQgb2YgdGhlIHJlZ2lvbnMKPj4gK3F1ZXJ5LiBIYXZp bmcgdGhlIGxpc3QgaW4gcHJpb3JpdHkgb3JkZXIgd2lsbCBiZSB1c2VmdWwgaW4gdGhlIGZ1dHVy ZSB3aGVuCj4+ICtwbGFjaW5nIGFuIG9iamVjdCwgc2F5IGR1cmluZyBldmljdGlvbi4KPj4gKwo+ PiArLi4ga2VybmVsLWRvYzo6IERvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgK Pj4gKyAgICAgICAgOmZ1bmN0aW9uczogZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHRfbWVtb3J5X3Jl Z2lvbnMKPj4gKwo+PiArT25lIGZhaXIgY3JpdGljaXNtIGhlcmUgaXMgdGhhdCB0aGlzIHNlZW1z IGEgbGl0dGxlIG92ZXItZW5naW5lZXJlZFsyXS4gSWYgd2UKPj4gK2p1c3QgY29uc2lkZXIgREcx IHRoZW4geWVzLCBhIHNpbXBsZSBnZW1fY3JlYXRlLmZsYWdzIG9yIHNvbWV0aGluZyBpcyB0b3Rh bGx5Cj4+ICthbGwgdGhhdCdzIG5lZWRlZCB0byB0ZWxsIHRoZSBrZXJuZWwgdG8gYWxsb2NhdGUg dGhlIGJ1ZmZlciBpbiBsb2NhbC1tZW1vcnkgb3IKPj4gK3doYXRldmVyLiBIb3dldmVyIGxvb2tp bmcgdG8gdGhlIGZ1dHVyZSB3ZSBuZWVkIHVBUEkgd2hpY2ggY2FuIGFsc28gc3VwcG9ydAo+PiAr dXBjb21pbmcgWGUgSFAgbXVsdGktdGlsZSBhcmNoaXRlY3R1cmUgaW4gYSBzYW5lIHdheSwgd2hl cmUgdGhlcmUgY2FuIGJlCj4+ICttdWx0aXBsZSBsb2NhbC1tZW1vcnkgaW5zdGFuY2VzIGZvciBh IGdpdmVuIGRldmljZSwgYW5kIHNvIHVzaW5nIGJvdGggY2xhc3MgYW5kCj4+ICtpbnN0YW5jZSBp biBvdXIgdUFQSSB0byBkZXNjcmliZSByZWdpb25zIGlzIGRlc2lyYWJsZSwgYWx0aG91Z2ggc3Bl Y2lmaWNhbGx5Cj4+ICtmb3IgREcxIGl0J3MgdW5pbnRlcmVzdGluZywgc2luY2Ugd2Ugb25seSBo YXZlIGEgc2luZ2xlIGxvY2FsLW1lbW9yeSBpbnN0YW5jZS4KPj4gKwo+PiArRXhpc3RpbmcgdUFQ SSBpc3N1ZXMKPj4gKz09PT09PT09PT09PT09PT09PT09Cj4+ICtTb21lIHBvdGVudGlhbCBpc3N1 ZXMgd2Ugc3RpbGwgbmVlZCB0byByZXNvbHZlLgo+PiArCj4+ICtJOTE1IE1NQVAKPj4gKy0tLS0t LS0tLQo+PiArSW4gaTkxNSB0aGVyZSBhcmUgbXVsdGlwbGUgd2F5cyB0byBNTUFQIEdFTSBvYmpl Y3QsIGluY2x1ZGluZyBtYXBwaW5nIHRoZSBzYW1lCj4+ICtvYmplY3QgdXNpbmcgZGlmZmVyZW50 IG1hcHBpbmcgdHlwZXMoV0MgdnMgV0IpLCBpLmUgbXVsdGlwbGUgYWN0aXZlIG1tYXBzIHBlcgo+ PiArb2JqZWN0LiBUVE0gZXhwZWN0cyBvbmUgTU1BUCBhdCBtb3N0IGZvciB0aGUgbGlmZXRpbWUg b2YgdGhlIG9iamVjdC4gSWYgaXQKPj4gK3R1cm5zIG91dCB0aGF0IHdlIGhhdmUgdG8gYmFja3Bl ZGFsIGhlcmUsIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcG90ZW50aWFsCj4+ICt1c2Vyc3BhY2UgZmFs bG91dC4KPj4gKwo+PiArSTkxNSBTRVQvR0VUIENBQ0hJTkcKPj4gKy0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+ICtJbiBpOTE1IHdlIGhhdmUgc2V0L2dldF9jYWNoaW5nIGlvY3RsLiBUVE0gZG9lc24n dCBsZXQgdXMgdG8gY2hhbmdlIHRoaXMsIGJ1dAo+PiArREcxIGRvZXNuJ3Qgc3VwcG9ydCBub24t c25vb3BlZCBwY2llIHRyYW5zYWN0aW9ucywgc28gd2UgY2FuIGp1c3QgYWx3YXlzCj4+ICthbGxv Y2F0ZSBhcyBXQiBmb3Igc21lbS1vbmx5IGJ1ZmZlcnMuICBJZi93aGVuIG91ciBodyBnYWlucyBz dXBwb3J0IGZvcgo+PiArbm9uLXNub29wZWQgcGNpZSB0cmFuc2FjdGlvbnMgdGhlbiB3ZSBtdXN0 IGZpeCB0aGlzIG1vZGUgYXQgYWxsb2NhdGlvbiB0aW1lIGFzCj4+ICthIG5ldyBHRU0gZXh0ZW5z aW9uLgo+IAo+ICBGcm9tIHRoZSBNZXNhIFBvViB0aGlzIHNob3VsZCBtb3N0bHkgYmUgZmluZS4g IEluIFZ1bGthbiwgd2Ugb25seSBldmVyCj4gU0VUX0NBQ0hJTkcgcmlnaHQgYWZ0ZXIgQk8gY3Jl YXRpb24uICBJbiBHTCwgd2UgZG8gU0VUX0NBQ0hJTkcKPiBtdWx0aXBsZSB0aW1lcyBvbiBhIEJP IGJ1dCwgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgdGhlIGlyaXNfYnVmbWdyCj4gQVBJLCBpdCBo YXBwZW5zIG9uIEJPIGNyZWF0aW9uLiAgV2Ugb25seSBTRVRfQ0FDSElORyBpZiB3ZSBwdWxsIGEg Qk8KPiBvdXQgb2Ygb3VyIGludGVybmFsIGNhY2hlIHdpdGggdGhlIHdyb25nIGNhY2hpbmcgc2V0 dGluZy4gIFRoZSBNZXNhCj4gZml4IGlzIHByZXR0eSBzaW1wbGU6ICBqdXN0IGFkZCBjYWNoaW5n IHRvIHRoZSBrZXkgd2UgdXNlIGZvciBvdXIKPiBpbnRlcm5hbCBCTyBjYWNoZS4gIFdlIGNhbid0 IGRvIHRoYXQgcmV0cm9hY3RpdmVseSwgb2YgY291cnNlLCBidXQgd2UKPiBjYW4gZmFpcmx5IGVh c2lseSBkbyBpdCBmb3IgYWxsIExNRU0gcGxhdGZvcm1zIGdvaW5nIGZvcndhcmQuCgpTbGlnaHRs eSBvcnRob2dvbmFsOiB3aGF0IGRvZXMgTWVzYSBkbyBoZXJlIGZvciBzbm9vcGVkIHZzIExMQyAK cGxhdGZvcm1zPyBEb2VzIGl0IG1ha2Ugc3VjaCBhIGRpc3RpbmN0aW9uPyBKdXN0IGN1cmlvdXMu Cgo+IAo+PiArCj4+ICtUaGlzIGlzIHJlbGF0ZWQgdG8gdGhlIG1tYXAgcHJvYmxlbSwgYmVjYXVz ZSBpbiBnZW5lcmFsIChtZWFuaW5nLCB3aGVuIHdlJ3JlCj4+ICtub3QgcnVubmluZyBvbiBpbnRl bCBjcHVzKSB0aGUgY3B1IG1tYXAgbXVzdCBub3QsIGV2ZXIsIGJlIGluY29uc2lzdGVudCB3aXRo Cj4+ICthbGxvY2F0aW9uIG1vZGUuCj4+ICsKPj4gK1Bvc3NpYmxlIGlkZWEgaXMgdG8gbGV0IHRo ZSBrZXJuZWwgcGlja3MgdGhlIG1tYXAgbW9kZSBmb3IgdXNlcnNwYWNlIGZyb20gdGhlCj4+ICtm b2xsb3dpbmcgdGFibGU6Cj4+ICsKPj4gK3NtZW0tb25seTogV0IuIFVzZXJzcGFjZSBkb2VzIG5v dCBuZWVkIHRvIGNhbGwgY2xmbHVzaC4KPj4gKwo+PiArc21lbStsbWVtOiBXZSBhbGxvY2F0ZSB1 bmNhY2hlZCBtZW1vcnksIGFuZCBnaXZlIHVzZXJzcGFjZSBhIFdDIG1hcHBpbmcKPj4gK2ZvciB3 aGVuIHRoZSBidWZmZXIgaXMgaW4gc21lbSwgYW5kIFdDIHdoZW4gaXQncyBpbiBsbWVtLiBHUFUg ZG9lcyBzbm9vcGVkCj4+ICthY2Nlc3MsIHdoaWNoIGlzIGEgYml0IGluZWZmaWNpZW50Lgo+PiAr Cj4+ICtsbWVtIG9ubHk6IGFsd2F5cyBXQwo+PiArCj4+ICtUaGlzIG1lYW5zIG9uIGRpc2NyZXRl IHlvdSBvbmx5IGdldCBhIHNpbmdsZSBtbWFwIG1vZGUsIGFsbCBvdGhlcnMgbXVzdCBiZQo+PiAr cmVqZWN0ZWQuIFRoYXQncyBwcm9iYWJseSBnb2luZyB0byBiZSBhIG5ldyBkZWZhdWx0IG1vZGUg b3Igc29tZXRoaW5nIGxpa2UKPj4gK3RoYXQuCj4gCj4gU2VlbXMgcmVhc29uYWJsZSBmb3Igbm93 LCBJIHRoaW5rLiAgQWdhaW4sIHdlIGNhbid0IGFwcGx5IGl0Cj4gcmV0cm9hY3RpdmVseSB0byBv bGQgTWVzYSBkcml2ZXJzIHRoYXQgaGF2ZSBhbHJlYWR5IHNoaXBwZWQgYnV0IEkKPiBkb24ndCBz ZWUgd2h5IHdlIGNhbid0IGRvIHRoaXMgZ29pbmcgZm9yd2FyZC4gIFdlIGNhbiBhbHNvIGFkZCBh Cj4gY3JlYXRlIGZsYWcgZm9yIGNoYW5naW5nIGNhY2hpbmcgc2V0dGluZ3MuCj4gCj4gLS1KYXNv bgo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 85032C433ED for ; Wed, 28 Apr 2021 16:41:52 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1BF7660E08 for ; Wed, 28 Apr 2021 16:41:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1BF7660E08 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4934D6EBD0; Wed, 28 Apr 2021 16:41:45 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 293C56EBB7; Wed, 28 Apr 2021 16:41:42 +0000 (UTC) IronPort-SDR: /QtQMJb2MOpYGZ+2HaaNUJxEYlH+BbdYyDei+kUAgzExycVoDjPAdRF4AGas47U2UAEDeho1do rEFV80iqEdyw== X-IronPort-AV: E=McAfee;i="6200,9189,9968"; a="217508859" X-IronPort-AV: E=Sophos;i="5.82,258,1613462400"; d="scan'208";a="217508859" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2021 09:41:23 -0700 IronPort-SDR: py7HQunuNKLFv9IwoC74WJqpMMv1kNgwC2ZcDJRKqcy8vJRAPyHuBI3BK5SFTGOa2+3tnZ/qMA mfPoGOJeLutQ== X-IronPort-AV: E=Sophos;i="5.82,258,1613462400"; d="scan'208";a="403747152" Received: from gstedje-mobl2.ger.corp.intel.com (HELO [10.252.13.124]) ([10.252.13.124]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2021 09:41:19 -0700 To: Jason Ekstrand References: <20210426093901.28937-1-matthew.auld@intel.com> From: Matthew Auld Message-ID: Date: Wed, 28 Apr 2021 17:41:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-GB Subject: Re: [Intel-gfx] [PATCH 1/9] drm/doc/rfc: i915 DG1 uAPI X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lionel Landwerlin , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , Dave Airlie , Intel GFX , Maling list - DRI developers , Daniel Vetter , Kenneth Graunke , ML mesa-dev , Daniel Vetter Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gMjgvMDQvMjAyMSAxNjo1MSwgSmFzb24gRWtzdHJhbmQgd3JvdGU6Cj4gT24gTW9uLCBBcHIg MjYsIDIwMjEgYXQgNDo0MiBBTSBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+ IHdyb3RlOgo+Pgo+PiBBZGQgYW4gZW50cnkgZm9yIHRoZSBuZXcgdUFQSSBuZWVkZWQgZm9yIERH MS4gQWxzbyBhZGQgdGhlIG92ZXJhbGwKPj4gdXBzdHJlYW0gcGxhbiwgaW5jbHVkaW5nIHNvbWUg bm90ZXMgZm9yIHRoZSBUVE0gY29udmVyc2lvbi4KPj4KPj4gdjIoRGFuaWVsKToKPj4gICAgLSBp bmNsdWRlIHRoZSBvdmVyYWxsIHVwc3RyZWFtaW5nIHBsYW4KPj4gICAgLSBhZGQgYSBub3RlIGZv ciBtbWFwLCB0aGVyZSBhcmUgZGlmZmVyZW5jZXMgaGVyZSBmb3IgVFRNIHZzIGk5MTUKPj4gICAg LSBidW5jaCBvZiBvdGhlciBzdWdnZXN0aW9ucyBmcm9tIERhbmllbAo+PiB2MzoKPj4gICAoRGFu aWVsKQo+PiAgICAtIGFkZCBhIG5vdGUgZm9yIHNldC9nZXQgY2FjaGluZyBzdHVmZgo+PiAgICAt IGFkZCBzb21lIG1vcmUgZG9jcyBmb3IgZXhpc3RpbmcgcXVlcnkgYW5kIGV4dGVuc2lvbnMgc3R1 ZmYKPj4gICAgLSBhZGQgYW4gYWN0dWFsIGNvZGUgZXhhbXBsZSBmb3IgcmVnaW9ucyBxdWVyeQo+ PiAgICAtIGJ1bmNoIG9mIG90aGVyIHN0dWZmCj4+ICAgKEphc29uKQo+PiAgICAtIHVBUEkgY2hh bmdlKCEpOgo+PiAgICAgICAgICAtIHRyeSBhIHNpbXBsZXIgZGVzaWduIHdpdGggdGhlIHBsYWNl bWVudHMgZXh0ZW5zaW9uCj4+ICAgICAgICAgIC0gcmF0aGVyIHRoYW4gaGF2ZSBhIGdlbmVyaWMg c2V0cGFyYW0gd2hpY2ggY2FuIGNvdmVyIG11bHRpcGxlCj4+ICAgICAgICAgICAgdXNlIGNhc2Vz LCBoYXZlIGVhY2ggZXh0ZW5zaW9uIGJlIHJlc3BvbnNpYmxlIGZvciBvbmUgdGhpbmcKPj4gICAg ICAgICAgICBvbmx5Cj4+IHY0Ogo+PiAgIChEYW5pZWwpCj4+ICAgIC0gYWRkIHNvbWUgbW9yZSBu b3RlcyBmb3IgdHRtIGNvbnZlcnNpb24KPj4gICAgLSBidW5jaCBvZiBvdGhlciBzdHVmZgo+PiAg IChKYXNvbikKPj4gICAgLSB1QVBJIGNoYW5nZSghKToKPj4gICAgICAgICAgLSBkcm9wIGFsbCB0 aGUgZXh0cmEgcnN2ZCBtZW1iZXJzIGZvciB0aGUgcmVnaW9uX3F1ZXJ5IGFuZAo+PiAgICAgICAg ICAgIHJlZ2lvbl9pbmZvLCBqdXN0IGtlZXAgdGhlIGJhcmUgbWluaW11bSBuZWVkZWQgZm9yIHBh ZGRpbmcKPj4KPj4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50 ZWwuY29tPgo+PiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50 ZWwuY29tPgo+PiBDYzogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXgu aW50ZWwuY29tPgo+PiBDYzogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xv c3B1cmlvQGludGVsLmNvbT4KPj4gQ2M6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5k d2VybGluQGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6IEpvbiBCbG9vbWZpZWxkIDxqb24uYmxvb21m aWVsZEBpbnRlbC5jb20+Cj4+IENjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4ubC5qdXN0ZW5AaW50 ZWwuY29tPgo+PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4+ IENjOiBLZW5uZXRoIEdyYXVua2UgPGtlbm5ldGhAd2hpdGVjYXBlLm9yZz4KPj4gQ2M6IEphc29u IEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5kLm5ldD4KPj4gQ2M6IERhdmUgQWlybGllIDxhaXJs aWVkQGdtYWlsLmNvbT4KPj4gQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4g Q2M6IG1lc2EtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBBY2tlZC1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPj4gQWNrZWQtYnk6IERhdmUgQWlybGllIDxh aXJsaWVkQHJlZGhhdC5jb20+Cj4+IC0tLQo+PiAgIERvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1 X2dlbV9sbWVtLmggICB8IDIxMiArKysrKysrKysrKysrKysrKysrKysrKysKPj4gICBEb2N1bWVu dGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1fbG1lbS5yc3QgfCAxMzAgKysrKysrKysrKysrKysrCj4+ ICAgRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2luZGV4LnJzdCAgICAgICAgIHwgICA0ICsKPj4gICAz IGZpbGVzIGNoYW5nZWQsIDM0NiBpbnNlcnRpb25zKCspCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IERvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgKPj4gICBjcmVhdGUgbW9kZSAx MDA2NDQgRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0ucnN0Cj4+Cj4+IGRpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1fbG1lbS5oIGIvRG9jdW1lbnRh dGlvbi9ncHUvcmZjL2k5MTVfZ2VtX2xtZW0uaAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBp bmRleCAwMDAwMDAwMDAwMDAuLjdlZDU5YjYyMDJkNQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBi L0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgKPj4gQEAgLTAsMCArMSwyMTIg QEAKPj4gKy8qKgo+PiArICogZW51bSBkcm1faTkxNV9nZW1fbWVtb3J5X2NsYXNzIC0gU3VwcG9y dGVkIG1lbW9yeSBjbGFzc2VzCj4+ICsgKi8KPj4gK2VudW0gZHJtX2k5MTVfZ2VtX21lbW9yeV9j bGFzcyB7Cj4+ICsgICAgICAgLyoqIEBJOTE1X01FTU9SWV9DTEFTU19TWVNURU06IFN5c3RlbSBt ZW1vcnkgKi8KPj4gKyAgICAgICBJOTE1X01FTU9SWV9DTEFTU19TWVNURU0gPSAwLAo+PiArICAg ICAgIC8qKiBASTkxNV9NRU1PUllfQ0xBU1NfREVWSUNFOiBEZXZpY2UgbG9jYWwtbWVtb3J5ICov Cj4+ICsgICAgICAgSTkxNV9NRU1PUllfQ0xBU1NfREVWSUNFLAo+PiArfTsKPj4gKwo+PiArLyoq Cj4+ICsgKiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSAtIElkZW50 aWZ5IHBhcnRpY3VsYXIgbWVtb3J5IHJlZ2lvbgo+PiArICovCj4+ICtzdHJ1Y3QgZHJtX2k5MTVf Z2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSB7Cj4+ICsgICAgICAgLyoqIEBtZW1vcnlfY2xhc3M6 IFNlZSBlbnVtIGRybV9pOTE1X2dlbV9tZW1vcnlfY2xhc3MgKi8KPj4gKyAgICAgICBfX3UxNiBt ZW1vcnlfY2xhc3M7Cj4+ICsKPj4gKyAgICAgICAvKiogQG1lbW9yeV9pbnN0YW5jZTogV2hpY2gg aW5zdGFuY2UgKi8KPj4gKyAgICAgICBfX3UxNiBtZW1vcnlfaW5zdGFuY2U7Cj4+ICt9Owo+PiAr Cj4+ICsvKioKPj4gKyAqIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2luZm8gLSBEZXNj cmliZXMgb25lIHJlZ2lvbiBhcyBrbm93biB0byB0aGUKPj4gKyAqIGRyaXZlci4KPj4gKyAqCj4+ ICsgKiBOb3RlIHRoYXQgd2UgcmVzZXJ2ZSBzb21lIHN0dWZmIGhlcmUgZm9yIHBvdGVudGlhbCBm dXR1cmUgd29yay4gQXMgYW4gZXhhbXBsZQo+PiArICogd2UgbWlnaHQgd2FudCBleHBvc2UgdGhl IGNhcGFiaWxpdGllcyhzZWUgQGNhcHMpIGZvciBhIGdpdmVuIHJlZ2lvbiwgd2hpY2gKPj4gKyAq IGNvdWxkIGluY2x1ZGUgdGhpbmdzIGxpa2UgaWYgdGhlIHJlZ2lvbiBpcyBDUFUgbWFwcGFibGUv YWNjZXNzaWJsZSwgd2hhdCBhcmUKPj4gKyAqIHRoZSBzdXBwb3J0ZWQgbWFwcGluZyB0eXBlcyBl dGMuCj4+ICsgKgo+PiArICogTm90ZSB0aGlzIGlzIHVzaW5nIGJvdGggc3RydWN0IGRybV9pOTE1 X3F1ZXJ5X2l0ZW0gYW5kIHN0cnVjdCBkcm1faTkxNV9xdWVyeS4KPj4gKyAqIEZvciB0aGlzIG5l dyBxdWVyeSB3ZSBhcmUgYWRkaW5nIHRoZSBuZXcgcXVlcnkgaWQgRFJNX0k5MTVfUVVFUllfTUVN T1JZX1JFR0lPTlMKPj4gKyAqIGF0ICZkcm1faTkxNV9xdWVyeV9pdGVtLnF1ZXJ5X2lkLgo+PiAr ICovCj4+ICtzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHsKPj4gKyAgICAgICAv KiogQHJlZ2lvbjogVGhlIGNsYXNzOmluc3RhbmNlIHBhaXIgZW5jb2RpbmcgKi8KPj4gKyAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSByZWdpb247Cj4+ICsK Pj4gKyAgICAgICAvKiogQHBhZDogTUJaICovCj4+ICsgICAgICAgX191MzIgcGFkOwo+PiArCj4+ ICsgICAgICAgLyoqIEBjYXBzOiBNQlogKi8KPj4gKyAgICAgICBfX3U2NCBjYXBzOwo+IAo+IEFz IHdhcyBjb21tZW50ZWQgb24gYW5vdGhlciB0aHJlYWQgc29tZXdoZXJlLCBpZiB3ZSdyZSBnb2lu ZyB0byBoYXZlCj4gY2Fwcywgd2Ugc2hvdWxkIGhhdmUgYW5vdGhlciBfX3U2NCBzdXBwb3J0ZWRf Y2FwcyB3aGljaCB0ZWxscwo+IHVzZXJzcGFjZSB3aGF0IGNhcHMgdGhlIGtlcm5lbCBpcyBjYXBh YmxlIG9mIGFkdmVydGlzaW5nLiAgVGhhdCB3YXkKPiB1c2Vyc3BhY2UgY2FuIHRlbGwgdGhlIGRp ZmZlcmVuY2UgYmV0d2VlbiBhIGtlcm5lbCB3aGljaCBkb2Vzbid0Cj4gYWR2ZXJ0aXNlIGEgY2Fw IGFuZCBhIGtlcm5lbCB3aGljaCBjYW4gYWR2ZXJ0aXNlIHRoZSBjYXAgYnV0IHdoZXJlIHRoZQo+ IGNhcCBpc24ndCBzdXBwb3J0ZWQuCgpZZWFoLCBteSBwbGFuIHdhcyB0byBqdXN0IGdvIHdpdGgg cnN2ZFtdLCBzbyBkcm9wIHRoZSBmbGFncy9jYXBzIGZvciAKbm93LCBhbmQgYWRkIGEgY29tbWVu dC9leGFtcGxlIGZvciBob3cgd2UgcGxhbiB0byBleHRlbmQgdGhpcyBpbiB0aGUgCmZ1dHVyZSh1 c2luZyB5b3VyIHVuaW9uICsgYXJyYXkgdHJpY2spLiBIb3BlZnVsbHkgdGhhdCdzIHJlYXNvbmFi bGUuCgo+IAo+PiArCj4+ICsgICAgICAgLyoqIEBwcm9iZWRfc2l6ZTogTWVtb3J5IHByb2JlZCBi eSB0aGUgZHJpdmVyICgtMSA9IHVua25vd24pICovCj4+ICsgICAgICAgX191NjQgcHJvYmVkX3Np emU7Cj4+ICsKPj4gKyAgICAgICAvKiogQHVuYWxsb2NhdGVkX3NpemU6IEVzdGltYXRlIG9mIG1l bW9yeSByZW1haW5pbmcgKC0xID0gdW5rbm93bikgKi8KPj4gKyAgICAgICBfX3U2NCB1bmFsbG9j YXRlZF9zaXplOwo+PiArfTsKPj4gKwo+PiArLyoqCj4+ICsgKiBzdHJ1Y3QgZHJtX2k5MTVfcXVl cnlfbWVtb3J5X3JlZ2lvbnMKPj4gKyAqCj4+ICsgKiBUaGUgcmVnaW9uIGluZm8gcXVlcnkgZW51 bWVyYXRlcyBhbGwgcmVnaW9ucyBrbm93biB0byB0aGUgZHJpdmVyIGJ5IGZpbGxpbmcKPj4gKyAq IGluIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2luZm8gc3RydWN0 dXJlcy4KPj4gKyAqCj4+ICsgKiBFeGFtcGxlIGZvciBnZXR0aW5nIHRoZSBsaXN0IG9mIHN1cHBv cnRlZCByZWdpb25zOgo+PiArICoKPj4gKyAqIC4uIGNvZGUtYmxvY2s6OiBDCj4+ICsgKgo+PiAr ICogICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyAqaW5mbzsKPj4gKyAq ICAgICBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSBpdGVtID0gewo+PiArICogICAgICAgICAg ICAgLnF1ZXJ5X2lkID0gRFJNX0k5MTVfUVVFUllfTUVNT1JZX1JFR0lPTlM7Cj4+ICsgKiAgICAg fTsKPj4gKyAqICAgICBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgcXVlcnkgPSB7Cj4+ICsgKiAgICAg ICAgICAgICAubnVtX2l0ZW1zID0gMSwKPj4gKyAqICAgICAgICAgICAgIC5pdGVtc19wdHIgPSAo dWludHB0cl90KSZpdGVtLAo+PiArICogICAgIH07Cj4+ICsgKiAgICAgaW50IGVyciwgaTsKPj4g KyAqCj4+ICsgKiAgICAgLy8gRmlyc3QgcXVlcnkgdGhlIHNpemUgb2YgdGhlIGJsb2Igd2UgbmVl ZCwgdGhpcyBuZWVkcyB0byBiZSBsYXJnZQo+PiArICogICAgIC8vIGVub3VnaCB0byBob2xkIG91 ciBhcnJheSBvZiByZWdpb25zLiBUaGUga2VybmVsIHdpbGwgZmlsbCBvdXQgdGhlCj4+ICsgKiAg ICAgLy8gaXRlbS5sZW5ndGggZm9yIHVzLCB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdl IG5lZWQuCj4+ICsgKiAgICAgZXJyID0gaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X1FVRVJZLCAm cXVlcnkpOwo+PiArICogICAgIGlmIChlcnIpIC4uLgo+PiArICoKPj4gKyAqICAgICBpbmZvID0g Y2FsbG9jKDEsIGl0ZW0ubGVuZ3RoKTsKPj4gKyAqICAgICAvLyBOb3cgdGhhdCB3ZSBhbGxvY2F0 ZWQgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBieXRlcywgd2UgY2FsbCB0aGUgaW9jdGwKPj4gKyAq ICAgICAvLyBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggdGhlIGRhdGFfcHRyIHBvaW50aW5nIHRvIG91 ciBuZXdseSBhbGxvY2F0ZWQKPj4gKyAqICAgICAvLyBibG9iLCB3aGljaCB0aGUga2VybmVsIGNh biB0aGVuIHBvcHVsYXRlIHdpdGggdGhlIGFsbCB0aGUgcmVnaW9uIGluZm8uCj4+ICsgKiAgICAg aXRlbS5kYXRhX3B0ciA9ICh1aW50cHRyX3QpJmluZm8sCj4+ICsgKgo+PiArICogICAgIGVyciA9 IGlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9RVUVSWSwgJnF1ZXJ5KTsKPj4gKyAqICAgICBpZiAo ZXJyKSAuLi4KPj4gKyAqCj4+ICsgKiAgICAgLy8gV2UgY2FuIG5vdyBhY2Nlc3MgZWFjaCByZWdp b24gaW4gdGhlIGFycmF5Cj4+ICsgKiAgICAgZm9yIChpID0gMDsgaSA8IGluZm8tPm51bV9yZWdp b25zOyBpKyspIHsKPj4gKyAqICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVn aW9uX2luZm8gbXIgPSBpbmZvLT5yZWdpb25zW2ldOwo+PiArICogICAgICAgICAgICAgdTE2IGNs YXNzID0gbXIucmVnaW9uLmNsYXNzOwo+PiArICogICAgICAgICAgICAgdTE2IGluc3RhbmNlID0g bXIucmVnaW9uLmluc3RhbmNlOwo+PiArICoKPj4gKyAqICAgICAgICAgICAgIC4uLi4KPj4gKyAq ICAgICB9Cj4+ICsgKgo+PiArICogICAgIGZyZWUoaW5mbyk7Cj4+ICsgKi8KPj4gK3N0cnVjdCBk cm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9ucyB7Cj4+ICsgICAgICAgLyoqIEBudW1fcmVnaW9u czogTnVtYmVyIG9mIHN1cHBvcnRlZCByZWdpb25zICovCj4+ICsgICAgICAgX191MzIgbnVtX3Jl Z2lvbnM7Cj4+ICsKPj4gKyAgICAgICAvKiogQHBhZDogTUJaICovCj4+ICsgICAgICAgX191MzIg cGFkOwo+PiArCj4+ICsgICAgICAgLyoqIEByZWdpb25zOiBJbmZvIGFib3V0IGVhY2ggc3VwcG9y dGVkIHJlZ2lvbiAqLwo+PiArICAgICAgIHN0cnVjdCBkcm1faTkxNV9tZW1vcnlfcmVnaW9uX2lu Zm8gcmVnaW9uc1tdOwo+PiArfTsKPj4gKwo+PiArI2RlZmluZSBEUk1fSTkxNV9HRU1fQ1JFQVRF X0VYVCAgICAgICAgICAgICAgICAweGRlYWRiZWFmCj4+ICsjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X0dFTV9DUkVBVEVfRVhUICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VN X0NSRUFURV9FWFQsIHN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlX2V4dCkKPj4gKwo+PiArLyoq Cj4+ICsgKiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHQgLSBFeGlzdGluZyBnZW1fY3Jl YXRlIGJlaGF2aW91ciwgd2l0aCBhZGRlZAo+PiArICogZXh0ZW5zaW9uIHN1cHBvcnQgdXNpbmcg c3RydWN0IGk5MTVfdXNlcl9leHRlbnNpb24uCj4+ICsgKgo+PiArICogTm90ZSB0aGF0IGluIHRo ZSBmdXR1cmUgd2Ugd2FudCB0byBoYXZlIG91ciBidWZmZXIgZmxhZ3MgaGVyZSwgYXQgbGVhc3Qg Zm9yCj4+ICsgKiB0aGUgc3R1ZmYgdGhhdCBpcyBpbW11dGFibGUuIFByZXZpb3VzbHkgd2Ugd291 bGQgaGF2ZSB0d28gaW9jdGxzLCBvbmUgdG8KPj4gKyAqIGNyZWF0ZSB0aGUgb2JqZWN0IHdpdGgg Z2VtX2NyZWF0ZSwgYW5kIGFub3RoZXIgdG8gYXBwbHkgdmFyaW91cyBwYXJhbWV0ZXJzLAo+PiAr ICogaG93ZXZlciB0aGlzIGNyZWF0ZXMgc29tZSBhbWJpZ3VpdHkgZm9yIHRoZSBwYXJhbXMgd2hp Y2ggYXJlIGNvbnNpZGVyZWQKPj4gKyAqIGltbXV0YWJsZS4gQWxzbyBpbiBnZW5lcmFsIHdlJ3Jl IHBoYXNpbmcgb3V0IHRoZSB2YXJpb3VzIFNFVC9HRVQgaW9jdGxzLgo+PiArICovCj4+ICtzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHQgewo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAq IEBzaXplOiBSZXF1ZXN0ZWQgc2l6ZSBmb3IgdGhlIG9iamVjdC4KPj4gKyAgICAgICAgKgo+PiAr ICAgICAgICAqIFRoZSAocGFnZS1hbGlnbmVkKSBhbGxvY2F0ZWQgc2l6ZSBmb3IgdGhlIG9iamVj dCB3aWxsIGJlIHJldHVybmVkLgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogTm90ZSB0aGF0 IGZvciBzb21lIGRldmljZXMgd2UgaGF2ZSBtaWdodCBoYXZlIGZ1cnRoZXIgbWluaW11bQo+PiAr ICAgICAgICAqIHBhZ2Utc2l6ZSByZXN0cmljdGlvbnMobGFyZ2VyIHRoYW4gNEspLCBsaWtlIGZv ciBkZXZpY2UgbG9jYWwtbWVtb3J5Lgo+PiArICAgICAgICAqIEhvd2V2ZXIgaW4gZ2VuZXJhbCB0 aGUgZmluYWwgc2l6ZSBoZXJlIHNob3VsZCBhbHdheXMgcmVmbGVjdCBhbnkKPj4gKyAgICAgICAg KiByb3VuZGluZyB1cCwgaWYgZm9yIGV4YW1wbGUgdXNpbmcgdGhlIEk5MTVfR0VNX0NSRUFURV9F WFRfTUVNT1JZX1JFR0lPTlMKPj4gKyAgICAgICAgKiBleHRlbnNpb24gdG8gcGxhY2UgdGhlIG9i amVjdCBpbiBkZXZpY2UgbG9jYWwtbWVtb3J5Lgo+PiArICAgICAgICAqLwo+PiArICAgICAgIF9f dTY0IHNpemU7Cj4+ICsgICAgICAgLyoqCj4+ICsgICAgICAgICogQGhhbmRsZTogUmV0dXJuZWQg aGFuZGxlIGZvciB0aGUgb2JqZWN0Lgo+PiArICAgICAgICAqCj4+ICsgICAgICAgICogT2JqZWN0 IGhhbmRsZXMgYXJlIG5vbnplcm8uCj4+ICsgICAgICAgICovCj4+ICsgICAgICAgX191MzIgaGFu ZGxlOwo+PiArICAgICAgIC8qKiBAZmxhZ3M6IE1CWiAqLwo+PiArICAgICAgIF9fdTMyIGZsYWdz Owo+PiArICAgICAgIC8qKgo+PiArICAgICAgICAqIEBleHRlbnNpb25zOiBUaGUgY2hhaW4gb2Yg ZXh0ZW5zaW9ucyB0byBhcHBseSB0byB0aGlzIG9iamVjdC4KPj4gKyAgICAgICAgKgo+PiArICAg ICAgICAqIFRoaXMgd2lsbCBiZSB1c2VmdWwgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIG5lZWQgdG8g c3VwcG9ydCBzZXZlcmFsCj4+ICsgICAgICAgICogZGlmZmVyZW50IGV4dGVuc2lvbnMsIGFuZCB3 ZSBuZWVkIHRvIGFwcGx5IG1vcmUgdGhhbiBvbmUgd2hlbgo+PiArICAgICAgICAqIGNyZWF0aW5n IHRoZSBvYmplY3QuIFNlZSBzdHJ1Y3QgaTkxNV91c2VyX2V4dGVuc2lvbi4KPj4gKyAgICAgICAg Kgo+PiArICAgICAgICAqIElmIHdlIGRvbid0IHN1cHBseSBhbnkgZXh0ZW5zaW9ucyB0aGVuIHdl IGdldCB0aGUgc2FtZSBvbGQgZ2VtX2NyZWF0ZQo+PiArICAgICAgICAqIGJlaGF2aW91ci4KPj4g KyAgICAgICAgKgo+PiArICAgICAgICAqIEZvciBJOTE1X0dFTV9DUkVBVEVfRVhUX01FTU9SWV9S RUdJT05TIHVzYWdlIHNlZQo+PiArICAgICAgICAqIHN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRl X2V4dF9tZW1vcnlfcmVnaW9ucy4KPj4gKyAgICAgICAgKi8KPj4gKyNkZWZpbmUgSTkxNV9HRU1f Q1JFQVRFX0VYVF9NRU1PUllfUkVHSU9OUyAwCj4+ICsgICAgICAgX191NjQgZXh0ZW5zaW9uczsK Pj4gK307Cj4+ICsKPj4gKy8qKgo+PiArICogc3RydWN0IGRybV9pOTE1X2dlbV9jcmVhdGVfZXh0 X21lbW9yeV9yZWdpb25zIC0gVGhlCj4+ICsgKiBJOTE1X0dFTV9DUkVBVEVfRVhUX01FTU9SWV9S RUdJT05TIGV4dGVuc2lvbi4KPj4gKyAqCj4+ICsgKiBTZXQgdGhlIG9iamVjdCB3aXRoIHRoZSBk ZXNpcmVkIHNldCBvZiBwbGFjZW1lbnRzL3JlZ2lvbnMgaW4gcHJpb3JpdHkKPj4gKyAqIG9yZGVy LiBFYWNoIGVudHJ5IG11c3QgYmUgdW5pcXVlIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZS4K Pj4gKyAqCj4+ICsgKiBUaGlzIGlzIHByb3ZpZGVkIGFzIGFuIGFycmF5IG9mIHN0cnVjdCBkcm1f aTkxNV9nZW1fbWVtb3J5X2NsYXNzX2luc3RhbmNlLCBvcgo+PiArICogYW4gZXF1aXZhbGVudCBs YXlvdXQgb2YgY2xhc3M6aW5zdGFuY2UgcGFpciBlbmNvZGluZ3MuIFNlZSBzdHJ1Y3QKPj4gKyAq IGRybV9pOTE1X3F1ZXJ5X21lbW9yeV9yZWdpb25zIGFuZCBEUk1fSTkxNV9RVUVSWV9NRU1PUllf UkVHSU9OUyBmb3IgaG93IHRvCj4+ICsgKiBxdWVyeSB0aGUgc3VwcG9ydGVkIHJlZ2lvbnMgZm9y IGEgZGV2aWNlLgo+PiArICoKPj4gKyAqIEFzIGFuIGV4YW1wbGUsIG9uIGRpc2NyZXRlIGRldmlj ZXMsIGlmIHdlIHdpc2ggdG8gc2V0IHRoZSBwbGFjZW1lbnQgYXMKPj4gKyAqIGRldmljZSBsb2Nh bC1tZW1vcnkgd2UgY2FuIGRvIHNvbWV0aGluZyBsaWtlOgo+PiArICoKPj4gKyAqIC4uIGNvZGUt YmxvY2s6OiBDCj4+ICsgKgo+PiArICogICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fbWVtb3J5X2Ns YXNzX2luc3RhbmNlIHJlZ2lvbl9sbWVtID0gewo+PiArICogICAgICAgICAgICAgIC5tZW1vcnlf Y2xhc3MgPSBJOTE1X01FTU9SWV9DTEFTU19ERVZJQ0UsCj4+ICsgKiAgICAgICAgICAgICAgLm1l bW9yeV9pbnN0YW5jZSA9IDAsCj4+ICsgKiAgICAgIH07Cj4+ICsgKiAgICAgIHN0cnVjdCBkcm1f aTkxNV9nZW1fY3JlYXRlX2V4dF9tZW1vcnlfcmVnaW9ucyByZWdpb25zID0gewo+PiArICogICAg ICAgICAgICAgIC5iYXNlID0geyAubmFtZSA9IEk5MTVfR0VNX0NSRUFURV9FWFRfTUVNT1JZX1JF R0lPTlMgfSwKPj4gKyAqICAgICAgICAgICAgICAucmVnaW9ucyA9ICh1aW50cHRyX3QpJnJlZ2lv bl9sbWVtLAo+PiArICogICAgICAgICAgICAgIC5udW1fcmVnaW9ucyA9IDEsCj4+ICsgKiAgICAg IH07Cj4+ICsgKiAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlX2V4dCBjcmVhdGVfZXh0 ID0gewo+PiArICogICAgICAgICAgICAgIC5zaXplID0gMTYgKiBQQUdFX1NJWkUsCj4+ICsgKiAg ICAgICAgICAgICAgLmV4dGVuc2lvbnMgPSAodWludHB0cl90KSZyZWdpb25zLAo+PiArICogICAg ICB9Owo+PiArICoKPj4gKyAqICAgICAgaW50IGVyciA9IGlvY3RsKGZkLCBEUk1fSU9DVExfSTkx NV9HRU1fQ1JFQVRFX0VYVCwgJmNyZWF0ZV9leHQpOwo+PiArICogICAgICBpZiAoZXJyKSAuLi4K Pj4gKyAqCj4+ICsgKiBBdCB3aGljaCBwb2ludCB3ZSBnZXQgdGhlIG9iamVjdCBoYW5kbGUgaW4g JmRybV9pOTE1X2dlbV9jcmVhdGVfZXh0LmhhbmRsZSwKPj4gKyAqIGFsb25nIHdpdGggdGhlIGZp bmFsIG9iamVjdCBzaXplIGluICZkcm1faTkxNV9nZW1fY3JlYXRlX2V4dC5zaXplLCB3aGljaAo+ PiArICogc2hvdWxkIGFjY291bnQgZm9yIGFueSByb3VuZGluZyB1cCwgaWYgcmVxdWlyZWQuCj4+ ICsgKi8KPj4gK3N0cnVjdCBkcm1faTkxNV9nZW1fY3JlYXRlX2V4dF9tZW1vcnlfcmVnaW9ucyB7 Cj4+ICsgICAgICAgLyoqIEBiYXNlOiBFeHRlbnNpb24gbGluay4gU2VlIHN0cnVjdCBpOTE1X3Vz ZXJfZXh0ZW5zaW9uLiAqLwo+PiArICAgICAgIHN0cnVjdCBpOTE1X3VzZXJfZXh0ZW5zaW9uIGJh c2U7Cj4+ICsKPj4gKyAgICAgICAvKiogQHBhZDogTUJaICovCj4+ICsgICAgICAgX191MzIgcGFk Owo+PiArICAgICAgIC8qKiBAbnVtX3JlZ2lvbnM6IE51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUg QHJlZ2lvbnMgYXJyYXkuICovCj4+ICsgICAgICAgX191MzIgbnVtX3JlZ2lvbnM7Cj4+ICsgICAg ICAgLyoqCj4+ICsgICAgICAgICogQHJlZ2lvbnM6IFRoZSByZWdpb25zL3BsYWNlbWVudHMgYXJy YXkuCj4+ICsgICAgICAgICoKPj4gKyAgICAgICAgKiBBbiBhcnJheSBvZiBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZS4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBf X3U2NCByZWdpb25zOwo+PiArfTsKPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L3Jm Yy9pOTE1X2dlbV9sbWVtLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVt LnJzdAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjQ2MmYx ZWZkOTAwMwo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3JmYy9p OTE1X2dlbV9sbWVtLnJzdAo+PiBAQCAtMCwwICsxLDEzMCBAQAo+PiArPT09PT09PT09PT09PT09 PT09PT09PT09PQo+PiArSTkxNSBERzEvTE1FTSBSRkMgU2VjdGlvbgo+PiArPT09PT09PT09PT09 PT09PT09PT09PT09PQo+PiArCj4+ICtVcHN0cmVhbSBwbGFuCj4+ICs9PT09PT09PT09PT09Cj4+ ICtGb3IgdXBzdHJlYW0gdGhlIG92ZXJhbGwgcGxhbiBmb3IgbGFuZGluZyBhbGwgdGhlIERHMSBz dHVmZiBhbmQgdHVybmluZyBpdCBmb3IKPj4gK3JlYWwsIHdpdGggYWxsIHRoZSB1QVBJIGJpdHMg aXM6Cj4+ICsKPj4gKyogTWVyZ2UgYmFzaWMgSFcgZW5hYmxpbmcgb2YgREcxKHN0aWxsIHdpdGhv dXQgcGNpaWQpCj4+ICsqIE1lcmdlIHRoZSB1QVBJIGJpdHMgYmVoaW5kIHNwZWNpYWwgQ09ORklH X0JST0tFTihvciBzbykgZmxhZwo+PiArICAgICAgICAqIEF0IHRoaXMgcG9pbnQgd2UgY2FuIHN0 aWxsIG1ha2UgY2hhbmdlcywgYnV0IGltcG9ydGFudGx5IHRoaXMgbGV0cyB1cwo+PiArICAgICAg ICAgIHN0YXJ0IHJ1bm5pbmcgSUdUcyB3aGljaCBjYW4gdXRpbGl6ZSBsb2NhbC1tZW1vcnkgaW4g Q0kKPj4gKyogQ29udmVydCBvdmVyIHRvIFRUTSwgbWFrZSBzdXJlIGl0IGFsbCBrZWVwcyB3b3Jr aW5nLiBTb21lIG9mIHRoZSB3b3JrIGl0ZW1zOgo+PiArICAgICAgICAqIFRUTSBzaHJpbmtlciBm b3IgZGlzY3JldGUKPj4gKyAgICAgICAgKiBkbWFfcmVzdl9sb2NraXRlbSBmb3IgZnVsbCBkbWFf cmVzdl9sb2NrLCBpLmUgbm90IGp1c3QgdHJ5bG9jawo+PiArICAgICAgICAqIFVzZSBUVE0gQ1BV IHBhZ2VmYXVsdCBoYW5kbGVyCj4+ICsgICAgICAgICogUm91dGUgc2htZW0gYmFja2VuZCBvdmVy IHRvIFRUTSBTWVNURU0gZm9yIGRpc2NyZXRlCj4+ICsgICAgICAgICogVFRNIHB1cmdlYWJsZSBv YmplY3Qgc3VwcG9ydAo+PiArICAgICAgICAqIE1vdmUgaTkxNSBidWRkeSBhbGxvY2F0b3Igb3Zl ciB0byBUVE0KPj4gKyAgICAgICAgKiBNTUFQIGlvY3RsIG1vZGUoc2VlIGBJOTE1IE1NQVBgXykK Pj4gKyAgICAgICAgKiBTRVQvR0VUIGlvY3RsIGNhY2hpbmcoc2VlIGBJOTE1IFNFVC9HRVQgQ0FD SElOR2BfKQo+PiArKiBBZGQgcGNpaWQgZm9yIERHMSBhbmQgdHVybiBvbiB1QVBJIGZvciByZWFs Cj4gCj4gUGFydCBvZiB0aGlzIHByb2Nlc3Mgc2hvdWxkIGJlIGFub3RoZXIgUkZDIGUtbWFpbCwg Y2MnZCB0byBtZXNhLWRldgo+IGZvciBmaW5hbCBzaWduLW9mZiBiZWZvcmUgd2UgbG9jayB0aGUg QVBJIGRvd24uCgpEbyB5b3UgbWVhbiBmb3IgdGhlIGFjdHVhbCBwYXRjaGVzIHRoYXQgaW1wbGVt ZW50IHRoZSBwcm9wb3NlZCB1QVBJLCBvciAKYXJlIHlvdSByZWZlcnJpbmcgdG8gdGhpcyBkb2Mv cmZjIHBhdGNoPwoKPiAKPiAKPj4gKwo+PiArTmV3IG9iamVjdCBwbGFjZW1lbnQgYW5kIHJlZ2lv biBxdWVyeSB1QVBJCj4+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPj4gK1N0YXJ0aW5nIGZyb20gREcxIHdlIG5lZWQgdG8gZ2l2ZSB1c2Vyc3BhY2UgdGhlIGFi aWxpdHkgdG8gYWxsb2NhdGUgYnVmZmVycyBmcm9tCj4+ICtkZXZpY2UgbG9jYWwtbWVtb3J5LiBD dXJyZW50bHkgdGhlIGRyaXZlciBzdXBwb3J0cyBnZW1fY3JlYXRlLCB3aGljaCBjYW4gcGxhY2UK Pj4gK2J1ZmZlcnMgaW4gc3lzdGVtIG1lbW9yeSB2aWEgc2htZW0sIGFuZCB0aGUgdXN1YWwgYXNz b3J0bWVudCBvZiBvdGhlcgo+PiAraW50ZXJmYWNlcywgbGlrZSBkdW1iIGJ1ZmZlcnMgYW5kIHVz ZXJwdHIuCj4+ICsKPj4gK1RvIHN1cHBvcnQgdGhpcyBuZXcgY2FwYWJpbGl0eSwgd2hpbGUgYWxz byBwcm92aWRpbmcgYSB1QVBJIHdoaWNoIHdpbGwgd29yawo+PiArYmV5b25kIGp1c3QgREcxLCB3 ZSBwcm9wb3NlIHRvIG9mZmVyIHRocmVlIG5ldyBiaXRzIG9mIHVBUEk6Cj4+ICsKPj4gK0RSTV9J OTE1X1FVRVJZX01FTU9SWV9SRUdJT05TCj4+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+PiArTmV3IHF1ZXJ5IElEIHdoaWNoIGFsbG93cyB1c2Vyc3BhY2UgdG8gZGlzY292ZXIgdGhl IGxpc3Qgb2Ygc3VwcG9ydGVkIG1lbW9yeQo+PiArcmVnaW9ucyhsaWtlIHN5c3RlbS1tZW1vcnkg YW5kIGxvY2FsLW1lbW9yeSkgZm9yIGEgZ2l2ZW4gZGV2aWNlLiBXZSBpZGVudGlmeQo+PiArZWFj aCByZWdpb24gd2l0aCBhIGNsYXNzIGFuZCBpbnN0YW5jZSBwYWlyLCB3aGljaCBzaG91bGQgYmUg dW5pcXVlLiBUaGUgY2xhc3MKPj4gK2hlcmUgd291bGQgYmUgREVWSUNFIG9yIFNZU1RFTSwgYW5k IHRoZSBpbnN0YW5jZSB3b3VsZCBiZSB6ZXJvLCBvbiBwbGF0Zm9ybXMKPj4gK2xpa2UgREcxLgo+ PiArCj4+ICtTaWRlIG5vdGU6IFRoZSBjbGFzcy9pbnN0YW5jZSBkZXNpZ24gaXMgYm9ycm93ZWQg ZnJvbSBvdXIgZXhpc3RpbmcgZW5naW5lIHVBUEksCj4+ICt3aGVyZSB3ZSBkZXNjcmliZSBldmVy eSBwaHlzaWNhbCBlbmdpbmUgaW4gdGVybXMgb2YgaXRzIGNsYXNzLCBhbmQgdGhlCj4+ICtwYXJ0 aWN1bGFyIGluc3RhbmNlLCBzaW5jZSB3ZSBjYW4gaGF2ZSBtb3JlIHRoYW4gb25lIHBlciBjbGFz cy4KPj4gKwo+PiArSW4gdGhlIGZ1dHVyZSB3ZSBhbHNvIHdhbnQgdG8gZXhwb3NlIG1vcmUgaW5m b3JtYXRpb24gd2hpY2ggY2FuIGZ1cnRoZXIKPj4gK2Rlc2NyaWJlIHRoZSBjYXBhYmlsaXRpZXMg b2YgYSByZWdpb24uCj4+ICsKPj4gKy4uIGtlcm5lbC1kb2M6OiBEb2N1bWVudGF0aW9uL2dwdS9y ZmMvaTkxNV9nZW1fbG1lbS5oCj4+ICsgICAgICAgIDpmdW5jdGlvbnM6IGRybV9pOTE1X2dlbV9t ZW1vcnlfY2xhc3MgZHJtX2k5MTVfZ2VtX21lbW9yeV9jbGFzc19pbnN0YW5jZSBkcm1faTkxNV9t ZW1vcnlfcmVnaW9uX2luZm8gZHJtX2k5MTVfcXVlcnlfbWVtb3J5X3JlZ2lvbnMKPj4gKwo+PiAr R0VNX0NSRUFURV9FWFQKPj4gKy0tLS0tLS0tLS0tLS0tCj4+ICtOZXcgaW9jdGwgd2hpY2ggaXMg YmFzaWNhbGx5IGp1c3QgZ2VtX2NyZWF0ZSBidXQgbm93IGFsbG93cyB1c2Vyc3BhY2UgdG8KPj4g K3Byb3ZpZGUgYSBjaGFpbiBvZiBwb3NzaWJsZSBleHRlbnNpb25zLiBOb3RlIHRoYXQgaWYgd2Ug ZG9uJ3QgcHJvdmlkZSBhbnkKPj4gK2V4dGVuc2lvbnMgdGhlbiB3ZSBnZXQgdGhlIGV4YWN0IHNh bWUgYmVoYXZpb3VyIGFzIGdlbV9jcmVhdGUuCj4gCj4gImRvbid0IHByb3ZpZGUgYW55IGV4dGVu c2lvbnMgYW5kIHNldCBmbGFncz0wIgo+IAo+PiArCj4+ICtTaWRlIG5vdGU6IFdlIGFsc28gbmVl ZCB0byBzdXBwb3J0IFBYUFsxXSBpbiB0aGUgbmVhciBmdXR1cmUsIHdoaWNoIGlzIGFsc28KPj4g K2FwcGxpY2FibGUgdG8gaW50ZWdyYXRlZCBwbGF0Zm9ybXMsIGFuZCBhZGRzIGl0cyBvd24gZ2Vt X2NyZWF0ZV9leHQgZXh0ZW5zaW9uLAo+PiArd2hpY2ggYmFzaWNhbGx5IGxldHMgdXNlcnNwYWNl IG1hcmsgYSBidWZmZXIgYXMgInByb3RlY3RlZCIuCj4+ICsKPj4gKy4uIGtlcm5lbC1kb2M6OiBE b2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9nZW1fbG1lbS5oCj4+ICsgICAgICAgIDpmdW5jdGlv bnM6IGRybV9pOTE1X2dlbV9jcmVhdGVfZXh0Cj4+ICsKPj4gK0k5MTVfR0VNX0NSRUFURV9FWFRf TUVNT1JZX1JFR0lPTlMKPj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4g K0ltcGxlbWVudGVkIGFzIGFuIGV4dGVuc2lvbiBmb3IgZ2VtX2NyZWF0ZV9leHQsIHdlIHdvdWxk IG5vdyBhbGxvdyB1c2Vyc3BhY2UgdG8KPj4gK29wdGlvbmFsbHkgcHJvdmlkZSBhbiBpbW11dGFi bGUgbGlzdCBvZiBwcmVmZXJyZWQgcGxhY2VtZW50cyBhdCBjcmVhdGlvbiB0aW1lLAo+PiAraW4g cHJpb3JpdHkgb3JkZXIsIGZvciBhIGdpdmVuIGJ1ZmZlciBvYmplY3QuICBGb3IgdGhlIHBsYWNl bWVudHMgd2UgZXhwZWN0Cj4+ICt0aGVtIGVhY2ggdG8gdXNlIHRoZSBjbGFzcy9pbnN0YW5jZSBl bmNvZGluZywgYXMgcGVyIHRoZSBvdXRwdXQgb2YgdGhlIHJlZ2lvbnMKPj4gK3F1ZXJ5LiBIYXZp bmcgdGhlIGxpc3QgaW4gcHJpb3JpdHkgb3JkZXIgd2lsbCBiZSB1c2VmdWwgaW4gdGhlIGZ1dHVy ZSB3aGVuCj4+ICtwbGFjaW5nIGFuIG9iamVjdCwgc2F5IGR1cmluZyBldmljdGlvbi4KPj4gKwo+ PiArLi4ga2VybmVsLWRvYzo6IERvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X2dlbV9sbWVtLmgK Pj4gKyAgICAgICAgOmZ1bmN0aW9uczogZHJtX2k5MTVfZ2VtX2NyZWF0ZV9leHRfbWVtb3J5X3Jl Z2lvbnMKPj4gKwo+PiArT25lIGZhaXIgY3JpdGljaXNtIGhlcmUgaXMgdGhhdCB0aGlzIHNlZW1z IGEgbGl0dGxlIG92ZXItZW5naW5lZXJlZFsyXS4gSWYgd2UKPj4gK2p1c3QgY29uc2lkZXIgREcx IHRoZW4geWVzLCBhIHNpbXBsZSBnZW1fY3JlYXRlLmZsYWdzIG9yIHNvbWV0aGluZyBpcyB0b3Rh bGx5Cj4+ICthbGwgdGhhdCdzIG5lZWRlZCB0byB0ZWxsIHRoZSBrZXJuZWwgdG8gYWxsb2NhdGUg dGhlIGJ1ZmZlciBpbiBsb2NhbC1tZW1vcnkgb3IKPj4gK3doYXRldmVyLiBIb3dldmVyIGxvb2tp bmcgdG8gdGhlIGZ1dHVyZSB3ZSBuZWVkIHVBUEkgd2hpY2ggY2FuIGFsc28gc3VwcG9ydAo+PiAr dXBjb21pbmcgWGUgSFAgbXVsdGktdGlsZSBhcmNoaXRlY3R1cmUgaW4gYSBzYW5lIHdheSwgd2hl cmUgdGhlcmUgY2FuIGJlCj4+ICttdWx0aXBsZSBsb2NhbC1tZW1vcnkgaW5zdGFuY2VzIGZvciBh IGdpdmVuIGRldmljZSwgYW5kIHNvIHVzaW5nIGJvdGggY2xhc3MgYW5kCj4+ICtpbnN0YW5jZSBp biBvdXIgdUFQSSB0byBkZXNjcmliZSByZWdpb25zIGlzIGRlc2lyYWJsZSwgYWx0aG91Z2ggc3Bl Y2lmaWNhbGx5Cj4+ICtmb3IgREcxIGl0J3MgdW5pbnRlcmVzdGluZywgc2luY2Ugd2Ugb25seSBo YXZlIGEgc2luZ2xlIGxvY2FsLW1lbW9yeSBpbnN0YW5jZS4KPj4gKwo+PiArRXhpc3RpbmcgdUFQ SSBpc3N1ZXMKPj4gKz09PT09PT09PT09PT09PT09PT09Cj4+ICtTb21lIHBvdGVudGlhbCBpc3N1 ZXMgd2Ugc3RpbGwgbmVlZCB0byByZXNvbHZlLgo+PiArCj4+ICtJOTE1IE1NQVAKPj4gKy0tLS0t LS0tLQo+PiArSW4gaTkxNSB0aGVyZSBhcmUgbXVsdGlwbGUgd2F5cyB0byBNTUFQIEdFTSBvYmpl Y3QsIGluY2x1ZGluZyBtYXBwaW5nIHRoZSBzYW1lCj4+ICtvYmplY3QgdXNpbmcgZGlmZmVyZW50 IG1hcHBpbmcgdHlwZXMoV0MgdnMgV0IpLCBpLmUgbXVsdGlwbGUgYWN0aXZlIG1tYXBzIHBlcgo+ PiArb2JqZWN0LiBUVE0gZXhwZWN0cyBvbmUgTU1BUCBhdCBtb3N0IGZvciB0aGUgbGlmZXRpbWUg b2YgdGhlIG9iamVjdC4gSWYgaXQKPj4gK3R1cm5zIG91dCB0aGF0IHdlIGhhdmUgdG8gYmFja3Bl ZGFsIGhlcmUsIHRoZXJlIG1pZ2h0IGJlIHNvbWUgcG90ZW50aWFsCj4+ICt1c2Vyc3BhY2UgZmFs bG91dC4KPj4gKwo+PiArSTkxNSBTRVQvR0VUIENBQ0hJTkcKPj4gKy0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+ICtJbiBpOTE1IHdlIGhhdmUgc2V0L2dldF9jYWNoaW5nIGlvY3RsLiBUVE0gZG9lc24n dCBsZXQgdXMgdG8gY2hhbmdlIHRoaXMsIGJ1dAo+PiArREcxIGRvZXNuJ3Qgc3VwcG9ydCBub24t c25vb3BlZCBwY2llIHRyYW5zYWN0aW9ucywgc28gd2UgY2FuIGp1c3QgYWx3YXlzCj4+ICthbGxv Y2F0ZSBhcyBXQiBmb3Igc21lbS1vbmx5IGJ1ZmZlcnMuICBJZi93aGVuIG91ciBodyBnYWlucyBz dXBwb3J0IGZvcgo+PiArbm9uLXNub29wZWQgcGNpZSB0cmFuc2FjdGlvbnMgdGhlbiB3ZSBtdXN0 IGZpeCB0aGlzIG1vZGUgYXQgYWxsb2NhdGlvbiB0aW1lIGFzCj4+ICthIG5ldyBHRU0gZXh0ZW5z aW9uLgo+IAo+ICBGcm9tIHRoZSBNZXNhIFBvViB0aGlzIHNob3VsZCBtb3N0bHkgYmUgZmluZS4g IEluIFZ1bGthbiwgd2Ugb25seSBldmVyCj4gU0VUX0NBQ0hJTkcgcmlnaHQgYWZ0ZXIgQk8gY3Jl YXRpb24uICBJbiBHTCwgd2UgZG8gU0VUX0NBQ0hJTkcKPiBtdWx0aXBsZSB0aW1lcyBvbiBhIEJP IGJ1dCwgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgdGhlIGlyaXNfYnVmbWdyCj4gQVBJLCBpdCBo YXBwZW5zIG9uIEJPIGNyZWF0aW9uLiAgV2Ugb25seSBTRVRfQ0FDSElORyBpZiB3ZSBwdWxsIGEg Qk8KPiBvdXQgb2Ygb3VyIGludGVybmFsIGNhY2hlIHdpdGggdGhlIHdyb25nIGNhY2hpbmcgc2V0 dGluZy4gIFRoZSBNZXNhCj4gZml4IGlzIHByZXR0eSBzaW1wbGU6ICBqdXN0IGFkZCBjYWNoaW5n IHRvIHRoZSBrZXkgd2UgdXNlIGZvciBvdXIKPiBpbnRlcm5hbCBCTyBjYWNoZS4gIFdlIGNhbid0 IGRvIHRoYXQgcmV0cm9hY3RpdmVseSwgb2YgY291cnNlLCBidXQgd2UKPiBjYW4gZmFpcmx5IGVh c2lseSBkbyBpdCBmb3IgYWxsIExNRU0gcGxhdGZvcm1zIGdvaW5nIGZvcndhcmQuCgpTbGlnaHRs eSBvcnRob2dvbmFsOiB3aGF0IGRvZXMgTWVzYSBkbyBoZXJlIGZvciBzbm9vcGVkIHZzIExMQyAK cGxhdGZvcm1zPyBEb2VzIGl0IG1ha2Ugc3VjaCBhIGRpc3RpbmN0aW9uPyBKdXN0IGN1cmlvdXMu Cgo+IAo+PiArCj4+ICtUaGlzIGlzIHJlbGF0ZWQgdG8gdGhlIG1tYXAgcHJvYmxlbSwgYmVjYXVz ZSBpbiBnZW5lcmFsIChtZWFuaW5nLCB3aGVuIHdlJ3JlCj4+ICtub3QgcnVubmluZyBvbiBpbnRl bCBjcHVzKSB0aGUgY3B1IG1tYXAgbXVzdCBub3QsIGV2ZXIsIGJlIGluY29uc2lzdGVudCB3aXRo Cj4+ICthbGxvY2F0aW9uIG1vZGUuCj4+ICsKPj4gK1Bvc3NpYmxlIGlkZWEgaXMgdG8gbGV0IHRo ZSBrZXJuZWwgcGlja3MgdGhlIG1tYXAgbW9kZSBmb3IgdXNlcnNwYWNlIGZyb20gdGhlCj4+ICtm b2xsb3dpbmcgdGFibGU6Cj4+ICsKPj4gK3NtZW0tb25seTogV0IuIFVzZXJzcGFjZSBkb2VzIG5v dCBuZWVkIHRvIGNhbGwgY2xmbHVzaC4KPj4gKwo+PiArc21lbStsbWVtOiBXZSBhbGxvY2F0ZSB1 bmNhY2hlZCBtZW1vcnksIGFuZCBnaXZlIHVzZXJzcGFjZSBhIFdDIG1hcHBpbmcKPj4gK2ZvciB3 aGVuIHRoZSBidWZmZXIgaXMgaW4gc21lbSwgYW5kIFdDIHdoZW4gaXQncyBpbiBsbWVtLiBHUFUg ZG9lcyBzbm9vcGVkCj4+ICthY2Nlc3MsIHdoaWNoIGlzIGEgYml0IGluZWZmaWNpZW50Lgo+PiAr Cj4+ICtsbWVtIG9ubHk6IGFsd2F5cyBXQwo+PiArCj4+ICtUaGlzIG1lYW5zIG9uIGRpc2NyZXRl IHlvdSBvbmx5IGdldCBhIHNpbmdsZSBtbWFwIG1vZGUsIGFsbCBvdGhlcnMgbXVzdCBiZQo+PiAr cmVqZWN0ZWQuIFRoYXQncyBwcm9iYWJseSBnb2luZyB0byBiZSBhIG5ldyBkZWZhdWx0IG1vZGUg b3Igc29tZXRoaW5nIGxpa2UKPj4gK3RoYXQuCj4gCj4gU2VlbXMgcmVhc29uYWJsZSBmb3Igbm93 LCBJIHRoaW5rLiAgQWdhaW4sIHdlIGNhbid0IGFwcGx5IGl0Cj4gcmV0cm9hY3RpdmVseSB0byBv bGQgTWVzYSBkcml2ZXJzIHRoYXQgaGF2ZSBhbHJlYWR5IHNoaXBwZWQgYnV0IEkKPiBkb24ndCBz ZWUgd2h5IHdlIGNhbid0IGRvIHRoaXMgZ29pbmcgZm9yd2FyZC4gIFdlIGNhbiBhbHNvIGFkZCBh Cj4gY3JlYXRlIGZsYWcgZm9yIGNoYW5naW5nIGNhY2hpbmcgc2V0dGluZ3MuCj4gCj4gLS1KYXNv bgo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK