From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 52C12320F; Fri, 18 Feb 2022 12:22:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ED0EEC340E9; Fri, 18 Feb 2022 12:22:22 +0000 (UTC) Message-ID: Date: Fri, 18 Feb 2022 13:22:21 +0100 Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1 Subject: Re: [RFC v2 5/8] media: uapi: Add fields needed for RKVDEC driver Content-Language: en-US To: Benjamin Gaignard , mchehab@kernel.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@gmail.com, jonas@kwiboo.se, nicolas@ndufresne.ca Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, kernel@collabora.com, knaerzche@gmail.com, jc@kynesim.co.uk References: <20220215110103.241297-1-benjamin.gaignard@collabora.com> <20220215110103.241297-6-benjamin.gaignard@collabora.com> <3973e1f8-665a-c2d1-d493-19f66d307b88@collabora.com> From: Hans Verkuil In-Reply-To: <3973e1f8-665a-c2d1-d493-19f66d307b88@collabora.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 18/02/2022 13:19, Benjamin Gaignard wrote: > > Le 18/02/2022 à 12:32, Hans Verkuil a écrit : >> On 15/02/2022 12:01, Benjamin Gaignard wrote: >>> RKVDEC driver requires additional fields to perform HEVC decoding. >>> Even if the driver isn't mainlined yet WIP patches could be find here: >>> https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Rockchip/patches/linux/default/linux-2000-v4l2-wip-rkvdec-hevc.patch >>> >>> This patch only include the change in HEVC uAPI. >>> >>> Signed-off-by: Benjamin Gaignard >>> --- >>>   .../userspace-api/media/v4l/ext-ctrls-codec.rst  | 16 ++++++++++++++++ >>>   include/uapi/linux/v4l2-controls.h               |  5 +++++ >>>   2 files changed, 21 insertions(+) >>> >>> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >>> index 4f3b3ba8319f..3296ac3b9fca 100644 >>> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >>> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >>> @@ -2661,6 +2661,13 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >>>       :stub-columns: 0 >>>       :widths:       1 1 2 >>>   +    * - __u8 >>> +      - ``video_parameter_set_id`` >>> +      - Identifies the VPS for reference by other syntax elements. >>> +    * - __u8 >>> +      - ``seq_parameter_set_id`` >>> +      - Provides an identifier for the SPS for reference by other syntax >>> +        elements. >>>       * - __u16 >>>         - ``pic_width_in_luma_samples`` >>>         - >>> @@ -2800,6 +2807,9 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >>>       :stub-columns: 0 >>>       :widths:       1 1 2 >>>   +    * - __u8 >>> +      - ``pic_parameter_set_id`` >>> +      - Identifies the PPS for reference by other syntax elements. >>>       * - __u8 >>>         - ``num_extra_slice_header_bits`` >>>         - >>> @@ -3026,6 +3036,12 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >>>       * - __u8 >>>         - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` >>>         - The list of L1 reference elements as indices in the DPB. >>> +    * - __u16 >>> +      - ``short_term_ref_pic_set_size`` >>> +      - >>> +    * - __u16 >>> +      - ``long_term_ref_pic_set_size`` >>> +      - >>>       * - __u8 >>>         - ``padding`` >>>         - Applications and drivers must set this to zero. >> Just to confirm: these additional fields are all from the H.265 spec, right? >> They are not rkvdec specific. > > They are in H.265 spec section "7.4.3.2.2 Sequence parameter set range extension semantics": > - num_short_term_ref_pic_sets specifies the number of st_ref_pic_set( ) syntax structures included in the SPS. The value > of num_short_term_ref_pic_sets shall be in the range of 0 to 64, inclusive. > > - num_long_term_ref_pics_sps specifies the number of candidate long-term reference pictures that are specified in the > SPS. The value of num_long_term_ref_pics_sps shall be in the range of 0 to 32, inclusive. And what about video/seq/pic_parameter_set_id? Regards, Hans > > I mention rkvdec because that it is the only driver to use they (as far I knows) > > Regards, > Benjamin > >> >> Regards, >> >>     Hans >> >>> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h >>> index 0e0ec2c61b80..b1a3dc05f02f 100644 >>> --- a/include/uapi/linux/v4l2-controls.h >>> +++ b/include/uapi/linux/v4l2-controls.h >>> @@ -2341,6 +2341,8 @@ enum v4l2_stateless_hevc_start_code { >>>     struct v4l2_ctrl_hevc_sps { >>>       /* ISO/IEC 23008-2, ITU-T Rec. H.265: Sequence parameter set */ >>> +    __u8    video_parameter_set_id; >>> +    __u8    seq_parameter_set_id; >>>       __u16    pic_width_in_luma_samples; >>>       __u16    pic_height_in_luma_samples; >>>       __u8    bit_depth_luma_minus8; >>> @@ -2393,6 +2395,7 @@ struct v4l2_ctrl_hevc_sps { >>>     struct v4l2_ctrl_hevc_pps { >>>       /* ISO/IEC 23008-2, ITU-T Rec. H.265: Picture parameter set */ >>> +    __u8    pic_parameter_set_id; >>>       __u8    num_extra_slice_header_bits; >>>       __u8    num_ref_idx_l0_default_active_minus1; >>>       __u8    num_ref_idx_l1_default_active_minus1; >>> @@ -2487,6 +2490,8 @@ struct v4l2_ctrl_hevc_slice_params { >>>       __u32    slice_segment_addr; >>>       __u8    ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >>>       __u8    ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >>> +    __u16    short_term_ref_pic_set_size; >>> +    __u16    long_term_ref_pic_set_size; >>>         /* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */ >>>       struct v4l2_hevc_pred_weight_table pred_weight_table; 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 AA639C433F5 for ; Fri, 18 Feb 2022 13:04:51 +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:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=V9N+BT5+w0XdbbdJA2W6jRMEbUKXRlVKOJ/iPB0llC4=; b=3Na+aA+cWuOyhO UB3QKHzE8p1YXXeWvpBMt2PcUF+NPviNDSrKkdz+ansV1HfJcCC92jXsiQAehKmxacU5pTM2ifVHM U6ksQdUirLy6rTih84YmoZ4OazEF+lUws7gIexDJHcyr8QUSDNYcF5DI2VJJ6JWvFOuq4gqPojhdx WP+UnIWNvvn4iKca8yj2KywpiYpJ7o16UUF3zE9qTVXYD/tBUN4rLMFvdMazHXvf0BPAUIhTDnMOA DotvuCN/i7vmWtMYfRCrQ7nJICJdTlz59+NpALTRtZbp6XQSR5SfZPeccGwyfSVWXHax7+7C7OPLH xH4VUznFv5lECsBVQ9pA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nL2uu-00EOwl-92; Fri, 18 Feb 2022 13:03:20 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nL2HL-00ECLw-3W for linux-arm-kernel@lists.infradead.org; Fri, 18 Feb 2022 12:22:29 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7FBAE61CFF; Fri, 18 Feb 2022 12:22:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ED0EEC340E9; Fri, 18 Feb 2022 12:22:22 +0000 (UTC) Message-ID: Date: Fri, 18 Feb 2022 13:22:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1 Subject: Re: [RFC v2 5/8] media: uapi: Add fields needed for RKVDEC driver Content-Language: en-US To: Benjamin Gaignard , mchehab@kernel.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@gmail.com, jonas@kwiboo.se, nicolas@ndufresne.ca Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, kernel@collabora.com, knaerzche@gmail.com, jc@kynesim.co.uk References: <20220215110103.241297-1-benjamin.gaignard@collabora.com> <20220215110103.241297-6-benjamin.gaignard@collabora.com> <3973e1f8-665a-c2d1-d493-19f66d307b88@collabora.com> From: Hans Verkuil In-Reply-To: <3973e1f8-665a-c2d1-d493-19f66d307b88@collabora.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220218_042227_273015_C92CFA8D X-CRM114-Status: GOOD ( 18.93 ) 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 T24gMTgvMDIvMjAyMiAxMzoxOSwgQmVuamFtaW4gR2FpZ25hcmQgd3JvdGU6Cj4gCj4gTGUgMTgv MDIvMjAyMiDDoCAxMjozMiwgSGFucyBWZXJrdWlsIGEgw6ljcml0wqA6Cj4+IE9uIDE1LzAyLzIw MjIgMTI6MDEsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+Pj4gUktWREVDIGRyaXZlciByZXF1 aXJlcyBhZGRpdGlvbmFsIGZpZWxkcyB0byBwZXJmb3JtIEhFVkMgZGVjb2RpbmcuCj4+PiBFdmVu IGlmIHRoZSBkcml2ZXIgaXNuJ3QgbWFpbmxpbmVkIHlldCBXSVAgcGF0Y2hlcyBjb3VsZCBiZSBm aW5kIGhlcmU6Cj4+PiBodHRwczovL2dpdGh1Yi5jb20vTGlicmVFTEVDL0xpYnJlRUxFQy50di9i bG9iL21hc3Rlci9wcm9qZWN0cy9Sb2NrY2hpcC9wYXRjaGVzL2xpbnV4L2RlZmF1bHQvbGludXgt MjAwMC12NGwyLXdpcC1ya3ZkZWMtaGV2Yy5wYXRjaAo+Pj4KPj4+IFRoaXMgcGF0Y2ggb25seSBp bmNsdWRlIHRoZSBjaGFuZ2UgaW4gSEVWQyB1QVBJLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IEJl bmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBjb2xsYWJvcmEuY29tPgo+Pj4gLS0t Cj4+PiDCoCAuLi4vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvZXh0LWN0cmxzLWNvZGVjLnJzdMKg IHwgMTYgKysrKysrKysrKysrKysrKwo+Pj4gwqAgaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29u dHJvbHMuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDUgKysrKysKPj4+IMKgIDIg ZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9Eb2N1 bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL2V4dC1jdHJscy1jb2RlYy5yc3QgYi9E b2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL2V4dC1jdHJscy1jb2RlYy5yc3QK Pj4+IGluZGV4IDRmM2IzYmE4MzE5Zi4uMzI5NmFjM2I5ZmNhIDEwMDY0NAo+Pj4gLS0tIGEvRG9j dW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0Cj4+ PiArKysgYi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL2V4dC1jdHJscy1j b2RlYy5yc3QKPj4+IEBAIC0yNjYxLDYgKzI2NjEsMTMgQEAgZW51bSB2NGwyX21wZWdfdmlkZW9f aGV2Y19zaXplX29mX2xlbmd0aF9maWVsZCAtCj4+PiDCoMKgwqDCoMKgIDpzdHViLWNvbHVtbnM6 IDAKPj4+IMKgwqDCoMKgwqAgOndpZHRoczrCoMKgwqDCoMKgwqAgMSAxIDIKPj4+IMKgICvCoMKg wqAgKiAtIF9fdTgKPj4+ICvCoMKgwqDCoMKgIC0gYGB2aWRlb19wYXJhbWV0ZXJfc2V0X2lkYGAK Pj4+ICvCoMKgwqDCoMKgIC0gSWRlbnRpZmllcyB0aGUgVlBTIGZvciByZWZlcmVuY2UgYnkgb3Ro ZXIgc3ludGF4IGVsZW1lbnRzLgo+Pj4gK8KgwqDCoCAqIC0gX191OAo+Pj4gK8KgwqDCoMKgwqAg LSBgYHNlcV9wYXJhbWV0ZXJfc2V0X2lkYGAKPj4+ICvCoMKgwqDCoMKgIC0gUHJvdmlkZXMgYW4g aWRlbnRpZmllciBmb3IgdGhlIFNQUyBmb3IgcmVmZXJlbmNlIGJ5IG90aGVyIHN5bnRheAo+Pj4g K8KgwqDCoMKgwqDCoMKgIGVsZW1lbnRzLgo+Pj4gwqDCoMKgwqDCoCAqIC0gX191MTYKPj4+IMKg wqDCoMKgwqDCoMKgIC0gYGBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzYGAKPj4+IMKgwqDCoMKg wqDCoMKgIC0KPj4+IEBAIC0yODAwLDYgKzI4MDcsOSBAQCBlbnVtIHY0bDJfbXBlZ192aWRlb19o ZXZjX3NpemVfb2ZfbGVuZ3RoX2ZpZWxkIC0KPj4+IMKgwqDCoMKgwqAgOnN0dWItY29sdW1uczog MAo+Pj4gwqDCoMKgwqDCoCA6d2lkdGhzOsKgwqDCoMKgwqDCoCAxIDEgMgo+Pj4gwqAgK8KgwqDC oCAqIC0gX191OAo+Pj4gK8KgwqDCoMKgwqAgLSBgYHBpY19wYXJhbWV0ZXJfc2V0X2lkYGAKPj4+ ICvCoMKgwqDCoMKgIC0gSWRlbnRpZmllcyB0aGUgUFBTIGZvciByZWZlcmVuY2UgYnkgb3RoZXIg c3ludGF4IGVsZW1lbnRzLgo+Pj4gwqDCoMKgwqDCoCAqIC0gX191OAo+Pj4gwqDCoMKgwqDCoMKg wqAgLSBgYG51bV9leHRyYV9zbGljZV9oZWFkZXJfYml0c2BgCj4+PiDCoMKgwqDCoMKgwqDCoCAt Cj4+PiBAQCAtMzAyNiw2ICszMDM2LDEyIEBAIGVudW0gdjRsMl9tcGVnX3ZpZGVvX2hldmNfc2l6 ZV9vZl9sZW5ndGhfZmllbGQgLQo+Pj4gwqDCoMKgwqDCoCAqIC0gX191OAo+Pj4gwqDCoMKgwqDC oMKgwqAgLSBgYHJlZl9pZHhfbDFbVjRMMl9IRVZDX0RQQl9FTlRSSUVTX05VTV9NQVhdYGAKPj4+ IMKgwqDCoMKgwqDCoMKgIC0gVGhlIGxpc3Qgb2YgTDEgcmVmZXJlbmNlIGVsZW1lbnRzIGFzIGlu ZGljZXMgaW4gdGhlIERQQi4KPj4+ICvCoMKgwqAgKiAtIF9fdTE2Cj4+PiArwqDCoMKgwqDCoCAt IGBgc2hvcnRfdGVybV9yZWZfcGljX3NldF9zaXplYGAKPj4+ICvCoMKgwqDCoMKgIC0KPj4+ICvC oMKgwqAgKiAtIF9fdTE2Cj4+PiArwqDCoMKgwqDCoCAtIGBgbG9uZ190ZXJtX3JlZl9waWNfc2V0 X3NpemVgYAo+Pj4gK8KgwqDCoMKgwqAgLQo+Pj4gwqDCoMKgwqDCoCAqIC0gX191OAo+Pj4gwqDC oMKgwqDCoMKgwqAgLSBgYHBhZGRpbmdgYAo+Pj4gwqDCoMKgwqDCoMKgwqAgLSBBcHBsaWNhdGlv bnMgYW5kIGRyaXZlcnMgbXVzdCBzZXQgdGhpcyB0byB6ZXJvLgo+PiBKdXN0IHRvIGNvbmZpcm06 IHRoZXNlIGFkZGl0aW9uYWwgZmllbGRzIGFyZSBhbGwgZnJvbSB0aGUgSC4yNjUgc3BlYywgcmln aHQ/Cj4+IFRoZXkgYXJlIG5vdCBya3ZkZWMgc3BlY2lmaWMuCj4gCj4gVGhleSBhcmUgaW4gSC4y NjUgc3BlYyBzZWN0aW9uICI3LjQuMy4yLjIgU2VxdWVuY2UgcGFyYW1ldGVyIHNldCByYW5nZSBl eHRlbnNpb24gc2VtYW50aWNzIjoKPiAtIG51bV9zaG9ydF90ZXJtX3JlZl9waWNfc2V0cyBzcGVj aWZpZXMgdGhlIG51bWJlciBvZiBzdF9yZWZfcGljX3NldCggKSBzeW50YXggc3RydWN0dXJlcyBp bmNsdWRlZCBpbiB0aGUgU1BTLiBUaGUgdmFsdWUKPiBvZiBudW1fc2hvcnRfdGVybV9yZWZfcGlj X3NldHMgc2hhbGwgYmUgaW4gdGhlIHJhbmdlIG9mIDAgdG8gNjQsIGluY2x1c2l2ZS4KPiAKPiAt IG51bV9sb25nX3Rlcm1fcmVmX3BpY3Nfc3BzIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNhbmRp ZGF0ZSBsb25nLXRlcm0gcmVmZXJlbmNlIHBpY3R1cmVzIHRoYXQgYXJlIHNwZWNpZmllZCBpbiB0 aGUKPiBTUFMuIFRoZSB2YWx1ZSBvZiBudW1fbG9uZ190ZXJtX3JlZl9waWNzX3NwcyBzaGFsbCBi ZSBpbiB0aGUgcmFuZ2Ugb2YgMCB0byAzMiwgaW5jbHVzaXZlLgoKQW5kIHdoYXQgYWJvdXQgdmlk ZW8vc2VxL3BpY19wYXJhbWV0ZXJfc2V0X2lkPwoKUmVnYXJkcywKCglIYW5zCgo+IAo+IEkgbWVu dGlvbiBya3ZkZWMgYmVjYXVzZSB0aGF0IGl0IGlzIHRoZSBvbmx5IGRyaXZlciB0byB1c2UgdGhl eSAoYXMgZmFyIEkga25vd3MpCj4gCj4gUmVnYXJkcywKPiBCZW5qYW1pbgo+IAo+Pgo+PiBSZWdh cmRzLAo+Pgo+PiDCoMKgwqDCoEhhbnMKPj4KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkv bGludXgvdjRsMi1jb250cm9scy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29udHJvbHMu aAo+Pj4gaW5kZXggMGUwZWMyYzYxYjgwLi5iMWEzZGMwNWYwMmYgMTAwNjQ0Cj4+PiAtLS0gYS9p bmNsdWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oCj4+PiArKysgYi9pbmNsdWRlL3VhcGkv bGludXgvdjRsMi1jb250cm9scy5oCj4+PiBAQCAtMjM0MSw2ICsyMzQxLDggQEAgZW51bSB2NGwy X3N0YXRlbGVzc19oZXZjX3N0YXJ0X2NvZGUgewo+Pj4gwqAgwqAgc3RydWN0IHY0bDJfY3RybF9o ZXZjX3NwcyB7Cj4+PiDCoMKgwqDCoMKgIC8qIElTTy9JRUMgMjMwMDgtMiwgSVRVLVQgUmVjLiBI LjI2NTogU2VxdWVuY2UgcGFyYW1ldGVyIHNldCAqLwo+Pj4gK8KgwqDCoCBfX3U4wqDCoMKgIHZp ZGVvX3BhcmFtZXRlcl9zZXRfaWQ7Cj4+PiArwqDCoMKgIF9fdTjCoMKgwqAgc2VxX3BhcmFtZXRl cl9zZXRfaWQ7Cj4+PiDCoMKgwqDCoMKgIF9fdTE2wqDCoMKgIHBpY193aWR0aF9pbl9sdW1hX3Nh bXBsZXM7Cj4+PiDCoMKgwqDCoMKgIF9fdTE2wqDCoMKgIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1w bGVzOwo+Pj4gwqDCoMKgwqDCoCBfX3U4wqDCoMKgIGJpdF9kZXB0aF9sdW1hX21pbnVzODsKPj4+ IEBAIC0yMzkzLDYgKzIzOTUsNyBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc3BzIHsKPj4+IMKg IMKgIHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19wcHMgewo+Pj4gwqDCoMKgwqDCoCAvKiBJU08vSUVD IDIzMDA4LTIsIElUVS1UIFJlYy4gSC4yNjU6IFBpY3R1cmUgcGFyYW1ldGVyIHNldCAqLwo+Pj4g K8KgwqDCoCBfX3U4wqDCoMKgIHBpY19wYXJhbWV0ZXJfc2V0X2lkOwo+Pj4gwqDCoMKgwqDCoCBf X3U4wqDCoMKgIG51bV9leHRyYV9zbGljZV9oZWFkZXJfYml0czsKPj4+IMKgwqDCoMKgwqAgX191 OMKgwqDCoCBudW1fcmVmX2lkeF9sMF9kZWZhdWx0X2FjdGl2ZV9taW51czE7Cj4+PiDCoMKgwqDC oMKgIF9fdTjCoMKgwqAgbnVtX3JlZl9pZHhfbDFfZGVmYXVsdF9hY3RpdmVfbWludXMxOwo+Pj4g QEAgLTI0ODcsNiArMjQ5MCw4IEBAIHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zbGljZV9wYXJhbXMg ewo+Pj4gwqDCoMKgwqDCoCBfX3UzMsKgwqDCoCBzbGljZV9zZWdtZW50X2FkZHI7Cj4+PiDCoMKg wqDCoMKgIF9fdTjCoMKgwqAgcmVmX2lkeF9sMFtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01B WF07Cj4+PiDCoMKgwqDCoMKgIF9fdTjCoMKgwqAgcmVmX2lkeF9sMVtWNEwyX0hFVkNfRFBCX0VO VFJJRVNfTlVNX01BWF07Cj4+PiArwqDCoMKgIF9fdTE2wqDCoMKgIHNob3J0X3Rlcm1fcmVmX3Bp Y19zZXRfc2l6ZTsKPj4+ICvCoMKgwqAgX191MTbCoMKgwqAgbG9uZ190ZXJtX3JlZl9waWNfc2V0 X3NpemU7Cj4+PiDCoCDCoMKgwqDCoMKgIC8qIElTTy9JRUMgMjMwMDgtMiwgSVRVLVQgUmVjLiBI LjI2NTogV2VpZ2h0ZWQgcHJlZGljdGlvbiBwYXJhbWV0ZXIgKi8KPj4+IMKgwqDCoMKgwqAgc3Ry dWN0IHY0bDJfaGV2Y19wcmVkX3dlaWdodF90YWJsZSBwcmVkX3dlaWdodF90YWJsZTsKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==