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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 7D6E7C2B9F4 for ; Thu, 17 Jun 2021 16:47:01 +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 17FB060FE9 for ; Thu, 17 Jun 2021 16:47:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 17FB060FE9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 DA90B6E8B6; Thu, 17 Jun 2021 16:46:54 +0000 (UTC) Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0998A6E8B6 for ; Thu, 17 Jun 2021 16:46:53 +0000 (UTC) Received: by mail-wm1-x32e.google.com with SMTP id y13-20020a1c4b0d0000b02901c20173e165so4111100wma.0 for ; Thu, 17 Jun 2021 09:46:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=i0pKnFJo7pj8mPbGYx1AyiMRcemtKNLbi0gD6SO3z7Y=; b=WS/0uBaD/7bmIekXaWzT7I0adA82ZTjqCcrYmkLcP0EHmuR8hhcc3E0r+jzY7Nd03b z1MGKImFRpVJEQk4bEePkL9g1NFi9VeBX3fMIca4+yr7D3tTZy5/I5rX9AOeqyAeruAo MeBJXF/jnDnlGaL5ztaPocu74tlhx0nxcFDGo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=i0pKnFJo7pj8mPbGYx1AyiMRcemtKNLbi0gD6SO3z7Y=; b=BqB1TVLIGjgwHrGEOBSESV06PEIlkiEAgnnJIz3YlOPCbHErsKc1IFZ12xOr45UjfN Gec77MOJwfc0OJgCHD4oqVW6+3c19PQsgowwb82ruwcDpTdS6zHQtgTaHwODyMNraeuF vIBSkm/x3aJhpWSEdUBMwKxHfQETmK6x4Uw0Fc4IXnyZHuQTSo1ucUhIGlYbT4b+RmkL H7UJUKyfQuQfitsRNohS2G+xXFphNLsmbMFsmEzWHfnd/QtOTMO/DA2Apn/U/FSRO9H7 owlBtFuKGgdIAOb06iZZDzeutRgohQTvDn/CLlZwYgTcBM6E2pBZlf/QpJh51hoaX2EM Q7rw== X-Gm-Message-State: AOAM532hZ/IuRMub+SFPGnRf8OdJPD3ho5SftzyDJ8RFrc7aT8l57YmY j5YOitNb8I5AxqjsApyKk3NkLw== X-Google-Smtp-Source: ABdhPJxLH/IoGYfyyR0m/buczMjMQdD7n4LMJHr7TKoQ7vpUI9NpZ+aiE9tuJ44IPIaDMfE30A76zQ== X-Received: by 2002:a7b:c7da:: with SMTP id z26mr6307500wmk.29.1623948411674; Thu, 17 Jun 2021 09:46:51 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id z12sm5993592wrw.97.2021.06.17.09.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Jun 2021 09:46:50 -0700 (PDT) Date: Thu, 17 Jun 2021 18:46:48 +0200 From: Daniel Vetter To: Matthew Brost Message-ID: References: <20210526233357.9165-1-matthew.brost@intel.com> <20210526233357.9165-3-matthew.brost@intel.com> <20210611195029.GA4388@sdutt-i7> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210611195029.GA4388@sdutt-i7> X-Operating-System: Linux phenom 5.10.0-7-amd64 Subject: Re: [Intel-gfx] [RFC PATCH 2/2] drm/doc/rfc: i915 new parallel submission uAPI plan 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: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, carl.zhang@intel.com, jason.ekstrand@intel.com, daniel.vetter@intel.com, mesa-dev@lists.freedesktop.org, christian.koenig@amd.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" U29ycnkgSSdtIGJlaGluZCBvbiBtYWlscyAgLi4uCgpPbiBGcmksIEp1biAxMSwgMjAyMSBhdCAx Mjo1MDoyOVBNIC0wNzAwLCBNYXR0aGV3IEJyb3N0IHdyb3RlOgo+IE9uIEZyaSwgSnVuIDA0LCAy MDIxIGF0IDA3OjU5OjA1UE0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBXZWQs IE1heSAyNiwgMjAyMSBhdCAwNDozMzo1N1BNIC0wNzAwLCBNYXR0aGV3IEJyb3N0IHdyb3RlOgo+ ID4gPiBBZGQgZW50cnkgZm9yIGk5MTUgbmV3IHBhcmFsbGVsIHN1Ym1pc3Npb24gdUFQSSBwbGFu Lgo+ID4gPiAKPiA+ID4gdjI6Cj4gPiA+ICAoRGFuaWVsIFZldHRlcik6Cj4gPiA+ICAgLSBFeHBh bmQgbG9naWNhbCBvcmRlciBleHBsYWluYXRpb24KPiA+ID4gICAtIEFkZCBkdW1teSBoZWFkZXIK PiA+ID4gICAtIE9ubHkgYWxsb3cgTiBCQnMgaW4gZXhlY2J1ZiBJT0NUTAo+ID4gPiAgIC0gQ29u ZmlndXJlIHBhcmFsbGVsIHN1Ym1pc3Npb24gcGVyIHNsb3Qgbm90IHBlciBnZW0gY29udGV4dAo+ ID4gPiB2MzoKPiA+ID4gIChNYXJjaW4gxZpsdXNhcnopOgo+ID4gPiAgIC0gTG90J3Mgb2YgdHlw b3MgLyBiYWQgZW5nbGlzaCBmaXhlZAo+ID4gPiAgKFR2cnRrbyBVcnN1bGluKToKPiA+ID4gICAt IENvbnNpc3RlbnQgcHNldWRvIGNvZGUsIGNsZWFuIHVwIHdvcmRpbmcgaW4gZGVzY3JpcHRpb25z Cj4gPiA+IAo+ID4gPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNv bT4KPiA+ID4gQ2M6IFRvbnkgWWUgPHRvbnkueWVAaW50ZWwuY29tPgo+ID4gPiBDQzogQ2FybCBa aGFuZyA8Y2FybC56aGFuZ0BpbnRlbC5jb20+Cj4gPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGludGVsLmNvbT4KPiA+ID4gQ2M6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVr c3RyYW5kLm5ldD4KPiA+ID4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBCcm9zdCA8bWF0dGhldy5i cm9zdEBpbnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5 MTVfcGFyYWxsZWxfZXhlY2J1Zi5oIHwgMTQ1ICsrKysrKysrKysrKysrKysrKwo+ID4gPiAgRG9j dW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfc2NoZWR1bGVyLnJzdCAgICAgIHwgIDU1ICsrKysrKy0K PiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTk4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p Cj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfcGFy YWxsZWxfZXhlY2J1Zi5oCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9n cHUvcmZjL2k5MTVfcGFyYWxsZWxfZXhlY2J1Zi5oIGIvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5 MTVfcGFyYWxsZWxfZXhlY2J1Zi5oCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiA+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uMjBkZTIwNmUzYWI0Cj4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4g KysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfcGFyYWxsZWxfZXhlY2J1Zi5oCj4gPiA+ IEBAIC0wLDAgKzEsMTQ1IEBACj4gPiA+ICsjZGVmaW5lIEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VY VF9QQVJBTExFTF9TVUJNSVQgMiAvKiBzZWUgaTkxNV9jb250ZXh0X2VuZ2luZXNfcGFyYWxsZWxf c3VibWl0ICovCj4gPiA+ICsKPiA+ID4gKy8qCj4gPiA+ICsgKiBpOTE1X2NvbnRleHRfZW5naW5l c19wYXJhbGxlbF9zdWJtaXQ6Cj4gPiAKPiA+IFNvIHRoZSBpZGVhIGlzIHRvIG1ha2UgdGhlc2Ug a2VybmVsZG9jIGFuZCBwdWxsIHRoZW0gaW50byB0aGUgcmZjIHNlY3Rpb24uCj4gPiBUaGVuIHdo ZW4gd2UgbWVyZ2UsIG1vdmUgdGhlbSB0byB0aGUgcmVhbCB1YXBpIHNlY3Rpb24sIGxpa2Ugd2hh dCBNYXR0IGhhcwo+ID4gZG9uZSBmb3IgbG1lbS4KPiA+IAo+IAo+IFllcCwgd2lsbCBmaXggaW4g bmV4dCByZXYuCj4gCj4gPiA+ICsgKgo+ID4gPiArICogU2V0dXAgYSBzbG90IGluIHRoZSBjb250 ZXh0IGVuZ2luZSBtYXAgdG8gYWxsb3cgbXVsdGlwbGUgQkJzIHRvIGJlIHN1Ym1pdHRlZAo+ID4g PiArICogaW4gYSBzaW5nbGUgZXhlY2J1ZiBJT0NUTC4gVGhvc2UgQkJzIHdpbGwgdGhlbiBiZSBz Y2hlZHVsZWQgdG8gcnVuIG9uIHRoZSBHUFUKPiA+ID4gKyAqIGluIHBhcmFsbGVsLiBNdWx0aXBs ZSBoYXJkd2FyZSBjb250ZXh0cyBhcmUgY3JlYXRlZCBpbnRlcm5hbGx5IGluIHRoZSBpOTE1Cj4g PiA+ICsgKiBydW4gdGhlc2UgQkJzLiBPbmNlIGEgc2xvdCBpcyBjb25maWd1cmVkIGZvciBOIEJC cyBvbmx5IE4gQkJzIGNhbiBiZQo+ID4gPiArICogc3VibWl0dGVkIGluIGVhY2ggZXhlY2J1ZiBJ T0NUTCBhbmQgdGhpcyBpcyBpbXBsaWNpdCBiZWhhdmlvciBlLmcuIFRoZSB1c2VyCj4gPiA+ICsg KiBkb2Vzbid0IHRlbGwgdGhlIGV4ZWNidWYgSU9DVEwgdGhlcmUgYXJlIE4gQkJzLCB0aGUgZXhl Y2J1ZiBJT0NUTCBrbm93IGhvdwo+ID4gPiArICogbWFueSBCQnMgdGhlcmUgYXJlIGJhc2VkIG9u IHRoZSBzbG90cyBjb25maWd1cmF0aW9uLiBUaGUgTiBCQnMgYXJlIHRoZSBsYXN0IE4KPiA+ID4g KyAqIGJ1ZmZlciBvYmplY3RzIGZvciBmaXJzdCBOIGlmIEk5MTVfRVhFQ19CQVRDSF9GSVJTVCBp cyBzZXQuCj4gPiAKPiA+IHMvZm9yL29yLwo+ID4gCj4gPiA+ICsgKgo+ID4gPiArICogVGhlcmUg YXJlIHR3byBjdXJyZW50bHkgZGVmaW5lZCB3YXlzIHRvIGNvbnRyb2wgdGhlIHBsYWNlbWVudCBv ZiB0aGUKPiA+ID4gKyAqIGhhcmR3YXJlIGNvbnRleHRzIG9uIHBoeXNpY2FsIGVuZ2luZXM6IGRl ZmF1bHQgYmVoYXZpb3IgKG5vIGZsYWdzKSBhbmQKPiA+ID4gKyAqIEk5MTVfUEFSQUxMRUxfSU1Q TElDSVRfQk9ORFMgKGEgZmxhZykuIE1vcmUgZmxhZ3MgbWF5IGJlIGFkZGVkIHRoZSBpbiB0aGUK PiA+ID4gKyAqIGZ1dHVyZSBhcyBuZXcgaGFyZHdhcmUgLyB1c2UgY2FzZXMgYXJpc2UuIERldGFp bHMgb2YgaG93IHRvIHVzZSB0aGlzCj4gPiA+ICsgKiBpbnRlcmZhY2UgYWJvdmUgdGhlIGZsYWdz IGZpZWxkIGluIHRoaXMgc3RydWN0dXJlLgo+ID4gPiArICoKPiA+ID4gKyAqIFJldHVybnMgLUVJ TlZBTCBpZiBoYXJkd2FyZSBjb250ZXh0IHBsYWNlbWVudCBjb25maWd1cmF0aW9uIGlzIGludmFs aWQgb3IgaWYKPiA+ID4gKyAqIHRoZSBwbGFjZW1lbnQgY29uZmlndXJhdGlvbiBpc24ndCBzdXBw b3J0ZWQgb24gdGhlIHBsYXRmb3JtIC8gc3VibWlzc2lvbgo+ID4gPiArICogaW50ZXJmYWNlLgo+ ID4gPiArICogUmV0dXJucyAtRU5PREVWIGlmIGV4dGVuc2lvbiBpc24ndCBzdXBwb3J0ZWQgb24g dGhlIHBsYXRmb3JtIC8gc3VibWlzc2lvbgo+ID4gPiArICogaW50ZWZhY2UuCj4gPiA+ICsgKi8K PiA+ID4gK3N0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19wYXJhbGxlbF9zdWJtaXQgewo+ID4g PiArCXN0cnVjdCBpOTE1X3VzZXJfZXh0ZW5zaW9uIGJhc2U7Cj4gPiA+ICsKPiA+ID4gKwlfX3Ux NiBlbmdpbmVfaW5kZXg7CS8qIHNsb3QgZm9yIHBhcmFsbGVsIGVuZ2luZSAqLwo+ID4gCj4gPiBL ZXJuZWwgZG9jIGhlcmUgZm9yIHRoZSBpbmxpbmUgY29tbWVudHMgdG9vLgo+ID4KPiAKPiBZZXAu Cj4gIAo+ID4gPiArCV9fdTE2IHdpZHRoOwkJLyogbnVtYmVyIG9mIGNvbnRleHRzIHBlciBwYXJh bGxlbCBlbmdpbmUgKi8KPiA+ID4gKwlfX3UxNiBudW1fc2libGluZ3M7CS8qIG51bWJlciBvZiBz aWJsaW5ncyBwZXIgY29udGV4dCAqLwo+ID4gPiArCV9fdTE2IG1iejE2Owo+ID4gPiArLyoKPiA+ ID4gKyAqIERlZmF1bHQgcGxhY2VtZW50IGJlaGF2aW9yIChjdXJyZW50bHkgdW5zdXBwb3J0ZWQp Ogo+ID4gPiArICoKPiA+ID4gKyAqIEFsbG93IEJCcyB0byBiZSBwbGFjZWQgb24gYW55IGF2YWls YWJsZSBlbmdpbmUgaW5zdGFuY2UuIEluIHRoaXMgY2FzZSBlYWNoCj4gPiA+ICsgKiBjb250ZXh0 J3MgZW5naW5lIG1hc2sgaW5kaWNhdGVzIHdoZXJlIHRoYXQgY29udGV4dCBjYW4gYmUgcGxhY2Vk LiBJdCBpcwo+ID4gPiArICogaW1wbGllZCBpbiB0aGlzIG1vZGUgdGhhdCBhbGwgY29udGV4dHMg aGF2ZSBtdXR1YWwgZXhjbHVzaXZlIHBsYWNlbWVudC4KPiA+ID4gKyAqIGUuZy4gSWYgb25lIGNv bnRleHQgaXMgcnVubmluZyBDU1hbMF0gbm8gb3RoZXIgY29udGV4dHMgY2FuIHJ1biBvbiBDU1hb MF0pLgo+ID4gPiArICoKPiA+ID4gKyAqIEV4YW1wbGUgMSBwc2V1ZG8gY29kZToKPiA+ID4gKyAq IENTWCxZW05dID0gZ2VuZXJpYyBlbmdpbmUgY2xhc3MgWCBvciBZLCBsb2dpY2FsIGluc3RhbmNl IE4KPiA+ID4gKyAqIElOVkFMSUQgPSBJOTE1X0VOR0lORV9DTEFTU19JTlZBTElELCBJOTE1X0VO R0lORV9DTEFTU19JTlZBTElEX05PTkUKPiA+ID4gKyAqIHNldF9lbmdpbmVzKElOVkFMSUQpCj4g PiA+ICsgKiBzZXRfcGFyYWxsZWwoZW5naW5lX2luZGV4PTAsIHdpZHRoPTIsIG51bV9zaWJsaW5n cz0yLAo+ID4gPiArICoJCWVuZ2luZXM9Q1NYWzBdLENTWFsxXSxDU1lbMF0sQ1NZWzFdKQo+ID4g PiArICoKPiA+ID4gKyAqIFJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyB2YWxpZCBwbGFjZW1lbnRz Ogo+ID4gPiArICogQ1NYWzBdLCBDU1lbMF0KPiA+ID4gKyAqIENTWFswXSwgQ1NZWzFdCj4gPiA+ ICsgKiBDU1hbMV0sIENTWVswXQo+ID4gPiArICogQ1NYWzFdLCBDU1lbMV0KPiA+ID4gKyAqCj4g PiA+ICsgKiBUaGlzIGNhbiBhbHNvIGJlIHRob3VnaHQgb2YgYXMgMiB2aXJ0dWFsIGVuZ2luZXMg ZGVzY3JpYmVkIGJ5IDItRCBhcnJheSBpbgo+ID4gPiArICogdGhlIGVuZ2luZXMgdGhlIGZpZWxk Ogo+ID4gPiArICogVkVbMF0gPSBDU1hbMF0sIENTWFsxXQo+ID4gPiArICogVkVbMV0gPSBDU1lb MF0sIENTWVsxXQo+ID4gPiArICoKPiA+ID4gKyAqIEV4YW1wbGUgMiBwc2V1ZG8gY29kZToKPiA+ ID4gKyAqIENTWFtZXSA9IGdlbmVyaWMgZW5naW5lIG9mIHNhbWUgY2xhc3MgWCwgbG9naWNhbCBp bnN0YW5jZSBOCj4gPiA+ICsgKiBJTlZBTElEID0gSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRCwg STkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FCj4gPiA+ICsgKiBzZXRfZW5naW5lcyhJTlZB TElEKQo+ID4gPiArICogc2V0X3BhcmFsbGVsKGVuZ2luZV9pbmRleD0wLCB3aWR0aD0yLCBudW1f c2libGluZ3M9MywKPiA+ID4gKyAqCQllbmdpbmVzPUNTWFswXSxDU1hbMV0sQ1NYWzJdLENTWFsw XSxDU1hbMV0sQ1NYWzJdKQo+ID4gPiArICoKPiA+ID4gKyAqIFJlc3VsdHMgaW4gdGhlIGZvbGxv d2luZyB2YWxpZCBwbGFjZW1lbnRzOgo+ID4gPiArICogQ1NYWzBdLCBDU1hbMV0KPiA+ID4gKyAq IENTWFswXSwgQ1NYWzJdCj4gPiA+ICsgKiBDU1hbMV0sIENTWFswXQo+ID4gPiArICogQ1NYWzFd LCBDU1hbMl0KPiA+ID4gKyAqIENTWFsyXSwgQ1NYWzBdCj4gPiA+ICsgKiBDU1hbMl0sIENTWFsx XQo+ID4gPiArICoKPiA+ID4gKyAqIFRoaXMgY2FuIGFsc28gYmUgdGhvdWdodCBvZiBhcyAyIHZp cnR1YWwgZW5naW5lcyBkZXNjcmliZWQgYnkgMi1EIGFycmF5IGluCj4gPiA+ICsgKiB0aGUgZW5n aW5lcyB0aGUgZmllbGQ6Cj4gPiA+ICsgKiBWRVswXSA9IENTWFswXSwgQ1NYWzFdLCBDU1hbMl0K PiA+ID4gKyAqIFZFWzFdID0gQ1NYWzBdLCBDU1hbMV0sIENTWFsyXQo+ID4gPiArCj4gPiA+ICsg KiBUaGlzIGVuYWJsZXMgYSB1c2UgY2FzZSB3aGVyZSBhbGwgZW5naW5lcyBhcmUgY3JlYXRlZCBl cXVhbGx5LCB3ZSBkb24ndCBjYXJlCj4gPiA+ICsgKiB3aGVyZSB0aGV5IGFyZSBzY2hlZHVsZWQs IHdlIGp1c3Qgd2FudCBhIGNlcnRhaW4gbnVtYmVyIG9mIHJlc291cmNlcywgZm9yCj4gPiA+ICsg KiB0aG9zZSByZXNvdXJjZXMgdG8gYmUgc2NoZWR1bGVkIGluIHBhcmFsbGVsLCBhbmQgcG9zc2li bHkgYWNyb3NzIG11bHRpcGxlCj4gPiA+ICsgKiBlbmdpbmUgY2xhc3Nlcy4KPiA+ID4gKyAqLwo+ ID4gPiArCj4gPiA+ICsvKgo+ID4gCj4gPiBXb3VsZCBiZSBnb29kIHRvIGFsc28gbW92ZSB0aGlz IGludG8gdGhlIGtlcm5lbGRvYyAobWF5YmUgYWRkIGxhYmVsbGVkCj4gPiBsaXN0IGZvciBmbGFn cyBvciBzbykgc28gaXQgc2hvd3MgdXAgaW4gdGhlIHJlbmRlciBvdXRwdXQuCj4gPgo+IAo+IFN1 cmUuIEkgbmVlZCBmaWd1cmUgb3V0IHZpZXcgdGhlIGtlcm5lbCBkb2MgbG9jYWxseSBiZWZvcmUg bXkgbmV4dCBhbmQgbWFrZSBzdXJlCj4gZXZlcnl0aGluZyBsb29rcyByaWdodC4KCiQgbWFrZSBo dG1sZG9jcwoKT3V0cHV0IGlzIGluIERvY3VtZW50YXRpb24vb3V0cHV0L2dwdS9pbmRleC5odG1s ICh0byBnZXQgdGhlcmUgbW9yZQpkaXJlY3RseSkuCgo+ICAKPiA+ID4gKyAqIEk5MTVfUEFSQUxM RUxfSU1QTElDSVRfQk9ORFMgLSBDcmVhdGUgaW1wbGljaXQgYm9uZHMgYmV0d2VlbiBlYWNoIGNv bnRleHQuCj4gPiA+ICsgKiBFYWNoIGNvbnRleHQgbXVzdCBoYXZlIHRoZSBzYW1lIG51bWJlciBv ZiBzaWJsaW5nIGFuZCBib25kcyBhcmUgaW1wbGljaXRseQo+ID4gPiArICogY3JlYXRlZCBiZXR3 ZWVuIGVhY2ggc2V0IG9mIHNpYmxpbmdzLgo+ID4gPiArICoKPiA+ID4gKyAqIEV4YW1wbGUgMSBw c2V1ZG8gY29kZToKPiA+ID4gKyAqIENTWFtOXSA9IGdlbmVyaWMgZW5naW5lIG9mIHNhbWUgY2xh c3MgWCwgbG9naWNhbCBpbnN0YW5jZSBOCj4gPiA+ICsgKiBJTlZBTElEID0gSTkxNV9FTkdJTkVf Q0xBU1NfSU5WQUxJRCwgSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FCj4gPiA+ICsgKiBz ZXRfZW5naW5lcyhJTlZBTElEKQo+ID4gPiArICogc2V0X3BhcmFsbGVsKGVuZ2luZV9pbmRleD0w LCB3aWR0aD0yLCBudW1fc2libGluZ3M9MSwKPiA+ID4gKyAqCQllbmdpbmVzPUNTWFswXSxDU1hb MV0sIGZsYWdzPUk5MTVfUEFSQUxMRUxfSU1QTElDSVRfQk9ORFMpCj4gPiA+ICsgKgo+ID4gPiAr ICogUmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nIHZhbGlkIHBsYWNlbWVudHM6Cj4gPiA+ICsgKiBD U1hbMF0sIENTWFsxXQo+ID4gPiArICoKPiA+ID4gKyAqIEV4YW1wbGUgMiBwc2V1ZG8gY29kZToK PiA+ID4gKyAqIENTWFtOXSA9IGdlbmVyaWMgZW5naW5lIG9mIHNhbWUgY2xhc3MgWCwgbG9naWNh bCBpbnN0YW5jZSBOCj4gPiA+ICsgKiBJTlZBTElEID0gSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJ RCwgSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FCj4gPiA+ICsgKiBzZXRfZW5naW5lcyhJ TlZBTElEKQo+ID4gPiArICogc2V0X3BhcmFsbGVsKGVuZ2luZV9pbmRleD0wLCB3aWR0aD0yLCBu dW1fc2libGluZ3M9MiwKPiA+ID4gKyAqCQllbmdpbmVzPUNTWFswXSxDU1hbMl0sQ1NYWzFdLENT WFszXSwKPiA+ID4gKyAqCQlmbGFncz1JOTE1X1BBUkFMTEVMX0lNUExJQ0lUX0JPTkRTKQo+ID4g PiArICoKPiA+ID4gKyAqIFJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyB2YWxpZCBwbGFjZW1lbnRz Ogo+ID4gPiArICogQ1NYWzBdLCBDU1hbMV0KPiA+ID4gKyAqIENTWFsyXSwgQ1NYWzNdCj4gPiA+ ICsgKgo+ID4gPiArICogVGhpcyBjYW4gYWxzbyBiZSB0aG91Z2h0IG9mIGFzIDIgdmlydHVhbCBl bmdpbmVzIGRlc2NyaWJlZCBieSAyLUQgYXJyYXkgaW4KPiA+ID4gKyAqIHRoZSBlbmdpbmVzIHRo ZSBmaWVsZCB3aXRoIGJvbmRzIHBsYWNlZCBiZXR3ZWVuIGVhY2ggaW5kZXggb2YgdGhlIHZpcnR1 YWwKPiA+ID4gKyAqIGVuZ2luZXMuIGUuZy4gQ1NYWzBdIGlzIGJvbmRlZCB0byBDU1hbMV0sIENT WFsyXSBpcyBib25kZWQgdG8gQ1NYWzNdLgo+ID4gPiArICogVkVbMF0gPSBDU1hbMF0sIENTWFsy XQo+ID4gPiArICogVkVbMV0gPSBDU1hbMV0sIENTWFszXQo+ID4gPiArICoKPiA+ID4gKyAqIFRo aXMgZW5hYmxlcyBhIHVzZSBjYXNlIHdoZXJlIGFsbCBlbmdpbmVzIGFyZSBub3QgZXF1YWwgYW5k IGNlcnRhaW4gcGxhY2VtZW50Cj4gPiA+ICsgKiBydWxlcyBhcmUgcmVxdWlyZWQgKGkuZS4gc3Bs aXQtZnJhbWUgcmVxdWlyZXMgYWxsIGNvbnRleHRzIHRvIGJlIHBsYWNlZCBpbiBhCj4gPiA+ICsg KiBsb2dpY2FsbHkgY29udGlndW91cyBvcmRlciBvbiB0aGUgVkNTIGVuZ2luZXMgb24gZ2VuMTEr IHBsYXRmb3JtcykuIFRoaXMgdXNlCj4gPiA+ICsgKiBjYXNlIChsb2dpY2FsbHkgY29udGlndW91 cyBwbGFjZW1lbnQsIHdpdGhpbiBhIHNpbmdsZSBlbmdpbmUgY2xhc3MpIGlzCj4gPiA+ICsgKiBz dXBwb3J0ZWQgd2hlbiB1c2luZyBHdUMgc3VibWlzc2lvbi4gRXhlY2xpc3QgbW9kZSBjb3VsZCBz dXBwb3J0IGFsbCBwb3NzaWJsZQo+ID4gPiArICogYm9uZGluZyBjb25maWd1cmF0aW9ucyBidXQg Y3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIGV4dGVuc2lvbi4KPiA+ID4gKyAqLwo+ID4g PiArI2RlZmluZSBJOTE1X1BBUkFMTEVMX0lNUExJQ0lUX0JPTkRTCQkJKDEgPDwgMCkKPiA+ID4g Ky8qCj4gPiA+ICsgKiBEbyBub3QgYWxsb3cgQkJzIHRvIGJlIHByZWVtcHRlZCBtaWQgQkIgcmF0 aGVyIGluc2VydCBjb29yZGluYXRlZCBwcmVlbXB0aW9uCj4gPiA+ICsgKiBwb2ludHMgb24gYWxs IGhhcmR3YXJlIGNvbnRleHRzIGJldHdlZW4gZWFjaCBzZXQgb2YgQkJzLiBBbiBleGFtcGxlIHVz ZSBjYXNlCj4gPiA+ICsgKiBvZiB0aGlzIGZlYXR1cmUgaXMgc3BsaXQtZnJhbWUgb24gZ2VuMTEr IGhhcmR3YXJlLgo+ID4gPiArICovCj4gPiA+ICsjZGVmaW5lIEk5MTVfUEFSQUxMRUxfTk9fUFJF RU1QVF9NSURfQkFUQ0gJCSgxIDw8IDEpCj4gPiAKPiA+IFNvIEkgZ2V0IHRoZSBoaXN0b3J5IG5v dyBiZWhpbmQgdGhpcywgYnV0IEkgdGhpbmsgc3BlY2lmeWluZyBmbGFncyBmb3IgdGhlCj4gPiBv bmx5IGJlaGF2aW91ciB5b3UgY2FuIGdldCBhbmQgdGhlIG9ubHkgYmVoYXZpb3VyIHRoYXQgdXNl cnNwYWNlIGFza3MgZm9yCj4gPiBpcyBzaWxseS4KPiA+IAo+ID4gSSB0aGluayB3ZSBzaG91bGQg anVzdCBtb3ZlIHRoZSBhY3R1YWwgYmVoYXZpb3VyIHNwZWMgaW50byB0aGUga2VybmVsZG9jLAo+ ID4gYXMgaW4gInRoaXMgaXMgdGhlIGJvbmRpbmcgeW91IGdldCIgYW5kICJkdWUgdG8gaHcvZncg bGltaXRhdGlvbnMgdGhlc2UKPiA+IHdvcmtsb2FkcyB3aWxsIGJlIG5vbi1wcmVlbXB0YWJsZSIg YW5kIGNhbGwgaXQgYSBkYXkuIFRyeWluZyB0byBndWVzcwo+ID4gZnV0dXJlIG5lZWRzIGFuZCBz cGVjaWZ5aW5nIHRoZW0sIHdpdGhvdXQga25vd2luZyB0aG9zZSBmdXR1cmUgbmVlZHMKPiA+IHBy ZWNpc2VseSwgbXVjaCBsZXNzIGhhdmluZyBhbiBpbXBsZW1lbnRhdGlvbiwganVzdCBuZXZlciB3 b3JrcyBvdXQKPiA+IHJlYWxseS4KPiA+Cj4gCj4gU28gbm8gZmxhZ3M/IE9yIGp1c3QgdGhlIGRl ZmF1bHQgYmVoYXZpb3IgaXMgSTkxNV9QQVJBTExFTF9JTVBMSUNJVF9CT05EUyB8Cj4gSTkxNV9Q QVJBTExFTF9OT19QUkVFTVBUX01JRF9CQVRDSCBmb3Igbm93LCB0aGUgZmxhZ3MgYXJlIHVudXNl ZCwgYnV0IGNvdWxkIGJlCj4gdXNlZCBpbiB0aGUgZnV0dXJlIGlmIG5lZWRlZD8KClRoZSBpbXBs aWNpdF9ib25kcyBJIHRoaW5rIHNob3VsZCBiZSBqdXN0IHRoZSBkZWZhdWx0LCB3ZSBjYW4gYWRk IGZsYWdzCmZvciB0aGUgb3RoZXIgc3R1ZmYgd2hlbiBpdCBleGlzdC4KClRoZSBOT19QUkVFTVBU IEkgdGhpbmsgbWFrZXMgc29tZSBzZW5zZSB0byBrZWVwIHRvIG1ha2UgdGhpcyBwYXJ0CmV4cGxp Y2l0LiBFaXRoZXIgd2F5IG9uIHRoYXQgaXMgZmluZSB3aXRoIG1lLgoKPiA+IEkgZGlzY3Vzc2Vk IHRoaXMgYSBiaXQgd2l0aCBKYXNvbiwgYW5kIGhlJ3Mgc3VnZ2VzdGVkIHRoaXMgbWFrZXMgc2Vu c2UgYXMKPiA+IGEgZW5naW5lIGZsYWcsIGJ1dCBkZWZpbml0ZWx5IG5vdCBvbiB0aGUgcGFyYWxs ZWwgZXh0ZW5zaW9uLiBCdXQgc2luY2Ugd2UKPiAKPiBOb3Qgc3VyZSB3aGF0IHlvdSBtZWFuIGJ5 IGFuIGVuZ2luZSBmbGFncy4gVGhpcyBpcyBhIHBlciBjb250ZXh0IGNvbmNlcHQuCgpPaCwgSSBn dWVzcyB0aGlzIGlzIG1vcmUgZmFsbG91dCBmcm9tIHRoZSBjb252ZXJzaW9uIGZyb20gaGF2aW5n IHRoZQplbnRpcmUgZ2VtIGNvbnRleHQgYXMgdGhlIHBhcmFsbGVsIHN1Ym1pdCB2ZWhpY2xlIHRv IGEgdmlydHVhbCBlbmdpbmUuCgpJZiB3ZSBkbyBoYXZlIHRoZW0gYXMgZmxhZ3MsIHRoZXkgbmVl ZCB0byBiZSBvbiB0aGF0IHZpcnR1YWwgZW5naW5lLCBub3QKb24gdGhlIG92ZXJhbGwgZ2VtIGNv bnRleHQgY29udGFpbmVyIHRoaW5nLiBBdCB0aGF0IHBvaW50IHRoZXkgZG9uJ3QKZXhhY3RseSBt YXRjaCB1cCB0aGUgZXhpc3RpbmcgcHJlZW1wdCBmbGFnIHdlIGhhdmUgKG9uIHRoZSBjb250ZXh0 KSwgc28KbWF5YmUgd2Ugc2hvdWxkIGp1c3QgbWFrZSB0aGlzIGltcGxpZWQgKGJ1dCBvZmMgZG9j dW1lbnRlZCkgYmVoYXZpb3VyLgoKQ2hlZXJzLCBEYW5pZWwKCj4gCj4gPiBkb24ndCBoYXZlIGEg bmVlZCBmb3IgcGlja2luZyBhIG5vbi1kZWZhdWx0IHZhbHVlIGp1c3QgZXh0cmEgd29yay4KPiA+ IAo+ID4gPiArI2RlZmluZSBfX0k5MTVfUEFSQUxMRUxfVU5LTk9XTl9GTEFHUwkoLShJOTE1X1BB UkFMTEVMX05PX1BSRUVNUFRfTUlEX0JBVENIIDw8IDEpKQo+ID4gPiArCV9fdTY0IGZsYWdzOwkJ LyogYWxsIHVuZGVmaW5lZCBmbGFncyBtdXN0IGJlIHplcm8gKi8KPiA+ID4gKwlfX3U2NCBtYno2 NFszXTsJCS8qIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlOyBtdXN0IGJlIHplcm8gKi8KPiA+ID4g Kwo+ID4gPiArCS8qCj4gPiA+ICsJICogMi1EIGFycmF5IG9mIGVuZ2luZXMKPiA+ID4gKwkgKgo+ ID4gPiArCSAqIHdpZHRoIChpKSAqIG51bV9zaWJsaW5ncyAoaikgaW4gbGVuZ3RoCj4gPiA+ICsJ ICogaW5kZXggPSBqICsgaSAqIG51bV9zaWJsaW5ncwo+ID4gPiArCSAqLwo+ID4gPiArCXN0cnVj dCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5jZSBlbmdpbmVzWzBdOwo+ID4gPiArfSBfX2F0dHJp YnV0ZV9fICgocGFja2VkKSk7Cj4gPiA+ICsKPiA+ID4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vZ3B1L3JmYy9pOTE1X3NjaGVkdWxlci5yc3QgYi9Eb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkx NV9zY2hlZHVsZXIucnN0Cj4gPiA+IGluZGV4IDdmYWE0NmNkZTA4OC4uMDI1NGMwNGQzNGJlIDEw MDY0NAo+ID4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9zY2hlZHVsZXIucnN0 Cj4gPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X3NjaGVkdWxlci5yc3QKPiA+ ID4gQEAgLTIzLDcgKzIzLDcgQEAgaTkxNSB3aXRoIHRoZSBEUk0gc2NoZWR1bGVyIGlzOgo+ID4g PiAgCSAgc2V2ZXJlIGRlc2lnbiBpc3N1ZXMgaW4gZ2VuZXJhbCwgd2hpY2ggaXMgd2h5IHdlIHdh bnQgdG8gcmV0aXJlIGl0IG5vCj4gPiA+ICAJICBtYXR0ZXIgd2hhdAo+ID4gPiAgCSogTmV3IHVB UEkgYWRkcyBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfUEFSQUxMRUwgY29udGV4dCBzZXR1cCBz dGVwCj4gPiA+IC0JICB3aGljaCBjb25maWd1cmVzIGEgc2xvdCB3aXRoIE4gY29udGV4dHMgCj4g PiA+ICsJICB3aGljaCBjb25maWd1cmVzIGEgc2xvdCB3aXRoIE4gY29udGV4dHMKPiA+ID4gIAkq IEFmdGVyIEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9QQVJBTExFTCBhIHVzZXIgY2FuIHN1Ym1p dCBOIGJhdGNoZXMgdG8KPiA+ID4gIAkgIGEgc2xvdCBpbiBhIHNpbmdsZSBleGVjYnVmIElPQ1RM IGFuZCB0aGUgYmF0Y2hlcyBydW4gb24gdGhlIEdQVSBpbgo+ID4gPiAgCSAgcGFyYWxsbGVsCj4g PiA+IEBAIC04Miw0ICs4Miw1NSBAQCBodHRwczovL3NwZWMub25lYXBpLmNvbS9sZXZlbC16ZXJv L2xhdGVzdC9jb3JlL2FwaS5odG1sI3plLWNvbW1hbmQtcXVldWUtcHJpb3JpdAo+ID4gPiAgCj4g PiA+ICBOZXcgcGFyYWxsZWwgc3VibWlzc2lvbiB1QVBJCj4gPiA+ICA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09Cj4gPiA+IC1EZXRhaWxzIHRvIGNvbWUgaW4gYSBmb2xsb3dpbmcgcGF0Y2gu Cj4gPiA+ICtUaGUgZXhpc3RpbmcgYm9uZGluZyB1QVBJIGlzIGNvbXBsZXRlbHkgYnJva2VuIHdp dGggR3VDIHN1Ym1pc3Npb24gYmVjYXVzZQo+ID4gPiArd2hldGhlciBhIHN1Ym1pc3Npb24gaXMg YSBzaW5nbGUgY29udGV4dCBzdWJtaXQgb3IgcGFyYWxsZWwgc3VibWl0IGlzbid0IGtub3duCj4g PiA+ICt1bnRpbCBleGVjYnVmIHRpbWUgYWN0aXZhdGVkIHZpYSB0aGUgSTkxNV9TVUJNSVRfRkVO Q0UuIFRvIHN1Ym1pdCBtdWx0aXBsZQo+ID4gPiArY29udGV4dHMgaW4gcGFyYWxsZWwgd2l0aCB0 aGUgR3VDIHRoZSBjb250ZXh0IG11c3QgYmUgZXhwbGljaXRseSByZWdpc3RlcmVkIHdpdGgKPiA+ ID4gK04gY29udGV4dHMgYW5kIGFsbCBOIGNvbnRleHRzIG11c3QgYmUgc3VibWl0dGVkIGluIGEg c2luZ2xlIGNvbW1hbmQgdG8gdGhlIEd1Qy4KPiA+ID4gK1RoZSBHdUMgaW50ZXJmYWNlcyBkbyBu b3Qgc3VwcG9ydCBkeW5hbWljYWxseSBjaGFuZ2luZyBiZXR3ZWVuIE4gY29udGV4dHMgYXMgdGhl Cj4gPiA+ICtib25kaW5nIHVBUEkgZG9lcy4gSGVuY2UgdGhlIG5lZWQgZm9yIGEgbmV3IHBhcmFs bGVsIHN1Ym1pc3Npb24gaW50ZXJmYWNlLiBBbHNvCj4gPiA+ICt0aGUgbGVnYWN5IGJvbmRpbmcg dUFQSSBpcyBxdWl0ZSBjb25mdXNpbmcgYW5kIG5vdCBpbnR1aXRpdmUgYXQgYWxsLgo+ID4gCj4g PiBXZSBzaG91bGQgYWRkIGhlcmUgdGhhdCAiRnVydGhlcm1vcmUgSTkxNV9TVUJNSVRfRkVOQ0Ug aXMgYnkgZGVzaWduIGEKPiA+IGZ1dHVyZSBmZW5jZSwgc28gbm90IHJlYWxseSBzb21ldGhpbmcg d2Ugc2hvdWxkIGNvbnRpbnVlIHRvIHN1cHBvcnQuIgo+ID4gCj4gPiA+ICsKPiA+ID4gK1RoZSBu ZXcgcGFyYWxsZWwgc3VibWlzc2lvbiB1QVBJIGNvbnNpc3RzIG9mIDMgcGFydHM6Cj4gPiA+ICsK PiA+ID4gKyogRXhwb3J0IGVuZ2luZXMgbG9naWNhbCBtYXBwaW5nCj4gPiA+ICsqIEEgJ3NldF9w YXJhbGxlbCcgZXh0ZW5zaW9uIHRvIGNvbmZpZ3VyZSBjb250ZXh0cyBmb3IgcGFyYWxsZWwKPiA+ ID4gKyAgc3VibWlzc2lvbgo+ID4gPiArKiBFeHRlbmQgZXhlY2J1ZjIgSU9DVEwgdG8gc3VwcG9y dCBzdWJtaXR0aW5nIE4gQkJzIGluIGEgc2luZ2xlIElPQ1RMCj4gPiA+ICsKPiA+ID4gK0V4cG9y dCBlbmdpbmVzIGxvZ2ljYWwgbWFwcGluZwo+ID4gPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4gPiA+ICtDZXJ0YWluIHVzZSBjYXNlcyByZXF1aXJlIEJCcyB0byBiZSBwbGFjZWQg b24gZW5naW5lIGluc3RhbmNlcyBpbiBsb2dpY2FsIG9yZGVyCj4gPiA+ICsoZS5nLiBzcGxpdC1m cmFtZSBvbiBnZW4xMSspLiBUaGUgbG9naWNhbCBtYXBwaW5nIG9mIGVuZ2luZSBpbnN0YW5jZXMg Y2FuIGNoYW5nZQo+ID4gPiArYmFzZWQgb24gZnVzaW5nLiBSYXRoZXIgdGhhbiBtYWtpbmcgVU1E cyBiZSBhd2FyZSBvZiBmdXNpbmcsIHNpbXBseSBleHBvc2UgdGhlCj4gPiA+ICtsb2dpY2FsIG1h cHBpbmcgd2l0aCB0aGUgZXhpc3RpbmcgcXVlcnkgZW5naW5lIGluZm8gSU9DVEwuIEFsc28gdGhl IEd1Qwo+ID4gPiArc3VibWlzc2lvbiBpbnRlcmZhY2UgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMg c3VibWl0dGluZyBtdWx0aXBsZSBjb250ZXh0cyB0bwo+ID4gPiArZW5naW5lcyBpbiBsb2dpY2Fs IG9yZGVyIHdoaWNoIGlzIGEgbmV3IHJlcXVpcmVtZW50IGNvbXBhcmVkIHRvIGV4ZWNsaXN0cy4K PiA+ID4gK0xhc3RseSwgYWxsIGN1cnJlbnQgcGxhdGZvcm1zIGhhdmUgYXQgbW9zdCAyIGVuZ2lu ZSBpbnN0YW5jZXMgYW5kIHRoZSBsb2dpY2FsCj4gPiA+ICtvcmRlciBpcyB0aGUgc2FtZSBhcyB1 QVBJIG9yZGVyLiBUaGlzIHdpbGwgY2hhbmdlIG9uIHBsYXRmb3JtcyB3aXRoIG1vcmUgdGhhbiAy Cj4gPiA+ICtlbmdpbmUgaW5zdGFuY2VzLgo+ID4gPiArCj4gPiA+ICtBIHNpbmdsZSBiaXQgd2ls bCBiZSBhZGRlZCB0byBkcm1faTkxNV9lbmdpbmVfaW5mby5mbGFncyBpbmRpY2F0aW5nIHRoYXQg dGhlCj4gPiA+ICtsb2dpY2FsIGluc3RhbmNlIGhhcyBiZWVuIHJldHVybmVkIGFuZCBhIG5ldyBm aWVsZCwKPiA+ID4gK2RybV9pOTE1X2VuZ2luZV9pbmZvLmxvZ2ljYWxfaW5zdGFuY2UsIHJldHVy bnMgdGhlIGxvZ2ljYWwgaW5zdGFuY2UuCj4gPiA+ICsKPiA+ID4gK0EgJ3NldF9wYXJhbGxlbCcg ZXh0ZW5zaW9uIHRvIGNvbmZpZ3VyZSBjb250ZXh0cyBmb3IgcGFyYWxsZWwgc3VibWlzc2lvbgo+ ID4gPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ICtUaGUgJ3NldF9wYXJhbGxlbCcgZXh0ZW5zaW9u IGNvbmZpZ3VyZXMgYSBzbG90IGZvciBwYXJhbGxlbCBzdWJtaXNzaW9uIG9mIE4gQkJzLgo+ID4g PiArSXQgaXMgc2V0dXAgc3RlcCB0aGF0IHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHVzaW5nIGFu eSBvZiB0aGUgY29udGV4dHMuIFNlZQo+ID4gCj4gPiAJCXMvc2hvdWxkL211c3QvCj4gPiAKPiA+ IFdlJ3ZlIG1hZGUgaXQgYSBDVFhfQ1JFQVRFX0VYVCBleHRlbnNpb24sIHNvIHJlYWxseSB5b3Ug ZG9uJ3QgaGF2ZSBhCj4gPiBjaG9pY2UgYW55bW9yZSA6LSkKPiAKPiBSaWdodCwgdGhpcyBjYW4g b25seSBiZSBjYWxsZWQgYXQgY29udGV4dCBjcmVhdGlvbi4KPiAKPiA+IAo+ID4gPiArSTkxNV9D T05URVhUX0VOR0lORVNfRVhUX0xPQURfQkFMQU5DRSBvciBJOTE1X0NPTlRFWFRfRU5HSU5FU19F WFRfQk9ORCBmb3IKPiA+ID4gK3NpbWlsYXIgZXhpc3RpbmcgZXhhbXBsZXMuIE9uY2UgYSBzbG90 IGlzIGNvbmZpZ3VyZWQgZm9yIHBhcmFsbGVsIHN1Ym1pc3Npb24gdGhlCj4gPiA+ICtleGVjYnVm MiBJT0NUTCBjYW4gYmUgY2FsbGVkIHN1Ym1pdHRpbmcgTiBCQnMgaW4gYSBzaW5nbGUgSU9DVEwu IEluaXRpYWxseSBvbmx5Cj4gPiA+ICtzdXBwb3J0IEd1QyBzdWJtaXNzaW9uLiBFeGVjbGlzdCBz dXBwb3J0IGNhbiBiZSBhZGRlZCBsYXRlciBpZiBuZWVkZWQuCj4gPiA+ICsKPiA+ID4gK0FkZCBJ OTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfUEFSQUxMRUxfU1VCTUlUIGFuZAo+ID4gPiAraTkxNV9j b250ZXh0X2VuZ2luZXNfcGFyYWxsZWxfc3VibWl0IHRvIHRoZSB1QVBJIHRvIGltcGxlbWVudCB0 aGlzIGV4dGVuc2lvbi4KPiA+ID4gKwo+ID4gPiArRXh0ZW5kIGV4ZWNidWYyIElPQ1RMIHRvIHN1 cHBvcnQgc3VibWl0dGluZyBOIEJCcyBpbiBhIHNpbmdsZSBJT0NUTAo+ID4gPiArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ID4gPiArQ29udGV4dHMgdGhhdCBoYXZlIGJlZW4gY29uZmlndXJlZCB3aXRoIHRoZSAnc2V0 X3BhcmFsbGVsJyBleHRlbnNpb24gYXJlIGFsbG93ZWQKPiA+ID4gK3RvIHN1Ym1pdCBOIEJCcyBp biBhIHNpbmdsZSBleGVjYnVmMiBJT0NUTC4gVGhlIEJCcyBhcmUgZWl0aGVyIHRoZSBsYXN0IE4K PiA+ID4gK29iamVjdHMgaW4gdGhlIGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgbGlzdCBvciB0 aGUgZmlyc3QgTiBpZgo+ID4gPiArSTkxNV9FWEVDX0JBVENIX0ZJUlNUIGlzIHNldC4gVGhlIG51 bWJlciBvZiBCQnMgaXMgaW1wbGljdCBiYXNlZCBvbiB0aGUgc2xvdAo+ID4gPiArc3VibWl0dGVk IGFuZCBob3cgaXQgaGFzIGJlZW4gY29uZmlndXJlZCBieSAnc2V0X3BhcmFsbGVsJyBvciBvdGhl ciBleHRlbnNpb25zLgo+ID4gPiArTm8gdUFQSSBjaGFuZ2VzIGFyZSByZXF1aXJlZCB0byBleGVj YnVmMiBJT0NUTC4KPiA+IAo+ID4gQWRkZCBoZXJlIHRoZSBrZXJuZWxkb2MgaW5jbHVkZSBmb3Ig eW91ciBoZWFkZXIuCj4gPgo+IAo+IFN1cmUuCj4gCj4gTWF0dAo+ICAKPiA+IEFzaWRlIGZyb20g dGhlIGNvbW1lbnRzIGJ5IGFuZCBsYXJnZSB0aGlzIGxvb2tzIGdvb2QuIFRoZSBtYWluIGludGVy ZmFjZQo+ID4gYXQgbGVhc3QgaXMgY2xlYXIgYW5kIHdhcnRzLWZyZWUuCj4gPiAKPiA+IEFja2Vk LWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4gCj4gPiA+IC0t IAo+ID4gPiAyLjI4LjAKPiA+ID4gCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gCj4gPiAtLSAKPiA+IERhbmll bCBWZXR0ZXIKPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJ bnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK