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=-2.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 0168DC3A5A5 for ; Thu, 5 Sep 2019 09:34:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C8C1521743 for ; Thu, 5 Sep 2019 09:34:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="sIWDPSa7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387468AbfIEJet (ORCPT ); Thu, 5 Sep 2019 05:34:49 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:36753 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732503AbfIEJet (ORCPT ); Thu, 5 Sep 2019 05:34:49 -0400 Received: by mail-wr1-f66.google.com with SMTP id y19so1907757wrd.3 for ; Thu, 05 Sep 2019 02:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=pXNJ5zxAZdffoIhjgeNEzW79E8dcv18vdpXa7euQmqw=; b=sIWDPSa762NqP0jAqYvtDgXKYGJDvi3INGD/xgBdvJFSKvCGi0oicG9EtoYeblRFIH VbYG3uNcqdBzCiaVs5YAHpMFhVsfpQ5Y7jzBuGrP5uP5ndrIhK8RvE5YB+TqjCT/Pqee o2FnNt245G4HhUbLeNVwmiC0gfkWavIs1JKKYUG+hVq/G+eqJczbl1u7eBjWvPiOsGRE qTD0JVm4lLDxG79xIOJhVLLVOvDQPs+hAH++0sIRB2xNadNOmlTg9VP8ih5lUr1YUUTP OP4YiTMiqAe4xI/yI2VK1PRF7lq9AyltPtunxBiWSqv06+MVn60oLAw8qnWkclrJnzWI rbqA== 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:user-agent; bh=pXNJ5zxAZdffoIhjgeNEzW79E8dcv18vdpXa7euQmqw=; b=rMJvd4w7u5Lhi2Sr1p5aWOeGTsGQKg3UuHEjxMNMAIjUCOlTeN6nz6AMw1rzPxAoqp wOIeFZb4PLvp7QHWp+5oFDvHUAhqfRn2dqm7Cte9hU2oLu9m5sVxEqL5KMudpgis+rCJ vT61ln5oIU9NxDbSbkbB4pYs5D+4LTLIF+iV0CN2XQCEDPzZoEM3IG9LXZpcxdKysIor 7iZIzogEETEB0GuJIwi3hGrAXGGdFNzo3JypZMOqOhD825dpcK3MzdJ258zEvOwbkwEo ANCVfYLXbXby02/MnTTdzd5p7bs87rs792OG0Cx8TNu3ut8G5NbyQB9tmgXZ5mp+OS87 rK0w== X-Gm-Message-State: APjAAAWOcm3JmOXUQ0WX4NX6aPLmirhI0BHFGeI1rI8n57HRP6Qzcy0O oPcOluHcEgz5dGtHbaczvBxfqg== X-Google-Smtp-Source: APXvYqz+PlZ2++c+1pdnHHC8kczGTCTfRXI8OA/X49x2MsnB2O2SZaoocQz3z6r0C4XzJrFHZuK99g== X-Received: by 2002:a5d:4247:: with SMTP id s7mr1786602wrr.110.1567676086829; Thu, 05 Sep 2019 02:34:46 -0700 (PDT) Received: from dell ([95.147.198.36]) by smtp.gmail.com with ESMTPSA id o9sm2221110wrh.46.2019.09.05.02.34.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 05 Sep 2019 02:34:46 -0700 (PDT) Date: Thu, 5 Sep 2019 10:34:44 +0100 From: Lee Jones To: Wolfram Sang Cc: Bjorn Andersson , alokc@codeaurora.org, agross@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com, linux-i2c@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] i2c: qcom-geni: Provide an option to select FIFO processing Message-ID: <20190905093444.GE26880@dell> References: <20190904113613.14997-1-lee.jones@linaro.org> <20190904203548.GC580@tuxbook-pro> <20190904212337.GF23608@ninjato> <20190905071103.GX26880@dell> <20190905091617.GC1157@kunai> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190905091617.GC1157@kunai> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Thu, 05 Sep 2019, Wolfram Sang wrote: > > > It looks like a workaround to me. It would be interesting to hear which > > > I2C client breaks with DMA and if it's driver can't be fixed somehow > > > instead. But even if we agree on a workaround short term, adding a > > So, are there investigations running why this reboot happens? Yes, but they have been running for months, literally. Unfortunately, since these are production level platforms, all of the usual low-level debugging avenues (JTAG) have been closed off. Also, only a very small number of people have access to documentation, but even those who are in possession are stumped. Andy Gross did have one idea as to what might be happening, but it turned out to be a red herring. > > > Is there no other way to disable DMA which is local to this driver so we > > > can easily revert the workaround later? > > > > This is the most local low-impact solution (nomenclature aside). > > I disagree. You could use of_machine_is_compatible() and disable DMA for > that machine. Less impact because we save the workaround binding. That could also work. > > The beautiful thing about this approach is that, *if* the Geni SE DMA > > I'd say 'advantage' instead of 'beautiful' ;) Okay, "the advantage thing about ..." ;) > > ever starts working, we can remove the C code and any old properties > > left in older DTs just become NOOP. Older kernels with newer DTs > > (less of a priority) *still* won't work, but they don't work now > > anyway. > > Which is a clear disadvantage of that solution. It won't fix older > kernels. My suggestion above should fix them, too. Not sure how this is possible. Unless you mean LTS? > > The offending line can be found at [0]. There is no obvious bug to > > fix and this code obviously works well on some of the hardware > > platforms using it. But on our platform (Lenovo Yoga C630 - QCom > > SMD850) that final command, which initiates the DMA transaction, ends > > up rebooting the machine. > > Unless we know why the reboot happens on your platform, I'd be careful > with saying "work obviously well" on other platforms. Someone must have tested it? Surely ... ;) > > With regards to the nomenclature, my original suggestion was > > 'qcom,geni-se-no-dma'. Would that better suit your request? > > My suggestion: > > For 5.3, use of_machine_is_compatible() and we backport that. For later, > try to find out the root cause and fix it. If that can't be done, try to > set up a generic "disable-dma" property and use it. > > What do you think about that? Sounds okay to me. Let me code that up. -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog 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=-2.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 39B51C3A5A5 for ; Thu, 5 Sep 2019 09:35:00 +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 0C2C421743 for ; Thu, 5 Sep 2019 09:34:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="cNoD/hvQ"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="sIWDPSa7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0C2C421743 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org 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:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=e5GiInsLES6WcZwmagMzvJqIpHPJEX+TVCu5MvOnKcQ=; b=cNoD/hvQ3F2BDR 4+6GtX2YTMWr7FhJuukZGbrgvJ38+CD7LKbaXmI5CpRo7oEC4SQyD7s9nbuIiXaPaKS7zbALHuT9f Q7B+tDwiXoxOsbbjt3j+C1St60n42ffDiSJHDZgIXPWX+Gsu/1sPrIe0Nr252ydaUzr24h8aGn01J tpEtDlQRMTAiyKOoVMKdxWfYJrY7MA4WLj1GzwuffLG8Olnbnfj6JJxqliC1HG1PNoUif5bJeF+NA qLsDNwsc4XTC0D+soVkOH1KVb+jCBPk2Qa0Yq5FiiMkmSmhAndFswvZ6ORd/dw//WIZunVfP0QxuB bTMEIOjWJ0b7GH1nttMQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i5oAM-0003L9-4O; Thu, 05 Sep 2019 09:34:58 +0000 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1i5oAC-0003Bd-9L for linux-arm-kernel@lists.infradead.org; Thu, 05 Sep 2019 09:34:49 +0000 Received: by mail-wr1-x443.google.com with SMTP id g7so1914961wrx.2 for ; Thu, 05 Sep 2019 02:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=pXNJ5zxAZdffoIhjgeNEzW79E8dcv18vdpXa7euQmqw=; b=sIWDPSa762NqP0jAqYvtDgXKYGJDvi3INGD/xgBdvJFSKvCGi0oicG9EtoYeblRFIH VbYG3uNcqdBzCiaVs5YAHpMFhVsfpQ5Y7jzBuGrP5uP5ndrIhK8RvE5YB+TqjCT/Pqee o2FnNt245G4HhUbLeNVwmiC0gfkWavIs1JKKYUG+hVq/G+eqJczbl1u7eBjWvPiOsGRE qTD0JVm4lLDxG79xIOJhVLLVOvDQPs+hAH++0sIRB2xNadNOmlTg9VP8ih5lUr1YUUTP OP4YiTMiqAe4xI/yI2VK1PRF7lq9AyltPtunxBiWSqv06+MVn60oLAw8qnWkclrJnzWI rbqA== 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:user-agent; bh=pXNJ5zxAZdffoIhjgeNEzW79E8dcv18vdpXa7euQmqw=; b=imgR+Izbzaipb9UDjz6XONFQbwDhgVc8exBxhjOZEvr6AbPoFCnAaw5LMUayv0a0Q4 vV2oZPD/qUqCI0eMa0/5PyzcEQM+aIOecUi8S9PZHLPL0CrsqREllE5rS1dH5/kcQIvK 0QmnMeCcZDaKZskSey9XtTgO+vORs1HSDhwhzcy/V+3V6jiphEiMuNHp13FsWJN4HSBu h4djperP9BWoCdSgVtQkgfeCmb5lhH9R46FtftbiVCLl+XJKnaTnUrn0wU6w4B0PCmOj GE9BCLNn+vcNM0jw/DkfMdEXN9c3o1prfwgSGzzuYaHgMHthwttIOL/u3G9dy46KpdEI Oaqw== X-Gm-Message-State: APjAAAXo43d3wqhU6GabPmyYFZ/65jbbFxn3hBtXC2LS877x7UL6w5Ov NjYgccJnLfiv4p8lM4JIl+wmV44rKzA= X-Google-Smtp-Source: APXvYqz+PlZ2++c+1pdnHHC8kczGTCTfRXI8OA/X49x2MsnB2O2SZaoocQz3z6r0C4XzJrFHZuK99g== X-Received: by 2002:a5d:4247:: with SMTP id s7mr1786602wrr.110.1567676086829; Thu, 05 Sep 2019 02:34:46 -0700 (PDT) Received: from dell ([95.147.198.36]) by smtp.gmail.com with ESMTPSA id o9sm2221110wrh.46.2019.09.05.02.34.45 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 05 Sep 2019 02:34:46 -0700 (PDT) Date: Thu, 5 Sep 2019 10:34:44 +0100 From: Lee Jones To: Wolfram Sang Subject: Re: [PATCH 1/2] i2c: qcom-geni: Provide an option to select FIFO processing Message-ID: <20190905093444.GE26880@dell> References: <20190904113613.14997-1-lee.jones@linaro.org> <20190904203548.GC580@tuxbook-pro> <20190904212337.GF23608@ninjato> <20190905071103.GX26880@dell> <20190905091617.GC1157@kunai> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190905091617.GC1157@kunai> User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190905_023448_329077_EF564BD6 X-CRM114-Status: GOOD ( 23.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, agross@kernel.org, robh+dt@kernel.org, Bjorn Andersson , alokc@codeaurora.org, linux-i2c@vger.kernel.org, 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 T24gVGh1LCAwNSBTZXAgMjAxOSwgV29sZnJhbSBTYW5nIHdyb3RlOgo+ID4gPiBJdCBsb29rcyBs aWtlIGEgd29ya2Fyb3VuZCB0byBtZS4gSXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gaGVhciB3 aGljaAo+ID4gPiBJMkMgY2xpZW50IGJyZWFrcyB3aXRoIERNQSBhbmQgaWYgaXQncyBkcml2ZXIg Y2FuJ3QgYmUgZml4ZWQgc29tZWhvdwo+ID4gPiBpbnN0ZWFkLiBCdXQgZXZlbiBpZiB3ZSBhZ3Jl ZSBvbiBhIHdvcmthcm91bmQgc2hvcnQgdGVybSwgYWRkaW5nIGEKPiAKPiBTbywgYXJlIHRoZXJl IGludmVzdGlnYXRpb25zIHJ1bm5pbmcgd2h5IHRoaXMgcmVib290IGhhcHBlbnM/CgpZZXMsIGJ1 dCB0aGV5IGhhdmUgYmVlbiBydW5uaW5nIGZvciBtb250aHMsIGxpdGVyYWxseS4KClVuZm9ydHVu YXRlbHksIHNpbmNlIHRoZXNlIGFyZSBwcm9kdWN0aW9uIGxldmVsIHBsYXRmb3JtcywgYWxsIG9m IHRoZQp1c3VhbCBsb3ctbGV2ZWwgZGVidWdnaW5nIGF2ZW51ZXMgKEpUQUcpIGhhdmUgYmVlbiBj bG9zZWQgb2ZmLiAgQWxzbywKb25seSBhIHZlcnkgc21hbGwgbnVtYmVyIG9mIHBlb3BsZSBoYXZl IGFjY2VzcyB0byBkb2N1bWVudGF0aW9uLCBidXQKZXZlbiB0aG9zZSB3aG8gYXJlIGluIHBvc3Nl c3Npb24gYXJlIHN0dW1wZWQuCgpBbmR5IEdyb3NzIGRpZCBoYXZlIG9uZSBpZGVhIGFzIHRvIHdo YXQgbWlnaHQgYmUgaGFwcGVuaW5nLCBidXQgaXQKdHVybmVkIG91dCB0byBiZSBhIHJlZCBoZXJy aW5nLgoKPiA+ID4gSXMgdGhlcmUgbm8gb3RoZXIgd2F5IHRvIGRpc2FibGUgRE1BIHdoaWNoIGlz IGxvY2FsIHRvIHRoaXMgZHJpdmVyIHNvIHdlCj4gPiA+IGNhbiBlYXNpbHkgcmV2ZXJ0IHRoZSB3 b3JrYXJvdW5kIGxhdGVyPwo+ID4gCj4gPiBUaGlzIGlzIHRoZSBtb3N0IGxvY2FsIGxvdy1pbXBh Y3Qgc29sdXRpb24gKG5vbWVuY2xhdHVyZSBhc2lkZSkuCj4gCj4gSSBkaXNhZ3JlZS4gWW91IGNv dWxkIHVzZSBvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoKSBhbmQgZGlzYWJsZSBETUEgZm9yCj4g dGhhdCBtYWNoaW5lLiBMZXNzIGltcGFjdCBiZWNhdXNlIHdlIHNhdmUgdGhlIHdvcmthcm91bmQg YmluZGluZy4KClRoYXQgY291bGQgYWxzbyB3b3JrLgoKPiA+IFRoZSBiZWF1dGlmdWwgdGhpbmcg YWJvdXQgdGhpcyBhcHByb2FjaCBpcyB0aGF0LCAqaWYqIHRoZSBHZW5pIFNFIERNQQo+IAo+IEkn ZCBzYXkgJ2FkdmFudGFnZScgaW5zdGVhZCBvZiAnYmVhdXRpZnVsJyA7KQoKT2theSwgInRoZSBh ZHZhbnRhZ2UgdGhpbmcgYWJvdXQgLi4uIiA7KQoKPiA+IGV2ZXIgc3RhcnRzIHdvcmtpbmcsIHdl IGNhbiByZW1vdmUgdGhlIEMgY29kZSBhbmQgYW55IG9sZCBwcm9wZXJ0aWVzCj4gPiBsZWZ0IGlu IG9sZGVyIERUcyBqdXN0IGJlY29tZSBOT09QLiAgT2xkZXIga2VybmVscyB3aXRoIG5ld2VyIERU cwo+ID4gKGxlc3Mgb2YgYSBwcmlvcml0eSkgKnN0aWxsKiB3b24ndCB3b3JrLCBidXQgdGhleSBk b24ndCB3b3JrIG5vdwo+ID4gYW55d2F5Lgo+IAo+IFdoaWNoIGlzIGEgY2xlYXIgZGlzYWR2YW50 YWdlIG9mIHRoYXQgc29sdXRpb24uIEl0IHdvbid0IGZpeCBvbGRlcgo+IGtlcm5lbHMuIE15IHN1 Z2dlc3Rpb24gYWJvdmUgc2hvdWxkIGZpeCB0aGVtLCB0b28uCgpOb3Qgc3VyZSBob3cgdGhpcyBp cyBwb3NzaWJsZS4gIFVubGVzcyB5b3UgbWVhbiBMVFM/Cgo+ID4gVGhlIG9mZmVuZGluZyBsaW5l IGNhbiBiZSBmb3VuZCBhdCBbMF0uICBUaGVyZSBpcyBubyBvYnZpb3VzIGJ1ZyB0bwo+ID4gZml4 IGFuZCB0aGlzIGNvZGUgb2J2aW91c2x5IHdvcmtzIHdlbGwgb24gc29tZSBvZiB0aGUgaGFyZHdh cmUKPiA+IHBsYXRmb3JtcyB1c2luZyBpdC4gIEJ1dCBvbiBvdXIgcGxhdGZvcm0gKExlbm92byBZ b2dhIEM2MzAgLSBRQ29tCj4gPiBTTUQ4NTApIHRoYXQgZmluYWwgY29tbWFuZCwgd2hpY2ggaW5p dGlhdGVzIHRoZSBETUEgdHJhbnNhY3Rpb24sIGVuZHMKPiA+IHVwIHJlYm9vdGluZyB0aGUgbWFj aGluZS4KPiAKPiBVbmxlc3Mgd2Uga25vdyB3aHkgdGhlIHJlYm9vdCBoYXBwZW5zIG9uIHlvdXIg cGxhdGZvcm0sIEknZCBiZSBjYXJlZnVsCj4gd2l0aCBzYXlpbmcgIndvcmsgb2J2aW91c2x5IHdl bGwiIG9uIG90aGVyIHBsYXRmb3Jtcy4KClNvbWVvbmUgbXVzdCBoYXZlIHRlc3RlZCBpdD8gIFN1 cmVseSAuLi4gOykKCj4gPiBXaXRoIHJlZ2FyZHMgdG8gdGhlIG5vbWVuY2xhdHVyZSwgbXkgb3Jp Z2luYWwgc3VnZ2VzdGlvbiB3YXMKPiA+ICdxY29tLGdlbmktc2Utbm8tZG1hJy4gIFdvdWxkIHRo YXQgYmV0dGVyIHN1aXQgeW91ciByZXF1ZXN0Pwo+IAo+IE15IHN1Z2dlc3Rpb246Cj4gCj4gRm9y IDUuMywgdXNlIG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgpIGFuZCB3ZSBiYWNrcG9ydCB0aGF0 LiBGb3IgbGF0ZXIsCj4gdHJ5IHRvIGZpbmQgb3V0IHRoZSByb290IGNhdXNlIGFuZCBmaXggaXQu IElmIHRoYXQgY2FuJ3QgYmUgZG9uZSwgdHJ5IHRvCj4gc2V0IHVwIGEgZ2VuZXJpYyAiZGlzYWJs ZS1kbWEiIHByb3BlcnR5IGFuZCB1c2UgaXQuCj4gCj4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQg dGhhdD8KClNvdW5kcyBva2F5IHRvIG1lLiAgTGV0IG1lIGNvZGUgdGhhdCB1cC4KCi0tIApMZWUg Sm9uZXMgW+adjueQvOaWr10KTGluYXJvIFNlcnZpY2VzIFRlY2huaWNhbCBMZWFkCkxpbmFyby5v cmcg4pSCIE9wZW4gc291cmNlIHNvZnR3YXJlIGZvciBBUk0gU29DcwpGb2xsb3cgTGluYXJvOiBG YWNlYm9vayB8IFR3aXR0ZXIgfCBCbG9nCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==