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=-1.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED 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 4485EC43381 for ; Fri, 15 Mar 2019 10:11:55 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 14C762186A for ; Fri, 15 Mar 2019 10:11:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="mmbmEXlX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14C762186A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=daenzer.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=3ubFz3hVFE6J43sDJPHL+ML8E2wwexzsqfTk4gbcLkg=; b=mmbmEXlXcUf7Rr 9HLCInjfKUPpoEsbTT3XckYvH443tT5cdI90/EPjMjPNQoojjWpIsmT6hVeFWd8ptYzBAROR+z+J7 ciHCBnd40Sf+3WW9Ow/uP526jBZyVchsCN6tv4031xtMdOptuL9Ep8FwU210PuUwGqhfmvHTUnjTd 6xrHYE65JHFJmEKWcsHqVdmGXJsVG0fLQi3FD8MB5/N8VCnMIwFN4QB+NM5mxDT8C1nanKfWDmxWT TFc20oHyznhIFcbj785IymBaTKz8v3YPg/IPVe5CQTE/PALUDTwj9zyc05LVL1KY4DwolgQW8nEwG jJgEeLrUixwFlmGdptng==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4joc-0005Da-3H; Fri, 15 Mar 2019 10:11:50 +0000 Received: from mail.netline.ch ([148.251.143.178] helo=netline-mail3.netline.ch) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4joX-0005Cm-Th; Fri, 15 Mar 2019 10:11:48 +0000 Received: from localhost (localhost [127.0.0.1]) by netline-mail3.netline.ch (Postfix) with ESMTP id 391BE2A6054; Fri, 15 Mar 2019 11:11:41 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at netline-mail3.netline.ch Received: from netline-mail3.netline.ch ([127.0.0.1]) by localhost (netline-mail3.netline.ch [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 8JFjP8d7FJys; Fri, 15 Mar 2019 11:11:40 +0100 (CET) Received: from thor (116.245.63.188.dynamic.wline.res.cust.swisscom.ch [188.63.245.116]) by netline-mail3.netline.ch (Postfix) with ESMTPSA id 3874E2A6053; Fri, 15 Mar 2019 11:11:40 +0100 (CET) Received: from [::1] by thor with esmtp (Exim 4.92) (envelope-from ) id 1h4joO-0007MC-GK; Fri, 15 Mar 2019 11:11:36 +0100 Subject: Re: [PATCH v2 1/5] drm/rockchip: fix fb references in async update To: Helen Koike , Tomasz Figa , Boris Brezillon References: <20190312022204.2775-1-helen.koike@collabora.com> <20190312022204.2775-2-helen.koike@collabora.com> <20190312073438.05ad8173@collabora.com> <20190312165243.5b771e4a@collabora.com> <05750143-708b-b84e-af67-82ec6815bd89@daenzer.net> From: =?UTF-8?Q?Michel_D=c3=a4nzer?= Openpgp: preference=signencrypt Autocrypt: addr=michel@daenzer.net; prefer-encrypt=mutual; keydata= mQGiBDsehS8RBACbsIQEX31aYSIuEKxEnEX82ezMR8z3LG8ktv1KjyNErUX9Pt7AUC7W3W0b LUhu8Le8S2va6hi7GfSAifl0ih3k6Bv1Itzgnd+7ZmSrvCN8yGJaHNQfAevAuEboIb+MaVHo 9EMJj4ikOcRZCmQWw7evu/D9uQdtkCnRY9iJiAGxbwCguBHtpoGMxDOINCr5UU6qt+m4O+UD /355ohBBzzyh49lTj0kTFKr0Ozd20G2FbcqHgfFL1dc1MPyigej2gLga2osu2QY0ObvAGkOu WBi3LTY8Zs8uqFGDC4ZAwMPoFy3yzu3ne6T7d/68rJil0QcdQjzzHi6ekqHuhst4a+/+D23h Za8MJBEcdOhRhsaDVGAJSFEQB1qLBACOs0xN+XblejO35gsDSVVk8s+FUUw3TSWJBfZa3Imp V2U2tBO4qck+wqbHNfdnU/crrsHahjzBjvk8Up7VoY8oT+z03sal2vXEonS279xN2B92Tttr AgwosujguFO/7tvzymWC76rDEwue8TsADE11ErjwaBTs8ZXfnN/uAANgPLQjTWljaGVsIERh ZW56ZXIgPG1pY2hlbEBkYWVuemVyLm5ldD6IXgQTEQIAHgUCQFXxJgIbAwYLCQgHAwIDFQID AxYCAQIeAQIXgAAKCRBaga+OatuyAIrPAJ9ykonXI3oQcX83N2qzCEStLNW47gCeLWm/QiPY jqtGUnnSbyuTQfIySkK5AQ0EOx6FRRAEAJZkcvklPwJCgNiw37p0GShKmFGGqf/a3xZZEpjI qNxzshFRFneZze4f5LhzbX1/vIm5+ZXsEWympJfZzyCmYPw86QcFxyZflkAxHx9LeD+89Elx bw6wT0CcLvSv8ROfU1m8YhGbV6g2zWyLD0/naQGVb8e4FhVKGNY2EEbHgFBrAAMGA/0VktFO CxFBdzLQ17RCTwCJ3xpyP4qsLJH0yCoA26rH2zE2RzByhrTFTYZzbFEid3ddGiHOBEL+bO+2 GNtfiYKmbTkj1tMZJ8L6huKONaVrASFzLvZa2dlc2zja9ZSksKmge5BOTKWgbyepEc5qxSju YsYrX5xfLgTZC5abhhztpYhGBBgRAgAGBQI7HoVFAAoJEFqBr45q27IAlscAn2Ufk2d6/3p4 Cuyz/NX7KpL2dQ8WAJ9UD5JEakhfofed8PSqOM7jOO3LCA== Message-ID: <61b8420e-9b63-b67f-e9a8-fb8a0cb7d219@daenzer.net> Date: Fri, 15 Mar 2019 11:11:36 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-CA X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190315_031146_257755_4CEA9D43 X-CRM114-Status: GOOD ( 28.41 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?Q?St=c3=a9phane_Marchesin?= , Sean Paul , David Airlie , Daniel Vetter , Linux Kernel Mailing List , dri-devel , "open list:ARM/Rockchip SoC..." , "list@263.net:IOMMU DRIVERS" , kernel@collabora.com, nicholas.kazlauskas@amd.com, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjAxOS0wMy0xNCA2OjUxIHAubS4sIEhlbGVuIEtvaWtlIHdyb3RlOgo+IE9uIDMvMTQvMTkg NjoxNSBBTSwgTWljaGVsIETDpG56ZXIgd3JvdGU6Cj4+IE9uIDIwMTktMDMtMTMgNzowOCBwLm0u LCBIZWxlbiBLb2lrZSB3cm90ZToKPj4+IE9uIDMvMTMvMTkgNjo1OCBBTSwgTWljaGVsIETDpG56 ZXIgd3JvdGU6Cj4+Pj4gT24gMjAxOS0wMy0xMyA0OjQyIGEubS4sIFRvbWFzeiBGaWdhIHdyb3Rl Ogo+Pj4+PiBPbiBXZWQsIE1hciAxMywgMjAxOSBhdCAxMjo1MiBBTSBCb3JpcyBCcmV6aWxsb24K Pj4+Pj4gPGJvcmlzLmJyZXppbGxvbkBjb2xsYWJvcmEuY29tPiB3cm90ZToKPj4+Pj4+IE9uIFR1 ZSwgMTIgTWFyIDIwMTkgMTI6MzQ6NDUgLTAzMDAKPj4+Pj4+IEhlbGVuIEtvaWtlIDxoZWxlbi5r b2lrZUBjb2xsYWJvcmEuY29tPiB3cm90ZToKPj4+Pj4+PiBPbiAzLzEyLzE5IDM6MzQgQU0sIEJv cmlzIEJyZXppbGxvbiB3cm90ZToKPj4+Pj4+Pj4gT24gTW9uLCAxMSBNYXIgMjAxOSAyMzoyMTo1 OSAtMDMwMAo+Pj4+Pj4+PiBIZWxlbiBLb2lrZSA8aGVsZW4ua29pa2VAY29sbGFib3JhLmNvbT4g d3JvdGU6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfZHJtX3ZvcC5jCj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX3ZvcC5jCj4+Pj4+Pj4+PiBAQCAtOTEyLDMwICs5MTIsMzEgQEAgc3Rh dGljIHZvaWQgdm9wX3BsYW5lX2F0b21pY19hc3luY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3N0YXRlKQo+Pj4+Pj4+Pj4gIHsKPj4+Pj4+Pj4+ICAg IHN0cnVjdCB2b3AgKnZvcCA9IHRvX3ZvcChwbGFuZS0+c3RhdGUtPmNydGMpOwo+Pj4+Pj4+Pj4g LSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4+Pj4+Pj4+PiArICBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIgPSBwbGFuZS0+c3RhdGUtPmZiOwo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+IC0gIHBsYW5lX3N0YXRlID0gcGxhbmUtPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRl X3N0YXRlKHBsYW5lKTsKPj4+Pj4+Pj4+IC0gIHBsYW5lX3N0YXRlLT5jcnRjX3ggPSBuZXdfc3Rh dGUtPmNydGNfeDsKPj4+Pj4+Pj4+IC0gIHBsYW5lX3N0YXRlLT5jcnRjX3kgPSBuZXdfc3RhdGUt PmNydGNfeTsKPj4+Pj4+Pj4+IC0gIHBsYW5lX3N0YXRlLT5jcnRjX2ggPSBuZXdfc3RhdGUtPmNy dGNfaDsKPj4+Pj4+Pj4+IC0gIHBsYW5lX3N0YXRlLT5jcnRjX3cgPSBuZXdfc3RhdGUtPmNydGNf dzsKPj4+Pj4+Pj4+IC0gIHBsYW5lX3N0YXRlLT5zcmNfeCA9IG5ld19zdGF0ZS0+c3JjX3g7Cj4+ Pj4+Pj4+PiAtICBwbGFuZV9zdGF0ZS0+c3JjX3kgPSBuZXdfc3RhdGUtPnNyY195Owo+Pj4+Pj4+ Pj4gLSAgcGxhbmVfc3RhdGUtPnNyY19oID0gbmV3X3N0YXRlLT5zcmNfaDsKPj4+Pj4+Pj4+IC0g IHBsYW5lX3N0YXRlLT5zcmNfdyA9IG5ld19zdGF0ZS0+c3JjX3c7Cj4+Pj4+Pj4+PiAtCj4+Pj4+ Pj4+PiAtICBpZiAocGxhbmVfc3RhdGUtPmZiICE9IG5ld19zdGF0ZS0+ZmIpCj4+Pj4+Pj4+PiAt ICAgICAgICAgIGRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgbmV3X3N0 YXRlLT5mYik7Cj4+Pj4+Pj4+PiAtCj4+Pj4+Pj4+PiAtICBzd2FwKHBsYW5lX3N0YXRlLCBwbGFu ZS0+c3RhdGUpOwo+Pj4+Pj4+Pj4gLQo+Pj4+Pj4+Pj4gLSAgaWYgKHBsYW5lLT5zdGF0ZS0+ZmIg JiYgcGxhbmUtPnN0YXRlLT5mYiAhPSBuZXdfc3RhdGUtPmZiKSB7Cj4+Pj4+Pj4+PiArICAvKgo+ Pj4+Pj4+Pj4gKyAgICogQSBzY2Fub3V0IGNhbiBzdGlsbCBiZSBvY2N1cnJpbmcsIHNvIHdlIGNh bid0IGRyb3AgdGhlIHJlZmVyZW5jZSB0bwo+Pj4+Pj4+Pj4gKyAgICogdGhlIG9sZCBmcmFtZWJ1 ZmZlci4gVG8gc29sdmUgdGhpcyB3ZSBnZXQgYSByZWZlcmVuY2UgdG8gb2xkX2ZiIGFuZAo+Pj4+ Pj4+Pj4gKyAgICogc2V0IGEgd29ya2VyIHRvIHJlbGVhc2UgaXQgbGF0ZXIuCj4+Pj4+Pj4+Cj4+ Pj4+Pj4+IEhtLCBkb2Vzbid0IGxvb2sgbGlrZSBhbiBhc3luYyB1cGRhdGUgdG8gbWUgaWYgd2Ug aGF2ZSB0byB3YWl0IGZvciB0aGUKPj4+Pj4+Pj4gbmV4dCBWQkxBTksgdG8gaGFwcGVuIHRvIGdl dCB0aGUgbmV3IGNvbnRlbnQgb24gdGhlIHNjcmVlbi4gTWF5YmUgd2UKPj4+Pj4+Pj4gc2hvdWxk IHJlamVjdCBhc3luYyB1cGRhdGVzIHdoZW4gb2xkX2ZiICE9IG5ld19mYiBpbiB0aGUgcmsKPj4+ Pj4+Pj4gLT5hc3luY19jaGVjaygpIGhvb2suCj4+Pj4+Pj4KPj4+Pj4+PiBVbmxlc3MgSSBhbSBt aXN1bmRlcnN0YW5kaW5nIHRoaXMsIHdlIGRvbid0IHdhaXQgaGVyZSwgd2UganVzdCBncmFiIGEK Pj4+Pj4+PiByZWZlcmVuY2UgdG8gdGhlIGZiIGluIGNhc2UgaXQgaXMgYmVpbmcgc3RpbGwgdXNl ZCBieSB0aGUgaHcsIHNvIGl0Cj4+Pj4+Pj4gZG9lc24ndCBnZXQgcmVsZWFzZWQgcHJlbWF0dXJl bHkuCj4+Pj4+Pgo+Pj4+Pj4gSSB3YXMganVzdCByZWFjdGluZyB0byB0aGUgY29tbWVudCB0aGF0 IHNheXMgdGhlIG5ldyBGQiBzaG91bGQgc3RheQo+Pj4+Pj4gYXJvdW5kIHVudGlsIHRoZSBuZXh0 IFZCTEFOSyBldmVudCBoYXBwZW5zLiBJZiB0aGUgRkIgbXVzdCBzdGF5IGFyb3VuZAo+Pj4+Pj4g dGhhdCBwcm9iYWJseSBtZWFucyB0aGUgSFcgaXMgc3RpbGwgdXNpbmcsIHdoaWNoIG1hZGUgbWUg d29uZGVyIGlmIHRoaXMKPj4+Pj4+IEhXIGFjdHVhbGx5IHN1cHBvcnRzIGFzeW5jIHVwZGF0ZSAo d2hlcmUgYXN5bmMgbWVhbnMgInVwZGF0ZSBub3cgYW5kCj4+Pj4+PiBkb24ndCBjYXJlIGFib3V0 IGFib3V0IHRlYXJpbmciKS4gT3IgbWF5YmUgaXQgdGFrZXMgc29tZSB0aW1lIHRvIHN3aXRjaAo+ Pj4+Pj4gdG8gdGhlIG5ldyBGQiBhbmQgd2FpdGluZyBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIHJl bGVhc2UgdGhlIG9sZCBGQiB3YXMKPj4+Pj4+IGFuIGVhc3kgc29sdXRpb24gdG8gbm90IHdhaXQg Zm9yIHRoZSBmbGlwIHRvIGFjdHVhbGx5IGhhcHBlbiBpbgo+Pj4+Pj4gLT5hc3luY191cGRhdGUo KSAod2hpY2ggaXMga2luZCBvZiBhIGNvbWJpbmF0aW9uIG9mIGFzeW5jK25vbi1ibG9ja2luZyku Cj4+Pj4+Cj4+Pj4+IFRoZSBoYXJkd2FyZSBzd2l0Y2hlcyBmcmFtZWJ1ZmZlcnMgb24gdmJsYW5r LCBzbyB3aGF0ZXZlciBmcmFtZWJ1ZmZlcgo+Pj4+PiBpcyBjdXJyZW50bHkgYmVpbmcgc2Nhbm5l ZCBvdXQgZnJvbSBuZWVkcyB0byBzdGF5IHRoZXJlIHVudGlsIHRoZQo+Pj4+PiBoYXJkd2FyZSBz d2l0Y2hlcyB0byB0aGUgbmV3IG9uZSBpbiBzaGFkb3cgcmVnaXN0ZXJzLiBJZiB0aGF0IGRvZXNu J3QKPj4+Pj4gaGFwcGVuLCB5b3UgZ2V0IElPTU1VIGZhdWx0cyBhbmQgdGhlIGRpc3BsYXkgY29u dHJvbGxlciBzdG9wcyB3b3JraW5nCj4+Pj4+IHNpbmNlIHdlIGRvbid0IGhhdmUgYW55IGZhdWx0 IGhhbmRsaW5nIGN1cnJlbnRseSwganVzdCBwcmludGluZyBhCj4+Pj4+IG1lc3NhZ2UuCj4+Pj4K Pj4+PiBTb3VuZHMgbGlrZSB5b3VyIGhhcmR3YXJlIGRvZXNuJ3QgYWN0dWFsbHkgc3VwcG9ydCBh c3luYyBmbGlwcy4gSXQncwo+Pj4+IHByb2JhYmx5IGJldHRlciBmb3IgdGhlIGRyaXZlciBub3Qg dG8gcHJldGVuZCBvdGhlcndpc2UuCj4+Pgo+Pj4gSSB0aGluayB3ZWUgbmVlZCB0byBjbGFyaWZ5 IHRoZSBtZWFuaW5nIG9mIHRoZSBhc3luY191cGRhdGUgY2FsbGJhY2sKPj4+IChhbmQgd2Ugc2hv dWxkIGNsYXJpZnkgaXQgaW4gdGhlIGRvY3MpLgo+Pj4KPj4+IFRoZSB3YXkgSSB1bmRlcnN0YW5k IHdoYXQgdGhlIGFzeW5jX3VwZGF0ZSBjYWxsYmFjayBzaG91bGQgZG8gaXM6IGRvbid0Cj4+PiBi bG9jayAoaS5lLiBkb24ndCB3YWl0IGZvciB0aGUgbmV4dCB2YmxhbmspLAo+Pgo+PiBOb3RlIHRo YXQgdGhvc2UgYXJlIHR3byBzZXBhcmF0ZSB0aGluZ3MuICJBc3luYyBmbGlwcyIgYXJlIGFib3V0 ICJkb24ndAo+PiB3YWl0IGZvciB2YmxhbmsiLCBub3QgYWJvdXQgImRvbid0IGJsb2NrIi4KPj4K Pj4KPj4+IGFuZCB1cGRhdGUgdGhlIGh3IHN0YXRlIGF0IHNvbWUgcG9pbnQgd2l0aCB0aGUgbGF0 ZXN0IHN0YXRlIGZyb20gdGhlCj4+PiBsYXN0IGNhbGwgdG8gYXN5bmNfdXBkYXRlLgo+Pj4KPj4+ IFdoaWNoIG1lYW5zIHRoYXQ6IGFueSBkcml2ZXIgY2FuIGltcGxlbWVudCB0aGUgYXN5bmNfdXBk YXRlIGNhbGxiYWNrLAo+Pj4gaW5kZXBlbmRlbnRseSBpZiBpdCBzdXBwb3J0cyBjaGFuZ2luZyBp dHMgc3RhdGUgcmlnaHQgYXdheSBvciBub3QuCj4+PiBJZiBodyBzdXBwb3J0cywgYXN5bmNfdXBk YXRlIGNhbiBjaGFuZ2UgdGhlIGh3IHN0YXRlIHJpZ2h0IGF3YXksIGlmIG5vdCwKPj4+IHRoZW4g Y2hhbmdlcyB3aWxsIGJlIGFwcGxpZWQgaW4gdGhlIG5leHQgdmJsYW5rIChpdCBjYW4gZXZlbiBh bWVuZCB0aGUKPj4+IHBlbmRpbmcgY29tbWl0IGlmIHRoZXJlIGlzIG9uZSkuCj4+PiBXaXRoIHRo aXMsIHdlIGNhbiByZW1vdmUgYWxsIHRoZSBsZWdhY3kgY3Vyc29yIGNvZGUgdG8gdXNlIHRoZQo+ Pj4gYXN5bmNfdXBkYXRlIGNhbGxiYWNrLCBzaW5jZSBhc3luY191cGRhdGUgY2FuIGJlIGNhbGxl ZCAxMDAgdGltZXMgYmVmb3JlCj4+PiB0aGUgbmV4dCB2YmxhbmssIGFuZCB0aGUgbGF0ZXN0IHN0 YXRlIHdpbGwgYmUgc2V0IHRvIHRoZSBodyB3aXRob3V0Cj4+PiB3YWl0aW5nIDEwMCB2Ymxhbmtz Lgo+Pj4KPj4+IFBsZWFzZSwgbGV0IG1lIGtub3cgaWYgdGhpcyBpcyB5b3VyIHVuZGVyc3RhbmRp bmcgYXMgd2VsbC4gSWYgbm90LCB0aGVuCj4+PiB3ZSBuZWVkIHRvIHJlbW9kZWwgdGhpbmdzLgo+ Pgo+PiBXaGlsZSB0aGlzIG1heSBtYWtlIHNlbnNlIGZvciBjdXJzb3IgdXBkYXRlcywgSSBkb24n dCB0aGluayBpdCBkb2VzIGZvcgo+PiBhc3luYyBmbGlwcy4gSWYgdGhlIGZsaXAgb25seSBhY3R1 YWxseSB0YWtlcyBlZmZlY3QgZHVyaW5nIHRoZSBuZXh0Cj4+IHZibGFuaywgaXQgZG9lc24ndCBy ZWFsbHkgZml0IHRoZSBkZWZpbml0aW9uIGFuZCB1c2Vyc3BhY2UgZXhwZWN0YXRpb24KPj4gb2Yg YW4gYXN5bmMgZmxpcC4gSXQncyBiZXR0ZXIgdG8gY2xlYXJseSBjb21tdW5pY2F0ZSB0byB1c2Vy c3BhY2UgdGhhdAo+PiB0aGUgaGFyZHdhcmUgY2Fubm90IGRvIGFzeW5jIGZsaXBzLCB0aGFuIHRv IHByZXRlbmQgaXQgY2FuIGFuZCBmYWtlCj4+IHRoZW0uIFVzZXJzcGFjZSBoYXMgdG8gZGVhbCB3 aXRoIHRoaXMgYW55d2F5LCBzaW5jZSBhc3luYyBmbGlwcyB3ZXJlbid0Cj4+IGFsd2F5cyBzdXBw b3J0ZWQgaW4gZ2VuZXJhbC4KPiAKPiBXaGF0IGRvIHlvdSB0aGluayBpZiB3ZSBzZXBhcmF0ZSB0 d28gY29uY2VwdHMgaGVyZToKPiAKPiAtIGFtZW5kIG1vZGU6IHdvcmtzIGxpa2UgY3Vyc29yIHVw ZGF0ZXMsIGkuZSwgdXBkYXRlIHRoZSBodyBzdGF0ZSBhdAo+IHNvbWUgcG9pbnQgd2l0aCB0aGUg bGF0ZXN0IHN0YXRlIGZyb20gdGhlIGxhc3QgY2FsbCB0byBhc3luY191cGRhdGUuIE5vCj4gc3Bl Y2lhbCBoYXJkd2FyZSBzdXBwb3J0IGlzIHJlcXVpcmVkLgo+IAo+IC0gYXN5bmMgdXBkYXRlOiB1 cGRhdGUgaHcgc3RhdGUgaW1tZWRpYXRlbHkuIFRoaXMgZGVwZW5kcyBpZiB0aGUgaHcKPiBzdXBw b3J0cyBpdCBvciBub3QuCj4gCj4gRXZlcnkgYXN5bmMgdXBkYXRlIGlzIGFuIGFtZW5kLCBidXQg dGhlIG9wcG9zaXRlIGlzIG5vdCBuZWNlc3NhcmlseSB0cnVlLgo+IAo+IFdoYXQgZG8geW91IHRo aW5rIGlmIHdlIHJlbmFtZSB0aGUgY3VycmVudCBhc3luY191cGRhdGUgdG8gYW1lbmRfdXBkYXRl LAo+IGFuZCB3ZSBhZGQgYSBwYXJhbWV0ZXIgImZvcmNlX2FzeW5jIiB0byBpdD8gKG9yIG1heWJl Cj4gZm9yY2VfaW1tZWRpYXRlX3VwZGF0ZT8pCj4gVGhlbiBhbWVuZF9jaGVjayB3aXRoIGZvcmNl X2FzeW5jPTEgd291bGQgZmFpbCBpZiB0aGUgaGFyZHdhcmUgZG9lc24ndAo+IHN1cHBvcnQgaXQg KHdlIGNvdWxkIGFsc28gYWRkIGZsYWdzIGluIHRoZSBjYXBhYmlsaXRpZXMgdG8gaW5mb3JtCj4g dXNlcnNwYWNlIHRoZSBleHBlY3RlZCBiZWhhdmlvdXIgb2YgdGhpbmdzIGFuZCBpZiB0aGUgaHcg c3VwcG9ydHMKPiBmb3JjZV9zeW5jKS4KPiAKPiBMaWtlIHRoaXMsIHdlIGNhbiBpbXBsZW1lbnQg dGhlIGN1cnNvcnMgdXNpbmcgdGhlIGFtZW5kX3VwZGF0ZSAod2hpY2ggaXMKPiBub3cgY2FsbGVk IGFzeW5jX3VwZGF0ZSksIGFuZCBhc3luY19mbGlwcyB3aXRoIGFtZW5kX3VwZGF0ZSB3aXRoCj4g Zm9yY2VfYXN5bmM9MS4KCk1pZ2h0IGZvcmNlX2FzeW5jIG1ha2Ugc2Vuc2UgZm9yIGN1cnNvciB1 cGRhdGVzIGFzIHdlbGw/IEkgdGhvdWdodCBzb21lCmhhcmR3YXJlIHN1cHBvcnRlZCBIVyBjdXJz b3IgdXBkYXRlcyBvdXRzaWRlIG9mIHZibGFuaywgYnV0IEknbSBub3Qgc3VyZS4KCldpdGhvdXQg Zm9yY2VfYXN5bmMsIGFyZSBjdXJzb3IgdXBkYXRlcyBhbHdheXMgYXBwbGllZCB0byB0aGUgaGFy ZHdhcmUKb24gdGhlIG5leHQgdmJsYW5rLCBldmVuIGlmIHRoZSBwZW5kaW5nIGNvbW1pdCBpcyBk ZWxheWVkIGZ1cnRoZXIgKGUuZy4KYmVjYXVzZSBhIGZlbmNlIGl0IGRlcGVuZHMgb24gZG9lc24n dCBzaWduYWwgYmVmb3JlIHZibGFuayk/IElmIGN1cnNvcgp1cGRhdGVzIGNhbiBiZSBkZWxheWVk IGJleW9uZCB0aGUgbmV4dCB2YmxhbmssIHRoYXQgY2FuIHJlc3VsdCBpbiBiYWQKdXNlciBleHBl cmllbmNlLgoKCi0tIApFYXJ0aGxpbmcgTWljaGVsIETDpG56ZXIgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICBodHRwczovL3d3dy5hbWQuY29tCkxpYnJlIHNvZnR3YXJlIGVudGh1c2lhc3Qg ICAgICAgICAgICAgfCAgICAgICAgICAgICBNZXNhIGFuZCBYIGRldmVsb3BlcgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=