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=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable 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 9BC39C433DB for ; Fri, 19 Feb 2021 16:46:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6840A64DF0 for ; Fri, 19 Feb 2021 16:46:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229876AbhBSQpy (ORCPT ); Fri, 19 Feb 2021 11:45:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44376 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229535AbhBSQpv (ORCPT ); Fri, 19 Feb 2021 11:45:51 -0500 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FA38C061574; Fri, 19 Feb 2021 08:45:11 -0800 (PST) Received: from [IPv6:2a01:e0a:4cb:a870:9157:afa6:f219:3c2c] (unknown [IPv6:2a01:e0a:4cb:a870:9157:afa6:f219:3c2c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id A8DEB1F464EB; Fri, 19 Feb 2021 16:45:08 +0000 (GMT) Subject: Re: [PATCH v2 1/9] media: hevc: Modify structures to follow H265 ITU spec To: =?UTF-8?Q?Jernej_=c5=a0krabec?= , ezequiel@collabora.com, p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, peng.fan@nxp.com, hverkuil-cisco@xs4all.nl, dan.carpenter@oracle.com Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com References: <20210218191844.297869-1-benjamin.gaignard@collabora.com> <20210218191844.297869-2-benjamin.gaignard@collabora.com> <12182109.SKTadsSyRz@kista> From: Benjamin Gaignard Message-ID: <5e4d5ff0-ab10-b402-2652-d956214b3fa8@collabora.com> Date: Fri, 19 Feb 2021 17:45:05 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <12182109.SKTadsSyRz@kista> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 18/02/2021 à 22:43, Jernej Škrabec a écrit : > Hi! > > Dne četrtek, 18. februar 2021 ob 20:18:36 CET je Benjamin Gaignard napisal(a): >> The H.265 ITU specification (section 7.4) define the general >> slice segment header semantics. >> Modified/added fields are: >> - video_parameter_set_id: (7.4.3.1) identifies the VPS for >> reference by other syntax elements. >> - seq_parameter_set_id: (7.4.3.2.1) specifies the value of >> the vps_video_parameter_set_id of the active VPS. >> - chroma_format_idc: (7.4.3.2.1) specifies the chroma sampling >> relative to the luma sampling >> - pic_parameter_set_id: (7.4.3.3.1) identifies the PPS for >> reference by other syntax elements >> - num_ref_idx_l0_default_active_minus1: (7.4.3.3.1) specifies >> the inferred value of num_ref_idx_l0_active_minus1 >> - num_ref_idx_l1_default_active_minus1: (7.4.3.3.1) specifies >> the inferred value of num_ref_idx_l1_active_minus1 >> - slice_segment_addr: (7.4.7.1) specifies the address of >> the first coding tree block in the slice segment >> - num_entry_point_offsets: (7.4.7.1) specifies the number of >> entry_point_offset_minus1[ i ] syntax elements in the slice header >> >> Add HEVC decode params contains the information used in section >> "8.3 Slice decoding process" of the specification to let the hardware >> perform decoding of a slices. >> >> Adapt Cedrus driver according to these changes. >> >> Signed-off-by: Benjamin Gaignard >> --- >> version 2: >> - remove all change related to scaling >> - squash commits to a coherent split >> - be more verbose about the added fields >> >> drivers/media/v4l2-core/v4l2-ctrls.c | 26 ++++++++--- >> drivers/staging/media/sunxi/cedrus/cedrus.c | 6 +++ >> drivers/staging/media/sunxi/cedrus/cedrus.h | 1 + >> .../staging/media/sunxi/cedrus/cedrus_dec.c | 2 + >> .../staging/media/sunxi/cedrus/cedrus_h265.c | 6 ++- >> include/media/hevc-ctrls.h | 45 +++++++++++++++---- >> 6 files changed, 69 insertions(+), 17 deletions(-) >> >> diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/ > v4l2-ctrls.c >> index 016cf6204cbb..4060b5bcc3c0 100644 >> --- a/drivers/media/v4l2-core/v4l2-ctrls.c >> +++ b/drivers/media/v4l2-core/v4l2-ctrls.c >> @@ -1028,6 +1028,7 @@ const char *v4l2_ctrl_get_name(u32 id) >> case V4L2_CID_MPEG_VIDEO_HEVC_SPS: > return "HEVC Sequence Parameter Set"; >> case V4L2_CID_MPEG_VIDEO_HEVC_PPS: > return "HEVC Picture Parameter Set"; >> case V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS: return > "HEVC Slice Parameters"; >> + case V4L2_CID_MPEG_VIDEO_HEVC_DECODE_PARAMS: > return "HEVC Decode Parameters"; >> case V4L2_CID_MPEG_VIDEO_HEVC_DECODE_MODE: return "HEVC > Decode Mode"; >> case V4L2_CID_MPEG_VIDEO_HEVC_START_CODE: return > "HEVC Start Code"; >> >> @@ -1482,6 +1483,9 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum > v4l2_ctrl_type *type, >> case V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS: >> *type = V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS; >> break; >> + case V4L2_CID_MPEG_VIDEO_HEVC_DECODE_PARAMS: >> + *type = V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS; >> + break; >> case V4L2_CID_UNIT_CELL_SIZE: >> *type = V4L2_CTRL_TYPE_AREA; >> *flags |= V4L2_CTRL_FLAG_READ_ONLY; >> @@ -1833,6 +1837,7 @@ static int std_validate_compound(const struct > v4l2_ctrl *ctrl, u32 idx, >> struct v4l2_ctrl_hevc_sps *p_hevc_sps; >> struct v4l2_ctrl_hevc_pps *p_hevc_pps; >> struct v4l2_ctrl_hevc_slice_params *p_hevc_slice_params; >> + struct v4l2_ctrl_hevc_decode_params *p_hevc_decode_params; >> struct v4l2_area *area; >> void *p = ptr.p + idx * ctrl->elem_size; >> unsigned int i; >> @@ -2108,23 +2113,27 @@ static int std_validate_compound(const struct > v4l2_ctrl *ctrl, u32 idx, >> zero_padding(*p_hevc_pps); >> break; >> >> - case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: >> - p_hevc_slice_params = p; >> + case V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS: >> + p_hevc_decode_params = p; >> >> - if (p_hevc_slice_params->num_active_dpb_entries > >> + if (p_hevc_decode_params->num_active_dpb_entries > >> V4L2_HEVC_DPB_ENTRIES_NUM_MAX) >> return -EINVAL; >> >> - zero_padding(p_hevc_slice_params->pred_weight_table); >> - >> - for (i = 0; i < p_hevc_slice_params- >> num_active_dpb_entries; >> + for (i = 0; i < p_hevc_decode_params- >> num_active_dpb_entries; >> i++) { >> struct v4l2_hevc_dpb_entry *dpb_entry = >> - &p_hevc_slice_params->dpb[i]; >> + &p_hevc_decode_params->dpb[i]; >> >> zero_padding(*dpb_entry); >> } >> >> + break; >> + >> + case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: >> + p_hevc_slice_params = p; >> + >> + zero_padding(p_hevc_slice_params->pred_weight_table); >> zero_padding(*p_hevc_slice_params); >> break; >> >> @@ -2821,6 +2830,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct > v4l2_ctrl_handler *hdl, >> case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: >> elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params); >> break; >> + case V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS: >> + elem_size = sizeof(struct v4l2_ctrl_hevc_decode_params); >> + break; >> case V4L2_CTRL_TYPE_AREA: >> elem_size = sizeof(struct v4l2_area); >> break; >> diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/ > media/sunxi/cedrus/cedrus.c >> index 7bd9291c8d5f..4cd3cab1a257 100644 >> --- a/drivers/staging/media/sunxi/cedrus/cedrus.c >> +++ b/drivers/staging/media/sunxi/cedrus/cedrus.c >> @@ -151,6 +151,12 @@ static const struct cedrus_control cedrus_controls[] = > { >> }, >> .codec = CEDRUS_CODEC_VP8, >> }, >> + { >> + .cfg = { >> + .id = V4L2_CID_MPEG_VIDEO_HEVC_DECODE_PARAMS, >> + }, >> + .codec = CEDRUS_CODEC_H265, >> + }, >> }; >> >> #define CEDRUS_CONTROLS_COUNT ARRAY_SIZE(cedrus_controls) >> diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/ > media/sunxi/cedrus/cedrus.h >> index 251a6a660351..2ca33ac38b9a 100644 >> --- a/drivers/staging/media/sunxi/cedrus/cedrus.h >> +++ b/drivers/staging/media/sunxi/cedrus/cedrus.h >> @@ -76,6 +76,7 @@ struct cedrus_h265_run { >> const struct v4l2_ctrl_hevc_sps *sps; >> const struct v4l2_ctrl_hevc_pps *pps; >> const struct v4l2_ctrl_hevc_slice_params *slice_params; >> + const struct v4l2_ctrl_hevc_decode_params *decode_params; >> }; >> >> struct cedrus_vp8_run { >> diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c b/drivers/ > staging/media/sunxi/cedrus/cedrus_dec.c >> index a9090daf626a..cd821f417a14 100644 >> --- a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c >> +++ b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c >> @@ -68,6 +68,8 @@ void cedrus_device_run(void *priv) >> V4L2_CID_MPEG_VIDEO_HEVC_PPS); >> run.h265.slice_params = cedrus_find_control_data(ctx, >> V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS); >> + run.h265.decode_params = cedrus_find_control_data(ctx, >> + V4L2_CID_MPEG_VIDEO_HEVC_DECODE_PARAMS); >> break; >> >> case V4L2_PIX_FMT_VP8_FRAME: >> diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/ > staging/media/sunxi/cedrus/cedrus_h265.c >> index ce497d0197df..dce5db6be13a 100644 >> --- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c >> +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c >> @@ -245,6 +245,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, >> const struct v4l2_ctrl_hevc_sps *sps; >> const struct v4l2_ctrl_hevc_pps *pps; >> const struct v4l2_ctrl_hevc_slice_params *slice_params; >> + const struct v4l2_ctrl_hevc_decode_params *decode_params; >> const struct v4l2_hevc_pred_weight_table *pred_weight_table; >> dma_addr_t src_buf_addr; >> dma_addr_t src_buf_end_addr; >> @@ -256,6 +257,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, >> sps = run->h265.sps; >> pps = run->h265.pps; >> slice_params = run->h265.slice_params; >> + decode_params = run->h265.decode_params; >> pred_weight_table = &slice_params->pred_weight_table; >> >> /* MV column buffer size and allocation. */ >> @@ -487,7 +489,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, >> >> reg = > VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_TC_OFFSET_DIV2(slice_params- >> slice_tc_offset_div2) | >> > VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_BETA_OFFSET_DIV2(slice_params- >> slice_beta_offset_div2) | >> - > VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_POC_BIGEST_IN_RPS_ST(slice_params- >> num_rps_poc_st_curr_after == 0) | >> + > VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_POC_BIGEST_IN_RPS_ST(decode_params- >> num_rps_poc_st_curr_after == 0) | >> > VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_CR_QP_OFFSET(slice_params- >> slice_cr_qp_offset) | >> > VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_CB_QP_OFFSET(slice_params- >> slice_cb_qp_offset) | >> VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_QP_DELTA(slice_params- >> slice_qp_delta); >> @@ -528,7 +530,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, >> >> /* Write decoded picture buffer in pic list. */ >> cedrus_h265_frame_info_write_dpb(ctx, slice_params->dpb, >> - slice_params- >> num_active_dpb_entries); >> + decode_params- >> num_active_dpb_entries); >> >> /* Output frame. */ >> >> diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h >> index b4cb2ef02f17..7fe704a08f77 100644 >> --- a/include/media/hevc-ctrls.h >> +++ b/include/media/hevc-ctrls.h >> @@ -19,6 +19,7 @@ >> #define V4L2_CID_MPEG_VIDEO_HEVC_SPS (V4L2_CID_CODEC_BASE + > 1008) >> #define V4L2_CID_MPEG_VIDEO_HEVC_PPS (V4L2_CID_CODEC_BASE + > 1009) >> #define V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS (V4L2_CID_CODEC_BASE + > 1010) >> +#define V4L2_CID_MPEG_VIDEO_HEVC_DECODE_PARAMS (V4L2_CID_CODEC_BASE + > 1012) >> #define V4L2_CID_MPEG_VIDEO_HEVC_DECODE_MODE (V4L2_CID_CODEC_BASE + > 1015) >> #define V4L2_CID_MPEG_VIDEO_HEVC_START_CODE (V4L2_CID_CODEC_BASE + > 1016) >> >> @@ -26,6 +27,7 @@ >> #define V4L2_CTRL_TYPE_HEVC_SPS 0x0120 >> #define V4L2_CTRL_TYPE_HEVC_PPS 0x0121 >> #define V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS 0x0122 >> +#define V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS 0x0124 >> >> enum v4l2_mpeg_video_hevc_decode_mode { >> V4L2_MPEG_VIDEO_HEVC_DECODE_MODE_SLICE_BASED, >> @@ -54,6 +56,9 @@ enum v4l2_mpeg_video_hevc_start_code { >> /* The controls are not stable at the moment and will likely be reworked. > */ >> 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; >> + __u8 chroma_format_idc; >> __u16 pic_width_in_luma_samples; >> __u16 pic_height_in_luma_samples; >> __u8 bit_depth_luma_minus8; >> @@ -74,9 +79,9 @@ struct v4l2_ctrl_hevc_sps { >> __u8 log2_diff_max_min_pcm_luma_coding_block_size; >> __u8 num_short_term_ref_pic_sets; >> __u8 num_long_term_ref_pics_sps; >> - __u8 chroma_format_idc; >> >> - __u8 padding; >> + __u8 num_slices; >> + __u8 padding[6]; >> >> __u64 flags; >> }; >> @@ -100,10 +105,15 @@ struct v4l2_ctrl_hevc_sps { >> #define V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER (1ULL << 16) >> #define V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT (1ULL << 17) >> #define V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT (1ULL << > 18) >> +#define V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT (1ULL << 19) >> +#define V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING > (1ULL << 20) >> >> 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; >> __s8 init_qp_minus26; >> __u8 diff_cu_qp_delta_depth; >> __s8 pps_cb_qp_offset; >> @@ -116,7 +126,7 @@ struct v4l2_ctrl_hevc_pps { >> __s8 pps_tc_offset_div2; >> __u8 log2_parallel_merge_level_minus2; >> >> - __u8 padding[4]; >> + __u8 padding; >> __u64 flags; >> }; >> >> @@ -165,6 +175,10 @@ struct v4l2_ctrl_hevc_slice_params { >> __u32 bit_size; >> __u32 data_bit_offset; >> >> + /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header > */ >> + __u32 slice_segment_addr; >> + __u32 num_entry_point_offsets; >> + >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: NAL unit header */ >> __u8 nal_unit_type; >> __u8 nuh_temporal_id_plus1; >> @@ -190,15 +204,13 @@ struct v4l2_ctrl_hevc_slice_params { >> __u8 pic_struct; >> >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header > */ >> - __u8 num_active_dpb_entries; >> __u8 ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> __u8 ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> >> - __u8 num_rps_poc_st_curr_before; >> - __u8 num_rps_poc_st_curr_after; >> - __u8 num_rps_poc_lt_curr; >> + __u16 short_term_ref_pic_set_size; >> + __u16 long_term_ref_pic_set_size; >> >> - __u8 padding; >> + __u8 padding[5]; >> >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header > */ >> struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> @@ -209,4 +221,21 @@ struct v4l2_ctrl_hevc_slice_params { >> __u64 flags; >> }; >> >> +#define V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC 0x1 >> +#define V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC 0x2 >> +#define V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR 0x4 >> + >> +struct v4l2_ctrl_hevc_decode_params { >> + __s32 pic_order_cnt_val; >> + __u8 num_active_dpb_entries; >> + struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> + __u8 num_rps_poc_st_curr_before; >> + __u8 num_rps_poc_st_curr_after; >> + __u8 num_rps_poc_lt_curr; >> + __u8 rps_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> + __u8 rps_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> + __u8 rps_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> + __u64 flags; >> +}; > Current practice is to also add/update controls documentation in > Documentation/userspace-api/media/v4l/ > > With your changes, v4l2_ctrl_hevc_pps and v4l2_ctrl_hevc_slice_params > descriptions are out of sync and v4l2_ctrl_hevc_decode_params description is > completely missing. Thanks for your comment. That will be fix in v3. Benjamin > Best regards, > Jernej > >> + >> #endif >> -- >> 2.25.1 >> >> > > 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=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 82354C433E0 for ; Fri, 19 Feb 2021 16:45:23 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 1C47B64DED for ; Fri, 19 Feb 2021 16:45:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1C47B64DED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=iBPanFOsqZu/OhAzCqloNHQv1vMyHmWJOhaFybfWxSE=; b=QDqvLEpA555RbYkwXf/dcSX/1 HySN7Zac2YH0u0rPBf/rOuSU5FB0VqlzMvdbKWtg/v6FdQva/LGrmPxXULl0OIHioZ2XWvDiOtRp5 5Tkd/sSAWMCb70Lb87aHLq1sH+TUEUVoclcvO3/l8o6Z0KhBfxnz0Xw9U/flSxPuTIgmf/c0rVid5 C4r0YDDZ4Rd7azJJ29+LNF4/AnZFPL3N0Zszel95kVZt/7H5q+Pv4dpSjxpkPd1OUWhqFLYFGCgcQ C19PGhRCmlw3WvdC6yK4J9TKnWBVJHHD6v+TC8KGAIH6DZO1stAvzymWyTea7JKmoofwrPAbThngY lhH1W5PnA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lD8u4-0006fR-2z; Fri, 19 Feb 2021 16:45:16 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1lD8u0-0006eN-2v; Fri, 19 Feb 2021 16:45:13 +0000 Received: from [IPv6:2a01:e0a:4cb:a870:9157:afa6:f219:3c2c] (unknown [IPv6:2a01:e0a:4cb:a870:9157:afa6:f219:3c2c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id A8DEB1F464EB; Fri, 19 Feb 2021 16:45:08 +0000 (GMT) Subject: Re: [PATCH v2 1/9] media: hevc: Modify structures to follow H265 ITU spec To: =?UTF-8?Q?Jernej_=c5=a0krabec?= , ezequiel@collabora.com, p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, peng.fan@nxp.com, hverkuil-cisco@xs4all.nl, dan.carpenter@oracle.com References: <20210218191844.297869-1-benjamin.gaignard@collabora.com> <20210218191844.297869-2-benjamin.gaignard@collabora.com> <12182109.SKTadsSyRz@kista> From: Benjamin Gaignard Message-ID: <5e4d5ff0-ab10-b402-2652-d956214b3fa8@collabora.com> Date: Fri, 19 Feb 2021 17:45:05 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <12182109.SKTadsSyRz@kista> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210219_114512_363452_1A0C90DF X-CRM114-Status: GOOD ( 25.53 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, kernel@collabora.com, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org CkxlIDE4LzAyLzIwMjEgw6AgMjI6NDMsIEplcm5laiDFoGtyYWJlYyBhIMOpY3JpdMKgOgo+IEhp IQo+Cj4gRG5lIMSNZXRydGVrLCAxOC4gZmVicnVhciAyMDIxIG9iIDIwOjE4OjM2IENFVCBqZSBC ZW5qYW1pbiBHYWlnbmFyZCBuYXBpc2FsKGEpOgo+PiBUaGUgSC4yNjUgSVRVIHNwZWNpZmljYXRp b24gKHNlY3Rpb24gNy40KSBkZWZpbmUgdGhlIGdlbmVyYWwKPj4gc2xpY2Ugc2VnbWVudCBoZWFk ZXIgc2VtYW50aWNzLgo+PiBNb2RpZmllZC9hZGRlZCBmaWVsZHMgYXJlOgo+PiAtIHZpZGVvX3Bh cmFtZXRlcl9zZXRfaWQ6ICg3LjQuMy4xKSBpZGVudGlmaWVzIHRoZSBWUFMgZm9yCj4+IHJlZmVy ZW5jZSBieSBvdGhlciBzeW50YXggZWxlbWVudHMuCj4+IC0gc2VxX3BhcmFtZXRlcl9zZXRfaWQ6 ICg3LjQuMy4yLjEpIHNwZWNpZmllcyB0aGUgdmFsdWUgb2YKPj4gdGhlIHZwc192aWRlb19wYXJh bWV0ZXJfc2V0X2lkIG9mIHRoZSBhY3RpdmUgVlBTLgo+PiAtIGNocm9tYV9mb3JtYXRfaWRjOiAo Ny40LjMuMi4xKSBzcGVjaWZpZXMgdGhlIGNocm9tYSBzYW1wbGluZwo+PiAgIHJlbGF0aXZlIHRv IHRoZSBsdW1hIHNhbXBsaW5nCj4+IC0gcGljX3BhcmFtZXRlcl9zZXRfaWQ6ICg3LjQuMy4zLjEp IGlkZW50aWZpZXMgdGhlIFBQUyBmb3IKPj4gcmVmZXJlbmNlIGJ5IG90aGVyIHN5bnRheCBlbGVt ZW50cwo+PiAtIG51bV9yZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogKDcuNC4zLjMu MSkgc3BlY2lmaWVzCj4+IHRoZSBpbmZlcnJlZCB2YWx1ZSBvZiBudW1fcmVmX2lkeF9sMF9hY3Rp dmVfbWludXMxCj4+IC0gbnVtX3JlZl9pZHhfbDFfZGVmYXVsdF9hY3RpdmVfbWludXMxOiAoNy40 LjMuMy4xKSBzcGVjaWZpZXMKPj4gdGhlIGluZmVycmVkIHZhbHVlIG9mIG51bV9yZWZfaWR4X2wx X2FjdGl2ZV9taW51czEKPj4gLSBzbGljZV9zZWdtZW50X2FkZHI6ICg3LjQuNy4xKSBzcGVjaWZp ZXMgdGhlIGFkZHJlc3Mgb2YKPj4gdGhlIGZpcnN0IGNvZGluZyB0cmVlIGJsb2NrIGluIHRoZSBz bGljZSBzZWdtZW50Cj4+IC0gbnVtX2VudHJ5X3BvaW50X29mZnNldHM6ICg3LjQuNy4xKSBzcGVj aWZpZXMgdGhlIG51bWJlciBvZgo+PiBlbnRyeV9wb2ludF9vZmZzZXRfbWludXMxWyBpIF0gc3lu dGF4IGVsZW1lbnRzIGluIHRoZSBzbGljZSBoZWFkZXIKPj4KPj4gQWRkIEhFVkMgZGVjb2RlIHBh cmFtcyBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gdXNlZCBpbiBzZWN0aW9uCj4+ICI4LjMgU2xp Y2UgZGVjb2RpbmcgcHJvY2VzcyIgb2YgdGhlIHNwZWNpZmljYXRpb24gdG8gbGV0IHRoZSBoYXJk d2FyZQo+PiBwZXJmb3JtIGRlY29kaW5nIG9mIGEgc2xpY2VzLgo+Pgo+PiBBZGFwdCBDZWRydXMg ZHJpdmVyIGFjY29yZGluZyB0byB0aGVzZSBjaGFuZ2VzLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBC ZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAY29sbGFib3JhLmNvbT4KPj4gLS0t Cj4+IHZlcnNpb24gMjoKPj4gLSByZW1vdmUgYWxsIGNoYW5nZSByZWxhdGVkIHRvIHNjYWxpbmcK Pj4gLSBzcXVhc2ggY29tbWl0cyB0byBhIGNvaGVyZW50IHNwbGl0Cj4+IC0gYmUgbW9yZSB2ZXJi b3NlIGFib3V0IHRoZSBhZGRlZCBmaWVsZHMKPj4KPj4gICBkcml2ZXJzL21lZGlhL3Y0bDItY29y ZS92NGwyLWN0cmxzLmMgICAgICAgICAgfCAyNiArKysrKysrKy0tLQo+PiAgIGRyaXZlcnMvc3Rh Z2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmMgICB8ICA2ICsrKwo+PiAgIGRyaXZlcnMv c3RhZ2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmggICB8ICAxICsKPj4gICAuLi4vc3Rh Z2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzX2RlYy5jICAgfCAgMiArCj4+ICAgLi4uL3N0 YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1c19oMjY1LmMgIHwgIDYgKystCj4+ICAgaW5j bHVkZS9tZWRpYS9oZXZjLWN0cmxzLmggICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysr KysrKysrLS0tLQo+PiAgIDYgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTcgZGVs ZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwy LWN0cmxzLmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS8KPiB2NGwyLWN0cmxzLmMKPj4gaW5k ZXggMDE2Y2Y2MjA0Y2JiLi40MDYwYjViY2MzYzAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3Y0bDItY3RybHMuYwo+PiArKysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29y ZS92NGwyLWN0cmxzLmMKPj4gQEAgLTEwMjgsNiArMTAyOCw3IEBAIGNvbnN0IGNoYXIgKnY0bDJf Y3RybF9nZXRfbmFtZSh1MzIgaWQpCj4+ICAgCWNhc2UgVjRMMl9DSURfTVBFR19WSURFT19IRVZD X1NQUzoJCQkKPiByZXR1cm4gIkhFVkMgU2VxdWVuY2UgUGFyYW1ldGVyIFNldCI7Cj4+ICAgCWNh c2UgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX1BQUzoJCQkKPiByZXR1cm4gIkhFVkMgUGljdHVy ZSBQYXJhbWV0ZXIgU2V0IjsKPj4gICAJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfU0xJ Q0VfUEFSQU1TOgkJcmV0dXJuCj4gIkhFVkMgU2xpY2UgUGFyYW1ldGVycyI7Cj4+ICsJY2FzZSBW NEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfREVDT0RFX1BBUkFNUzoJCQo+IHJldHVybiAiSEVWQyBE ZWNvZGUgUGFyYW1ldGVycyI7Cj4+ICAgCWNhc2UgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX0RF Q09ERV9NT0RFOgkJcmV0dXJuICJIRVZDCj4gRGVjb2RlIE1vZGUiOwo+PiAgIAljYXNlIFY0TDJf Q0lEX01QRUdfVklERU9fSEVWQ19TVEFSVF9DT0RFOgkJcmV0dXJuCj4gIkhFVkMgU3RhcnQgQ29k ZSI7Cj4+ICAgCj4+IEBAIC0xNDgyLDYgKzE0ODMsOSBAQCB2b2lkIHY0bDJfY3RybF9maWxsKHUz MiBpZCwgY29uc3QgY2hhciAqKm5hbWUsIGVudW0KPiB2NGwyX2N0cmxfdHlwZSAqdHlwZSwKPj4g ICAJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfU0xJQ0VfUEFSQU1TOgo+PiAgIAkJKnR5 cGUgPSBWNEwyX0NUUkxfVFlQRV9IRVZDX1NMSUNFX1BBUkFNUzsKPj4gICAJCWJyZWFrOwo+PiAr CWNhc2UgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX0RFQ09ERV9QQVJBTVM6Cj4+ICsJCSp0eXBl ID0gVjRMMl9DVFJMX1RZUEVfSEVWQ19ERUNPREVfUEFSQU1TOwo+PiArCQlicmVhazsKPj4gICAJ Y2FzZSBWNEwyX0NJRF9VTklUX0NFTExfU0laRToKPj4gICAJCSp0eXBlID0gVjRMMl9DVFJMX1RZ UEVfQVJFQTsKPj4gICAJCSpmbGFncyB8PSBWNEwyX0NUUkxfRkxBR19SRUFEX09OTFk7Cj4+IEBA IC0xODMzLDYgKzE4MzcsNyBAQCBzdGF0aWMgaW50IHN0ZF92YWxpZGF0ZV9jb21wb3VuZChjb25z dCBzdHJ1Y3QKPiB2NGwyX2N0cmwgKmN0cmwsIHUzMiBpZHgsCj4+ICAgCXN0cnVjdCB2NGwyX2N0 cmxfaGV2Y19zcHMgKnBfaGV2Y19zcHM7Cj4+ICAgCXN0cnVjdCB2NGwyX2N0cmxfaGV2Y19wcHMg KnBfaGV2Y19wcHM7Cj4+ICAgCXN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zbGljZV9wYXJhbXMgKnBf aGV2Y19zbGljZV9wYXJhbXM7Cj4+ICsJc3RydWN0IHY0bDJfY3RybF9oZXZjX2RlY29kZV9wYXJh bXMgKnBfaGV2Y19kZWNvZGVfcGFyYW1zOwo+PiAgIAlzdHJ1Y3QgdjRsMl9hcmVhICphcmVhOwo+ PiAgIAl2b2lkICpwID0gcHRyLnAgKyBpZHggKiBjdHJsLT5lbGVtX3NpemU7Cj4+ICAgCXVuc2ln bmVkIGludCBpOwo+PiBAQCAtMjEwOCwyMyArMjExMywyNyBAQCBzdGF0aWMgaW50IHN0ZF92YWxp ZGF0ZV9jb21wb3VuZChjb25zdCBzdHJ1Y3QKPiB2NGwyX2N0cmwgKmN0cmwsIHUzMiBpZHgsCj4+ ICAgCQl6ZXJvX3BhZGRpbmcoKnBfaGV2Y19wcHMpOwo+PiAgIAkJYnJlYWs7Cj4+ICAgCj4+IC0J Y2FzZSBWNEwyX0NUUkxfVFlQRV9IRVZDX1NMSUNFX1BBUkFNUzoKPj4gLQkJcF9oZXZjX3NsaWNl X3BhcmFtcyA9IHA7Cj4+ICsJY2FzZSBWNEwyX0NUUkxfVFlQRV9IRVZDX0RFQ09ERV9QQVJBTVM6 Cj4+ICsJCXBfaGV2Y19kZWNvZGVfcGFyYW1zID0gcDsKPj4gICAKPj4gLQkJaWYgKHBfaGV2Y19z bGljZV9wYXJhbXMtPm51bV9hY3RpdmVfZHBiX2VudHJpZXMgPgo+PiArCQlpZiAocF9oZXZjX2Rl Y29kZV9wYXJhbXMtPm51bV9hY3RpdmVfZHBiX2VudHJpZXMgPgo+PiAgIAkJICAgIFY0TDJfSEVW Q19EUEJfRU5UUklFU19OVU1fTUFYKQo+PiAgIAkJCXJldHVybiAtRUlOVkFMOwo+PiAgIAo+PiAt CQl6ZXJvX3BhZGRpbmcocF9oZXZjX3NsaWNlX3BhcmFtcy0+cHJlZF93ZWlnaHRfdGFibGUpOwo+ PiAtCj4+IC0JCWZvciAoaSA9IDA7IGkgPCBwX2hldmNfc2xpY2VfcGFyYW1zLQo+PiBudW1fYWN0 aXZlX2RwYl9lbnRyaWVzOwo+PiArCQlmb3IgKGkgPSAwOyBpIDwgcF9oZXZjX2RlY29kZV9wYXJh bXMtCj4+IG51bV9hY3RpdmVfZHBiX2VudHJpZXM7Cj4+ICAgCQkgICAgIGkrKykgewo+PiAgIAkJ CXN0cnVjdCB2NGwyX2hldmNfZHBiX2VudHJ5ICpkcGJfZW50cnkgPQo+PiAtCQkJCSZwX2hldmNf c2xpY2VfcGFyYW1zLT5kcGJbaV07Cj4+ICsJCQkJJnBfaGV2Y19kZWNvZGVfcGFyYW1zLT5kcGJb aV07Cj4+ICAgCj4+ICAgCQkJemVyb19wYWRkaW5nKCpkcGJfZW50cnkpOwo+PiAgIAkJfQo+PiAg IAo+PiArCQlicmVhazsKPj4gKwo+PiArCWNhc2UgVjRMMl9DVFJMX1RZUEVfSEVWQ19TTElDRV9Q QVJBTVM6Cj4+ICsJCXBfaGV2Y19zbGljZV9wYXJhbXMgPSBwOwo+PiArCj4+ICsJCXplcm9fcGFk ZGluZyhwX2hldmNfc2xpY2VfcGFyYW1zLT5wcmVkX3dlaWdodF90YWJsZSk7Cj4+ICAgCQl6ZXJv X3BhZGRpbmcoKnBfaGV2Y19zbGljZV9wYXJhbXMpOwo+PiAgIAkJYnJlYWs7Cj4+ICAgCj4+IEBA IC0yODIxLDYgKzI4MzAsOSBAQCBzdGF0aWMgc3RydWN0IHY0bDJfY3RybCAqdjRsMl9jdHJsX25l dyhzdHJ1Y3QKPiB2NGwyX2N0cmxfaGFuZGxlciAqaGRsLAo+PiAgIAljYXNlIFY0TDJfQ1RSTF9U WVBFX0hFVkNfU0xJQ0VfUEFSQU1TOgo+PiAgIAkJZWxlbV9zaXplID0gc2l6ZW9mKHN0cnVjdCB2 NGwyX2N0cmxfaGV2Y19zbGljZV9wYXJhbXMpOwo+PiAgIAkJYnJlYWs7Cj4+ICsJY2FzZSBWNEwy X0NUUkxfVFlQRV9IRVZDX0RFQ09ERV9QQVJBTVM6Cj4+ICsJCWVsZW1fc2l6ZSA9IHNpemVvZihz dHJ1Y3QgdjRsMl9jdHJsX2hldmNfZGVjb2RlX3BhcmFtcyk7Cj4+ICsJCWJyZWFrOwo+PiAgIAlj YXNlIFY0TDJfQ1RSTF9UWVBFX0FSRUE6Cj4+ICAgCQllbGVtX3NpemUgPSBzaXplb2Yoc3RydWN0 IHY0bDJfYXJlYSk7Cj4+ICAgCQlicmVhazsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2lu Zy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmMgYi9kcml2ZXJzL3N0YWdpbmcvCj4gbWVkaWEv c3VueGkvY2VkcnVzL2NlZHJ1cy5jCj4+IGluZGV4IDdiZDkyOTFjOGQ1Zi4uNGNkM2NhYjFhMjU3 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1 cy5jCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmMK Pj4gQEAgLTE1MSw2ICsxNTEsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjZWRydXNfY29udHJv bCBjZWRydXNfY29udHJvbHNbXSA9Cj4gewo+PiAgIAkJfSwKPj4gICAJCS5jb2RlYwkJPSBDRURS VVNfQ09ERUNfVlA4LAo+PiAgIAl9LAo+PiArCXsKPj4gKwkJLmNmZyA9IHsKPj4gKwkJCS5pZCA9 IFY0TDJfQ0lEX01QRUdfVklERU9fSEVWQ19ERUNPREVfUEFSQU1TLAo+PiArCQl9LAo+PiArCQku Y29kZWMJCT0gQ0VEUlVTX0NPREVDX0gyNjUsCj4+ICsJfSwKPj4gICB9Owo+PiAgIAo+PiAgICNk ZWZpbmUgQ0VEUlVTX0NPTlRST0xTX0NPVU5UCUFSUkFZX1NJWkUoY2VkcnVzX2NvbnRyb2xzKQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXMu aCBiL2RyaXZlcnMvc3RhZ2luZy8KPiBtZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmgKPj4gaW5k ZXggMjUxYTZhNjYwMzUxLi4yY2EzM2FjMzhiOWEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvc3Rh Z2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmgKPj4gKysrIGIvZHJpdmVycy9zdGFnaW5n L21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXMuaAo+PiBAQCAtNzYsNiArNzYsNyBAQCBzdHJ1Y3Qg Y2VkcnVzX2gyNjVfcnVuIHsKPj4gICAJY29uc3Qgc3RydWN0IHY0bDJfY3RybF9oZXZjX3NwcwkJ CSpzcHM7Cj4+ICAgCWNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19wcHMJCQkqcHBzOwo+PiAg IAljb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zCSpzbGljZV9wYXJhbXM7 Cj4+ICsJY29uc3Qgc3RydWN0IHY0bDJfY3RybF9oZXZjX2RlY29kZV9wYXJhbXMJKmRlY29kZV9w YXJhbXM7Cj4+ICAgfTsKPj4gICAKPj4gICBzdHJ1Y3QgY2VkcnVzX3ZwOF9ydW4gewo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfZGVjLmMg Yi9kcml2ZXJzLwo+IHN0YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1c19kZWMuYwo+PiBp bmRleCBhOTA5MGRhZjYyNmEuLmNkODIxZjQxN2ExNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9z dGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfZGVjLmMKPj4gKysrIGIvZHJpdmVycy9z dGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfZGVjLmMKPj4gQEAgLTY4LDYgKzY4LDgg QEAgdm9pZCBjZWRydXNfZGV2aWNlX3J1bih2b2lkICpwcml2KQo+PiAgIAkJCVY0TDJfQ0lEX01Q RUdfVklERU9fSEVWQ19QUFMpOwo+PiAgIAkJcnVuLmgyNjUuc2xpY2VfcGFyYW1zID0gY2VkcnVz X2ZpbmRfY29udHJvbF9kYXRhKGN0eCwKPj4gICAJCQlWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNf U0xJQ0VfUEFSQU1TKTsKPj4gKwkJcnVuLmgyNjUuZGVjb2RlX3BhcmFtcyA9IGNlZHJ1c19maW5k X2NvbnRyb2xfZGF0YShjdHgsCj4+ICsJCQlWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfREVDT0RF X1BBUkFNUyk7Cj4+ICAgCQlicmVhazsKPj4gICAKPj4gICAJY2FzZSBWNEwyX1BJWF9GTVRfVlA4 X0ZSQU1FOgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1 cy9jZWRydXNfaDI2NS5jIGIvZHJpdmVycy8KPiBzdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9j ZWRydXNfaDI2NS5jCj4+IGluZGV4IGNlNDk3ZDAxOTdkZi4uZGNlNWRiNmJlMTNhIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1c19oMjY1LmMK Pj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfaDI2NS5j Cj4+IEBAIC0yNDUsNiArMjQ1LDcgQEAgc3RhdGljIHZvaWQgY2VkcnVzX2gyNjVfc2V0dXAoc3Ry dWN0IGNlZHJ1c19jdHggKmN0eCwKPj4gICAJY29uc3Qgc3RydWN0IHY0bDJfY3RybF9oZXZjX3Nw cyAqc3BzOwo+PiAgIAljb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfcHBzICpwcHM7Cj4+ICAg CWNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zbGljZV9wYXJhbXMgKnNsaWNlX3BhcmFtczsK Pj4gKwljb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfZGVjb2RlX3BhcmFtcyAqZGVjb2RlX3Bh cmFtczsKPj4gICAJY29uc3Qgc3RydWN0IHY0bDJfaGV2Y19wcmVkX3dlaWdodF90YWJsZSAqcHJl ZF93ZWlnaHRfdGFibGU7Cj4+ICAgCWRtYV9hZGRyX3Qgc3JjX2J1Zl9hZGRyOwo+PiAgIAlkbWFf YWRkcl90IHNyY19idWZfZW5kX2FkZHI7Cj4+IEBAIC0yNTYsNiArMjU3LDcgQEAgc3RhdGljIHZv aWQgY2VkcnVzX2gyNjVfc2V0dXAoc3RydWN0IGNlZHJ1c19jdHggKmN0eCwKPj4gICAJc3BzID0g cnVuLT5oMjY1LnNwczsKPj4gICAJcHBzID0gcnVuLT5oMjY1LnBwczsKPj4gICAJc2xpY2VfcGFy YW1zID0gcnVuLT5oMjY1LnNsaWNlX3BhcmFtczsKPj4gKwlkZWNvZGVfcGFyYW1zID0gcnVuLT5o MjY1LmRlY29kZV9wYXJhbXM7Cj4+ICAgCXByZWRfd2VpZ2h0X3RhYmxlID0gJnNsaWNlX3BhcmFt cy0+cHJlZF93ZWlnaHRfdGFibGU7Cj4+ICAgCj4+ICAgCS8qIE1WIGNvbHVtbiBidWZmZXIgc2l6 ZSBhbmQgYWxsb2NhdGlvbi4gKi8KPj4gQEAgLTQ4Nyw3ICs0ODksNyBAQCBzdGF0aWMgdm9pZCBj ZWRydXNfaDI2NV9zZXR1cChzdHJ1Y3QgY2VkcnVzX2N0eCAqY3R4LAo+PiAgIAo+PiAgIAlyZWcg PQo+IFZFX0RFQ19IMjY1X0RFQ19TTElDRV9IRFJfSU5GTzFfU0xJQ0VfVENfT0ZGU0VUX0RJVjIo c2xpY2VfcGFyYW1zLQo+PiBzbGljZV90Y19vZmZzZXRfZGl2MikgfAo+PiAgIAkKPiBWRV9ERUNf SDI2NV9ERUNfU0xJQ0VfSERSX0lORk8xX1NMSUNFX0JFVEFfT0ZGU0VUX0RJVjIoc2xpY2VfcGFy YW1zLQo+PiBzbGljZV9iZXRhX29mZnNldF9kaXYyKSB8Cj4+IC0JCj4gVkVfREVDX0gyNjVfREVD X1NMSUNFX0hEUl9JTkZPMV9TTElDRV9QT0NfQklHRVNUX0lOX1JQU19TVChzbGljZV9wYXJhbXMt Cj4+IG51bV9ycHNfcG9jX3N0X2N1cnJfYWZ0ZXIgPT0gMCkgfAo+PiArCQo+IFZFX0RFQ19IMjY1 X0RFQ19TTElDRV9IRFJfSU5GTzFfU0xJQ0VfUE9DX0JJR0VTVF9JTl9SUFNfU1QoZGVjb2RlX3Bh cmFtcy0KPj4gbnVtX3Jwc19wb2Nfc3RfY3Vycl9hZnRlciA9PSAwKSB8Cj4+ICAgCQo+IFZFX0RF Q19IMjY1X0RFQ19TTElDRV9IRFJfSU5GTzFfU0xJQ0VfQ1JfUVBfT0ZGU0VUKHNsaWNlX3BhcmFt cy0KPj4gc2xpY2VfY3JfcXBfb2Zmc2V0KSB8Cj4+ICAgCQo+IFZFX0RFQ19IMjY1X0RFQ19TTElD RV9IRFJfSU5GTzFfU0xJQ0VfQ0JfUVBfT0ZGU0VUKHNsaWNlX3BhcmFtcy0KPj4gc2xpY2VfY2Jf cXBfb2Zmc2V0KSB8Cj4+ICAgCSAgICAgIFZFX0RFQ19IMjY1X0RFQ19TTElDRV9IRFJfSU5GTzFf U0xJQ0VfUVBfREVMVEEoc2xpY2VfcGFyYW1zLQo+PiBzbGljZV9xcF9kZWx0YSk7Cj4+IEBAIC01 MjgsNyArNTMwLDcgQEAgc3RhdGljIHZvaWQgY2VkcnVzX2gyNjVfc2V0dXAoc3RydWN0IGNlZHJ1 c19jdHggKmN0eCwKPj4gICAKPj4gICAJLyogV3JpdGUgZGVjb2RlZCBwaWN0dXJlIGJ1ZmZlciBp biBwaWMgbGlzdC4gKi8KPj4gICAJY2VkcnVzX2gyNjVfZnJhbWVfaW5mb193cml0ZV9kcGIoY3R4 LCBzbGljZV9wYXJhbXMtPmRwYiwKPj4gLQkJCQkJIHNsaWNlX3BhcmFtcy0KPj4gbnVtX2FjdGl2 ZV9kcGJfZW50cmllcyk7Cj4+ICsJCQkJCSBkZWNvZGVfcGFyYW1zLQo+PiBudW1fYWN0aXZlX2Rw Yl9lbnRyaWVzKTsKPj4gICAKPj4gICAJLyogT3V0cHV0IGZyYW1lLiAqLwo+PiAgIAo+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS9oZXZjLWN0cmxzLmggYi9pbmNsdWRlL21lZGlhL2hldmMt Y3RybHMuaAo+PiBpbmRleCBiNGNiMmVmMDJmMTcuLjdmZTcwNGEwOGY3NyAxMDA2NDQKPj4gLS0t IGEvaW5jbHVkZS9tZWRpYS9oZXZjLWN0cmxzLmgKPj4gKysrIGIvaW5jbHVkZS9tZWRpYS9oZXZj LWN0cmxzLmgKPj4gQEAgLTE5LDYgKzE5LDcgQEAKPj4gICAjZGVmaW5lIFY0TDJfQ0lEX01QRUdf VklERU9fSEVWQ19TUFMJCShWNEwyX0NJRF9DT0RFQ19CQVNFICsKPiAxMDA4KQo+PiAgICNkZWZp bmUgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX1BQUwkJKFY0TDJfQ0lEX0NPREVDX0JBU0UgKwo+ IDEwMDkpCj4+ICAgI2RlZmluZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfU0xJQ0VfUEFSQU1T CShWNEwyX0NJRF9DT0RFQ19CQVNFICsKPiAxMDEwKQo+PiArI2RlZmluZSBWNEwyX0NJRF9NUEVH X1ZJREVPX0hFVkNfREVDT0RFX1BBUkFNUwkoVjRMMl9DSURfQ09ERUNfQkFTRSArCj4gMTAxMikK Pj4gICAjZGVmaW5lIFY0TDJfQ0lEX01QRUdfVklERU9fSEVWQ19ERUNPREVfTU9ERQkoVjRMMl9D SURfQ09ERUNfQkFTRSArCj4gMTAxNSkKPj4gICAjZGVmaW5lIFY0TDJfQ0lEX01QRUdfVklERU9f SEVWQ19TVEFSVF9DT0RFCShWNEwyX0NJRF9DT0RFQ19CQVNFICsKPiAxMDE2KQo+PiAgIAo+PiBA QCAtMjYsNiArMjcsNyBAQAo+PiAgICNkZWZpbmUgVjRMMl9DVFJMX1RZUEVfSEVWQ19TUFMgMHgw MTIwCj4+ICAgI2RlZmluZSBWNEwyX0NUUkxfVFlQRV9IRVZDX1BQUyAweDAxMjEKPj4gICAjZGVm aW5lIFY0TDJfQ1RSTF9UWVBFX0hFVkNfU0xJQ0VfUEFSQU1TIDB4MDEyMgo+PiArI2RlZmluZSBW NEwyX0NUUkxfVFlQRV9IRVZDX0RFQ09ERV9QQVJBTVMgMHgwMTI0Cj4+ICAgCj4+ICAgZW51bSB2 NGwyX21wZWdfdmlkZW9faGV2Y19kZWNvZGVfbW9kZSB7Cj4+ICAgCVY0TDJfTVBFR19WSURFT19I RVZDX0RFQ09ERV9NT0RFX1NMSUNFX0JBU0VELAo+PiBAQCAtNTQsNiArNTYsOSBAQCBlbnVtIHY0 bDJfbXBlZ192aWRlb19oZXZjX3N0YXJ0X2NvZGUgewo+PiAgIC8qIFRoZSBjb250cm9scyBhcmUg bm90IHN0YWJsZSBhdCB0aGUgbW9tZW50IGFuZCB3aWxsIGxpa2VseSBiZSByZXdvcmtlZC4KPiAq Lwo+PiAgIHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zcHMgewo+PiAgIAkvKiBJU08vSUVDIDIzMDA4 LTIsIElUVS1UIFJlYy4gSC4yNjU6IFNlcXVlbmNlIHBhcmFtZXRlciBzZXQgKi8KPj4gKwlfX3U4 CXZpZGVvX3BhcmFtZXRlcl9zZXRfaWQ7Cj4+ICsJX191OAlzZXFfcGFyYW1ldGVyX3NldF9pZDsK Pj4gKwlfX3U4CWNocm9tYV9mb3JtYXRfaWRjOwo+PiAgIAlfX3UxNglwaWNfd2lkdGhfaW5fbHVt YV9zYW1wbGVzOwo+PiAgIAlfX3UxNglwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKPj4gICAJ X191OAliaXRfZGVwdGhfbHVtYV9taW51czg7Cj4+IEBAIC03NCw5ICs3OSw5IEBAIHN0cnVjdCB2 NGwyX2N0cmxfaGV2Y19zcHMgewo+PiAgIAlfX3U4CWxvZzJfZGlmZl9tYXhfbWluX3BjbV9sdW1h X2NvZGluZ19ibG9ja19zaXplOwo+PiAgIAlfX3U4CW51bV9zaG9ydF90ZXJtX3JlZl9waWNfc2V0 czsKPj4gICAJX191OAludW1fbG9uZ190ZXJtX3JlZl9waWNzX3NwczsKPj4gLQlfX3U4CWNocm9t YV9mb3JtYXRfaWRjOwo+PiAgIAo+PiAtCV9fdTgJcGFkZGluZzsKPj4gKwlfX3U4CW51bV9zbGlj ZXM7Cj4+ICsJX191OAlwYWRkaW5nWzZdOwo+PiAgIAo+PiAgIAlfX3U2NAlmbGFnczsKPj4gICB9 Owo+PiBAQCAtMTAwLDEwICsxMDUsMTUgQEAgc3RydWN0IHY0bDJfY3RybF9oZXZjX3NwcyB7Cj4+ ICAgI2RlZmluZSBWNEwyX0hFVkNfUFBTX0ZMQUdfUFBTX0RJU0FCTEVfREVCTE9DS0lOR19GSUxU RVIJKDFVTEwgPDwgMTYpCj4+ICAgI2RlZmluZSBWNEwyX0hFVkNfUFBTX0ZMQUdfTElTVFNfTU9E SUZJQ0FUSU9OX1BSRVNFTlQJCSgxVUxMIDw8IDE3KQo+PiAgICNkZWZpbmUgVjRMMl9IRVZDX1BQ U19GTEFHX1NMSUNFX1NFR01FTlRfSEVBREVSX0VYVEVOU0lPTl9QUkVTRU5UICgxVUxMIDw8Cj4g MTgpCj4+ICsjZGVmaW5lIFY0TDJfSEVWQ19QUFNfRkxBR19ERUJMT0NLSU5HX0ZJTFRFUl9DT05U Uk9MX1BSRVNFTlQJKDFVTEwgPDwgMTkpCj4+ICsjZGVmaW5lIFY0TDJfSEVWQ19QUFNfRkxBR19V TklGT1JNX1NQQUNJTkcJCQkKPiAoMVVMTCA8PCAyMCkKPj4gICAKPj4gICBzdHJ1Y3QgdjRsMl9j dHJsX2hldmNfcHBzIHsKPj4gICAJLyogSVNPL0lFQyAyMzAwOC0yLCBJVFUtVCBSZWMuIEguMjY1 OiBQaWN0dXJlIHBhcmFtZXRlciBzZXQgKi8KPj4gKwlfX3U4CXBpY19wYXJhbWV0ZXJfc2V0X2lk Owo+PiAgIAlfX3U4CW51bV9leHRyYV9zbGljZV9oZWFkZXJfYml0czsKPj4gKwlfX3U4CW51bV9y ZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTsKPj4gKwlfX3U4CW51bV9yZWZfaWR4X2wx X2RlZmF1bHRfYWN0aXZlX21pbnVzMTsKPj4gICAJX19zOAlpbml0X3FwX21pbnVzMjY7Cj4+ICAg CV9fdTgJZGlmZl9jdV9xcF9kZWx0YV9kZXB0aDsKPj4gICAJX19zOAlwcHNfY2JfcXBfb2Zmc2V0 Owo+PiBAQCAtMTE2LDcgKzEyNiw3IEBAIHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19wcHMgewo+PiAg IAlfX3M4CXBwc190Y19vZmZzZXRfZGl2MjsKPj4gICAJX191OAlsb2cyX3BhcmFsbGVsX21lcmdl X2xldmVsX21pbnVzMjsKPj4gICAKPj4gLQlfX3U4CXBhZGRpbmdbNF07Cj4+ICsJX191OAlwYWRk aW5nOwo+PiAgIAlfX3U2NAlmbGFnczsKPj4gICB9Owo+PiAgIAo+PiBAQCAtMTY1LDYgKzE3NSwx MCBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zIHsKPj4gICAJX191MzIJYml0 X3NpemU7Cj4+ICAgCV9fdTMyCWRhdGFfYml0X29mZnNldDsKPj4gICAKPj4gKwkvKiBJU08vSUVD IDIzMDA4LTIsIElUVS1UIFJlYy4gSC4yNjU6IEdlbmVyYWwgc2xpY2Ugc2VnbWVudCBoZWFkZXIK PiAqLwo+PiArCV9fdTMyCXNsaWNlX3NlZ21lbnRfYWRkcjsKPj4gKwlfX3UzMgludW1fZW50cnlf cG9pbnRfb2Zmc2V0czsKPj4gKwo+PiAgIAkvKiBJU08vSUVDIDIzMDA4LTIsIElUVS1UIFJlYy4g SC4yNjU6IE5BTCB1bml0IGhlYWRlciAqLwo+PiAgIAlfX3U4CW5hbF91bml0X3R5cGU7Cj4+ICAg CV9fdTgJbnVoX3RlbXBvcmFsX2lkX3BsdXMxOwo+PiBAQCAtMTkwLDE1ICsyMDQsMTMgQEAgc3Ry dWN0IHY0bDJfY3RybF9oZXZjX3NsaWNlX3BhcmFtcyB7Cj4+ICAgCV9fdTgJcGljX3N0cnVjdDsK Pj4gICAKPj4gICAJLyogSVNPL0lFQyAyMzAwOC0yLCBJVFUtVCBSZWMuIEguMjY1OiBHZW5lcmFs IHNsaWNlIHNlZ21lbnQgaGVhZGVyCj4gKi8KPj4gLQlfX3U4CW51bV9hY3RpdmVfZHBiX2VudHJp ZXM7Cj4+ICAgCV9fdTgJcmVmX2lkeF9sMFtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07 Cj4+ICAgCV9fdTgJcmVmX2lkeF9sMVtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ ICAgCj4+IC0JX191OAludW1fcnBzX3BvY19zdF9jdXJyX2JlZm9yZTsKPj4gLQlfX3U4CW51bV9y cHNfcG9jX3N0X2N1cnJfYWZ0ZXI7Cj4+IC0JX191OAludW1fcnBzX3BvY19sdF9jdXJyOwo+PiAr CV9fdTE2CXNob3J0X3Rlcm1fcmVmX3BpY19zZXRfc2l6ZTsKPj4gKwlfX3UxNglsb25nX3Rlcm1f cmVmX3BpY19zZXRfc2l6ZTsKPj4gICAKPj4gLQlfX3U4CXBhZGRpbmc7Cj4+ICsJX191OAlwYWRk aW5nWzVdOwo+PiAgIAo+PiAgIAkvKiBJU08vSUVDIDIzMDA4LTIsIElUVS1UIFJlYy4gSC4yNjU6 IEdlbmVyYWwgc2xpY2Ugc2VnbWVudCBoZWFkZXIKPiAqLwo+PiAgIAlzdHJ1Y3QgdjRsMl9oZXZj X2RwYl9lbnRyeSBkcGJbVjRMMl9IRVZDX0RQQl9FTlRSSUVTX05VTV9NQVhdOwo+PiBAQCAtMjA5 LDQgKzIyMSwyMSBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zIHsKPj4gICAJ X191NjQJZmxhZ3M7Cj4+ICAgfTsKPj4gICAKPj4gKyNkZWZpbmUgVjRMMl9IRVZDX0RFQ09ERV9Q QVJBTV9GTEFHX0lSQVBfUElDCQkweDEKPj4gKyNkZWZpbmUgVjRMMl9IRVZDX0RFQ09ERV9QQVJB TV9GTEFHX0lEUl9QSUMJCTB4Mgo+PiArI2RlZmluZSBWNEwyX0hFVkNfREVDT0RFX1BBUkFNX0ZM QUdfTk9fT1VUUFVUX09GX1BSSU9SICAweDQKPj4gKwo+PiArc3RydWN0IHY0bDJfY3RybF9oZXZj X2RlY29kZV9wYXJhbXMgewo+PiArCV9fczMyCXBpY19vcmRlcl9jbnRfdmFsOwo+PiArCV9fdTgJ bnVtX2FjdGl2ZV9kcGJfZW50cmllczsKPj4gKwlzdHJ1Y3QJdjRsMl9oZXZjX2RwYl9lbnRyeSBk cGJbVjRMMl9IRVZDX0RQQl9FTlRSSUVTX05VTV9NQVhdOwo+PiArCV9fdTgJbnVtX3Jwc19wb2Nf c3RfY3Vycl9iZWZvcmU7Cj4+ICsJX191OAludW1fcnBzX3BvY19zdF9jdXJyX2FmdGVyOwo+PiAr CV9fdTgJbnVtX3Jwc19wb2NfbHRfY3VycjsKPj4gKwlfX3U4CXJwc19zdF9jdXJyX2JlZm9yZVtW NEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ICsJX191OAlycHNfc3RfY3Vycl9hZnRl cltWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ICsJX191OAlycHNfbHRfY3VycltW NEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ICsJX191NjQJZmxhZ3M7Cj4+ICt9Owo+ IEN1cnJlbnQgcHJhY3RpY2UgaXMgdG8gYWxzbyBhZGQvdXBkYXRlIGNvbnRyb2xzIGRvY3VtZW50 YXRpb24gaW4KPiBEb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsLwo+Cj4gV2l0 aCB5b3VyIGNoYW5nZXMsIHY0bDJfY3RybF9oZXZjX3BwcyBhbmQgdjRsMl9jdHJsX2hldmNfc2xp Y2VfcGFyYW1zCj4gZGVzY3JpcHRpb25zIGFyZSBvdXQgb2Ygc3luYyBhbmQgdjRsMl9jdHJsX2hl dmNfZGVjb2RlX3BhcmFtcyBkZXNjcmlwdGlvbiBpcwo+IGNvbXBsZXRlbHkgbWlzc2luZy4KClRo YW5rcyBmb3IgeW91ciBjb21tZW50LgpUaGF0IHdpbGwgYmUgZml4IGluIHYzLgoKQmVuamFtaW4K Cj4gQmVzdCByZWdhcmRzLAo+IEplcm5lago+Cj4+ICsKPj4gICAjZW5kaWYKPj4gLS0gCj4+IDIu MjUuMQo+Pgo+Pgo+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtcm9ja2NoaXAK 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=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 E4215C433DB for ; Fri, 19 Feb 2021 16:47:06 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 8A32964DF0 for ; Fri, 19 Feb 2021 16:47:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8A32964DF0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=pX8X7SuXUy9t/b7XOYoiBME3P1M3pLRZ5MuSO0dkJR4=; b=yaZWyHcmll4QMzCxQjZLKGr/E O+8l8sl3UJhpOBPK5KLFTsY8DwsLHwqMnVwx3h1EuvcMAyrsmCDkJMper+T1j/zdHAo+8rtuDzA1P 3isot4m/NTMa4KCm9Jh23CuORtU9MFtsDx/Uti7sHaHxAlsaWADNYUBMEUuKE4S7IND/qwdl/TOYK yZEAWviPKXZ5UEeY9bLDcpIMc5UqSdcA32uK14+KW9nt3ucpGhOgsiaWxZ/ZG8vfZh6VI2l0g/CON xjEKEdIneB4KE9lP0TFDWMpkmv5qO6OEU5o16Nta6UKk2QyAsXRJoZ/W5hTNQuLJ4cHPQLVD9MTkI d/rdIi8kQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lD8u2-0006f9-Ml; Fri, 19 Feb 2021 16:45:14 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1lD8u0-0006eN-2v; Fri, 19 Feb 2021 16:45:13 +0000 Received: from [IPv6:2a01:e0a:4cb:a870:9157:afa6:f219:3c2c] (unknown [IPv6:2a01:e0a:4cb:a870:9157:afa6:f219:3c2c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id A8DEB1F464EB; Fri, 19 Feb 2021 16:45:08 +0000 (GMT) Subject: Re: [PATCH v2 1/9] media: hevc: Modify structures to follow H265 ITU spec To: =?UTF-8?Q?Jernej_=c5=a0krabec?= , ezequiel@collabora.com, p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, peng.fan@nxp.com, hverkuil-cisco@xs4all.nl, dan.carpenter@oracle.com References: <20210218191844.297869-1-benjamin.gaignard@collabora.com> <20210218191844.297869-2-benjamin.gaignard@collabora.com> <12182109.SKTadsSyRz@kista> From: Benjamin Gaignard Message-ID: <5e4d5ff0-ab10-b402-2652-d956214b3fa8@collabora.com> Date: Fri, 19 Feb 2021 17:45:05 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <12182109.SKTadsSyRz@kista> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210219_114512_363452_1A0C90DF X-CRM114-Status: GOOD ( 25.53 ) 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: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, kernel@collabora.com, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkxlIDE4LzAyLzIwMjEgw6AgMjI6NDMsIEplcm5laiDFoGtyYWJlYyBhIMOpY3JpdMKgOgo+IEhp IQo+Cj4gRG5lIMSNZXRydGVrLCAxOC4gZmVicnVhciAyMDIxIG9iIDIwOjE4OjM2IENFVCBqZSBC ZW5qYW1pbiBHYWlnbmFyZCBuYXBpc2FsKGEpOgo+PiBUaGUgSC4yNjUgSVRVIHNwZWNpZmljYXRp b24gKHNlY3Rpb24gNy40KSBkZWZpbmUgdGhlIGdlbmVyYWwKPj4gc2xpY2Ugc2VnbWVudCBoZWFk ZXIgc2VtYW50aWNzLgo+PiBNb2RpZmllZC9hZGRlZCBmaWVsZHMgYXJlOgo+PiAtIHZpZGVvX3Bh cmFtZXRlcl9zZXRfaWQ6ICg3LjQuMy4xKSBpZGVudGlmaWVzIHRoZSBWUFMgZm9yCj4+IHJlZmVy ZW5jZSBieSBvdGhlciBzeW50YXggZWxlbWVudHMuCj4+IC0gc2VxX3BhcmFtZXRlcl9zZXRfaWQ6 ICg3LjQuMy4yLjEpIHNwZWNpZmllcyB0aGUgdmFsdWUgb2YKPj4gdGhlIHZwc192aWRlb19wYXJh bWV0ZXJfc2V0X2lkIG9mIHRoZSBhY3RpdmUgVlBTLgo+PiAtIGNocm9tYV9mb3JtYXRfaWRjOiAo Ny40LjMuMi4xKSBzcGVjaWZpZXMgdGhlIGNocm9tYSBzYW1wbGluZwo+PiAgIHJlbGF0aXZlIHRv IHRoZSBsdW1hIHNhbXBsaW5nCj4+IC0gcGljX3BhcmFtZXRlcl9zZXRfaWQ6ICg3LjQuMy4zLjEp IGlkZW50aWZpZXMgdGhlIFBQUyBmb3IKPj4gcmVmZXJlbmNlIGJ5IG90aGVyIHN5bnRheCBlbGVt ZW50cwo+PiAtIG51bV9yZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogKDcuNC4zLjMu MSkgc3BlY2lmaWVzCj4+IHRoZSBpbmZlcnJlZCB2YWx1ZSBvZiBudW1fcmVmX2lkeF9sMF9hY3Rp dmVfbWludXMxCj4+IC0gbnVtX3JlZl9pZHhfbDFfZGVmYXVsdF9hY3RpdmVfbWludXMxOiAoNy40 LjMuMy4xKSBzcGVjaWZpZXMKPj4gdGhlIGluZmVycmVkIHZhbHVlIG9mIG51bV9yZWZfaWR4X2wx X2FjdGl2ZV9taW51czEKPj4gLSBzbGljZV9zZWdtZW50X2FkZHI6ICg3LjQuNy4xKSBzcGVjaWZp ZXMgdGhlIGFkZHJlc3Mgb2YKPj4gdGhlIGZpcnN0IGNvZGluZyB0cmVlIGJsb2NrIGluIHRoZSBz bGljZSBzZWdtZW50Cj4+IC0gbnVtX2VudHJ5X3BvaW50X29mZnNldHM6ICg3LjQuNy4xKSBzcGVj aWZpZXMgdGhlIG51bWJlciBvZgo+PiBlbnRyeV9wb2ludF9vZmZzZXRfbWludXMxWyBpIF0gc3lu dGF4IGVsZW1lbnRzIGluIHRoZSBzbGljZSBoZWFkZXIKPj4KPj4gQWRkIEhFVkMgZGVjb2RlIHBh cmFtcyBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gdXNlZCBpbiBzZWN0aW9uCj4+ICI4LjMgU2xp Y2UgZGVjb2RpbmcgcHJvY2VzcyIgb2YgdGhlIHNwZWNpZmljYXRpb24gdG8gbGV0IHRoZSBoYXJk d2FyZQo+PiBwZXJmb3JtIGRlY29kaW5nIG9mIGEgc2xpY2VzLgo+Pgo+PiBBZGFwdCBDZWRydXMg ZHJpdmVyIGFjY29yZGluZyB0byB0aGVzZSBjaGFuZ2VzLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBC ZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAY29sbGFib3JhLmNvbT4KPj4gLS0t Cj4+IHZlcnNpb24gMjoKPj4gLSByZW1vdmUgYWxsIGNoYW5nZSByZWxhdGVkIHRvIHNjYWxpbmcK Pj4gLSBzcXVhc2ggY29tbWl0cyB0byBhIGNvaGVyZW50IHNwbGl0Cj4+IC0gYmUgbW9yZSB2ZXJi b3NlIGFib3V0IHRoZSBhZGRlZCBmaWVsZHMKPj4KPj4gICBkcml2ZXJzL21lZGlhL3Y0bDItY29y ZS92NGwyLWN0cmxzLmMgICAgICAgICAgfCAyNiArKysrKysrKy0tLQo+PiAgIGRyaXZlcnMvc3Rh Z2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmMgICB8ICA2ICsrKwo+PiAgIGRyaXZlcnMv c3RhZ2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmggICB8ICAxICsKPj4gICAuLi4vc3Rh Z2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzX2RlYy5jICAgfCAgMiArCj4+ICAgLi4uL3N0 YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1c19oMjY1LmMgIHwgIDYgKystCj4+ICAgaW5j bHVkZS9tZWRpYS9oZXZjLWN0cmxzLmggICAgICAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysr KysrKysrLS0tLQo+PiAgIDYgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTcgZGVs ZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwy LWN0cmxzLmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS8KPiB2NGwyLWN0cmxzLmMKPj4gaW5k ZXggMDE2Y2Y2MjA0Y2JiLi40MDYwYjViY2MzYzAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3Y0bDItY3RybHMuYwo+PiArKysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29y ZS92NGwyLWN0cmxzLmMKPj4gQEAgLTEwMjgsNiArMTAyOCw3IEBAIGNvbnN0IGNoYXIgKnY0bDJf Y3RybF9nZXRfbmFtZSh1MzIgaWQpCj4+ICAgCWNhc2UgVjRMMl9DSURfTVBFR19WSURFT19IRVZD X1NQUzoJCQkKPiByZXR1cm4gIkhFVkMgU2VxdWVuY2UgUGFyYW1ldGVyIFNldCI7Cj4+ICAgCWNh c2UgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX1BQUzoJCQkKPiByZXR1cm4gIkhFVkMgUGljdHVy ZSBQYXJhbWV0ZXIgU2V0IjsKPj4gICAJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfU0xJ Q0VfUEFSQU1TOgkJcmV0dXJuCj4gIkhFVkMgU2xpY2UgUGFyYW1ldGVycyI7Cj4+ICsJY2FzZSBW NEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfREVDT0RFX1BBUkFNUzoJCQo+IHJldHVybiAiSEVWQyBE ZWNvZGUgUGFyYW1ldGVycyI7Cj4+ICAgCWNhc2UgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX0RF Q09ERV9NT0RFOgkJcmV0dXJuICJIRVZDCj4gRGVjb2RlIE1vZGUiOwo+PiAgIAljYXNlIFY0TDJf Q0lEX01QRUdfVklERU9fSEVWQ19TVEFSVF9DT0RFOgkJcmV0dXJuCj4gIkhFVkMgU3RhcnQgQ29k ZSI7Cj4+ICAgCj4+IEBAIC0xNDgyLDYgKzE0ODMsOSBAQCB2b2lkIHY0bDJfY3RybF9maWxsKHUz MiBpZCwgY29uc3QgY2hhciAqKm5hbWUsIGVudW0KPiB2NGwyX2N0cmxfdHlwZSAqdHlwZSwKPj4g ICAJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfU0xJQ0VfUEFSQU1TOgo+PiAgIAkJKnR5 cGUgPSBWNEwyX0NUUkxfVFlQRV9IRVZDX1NMSUNFX1BBUkFNUzsKPj4gICAJCWJyZWFrOwo+PiAr CWNhc2UgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX0RFQ09ERV9QQVJBTVM6Cj4+ICsJCSp0eXBl ID0gVjRMMl9DVFJMX1RZUEVfSEVWQ19ERUNPREVfUEFSQU1TOwo+PiArCQlicmVhazsKPj4gICAJ Y2FzZSBWNEwyX0NJRF9VTklUX0NFTExfU0laRToKPj4gICAJCSp0eXBlID0gVjRMMl9DVFJMX1RZ UEVfQVJFQTsKPj4gICAJCSpmbGFncyB8PSBWNEwyX0NUUkxfRkxBR19SRUFEX09OTFk7Cj4+IEBA IC0xODMzLDYgKzE4MzcsNyBAQCBzdGF0aWMgaW50IHN0ZF92YWxpZGF0ZV9jb21wb3VuZChjb25z dCBzdHJ1Y3QKPiB2NGwyX2N0cmwgKmN0cmwsIHUzMiBpZHgsCj4+ICAgCXN0cnVjdCB2NGwyX2N0 cmxfaGV2Y19zcHMgKnBfaGV2Y19zcHM7Cj4+ICAgCXN0cnVjdCB2NGwyX2N0cmxfaGV2Y19wcHMg KnBfaGV2Y19wcHM7Cj4+ICAgCXN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zbGljZV9wYXJhbXMgKnBf aGV2Y19zbGljZV9wYXJhbXM7Cj4+ICsJc3RydWN0IHY0bDJfY3RybF9oZXZjX2RlY29kZV9wYXJh bXMgKnBfaGV2Y19kZWNvZGVfcGFyYW1zOwo+PiAgIAlzdHJ1Y3QgdjRsMl9hcmVhICphcmVhOwo+ PiAgIAl2b2lkICpwID0gcHRyLnAgKyBpZHggKiBjdHJsLT5lbGVtX3NpemU7Cj4+ICAgCXVuc2ln bmVkIGludCBpOwo+PiBAQCAtMjEwOCwyMyArMjExMywyNyBAQCBzdGF0aWMgaW50IHN0ZF92YWxp ZGF0ZV9jb21wb3VuZChjb25zdCBzdHJ1Y3QKPiB2NGwyX2N0cmwgKmN0cmwsIHUzMiBpZHgsCj4+ ICAgCQl6ZXJvX3BhZGRpbmcoKnBfaGV2Y19wcHMpOwo+PiAgIAkJYnJlYWs7Cj4+ICAgCj4+IC0J Y2FzZSBWNEwyX0NUUkxfVFlQRV9IRVZDX1NMSUNFX1BBUkFNUzoKPj4gLQkJcF9oZXZjX3NsaWNl X3BhcmFtcyA9IHA7Cj4+ICsJY2FzZSBWNEwyX0NUUkxfVFlQRV9IRVZDX0RFQ09ERV9QQVJBTVM6 Cj4+ICsJCXBfaGV2Y19kZWNvZGVfcGFyYW1zID0gcDsKPj4gICAKPj4gLQkJaWYgKHBfaGV2Y19z bGljZV9wYXJhbXMtPm51bV9hY3RpdmVfZHBiX2VudHJpZXMgPgo+PiArCQlpZiAocF9oZXZjX2Rl Y29kZV9wYXJhbXMtPm51bV9hY3RpdmVfZHBiX2VudHJpZXMgPgo+PiAgIAkJICAgIFY0TDJfSEVW Q19EUEJfRU5UUklFU19OVU1fTUFYKQo+PiAgIAkJCXJldHVybiAtRUlOVkFMOwo+PiAgIAo+PiAt CQl6ZXJvX3BhZGRpbmcocF9oZXZjX3NsaWNlX3BhcmFtcy0+cHJlZF93ZWlnaHRfdGFibGUpOwo+ PiAtCj4+IC0JCWZvciAoaSA9IDA7IGkgPCBwX2hldmNfc2xpY2VfcGFyYW1zLQo+PiBudW1fYWN0 aXZlX2RwYl9lbnRyaWVzOwo+PiArCQlmb3IgKGkgPSAwOyBpIDwgcF9oZXZjX2RlY29kZV9wYXJh bXMtCj4+IG51bV9hY3RpdmVfZHBiX2VudHJpZXM7Cj4+ICAgCQkgICAgIGkrKykgewo+PiAgIAkJ CXN0cnVjdCB2NGwyX2hldmNfZHBiX2VudHJ5ICpkcGJfZW50cnkgPQo+PiAtCQkJCSZwX2hldmNf c2xpY2VfcGFyYW1zLT5kcGJbaV07Cj4+ICsJCQkJJnBfaGV2Y19kZWNvZGVfcGFyYW1zLT5kcGJb aV07Cj4+ICAgCj4+ICAgCQkJemVyb19wYWRkaW5nKCpkcGJfZW50cnkpOwo+PiAgIAkJfQo+PiAg IAo+PiArCQlicmVhazsKPj4gKwo+PiArCWNhc2UgVjRMMl9DVFJMX1RZUEVfSEVWQ19TTElDRV9Q QVJBTVM6Cj4+ICsJCXBfaGV2Y19zbGljZV9wYXJhbXMgPSBwOwo+PiArCj4+ICsJCXplcm9fcGFk ZGluZyhwX2hldmNfc2xpY2VfcGFyYW1zLT5wcmVkX3dlaWdodF90YWJsZSk7Cj4+ICAgCQl6ZXJv X3BhZGRpbmcoKnBfaGV2Y19zbGljZV9wYXJhbXMpOwo+PiAgIAkJYnJlYWs7Cj4+ICAgCj4+IEBA IC0yODIxLDYgKzI4MzAsOSBAQCBzdGF0aWMgc3RydWN0IHY0bDJfY3RybCAqdjRsMl9jdHJsX25l dyhzdHJ1Y3QKPiB2NGwyX2N0cmxfaGFuZGxlciAqaGRsLAo+PiAgIAljYXNlIFY0TDJfQ1RSTF9U WVBFX0hFVkNfU0xJQ0VfUEFSQU1TOgo+PiAgIAkJZWxlbV9zaXplID0gc2l6ZW9mKHN0cnVjdCB2 NGwyX2N0cmxfaGV2Y19zbGljZV9wYXJhbXMpOwo+PiAgIAkJYnJlYWs7Cj4+ICsJY2FzZSBWNEwy X0NUUkxfVFlQRV9IRVZDX0RFQ09ERV9QQVJBTVM6Cj4+ICsJCWVsZW1fc2l6ZSA9IHNpemVvZihz dHJ1Y3QgdjRsMl9jdHJsX2hldmNfZGVjb2RlX3BhcmFtcyk7Cj4+ICsJCWJyZWFrOwo+PiAgIAlj YXNlIFY0TDJfQ1RSTF9UWVBFX0FSRUE6Cj4+ICAgCQllbGVtX3NpemUgPSBzaXplb2Yoc3RydWN0 IHY0bDJfYXJlYSk7Cj4+ICAgCQlicmVhazsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2lu Zy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmMgYi9kcml2ZXJzL3N0YWdpbmcvCj4gbWVkaWEv c3VueGkvY2VkcnVzL2NlZHJ1cy5jCj4+IGluZGV4IDdiZDkyOTFjOGQ1Zi4uNGNkM2NhYjFhMjU3 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1 cy5jCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmMK Pj4gQEAgLTE1MSw2ICsxNTEsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjZWRydXNfY29udHJv bCBjZWRydXNfY29udHJvbHNbXSA9Cj4gewo+PiAgIAkJfSwKPj4gICAJCS5jb2RlYwkJPSBDRURS VVNfQ09ERUNfVlA4LAo+PiAgIAl9LAo+PiArCXsKPj4gKwkJLmNmZyA9IHsKPj4gKwkJCS5pZCA9 IFY0TDJfQ0lEX01QRUdfVklERU9fSEVWQ19ERUNPREVfUEFSQU1TLAo+PiArCQl9LAo+PiArCQku Y29kZWMJCT0gQ0VEUlVTX0NPREVDX0gyNjUsCj4+ICsJfSwKPj4gICB9Owo+PiAgIAo+PiAgICNk ZWZpbmUgQ0VEUlVTX0NPTlRST0xTX0NPVU5UCUFSUkFZX1NJWkUoY2VkcnVzX2NvbnRyb2xzKQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXMu aCBiL2RyaXZlcnMvc3RhZ2luZy8KPiBtZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmgKPj4gaW5k ZXggMjUxYTZhNjYwMzUxLi4yY2EzM2FjMzhiOWEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvc3Rh Z2luZy9tZWRpYS9zdW54aS9jZWRydXMvY2VkcnVzLmgKPj4gKysrIGIvZHJpdmVycy9zdGFnaW5n L21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXMuaAo+PiBAQCAtNzYsNiArNzYsNyBAQCBzdHJ1Y3Qg Y2VkcnVzX2gyNjVfcnVuIHsKPj4gICAJY29uc3Qgc3RydWN0IHY0bDJfY3RybF9oZXZjX3NwcwkJ CSpzcHM7Cj4+ICAgCWNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19wcHMJCQkqcHBzOwo+PiAg IAljb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zCSpzbGljZV9wYXJhbXM7 Cj4+ICsJY29uc3Qgc3RydWN0IHY0bDJfY3RybF9oZXZjX2RlY29kZV9wYXJhbXMJKmRlY29kZV9w YXJhbXM7Cj4+ICAgfTsKPj4gICAKPj4gICBzdHJ1Y3QgY2VkcnVzX3ZwOF9ydW4gewo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfZGVjLmMg Yi9kcml2ZXJzLwo+IHN0YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1c19kZWMuYwo+PiBp bmRleCBhOTA5MGRhZjYyNmEuLmNkODIxZjQxN2ExNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9z dGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfZGVjLmMKPj4gKysrIGIvZHJpdmVycy9z dGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfZGVjLmMKPj4gQEAgLTY4LDYgKzY4LDgg QEAgdm9pZCBjZWRydXNfZGV2aWNlX3J1bih2b2lkICpwcml2KQo+PiAgIAkJCVY0TDJfQ0lEX01Q RUdfVklERU9fSEVWQ19QUFMpOwo+PiAgIAkJcnVuLmgyNjUuc2xpY2VfcGFyYW1zID0gY2VkcnVz X2ZpbmRfY29udHJvbF9kYXRhKGN0eCwKPj4gICAJCQlWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNf U0xJQ0VfUEFSQU1TKTsKPj4gKwkJcnVuLmgyNjUuZGVjb2RlX3BhcmFtcyA9IGNlZHJ1c19maW5k X2NvbnRyb2xfZGF0YShjdHgsCj4+ICsJCQlWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfREVDT0RF X1BBUkFNUyk7Cj4+ICAgCQlicmVhazsKPj4gICAKPj4gICAJY2FzZSBWNEwyX1BJWF9GTVRfVlA4 X0ZSQU1FOgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1 cy9jZWRydXNfaDI2NS5jIGIvZHJpdmVycy8KPiBzdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9j ZWRydXNfaDI2NS5jCj4+IGluZGV4IGNlNDk3ZDAxOTdkZi4uZGNlNWRiNmJlMTNhIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3VueGkvY2VkcnVzL2NlZHJ1c19oMjY1LmMK Pj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL3N1bnhpL2NlZHJ1cy9jZWRydXNfaDI2NS5j Cj4+IEBAIC0yNDUsNiArMjQ1LDcgQEAgc3RhdGljIHZvaWQgY2VkcnVzX2gyNjVfc2V0dXAoc3Ry dWN0IGNlZHJ1c19jdHggKmN0eCwKPj4gICAJY29uc3Qgc3RydWN0IHY0bDJfY3RybF9oZXZjX3Nw cyAqc3BzOwo+PiAgIAljb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfcHBzICpwcHM7Cj4+ICAg CWNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zbGljZV9wYXJhbXMgKnNsaWNlX3BhcmFtczsK Pj4gKwljb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfZGVjb2RlX3BhcmFtcyAqZGVjb2RlX3Bh cmFtczsKPj4gICAJY29uc3Qgc3RydWN0IHY0bDJfaGV2Y19wcmVkX3dlaWdodF90YWJsZSAqcHJl ZF93ZWlnaHRfdGFibGU7Cj4+ICAgCWRtYV9hZGRyX3Qgc3JjX2J1Zl9hZGRyOwo+PiAgIAlkbWFf YWRkcl90IHNyY19idWZfZW5kX2FkZHI7Cj4+IEBAIC0yNTYsNiArMjU3LDcgQEAgc3RhdGljIHZv aWQgY2VkcnVzX2gyNjVfc2V0dXAoc3RydWN0IGNlZHJ1c19jdHggKmN0eCwKPj4gICAJc3BzID0g cnVuLT5oMjY1LnNwczsKPj4gICAJcHBzID0gcnVuLT5oMjY1LnBwczsKPj4gICAJc2xpY2VfcGFy YW1zID0gcnVuLT5oMjY1LnNsaWNlX3BhcmFtczsKPj4gKwlkZWNvZGVfcGFyYW1zID0gcnVuLT5o MjY1LmRlY29kZV9wYXJhbXM7Cj4+ICAgCXByZWRfd2VpZ2h0X3RhYmxlID0gJnNsaWNlX3BhcmFt cy0+cHJlZF93ZWlnaHRfdGFibGU7Cj4+ICAgCj4+ICAgCS8qIE1WIGNvbHVtbiBidWZmZXIgc2l6 ZSBhbmQgYWxsb2NhdGlvbi4gKi8KPj4gQEAgLTQ4Nyw3ICs0ODksNyBAQCBzdGF0aWMgdm9pZCBj ZWRydXNfaDI2NV9zZXR1cChzdHJ1Y3QgY2VkcnVzX2N0eCAqY3R4LAo+PiAgIAo+PiAgIAlyZWcg PQo+IFZFX0RFQ19IMjY1X0RFQ19TTElDRV9IRFJfSU5GTzFfU0xJQ0VfVENfT0ZGU0VUX0RJVjIo c2xpY2VfcGFyYW1zLQo+PiBzbGljZV90Y19vZmZzZXRfZGl2MikgfAo+PiAgIAkKPiBWRV9ERUNf SDI2NV9ERUNfU0xJQ0VfSERSX0lORk8xX1NMSUNFX0JFVEFfT0ZGU0VUX0RJVjIoc2xpY2VfcGFy YW1zLQo+PiBzbGljZV9iZXRhX29mZnNldF9kaXYyKSB8Cj4+IC0JCj4gVkVfREVDX0gyNjVfREVD X1NMSUNFX0hEUl9JTkZPMV9TTElDRV9QT0NfQklHRVNUX0lOX1JQU19TVChzbGljZV9wYXJhbXMt Cj4+IG51bV9ycHNfcG9jX3N0X2N1cnJfYWZ0ZXIgPT0gMCkgfAo+PiArCQo+IFZFX0RFQ19IMjY1 X0RFQ19TTElDRV9IRFJfSU5GTzFfU0xJQ0VfUE9DX0JJR0VTVF9JTl9SUFNfU1QoZGVjb2RlX3Bh cmFtcy0KPj4gbnVtX3Jwc19wb2Nfc3RfY3Vycl9hZnRlciA9PSAwKSB8Cj4+ICAgCQo+IFZFX0RF Q19IMjY1X0RFQ19TTElDRV9IRFJfSU5GTzFfU0xJQ0VfQ1JfUVBfT0ZGU0VUKHNsaWNlX3BhcmFt cy0KPj4gc2xpY2VfY3JfcXBfb2Zmc2V0KSB8Cj4+ICAgCQo+IFZFX0RFQ19IMjY1X0RFQ19TTElD RV9IRFJfSU5GTzFfU0xJQ0VfQ0JfUVBfT0ZGU0VUKHNsaWNlX3BhcmFtcy0KPj4gc2xpY2VfY2Jf cXBfb2Zmc2V0KSB8Cj4+ICAgCSAgICAgIFZFX0RFQ19IMjY1X0RFQ19TTElDRV9IRFJfSU5GTzFf U0xJQ0VfUVBfREVMVEEoc2xpY2VfcGFyYW1zLQo+PiBzbGljZV9xcF9kZWx0YSk7Cj4+IEBAIC01 MjgsNyArNTMwLDcgQEAgc3RhdGljIHZvaWQgY2VkcnVzX2gyNjVfc2V0dXAoc3RydWN0IGNlZHJ1 c19jdHggKmN0eCwKPj4gICAKPj4gICAJLyogV3JpdGUgZGVjb2RlZCBwaWN0dXJlIGJ1ZmZlciBp biBwaWMgbGlzdC4gKi8KPj4gICAJY2VkcnVzX2gyNjVfZnJhbWVfaW5mb193cml0ZV9kcGIoY3R4 LCBzbGljZV9wYXJhbXMtPmRwYiwKPj4gLQkJCQkJIHNsaWNlX3BhcmFtcy0KPj4gbnVtX2FjdGl2 ZV9kcGJfZW50cmllcyk7Cj4+ICsJCQkJCSBkZWNvZGVfcGFyYW1zLQo+PiBudW1fYWN0aXZlX2Rw Yl9lbnRyaWVzKTsKPj4gICAKPj4gICAJLyogT3V0cHV0IGZyYW1lLiAqLwo+PiAgIAo+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS9oZXZjLWN0cmxzLmggYi9pbmNsdWRlL21lZGlhL2hldmMt Y3RybHMuaAo+PiBpbmRleCBiNGNiMmVmMDJmMTcuLjdmZTcwNGEwOGY3NyAxMDA2NDQKPj4gLS0t IGEvaW5jbHVkZS9tZWRpYS9oZXZjLWN0cmxzLmgKPj4gKysrIGIvaW5jbHVkZS9tZWRpYS9oZXZj LWN0cmxzLmgKPj4gQEAgLTE5LDYgKzE5LDcgQEAKPj4gICAjZGVmaW5lIFY0TDJfQ0lEX01QRUdf VklERU9fSEVWQ19TUFMJCShWNEwyX0NJRF9DT0RFQ19CQVNFICsKPiAxMDA4KQo+PiAgICNkZWZp bmUgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX1BQUwkJKFY0TDJfQ0lEX0NPREVDX0JBU0UgKwo+ IDEwMDkpCj4+ICAgI2RlZmluZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0hFVkNfU0xJQ0VfUEFSQU1T CShWNEwyX0NJRF9DT0RFQ19CQVNFICsKPiAxMDEwKQo+PiArI2RlZmluZSBWNEwyX0NJRF9NUEVH X1ZJREVPX0hFVkNfREVDT0RFX1BBUkFNUwkoVjRMMl9DSURfQ09ERUNfQkFTRSArCj4gMTAxMikK Pj4gICAjZGVmaW5lIFY0TDJfQ0lEX01QRUdfVklERU9fSEVWQ19ERUNPREVfTU9ERQkoVjRMMl9D SURfQ09ERUNfQkFTRSArCj4gMTAxNSkKPj4gICAjZGVmaW5lIFY0TDJfQ0lEX01QRUdfVklERU9f SEVWQ19TVEFSVF9DT0RFCShWNEwyX0NJRF9DT0RFQ19CQVNFICsKPiAxMDE2KQo+PiAgIAo+PiBA QCAtMjYsNiArMjcsNyBAQAo+PiAgICNkZWZpbmUgVjRMMl9DVFJMX1RZUEVfSEVWQ19TUFMgMHgw MTIwCj4+ICAgI2RlZmluZSBWNEwyX0NUUkxfVFlQRV9IRVZDX1BQUyAweDAxMjEKPj4gICAjZGVm aW5lIFY0TDJfQ1RSTF9UWVBFX0hFVkNfU0xJQ0VfUEFSQU1TIDB4MDEyMgo+PiArI2RlZmluZSBW NEwyX0NUUkxfVFlQRV9IRVZDX0RFQ09ERV9QQVJBTVMgMHgwMTI0Cj4+ICAgCj4+ICAgZW51bSB2 NGwyX21wZWdfdmlkZW9faGV2Y19kZWNvZGVfbW9kZSB7Cj4+ICAgCVY0TDJfTVBFR19WSURFT19I RVZDX0RFQ09ERV9NT0RFX1NMSUNFX0JBU0VELAo+PiBAQCAtNTQsNiArNTYsOSBAQCBlbnVtIHY0 bDJfbXBlZ192aWRlb19oZXZjX3N0YXJ0X2NvZGUgewo+PiAgIC8qIFRoZSBjb250cm9scyBhcmUg bm90IHN0YWJsZSBhdCB0aGUgbW9tZW50IGFuZCB3aWxsIGxpa2VseSBiZSByZXdvcmtlZC4KPiAq Lwo+PiAgIHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zcHMgewo+PiAgIAkvKiBJU08vSUVDIDIzMDA4 LTIsIElUVS1UIFJlYy4gSC4yNjU6IFNlcXVlbmNlIHBhcmFtZXRlciBzZXQgKi8KPj4gKwlfX3U4 CXZpZGVvX3BhcmFtZXRlcl9zZXRfaWQ7Cj4+ICsJX191OAlzZXFfcGFyYW1ldGVyX3NldF9pZDsK Pj4gKwlfX3U4CWNocm9tYV9mb3JtYXRfaWRjOwo+PiAgIAlfX3UxNglwaWNfd2lkdGhfaW5fbHVt YV9zYW1wbGVzOwo+PiAgIAlfX3UxNglwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKPj4gICAJ X191OAliaXRfZGVwdGhfbHVtYV9taW51czg7Cj4+IEBAIC03NCw5ICs3OSw5IEBAIHN0cnVjdCB2 NGwyX2N0cmxfaGV2Y19zcHMgewo+PiAgIAlfX3U4CWxvZzJfZGlmZl9tYXhfbWluX3BjbV9sdW1h X2NvZGluZ19ibG9ja19zaXplOwo+PiAgIAlfX3U4CW51bV9zaG9ydF90ZXJtX3JlZl9waWNfc2V0 czsKPj4gICAJX191OAludW1fbG9uZ190ZXJtX3JlZl9waWNzX3NwczsKPj4gLQlfX3U4CWNocm9t YV9mb3JtYXRfaWRjOwo+PiAgIAo+PiAtCV9fdTgJcGFkZGluZzsKPj4gKwlfX3U4CW51bV9zbGlj ZXM7Cj4+ICsJX191OAlwYWRkaW5nWzZdOwo+PiAgIAo+PiAgIAlfX3U2NAlmbGFnczsKPj4gICB9 Owo+PiBAQCAtMTAwLDEwICsxMDUsMTUgQEAgc3RydWN0IHY0bDJfY3RybF9oZXZjX3NwcyB7Cj4+ ICAgI2RlZmluZSBWNEwyX0hFVkNfUFBTX0ZMQUdfUFBTX0RJU0FCTEVfREVCTE9DS0lOR19GSUxU RVIJKDFVTEwgPDwgMTYpCj4+ICAgI2RlZmluZSBWNEwyX0hFVkNfUFBTX0ZMQUdfTElTVFNfTU9E SUZJQ0FUSU9OX1BSRVNFTlQJCSgxVUxMIDw8IDE3KQo+PiAgICNkZWZpbmUgVjRMMl9IRVZDX1BQ U19GTEFHX1NMSUNFX1NFR01FTlRfSEVBREVSX0VYVEVOU0lPTl9QUkVTRU5UICgxVUxMIDw8Cj4g MTgpCj4+ICsjZGVmaW5lIFY0TDJfSEVWQ19QUFNfRkxBR19ERUJMT0NLSU5HX0ZJTFRFUl9DT05U Uk9MX1BSRVNFTlQJKDFVTEwgPDwgMTkpCj4+ICsjZGVmaW5lIFY0TDJfSEVWQ19QUFNfRkxBR19V TklGT1JNX1NQQUNJTkcJCQkKPiAoMVVMTCA8PCAyMCkKPj4gICAKPj4gICBzdHJ1Y3QgdjRsMl9j dHJsX2hldmNfcHBzIHsKPj4gICAJLyogSVNPL0lFQyAyMzAwOC0yLCBJVFUtVCBSZWMuIEguMjY1 OiBQaWN0dXJlIHBhcmFtZXRlciBzZXQgKi8KPj4gKwlfX3U4CXBpY19wYXJhbWV0ZXJfc2V0X2lk Owo+PiAgIAlfX3U4CW51bV9leHRyYV9zbGljZV9oZWFkZXJfYml0czsKPj4gKwlfX3U4CW51bV9y ZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTsKPj4gKwlfX3U4CW51bV9yZWZfaWR4X2wx X2RlZmF1bHRfYWN0aXZlX21pbnVzMTsKPj4gICAJX19zOAlpbml0X3FwX21pbnVzMjY7Cj4+ICAg CV9fdTgJZGlmZl9jdV9xcF9kZWx0YV9kZXB0aDsKPj4gICAJX19zOAlwcHNfY2JfcXBfb2Zmc2V0 Owo+PiBAQCAtMTE2LDcgKzEyNiw3IEBAIHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19wcHMgewo+PiAg IAlfX3M4CXBwc190Y19vZmZzZXRfZGl2MjsKPj4gICAJX191OAlsb2cyX3BhcmFsbGVsX21lcmdl X2xldmVsX21pbnVzMjsKPj4gICAKPj4gLQlfX3U4CXBhZGRpbmdbNF07Cj4+ICsJX191OAlwYWRk aW5nOwo+PiAgIAlfX3U2NAlmbGFnczsKPj4gICB9Owo+PiAgIAo+PiBAQCAtMTY1LDYgKzE3NSwx MCBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zIHsKPj4gICAJX191MzIJYml0 X3NpemU7Cj4+ICAgCV9fdTMyCWRhdGFfYml0X29mZnNldDsKPj4gICAKPj4gKwkvKiBJU08vSUVD IDIzMDA4LTIsIElUVS1UIFJlYy4gSC4yNjU6IEdlbmVyYWwgc2xpY2Ugc2VnbWVudCBoZWFkZXIK PiAqLwo+PiArCV9fdTMyCXNsaWNlX3NlZ21lbnRfYWRkcjsKPj4gKwlfX3UzMgludW1fZW50cnlf cG9pbnRfb2Zmc2V0czsKPj4gKwo+PiAgIAkvKiBJU08vSUVDIDIzMDA4LTIsIElUVS1UIFJlYy4g SC4yNjU6IE5BTCB1bml0IGhlYWRlciAqLwo+PiAgIAlfX3U4CW5hbF91bml0X3R5cGU7Cj4+ICAg CV9fdTgJbnVoX3RlbXBvcmFsX2lkX3BsdXMxOwo+PiBAQCAtMTkwLDE1ICsyMDQsMTMgQEAgc3Ry dWN0IHY0bDJfY3RybF9oZXZjX3NsaWNlX3BhcmFtcyB7Cj4+ICAgCV9fdTgJcGljX3N0cnVjdDsK Pj4gICAKPj4gICAJLyogSVNPL0lFQyAyMzAwOC0yLCBJVFUtVCBSZWMuIEguMjY1OiBHZW5lcmFs IHNsaWNlIHNlZ21lbnQgaGVhZGVyCj4gKi8KPj4gLQlfX3U4CW51bV9hY3RpdmVfZHBiX2VudHJp ZXM7Cj4+ICAgCV9fdTgJcmVmX2lkeF9sMFtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07 Cj4+ICAgCV9fdTgJcmVmX2lkeF9sMVtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ ICAgCj4+IC0JX191OAludW1fcnBzX3BvY19zdF9jdXJyX2JlZm9yZTsKPj4gLQlfX3U4CW51bV9y cHNfcG9jX3N0X2N1cnJfYWZ0ZXI7Cj4+IC0JX191OAludW1fcnBzX3BvY19sdF9jdXJyOwo+PiAr CV9fdTE2CXNob3J0X3Rlcm1fcmVmX3BpY19zZXRfc2l6ZTsKPj4gKwlfX3UxNglsb25nX3Rlcm1f cmVmX3BpY19zZXRfc2l6ZTsKPj4gICAKPj4gLQlfX3U4CXBhZGRpbmc7Cj4+ICsJX191OAlwYWRk aW5nWzVdOwo+PiAgIAo+PiAgIAkvKiBJU08vSUVDIDIzMDA4LTIsIElUVS1UIFJlYy4gSC4yNjU6 IEdlbmVyYWwgc2xpY2Ugc2VnbWVudCBoZWFkZXIKPiAqLwo+PiAgIAlzdHJ1Y3QgdjRsMl9oZXZj X2RwYl9lbnRyeSBkcGJbVjRMMl9IRVZDX0RQQl9FTlRSSUVTX05VTV9NQVhdOwo+PiBAQCAtMjA5 LDQgKzIyMSwyMSBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zIHsKPj4gICAJ X191NjQJZmxhZ3M7Cj4+ICAgfTsKPj4gICAKPj4gKyNkZWZpbmUgVjRMMl9IRVZDX0RFQ09ERV9Q QVJBTV9GTEFHX0lSQVBfUElDCQkweDEKPj4gKyNkZWZpbmUgVjRMMl9IRVZDX0RFQ09ERV9QQVJB TV9GTEFHX0lEUl9QSUMJCTB4Mgo+PiArI2RlZmluZSBWNEwyX0hFVkNfREVDT0RFX1BBUkFNX0ZM QUdfTk9fT1VUUFVUX09GX1BSSU9SICAweDQKPj4gKwo+PiArc3RydWN0IHY0bDJfY3RybF9oZXZj X2RlY29kZV9wYXJhbXMgewo+PiArCV9fczMyCXBpY19vcmRlcl9jbnRfdmFsOwo+PiArCV9fdTgJ bnVtX2FjdGl2ZV9kcGJfZW50cmllczsKPj4gKwlzdHJ1Y3QJdjRsMl9oZXZjX2RwYl9lbnRyeSBk cGJbVjRMMl9IRVZDX0RQQl9FTlRSSUVTX05VTV9NQVhdOwo+PiArCV9fdTgJbnVtX3Jwc19wb2Nf c3RfY3Vycl9iZWZvcmU7Cj4+ICsJX191OAludW1fcnBzX3BvY19zdF9jdXJyX2FmdGVyOwo+PiAr CV9fdTgJbnVtX3Jwc19wb2NfbHRfY3VycjsKPj4gKwlfX3U4CXJwc19zdF9jdXJyX2JlZm9yZVtW NEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ICsJX191OAlycHNfc3RfY3Vycl9hZnRl cltWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ICsJX191OAlycHNfbHRfY3VycltW NEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ICsJX191NjQJZmxhZ3M7Cj4+ICt9Owo+ IEN1cnJlbnQgcHJhY3RpY2UgaXMgdG8gYWxzbyBhZGQvdXBkYXRlIGNvbnRyb2xzIGRvY3VtZW50 YXRpb24gaW4KPiBEb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsLwo+Cj4gV2l0 aCB5b3VyIGNoYW5nZXMsIHY0bDJfY3RybF9oZXZjX3BwcyBhbmQgdjRsMl9jdHJsX2hldmNfc2xp Y2VfcGFyYW1zCj4gZGVzY3JpcHRpb25zIGFyZSBvdXQgb2Ygc3luYyBhbmQgdjRsMl9jdHJsX2hl dmNfZGVjb2RlX3BhcmFtcyBkZXNjcmlwdGlvbiBpcwo+IGNvbXBsZXRlbHkgbWlzc2luZy4KClRo YW5rcyBmb3IgeW91ciBjb21tZW50LgpUaGF0IHdpbGwgYmUgZml4IGluIHYzLgoKQmVuamFtaW4K Cj4gQmVzdCByZWdhcmRzLAo+IEplcm5lago+Cj4+ICsKPj4gICAjZW5kaWYKPj4gLS0gCj4+IDIu MjUuMQo+Pgo+Pgo+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK