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=-0.7 required=3.0 tests=FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,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 63785C43381 for ; Wed, 6 Mar 2019 11:36:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2533C20684 for ; Wed, 6 Mar 2019 11:36:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729043AbfCFLgi (ORCPT ); Wed, 6 Mar 2019 06:36:38 -0500 Received: from mout.gmx.net ([212.227.17.22]:34877 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725267AbfCFLgi (ORCPT ); Wed, 6 Mar 2019 06:36:38 -0500 Received: from [10.10.11.100] ([95.88.214.118]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LgMCe-1hMD443bLY-00nl86; Wed, 06 Mar 2019 12:36:05 +0100 Subject: Re: stmmac / meson8b-dwmac From: Simon Huelck To: Jose Abreu , Sebastian Gottschall , Jerome Brunet , Martin Blumenstingl Cc: linux-amlogic@lists.infradead.org, Gpeppe.cavallaro@st.com, alexandre.torgue@st.com, Emiliano Ingrassia , netdev@vger.kernel.org References: <227be4e9-b0cc-a011-2558-71a17567246f@synopsys.com> <45e73e8c-a0fb-6f8f-8dc6-3aa2103fdda3@gmx.de> <4493b245-de93-46cd-327b-8091a3babc3a@gmx.de> <244d7c74-e0ca-a9c7-f4b0-3de7bec4024b@gmx.de> <1426d8ed40be0927c135aff25dcf989a11326932.camel@baylibre.com> <9074d29b-4cc9-87b6-009f-48280a4692c0@gmx.de> <8ec64936-c8fa-1f0e-68bf-2ad1d6e8f5d9@gmx.de> <3a040370-e7e5-990e-81dc-8e9bb0ab7761@gmx.de> <12d1d6de-2905-46a8-6481-d6f20c8e9d85@gmx.de> <2c4d9726-6c2a-cd95-0493-323f5f09e14a@synopsys.com> Openpgp: preference=signencrypt Autocrypt: addr=simonmail@gmx.de; prefer-encrypt=mutual; keydata= mQGiBD/bCNARBACE3URTBXZ/AA03NwRNtz03ewQn3uhvYSTjfqgplBtb3dfC4a79BXDRIWVX xPGH9Ewios1c8gMu3/RI2l3JzXoISfw5b0L/5igyPKV+sGuUA2FD27kYtPaaF/TqEWIv+Yxp 9DCjCX5IQSYyvCfcxcyEkY8eVWxnaAlV3zKRR8wn0wCglWIOtAugBcg1YXmoLpFZE8Ca0fkD /jG+n4U9DPfCgkbgjQ/dv2W2a0ZDHccA9N8AW/FTXGyXXO0e7ql9/kORJnp7jD7/Z9HCKpeS HajgxuX9Vhfx6bH1dAMfsg88+K8pOO9oulNX1+YffQyZWOfdbmnZDUzBt9HKR9Wgh8WoIyw9 TVluclzn6hYz+z9jbqHWMOsiCu8zA/0apHbW8vaIDT4+nNUxNdqU1TKa9kW47vNjwYYL0jZW TXNjDIRpqJVSugYVc/U847GoVoxyvtzre4TAbBV8h0BAOeMdxI5En67RGWzeNaMDJV1bwapj qdfj3e/X8rnGIfwz47rwztLNKoAIUlKrATwroiI7UNT+84G7H5qalu+Eu7QqU2ltb24gSHVl bGNrIDxzaW1vbi5odWVsY2tAZ29vZ2xlbWFpbC5jb20+iGIEExECACIFAlH7wL4CGyMGCwkI BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEJNSVvfBt05KlBQAn1JDO7e4H3N0WFJkZnxvObhk 2kiAAJwPdDd6T1TuGo4iDIENRhAX4AH2KrkBDQQ/2wjSEAQAj6JnDDQzIIYzPGsrHRvaq8vw n8VrZCbPRvkngGvtQIss5pH/MLeu9jLepDGO9WHByFSg4QJh8cINYwTLtX8Bu0naA6ZI46hn GyfxdRlxSU9dRqHpU3G0tymL1w3AER6aVSfdXQTmFgf61anKunbIIptkqzZurkjnxkwCE/RM RscABA0D/jhglpj8siSIAxs8XLVfKJrjzbYM9/wS0NfdSXBeQJiYtKrY0WMNsqjY50wDnLMg anORN/odT6mCwKI6xChzxEv/ta4+teZl92aitziSuqmtl+jm23DpOcUC7UBz2W1+TvnrhPR+ MKu8pPKAgsE8AI5uwCcNJx7V3bczYkIGaXybiEYEGBECAAYFAj/bCNIACgkQk1JW98G3Tko6 3wCfZBpZAUhUz/Rcp2rfg/YSKl4YLlEAoJN7e322OvHc2GQ9n1+tKLi6Og4c Message-ID: Date: Wed, 6 Mar 2019 12:35:49 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:vFFt0Xm5jJpP11UWTi+I390qKbEJlJjQRW0Ymn3M3NwTe8YDOhJ ERo5Bmb7HGBH6pYTfHY0EnIUTRIZQcGxqTmDN1EuRAVG5/JQW/kQVBiWB5UHZZ1nY8XHYyN iKuW78rRiCOCFwqhMUJNGluQ0BjdRkLU65sXZjKNTBPrlswrbVlR5R5DMwuJlBhh51QNyLL g9IZEXYdKnyM3nojTpHeQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:AhcqH0h0cnU=:tet32mP3b9ezmvD8rTsCLV oQQhj4834QL/o6Ab8C/G7qJ4l9OBpZ/OAWWd9oT8B2ARzzBLd8ewUU9gIQqDqn3WvGJnxPF9i pFzozLDYIlTAWULBCZO+R+3bbctyvoogADJvatlV0uyHRBIIk/GXIfn+Q/iftvfqz04o3Acyp 4B318krtjKLWgrDi4m/vak/t/6ftULwvT0h0f1DzIYbgf1TCPifhFCwRLoKlyWfofaoqaaEEC MFfWaAAf6QUB83yB9kFpAHhiQ/Iqm6YkSSV6jKf8h0+FHedccIUp/AVZDDqdGItxBHDMDcXFD peUXpvKk2WPacZ7FCn5p8l3bPKTjz7ge80KkeDhBdRQxLzUI+p+fDDSDnBsBWknwCJw9XKPlT IOA/oqsIGjCKRL47RlQdEaOFpSTbMqPLRM4drCYrDk62erf9/tAs72dVDtE43sXTFtgAot3f7 hDH3BN9fUX2MKzta7giVWRiq+qGEQ+oq5c4jqwOgbKrH2qml0ercMN7DQDhJllZTWMkIpGm6A B51TvZL7RoZuCCBH9AXO7K/e8+ZpZLF4pOiuh++DLPm+KTCxL/a1A/b7V25kZHi7SDhi2H9vF YF7psxKqPVNd27prheSv3NhcRGqB0FkC2wU1QNRccqDfpjqB5M3S9Co2Twi45F5LKg4OOw5Cv VL/rxYJJZHYpkiSMwd9vyublUqZhxnWGtevFHKXJvIyNQ+dNvwRE2B3kwoHA22l5KtRpuGSRP Hvx401OuLyaFtBrp6/bZhedLoVD+wYXlj3hZg8w+Nc6n/gKvZjDRmeDcbCIUHmLLnzyaX5QEZ ixqf9hC9uWErJ6myQOYZT96Mzkwqbk6LRYIrxtRVy3Tor3v0P5mZa4/h+lzpQ0ux+u3BgJEDY R0NYDqXHTS6VcU4oudkZfHmWk/XY0nglKfkYEMzYBLTbIyUGR/B/lPP2H/ZGDM3vc7UbiKEbM Nk7zAuwO3xA== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi, i sorted out some more things: - i did not activate tcp window scaling , with this , iperf3 is reaching 930MBits now, this was related to my firewall and therefore my uplink. so the remaining topic is ( and im currently testing with next-20190306 ) TX is starving RX and the total bandwith seem to be limited to 930MBits instead of something like 930MBits * 2 for duplex. @Jose, do you have some hints on that ? i saw that you introduced patches for that , but somehow RX/TX are not equally sharing the NAPI budget. But i wonder why the TX queue and RX queue collide at all, shouldnt they be indipendent ? regards, Simon > Hi guys, > > > 1. i discovered something strange. when i never configure my external > VLAN interface UP ( firewall doesnt start, traffic shaper CAKE doesnt > start), my non duplex iperf bandwidth increases from 600MBits to 930. > > 2.  duplex isnt working, TX is totally starving RX, the total bandwidth > is 900MBits, whats going on there ? > > 3. i had a MTU issue ( was set to 1500, but due to VLANs etc 1450 would > be better ) but this didnt change performance > 4. even when i up eth0.4, then i down eth0.4, then flush iptables and > shaper were never added, i drop to 600MBits .... > > questions: > - why is duplex still not working even so the kernel says so ? > - why is TX totally starving RX, even so duplex is "on" > - when i flush all my iptable rules, and the traffic shaper, still im > bond to 600MBits ... very strange, someone got an idea ? upping eth0.4 > is cutting the performance, even when other VLAN IFs like eth0.3, > eth0.2, eth0.5 are up and bridged ( eth0.4 isnt bridged somewhere ) > > > > my setup: > > br-dmz          8000.7ef0fd9b157f       no              eth0.2 > br-guest                8000.001f1fbbbd60       no              wlan0 > br-iot          8000.7ef0fd9b157f       no              eth0.5 > br-lan          8000.001f1fbbbd61       no              eth0.3 >                                                         wlan0_1 >                                                         wlan2 > > eth0.4 is my uplink > > all the bridges are internally , eth0.4 is externally > > > C:\Users\Simon\Downloads\iperf3.6_64bit\iperf3.6_64bit>iperf3.exe -c > 10.10.11.1 -i1 > warning: Ignoring nonsense TCP MSS 0 > Connecting to host 10.10.11.1, port 5201 > [  5] local 10.10.11.100 port 52173 connected to 10.10.11.1 port 5201 > [ ID] Interval           Transfer     Bitrate > [  5]   0.00-1.00   sec   384 KBytes  3.14 Mbits/sec > [  5]   1.00-2.00   sec   384 KBytes  3.15 Mbits/sec > [  5]   2.00-3.00   sec  1.12 MBytes  9.44 Mbits/sec > [  5]   3.00-4.00   sec  2.00 MBytes  16.8 Mbits/sec > [  5]   4.00-5.00   sec  2.38 MBytes  19.9 Mbits/sec > [  5]   5.00-6.00   sec  3.12 MBytes  26.2 Mbits/sec > [  5]   6.00-7.00   sec  4.75 MBytes  39.8 Mbits/sec > [  5]   7.00-8.00   sec  68.4 MBytes   574 Mbits/sec > [  5]   8.00-9.00   sec   104 MBytes   875 Mbits/sec > [  5]   9.00-10.00  sec   105 MBytes   881 Mbits/sec > - - - - - - - - - - - - - - - - - - - - - - - - - > [ ID] Interval           Transfer     Bitrate > [  5]   0.00-10.00  sec   292 MBytes   245 Mbits/sec                  sender > [  5]   0.00-10.04  sec   292 MBytes   244 Mbits/sec                  > receiver > > iperf Done. > > > root@odroidc2:~# iperf3 -c 10.10.11.100 -i1 > Connecting to host 10.10.11.100, port 5201 > [  5] local 10.10.11.1 port 60022 connected to 10.10.11.100 port 5201 > [ ID] Interval           Transfer     Bitrate         Retr  Cwnd > [  5]   0.00-1.00   sec   112 MBytes   941 Mbits/sec    0    417 KBytes > [  5]   1.00-2.00   sec   113 MBytes   945 Mbits/sec    0    487 KBytes > [  5]   2.00-3.00   sec   112 MBytes   940 Mbits/sec    0    487 KBytes > [  5]   3.00-4.00   sec   112 MBytes   941 Mbits/sec    0    512 KBytes > [  5]   4.00-5.01   sec   109 MBytes   907 Mbits/sec    0    543 KBytes > [  5]   5.01-6.01   sec   109 MBytes   911 Mbits/sec    0    543 KBytes > [  5]   6.01-7.01   sec   108 MBytes   902 Mbits/sec    0    543 KBytes > [  5]   7.01-8.01   sec   108 MBytes   905 Mbits/sec    0    543 KBytes > [  5]   8.01-9.00   sec   106 MBytes   895 Mbits/sec    0    543 KBytes > [  5]   9.00-10.00  sec   106 MBytes   891 Mbits/sec    0    543 KBytes > - - - - - - - - - - - - - - - - - - - - - - - - - > [ ID] Interval           Transfer     Bitrate         Retr > [  5]   0.00-10.00  sec  1.07 GBytes   918 Mbits/sec    0             sender > [  5]   0.00-10.04  sec  1.07 GBytes   915 Mbits/sec                  > receiver > > -- > > > Mar  5 09:46:03 localhost kernel: [  105.534204] meson8b-dwmac > c9410000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off > > iperf Done. > root@odroidc2:~# > > > > > regards, > Simon > > Am 01.03.2019 um 10:23 schrieb Jose Abreu: >> Hi Simon, >> >> On 2/27/2019 7:02 PM, Simon Huelck wrote: >>> Hi, >>> >>> >>> the thing is , that im not a stmmac developer. Yes , maybe i can bissect >>> it and yes you are lucky since im a C-developer since a long time for >>> embedded systems. >>> >>> The problem is that i dont understand the structure of stmmac and im not >>> aware of any documentation about the driver structure nor the underlying >>> ethernet hardware ( even though im used to ethernet hardware in embedded >>> environment ). So how shall i recognize the relevant change between >>> 4.14.29 and 5.0rc8 ? >>> >>> >>> Is it in the DTS/DTB, wrong hardware description ? Is it in the code ? >>> how is the duplex hardware working on this piece ? >>> >>> I can try to support you the best i can, but i have little chances to >>> analyze it myself. At which measurements / counters is it possible to >>> see that duplex is fully working ?  Why did even the non-duplex >>> bandwidth regress from 900MBits to 650 ? Why is that 650 MBits dividing >>> up to TX and RX in summary when doing duplex ? Why is TX not starving in >>> duplex but RX ? >>> >>> From my point of view should be the following things given: >>> - the non duplex bandwidth should be somewhere around 900MBits , the HW >>> is capable of that >>> - TX should not influence RX or vice versa in duplex >>> - the duplex bandwidth should be 900MBits in both directions ( maybe a >>> bit asymetric when buffers in both dirs are not same ) >>> >>> I guess we need some profiling on stmmac and ( at least i need ) more >>> knowledge of the hardware and stmmac itself. Can someone point me to the >>> driver documentation, describing the functions in the code and the >>> structure ? How can i profile stmmac ( usually im using hardware / JTAG >>> debuggers at work, but here @home i got nothing like that ) >>> >>> So how do we continue ? >> When I said bissect I was meaning GIT Bissect [1]. You shouldn't >> need any development background for this. You just have to start >> bissect, compile, test and check if commit is good or not. >> >> I'm not very familiar with this feature but I think you can >> bissect pretty fast if you say you just want stmmac commits, >> check ("Cutting down bisection by giving more parameters to >> bisect start") on previous link ... In your case it would be >> stmmac changes, dts, and phy. >> >> [1] https://git-scm.com/docs/git-bisect >> >> Thanks, >> Jose Miguel Abreu > 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=-0.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,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 88E9CC43381 for ; Wed, 6 Mar 2019 11:36:42 +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 57EE620675 for ; Wed, 6 Mar 2019 11:36:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="BMS1Snef" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 57EE620675 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-amlogic-bounces+linux-amlogic=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:References:To:From:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QbH3iIu4z8Mk/ouuKM1VFGDauE1HqCjUbkdiHYbWB+8=; b=BMS1SnefKpRzMQ nmRxAL+bomJiG3+qYOOo/uCEA0TV7XL0MWcqsLmzQ+Ft8Rqe14eo+MuNahmJVsRjIKcR+7y6iiirj 7+nNFUQ9agEO71bDFbjSFNhqTeXjsWLqQcGHyRZ5S8guYrixvR1XaS6pgIqROLrZ3ixdn5S+19jz2 f29zKJ3Ne41TZr3y4MD4z00MKDPlGS8PMpSbRxtHM7CRZmPm6vie4Z/kelZVsLy9oH2JkULqgDQ4q 2MZmQUXKJZ4cW/AYOorUDlKLw0IHd0sflKfjQE+X7twqPahh2kdeBPtlEt1jIZdeNezykmJ0WH1o6 srq5bejwjsSxA4oKJggQ==; 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 1h1Uqg-0001Ir-SF; Wed, 06 Mar 2019 11:36:34 +0000 Received: from mout.gmx.net ([212.227.17.22]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h1UqZ-00016F-CL for linux-amlogic@lists.infradead.org; Wed, 06 Mar 2019 11:36:32 +0000 Received: from [10.10.11.100] ([95.88.214.118]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LgMCe-1hMD443bLY-00nl86; Wed, 06 Mar 2019 12:36:05 +0100 Subject: Re: stmmac / meson8b-dwmac From: Simon Huelck To: Jose Abreu , Sebastian Gottschall , Jerome Brunet , Martin Blumenstingl References: <227be4e9-b0cc-a011-2558-71a17567246f@synopsys.com> <45e73e8c-a0fb-6f8f-8dc6-3aa2103fdda3@gmx.de> <4493b245-de93-46cd-327b-8091a3babc3a@gmx.de> <244d7c74-e0ca-a9c7-f4b0-3de7bec4024b@gmx.de> <1426d8ed40be0927c135aff25dcf989a11326932.camel@baylibre.com> <9074d29b-4cc9-87b6-009f-48280a4692c0@gmx.de> <8ec64936-c8fa-1f0e-68bf-2ad1d6e8f5d9@gmx.de> <3a040370-e7e5-990e-81dc-8e9bb0ab7761@gmx.de> <12d1d6de-2905-46a8-6481-d6f20c8e9d85@gmx.de> <2c4d9726-6c2a-cd95-0493-323f5f09e14a@synopsys.com> Openpgp: preference=signencrypt Autocrypt: addr=simonmail@gmx.de; prefer-encrypt=mutual; keydata= mQGiBD/bCNARBACE3URTBXZ/AA03NwRNtz03ewQn3uhvYSTjfqgplBtb3dfC4a79BXDRIWVX xPGH9Ewios1c8gMu3/RI2l3JzXoISfw5b0L/5igyPKV+sGuUA2FD27kYtPaaF/TqEWIv+Yxp 9DCjCX5IQSYyvCfcxcyEkY8eVWxnaAlV3zKRR8wn0wCglWIOtAugBcg1YXmoLpFZE8Ca0fkD /jG+n4U9DPfCgkbgjQ/dv2W2a0ZDHccA9N8AW/FTXGyXXO0e7ql9/kORJnp7jD7/Z9HCKpeS HajgxuX9Vhfx6bH1dAMfsg88+K8pOO9oulNX1+YffQyZWOfdbmnZDUzBt9HKR9Wgh8WoIyw9 TVluclzn6hYz+z9jbqHWMOsiCu8zA/0apHbW8vaIDT4+nNUxNdqU1TKa9kW47vNjwYYL0jZW TXNjDIRpqJVSugYVc/U847GoVoxyvtzre4TAbBV8h0BAOeMdxI5En67RGWzeNaMDJV1bwapj qdfj3e/X8rnGIfwz47rwztLNKoAIUlKrATwroiI7UNT+84G7H5qalu+Eu7QqU2ltb24gSHVl bGNrIDxzaW1vbi5odWVsY2tAZ29vZ2xlbWFpbC5jb20+iGIEExECACIFAlH7wL4CGyMGCwkI BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEJNSVvfBt05KlBQAn1JDO7e4H3N0WFJkZnxvObhk 2kiAAJwPdDd6T1TuGo4iDIENRhAX4AH2KrkBDQQ/2wjSEAQAj6JnDDQzIIYzPGsrHRvaq8vw n8VrZCbPRvkngGvtQIss5pH/MLeu9jLepDGO9WHByFSg4QJh8cINYwTLtX8Bu0naA6ZI46hn GyfxdRlxSU9dRqHpU3G0tymL1w3AER6aVSfdXQTmFgf61anKunbIIptkqzZurkjnxkwCE/RM RscABA0D/jhglpj8siSIAxs8XLVfKJrjzbYM9/wS0NfdSXBeQJiYtKrY0WMNsqjY50wDnLMg anORN/odT6mCwKI6xChzxEv/ta4+teZl92aitziSuqmtl+jm23DpOcUC7UBz2W1+TvnrhPR+ MKu8pPKAgsE8AI5uwCcNJx7V3bczYkIGaXybiEYEGBECAAYFAj/bCNIACgkQk1JW98G3Tko6 3wCfZBpZAUhUz/Rcp2rfg/YSKl4YLlEAoJN7e322OvHc2GQ9n1+tKLi6Og4c Message-ID: Date: Wed, 6 Mar 2019 12:35:49 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: X-Provags-ID: V03:K1:vFFt0Xm5jJpP11UWTi+I390qKbEJlJjQRW0Ymn3M3NwTe8YDOhJ ERo5Bmb7HGBH6pYTfHY0EnIUTRIZQcGxqTmDN1EuRAVG5/JQW/kQVBiWB5UHZZ1nY8XHYyN iKuW78rRiCOCFwqhMUJNGluQ0BjdRkLU65sXZjKNTBPrlswrbVlR5R5DMwuJlBhh51QNyLL g9IZEXYdKnyM3nojTpHeQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:AhcqH0h0cnU=:tet32mP3b9ezmvD8rTsCLV oQQhj4834QL/o6Ab8C/G7qJ4l9OBpZ/OAWWd9oT8B2ARzzBLd8ewUU9gIQqDqn3WvGJnxPF9i pFzozLDYIlTAWULBCZO+R+3bbctyvoogADJvatlV0uyHRBIIk/GXIfn+Q/iftvfqz04o3Acyp 4B318krtjKLWgrDi4m/vak/t/6ftULwvT0h0f1DzIYbgf1TCPifhFCwRLoKlyWfofaoqaaEEC MFfWaAAf6QUB83yB9kFpAHhiQ/Iqm6YkSSV6jKf8h0+FHedccIUp/AVZDDqdGItxBHDMDcXFD peUXpvKk2WPacZ7FCn5p8l3bPKTjz7ge80KkeDhBdRQxLzUI+p+fDDSDnBsBWknwCJw9XKPlT IOA/oqsIGjCKRL47RlQdEaOFpSTbMqPLRM4drCYrDk62erf9/tAs72dVDtE43sXTFtgAot3f7 hDH3BN9fUX2MKzta7giVWRiq+qGEQ+oq5c4jqwOgbKrH2qml0ercMN7DQDhJllZTWMkIpGm6A B51TvZL7RoZuCCBH9AXO7K/e8+ZpZLF4pOiuh++DLPm+KTCxL/a1A/b7V25kZHi7SDhi2H9vF YF7psxKqPVNd27prheSv3NhcRGqB0FkC2wU1QNRccqDfpjqB5M3S9Co2Twi45F5LKg4OOw5Cv VL/rxYJJZHYpkiSMwd9vyublUqZhxnWGtevFHKXJvIyNQ+dNvwRE2B3kwoHA22l5KtRpuGSRP Hvx401OuLyaFtBrp6/bZhedLoVD+wYXlj3hZg8w+Nc6n/gKvZjDRmeDcbCIUHmLLnzyaX5QEZ ixqf9hC9uWErJ6myQOYZT96Mzkwqbk6LRYIrxtRVy3Tor3v0P5mZa4/h+lzpQ0ux+u3BgJEDY R0NYDqXHTS6VcU4oudkZfHmWk/XY0nglKfkYEMzYBLTbIyUGR/B/lPP2H/ZGDM3vc7UbiKEbM Nk7zAuwO3xA== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190306_033627_889881_757CC15B X-CRM114-Status: GOOD ( 21.82 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-amlogic@lists.infradead.org, netdev@vger.kernel.org, alexandre.torgue@st.com, Emiliano Ingrassia , Gpeppe.cavallaro@st.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGksCgppIHNvcnRlZCBvdXQgc29tZSBtb3JlIHRoaW5nczoKCi0gaSBkaWQgbm90IGFjdGl2YXRl IHRjcCB3aW5kb3cgc2NhbGluZyAsIHdpdGggdGhpcyAsIGlwZXJmMyBpcyByZWFjaGluZwo5MzBN Qml0cyBub3csIHRoaXMgd2FzIHJlbGF0ZWQgdG8gbXkgZmlyZXdhbGwgYW5kIHRoZXJlZm9yZSBt eSB1cGxpbmsuCgpzbyB0aGUgcmVtYWluaW5nIHRvcGljIGlzICggYW5kIGltIGN1cnJlbnRseSB0 ZXN0aW5nIHdpdGggbmV4dC0yMDE5MDMwNiApCgpUWCBpcyBzdGFydmluZyBSWCBhbmQgdGhlIHRv dGFsIGJhbmR3aXRoIHNlZW0gdG8gYmUgbGltaXRlZCB0byA5MzBNQml0cwppbnN0ZWFkIG9mIHNv bWV0aGluZyBsaWtlIDkzME1CaXRzICogMiBmb3IgZHVwbGV4LgoKQEpvc2UsIGRvIHlvdSBoYXZl IHNvbWUgaGludHMgb24gdGhhdCA/IGkgc2F3IHRoYXQgeW91IGludHJvZHVjZWQKcGF0Y2hlcyBm b3IgdGhhdCAsIGJ1dCBzb21laG93IFJYL1RYIGFyZSBub3QgZXF1YWxseSBzaGFyaW5nIHRoZSBO QVBJCmJ1ZGdldC4gQnV0IGkgd29uZGVyIHdoeSB0aGUgVFggcXVldWUgYW5kIFJYIHF1ZXVlIGNv bGxpZGUgYXQgYWxsLApzaG91bGRudCB0aGV5IGJlIGluZGlwZW5kZW50ID8KCnJlZ2FyZHMsClNp bW9uCj4gSGkgZ3V5cywKPgo+Cj4gMS4gaSBkaXNjb3ZlcmVkIHNvbWV0aGluZyBzdHJhbmdlLiB3 aGVuIGkgbmV2ZXIgY29uZmlndXJlIG15IGV4dGVybmFsCj4gVkxBTiBpbnRlcmZhY2UgVVAgKCBm aXJld2FsbCBkb2VzbnQgc3RhcnQsIHRyYWZmaWMgc2hhcGVyIENBS0UgZG9lc250Cj4gc3RhcnQp LCBteSBub24gZHVwbGV4IGlwZXJmIGJhbmR3aWR0aCBpbmNyZWFzZXMgZnJvbSA2MDBNQml0cyB0 byA5MzAuCj4KPiAyLsKgIGR1cGxleCBpc250IHdvcmtpbmcsIFRYIGlzIHRvdGFsbHkgc3RhcnZp bmcgUlgsIHRoZSB0b3RhbCBiYW5kd2lkdGgKPiBpcyA5MDBNQml0cywgd2hhdHMgZ29pbmcgb24g dGhlcmUgPwo+Cj4gMy4gaSBoYWQgYSBNVFUgaXNzdWUgKCB3YXMgc2V0IHRvIDE1MDAsIGJ1dCBk dWUgdG8gVkxBTnMgZXRjIDE0NTAgd291bGQKPiBiZSBiZXR0ZXIgKSBidXQgdGhpcyBkaWRudCBj aGFuZ2UgcGVyZm9ybWFuY2UKPiA0LiBldmVuIHdoZW4gaSB1cCBldGgwLjQsIHRoZW4gaSBkb3du IGV0aDAuNCwgdGhlbiBmbHVzaCBpcHRhYmxlcyBhbmQKPiBzaGFwZXIgd2VyZSBuZXZlciBhZGRl ZCwgaSBkcm9wIHRvIDYwME1CaXRzIC4uLi4KPgo+IHF1ZXN0aW9uczoKPiAtIHdoeSBpcyBkdXBs ZXggc3RpbGwgbm90IHdvcmtpbmcgZXZlbiBzbyB0aGUga2VybmVsIHNheXMgc28gPwo+IC0gd2h5 IGlzIFRYIHRvdGFsbHkgc3RhcnZpbmcgUlgsIGV2ZW4gc28gZHVwbGV4IGlzICJvbiIKPiAtIHdo ZW4gaSBmbHVzaCBhbGwgbXkgaXB0YWJsZSBydWxlcywgYW5kIHRoZSB0cmFmZmljIHNoYXBlciwg c3RpbGwgaW0KPiBib25kIHRvIDYwME1CaXRzIC4uLiB2ZXJ5IHN0cmFuZ2UsIHNvbWVvbmUgZ290 IGFuIGlkZWEgPyB1cHBpbmcgZXRoMC40Cj4gaXMgY3V0dGluZyB0aGUgcGVyZm9ybWFuY2UsIGV2 ZW4gd2hlbiBvdGhlciBWTEFOIElGcyBsaWtlIGV0aDAuMywKPiBldGgwLjIsIGV0aDAuNSBhcmUg dXAgYW5kIGJyaWRnZWQgKCBldGgwLjQgaXNudCBicmlkZ2VkIHNvbWV3aGVyZSApCj4KPgo+Cj4g bXkgc2V0dXA6Cj4KPiBici1kbXrCoMKgwqDCoMKgwqDCoMKgwqAgODAwMC43ZWYwZmQ5YjE1N2bC oMKgwqDCoMKgwqAgbm/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldGgwLjIKPiBici1ndWVz dMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA4MDAwLjAwMWYxZmJiYmQ2MMKgwqDCoMKg wqDCoCBub8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdsYW4wCj4gYnItaW90wqDCoMKgwqDC oMKgwqDCoMKgIDgwMDAuN2VmMGZkOWIxNTdmwqDCoMKgwqDCoMKgIG5vwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgZXRoMC41Cj4gYnItbGFuwqDCoMKgwqDCoMKgwqDCoMKgIDgwMDAuMDAxZjFm YmJiZDYxwqDCoMKgwqDCoMKgIG5vwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXRoMC4zCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd2xh bjBfMQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHdsYW4yCj4KPiBldGgwLjQgaXMgbXkgdXBsaW5rCj4KPiBhbGwgdGhlIGJyaWRnZXMgYXJl IGludGVybmFsbHkgLCBldGgwLjQgaXMgZXh0ZXJuYWxseQo+Cj4KPiBDOlxVc2Vyc1xTaW1vblxE b3dubG9hZHNcaXBlcmYzLjZfNjRiaXRcaXBlcmYzLjZfNjRiaXQ+aXBlcmYzLmV4ZSAtYwo+IDEw LjEwLjExLjEgLWkxCj4gd2FybmluZzogSWdub3Jpbmcgbm9uc2Vuc2UgVENQIE1TUyAwCj4gQ29u bmVjdGluZyB0byBob3N0IDEwLjEwLjExLjEsIHBvcnQgNTIwMQo+IFvCoCA1XSBsb2NhbCAxMC4x MC4xMS4xMDAgcG9ydCA1MjE3MyBjb25uZWN0ZWQgdG8gMTAuMTAuMTEuMSBwb3J0IDUyMDEKPiBb IElEXSBJbnRlcnZhbMKgwqDCoMKgwqDCoMKgwqDCoMKgIFRyYW5zZmVywqDCoMKgwqAgQml0cmF0 ZQo+IFvCoCA1XcKgwqAgMC4wMC0xLjAwwqDCoCBzZWPCoMKgIDM4NCBLQnl0ZXPCoCAzLjE0IE1i aXRzL3NlYwo+IFvCoCA1XcKgwqAgMS4wMC0yLjAwwqDCoCBzZWPCoMKgIDM4NCBLQnl0ZXPCoCAz LjE1IE1iaXRzL3NlYwo+IFvCoCA1XcKgwqAgMi4wMC0zLjAwwqDCoCBzZWPCoCAxLjEyIE1CeXRl c8KgIDkuNDQgTWJpdHMvc2VjCj4gW8KgIDVdwqDCoCAzLjAwLTQuMDDCoMKgIHNlY8KgIDIuMDAg TUJ5dGVzwqAgMTYuOCBNYml0cy9zZWMKPiBbwqAgNV3CoMKgIDQuMDAtNS4wMMKgwqAgc2VjwqAg Mi4zOCBNQnl0ZXPCoCAxOS45IE1iaXRzL3NlYwo+IFvCoCA1XcKgwqAgNS4wMC02LjAwwqDCoCBz ZWPCoCAzLjEyIE1CeXRlc8KgIDI2LjIgTWJpdHMvc2VjCj4gW8KgIDVdwqDCoCA2LjAwLTcuMDDC oMKgIHNlY8KgIDQuNzUgTUJ5dGVzwqAgMzkuOCBNYml0cy9zZWMKPiBbwqAgNV3CoMKgIDcuMDAt OC4wMMKgwqAgc2VjwqAgNjguNCBNQnl0ZXPCoMKgIDU3NCBNYml0cy9zZWMKPiBbwqAgNV3CoMKg IDguMDAtOS4wMMKgwqAgc2VjwqDCoCAxMDQgTUJ5dGVzwqDCoCA4NzUgTWJpdHMvc2VjCj4gW8Kg IDVdwqDCoCA5LjAwLTEwLjAwwqAgc2VjwqDCoCAxMDUgTUJ5dGVzwqDCoCA4ODEgTWJpdHMvc2Vj Cj4gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQo+IFsg SURdIEludGVydmFswqDCoMKgwqDCoMKgwqDCoMKgwqAgVHJhbnNmZXLCoMKgwqDCoCBCaXRyYXRl Cj4gW8KgIDVdwqDCoCAwLjAwLTEwLjAwwqAgc2VjwqDCoCAyOTIgTUJ5dGVzwqDCoCAyNDUgTWJp dHMvc2VjwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZW5kZXIKPiBbwqAgNV3C oMKgIDAuMDAtMTAuMDTCoCBzZWPCoMKgIDI5MiBNQnl0ZXPCoMKgIDI0NCBNYml0cy9zZWPCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gcmVjZWl2ZXIKPgo+IGlwZXJmIERvbmUu Cj4KPgo+IHJvb3RAb2Ryb2lkYzI6fiMgaXBlcmYzIC1jIDEwLjEwLjExLjEwMCAtaTEKPiBDb25u ZWN0aW5nIHRvIGhvc3QgMTAuMTAuMTEuMTAwLCBwb3J0IDUyMDEKPiBbwqAgNV0gbG9jYWwgMTAu MTAuMTEuMSBwb3J0IDYwMDIyIGNvbm5lY3RlZCB0byAxMC4xMC4xMS4xMDAgcG9ydCA1MjAxCj4g WyBJRF0gSW50ZXJ2YWzCoMKgwqDCoMKgwqDCoMKgwqDCoCBUcmFuc2ZlcsKgwqDCoMKgIEJpdHJh dGXCoMKgwqDCoMKgwqDCoMKgIFJldHLCoCBDd25kCj4gW8KgIDVdwqDCoCAwLjAwLTEuMDDCoMKg IHNlY8KgwqAgMTEyIE1CeXRlc8KgwqAgOTQxIE1iaXRzL3NlY8KgwqDCoCAwwqDCoMKgIDQxNyBL Qnl0ZXMKPiBbwqAgNV3CoMKgIDEuMDAtMi4wMMKgwqAgc2VjwqDCoCAxMTMgTUJ5dGVzwqDCoCA5 NDUgTWJpdHMvc2VjwqDCoMKgIDDCoMKgwqAgNDg3IEtCeXRlcwo+IFvCoCA1XcKgwqAgMi4wMC0z LjAwwqDCoCBzZWPCoMKgIDExMiBNQnl0ZXPCoMKgIDk0MCBNYml0cy9zZWPCoMKgwqAgMMKgwqDC oCA0ODcgS0J5dGVzCj4gW8KgIDVdwqDCoCAzLjAwLTQuMDDCoMKgIHNlY8KgwqAgMTEyIE1CeXRl c8KgwqAgOTQxIE1iaXRzL3NlY8KgwqDCoCAwwqDCoMKgIDUxMiBLQnl0ZXMKPiBbwqAgNV3CoMKg IDQuMDAtNS4wMcKgwqAgc2VjwqDCoCAxMDkgTUJ5dGVzwqDCoCA5MDcgTWJpdHMvc2VjwqDCoMKg IDDCoMKgwqAgNTQzIEtCeXRlcwo+IFvCoCA1XcKgwqAgNS4wMS02LjAxwqDCoCBzZWPCoMKgIDEw OSBNQnl0ZXPCoMKgIDkxMSBNYml0cy9zZWPCoMKgwqAgMMKgwqDCoCA1NDMgS0J5dGVzCj4gW8Kg IDVdwqDCoCA2LjAxLTcuMDHCoMKgIHNlY8KgwqAgMTA4IE1CeXRlc8KgwqAgOTAyIE1iaXRzL3Nl Y8KgwqDCoCAwwqDCoMKgIDU0MyBLQnl0ZXMKPiBbwqAgNV3CoMKgIDcuMDEtOC4wMcKgwqAgc2Vj wqDCoCAxMDggTUJ5dGVzwqDCoCA5MDUgTWJpdHMvc2VjwqDCoMKgIDDCoMKgwqAgNTQzIEtCeXRl cwo+IFvCoCA1XcKgwqAgOC4wMS05LjAwwqDCoCBzZWPCoMKgIDEwNiBNQnl0ZXPCoMKgIDg5NSBN Yml0cy9zZWPCoMKgwqAgMMKgwqDCoCA1NDMgS0J5dGVzCj4gW8KgIDVdwqDCoCA5LjAwLTEwLjAw wqAgc2VjwqDCoCAxMDYgTUJ5dGVzwqDCoCA4OTEgTWJpdHMvc2VjwqDCoMKgIDDCoMKgwqAgNTQz IEtCeXRlcwo+IC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAt IC0KPiBbIElEXSBJbnRlcnZhbMKgwqDCoMKgwqDCoMKgwqDCoMKgIFRyYW5zZmVywqDCoMKgwqAg Qml0cmF0ZcKgwqDCoMKgwqDCoMKgwqAgUmV0cgo+IFvCoCA1XcKgwqAgMC4wMC0xMC4wMMKgIHNl Y8KgIDEuMDcgR0J5dGVzwqDCoCA5MTggTWJpdHMvc2VjwqDCoMKgIDDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc2VuZGVyCj4gW8KgIDVdwqDCoCAwLjAwLTEwLjA0wqAgc2VjwqAgMS4wNyBHQnl0 ZXPCoMKgIDkxNSBNYml0cy9zZWPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4g cmVjZWl2ZXIKPgo+IC0tCj4KPgo+IE1hcsKgIDUgMDk6NDY6MDMgbG9jYWxob3N0IGtlcm5lbDog W8KgIDEwNS41MzQyMDRdIG1lc29uOGItZHdtYWMKPiBjOTQxMDAwMC5ldGhlcm5ldCBldGgwOiBM aW5rIGlzIFVwIC0gMUdicHMvRnVsbCAtIGZsb3cgY29udHJvbCBvZmYKPgo+IGlwZXJmIERvbmUu Cj4gcm9vdEBvZHJvaWRjMjp+Iwo+Cj4KPgo+Cj4gcmVnYXJkcywKPiBTaW1vbgo+Cj4gQW0gMDEu MDMuMjAxOSB1bSAxMDoyMyBzY2hyaWViIEpvc2UgQWJyZXU6Cj4+IEhpIFNpbW9uLAo+Pgo+PiBP biAyLzI3LzIwMTkgNzowMiBQTSwgU2ltb24gSHVlbGNrIHdyb3RlOgo+Pj4gSGksCj4+Pgo+Pj4K Pj4+IHRoZSB0aGluZyBpcyAsIHRoYXQgaW0gbm90IGEgc3RtbWFjIGRldmVsb3Blci4gWWVzICwg bWF5YmUgaSBjYW4gYmlzc2VjdAo+Pj4gaXQgYW5kIHllcyB5b3UgYXJlIGx1Y2t5IHNpbmNlIGlt IGEgQy1kZXZlbG9wZXIgc2luY2UgYSBsb25nIHRpbWUgZm9yCj4+PiBlbWJlZGRlZCBzeXN0ZW1z Lgo+Pj4KPj4+IFRoZSBwcm9ibGVtIGlzIHRoYXQgaSBkb250IHVuZGVyc3RhbmQgdGhlIHN0cnVj dHVyZSBvZiBzdG1tYWMgYW5kIGltIG5vdAo+Pj4gYXdhcmUgb2YgYW55IGRvY3VtZW50YXRpb24g YWJvdXQgdGhlIGRyaXZlciBzdHJ1Y3R1cmUgbm9yIHRoZSB1bmRlcmx5aW5nCj4+PiBldGhlcm5l dCBoYXJkd2FyZSAoIGV2ZW4gdGhvdWdoIGltIHVzZWQgdG8gZXRoZXJuZXQgaGFyZHdhcmUgaW4g ZW1iZWRkZWQKPj4+IGVudmlyb25tZW50ICkuIFNvIGhvdyBzaGFsbCBpIHJlY29nbml6ZSB0aGUg cmVsZXZhbnQgY2hhbmdlIGJldHdlZW4KPj4+IDQuMTQuMjkgYW5kIDUuMHJjOCA/Cj4+Pgo+Pj4K Pj4+IElzIGl0IGluIHRoZSBEVFMvRFRCLCB3cm9uZyBoYXJkd2FyZSBkZXNjcmlwdGlvbiA/IElz IGl0IGluIHRoZSBjb2RlID8KPj4+IGhvdyBpcyB0aGUgZHVwbGV4IGhhcmR3YXJlIHdvcmtpbmcg b24gdGhpcyBwaWVjZSA/Cj4+Pgo+Pj4gSSBjYW4gdHJ5IHRvIHN1cHBvcnQgeW91IHRoZSBiZXN0 IGkgY2FuLCBidXQgaSBoYXZlIGxpdHRsZSBjaGFuY2VzIHRvCj4+PiBhbmFseXplIGl0IG15c2Vs Zi4gQXQgd2hpY2ggbWVhc3VyZW1lbnRzIC8gY291bnRlcnMgaXMgaXQgcG9zc2libGUgdG8KPj4+ IHNlZSB0aGF0IGR1cGxleCBpcyBmdWxseSB3b3JraW5nID/CoCBXaHkgZGlkIGV2ZW4gdGhlIG5v bi1kdXBsZXgKPj4+IGJhbmR3aWR0aCByZWdyZXNzIGZyb20gOTAwTUJpdHMgdG8gNjUwID8gV2h5 IGlzIHRoYXQgNjUwIE1CaXRzIGRpdmlkaW5nCj4+PiB1cCB0byBUWCBhbmQgUlggaW4gc3VtbWFy eSB3aGVuIGRvaW5nIGR1cGxleCA/IFdoeSBpcyBUWCBub3Qgc3RhcnZpbmcgaW4KPj4+IGR1cGxl eCBidXQgUlggPwo+Pj4KPj4+IEZyb20gbXkgcG9pbnQgb2YgdmlldyBzaG91bGQgYmUgdGhlIGZv bGxvd2luZyB0aGluZ3MgZ2l2ZW46Cj4+PiAtIHRoZSBub24gZHVwbGV4IGJhbmR3aWR0aCBzaG91 bGQgYmUgc29tZXdoZXJlIGFyb3VuZCA5MDBNQml0cyAsIHRoZSBIVwo+Pj4gaXMgY2FwYWJsZSBv ZiB0aGF0Cj4+PiAtIFRYIHNob3VsZCBub3QgaW5mbHVlbmNlIFJYIG9yIHZpY2UgdmVyc2EgaW4g ZHVwbGV4Cj4+PiAtIHRoZSBkdXBsZXggYmFuZHdpZHRoIHNob3VsZCBiZSA5MDBNQml0cyBpbiBi b3RoIGRpcmVjdGlvbnMgKCBtYXliZSBhCj4+PiBiaXQgYXN5bWV0cmljIHdoZW4gYnVmZmVycyBp biBib3RoIGRpcnMgYXJlIG5vdCBzYW1lICkKPj4+Cj4+PiBJIGd1ZXNzIHdlIG5lZWQgc29tZSBw cm9maWxpbmcgb24gc3RtbWFjIGFuZCAoIGF0IGxlYXN0IGkgbmVlZCApIG1vcmUKPj4+IGtub3ds ZWRnZSBvZiB0aGUgaGFyZHdhcmUgYW5kIHN0bW1hYyBpdHNlbGYuIENhbiBzb21lb25lIHBvaW50 IG1lIHRvIHRoZQo+Pj4gZHJpdmVyIGRvY3VtZW50YXRpb24sIGRlc2NyaWJpbmcgdGhlIGZ1bmN0 aW9ucyBpbiB0aGUgY29kZSBhbmQgdGhlCj4+PiBzdHJ1Y3R1cmUgPyBIb3cgY2FuIGkgcHJvZmls ZSBzdG1tYWMgKCB1c3VhbGx5IGltIHVzaW5nIGhhcmR3YXJlIC8gSlRBRwo+Pj4gZGVidWdnZXJz IGF0IHdvcmssIGJ1dCBoZXJlIEBob21lIGkgZ290IG5vdGhpbmcgbGlrZSB0aGF0ICkKPj4+Cj4+ PiBTbyBob3cgZG8gd2UgY29udGludWUgPwo+PiBXaGVuIEkgc2FpZCBiaXNzZWN0IEkgd2FzIG1l YW5pbmcgR0lUIEJpc3NlY3QgWzFdLiBZb3Ugc2hvdWxkbid0Cj4+IG5lZWQgYW55IGRldmVsb3Bt ZW50IGJhY2tncm91bmQgZm9yIHRoaXMuIFlvdSBqdXN0IGhhdmUgdG8gc3RhcnQKPj4gYmlzc2Vj dCwgY29tcGlsZSwgdGVzdCBhbmQgY2hlY2sgaWYgY29tbWl0IGlzIGdvb2Qgb3Igbm90Lgo+Pgo+ PiBJJ20gbm90IHZlcnkgZmFtaWxpYXIgd2l0aCB0aGlzIGZlYXR1cmUgYnV0IEkgdGhpbmsgeW91 IGNhbgo+PiBiaXNzZWN0IHByZXR0eSBmYXN0IGlmIHlvdSBzYXkgeW91IGp1c3Qgd2FudCBzdG1t YWMgY29tbWl0cywKPj4gY2hlY2sgKCJDdXR0aW5nIGRvd24gYmlzZWN0aW9uIGJ5IGdpdmluZyBt b3JlIHBhcmFtZXRlcnMgdG8KPj4gYmlzZWN0IHN0YXJ0Iikgb24gcHJldmlvdXMgbGluayAuLi4g SW4geW91ciBjYXNlIGl0IHdvdWxkIGJlCj4+IHN0bW1hYyBjaGFuZ2VzLCBkdHMsIGFuZCBwaHku Cj4+Cj4+IFsxXSBodHRwczovL2dpdC1zY20uY29tL2RvY3MvZ2l0LWJpc2VjdAo+Pgo+PiBUaGFu a3MsCj4+IEpvc2UgTWlndWVsIEFicmV1Cj4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxv Z2ljQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1hbWxvZ2ljCg==