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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E25D7C433F5 for ; Wed, 24 Nov 2021 14:57:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349791AbhKXPAz (ORCPT ); Wed, 24 Nov 2021 10:00:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236264AbhKXPAu (ORCPT ); Wed, 24 Nov 2021 10:00:50 -0500 Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com [IPv6:2607:f8b0:4864:20::72b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 742F5C061714 for ; Wed, 24 Nov 2021 06:57:40 -0800 (PST) Received: by mail-qk1-x72b.google.com with SMTP id m192so3107643qke.2 for ; Wed, 24 Nov 2021 06:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=LU9BEnULj3JGjgT+LMe5HzdnuJsg4eZNYUMoalr+NiQ=; b=aRDviT3wLR3bO1bGkiAK8+cBs71ouZCKV9RXLFc3z3hheI3oGMfzrkzO3oZkD0Q8u+ x5wK8nYqKbMC0QeDgtihIRnfGIxD/3TEEHCPm/WUHBABCxU/4NCRm20SuyAAL9qnbmax 83+xae7zGiUuv34KnjzMGGU34FWzved74YBmUiw2ZyTe7CwoKalO10BnnvlQi9+u360W OvhOsgp+YmaXyCpsIALXD++nMhaBz5kCRzxZqvPdkUaqI8aDy/VdnKR+7QegkL+8taVI u5/mzjiAy8xrxjTi5zJOJpZ31/MAc+2yC0E8RPDnQUOUcLJX9RRn0vQbFjuNqLRwdMrk 3J/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=LU9BEnULj3JGjgT+LMe5HzdnuJsg4eZNYUMoalr+NiQ=; b=lmxLU3GM0SuGtx2jZmPzZsw+2hrJD7AbvMesNfML8BiXahuhJUmBBuGvGRYWD0qJYi +9rJkYCTzMsFDIyC1348e9Y4f3E8EqWQdzH3i/EsevWf/5HVp4NFamaqFdw3mPNpiQKO GC/rGUcdVzRhxpFoVg/Z+OILmWeVoUuYsEWI3zm7eCPKj1UzUtSpVnboLSRTWA+JcSQm tiUAokLF/ZV+wcPt2YnMqRu+6VVrF2GNHEAqGGvxf4IOAA+UI/g2AodJZJe8GOysoMek f4u/3SHSyjYsadTWbTEFOMh89uMx0pGF7/RJ3F1/uBOMIJHyeC6RjRz7kuieNjvKUgNg 4QnA== X-Gm-Message-State: AOAM5310w87+F1PIH7Nr6DGVWjeMgUadhQCas+EUG+VjS/FxmNkSzgr4 LvchAMXpxK9z3XFqwpMTbgqLhQ== X-Google-Smtp-Source: ABdhPJxBkKscTnspcy2eLh5Z9xgt5hPk+H9d84fbimsVeCf5siq/8P/fdeGFwDMww4ZUzt3DJm1q8A== X-Received: by 2002:a37:4050:: with SMTP id n77mr6579024qka.267.1637765859635; Wed, 24 Nov 2021 06:57:39 -0800 (PST) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id h5sm8446705qkn.62.2021.11.24.06.57.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Nov 2021 06:57:39 -0800 (PST) Message-ID: <9b7fd6802c89c5d3bb6a42b44f13a90f6c3caf22.camel@ndufresne.ca> Subject: Re: [EXT] Re: [PATCH v12 00/13] amphion video decoder/encoder driver From: Nicolas Dufresne To: Ming Qian , "mchehab@kernel.org" , "shawnguo@kernel.org" , "robh+dt@kernel.org" , "s.hauer@pengutronix.de" Cc: "hverkuil-cisco@xs4all.nl" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , Aisheng Dong , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Date: Wed, 24 Nov 2021 09:57:37 -0500 In-Reply-To: References: <9947131322e034bb6336802e5afb4b6132ca5071.camel@ndufresne.ca> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 (3.42.1-1.fc35) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le mercredi 24 novembre 2021 à 09:00 +0000, Ming Qian a écrit : > > -----Original Message----- > > From: Nicolas Dufresne [mailto:nicolas@ndufresne.ca] > > Sent: Wednesday, November 24, 2021 3:23 AM > > To: Ming Qian ; mchehab@kernel.org; > > shawnguo@kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de > > Cc: hverkuil-cisco@xs4all.nl; kernel@pengutronix.de; festevam@gmail.com; > > dl-linux-imx ; Aisheng Dong ; > > linux-media@vger.kernel.org; linux-kernel@vger.kernel.org; > > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org > > Subject: [EXT] Re: [PATCH v12 00/13] amphion video decoder/encoder driver > > > > Caution: EXT Email > > > > Hi Ming, > > > > For the patchset: > > > > Tested-By: Nicolas Dufresne > > > > I've validated encoding manually with GStreamer: > > > >   gst-launch-1.0 videotestsrc num-buffers=100 ! v4l2h264enc ! > > video/x-h264,profile=main,level=\(string\)2 ! h264parse ! qtmux ! filesink > > location=test.mov > > > > I've also verify the that the number of frames was exactly 100, this is > > common > > issue with V4L2 encoders. Then I have validated VP8, H.264 and H.265 > > decoders > > using fluster [0] with this PR [1] applied. You can find full summary at the > > end > > of this email. Markdown report didn't get generated, I will have to check > > with > > upstream fluster if there is a regression. > > > > $> ./fluster.py run -s -so amphion-imx8qxp-conformance.md -d > > GStreamer-VP8-V4L2-Gst1.0 GStreamer-H.264-V4L2-Gst1.0 > > GStreamer-H.265-V4L2-Gst1.0 > > > > VP8: Ran 59/61 tests successfully in 131.788 secs > > H.264: Ran 75/135 tests successfully in 501.206 secs > > H.265: Ran 126/147 tests successfully in 1131.933 secs > > > > Note that in mainline, only 1 core get fired and is kept at its lowest > > possible > > frequency, so perhaps it may cause some of the timeout seen. The driver is > > overall functional, and I would like to thank you for this extra work. Also, > > note that this very first time I run Fluster over the stateful CODEC > > wrappers. I > > will need to run this on more platforms to locate the GStreamer specific > > fail. > > > > VP8 note, conformance vector vp80-03-segmentation-1425 cause a hang but it > > then > > recover: > > > > [ 8264.851841] amphion-vpu-core 2d040000.vpu_core: [0] sync session > > timeout > > [ 8264.858634] amphion-vpu-core 2d040000.vpu_core: [0] send cmd(0x2) fail > > [ 8264.867992] amphion-vpu-core 2d040000.vpu_core: [0] start fail > > [ 8264.905173] amphion-vpu-core 2d040000.vpu_core: reset hang core > > > > HI Nicolas > >     There is a bug in firmware that if send a command to firmware too close > after stop cmd, > The firmware may enter wfi wrong, and led to hang issue you met in vp80-03- > segmentation-1425. > I'll add a workaround in driver that add a delay after send stop cmd to > firmware in next version. > >     Because the amphion's vpu doesn't support to output i420, so the test will > convert nv12_8l128 to i420 by videoconvert, it leds to most of timeout > failure. > >     The FM1_BT_B.h264 can't be decoded by amphion's vpu, the vpu is keeping > parse sequence header, and it led to timeout failure. > >     I run the test and change the timeout to 300, then most of timeout > failures are gone. Besides that, my result is almost as same as yours. Oh my bad, I forgot about the short timeout, with a single core on top of all this, that makes sense. > >     The failures of assertion error means that the vpu's output is different > from the pattern, I think it should be the vpu's limitation. Most likely, best way to know is to keep the results (--keep) and visually look at the result. My expectation with this is that we get decent results and that none of the issue render the VPU or the system unusable. Each company is then responsible for their CODEC conformance, specially with stateful, there is very little that userspace will be responsible with. Though if you do find issue that is clearly caused by GStreaner, let me know, I'll be more then happy to fix. Most VPU providers will also buy proprietary conformance suite (like Allegro), which covers much more then basic conformance. > > > > > See comments about your GStreamer MR below... > > > > [0] > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub. > > com%2Ffluendo%2Ffluster&data=04%7C01%7Cming.qian%40nxp.com%7 > > C45d33490bfe546aa8e1408d9aeb6a822%7C686ea1d3bc2b4c6fa92cd99c5c3 > > 01635%7C0%7C0%7C637732921809373007%7CUnknown%7CTWFpbGZsb3d > > 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3 > > D%7C3000&sdata=bBqADaZ9ZN00SbCPalQE5fN740hB2bMUxHDL4QEki > > mg%3D&reserved=0 > > [1] > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub. > > com%2Ffluendo%2Ffluster%2Fpull%2F98&data=04%7C01%7Cming.qian > > %40nxp.com%7C45d33490bfe546aa8e1408d9aeb6a822%7C686ea1d3bc2b4c > > 6fa92cd99c5c301635%7C0%7C0%7C637732921809382989%7CUnknown%7C > > TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC > > JXVCI6Mn0%3D%7C3000&sdata=90dUC%2FNzK%2BcFNSMwY7bgQ0iD8 > > ctBwU%2FMhyrLoBBEf4g%3D&reserved=0 > > > > > > [...] > > > encoder is tested with gstreamer > > > decoder is tested with gstreamer, but the following patches are required: > > > > GStreamer is now a single repo (and using main branch instead of master), I > > have > > migrated your 3 MRs into 2 MRs. > > Thank you very much. > > > > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.fr > > eedesktop.org%2Fgstreamer%2Fgst-plugins-base%2F-%2Fmerge_requests%2F > > 1252&data=04%7C01%7Cming.qian%40nxp.com%7C45d33490bfe546aa > > 8e1408d9aeb6a822%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7 > > C637732921809382989%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw > > MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sda > > ta=G4PnqxRsnPjQtV%2FUcp4dkoz9fAGxkOv%2FzKR47RaHtu0%3D&reser > > ved=0 > > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.fr > > eedesktop.org%2Fgstreamer%2Fgst-plugins-good%2F-%2Fmerge_requests%2F > > 1098&data=04%7C01%7Cming.qian%40nxp.com%7C45d33490bfe546aa > > 8e1408d9aeb6a822%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7 > > C637732921809382989%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw > > MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sda > > ta=h6nEISAaiG54NPz9Xw0MiSNDx2QxWsNWyG7FLSAaLgI%3D&reserved > > =0 > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.fr > > eedesktop.org%2Fgstreamer%2Fgstreamer%2F-%2Fmerge_requests%2F1379& > > amp;data=04%7C01%7Cming.qian%40nxp.com%7C45d33490bfe546aa8e140 > > 8d9aeb6a822%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6377 > > 32921809382989%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL > > CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=PFe > > Db4v%2BmiksgvJ08KgncRjZEt7GdMO7gV8hV0DD0uY%3D&reserved=0 > > > > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.fr > > eedesktop.org%2Fgstreamer%2Fgst-plugins-good%2F-%2Fmerge_requests%2F > > 1099&data=04%7C01%7Cming.qian%40nxp.com%7C45d33490bfe546aa > > 8e1408d9aeb6a822%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7 > > C637732921809382989%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw > > MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sda > > ta=e6hSDpiP2scLN5C0f8Fb%2FoMbt8k4zC45qWPrQpG%2Fe5A%3D&rese > > rved=0 > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.fr > > eedesktop.org%2Fgstreamer%2Fgstreamer%2F-%2Fmerge_requests%2F1381& > > amp;data=04%7C01%7Cming.qian%40nxp.com%7C45d33490bfe546aa8e140 > > 8d9aeb6a822%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6377 > > 32921809382989%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL > > CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=xkX > > WjCsgVaLb0wZgfaXDMiBchtbJBNnwtZNhKe42k5o%3D&reserved=0 > > > > > > regards, > > Nicolas > > > > [JVT-AVC_V1] (GStreamer-H.264-V4L2-Gst1.0) FM1_BT_B ... > > Timeout > The vpu can't decode this stream. > > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > AMP_D_Hisilicon_3 ... Timeout > Performance issue of videoconvert > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > AMP_E_Hisilicon_3 ... Timeout > Performance issue of videoconvert > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > AMP_F_Hisilicon_3 ... Timeout > Performance issue of videoconvert > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > BUMPING_A_ericsson_1 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > CONFWIN_A_Sony_1 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > DELTAQP_A_BRCM_4 ... Timeout > Performance issue of videoconvert > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > MVDL1ZERO_A_docomo_4 ... Timeout > Performance issue of videoconvert > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > NoOutPrior_A_Qualcomm_1 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > NoOutPrior_B_Qualcomm_1 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > NUT_A_ericsson_5 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > PICSIZE_A_Bossen_1 ... Error > The size is 1056x8440, vpu doesn't support it > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > PICSIZE_B_Bossen_1 ... Error > The size is 8440x1056, vpu doesn't support it > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > PICSIZE_C_Bossen_1 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > PICSIZE_D_Bossen_1 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > RAP_B_Bossen_2 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > SAODBLK_A_MainConcept_4 ... Timeout > Performance issue of videoconvert > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > SAODBLK_B_MainConcept_4 ... Timeout > Performance issue of videoconvert > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > TILES_A_Cisco_2 ... Timeout > Performance issue of videoconvert > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > TILES_B_Cisco_1 ... Timeout > Performance issue of videoconvert, but assert fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > TSUNEQBD_A_MAIN10_Technicolor_2 ... Fail > > [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > VPSSPSPPS_A_MainConcept_1 ... Error > Gstream report error: > ERROR Error from element > /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2 > h265dec:v4l2h265dec0: Could not read from resource. > Could not read from resource. > ../sys/v4l2/gstv4l2bufferpool.c(1155): gst_v4l2_buffer_pool_poll (): > /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/v4l2 > h265dec:v4l2h265dec0: > poll error 1: Success (0) for /mnt/fluster/resources/JCT-VC- > HEVC_V1/VPSSPSPPS_A_MainConcept_1/VPSSPSPPS_A_MainConcept_1.bin >   > > [VP8-TEST-VECTORS] (GStreamer-VP8-V4L2-Gst1.0) > > vp80-03-segmentation-1425 ... Timeout > Firmware bug, after apply driver workaround, assert fail > > [VP8-TEST-VECTORS] (GStreamer-VP8-V4L2-Gst1.0) > > vp80-03-segmentation-1436 ... Fail > > > > > 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 904B9C433F5 for ; Wed, 24 Nov 2021 14:59:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=zXuR0igEkhH54CUMQAzpWDiFKfYZvscw+EdLbybkybA=; b=pScAc7vAXMslVZ ceTsjo+jCOQhu2qGdr07oI74ABl1x0/DU9GXG3bdLOWee3eBWwcVo0QxxreHly4J8wCXB61jC0HMf pkuWt5wHVYXwCowcXMlCYDdjyhUVtReSu0i6/BPRx3tBu3kQRD3O1cN7Mm3RxHPAN5yrShOM0yUqI 3bRJKb7mXzyH0uszvZmMZAV6QIudHZ3PFqM9l/zWcpAyYncliH6QhgHRqjM/uiThzk/at0RgIQdMU 5lwHyUsBRy41/7pZ3Sh0bkN0Nfd1CZgLpc8VMQ7o90CcHjWDjt+Kn/E9f23KETqnXVhuxK9xQUx4N 9A+yqRtzAXjDGOSzg88g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mptiT-0053cI-KA; Wed, 24 Nov 2021 14:57:45 +0000 Received: from mail-qk1-x72f.google.com ([2607:f8b0:4864:20::72f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mptiP-0053b2-0n for linux-arm-kernel@lists.infradead.org; Wed, 24 Nov 2021 14:57:43 +0000 Received: by mail-qk1-x72f.google.com with SMTP id t6so3117607qkg.1 for ; Wed, 24 Nov 2021 06:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=LU9BEnULj3JGjgT+LMe5HzdnuJsg4eZNYUMoalr+NiQ=; b=aRDviT3wLR3bO1bGkiAK8+cBs71ouZCKV9RXLFc3z3hheI3oGMfzrkzO3oZkD0Q8u+ x5wK8nYqKbMC0QeDgtihIRnfGIxD/3TEEHCPm/WUHBABCxU/4NCRm20SuyAAL9qnbmax 83+xae7zGiUuv34KnjzMGGU34FWzved74YBmUiw2ZyTe7CwoKalO10BnnvlQi9+u360W OvhOsgp+YmaXyCpsIALXD++nMhaBz5kCRzxZqvPdkUaqI8aDy/VdnKR+7QegkL+8taVI u5/mzjiAy8xrxjTi5zJOJpZ31/MAc+2yC0E8RPDnQUOUcLJX9RRn0vQbFjuNqLRwdMrk 3J/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=LU9BEnULj3JGjgT+LMe5HzdnuJsg4eZNYUMoalr+NiQ=; b=cOshNpT93gaNqta22SkcsX9tCn/mA4hOPlh6j+K7xOCKq/Ymr45/YG5qJ4aYFZt86p LZldyIw7vEZxvD7iRHBUiCKmWVnIx5HtYHG7fv839UE3o7QdlbOAs25uerIbpo7Af4Ul SJXs3zJRveDM5GhYvzdZUbJk6zdp5pLE0YbNMHhBC+EWc+KaCNETP+3TfrRAk2q+oqvv 9k9y+BrkLlDs4tZPQg2GnfzMHbGywuIVH87zk7K8RJSB2WSfqtTUiGSsa8xH8o+EphPi L9DVvOjf++e3auU4KlV5zLhIJWRXv3sgN+ozk0KvlHwUsvP+Vqnb6UzprfZMr5MQwXOO PRvg== X-Gm-Message-State: AOAM5304JR8t0jAZgStLZkuE9Iub+LhEpbWlJhTFgrULudNmhPj+2hOT aRzAdpvWMkvP2g2lwvHZAszPXg== X-Google-Smtp-Source: ABdhPJxBkKscTnspcy2eLh5Z9xgt5hPk+H9d84fbimsVeCf5siq/8P/fdeGFwDMww4ZUzt3DJm1q8A== X-Received: by 2002:a37:4050:: with SMTP id n77mr6579024qka.267.1637765859635; Wed, 24 Nov 2021 06:57:39 -0800 (PST) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id h5sm8446705qkn.62.2021.11.24.06.57.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Nov 2021 06:57:39 -0800 (PST) Message-ID: <9b7fd6802c89c5d3bb6a42b44f13a90f6c3caf22.camel@ndufresne.ca> Subject: Re: [EXT] Re: [PATCH v12 00/13] amphion video decoder/encoder driver From: Nicolas Dufresne To: Ming Qian , "mchehab@kernel.org" , "shawnguo@kernel.org" , "robh+dt@kernel.org" , "s.hauer@pengutronix.de" Cc: "hverkuil-cisco@xs4all.nl" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , Aisheng Dong , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Date: Wed, 24 Nov 2021 09:57:37 -0500 In-Reply-To: References: <9947131322e034bb6336802e5afb4b6132ca5071.camel@ndufresne.ca> User-Agent: Evolution 3.42.1 (3.42.1-1.fc35) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211124_065741_167969_CC34F8B0 X-CRM114-Status: GOOD ( 41.04 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org TGUgbWVyY3JlZGkgMjQgbm92ZW1icmUgMjAyMSDDoCAwOTowMCArMDAwMCwgTWluZyBRaWFuIGEg w6ljcml0wqA6Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gRnJvbTogTmljb2xh cyBEdWZyZXNuZSBbbWFpbHRvOm5pY29sYXNAbmR1ZnJlc25lLmNhXQo+ID4gU2VudDogV2VkbmVz ZGF5LCBOb3ZlbWJlciAyNCwgMjAyMSAzOjIzIEFNCj4gPiBUbzogTWluZyBRaWFuIDxtaW5nLnFp YW5AbnhwLmNvbT47IG1jaGVoYWJAa2VybmVsLm9yZzsKPiA+IHNoYXduZ3VvQGtlcm5lbC5vcmc7 IHJvYmgrZHRAa2VybmVsLm9yZzsgcy5oYXVlckBwZW5ndXRyb25peC5kZQo+ID4gQ2M6IGh2ZXJr dWlsLWNpc2NvQHhzNGFsbC5ubDsga2VybmVsQHBlbmd1dHJvbml4LmRlOyBmZXN0ZXZhbUBnbWFp bC5jb207Cj4gPiBkbC1saW51eC1pbXggPGxpbnV4LWlteEBueHAuY29tPjsgQWlzaGVuZyBEb25n IDxhaXNoZW5nLmRvbmdAbnhwLmNvbT47Cj4gPiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmc7 IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7Cj4gPiBkZXZpY2V0cmVlQHZnZXIua2VybmVs Lm9yZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4gPiBTdWJqZWN0OiBb RVhUXSBSZTogW1BBVENIIHYxMiAwMC8xM10gYW1waGlvbiB2aWRlbyBkZWNvZGVyL2VuY29kZXIg ZHJpdmVyCj4gPiAKPiA+IENhdXRpb246IEVYVCBFbWFpbAo+ID4gCj4gPiBIaSBNaW5nLAo+ID4g Cj4gPiBGb3IgdGhlIHBhdGNoc2V0Ogo+ID4gCj4gPiBUZXN0ZWQtQnk6IE5pY29sYXMgRHVmcmVz bmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KPiA+IAo+ID4gSSd2ZSB2YWxpZGF0 ZWQgZW5jb2RpbmcgbWFudWFsbHkgd2l0aCBHU3RyZWFtZXI6Cj4gPiAKPiA+IMKgwqBnc3QtbGF1 bmNoLTEuMCB2aWRlb3Rlc3RzcmMgbnVtLWJ1ZmZlcnM9MTAwICEgdjRsMmgyNjRlbmMgIQo+ID4g dmlkZW8veC1oMjY0LHByb2ZpbGU9bWFpbixsZXZlbD1cKHN0cmluZ1wpMiAhIGgyNjRwYXJzZSAh IHF0bXV4ICEgZmlsZXNpbmsKPiA+IGxvY2F0aW9uPXRlc3QubW92Cj4gPiAKPiA+IEkndmUgYWxz byB2ZXJpZnkgdGhlIHRoYXQgdGhlIG51bWJlciBvZiBmcmFtZXMgd2FzIGV4YWN0bHkgMTAwLCB0 aGlzIGlzCj4gPiBjb21tb24KPiA+IGlzc3VlIHdpdGggVjRMMiBlbmNvZGVycy4gVGhlbiBJIGhh dmUgdmFsaWRhdGVkIFZQOCwgSC4yNjQgYW5kIEguMjY1Cj4gPiBkZWNvZGVycwo+ID4gdXNpbmcg Zmx1c3RlciBbMF0gd2l0aCB0aGlzIFBSIFsxXSBhcHBsaWVkLiBZb3UgY2FuIGZpbmQgZnVsbCBz dW1tYXJ5IGF0IHRoZQo+ID4gZW5kCj4gPiBvZiB0aGlzIGVtYWlsLiBNYXJrZG93biByZXBvcnQg ZGlkbid0IGdldCBnZW5lcmF0ZWQsIEkgd2lsbCBoYXZlIHRvIGNoZWNrCj4gPiB3aXRoCj4gPiB1 cHN0cmVhbSBmbHVzdGVyIGlmIHRoZXJlIGlzIGEgcmVncmVzc2lvbi4KPiA+IAo+ID4gJD4gLi9m bHVzdGVyLnB5IHJ1biAtcyAtc28gYW1waGlvbi1pbXg4cXhwLWNvbmZvcm1hbmNlLm1kIC1kCj4g PiBHU3RyZWFtZXItVlA4LVY0TDItR3N0MS4wIEdTdHJlYW1lci1ILjI2NC1WNEwyLUdzdDEuMAo+ ID4gR1N0cmVhbWVyLUguMjY1LVY0TDItR3N0MS4wCj4gPiAKPiA+IFZQODogICBSYW4gNTkvNjEg dGVzdHMgc3VjY2Vzc2Z1bGx5ICAgICAgICAgICAgICAgaW4gMTMxLjc4OCBzZWNzCj4gPiBILjI2 NDogUmFuIDc1LzEzNSB0ZXN0cyBzdWNjZXNzZnVsbHkgICAgICAgICAgICAgICBpbiA1MDEuMjA2 IHNlY3MKPiA+IEguMjY1OiBSYW4gMTI2LzE0NyB0ZXN0cyBzdWNjZXNzZnVsbHkgICAgICAgICAg ICAgICBpbiAxMTMxLjkzMyBzZWNzCj4gPiAKPiA+IE5vdGUgdGhhdCBpbiBtYWlubGluZSwgb25s eSAxIGNvcmUgZ2V0IGZpcmVkIGFuZCBpcyBrZXB0IGF0IGl0cyBsb3dlc3QKPiA+IHBvc3NpYmxl Cj4gPiBmcmVxdWVuY3ksIHNvIHBlcmhhcHMgaXQgbWF5IGNhdXNlIHNvbWUgb2YgdGhlIHRpbWVv dXQgc2Vlbi4gVGhlIGRyaXZlciBpcwo+ID4gb3ZlcmFsbCBmdW5jdGlvbmFsLCBhbmQgSSB3b3Vs ZCBsaWtlIHRvIHRoYW5rIHlvdSBmb3IgdGhpcyBleHRyYSB3b3JrLiBBbHNvLAo+ID4gbm90ZSB0 aGF0IHRoaXMgdmVyeSBmaXJzdCB0aW1lIEkgcnVuIEZsdXN0ZXIgb3ZlciB0aGUgc3RhdGVmdWwg Q09ERUMKPiA+IHdyYXBwZXJzLiBJCj4gPiB3aWxsIG5lZWQgdG8gcnVuIHRoaXMgb24gbW9yZSBw bGF0Zm9ybXMgdG8gbG9jYXRlIHRoZSBHU3RyZWFtZXIgc3BlY2lmaWMKPiA+IGZhaWwuCj4gPiAK PiA+IFZQOCBub3RlLCBjb25mb3JtYW5jZSB2ZWN0b3IgdnA4MC0wMy1zZWdtZW50YXRpb24tMTQy NSBjYXVzZSBhIGhhbmcgYnV0IGl0Cj4gPiB0aGVuCj4gPiByZWNvdmVyOgo+ID4gCj4gPiBbIDgy NjQuODUxODQxXSBhbXBoaW9uLXZwdS1jb3JlIDJkMDQwMDAwLnZwdV9jb3JlOiBbMF0gc3luYyBz ZXNzaW9uCj4gPiB0aW1lb3V0Cj4gPiBbIDgyNjQuODU4NjM0XSBhbXBoaW9uLXZwdS1jb3JlIDJk MDQwMDAwLnZwdV9jb3JlOiBbMF0gc2VuZCBjbWQoMHgyKSBmYWlsCj4gPiBbIDgyNjQuODY3OTky XSBhbXBoaW9uLXZwdS1jb3JlIDJkMDQwMDAwLnZwdV9jb3JlOiBbMF0gc3RhcnQgZmFpbAo+ID4g WyA4MjY0LjkwNTE3M10gYW1waGlvbi12cHUtY29yZSAyZDA0MDAwMC52cHVfY29yZTogcmVzZXQg aGFuZyBjb3JlCj4gPiAKPiAKPiBISSBOaWNvbGFzCj4gCj4gwqDCoMKgwqBUaGVyZSBpcyBhIGJ1 ZyBpbiBmaXJtd2FyZSB0aGF0IGlmIHNlbmQgYSBjb21tYW5kIHRvIGZpcm13YXJlIHRvbyBjbG9z ZQo+IGFmdGVyIHN0b3AgY21kLAo+IFRoZSBmaXJtd2FyZSBtYXkgZW50ZXIgd2ZpIHdyb25nLCBh bmQgbGVkIHRvIGhhbmcgaXNzdWUgeW91IG1ldCBpbiB2cDgwLTAzLQo+IHNlZ21lbnRhdGlvbi0x NDI1Lgo+IEknbGwgYWRkIGEgd29ya2Fyb3VuZCBpbiBkcml2ZXIgdGhhdCBhZGQgYSBkZWxheSBh ZnRlciBzZW5kIHN0b3AgY21kIHRvCj4gZmlybXdhcmUgaW4gbmV4dCB2ZXJzaW9uLgo+IAo+IMKg wqDCoMKgQmVjYXVzZSB0aGUgYW1waGlvbidzIHZwdSBkb2Vzbid0IHN1cHBvcnQgdG8gb3V0cHV0 IGk0MjAsIHNvIHRoZSB0ZXN0IHdpbGwKPiBjb252ZXJ0IG52MTJfOGwxMjggdG8gaTQyMCBieSB2 aWRlb2NvbnZlcnQsIGl0IGxlZHMgdG8gbW9zdCBvZiB0aW1lb3V0Cj4gZmFpbHVyZS4KPiAKPiDC oMKgwqDCoFRoZSBGTTFfQlRfQi5oMjY0IGNhbid0IGJlIGRlY29kZWQgYnkgYW1waGlvbidzIHZw dSwgdGhlIHZwdSBpcyBrZWVwaW5nCj4gcGFyc2Ugc2VxdWVuY2UgaGVhZGVyLCBhbmQgaXQgbGVk IHRvIHRpbWVvdXQgZmFpbHVyZS4KPiAKPiDCoMKgwqDCoEkgcnVuIHRoZSB0ZXN0IGFuZCBjaGFu Z2UgdGhlIHRpbWVvdXQgdG8gMzAwLCB0aGVuIG1vc3Qgb2YgdGltZW91dAo+IGZhaWx1cmVzIGFy ZSBnb25lLiBCZXNpZGVzIHRoYXQsIG15IHJlc3VsdCBpcyBhbG1vc3QgYXMgc2FtZSBhcyB5b3Vy cy4KCk9oIG15IGJhZCwgSSBmb3Jnb3QgYWJvdXQgdGhlIHNob3J0IHRpbWVvdXQsIHdpdGggYSBz aW5nbGUgY29yZSBvbiB0b3Agb2YgYWxsCnRoaXMsIHRoYXQgbWFrZXMgc2Vuc2UuCgo+IAo+IMKg wqDCoMKgVGhlIGZhaWx1cmVzIG9mIGFzc2VydGlvbiBlcnJvciBtZWFucyB0aGF0IHRoZSB2cHUn cyBvdXRwdXQgaXMgZGlmZmVyZW50Cj4gZnJvbSB0aGUgcGF0dGVybiwgSSB0aGluayBpdCBzaG91 bGQgYmUgdGhlIHZwdSdzIGxpbWl0YXRpb24uCgpNb3N0IGxpa2VseSwgYmVzdCB3YXkgdG8ga25v dyBpcyB0byBrZWVwIHRoZSByZXN1bHRzICgtLWtlZXApIGFuZCB2aXN1YWxseSBsb29rCmF0IHRo ZSByZXN1bHQuIE15IGV4cGVjdGF0aW9uIHdpdGggdGhpcyBpcyB0aGF0IHdlIGdldCBkZWNlbnQg cmVzdWx0cyBhbmQgdGhhdApub25lIG9mIHRoZSBpc3N1ZSByZW5kZXIgdGhlIFZQVSBvciB0aGUg c3lzdGVtIHVudXNhYmxlLiBFYWNoIGNvbXBhbnkgaXMgdGhlbgpyZXNwb25zaWJsZSBmb3IgdGhl aXIgQ09ERUMgY29uZm9ybWFuY2UsIHNwZWNpYWxseSB3aXRoIHN0YXRlZnVsLCB0aGVyZSBpcyB2 ZXJ5CmxpdHRsZSB0aGF0IHVzZXJzcGFjZSB3aWxsIGJlIHJlc3BvbnNpYmxlIHdpdGguIFRob3Vn aCBpZiB5b3UgZG8gZmluZCBpc3N1ZSB0aGF0CmlzIGNsZWFybHkgY2F1c2VkIGJ5IEdTdHJlYW5l ciwgbGV0IG1lIGtub3csIEknbGwgYmUgbW9yZSB0aGVuIGhhcHB5IHRvIGZpeC4KTW9zdCBWUFUg cHJvdmlkZXJzIHdpbGwgYWxzbyBidXkgcHJvcHJpZXRhcnkgY29uZm9ybWFuY2Ugc3VpdGUgKGxp a2UgQWxsZWdybyksCndoaWNoIGNvdmVycyBtdWNoIG1vcmUgdGhlbiBiYXNpYyBjb25mb3JtYW5j ZS4KCj4gCj4gPiAKPiA+IFNlZSBjb21tZW50cyBhYm91dCB5b3VyIEdTdHJlYW1lciBNUiBiZWxv dy4uLgo+ID4gCj4gPiBbMF0KPiA+IGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24u b3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGh1Yi4KPiA+IGNvbSUyRmZsdWVuZG8l MkZmbHVzdGVyJmFtcDtkYXRhPTA0JTdDMDElN0NtaW5nLnFpYW4lNDBueHAuY29tJTcKPiA+IEM0 NWQzMzQ5MGJmZTU0NmFhOGUxNDA4ZDlhZWI2YTgyMiU3QzY4NmVhMWQzYmMyYjRjNmZhOTJjZDk5 YzVjMwo+ID4gMDE2MzUlN0MwJTdDMCU3QzYzNzczMjkyMTgwOTM3MzAwNyU3Q1Vua25vd24lN0NU V0ZwYkdac2IzZAo+ID4gOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJU aUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzCj4gPiBEJTdDMzAwMCZhbXA7c2RhdGE9YkJxQURhWjla TjAwU2JDUGFsUUU1Zk43NDBoQjJiTVV4SERMNFFFa2kKPiA+IG1nJTNEJmFtcDtyZXNlcnZlZD0w Cj4gPiBbMV0KPiA+IGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5j b20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGh1Yi4KPiA+IGNvbSUyRmZsdWVuZG8lMkZmbHVzdGVy JTJGcHVsbCUyRjk4JmFtcDtkYXRhPTA0JTdDMDElN0NtaW5nLnFpYW4KPiA+ICU0MG54cC5jb20l N0M0NWQzMzQ5MGJmZTU0NmFhOGUxNDA4ZDlhZWI2YTgyMiU3QzY4NmVhMWQzYmMyYjRjCj4gPiA2 ZmE5MmNkOTljNWMzMDE2MzUlN0MwJTdDMCU3QzYzNzczMjkyMTgwOTM4Mjk4OSU3Q1Vua25vd24l N0MKPiA+IFRXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxD SkJUaUk2SWsxaGFXd2lMQwo+ID4gSlhWQ0k2TW4wJTNEJTdDMzAwMCZhbXA7c2RhdGE9OTBkVUMl MkZOekslMkJjRk5TTXdZN2JnUTBpRDgKPiA+IGN0QndVJTJGTWh5ckxvQkJFZjRnJTNEJmFtcDty ZXNlcnZlZD0wCj4gPiAKPiA+IAo+ID4gWy4uLl0KPiA+ID4gZW5jb2RlciBpcyB0ZXN0ZWQgd2l0 aCBnc3RyZWFtZXIKPiA+ID4gZGVjb2RlciBpcyB0ZXN0ZWQgd2l0aCBnc3RyZWFtZXIsIGJ1dCB0 aGUgZm9sbG93aW5nIHBhdGNoZXMgYXJlIHJlcXVpcmVkOgo+ID4gCj4gPiBHU3RyZWFtZXIgaXMg bm93IGEgc2luZ2xlIHJlcG8gKGFuZCB1c2luZyBtYWluIGJyYW5jaCBpbnN0ZWFkIG9mIG1hc3Rl ciksIEkKPiA+IGhhdmUKPiA+IG1pZ3JhdGVkIHlvdXIgMyBNUnMgaW50byAyIE1Scy4KPiAKPiBU aGFuayB5b3UgdmVyeSBtdWNoLgo+ID4gCj4gPiA+IAo+ID4gaHR0cHM6Ly9ldXIwMS5zYWZlbGlu a3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0bGFiLmZyCj4g PiBlZWRlc2t0b3Aub3JnJTJGZ3N0cmVhbWVyJTJGZ3N0LXBsdWdpbnMtYmFzZSUyRi0lMkZtZXJn ZV9yZXF1ZXN0cyUyRgo+ID4gMTI1MiZhbXA7ZGF0YT0wNCU3QzAxJTdDbWluZy5xaWFuJTQwbnhw LmNvbSU3QzQ1ZDMzNDkwYmZlNTQ2YWEKPiA+IDhlMTQwOGQ5YWViNmE4MjIlN0M2ODZlYTFkM2Jj MmI0YzZmYTkyY2Q5OWM1YzMwMTYzNSU3QzAlN0MwJTcKPiA+IEM2Mzc3MzI5MjE4MDkzODI5ODkl N0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBdwo+ID4gTURBaUxDSlFJam9p VjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MzMDAwJmFtcDtzZGEKPiA+ IHRhPUc0UG5xeFJzblBqUXRWJTJGVWNwNGRrb3o5ZkFHeGtPdiUyRnpLUjQ3UmFIdHUwJTNEJmFt cDtyZXNlcgo+ID4gdmVkPTAKPiA+ID4gCj4gPiBodHRwczovL2V1cjAxLnNhZmVsaW5rcy5wcm90 ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZnaXRsYWIuZnIKPiA+IGVlZGVz a3RvcC5vcmclMkZnc3RyZWFtZXIlMkZnc3QtcGx1Z2lucy1nb29kJTJGLSUyRm1lcmdlX3JlcXVl c3RzJTJGCj4gPiAxMDk4JmFtcDtkYXRhPTA0JTdDMDElN0NtaW5nLnFpYW4lNDBueHAuY29tJTdD NDVkMzM0OTBiZmU1NDZhYQo+ID4gOGUxNDA4ZDlhZWI2YTgyMiU3QzY4NmVhMWQzYmMyYjRjNmZh OTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAlNwo+ID4gQzYzNzczMjkyMTgwOTM4Mjk4OSU3Q1Vua25v d24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3Cj4gPiBNREFpTENKUUlqb2lWMmx1TXpJ aUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAmYW1wO3NkYQo+ID4gdGE9aDZu RUlTQWFpRzU0TlB6OVh3ME1pU05EeDJReFdzTld5RzdGTFNBYUxnSSUzRCZhbXA7cmVzZXJ2ZWQK PiA+ID0wCj4gPiAKPiA+IGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9v ay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGxhYi5mcgo+ID4gZWVkZXNrdG9wLm9yZyUyRmdz dHJlYW1lciUyRmdzdHJlYW1lciUyRi0lMkZtZXJnZV9yZXF1ZXN0cyUyRjEzNzkmCj4gPiBhbXA7 ZGF0YT0wNCU3QzAxJTdDbWluZy5xaWFuJTQwbnhwLmNvbSU3QzQ1ZDMzNDkwYmZlNTQ2YWE4ZTE0 MAo+ID4gOGQ5YWViNmE4MjIlN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5OWM1YzMwMTYzNSU3QzAl N0MwJTdDNjM3Nwo+ID4gMzI5MjE4MDkzODI5ODklN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlK V0lqb2lNQzR3TGpBd01EQWlMCj4gPiBDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENK WFZDSTZNbjAlM0QlN0MzMDAwJmFtcDtzZGF0YT1QRmUKPiA+IERiNHYlMkJtaWtzZ3ZKMDhLZ25j UmpaRXQ3R2RNTzdnVjhoVjBERDB1WSUzRCZhbXA7cmVzZXJ2ZWQ9MAo+ID4gCj4gPiA+IAo+ID4g aHR0cHM6Ly9ldXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBz JTNBJTJGJTJGZ2l0bGFiLmZyCj4gPiBlZWRlc2t0b3Aub3JnJTJGZ3N0cmVhbWVyJTJGZ3N0LXBs dWdpbnMtZ29vZCUyRi0lMkZtZXJnZV9yZXF1ZXN0cyUyRgo+ID4gMTA5OSZhbXA7ZGF0YT0wNCU3 QzAxJTdDbWluZy5xaWFuJTQwbnhwLmNvbSU3QzQ1ZDMzNDkwYmZlNTQ2YWEKPiA+IDhlMTQwOGQ5 YWViNmE4MjIlN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5OWM1YzMwMTYzNSU3QzAlN0MwJTcKPiA+ IEM2Mzc3MzI5MjE4MDkzODI5ODklN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3 TGpBdwo+ID4gTURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAl M0QlN0MzMDAwJmFtcDtzZGEKPiA+IHRhPWU2aFNEcGlQMnNjTE41QzBmOEZiJTJGb01idDhrNHpD NDVxV1ByUXBHJTJGZTVBJTNEJmFtcDtyZXNlCj4gPiBydmVkPTAKPiA+IAo+ID4gaHR0cHM6Ly9l dXIwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJG Z2l0bGFiLmZyCj4gPiBlZWRlc2t0b3Aub3JnJTJGZ3N0cmVhbWVyJTJGZ3N0cmVhbWVyJTJGLSUy Rm1lcmdlX3JlcXVlc3RzJTJGMTM4MSYKPiA+IGFtcDtkYXRhPTA0JTdDMDElN0NtaW5nLnFpYW4l NDBueHAuY29tJTdDNDVkMzM0OTBiZmU1NDZhYThlMTQwCj4gPiA4ZDlhZWI2YTgyMiU3QzY4NmVh MWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAlN0M2Mzc3Cj4gPiAzMjkyMTgwOTM4 Mjk4OSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUwKPiA+IENK UUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAmYW1wO3Nk YXRhPXhrWAo+ID4gV2pDc2dWYUxiMHdaZ2ZhWERNaUJjaHRiSkJObnd0Wk5oS2U0Mms1byUzRCZh bXA7cmVzZXJ2ZWQ9MAo+ID4gCj4gPiAKPiA+IHJlZ2FyZHMsCj4gPiBOaWNvbGFzCj4gPiAKPiA+ IFtKVlQtQVZDX1YxXSAoR1N0cmVhbWVyLUguMjY0LVY0TDItR3N0MS4wKSBGTTFfQlRfQiAgICAg ICAgICAgICAgICAgLi4uCj4gPiBUaW1lb3V0Cj4gVGhlIHZwdSBjYW4ndCBkZWNvZGUgdGhpcyBz dHJlYW0uCj4gCj4gPiBbSkNULVZDLUhFVkNfVjFdIChHU3RyZWFtZXItSC4yNjUtVjRMMi1Hc3Qx LjApCj4gPiBBTVBfRF9IaXNpbGljb25fMyAgICAgICAgICAgICAgIC4uLiBUaW1lb3V0Cj4gUGVy Zm9ybWFuY2UgaXNzdWUgb2YgdmlkZW9jb252ZXJ0Cj4gPiBbSkNULVZDLUhFVkNfVjFdIChHU3Ry ZWFtZXItSC4yNjUtVjRMMi1Hc3QxLjApCj4gPiBBTVBfRV9IaXNpbGljb25fMyAgICAgICAgICAg ICAgIC4uLiBUaW1lb3V0Cj4gUGVyZm9ybWFuY2UgaXNzdWUgb2YgdmlkZW9jb252ZXJ0Cj4gPiBb SkNULVZDLUhFVkNfVjFdIChHU3RyZWFtZXItSC4yNjUtVjRMMi1Hc3QxLjApCj4gPiBBTVBfRl9I aXNpbGljb25fMyAgICAgICAgICAgICAgIC4uLiBUaW1lb3V0Cj4gUGVyZm9ybWFuY2UgaXNzdWUg b2YgdmlkZW9jb252ZXJ0Cj4gPiBbSkNULVZDLUhFVkNfVjFdIChHU3RyZWFtZXItSC4yNjUtVjRM Mi1Hc3QxLjApCj4gPiBCVU1QSU5HX0FfZXJpY3Nzb25fMSAgICAgICAgICAgIC4uLiBGYWlsCj4g PiBbSkNULVZDLUhFVkNfVjFdIChHU3RyZWFtZXItSC4yNjUtVjRMMi1Hc3QxLjApCj4gPiBDT05G V0lOX0FfU29ueV8xICAgICAgICAgICAgICAgIC4uLiBGYWlsCj4gPiBbSkNULVZDLUhFVkNfVjFd IChHU3RyZWFtZXItSC4yNjUtVjRMMi1Hc3QxLjApCj4gPiBERUxUQVFQX0FfQlJDTV80ICAgICAg ICAgICAgICAgIC4uLiBUaW1lb3V0Cj4gUGVyZm9ybWFuY2UgaXNzdWUgb2YgdmlkZW9jb252ZXJ0 Cj4gPiBbSkNULVZDLUhFVkNfVjFdIChHU3RyZWFtZXItSC4yNjUtVjRMMi1Hc3QxLjApCj4gPiBN VkRMMVpFUk9fQV9kb2NvbW9fNCAgICAgICAgICAgIC4uLiBUaW1lb3V0Cj4gUGVyZm9ybWFuY2Ug aXNzdWUgb2YgdmlkZW9jb252ZXJ0Cj4gPiBbSkNULVZDLUhFVkNfVjFdIChHU3RyZWFtZXItSC4y NjUtVjRMMi1Hc3QxLjApCj4gPiBOb091dFByaW9yX0FfUXVhbGNvbW1fMSAgICAgICAgIC4uLiBG YWlsCj4gPiBbSkNULVZDLUhFVkNfVjFdIChHU3RyZWFtZXItSC4yNjUtVjRMMi1Hc3QxLjApCj4g PiBOb091dFByaW9yX0JfUXVhbGNvbW1fMSAgICAgICAgIC4uLiBGYWlsCj4gPiBbSkNULVZDLUhF VkNfVjFdIChHU3RyZWFtZXItSC4yNjUtVjRMMi1Hc3QxLjApCj4gPiBOVVRfQV9lcmljc3Nvbl81 ICAgICAgICAgICAgICAgIC4uLiBGYWlsCj4gPiBbSkNULVZDLUhFVkNfVjFdIChHU3RyZWFtZXIt SC4yNjUtVjRMMi1Hc3QxLjApCj4gPiBQSUNTSVpFX0FfQm9zc2VuXzEgICAgICAgICAgICAgIC4u LiBFcnJvcgo+IFRoZSBzaXplIGlzIDEwNTZ4ODQ0MCwgdnB1IGRvZXNuJ3Qgc3VwcG9ydCBpdAo+ ID4gW0pDVC1WQy1IRVZDX1YxXSAoR1N0cmVhbWVyLUguMjY1LVY0TDItR3N0MS4wKQo+ID4gUElD U0laRV9CX0Jvc3Nlbl8xICAgICAgICAgICAgICAuLi4gRXJyb3IKPiBUaGUgc2l6ZSBpcyA4NDQw eDEwNTYsIHZwdSBkb2Vzbid0IHN1cHBvcnQgaXQKPiA+IFtKQ1QtVkMtSEVWQ19WMV0gKEdTdHJl YW1lci1ILjI2NS1WNEwyLUdzdDEuMCkKPiA+IFBJQ1NJWkVfQ19Cb3NzZW5fMSAgICAgICAgICAg ICAgLi4uIEZhaWwKPiA+IFtKQ1QtVkMtSEVWQ19WMV0gKEdTdHJlYW1lci1ILjI2NS1WNEwyLUdz dDEuMCkKPiA+IFBJQ1NJWkVfRF9Cb3NzZW5fMSAgICAgICAgICAgICAgLi4uIEZhaWwKPiA+IFtK Q1QtVkMtSEVWQ19WMV0gKEdTdHJlYW1lci1ILjI2NS1WNEwyLUdzdDEuMCkKPiA+IFJBUF9CX0Jv c3Nlbl8yICAgICAgICAgICAgICAgICAgLi4uIEZhaWwKPiA+IFtKQ1QtVkMtSEVWQ19WMV0gKEdT dHJlYW1lci1ILjI2NS1WNEwyLUdzdDEuMCkKPiA+IFNBT0RCTEtfQV9NYWluQ29uY2VwdF80ICAg ICAgICAgLi4uIFRpbWVvdXQKPiBQZXJmb3JtYW5jZSBpc3N1ZSBvZiB2aWRlb2NvbnZlcnQKPiA+ IFtKQ1QtVkMtSEVWQ19WMV0gKEdTdHJlYW1lci1ILjI2NS1WNEwyLUdzdDEuMCkKPiA+IFNBT0RC TEtfQl9NYWluQ29uY2VwdF80ICAgICAgICAgLi4uIFRpbWVvdXQKPiBQZXJmb3JtYW5jZSBpc3N1 ZSBvZiB2aWRlb2NvbnZlcnQKPiA+IFtKQ1QtVkMtSEVWQ19WMV0gKEdTdHJlYW1lci1ILjI2NS1W NEwyLUdzdDEuMCkKPiA+IFRJTEVTX0FfQ2lzY29fMiAgICAgICAgICAgICAgICAgLi4uIFRpbWVv dXQKPiBQZXJmb3JtYW5jZSBpc3N1ZSBvZiB2aWRlb2NvbnZlcnQKPiA+IFtKQ1QtVkMtSEVWQ19W MV0gKEdTdHJlYW1lci1ILjI2NS1WNEwyLUdzdDEuMCkKPiA+IFRJTEVTX0JfQ2lzY29fMSAgICAg ICAgICAgICAgICAgLi4uIFRpbWVvdXQKPiBQZXJmb3JtYW5jZSBpc3N1ZSBvZiB2aWRlb2NvbnZl cnQsIGJ1dCBhc3NlcnQgZmFpbAo+ID4gW0pDVC1WQy1IRVZDX1YxXSAoR1N0cmVhbWVyLUguMjY1 LVY0TDItR3N0MS4wKQo+ID4gVFNVTkVRQkRfQV9NQUlOMTBfVGVjaG5pY29sb3JfMiAuLi4gRmFp bAo+ID4gW0pDVC1WQy1IRVZDX1YxXSAoR1N0cmVhbWVyLUguMjY1LVY0TDItR3N0MS4wKQo+ID4g VlBTU1BTUFBTX0FfTWFpbkNvbmNlcHRfMSAgICAgICAuLi4gRXJyb3IKPiBHc3RyZWFtIHJlcG9y dCBlcnJvcjoKPiBFUlJPUiBFcnJvciBmcm9tIGVsZW1lbnQKPiAvR3N0UGxheUJpbjpwbGF5Ymlu L0dzdFVSSURlY29kZUJpbjp1cmlkZWNvZGViaW4wL0dzdERlY29kZUJpbjpkZWNvZGViaW4wL3Y0 bDIKPiBoMjY1ZGVjOnY0bDJoMjY1ZGVjMDogQ291bGQgbm90IHJlYWQgZnJvbSByZXNvdXJjZS4K PiBDb3VsZCBub3QgcmVhZCBmcm9tIHJlc291cmNlLgo+IC4uL3N5cy92NGwyL2dzdHY0bDJidWZm ZXJwb29sLmMoMTE1NSk6IGdzdF92NGwyX2J1ZmZlcl9wb29sX3BvbGwgKCk6Cj4gL0dzdFBsYXlC aW46cGxheWJpbi9Hc3RVUklEZWNvZGVCaW46dXJpZGVjb2RlYmluMC9Hc3REZWNvZGVCaW46ZGVj b2RlYmluMC92NGwyCj4gaDI2NWRlYzp2NGwyaDI2NWRlYzA6Cj4gcG9sbCBlcnJvciAxOiBTdWNj ZXNzICgwKSBmb3IgL21udC9mbHVzdGVyL3Jlc291cmNlcy9KQ1QtVkMtCj4gSEVWQ19WMS9WUFNT UFNQUFNfQV9NYWluQ29uY2VwdF8xL1ZQU1NQU1BQU19BX01haW5Db25jZXB0XzEuYmluCj4gwqAK PiA+IFtWUDgtVEVTVC1WRUNUT1JTXSAoR1N0cmVhbWVyLVZQOC1WNEwyLUdzdDEuMCkKPiA+IHZw ODAtMDMtc2VnbWVudGF0aW9uLTE0MjUgLi4uIFRpbWVvdXQKPiBGaXJtd2FyZSBidWcsIGFmdGVy IGFwcGx5IGRyaXZlciB3b3JrYXJvdW5kLCBhc3NlcnQgZmFpbAo+ID4gW1ZQOC1URVNULVZFQ1RP UlNdIChHU3RyZWFtZXItVlA4LVY0TDItR3N0MS4wKQo+ID4gdnA4MC0wMy1zZWdtZW50YXRpb24t MTQzNiAuLi4gRmFpbAo+ID4gCj4gPiAKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==