From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 56909454C7 for ; Wed, 3 May 2023 02:14:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CC1B668C0B7; Wed, 3 May 2023 05:14:35 +0300 (EEST) Received: from smtp-my3-04p36.yunyou.top (smtp-my3-04p36.yunyou.top [60.247.169.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 98620687ED1 for ; Wed, 3 May 2023 05:14:26 +0300 (EEST) Received: from [192.168.15.107] (unknown [220.184.139.145]) by smtp-my-04.yunyou.top (WestCloudMail) with ESMTPA id 2627114A326; Wed, 3 May 2023 10:14:19 +0800 (CST) Content-Type: multipart/mixed; boundary="------------THPRe0BGKIferZwPWnsRv0RP" Message-ID: Date: Wed, 3 May 2023 10:14:19 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 To: FFmpeg development discussions and patches , Jean-Baptiste Kempf References: <530864e2-a55b-603e-00d4-f6876d391d9e@myais.com.cn> From: myais In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH] lavc/aarch64: new optimization for 8-bit hevc_pel_uni_w_pixels, qpel_uni_w_h, qpel_uni_w_v, qpel_uni_w_hv and qpel_h X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------THPRe0BGKIferZwPWnsRv0RP Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello, - I splited this patch, Do I need to resubmit or just attach them as attachments? (I attached those patches.  If I need to resummit, please let me know.) - Those functions are checked by checkasm already. Thanks. 在 2023/5/2 20:32, Jean-Baptiste Kempf 写道: > Hello, > > Just 2 questions: > - could you split this patch into several (3,4 or 5) > - are all those functions checked by chekasm? > > Thanks, > > jb > > On Sun, 30 Apr 2023, at 10:57, myais wrote: >> Hi, >> This is a patch for the aarch64, which completes the neon versions of >> the hevc_pel_uni_w_pixels, qpel_uni_w_h, qpel_uni_w_v, qpel_uni_w_hv >> interfaces. >> >> put_hevc_pel_uni_w_pixels4_8_c: 54.3 >> put_hevc_pel_uni_w_pixels4_8_neon: 24.1 >> put_hevc_pel_uni_w_pixels6_8_c: 105.3 >> put_hevc_pel_uni_w_pixels6_8_neon: 53.1 >> put_hevc_pel_uni_w_pixels8_8_c: 176.6 >> put_hevc_pel_uni_w_pixels8_8_neon: 63.8 >> put_hevc_pel_uni_w_pixels12_8_c: 391.1 >> put_hevc_pel_uni_w_pixels12_8_neon: 193.3 >> put_hevc_pel_uni_w_pixels16_8_c: 688.1 >> put_hevc_pel_uni_w_pixels16_8_neon: 226.1 >> put_hevc_pel_uni_w_pixels24_8_c: 1542.3 >> put_hevc_pel_uni_w_pixels24_8_neon: 536.8 >> put_hevc_pel_uni_w_pixels32_8_c: 2753.1 >> put_hevc_pel_uni_w_pixels32_8_neon: 875.8 >> put_hevc_pel_uni_w_pixels48_8_c: 6251.1 >> put_hevc_pel_uni_w_pixels48_8_neon: 1966.1 >> put_hevc_pel_uni_w_pixels64_8_c: 11047.1 >> put_hevc_pel_uni_w_pixels64_8_neon: 3449.8 >> >> put_hevc_qpel_uni_w_h4_8_c: 156.6 >> put_hevc_qpel_uni_w_h4_8_neon: 44.6 >> put_hevc_qpel_uni_w_h6_8_c: 324.6 >> put_hevc_qpel_uni_w_h6_8_neon: 103.1 >> put_hevc_qpel_uni_w_h8_8_c: 549.3 >> put_hevc_qpel_uni_w_h8_8_neon: 138.6 >> put_hevc_qpel_uni_w_h12_8_c: 1240.3 >> put_hevc_qpel_uni_w_h12_8_neon: 277.3 >> put_hevc_qpel_uni_w_h16_8_c: 2161.8 >> put_hevc_qpel_uni_w_h16_8_neon: 394.1 >> put_hevc_qpel_uni_w_h24_8_c: 4874.8 >> put_hevc_qpel_uni_w_h24_8_neon: 972.6 >> put_hevc_qpel_uni_w_h32_8_c: 8517.8 >> put_hevc_qpel_uni_w_h32_8_neon: 1517.3 >> put_hevc_qpel_uni_w_h48_8_c: 19856.1 >> put_hevc_qpel_uni_w_h48_8_neon: 3429.8 >> put_hevc_qpel_uni_w_h64_8_c: 35159.3 >> put_hevc_qpel_uni_w_h64_8_neon: 6018.1 >> >> put_hevc_qpel_uni_w_v4_8_c: 180.6 >> put_hevc_qpel_uni_w_v4_8_neon: 63.8 >> put_hevc_qpel_uni_w_v6_8_c: 318.6 >> put_hevc_qpel_uni_w_v6_8_neon: 117.8 >> put_hevc_qpel_uni_w_v8_8_c: 547.6 >> put_hevc_qpel_uni_w_v8_8_neon: 132.1 >> put_hevc_qpel_uni_w_v12_8_c: 1202.8 >> put_hevc_qpel_uni_w_v12_8_neon: 350.1 >> put_hevc_qpel_uni_w_v16_8_c: 2109.6 >> put_hevc_qpel_uni_w_v16_8_neon: 442.1 >> put_hevc_qpel_uni_w_v24_8_c: 4748.8 >> put_hevc_qpel_uni_w_v24_8_neon: 1287.1 >> put_hevc_qpel_uni_w_v32_8_c: 8487.3 >> put_hevc_qpel_uni_w_v32_8_neon: 1704.3 >> put_hevc_qpel_uni_w_v48_8_c: 18798.8 >> put_hevc_qpel_uni_w_v48_8_neon: 3790.8 >> put_hevc_qpel_uni_w_v64_8_c: 35614.6 >> put_hevc_qpel_uni_w_v64_8_neon: 6725.6 >> >> >> put_hevc_qpel_uni_w_hv4_8_c: 498.8 >> put_hevc_qpel_uni_w_hv4_8_neon: 139.3 >> put_hevc_qpel_uni_w_hv6_8_c: 874.6 >> put_hevc_qpel_uni_w_hv6_8_neon: 295.3 >> put_hevc_qpel_uni_w_hv8_8_c: 1372.1 >> put_hevc_qpel_uni_w_hv8_8_neon: 387.1 >> put_hevc_qpel_uni_w_hv12_8_c: 2721.8 >> put_hevc_qpel_uni_w_hv12_8_neon: 804.8 >> put_hevc_qpel_uni_w_hv16_8_c: 4503.1 >> put_hevc_qpel_uni_w_hv16_8_neon: 1038.1 >> put_hevc_qpel_uni_w_hv24_8_c: 9321.8 >> put_hevc_qpel_uni_w_hv24_8_neon: 2962.1 >> put_hevc_qpel_uni_w_hv32_8_c: 15926.8 >> put_hevc_qpel_uni_w_hv32_8_neon: 3858.6 >> put_hevc_qpel_uni_w_hv48_8_c: 35051.1 >> put_hevc_qpel_uni_w_hv48_8_neon: 9301.1 >> put_hevc_qpel_uni_w_hv64_8_c: 61215.3 >> put_hevc_qpel_uni_w_hv64_8_neon: 14920.1 >> >> put_hevc_qpel_uni_h4_8_c: 143.3 >> put_hevc_qpel_uni_h4_8_neon: 55.3 >> put_hevc_qpel_uni_h6_8_c: 304.6 >> put_hevc_qpel_uni_h6_8_neon: 82.3 >> put_hevc_qpel_uni_h8_8_c: 557.8 >> put_hevc_qpel_uni_h8_8_neon: 99.3 >> put_hevc_qpel_uni_h12_8_c: 1228.3 >> put_hevc_qpel_uni_h12_8_neon: 251.6 >> put_hevc_qpel_uni_h16_8_c: 2210.3 >> put_hevc_qpel_uni_h16_8_neon: 324.6 >> put_hevc_qpel_uni_h24_8_c: 4859.1 >> put_hevc_qpel_uni_h24_8_neon: 962.3 >> put_hevc_qpel_uni_h32_8_c: 8728.6 >> put_hevc_qpel_uni_h32_8_neon: 1249.6 >> put_hevc_qpel_uni_h48_8_c: 20346.3 >> put_hevc_qpel_uni_h48_8_neon: 2824.1 >> put_hevc_qpel_uni_h64_8_c: 36702.6 >> put_hevc_qpel_uni_h64_8_neon: 5012.1 >> >> >> >> >> Signed-off-by: myais >> --- >> libavcodec/aarch64/hevcdsp_init_aarch64.c | 96 + >> libavcodec/aarch64/hevcdsp_qpel_neon.S | 2223 +++++++++++++++++++++ >> 2 files changed, 2319 insertions(+) >> >> diff --git a/libavcodec/aarch64/hevcdsp_init_aarch64.c >> b/libavcodec/aarch64/hevcdsp_init_aarch64.c >> index be1049a2ec..42b8e9169d 100644 >> --- a/libavcodec/aarch64/hevcdsp_init_aarch64.c >> +++ b/libavcodec/aarch64/hevcdsp_init_aarch64.c >> @@ -128,6 +128,91 @@ void ff_hevc_put_hevc_qpel_bi_h16_8_neon(uint8_t >> *_dst, ptrdiff_t _dststride, co >> ptrdiff_t _srcstride, const >> int16_t *src2, int height, intptr_t >> mx, intptr_t my, int width); >> +#define NEON8_FNPROTO(fn, args, ext) \ >> + void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##6_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##12_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##24_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##48_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##64_8_neon##ext args; \ >> + >> +#define NEON8_FNPROTO_PARTIAL_4(fn, args, ext) \ >> + void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##64_8_neon##ext args; \ >> + >> +#define NEON8_FNPROTO_PARTIAL_5(fn, args, ext) \ >> + void ff_hevc_put_hevc_##fn##4_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##8_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##16_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##32_8_neon##ext args; \ >> + void ff_hevc_put_hevc_##fn##64_8_neon##ext args; \ >> + >> + >> +NEON8_FNPROTO(pel_uni_w_pixels, (uint8_t *_dst, ptrdiff_t _dststride, >> + const uint8_t *_src, ptrdiff_t _srcstride, >> + int height, int denom, int wx, int ox, + intptr_t mx, >> intptr_t my, int width),); >> + >> +NEON8_FNPROTO_PARTIAL_4(qpel_uni_w_v, (uint8_t *_dst, ptrdiff_t >> _dststride, >> + const uint8_t *_src, ptrdiff_t _srcstride, >> + int height, int denom, int wx, int ox, >> + intptr_t mx, intptr_t my, int width),); >> + >> +#if defined(__ARM_FEATURE_DOTPROD) >> +NEON8_FNPROTO(qpel_h, (int16_t *dst, >> + const uint8_t *_src, ptrdiff_t _srcstride, >> + int height, intptr_t mx, intptr_t my, int width), _dotprod); >> + >> +NEON8_FNPROTO(qpel_uni_w_h, (uint8_t *_dst, ptrdiff_t _dststride, >> + const uint8_t *_src, ptrdiff_t _srcstride, >> + int height, int denom, int wx, int ox, >> + intptr_t mx, intptr_t my, int width), _dotprod); >> + >> +NEON8_FNPROTO_PARTIAL_5(qpel_uni_w_hv, (uint8_t *_dst, ptrdiff_t >> _dststride, >> + const uint8_t *_src, ptrdiff_t _srcstride, >> + int height, int denom, int wx, int ox, >> + intptr_t mx, intptr_t my, int width), _dotprod); >> + >> +#endif >> + >> +#define NEON8_FNASSIGN(member, v, h, fn, ext) \ >> + member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \ >> + member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \ >> + member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \ >> + member[4][v][h] = ff_hevc_put_hevc_##fn##12_8_neon##ext; \ >> + member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \ >> + member[6][v][h] = ff_hevc_put_hevc_##fn##24_8_neon##ext; \ >> + member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \ >> + member[8][v][h] = ff_hevc_put_hevc_##fn##48_8_neon##ext; \ >> + member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; >> + >> +#define NEON8_FNASSIGN_PARTIAL_4(member, v, h, fn, ext) \ >> + member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \ >> + member[2][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \ >> + member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \ >> + member[4][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \ >> + member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \ >> + member[6][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \ >> + member[7][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \ >> + member[8][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \ >> + member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; >> + >> +#define NEON8_FNASSIGN_PARTIAL_5(member, v, h, fn, ext) \ >> + member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \ >> + member[2][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \ >> + member[3][v][h] = ff_hevc_put_hevc_##fn##8_8_neon##ext; \ >> + member[4][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \ >> + member[5][v][h] = ff_hevc_put_hevc_##fn##16_8_neon##ext; \ >> + member[6][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \ >> + member[7][v][h] = ff_hevc_put_hevc_##fn##32_8_neon##ext; \ >> + member[8][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; \ >> + member[9][v][h] = ff_hevc_put_hevc_##fn##64_8_neon##ext; >> + >> av_cold void ff_hevc_dsp_init_aarch64(HEVCDSPContext *c, const int >> bit_depth) >> { >> if (!have_neon(av_get_cpu_flags())) return; >> @@ -185,6 +270,17 @@ av_cold void >> ff_hevc_dsp_init_aarch64(HEVCDSPContext *c, const int bit_depth) >> c->put_hevc_qpel_bi[7][0][1] = >> c->put_hevc_qpel_bi[8][0][1] = >> c->put_hevc_qpel_bi[9][0][1] = >> ff_hevc_put_hevc_qpel_bi_h16_8_neon; >> + >> + NEON8_FNASSIGN(c->put_hevc_epel_uni_w, 0, 0, pel_uni_w_pixels,); >> + NEON8_FNASSIGN(c->put_hevc_qpel_uni_w, 0, 0, >> pel_uni_w_pixels,); + >> NEON8_FNASSIGN_PARTIAL_4(c->put_hevc_qpel_uni_w, 1, 0, qpel_uni_w_v,); >> + >> + #if defined(__ARM_FEATURE_DOTPROD) >> + NEON8_FNASSIGN(c->put_hevc_qpel, 0, 1, qpel_h, _dotprod); >> + NEON8_FNASSIGN(c->put_hevc_qpel_uni_w, 0, 1, qpel_uni_w_h, >> _dotprod); >> + NEON8_FNASSIGN_PARTIAL_5(c->put_hevc_qpel_uni_w, 1, 1, >> qpel_uni_w_hv, _dotprod); >> + >> + #endif >> } >> if (bit_depth == 10) { >> c->hevc_h_loop_filter_chroma = >> ff_hevc_h_loop_filter_chroma_10_neon; >> diff --git a/libavcodec/aarch64/hevcdsp_qpel_neon.S >> b/libavcodec/aarch64/hevcdsp_qpel_neon.S >> index 0e7b912678..e30ac1b465 100644 >> --- a/libavcodec/aarch64/hevcdsp_qpel_neon.S >> +++ b/libavcodec/aarch64/hevcdsp_qpel_neon.S >> @@ -30,6 +30,13 @@ const qpel_filters, align=4 >> .byte 0, 1, -5, 17, 58,-10, 4, -1 >> endconst >> +const qpel_filters_abs, align=4 >> + .byte 0, 0, 0, 0, 0, 0, 0, 0 >> + .byte 1, 4, 10, 58, 17, 5, 1, 0 >> + .byte 1, 4, 11, 40, 40, 11, 4, 1 >> + .byte 0, 1, 5, 17, 58, 10, 4, 1 >> +endconst >> + >> .macro load_filter m >> movrel x15, qpel_filters >> add x15, x15, \m, lsl #3 >> @@ -482,3 +489,2219 @@ endfunc >> put_hevc qpel >> put_hevc qpel_uni >> put_hevc qpel_bi >> + >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels4_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.8h, w7 >> +1: >> + ldr s0, [x2] >> + ldr s1, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ushll v0.8h, v0.8b, #6 >> + ushll v1.8h, v1.8b, #6 >> + smull v0.4s, v0.4h, v30.4h >> + smull v1.4s, v1.4h, v30.4h >> + sqrshl v0.4s, v0.4s, v31.4s >> + sqrshl v1.4s, v1.4s, v31.4s >> + sqadd v0.4s, v0.4s, v29.4s >> + sqadd v1.4s, v1.4s, v29.4s >> + sqxtn v0.4h, v0.4s >> + sqxtn v1.4h, v1.4s >> + sqxtun v0.8b, v0.8h >> + sqxtun v1.8b, v1.8h >> + str s0, [x0] >> + str s1, [x0, x1] >> + add x0, x0, x1, lsl 1 >> + subs w4, w4, #2 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels6_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.4s, w7 >> + sub x1, x1, #4 >> +1: >> + ldr d0, [x2] >> + ldr d1, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ushll v0.8h, v0.8b, #6 >> + ushll v1.8h, v1.8b, #6 >> + smull v4.4s, v0.4h, v30.4h >> + smull2 v5.4s, v0.8h, v30.8h >> + smull v6.4s, v1.4h, v30.4h >> + smull2 v7.4s, v1.8h, v30.8h >> + sqrshl v4.4s, v4.4s, v31.4s >> + sqrshl v5.4s, v5.4s, v31.4s >> + sqrshl v6.4s, v6.4s, v31.4s >> + sqrshl v7.4s, v7.4s, v31.4s >> + sqadd v4.4s, v4.4s, v29.4s >> + sqadd v5.4s, v5.4s, v29.4s >> + sqadd v6.4s, v6.4s, v29.4s >> + sqadd v7.4s, v7.4s, v29.4s >> + sqxtn v0.4h, v4.4s >> + sqxtn2 v0.8h, v5.4s >> + sqxtn v1.4h, v6.4s >> + sqxtn2 v1.8h, v7.4s >> + sqxtun v0.8b, v0.8h >> + sqxtun v1.8b, v1.8h >> + str s0, [x0], #4 >> + st1 {v0.h}[2], [x0], x1 >> + str s1, [x0], #4 >> + st1 {v1.h}[2], [x0], x1 >> + subs w4, w4, #2 >> + b.ne 1b >> + ret +endfunc >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels8_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.4s, w7 >> +1: >> + ldr d0, [x2] >> + ldr d1, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ushll v0.8h, v0.8b, #6 >> + ushll v1.8h, v1.8b, #6 >> + smull v4.4s, v0.4h, v30.4h >> + smull2 v5.4s, v0.8h, v30.8h >> + smull v6.4s, v1.4h, v30.4h >> + smull2 v7.4s, v1.8h, v30.8h >> + sqrshl v4.4s, v4.4s, v31.4s >> + sqrshl v5.4s, v5.4s, v31.4s >> + sqrshl v6.4s, v6.4s, v31.4s >> + sqrshl v7.4s, v7.4s, v31.4s >> + sqadd v4.4s, v4.4s, v29.4s >> + sqadd v5.4s, v5.4s, v29.4s >> + sqadd v6.4s, v6.4s, v29.4s >> + sqadd v7.4s, v7.4s, v29.4s >> + sqxtn v0.4h, v4.4s >> + sqxtn2 v0.8h, v5.4s >> + sqxtn v1.4h, v6.4s >> + sqxtn2 v1.8h, v7.4s >> + sqxtun v0.8b, v0.8h >> + sqxtun v1.8b, v1.8h >> + str d0, [x0] >> + str d1, [x0, x1] >> + add x0, x0, x1, lsl 1 >> + subs w4, w4, #2 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels12_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.4s, w7 >> + sub x1, x1, #8 >> +1: >> + ldr q0, [x2] >> + ldr q1, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ushll v4.8h, v0.8b, #6 >> + ushll2 v5.8h, v0.16b, #6 >> + ushll v6.8h, v1.8b, #6 >> + ushll2 v7.8h, v1.16b, #6 >> + smull v16.4s, v4.4h, v30.4h >> + smull2 v17.4s, v4.8h, v30.8h >> + smull v18.4s, v5.4h, v30.4h >> + smull2 v19.4s, v5.8h, v30.8h >> + smull v20.4s, v6.4h, v30.4h >> + smull2 v21.4s, v6.8h, v30.8h >> + smull v22.4s, v7.4h, v30.4h >> + smull2 v23.4s, v7.8h, v30.8h >> + + sqrshl v16.4s, v16.4s, v31.4s >> + sqrshl v17.4s, v17.4s, v31.4s >> + sqrshl v18.4s, v18.4s, v31.4s >> + sqrshl v19.4s, v19.4s, v31.4s >> + sqrshl v20.4s, v20.4s, v31.4s >> + sqrshl v21.4s, v21.4s, v31.4s >> + sqrshl v22.4s, v22.4s, v31.4s >> + sqrshl v23.4s, v23.4s, v31.4s >> + sqadd v16.4s, v16.4s, v29.4s >> + sqadd v17.4s, v17.4s, v29.4s >> + sqadd v18.4s, v18.4s, v29.4s >> + sqadd v19.4s, v19.4s, v29.4s >> + sqadd v20.4s, v20.4s, v29.4s >> + sqadd v21.4s, v21.4s, v29.4s >> + sqadd v22.4s, v22.4s, v29.4s >> + sqadd v23.4s, v23.4s, v29.4s >> + sqxtn v0.4h, v16.4s >> + sqxtn2 v0.8h, v17.4s >> + sqxtn v1.4h, v18.4s >> + sqxtn2 v1.8h, v19.4s >> + sqxtn v2.4h, v20.4s >> + sqxtn2 v2.8h, v21.4s >> + sqxtn v3.4h, v22.4s >> + sqxtn2 v3.8h, v23.4s >> + sqxtun v0.8b, v0.8h >> + sqxtun2 v0.16b, v1.8h >> + sqxtun v2.8b, v2.8h >> + sqxtun2 v2.16b, v3.8h >> + str d0, [x0], #8 >> + st1 {v0.s}[2], [x0], x1 >> + str d2, [x0], #8 >> + st1 {v2.s}[2], [x0], x1 >> + subs w4, w4, #2 >> + b.ne 1b >> + ret >> +endfunc >> + >> +.macro PEL_UNI_W_PIXEL_CALC s0, t0, t1, d0, d1, d2, d3 >> + ushll \t0\().8h, \s0\().8b, #6 >> + ushll2 \t1\().8h, \s0\().16b, #6 >> + smull \d0\().4s, \t0\().4h, v30.4h >> + smull2 \d1\().4s, \t0\().8h, v30.8h >> + smull \d2\().4s, \t1\().4h, v30.4h >> + smull2 \d3\().4s, \t1\().8h, v30.8h >> + sqrshl \d0\().4s, \d0\().4s, v31.4s >> + sqrshl \d1\().4s, \d1\().4s, v31.4s >> + sqrshl \d2\().4s, \d2\().4s, v31.4s >> + sqrshl \d3\().4s, \d3\().4s, v31.4s >> + sqadd \d0\().4s, \d0\().4s, v29.4s >> + sqadd \d1\().4s, \d1\().4s, v29.4s >> + sqadd \d2\().4s, \d2\().4s, v29.4s >> + sqadd \d3\().4s, \d3\().4s, v29.4s >> + sqxtn \t0\().4h, \d0\().4s >> + sqxtn2 \t0\().8h, \d1\().4s >> + sqxtn \t1\().4h, \d2\().4s >> + sqxtn2 \t1\().8h, \d3\().4s >> + sqxtun \s0\().8b, \t0\().8h >> + sqxtun2 \s0\().16b, \t1\().8h >> +.endm >> + >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels16_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.4s, w7 >> +1: >> + ldr q0, [x2] >> + ldr q1, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + PEL_UNI_W_PIXEL_CALC v0, v4, v5, v16, v17, v18, v19 >> + PEL_UNI_W_PIXEL_CALC v1, v6, v7, v20, v21, v22, v23 >> + str q0, [x0] >> + str q1, [x0, x1] >> + add x0, x0, x1, lsl 1 >> + subs w4, w4, #2 >> + b.ne 1b >> + ret >> +endfunc >> + >> + >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels24_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.4s, w7 >> +1: >> + ld1 {v0.16b, v1.16b}, [x2], x3 >> + ushll v4.8h, v0.8b, #6 >> + ushll2 v5.8h, v0.16b, #6 >> + ushll v6.8h, v1.8b, #6 >> + smull v16.4s, v4.4h, v30.4h >> + smull2 v17.4s, v4.8h, v30.8h >> + smull v18.4s, v5.4h, v30.4h >> + smull2 v19.4s, v5.8h, v30.8h >> + smull v20.4s, v6.4h, v30.4h >> + smull2 v21.4s, v6.8h, v30.8h >> + sqrshl v16.4s, v16.4s, v31.4s >> + sqrshl v17.4s, v17.4s, v31.4s >> + sqrshl v18.4s, v18.4s, v31.4s >> + sqrshl v19.4s, v19.4s, v31.4s >> + sqrshl v20.4s, v20.4s, v31.4s >> + sqrshl v21.4s, v21.4s, v31.4s >> + sqadd v16.4s, v16.4s, v29.4s >> + sqadd v17.4s, v17.4s, v29.4s >> + sqadd v18.4s, v18.4s, v29.4s >> + sqadd v19.4s, v19.4s, v29.4s >> + sqadd v20.4s, v20.4s, v29.4s >> + sqadd v21.4s, v21.4s, v29.4s >> + sqxtn v0.4h, v16.4s >> + sqxtn2 v0.8h, v17.4s >> + sqxtn v1.4h, v18.4s >> + sqxtn2 v1.8h, v19.4s >> + sqxtn v2.4h, v20.4s >> + sqxtn2 v2.8h, v21.4s >> + sqxtun v0.8b, v0.8h >> + sqxtun v1.8b, v1.8h >> + sqxtun v2.8b, v2.8h >> + st1 {v0.8b, v1.8b, v2.8b}, [x0], x1 >> + subs w4, w4, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels32_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.4s, w7 >> +1: >> + ld1 {v0.16b, v1.16b}, [x2], x3 >> + PEL_UNI_W_PIXEL_CALC v0, v4, v5, v16, v17, v18, v19 >> + PEL_UNI_W_PIXEL_CALC v1, v6, v7, v20, v21, v22, v23 >> + st1 {v0.16b, v1.16b}, [x0], x1 >> + subs w4, w4, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels48_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.4s, w7 >> +1: >> + ld1 {v0.16b, v1.16b, v2.16b}, [x2], x3 >> + PEL_UNI_W_PIXEL_CALC v0, v4, v5, v16, v17, v18, v19 >> + PEL_UNI_W_PIXEL_CALC v1, v6, v7, v20, v21, v22, v23 >> + PEL_UNI_W_PIXEL_CALC v2, v4, v5, v16, v17, v18, v19 >> + st1 {v0.16b, v1.16b, v2.16b}, [x0], x1 >> + subs w4, w4, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_pel_uni_w_pixels64_8_neon, export=1 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 >> + dup v31.4s, w10 >> + dup v29.4s, w7 >> +1: >> + ld1 {v0.16b, v1.16b, v2.16b, v3.16b}, [x2], x3 >> + PEL_UNI_W_PIXEL_CALC v0, v4, v5, v16, v17, v18, v19 >> + PEL_UNI_W_PIXEL_CALC v1, v6, v7, v20, v21, v22, v23 >> + PEL_UNI_W_PIXEL_CALC v2, v4, v5, v16, v17, v18, v19 >> + PEL_UNI_W_PIXEL_CALC v3, v6, v7, v20, v21, v22, v23 >> + st1 {v0.16b, v1.16b, v2.16b, v3.16b}, [x0], x1 >> + subs w4, w4, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +.macro QPEL_UNI_W_V_HEADER >> + ldur x12, [sp, #8] // my >> + sub x2, x2, x3, lsl #1 >> + sub x2, x2, x3 >> + movrel x9, qpel_filters_abs >> + add x9, x9, x12, lsl 3 >> + ldr d28, [x9] >> + dup v0.16b, v28.b[0] >> + dup v1.16b, v28.b[1] >> + dup v2.16b, v28.b[2] >> + dup v3.16b, v28.b[3] >> + dup v4.16b, v28.b[4] >> + dup v5.16b, v28.b[5] >> + dup v6.16b, v28.b[6] >> + dup v7.16b, v28.b[7] >> + >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.8h, w6 // wx >> + dup v31.4s, w10 // shift >> + dup v29.4s, w7 // ox >> +.endm >> + >> +.macro QPEL_FILTER_B dst, src0, src1, src2, src3, src4, src5, src6, src7 >> + umull \dst\().8h, \src1\().8b, v1.8b >> + umlsl \dst\().8h, \src0\().8b, v0.8b >> + umlsl \dst\().8h, \src2\().8b, v2.8b >> + umlal \dst\().8h, \src3\().8b, v3.8b >> + umlal \dst\().8h, \src4\().8b, v4.8b >> + umlsl \dst\().8h, \src5\().8b, v5.8b >> + umlal \dst\().8h, \src6\().8b, v6.8b >> + umlsl \dst\().8h, \src7\().8b, v7.8b >> +.endm >> + >> +.macro QPEL_FILTER_B2 dst, src0, src1, src2, src3, src4, src5, src6, src7 >> + umull2 \dst\().8h, \src1\().16b, v1.16b >> + umlsl2 \dst\().8h, \src0\().16b, v0.16b >> + umlsl2 \dst\().8h, \src2\().16b, v2.16b >> + umlal2 \dst\().8h, \src3\().16b, v3.16b >> + umlal2 \dst\().8h, \src4\().16b, v4.16b >> + umlsl2 \dst\().8h, \src5\().16b, v5.16b >> + umlal2 \dst\().8h, \src6\().16b, v6.16b >> + umlsl2 \dst\().8h, \src7\().16b, v7.16b >> +.endm >> + >> +.macro QPEL_UNI_W_V_4 >> + smull v24.4s, v24.4h, v30.4h >> + sqrshl v24.4s, v24.4s, v31.4s >> + sqadd v24.4s, v24.4s, v29.4s >> + sqxtn v24.4h, v24.4s >> + sqxtun v24.8b, v24.8h >> + st1 {v24.s}[0], [x0], x1 >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_uni_w_v4_8_neon, export=1 >> + QPEL_UNI_W_V_HEADER >> + ldr s16, [x2] >> + ldr s17, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr s18, [x2] >> + ldr s19, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr s20, [x2] >> + ldr s21, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr s22, [x2] >> + >> +1: ldr s23, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v24, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_UNI_W_V_4 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr s16, [x2] >> + QPEL_FILTER_B v24, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_UNI_W_V_4 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr s17, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v24, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_UNI_W_V_4 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr s18, [x2] >> + QPEL_FILTER_B v24, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_UNI_W_V_4 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr s19, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v24, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_UNI_W_V_4 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr s20, [x2] >> + QPEL_FILTER_B v24, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_UNI_W_V_4 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr s21, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v24, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_UNI_W_V_4 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr s22, [x2] >> + QPEL_FILTER_B v24, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_UNI_W_V_4 >> + subs w4, w4, #1 >> + b.ne 1b >> +2: >> + ret >> +endfunc >> + >> +.macro QPEL_UNI_W_V_8 >> + smull v24.4s, v26.4h, v30.4h >> + smull2 v25.4s, v26.8h, v30.8h >> + sqrshl v24.4s, v24.4s, v31.4s >> + sqrshl v25.4s, v25.4s, v31.4s >> + sqadd v24.4s, v24.4s, v29.4s >> + sqadd v25.4s, v25.4s, v29.4s >> + sqxtn v24.4h, v24.4s >> + sqxtn2 v24.8h, v25.4s >> + sqxtun v24.8b, v24.8h >> + st1 {v24.d}[0], [x0], x1 >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_uni_w_v8_8_neon, export=1 >> + QPEL_UNI_W_V_HEADER >> + ldr d16, [x2] >> + ldr d17, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr d18, [x2] >> + ldr d19, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr d20, [x2] >> + ldr d21, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr d22, [x2] >> + >> +1: ldr d23, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_UNI_W_V_8 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr d16, [x2] >> + QPEL_FILTER_B v26, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_UNI_W_V_8 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr d17, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_UNI_W_V_8 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr d18, [x2] >> + QPEL_FILTER_B v26, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_UNI_W_V_8 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr d19, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_UNI_W_V_8 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr d20, [x2] >> + QPEL_FILTER_B v26, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_UNI_W_V_8 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr d21, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_UNI_W_V_8 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr d22, [x2] >> + QPEL_FILTER_B v26, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_UNI_W_V_8 >> + subs w4, w4, #1 >> + b.ne 1b >> +2: >> + ret >> +endfunc >> + >> +.macro QPEL_UNI_W_V_16 >> + smull v24.4s, v26.4h, v30.4h >> + smull2 v25.4s, v26.8h, v30.8h >> + smull v26.4s, v27.4h, v30.4h >> + smull2 v27.4s, v27.8h, v30.8h >> + sqrshl v24.4s, v24.4s, v31.4s >> + sqrshl v25.4s, v25.4s, v31.4s >> + sqrshl v26.4s, v26.4s, v31.4s >> + sqrshl v27.4s, v27.4s, v31.4s >> + sqadd v24.4s, v24.4s, v29.4s >> + sqadd v25.4s, v25.4s, v29.4s >> + sqadd v26.4s, v26.4s, v29.4s >> + sqadd v27.4s, v27.4s, v29.4s >> + sqxtn v24.4h, v24.4s >> + sqxtn2 v24.8h, v25.4s >> + sqxtn v26.4h, v26.4s >> + sqxtn2 v26.8h, v27.4s >> + sqxtun v24.8b, v24.8h >> + sqxtun2 v24.16b, v26.8h >> + st1 {v24.16b}, [x0], x1 >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_uni_w_v16_8_neon, export=1 >> + QPEL_UNI_W_V_HEADER >> + ldr q16, [x2] >> + ldr q17, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr q18, [x2] >> + ldr q19, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr q20, [x2] >> + ldr q21, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr q22, [x2] >> + >> +1: ldr q23, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_B2 v27, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q16, [x2] >> + QPEL_FILTER_B v26, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_B2 v27, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q17, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_B2 v27, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q18, [x2] >> + QPEL_FILTER_B v26, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_B2 v27, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q19, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_B2 v27, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q20, [x2] >> + QPEL_FILTER_B v26, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_B2 v27, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q21, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_B2 v27, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q22, [x2] >> + QPEL_FILTER_B v26, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_B2 v27, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.ne 1b >> +2: >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_uni_w_v64_8_neon, export=1 >> + QPEL_UNI_W_V_HEADER >> + ldur w13, [sp, #16] >> + mov x14, x0 >> + mov x15, x2 >> + mov w11, w4 >> + >> +3: >> + ldr q16, [x2] >> + ldr q17, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr q18, [x2] >> + ldr q19, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr q20, [x2] >> + ldr q21, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + ldr q22, [x2] >> + >> + >> +1: ldr q23, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_B2 v27, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q16, [x2] >> + QPEL_FILTER_B v26, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_B2 v27, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q17, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_B2 v27, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q18, [x2] >> + QPEL_FILTER_B v26, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_B2 v27, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q19, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_B2 v27, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q20, [x2] >> + QPEL_FILTER_B v26, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_B2 v27, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q21, [x2, x3] >> + add x2, x2, x3, lsl 1 >> + QPEL_FILTER_B v26, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_B2 v27, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.eq 2f >> + >> + ldr q22, [x2] >> + QPEL_FILTER_B v26, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_B2 v27, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_UNI_W_V_16 >> + subs w4, w4, #1 >> + b.ne 1b >> +2: >> + subs w13, w13, #16 >> + add x14, x14, #16 >> + add x15, x15, #16 >> + mov x0, x14 >> + mov x2, x15 >> + mov w4, w11 >> + b.hi 3b >> + ret >> +endfunc >> + >> +#if __ARM_FEATURE_DOTPROD >> +.macro QPEL_UNI_W_H_HEADER >> + ldr x12, [sp] >> + sub x2, x2, #3 >> + movrel x9, qpel_filters >> + add x9, x9, x12, lsl 3 >> + ldr x11, [x9] >> + dup v28.2d, x11 >> + mov w10, #-6 >> + sub w10, w10, w5 >> + dup v30.4s, w6 // wx >> + dup v31.4s, w10 // shift >> + dup v29.4s, w7 // ox >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h4_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> +1: >> + ld1 {v0.16b}, [x2], x3 >> + ext v1.16b, v0.16b, v0.16b, #1 >> + ext v2.16b, v0.16b, v0.16b, #2 >> + ext v3.16b, v0.16b, v0.16b, #3 >> + zip1 v0.2d, v0.2d, v1.2d >> + zip1 v2.2d, v2.2d, v3.2d >> + movi v16.2d, #0 >> + movi v17.2d, #0 >> + usdot v16.4s, v0.16b, v28.16b >> + usdot v17.4s, v2.16b, v28.16b >> + addp v16.4s, v16.4s, v17.4s >> + mul v16.4s, v16.4s, v30.4s >> + sqrshl v16.4s, v16.4s, v31.4s >> + sqadd v16.4s, v16.4s, v29.4s >> + sqxtn v16.4h, v16.4s >> + sqxtun v16.8b, v16.8h >> + str s16, [x0] >> + add x0, x0, x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h6_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> + sub x1, x1, #4 >> +1: >> + ld1 {v0.16b}, [x2], x3 >> + ext v1.16b, v0.16b, v0.16b, #1 >> + ext v2.16b, v0.16b, v0.16b, #2 >> + ext v3.16b, v0.16b, v0.16b, #3 >> + ext v4.16b, v0.16b, v0.16b, #4 >> + ext v5.16b, v0.16b, v0.16b, #5 >> + zip1 v0.2d, v0.2d, v1.2d >> + zip1 v2.2d, v2.2d, v3.2d >> + zip1 v4.2d, v4.2d, v5.2d >> + movi v16.2d, #0 >> + movi v17.2d, #0 >> + movi v18.2d, #0 >> + usdot v16.4s, v0.16b, v28.16b >> + usdot v17.4s, v2.16b, v28.16b >> + usdot v18.4s, v4.16b, v28.16b >> + addp v16.4s, v16.4s, v17.4s >> + addp v18.4s, v18.4s, v18.4s >> + mul v16.4s, v16.4s, v30.4s >> + mul v18.2s, v18.2s, v30.2s >> + sqrshl v16.4s, v16.4s, v31.4s >> + sqrshl v18.2s, v18.2s, v31.2s >> + sqadd v16.4s, v16.4s, v29.4s >> + sqadd v18.2s, v18.2s, v29.2s >> + sqxtn v16.4h, v16.4s >> + sqxtn2 v16.8h, v18.4s >> + sqxtun v16.8b, v16.8h >> + str s16, [x0], #4 >> + st1 {v16.h}[2], [x0], x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> + >> +.macro QPEL_UNI_W_H_CALC s0, s1, s2, s3, d0, d1, d2, d3 >> + movi \d0\().2d, #0 >> + movi \d1\().2d, #0 >> + movi \d2\().2d, #0 >> + movi \d3\().2d, #0 >> + usdot \d0\().4s, \s0\().16b, v28.16b >> + usdot \d1\().4s, \s1\().16b, v28.16b >> + usdot \d2\().4s, \s2\().16b, v28.16b >> + usdot \d3\().4s, \s3\().16b, v28.16b >> + addp \d0\().4s, \d0\().4s, \d1\().4s >> + addp \d2\().4s, \d2\().4s, \d3\().4s >> + mul \d0\().4s, \d0\().4s, v30.4s >> + mul \d2\().4s, \d2\().4s, v30.4s >> + sqrshl \d0\().4s, \d0\().4s, v31.4s >> + sqrshl \d2\().4s, \d2\().4s, v31.4s >> + sqadd \d0\().4s, \d0\().4s, v29.4s >> + sqadd \d2\().4s, \d2\().4s, v29.4s >> +.endm >> + >> +.macro QPEL_UNI_W_H_CALC_HALF s0, s1, d0, d1 >> + movi \d0\().2d, #0 >> + movi \d1\().2d, #0 >> + usdot \d0\().4s, \s0\().16b, v28.16b >> + usdot \d1\().4s, \s1\().16b, v28.16b >> + addp \d0\().4s, \d0\().4s, \d1\().4s >> + mul \d0\().4s, \d0\().4s, v30.4s >> + sqrshl \d0\().4s, \d0\().4s, v31.4s >> + sqadd \d0\().4s, \d0\().4s, v29.4s >> +.endm >> + >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h8_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> +1: >> + ld1 {v16.16b, v17.16b}, [x2], x3 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + zip1 v0.2d, v16.2d, v1.2d >> + zip1 v2.2d, v2.2d, v3.2d >> + zip1 v4.2d, v4.2d, v5.2d >> + zip1 v6.2d, v6.2d, v7.2d >> + QPEL_UNI_W_H_CALC v0, v2, v4, v6, v18, v19, v20, v21 >> + sqxtn v18.4h, v18.4s >> + sqxtn2 v18.8h, v20.4s >> + sqxtun v18.8b, v18.8h >> + str d18, [x0] >> + add x0, x0, x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h12_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> + add x13, x0, #8 >> +1: >> + ld1 {v16.16b, v17.16b}, [x2], x3 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + zip1 v18.2d, v16.2d, v1.2d >> + zip1 v19.2d, v2.2d, v3.2d >> + zip1 v20.2d, v4.2d, v5.2d >> + zip1 v21.2d, v6.2d, v7.2d >> + zip2 v22.2d, v16.2d, v1.2d >> + zip2 v23.2d, v2.2d, v3.2d >> + QPEL_UNI_W_H_CALC v18, v19, v20, v21, v0, v2, v4, v6 >> + QPEL_UNI_W_H_CALC_HALF v22, v23, v24, v25 >> + sqxtn v0.4h, v0.4s >> + sqxtn2 v0.8h, v4.4s >> + sqxtn v1.4h, v24.4s >> + sqxtun v0.8b, v0.8h >> + sqxtun v1.8b, v1.8h >> + >> + str d0, [x0] >> + str s1, [x13] >> + add x0, x0, x1 >> + add x13, x13, x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h16_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> +1: >> + ld1 {v16.16b, v17.16b}, [x2], x3 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_UNI_W_H_CALC v16, v2, v1, v3, v18, v19, v20, v21 // >> v18: 0, 8, 2, 10 v20: 1, 9, 3, 11 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v23, v24, v25 // >> v22: 4, 12, 6, 14 v24: 5, 13, 7, 15 >> + sqxtn v0.4h, v18.4s >> + sqxtn2 v0.8h, v22.4s >> + sqxtn v1.4h, v20.4s >> + sqxtn2 v1.8h, v24.4s >> + trn1 v2.8h, v0.8h, v1.8h >> + trn2 v3.8h, v0.8h, v1.8h >> + sqxtun v0.8b, v2.8h >> + sqxtun2 v0.16b, v3.8h >> + st1 {v0.16b}, [x0], x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h24_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> + sub x1, x1, #16 >> +1: >> + ld1 {v16.16b, v17.16b}, [x2], x3 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_UNI_W_H_CALC v16, v2, v1, v3, v18, v19, v20, v21 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v23, v24, v25 >> + sqxtn v18.4h, v18.4s >> + sqxtn2 v18.8h, v22.4s >> + sqxtn v19.4h, v20.4s >> + sqxtn2 v19.8h, v24.4s >> + trn1 v20.8h, v18.8h, v19.8h >> + trn2 v21.8h, v18.8h, v19.8h >> + sqxtun v26.8b, v20.8h >> + sqxtun2 v26.16b, v21.8h // 0-15 >> + ext v1.16b, v17.16b, v17.16b, #1 >> + ext v2.16b, v17.16b, v17.16b, #2 >> + ext v3.16b, v17.16b, v17.16b, #3 >> + ext v4.16b, v17.16b, v17.16b, #4 >> + ext v5.16b, v17.16b, v17.16b, #5 >> + ext v6.16b, v17.16b, v17.16b, #6 >> + ext v7.16b, v17.16b, v17.16b, #7 >> + zip1 v0.2d, v17.2d, v1.2d >> + zip1 v2.2d, v2.2d, v3.2d >> + zip1 v4.2d, v4.2d, v5.2d >> + zip1 v6.2d, v6.2d, v7.2d >> + QPEL_UNI_W_H_CALC v0, v2, v4, v6, v18, v19, v20, v21 >> + sqxtn v18.4h, v18.4s >> + sqxtn2 v18.8h, v20.4s >> + sqxtun v27.8b, v18.8h >> + >> + st1 {v26.16b}, [x0], #16 >> + st1 {v27.8b}, [x0], x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h32_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> +1: >> + ld1 {v16.16b, v17.16b, v18.16b}, [x2], x3 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_UNI_W_H_CALC v16, v2, v1, v3, v0, v19, v20, v21 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v23, v24, v25 >> + sqxtn v0.4h, v0.4s >> + sqxtn2 v0.8h, v22.4s >> + sqxtn v19.4h, v20.4s >> + sqxtn2 v19.8h, v24.4s >> + trn1 v20.8h, v0.8h, v19.8h >> + trn2 v21.8h, v0.8h, v19.8h >> + sqxtun v26.8b, v20.8h >> + sqxtun2 v26.16b, v21.8h // 0-15 >> + ext v1.16b, v17.16b, v18.16b, #1 >> + ext v2.16b, v17.16b, v18.16b, #2 >> + ext v3.16b, v17.16b, v18.16b, #3 >> + ext v4.16b, v17.16b, v18.16b, #4 >> + ext v5.16b, v17.16b, v18.16b, #5 >> + ext v6.16b, v17.16b, v18.16b, #6 >> + ext v7.16b, v17.16b, v18.16b, #7 >> + QPEL_UNI_W_H_CALC v17, v2, v1, v3, v0, v19, v20, v21 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v23, v24, v25 >> + sqxtn v0.4h, v0.4s >> + sqxtn2 v0.8h, v22.4s >> + sqxtn v19.4h, v20.4s >> + sqxtn2 v19.8h, v24.4s >> + trn1 v20.8h, v0.8h, v19.8h >> + trn2 v21.8h, v0.8h, v19.8h >> + sqxtun v27.8b, v20.8h >> + sqxtun2 v27.16b, v21.8h // 16-31 >> + st1 {v26.16b, v27.16b}, [x0], x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h48_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> +1: >> + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x2], x3 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_UNI_W_H_CALC v16, v2, v1, v3, v20, v24, v21, v0 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v24, v23, v0 >> + sqxtn v20.4h, v20.4s >> + sqxtn2 v20.8h, v22.4s >> + sqxtn v21.4h, v21.4s >> + sqxtn2 v21.8h, v23.4s >> + trn1 v22.8h, v20.8h, v21.8h >> + trn2 v23.8h, v20.8h, v21.8h >> + sqxtun v25.8b, v22.8h >> + sqxtun2 v25.16b, v23.8h // 0-15 >> + ext v1.16b, v17.16b, v18.16b, #1 >> + ext v2.16b, v17.16b, v18.16b, #2 >> + ext v3.16b, v17.16b, v18.16b, #3 >> + ext v4.16b, v17.16b, v18.16b, #4 >> + ext v5.16b, v17.16b, v18.16b, #5 >> + ext v6.16b, v17.16b, v18.16b, #6 >> + ext v7.16b, v17.16b, v18.16b, #7 >> + QPEL_UNI_W_H_CALC v17, v2, v1, v3, v20, v24, v21, v0 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v24, v23, v0 >> + sqxtn v20.4h, v20.4s >> + sqxtn2 v20.8h, v22.4s >> + sqxtn v21.4h, v21.4s >> + sqxtn2 v21.8h, v23.4s >> + trn1 v22.8h, v20.8h, v21.8h >> + trn2 v23.8h, v20.8h, v21.8h >> + sqxtun v26.8b, v22.8h >> + sqxtun2 v26.16b, v23.8h // 16-31 >> + ext v1.16b, v18.16b, v19.16b, #1 >> + ext v2.16b, v18.16b, v19.16b, #2 >> + ext v3.16b, v18.16b, v19.16b, #3 >> + ext v4.16b, v18.16b, v19.16b, #4 >> + ext v5.16b, v18.16b, v19.16b, #5 >> + ext v6.16b, v18.16b, v19.16b, #6 >> + ext v7.16b, v18.16b, v19.16b, #7 >> + QPEL_UNI_W_H_CALC v18, v2, v1, v3, v20, v24, v21, v0 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v24, v23, v0 >> + sqxtn v20.4h, v20.4s >> + sqxtn2 v20.8h, v22.4s >> + sqxtn v21.4h, v21.4s >> + sqxtn2 v21.8h, v23.4s >> + trn1 v22.8h, v20.8h, v21.8h >> + trn2 v23.8h, v20.8h, v21.8h >> + sqxtun v27.8b, v22.8h >> + sqxtun2 v27.16b, v23.8h // 32-47 >> + st1 {v25.16b, v26.16b, v27.16b}, [x0], x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> + >> + >> +function ff_hevc_put_hevc_qpel_uni_w_h64_8_neon_dotprod, export=1 >> + QPEL_UNI_W_H_HEADER >> + sub x3, x3, #64 >> +1: >> + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x2], #64 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_UNI_W_H_CALC v16, v2, v1, v3, v20, v24, v21, v0 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v24, v23, v0 >> + sqxtn v20.4h, v20.4s >> + sqxtn2 v20.8h, v22.4s >> + sqxtn v21.4h, v21.4s >> + sqxtn2 v21.8h, v23.4s >> + trn1 v22.8h, v20.8h, v21.8h >> + trn2 v23.8h, v20.8h, v21.8h >> + sqxtun v16.8b, v22.8h >> + sqxtun2 v16.16b, v23.8h // 0-15 >> + ext v1.16b, v17.16b, v18.16b, #1 >> + ext v2.16b, v17.16b, v18.16b, #2 >> + ext v3.16b, v17.16b, v18.16b, #3 >> + ext v4.16b, v17.16b, v18.16b, #4 >> + ext v5.16b, v17.16b, v18.16b, #5 >> + ext v6.16b, v17.16b, v18.16b, #6 >> + ext v7.16b, v17.16b, v18.16b, #7 >> + QPEL_UNI_W_H_CALC v17, v2, v1, v3, v20, v24, v21, v0 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v24, v23, v0 >> + sqxtn v20.4h, v20.4s >> + sqxtn2 v20.8h, v22.4s >> + sqxtn v21.4h, v21.4s >> + sqxtn2 v21.8h, v23.4s >> + trn1 v22.8h, v20.8h, v21.8h >> + trn2 v23.8h, v20.8h, v21.8h >> + sqxtun v17.8b, v22.8h >> + sqxtun2 v17.16b, v23.8h // 16-31 >> + ext v1.16b, v18.16b, v19.16b, #1 >> + ext v2.16b, v18.16b, v19.16b, #2 >> + ext v3.16b, v18.16b, v19.16b, #3 >> + ext v4.16b, v18.16b, v19.16b, #4 >> + ext v5.16b, v18.16b, v19.16b, #5 >> + ext v6.16b, v18.16b, v19.16b, #6 >> + ext v7.16b, v18.16b, v19.16b, #7 >> + QPEL_UNI_W_H_CALC v18, v2, v1, v3, v20, v24, v21, v0 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v24, v23, v0 >> + ld1 {v0.16b}, [x2], x3 >> + sqxtn v20.4h, v20.4s >> + sqxtn2 v20.8h, v22.4s >> + sqxtn v21.4h, v21.4s >> + sqxtn2 v21.8h, v23.4s >> + trn1 v22.8h, v20.8h, v21.8h >> + trn2 v23.8h, v20.8h, v21.8h >> + sqxtun v18.8b, v22.8h >> + sqxtun2 v18.16b, v23.8h // 32-47 >> + ext v1.16b, v19.16b, v0.16b, #1 >> + ext v2.16b, v19.16b, v0.16b, #2 >> + ext v3.16b, v19.16b, v0.16b, #3 >> + ext v4.16b, v19.16b, v0.16b, #4 >> + ext v5.16b, v19.16b, v0.16b, #5 >> + ext v6.16b, v19.16b, v0.16b, #6 >> + ext v7.16b, v19.16b, v0.16b, #7 >> + QPEL_UNI_W_H_CALC v19, v2, v1, v3, v20, v24, v21, v0 >> + QPEL_UNI_W_H_CALC v4, v6, v5, v7, v22, v24, v23, v0 >> + sqxtn v20.4h, v20.4s >> + sqxtn2 v20.8h, v22.4s >> + sqxtn v21.4h, v21.4s >> + sqxtn2 v21.8h, v23.4s >> + trn1 v22.8h, v20.8h, v21.8h >> + trn2 v23.8h, v20.8h, v21.8h >> + sqxtun v19.8b, v22.8h >> + sqxtun2 v19.16b, v23.8h // 48-63 >> + >> + st1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x0], x1 >> + subs w4, w4, #1 >> + b.hi 1b >> + ret >> +endfunc >> + >> + >> +.macro QPEL_H_HEADER >> + movrel x9, qpel_filters >> + add x9, x9, x4, lsl 3 >> + ldr x11, [x9] >> + dup v31.2d, x11 >> + sub x1, x1, #3 >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_h4_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + mov x10, #MAX_PB_SIZE * 2 >> +1: >> + ld1 {v0.16b}, [x1], x2 >> + ext v1.16b, v0.16b, v0.16b, #1 >> + ext v2.16b, v0.16b, v0.16b, #2 >> + ext v3.16b, v0.16b, v0.16b, #3 >> + zip1 v0.2d, v0.2d, v1.2d >> + zip1 v2.2d, v2.2d, v3.2d >> + movi v16.2d, #0 >> + movi v17.2d, #0 >> + usdot v16.4s, v0.16b, v31.16b >> + usdot v17.4s, v2.16b, v31.16b >> + addp v16.4s, v16.4s, v17.4s >> + sqxtn v16.4h, v16.4s >> + str d16, [x0] >> + add x0, x0, x10 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_h6_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + mov x10, #MAX_PB_SIZE * 2 >> + add x15, x0, #8 >> +1: >> + ld1 {v0.16b}, [x1], x2 >> + ext v1.16b, v0.16b, v0.16b, #1 >> + ext v2.16b, v0.16b, v0.16b, #2 >> + ext v3.16b, v0.16b, v0.16b, #3 >> + ext v4.16b, v0.16b, v0.16b, #4 >> + ext v5.16b, v0.16b, v0.16b, #5 >> + zip1 v0.2d, v0.2d, v1.2d >> + zip1 v2.2d, v2.2d, v3.2d >> + zip1 v4.2d, v4.2d, v5.2d >> + movi v16.2d, #0 >> + movi v17.2d, #0 >> + movi v18.2d, #0 >> + usdot v16.4s, v0.16b, v31.16b >> + usdot v17.4s, v2.16b, v31.16b >> + usdot v18.4s, v4.16b, v31.16b >> + addp v16.4s, v16.4s, v17.4s >> + addp v18.4s, v18.4s, v18.4s >> + sqxtn v16.4h, v16.4s >> + sqxtn v18.4h, v18.4s >> + str d16, [x0] >> + str s18, [x15] >> + add x0, x0, x10 >> + add x15, x15, x10 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_h8_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + mov x10, #MAX_PB_SIZE * 2 >> +1: >> + ld1 {v0.16b}, [x1], x2 >> + ext v1.16b, v0.16b, v0.16b, #1 >> + ext v2.16b, v0.16b, v0.16b, #2 >> + ext v3.16b, v0.16b, v0.16b, #3 >> + ext v4.16b, v0.16b, v0.16b, #4 >> + ext v5.16b, v0.16b, v0.16b, #5 >> + ext v6.16b, v0.16b, v0.16b, #6 >> + ext v7.16b, v0.16b, v0.16b, #7 >> + zip1 v0.2d, v0.2d, v1.2d >> + zip1 v2.2d, v2.2d, v3.2d >> + zip1 v4.2d, v4.2d, v5.2d >> + zip1 v6.2d, v6.2d, v7.2d >> + movi v16.2d, #0 >> + movi v17.2d, #0 >> + movi v18.2d, #0 >> + movi v19.2d, #0 >> + usdot v16.4s, v0.16b, v31.16b >> + usdot v17.4s, v2.16b, v31.16b >> + usdot v18.4s, v4.16b, v31.16b >> + usdot v19.4s, v6.16b, v31.16b >> + addp v16.4s, v16.4s, v17.4s >> + addp v18.4s, v18.4s, v19.4s >> + sqxtn v16.4h, v16.4s >> + sqxtn2 v16.8h, v18.4s >> + str q16, [x0] >> + add x0, x0, x10 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +.macro QPEL_H_CALC s0, s1, s2, s3, d0, d1, d2, d3 + movi >> \d0\().2d, #0 >> + movi \d1\().2d, #0 >> + movi \d2\().2d, #0 >> + movi \d3\().2d, #0 >> + usdot \d0\().4s, \s0\().16b, v31.16b >> + usdot \d1\().4s, \s1\().16b, v31.16b >> + usdot \d2\().4s, \s2\().16b, v31.16b >> + usdot \d3\().4s, \s3\().16b, v31.16b >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_h12_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + mov x10, #MAX_PB_SIZE * 2 >> + add x15, x0, #16 >> +1: >> + ld1 {v16.16b, v17.16b}, [x1], x2 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + zip1 v18.2d, v4.2d, v5.2d >> + zip1 v19.2d, v6.2d, v7.2d >> + QPEL_H_CALC v16, v1, v2, v3, v20, v21, v22, v23 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + movi v24.2d, #0 >> + movi v25.2d, #0 >> + usdot v24.4s, v18.16b, v31.16b >> + usdot v25.4s, v19.16b, v31.16b >> + addp v24.4s, v24.4s, v25.4s >> + trn1 v26.4s, v20.4s, v21.4s >> + trn2 v27.4s, v20.4s, v21.4s >> + sqxtn v26.4h, v26.4s >> + sqxtn v27.4h, v27.4s >> + sqxtn2 v26.8h, v24.4s >> + >> + str q26, [x0] >> + str d27, [x15] >> + add x0, x0, x10 >> + add x15, x15, x10 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_h16_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + mov x10, #MAX_PB_SIZE * 2 >> +1: >> + ld1 {v16.16b, v17.16b}, [x1], x2 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + >> + QPEL_H_CALC v16, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + >> + sqxtn v18.4h, v22.4s >> + sqxtn2 v18.8h, v26.4s >> + sqxtn v19.4h, v23.4s >> + sqxtn2 v19.8h, v27.4s >> + + stp q18, q19, [x0] >> + add x0, x0, x10 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_h24_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + mov x10, #MAX_PB_SIZE * 2 >> + add x15, x0, #32 >> +1: >> + ld1 {v16.16b, v17.16b}, [x1], x2 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_H_CALC v16, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v18.4h, v22.4s >> + sqxtn2 v18.8h, v26.4s >> + sqxtn v19.4h, v23.4s >> + sqxtn2 v19.8h, v27.4s >> + stp q18, q19, [x0] >> + add x0, x0, x10 >> + ext v1.16b, v17.16b, v17.16b, #1 >> + ext v2.16b, v17.16b, v17.16b, #2 >> + ext v3.16b, v17.16b, v17.16b, #3 >> + ext v4.16b, v17.16b, v17.16b, #4 >> + ext v5.16b, v17.16b, v17.16b, #5 >> + ext v6.16b, v17.16b, v17.16b, #6 >> + ext v7.16b, v17.16b, v17.16b, #7 >> + zip1 v0.2d, v17.2d, v1.2d >> + zip1 v2.2d, v2.2d, v3.2d >> + zip1 v4.2d, v4.2d, v5.2d >> + zip1 v6.2d, v6.2d, v7.2d >> + QPEL_H_CALC v0, v2, v4, v5, v20, v21, v22, v23 >> + addp v20.4s, v20.4s, v21.4s >> + addp v22.4s, v22.4s, v23.4s >> + sqxtn v20.4h, v20.4s >> + sqxtn2 v20.8h, v22.4s >> + str q20, [x15] >> + add x15, x15, x10 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_h32_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + mov x10, #MAX_PB_SIZE * 2 >> + add x15, x0, #32 >> +1: >> + ld1 {v16.16b, v17.16b, v18.16b}, [x1], x2 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_H_CALC v16, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x0] >> + add x0, x0, x10 >> + ext v1.16b, v17.16b, v18.16b, #1 >> + ext v2.16b, v17.16b, v18.16b, #2 >> + ext v3.16b, v17.16b, v18.16b, #3 >> + ext v4.16b, v17.16b, v18.16b, #4 >> + ext v5.16b, v17.16b, v18.16b, #5 >> + ext v6.16b, v17.16b, v18.16b, #6 >> + ext v7.16b, v17.16b, v18.16b, #7 >> + QPEL_H_CALC v17, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x15] >> + add x15, x15, x10 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_h48_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + mov x10, #MAX_PB_SIZE * 2 - 64 >> +1: >> + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x1], x2 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_H_CALC v16, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x0], #32 >> + >> + ext v1.16b, v17.16b, v18.16b, #1 >> + ext v2.16b, v17.16b, v18.16b, #2 >> + ext v3.16b, v17.16b, v18.16b, #3 >> + ext v4.16b, v17.16b, v18.16b, #4 >> + ext v5.16b, v17.16b, v18.16b, #5 >> + ext v6.16b, v17.16b, v18.16b, #6 >> + ext v7.16b, v17.16b, v18.16b, #7 >> + QPEL_H_CALC v17, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x0], #32 >> + ext v1.16b, v18.16b, v19.16b, #1 >> + ext v2.16b, v18.16b, v19.16b, #2 >> + ext v3.16b, v18.16b, v19.16b, #3 >> + ext v4.16b, v18.16b, v19.16b, #4 >> + ext v5.16b, v18.16b, v19.16b, #5 >> + ext v6.16b, v18.16b, v19.16b, #6 >> + ext v7.16b, v18.16b, v19.16b, #7 >> + QPEL_H_CALC v18, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x0] >> + add x0, x0, x10 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_h64_8_neon_dotprod, export=1 >> + QPEL_H_HEADER >> + sub x2, x2, #64 >> +1: >> + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x1], #64 >> + ext v1.16b, v16.16b, v17.16b, #1 >> + ext v2.16b, v16.16b, v17.16b, #2 >> + ext v3.16b, v16.16b, v17.16b, #3 >> + ext v4.16b, v16.16b, v17.16b, #4 >> + ext v5.16b, v16.16b, v17.16b, #5 >> + ext v6.16b, v16.16b, v17.16b, #6 >> + ext v7.16b, v16.16b, v17.16b, #7 >> + QPEL_H_CALC v16, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x0], #32 >> + >> + ext v1.16b, v17.16b, v18.16b, #1 >> + ext v2.16b, v17.16b, v18.16b, #2 >> + ext v3.16b, v17.16b, v18.16b, #3 >> + ext v4.16b, v17.16b, v18.16b, #4 >> + ext v5.16b, v17.16b, v18.16b, #5 >> + ext v6.16b, v17.16b, v18.16b, #6 >> + ext v7.16b, v17.16b, v18.16b, #7 >> + QPEL_H_CALC v17, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x0], #32 >> + ext v1.16b, v18.16b, v19.16b, #1 >> + ext v2.16b, v18.16b, v19.16b, #2 >> + ext v3.16b, v18.16b, v19.16b, #3 >> + ext v4.16b, v18.16b, v19.16b, #4 >> + ext v5.16b, v18.16b, v19.16b, #5 >> + ext v6.16b, v18.16b, v19.16b, #6 >> + ext v7.16b, v18.16b, v19.16b, #7 >> + QPEL_H_CALC v18, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x0], #32 >> + ld1 {v28.8b}, [x1], x2 >> + ext v1.16b, v19.16b, v28.16b, #1 >> + ext v2.16b, v19.16b, v28.16b, #2 >> + ext v3.16b, v19.16b, v28.16b, #3 >> + ext v4.16b, v19.16b, v28.16b, #4 >> + ext v5.16b, v19.16b, v28.16b, #5 >> + ext v6.16b, v19.16b, v28.16b, #6 >> + ext v7.16b, v19.16b, v28.16b, #7 >> + QPEL_H_CALC v19, v1, v2, v3, v20, v21, v22, v23 >> + QPEL_H_CALC v4, v5, v6, v7, v24, v25, v26, v27 >> + addp v20.4s, v20.4s, v22.4s >> + addp v21.4s, v21.4s, v23.4s >> + addp v24.4s, v24.4s, v26.4s >> + addp v25.4s, v25.4s, v27.4s >> + trn1 v22.4s, v20.4s, v21.4s >> + trn2 v23.4s, v20.4s, v21.4s >> + trn1 v26.4s, v24.4s, v25.4s >> + trn2 v27.4s, v24.4s, v25.4s >> + sqxtn v20.4h, v22.4s >> + sqxtn2 v20.8h, v26.4s >> + sqxtn v21.4h, v23.4s >> + sqxtn2 v21.8h, v27.4s >> + stp q20, q21, [x0], #32 >> + subs w3, w3, #1 >> + b.ne 1b >> + ret >> +endfunc >> + >> +.macro QPEL_UNI_W_HV_HEADER width >> + ldp x14, x15, [sp] // mx, my >> + ldr w13, [sp, #16] // width >> + stp x20, x21, [sp, #-16]! >> + stp x22, x23, [sp, #-16]! >> + stp x24, x25, [sp, #-16]! >> + stp x26, x27, [sp, #-16]! >> + stp x28, x30, [sp, #-16]! >> + mov x28, sp >> + mov x11, #9088 >> + sub sp, sp, x11 >> + mov x20, x0 >> + mov x21, x1 >> + mov x0, sp >> + sub x1, x2, x3, lsl 1 >> + sub x1, x1, x3 >> + mov x2, x3 >> + add w3, w4, #7 >> + mov w22, w4 // height >> + mov x4, x14 // mx >> + mov x23, x15 // my >> + mov w24, w6 // wx >> + mov w25, w7 // ox >> + mov w26, #-6 >> + sub w26, w26, w5 // -shift >> + mov w27, w13 // width >> + bl X(ff_hevc_put_hevc_qpel_h\width\()_8_neon_dotprod) >> + movrel x9, qpel_filters >> + add x9, x9, x23, lsl 3 >> + ld1 {v0.8b}, [x9] >> + sxtl v0.8h, v0.8b >> + mov x10, #(MAX_PB_SIZE * 2) >> + dup v28.4s, w24 >> + dup v29.4s, w25 >> + dup v30.4s, w26 >> +.endm >> + >> +.macro QPEL_UNI_W_HV_END >> + mov sp, x28 >> + ldp x28, x30, [sp], #16 >> + ldp x26, x27, [sp], #16 >> + ldp x24, x25, [sp], #16 >> + ldp x22, x23, [sp], #16 >> + ldp x20, x21, [sp], #16 >> +.endm >> + >> +.macro QPEL_UNI_W_HV_4 >> + sshr v26.4s, v26.4s, #6 >> + mul v24.4s, v26.4s, v28.4s >> + sqrshl v24.4s, v24.4s, v30.4s >> + sqadd v24.4s, v24.4s, v29.4s >> + sqxtn v24.4h, v24.4s >> + sqxtun v24.8b, v24.8h >> + st1 {v24.s}[0], [x20], x21 >> +.endm >> + >> +.macro QPEL_FILTER_H dst, src0, src1, src2, src3, src4, src5, src6, src7 >> + smull \dst\().4s, \src0\().4h, v0.h[0] >> + smlal \dst\().4s, \src1\().4h, v0.h[1] >> + smlal \dst\().4s, \src2\().4h, v0.h[2] >> + smlal \dst\().4s, \src3\().4h, v0.h[3] >> + smlal \dst\().4s, \src4\().4h, v0.h[4] >> + smlal \dst\().4s, \src5\().4h, v0.h[5] >> + smlal \dst\().4s, \src6\().4h, v0.h[6] >> + smlal \dst\().4s, \src7\().4h, v0.h[7] >> +.endm >> + >> +.macro QPEL_FILTER_H2 dst, src0, src1, src2, src3, src4, src5, src6, >> src7 >> + smull2 \dst\().4s, \src0\().8h, v0.h[0] >> + smlal2 \dst\().4s, \src1\().8h, v0.h[1] >> + smlal2 \dst\().4s, \src2\().8h, v0.h[2] >> + smlal2 \dst\().4s, \src3\().8h, v0.h[3] >> + smlal2 \dst\().4s, \src4\().8h, v0.h[4] >> + smlal2 \dst\().4s, \src5\().8h, v0.h[5] >> + smlal2 \dst\().4s, \src6\().8h, v0.h[6] >> + smlal2 \dst\().4s, \src7\().8h, v0.h[7] >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_uni_w_hv4_8_neon_dotprod, export=1 >> + QPEL_UNI_W_HV_HEADER 4 >> + ldr d16, [sp] >> + ldr d17, [sp, x10] >> + add sp, sp, x10, lsl 1 >> + ldr d18, [sp] >> + ldr d19, [sp, x10] >> + add sp, sp, x10, lsl 1 >> + ldr d20, [sp] >> + ldr d21, [sp, x10] >> + add sp, sp, x10, lsl 1 >> + ldr d22, [sp] >> + add sp, sp, x10 >> +1: >> + ldr d23, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_UNI_W_HV_4 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr d16, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_UNI_W_HV_4 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr d17, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_UNI_W_HV_4 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr d18, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_UNI_W_HV_4 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr d19, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_UNI_W_HV_4 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr d20, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_UNI_W_HV_4 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr d21, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_UNI_W_HV_4 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr d22, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_UNI_W_HV_4 >> + subs w22, w22, #1 >> + b.hi 1b >> + >> +2: >> + QPEL_UNI_W_HV_END >> + ret >> +endfunc >> + >> +.macro QPEL_UNI_W_HV_8 >> + sshr v26.4s, v26.4s, #6 >> + sshr v27.4s, v27.4s, #6 >> + mul v24.4s, v26.4s, v28.4s >> + mul v25.4s, v27.4s, v28.4s >> + sqrshl v24.4s, v24.4s, v30.4s >> + sqrshl v25.4s, v25.4s, v30.4s >> + sqadd v24.4s, v24.4s, v29.4s >> + sqadd v25.4s, v25.4s, v29.4s >> + sqxtn v24.4h, v24.4s >> + sqxtn2 v24.8h, v25.4s >> + sqxtun v24.8b, v24.8h >> + st1 {v24.d}[0], [x20], x21 >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_uni_w_hv8_8_neon_dotprod, export=1 >> + QPEL_UNI_W_HV_HEADER 8 >> + ldr q16, [sp] >> + ldr q17, [sp, x10] >> + add sp, sp, x10, lsl 1 >> + ldr q18, [sp] >> + ldr q19, [sp, x10] >> + add sp, sp, x10, lsl 1 >> + ldr q20, [sp] >> + ldr q21, [sp, x10] >> + add sp, sp, x10, lsl 1 >> + ldr q22, [sp] >> + add sp, sp, x10 >> +1: >> + ldr q23, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_H2 v27, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_UNI_W_HV_8 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr q16, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_H2 v27, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_UNI_W_HV_8 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr q17, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_H2 v27, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_UNI_W_HV_8 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr q18, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_H2 v27, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_UNI_W_HV_8 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr q19, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_H2 v27, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_UNI_W_HV_8 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr q20, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_H2 v27, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_UNI_W_HV_8 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr q21, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_H2 v27, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_UNI_W_HV_8 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldr q22, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v26, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_H2 v27, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_UNI_W_HV_8 >> + subs w22, w22, #1 >> + b.hi 1b >> + >> +2: >> + QPEL_UNI_W_HV_END >> + ret >> +endfunc >> + >> +.macro QPEL_UNI_W_HV_16 >> + sshr v24.4s, v24.4s, #6 >> + sshr v25.4s, v25.4s, #6 >> + sshr v26.4s, v26.4s, #6 >> + sshr v27.4s, v27.4s, #6 >> + mul v24.4s, v24.4s, v28.4s >> + mul v25.4s, v25.4s, v28.4s >> + mul v26.4s, v26.4s, v28.4s >> + mul v27.4s, v27.4s, v28.4s >> + sqrshl v24.4s, v24.4s, v30.4s >> + sqrshl v25.4s, v25.4s, v30.4s >> + sqrshl v26.4s, v26.4s, v30.4s >> + sqrshl v27.4s, v27.4s, v30.4s >> + sqadd v24.4s, v24.4s, v29.4s >> + sqadd v25.4s, v25.4s, v29.4s >> + sqadd v26.4s, v26.4s, v29.4s >> + sqadd v27.4s, v27.4s, v29.4s >> + sqxtn v24.4h, v24.4s >> + sqxtn2 v24.8h, v25.4s >> + sqxtn v26.4h, v26.4s >> + sqxtn2 v26.8h, v27.4s >> + sqxtun v24.8b, v24.8h >> + sqxtun2 v24.16b, v26.8h >> + >> + st1 {v24.16b}, [x20], x21 >> +.endm >> + >> +function ff_hevc_put_hevc_qpel_uni_w_hv16_8_neon_dotprod, export=1 >> + QPEL_UNI_W_HV_HEADER 16 >> + ldp q16, q1, [sp] >> + add sp, sp, x10 >> + ldp q17, q2, [sp] >> + add sp, sp, x10 >> + ldp q18, q3, [sp] >> + add sp, sp, x10 >> + ldp q19, q4, [sp] >> + add sp, sp, x10 >> + ldp q20, q5, [sp] >> + add sp, sp, x10 >> + ldp q21, q6, [sp] >> + add sp, sp, x10 >> + ldp q22, q7, [sp] >> + add sp, sp, x10 >> +1: >> + ldp q23, q31, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_H2 v25, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_H v26, v1, v2, v3, v4, v5, v6, v7, v31 >> + QPEL_FILTER_H2 v27, v1, v2, v3, v4, v5, v6, v7, v31 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q16, q1, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_H2 v25, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_H v26, v2, v3, v4, v5, v6, v7, v31, v1 >> + QPEL_FILTER_H2 v27, v2, v3, v4, v5, v6, v7, v31, v1 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q17, q2, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_H2 v25, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_H v26, v3, v4, v5, v6, v7, v31, v1, v2 >> + QPEL_FILTER_H2 v27, v3, v4, v5, v6, v7, v31, v1, v2 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q18, q3, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_H2 v25, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_H v26, v4, v5, v6, v7, v31, v1, v2, v3 >> + QPEL_FILTER_H2 v27, v4, v5, v6, v7, v31, v1, v2, v3 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q19, q4, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_H2 v25, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_H v26, v5, v6, v7, v31, v1, v2, v3, v4 >> + QPEL_FILTER_H2 v27, v5, v6, v7, v31, v1, v2, v3, v4 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q20, q5, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_H2 v25, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_H v26, v6, v7, v31, v1, v2, v3, v4, v5 >> + QPEL_FILTER_H2 v27, v6, v7, v31, v1, v2, v3, v4, v5 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q21, q6, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_H2 v25, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_H v26, v7, v31, v1, v2, v3, v4, v5, v6 >> + QPEL_FILTER_H2 v27, v7, v31, v1, v2, v3, v4, v5, v6 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q22, q7, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_H2 v25, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_H v26, v31, v1, v2, v3, v4, v5, v6, v7 >> + QPEL_FILTER_H2 v27, v31, v1, v2, v3, v4, v5, v6, v7 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.hi 1b >> + >> +2: >> + QPEL_UNI_W_HV_END >> + ret >> +endfunc >> + >> + >> +function ff_hevc_put_hevc_qpel_uni_w_hv32_8_neon_dotprod, export=1 >> + QPEL_UNI_W_HV_HEADER 32 >> + mov x11, sp >> + mov w12, w22 >> + mov x13, x20 >> +3: >> + ldp q16, q1, [sp] >> + add sp, sp, x10 >> + ldp q17, q2, [sp] >> + add sp, sp, x10 >> + ldp q18, q3, [sp] >> + add sp, sp, x10 >> + ldp q19, q4, [sp] >> + add sp, sp, x10 >> + ldp q20, q5, [sp] >> + add sp, sp, x10 >> + ldp q21, q6, [sp] >> + add sp, sp, x10 >> + ldp q22, q7, [sp] >> + add sp, sp, x10 >> +1: >> + ldp q23, q31, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_H2 v25, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_H v26, v1, v2, v3, v4, v5, v6, v7, v31 >> + QPEL_FILTER_H2 v27, v1, v2, v3, v4, v5, v6, v7, v31 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q16, q1, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_H2 v25, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_H v26, v2, v3, v4, v5, v6, v7, v31, v1 >> + QPEL_FILTER_H2 v27, v2, v3, v4, v5, v6, v7, v31, v1 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q17, q2, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_H2 v25, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_H v26, v3, v4, v5, v6, v7, v31, v1, v2 >> + QPEL_FILTER_H2 v27, v3, v4, v5, v6, v7, v31, v1, v2 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q18, q3, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_H2 v25, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_H v26, v4, v5, v6, v7, v31, v1, v2, v3 >> + QPEL_FILTER_H2 v27, v4, v5, v6, v7, v31, v1, v2, v3 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q19, q4, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_H2 v25, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_H v26, v5, v6, v7, v31, v1, v2, v3, v4 >> + QPEL_FILTER_H2 v27, v5, v6, v7, v31, v1, v2, v3, v4 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q20, q5, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_H2 v25, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_H v26, v6, v7, v31, v1, v2, v3, v4, v5 >> + QPEL_FILTER_H2 v27, v6, v7, v31, v1, v2, v3, v4, v5 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q21, q6, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_H2 v25, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_H v26, v7, v31, v1, v2, v3, v4, v5, v6 >> + QPEL_FILTER_H2 v27, v7, v31, v1, v2, v3, v4, v5, v6 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q22, q7, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_H2 v25, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_H v26, v31, v1, v2, v3, v4, v5, v6, v7 >> + QPEL_FILTER_H2 v27, v31, v1, v2, v3, v4, v5, v6, v7 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.hi 1b >> +2: >> + subs w27, w27, #16 >> + add sp, x11, #32 >> + add x20, x13, #16 >> + mov w22, w12 >> + mov x11, sp >> + mov x13, x20 >> + b.hi 3b >> + QPEL_UNI_W_HV_END >> + ret >> +endfunc >> + >> +function ff_hevc_put_hevc_qpel_uni_w_hv64_8_neon_dotprod, export=1 >> + QPEL_UNI_W_HV_HEADER 64 >> + mov x11, sp >> + mov w12, w22 >> + mov x13, x20 >> +3: >> + ldp q16, q1, [sp] >> + add sp, sp, x10 >> + ldp q17, q2, [sp] >> + add sp, sp, x10 >> + ldp q18, q3, [sp] >> + add sp, sp, x10 >> + ldp q19, q4, [sp] >> + add sp, sp, x10 >> + ldp q20, q5, [sp] >> + add sp, sp, x10 >> + ldp q21, q6, [sp] >> + add sp, sp, x10 >> + ldp q22, q7, [sp] >> + add sp, sp, x10 >> +1: >> + ldp q23, q31, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_H2 v25, v16, v17, v18, v19, v20, v21, v22, v23 >> + QPEL_FILTER_H v26, v1, v2, v3, v4, v5, v6, v7, v31 >> + QPEL_FILTER_H2 v27, v1, v2, v3, v4, v5, v6, v7, v31 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q16, q1, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_H2 v25, v17, v18, v19, v20, v21, v22, v23, v16 >> + QPEL_FILTER_H v26, v2, v3, v4, v5, v6, v7, v31, v1 >> + QPEL_FILTER_H2 v27, v2, v3, v4, v5, v6, v7, v31, v1 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q17, q2, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_H2 v25, v18, v19, v20, v21, v22, v23, v16, v17 >> + QPEL_FILTER_H v26, v3, v4, v5, v6, v7, v31, v1, v2 >> + QPEL_FILTER_H2 v27, v3, v4, v5, v6, v7, v31, v1, v2 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q18, q3, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_H2 v25, v19, v20, v21, v22, v23, v16, v17, v18 >> + QPEL_FILTER_H v26, v4, v5, v6, v7, v31, v1, v2, v3 >> + QPEL_FILTER_H2 v27, v4, v5, v6, v7, v31, v1, v2, v3 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q19, q4, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_H2 v25, v20, v21, v22, v23, v16, v17, v18, v19 >> + QPEL_FILTER_H v26, v5, v6, v7, v31, v1, v2, v3, v4 >> + QPEL_FILTER_H2 v27, v5, v6, v7, v31, v1, v2, v3, v4 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q20, q5, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_H2 v25, v21, v22, v23, v16, v17, v18, v19, v20 >> + QPEL_FILTER_H v26, v6, v7, v31, v1, v2, v3, v4, v5 >> + QPEL_FILTER_H2 v27, v6, v7, v31, v1, v2, v3, v4, v5 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q21, q6, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_H2 v25, v22, v23, v16, v17, v18, v19, v20, v21 >> + QPEL_FILTER_H v26, v7, v31, v1, v2, v3, v4, v5, v6 >> + QPEL_FILTER_H2 v27, v7, v31, v1, v2, v3, v4, v5, v6 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.eq 2f >> + >> + ldp q22, q7, [sp] >> + add sp, sp, x10 >> + QPEL_FILTER_H v24, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_H2 v25, v23, v16, v17, v18, v19, v20, v21, v22 >> + QPEL_FILTER_H v26, v31, v1, v2, v3, v4, v5, v6, v7 >> + QPEL_FILTER_H2 v27, v31, v1, v2, v3, v4, v5, v6, v7 >> + QPEL_UNI_W_HV_16 >> + subs w22, w22, #1 >> + b.hi 1b >> +2: >> + subs w27, w27, #16 >> + add sp, x11, #32 >> + add x20, x13, #16 >> + mov w22, w12 >> + mov x11, sp >> + mov x13, x20 >> + b.hi 3b >> + QPEL_UNI_W_HV_END >> + ret >> +endfunc >> + >> +#endif // __ARM_FEATURE_DOTPROD >> \ No newline at end of file >> -- >> 2.38.0.windows.1 >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --------------THPRe0BGKIferZwPWnsRv0RP Content-Type: text/plain; charset=UTF-8; name="0001-lavc-aarch64-new-optimization-for-8-bit-hevc_pel_uni.patch" Content-Disposition: attachment; filename*0="0001-lavc-aarch64-new-optimization-for-8-bit-hevc_pel_uni.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxMDkyNGM0NTUyMDMxYjlhMzViNTE0Y2RmMTFkNDhlMTIyZTAzMjZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBteWFpcyA8TG9nYW4uTHl1QG15YWlzLmNvbS5jbj4K RGF0ZTogV2VkLCAzIE1heSAyMDIzIDA5OjUzOjA3ICswODAwClN1YmplY3Q6IFtQQVRDSCAx LzNdIGxhdmMvYWFyY2g2NDogbmV3IG9wdGltaXphdGlvbiBmb3IgOC1iaXQKIGhldmNfcGVs X3VuaV93X3BpeGVscyBhbmQgcXBlbF91bmlfd192CgpTaWduZWQtb2ZmLWJ5OiBteWFpcyA8 TG9nYW4uTHl1QG15YWlzLmNvbS5jbj4KLS0tCiBsaWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2Rz cF9pbml0X2FhcmNoNjQuYyB8ICA1NSArKwogbGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3Bf cXBlbF9uZW9uLlMgICAgfCA3MTAgKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBj aGFuZ2VkLCA3NjUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFy Y2g2NC9oZXZjZHNwX2luaXRfYWFyY2g2NC5jIGIvbGliYXZjb2RlYy9hYXJjaDY0L2hldmNk c3BfaW5pdF9hYXJjaDY0LmMKaW5kZXggYmUxMDQ5YTJlYy4uZmQ5NjgxOWI1ZSAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfaW5pdF9hYXJjaDY0LmMKKysrIGIv bGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfaW5pdF9hYXJjaDY0LmMKQEAgLTEyOCw2ICsx MjgsNTcgQEAgdm9pZCBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfYmlfaDE2XzhfbmVvbih1aW50 OF90ICpfZHN0LCBwdHJkaWZmX3QgX2RzdHN0cmlkZSwgY28KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9zcmNzdHJpZGUsIGNvbnN0IGlu dDE2X3QgKnNyYzIsIGludCBoZWlnaHQsIGludHB0cl90CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG14LCBpbnRwdHJfdCBteSwgaW50IHdpZHRoKTsKIAor I2RlZmluZSBORU9OOF9GTlBST1RPKGZuLCBhcmdzLCBleHQpIFwKKyAgICB2b2lkIGZmX2hl dmNfcHV0X2hldmNfIyNmbiMjNF84X25lb24jI2V4dCBhcmdzOyBcCisgICAgdm9pZCBmZl9o ZXZjX3B1dF9oZXZjXyMjZm4jIzZfOF9uZW9uIyNleHQgYXJnczsgXAorICAgIHZvaWQgZmZf aGV2Y19wdXRfaGV2Y18jI2ZuIyM4XzhfbmVvbiMjZXh0IGFyZ3M7IFwKKyAgICB2b2lkIGZm X2hldmNfcHV0X2hldmNfIyNmbiMjMTJfOF9uZW9uIyNleHQgYXJnczsgXAorICAgIHZvaWQg ZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyMxNl84X25lb24jI2V4dCBhcmdzOyBcCisgICAgdm9p ZCBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzI0XzhfbmVvbiMjZXh0IGFyZ3M7IFwKKyAgICB2 b2lkIGZmX2hldmNfcHV0X2hldmNfIyNmbiMjMzJfOF9uZW9uIyNleHQgYXJnczsgXAorICAg IHZvaWQgZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM0OF84X25lb24jI2V4dCBhcmdzOyBcCisg ICAgdm9pZCBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzY0XzhfbmVvbiMjZXh0IGFyZ3M7IFwK KworI2RlZmluZSBORU9OOF9GTlBST1RPX1BBUlRJQUxfNChmbiwgYXJncywgZXh0KSBcCisg ICAgdm9pZCBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzRfOF9uZW9uIyNleHQgYXJnczsgXAor ICAgIHZvaWQgZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM4XzhfbmVvbiMjZXh0IGFyZ3M7IFwK KyAgICB2b2lkIGZmX2hldmNfcHV0X2hldmNfIyNmbiMjMTZfOF9uZW9uIyNleHQgYXJnczsg XAorICAgIHZvaWQgZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM2NF84X25lb24jI2V4dCBhcmdz OyBcCisKK05FT044X0ZOUFJPVE8ocGVsX3VuaV93X3BpeGVscywgKHVpbnQ4X3QgKl9kc3Qs IHB0cmRpZmZfdCBfZHN0c3RyaWRlLAorICAgICAgICBjb25zdCB1aW50OF90ICpfc3JjLCBw dHJkaWZmX3QgX3NyY3N0cmlkZSwKKyAgICAgICAgaW50IGhlaWdodCwgaW50IGRlbm9tLCBp bnQgd3gsIGludCBveCwgCisgICAgICAgIGludHB0cl90IG14LCBpbnRwdHJfdCBteSwgaW50 IHdpZHRoKSwpOworCitORU9OOF9GTlBST1RPX1BBUlRJQUxfNChxcGVsX3VuaV93X3YsICh1 aW50OF90ICpfZHN0LCAgcHRyZGlmZl90IF9kc3RzdHJpZGUsCisgICAgICAgIGNvbnN0IHVp bnQ4X3QgKl9zcmMsIHB0cmRpZmZfdCBfc3Jjc3RyaWRlLAorICAgICAgICBpbnQgaGVpZ2h0 LCBpbnQgZGVub20sIGludCB3eCwgaW50IG94LAorICAgICAgICBpbnRwdHJfdCBteCwgaW50 cHRyX3QgbXksIGludCB3aWR0aCksKTsKKworI2VuZGlmCisKKyNkZWZpbmUgTkVPTjhfRk5B U1NJR04obWVtYmVyLCB2LCBoLCBmbiwgZXh0KSBcCisgICAgICAgIG1lbWJlclsxXVt2XVto XSA9IGZmX2hldmNfcHV0X2hldmNfIyNmbiMjNF84X25lb24jI2V4dDsgIFwKKyAgICAgICAg bWVtYmVyWzJdW3ZdW2hdID0gZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM2XzhfbmVvbiMjZXh0 OyAgXAorICAgICAgICBtZW1iZXJbM11bdl1baF0gPSBmZl9oZXZjX3B1dF9oZXZjXyMjZm4j IzhfOF9uZW9uIyNleHQ7ICBcCisgICAgICAgIG1lbWJlcls0XVt2XVtoXSA9IGZmX2hldmNf cHV0X2hldmNfIyNmbiMjMTJfOF9uZW9uIyNleHQ7IFwKKyAgICAgICAgbWVtYmVyWzVdW3Zd W2hdID0gZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyMxNl84X25lb24jI2V4dDsgXAorICAgICAg ICBtZW1iZXJbNl1bdl1baF0gPSBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzI0XzhfbmVvbiMj ZXh0OyBcCisgICAgICAgIG1lbWJlcls3XVt2XVtoXSA9IGZmX2hldmNfcHV0X2hldmNfIyNm biMjMzJfOF9uZW9uIyNleHQ7IFwKKyAgICAgICAgbWVtYmVyWzhdW3ZdW2hdID0gZmZfaGV2 Y19wdXRfaGV2Y18jI2ZuIyM0OF84X25lb24jI2V4dDsgXAorICAgICAgICBtZW1iZXJbOV1b dl1baF0gPSBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzY0XzhfbmVvbiMjZXh0OworCisjZGVm aW5lIE5FT044X0ZOQVNTSUdOX1BBUlRJQUxfNChtZW1iZXIsIHYsIGgsIGZuLCBleHQpIFwK KyAgICAgICAgbWVtYmVyWzFdW3ZdW2hdID0gZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM0Xzhf bmVvbiMjZXh0OyAgXAorICAgICAgICBtZW1iZXJbMl1bdl1baF0gPSBmZl9oZXZjX3B1dF9o ZXZjXyMjZm4jIzhfOF9uZW9uIyNleHQ7ICBcCisgICAgICAgIG1lbWJlclszXVt2XVtoXSA9 IGZmX2hldmNfcHV0X2hldmNfIyNmbiMjOF84X25lb24jI2V4dDsgIFwKKyAgICAgICAgbWVt YmVyWzRdW3ZdW2hdID0gZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyMxNl84X25lb24jI2V4dDsg XAorICAgICAgICBtZW1iZXJbNV1bdl1baF0gPSBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzE2 XzhfbmVvbiMjZXh0OyBcCisgICAgICAgIG1lbWJlcls2XVt2XVtoXSA9IGZmX2hldmNfcHV0 X2hldmNfIyNmbiMjNjRfOF9uZW9uIyNleHQ7IFwKKyAgICAgICAgbWVtYmVyWzddW3ZdW2hd ID0gZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM2NF84X25lb24jI2V4dDsgXAorICAgICAgICBt ZW1iZXJbOF1bdl1baF0gPSBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzY0XzhfbmVvbiMjZXh0 OyBcCisgICAgICAgIG1lbWJlcls5XVt2XVtoXSA9IGZmX2hldmNfcHV0X2hldmNfIyNmbiMj NjRfOF9uZW9uIyNleHQ7CisKIGF2X2NvbGQgdm9pZCBmZl9oZXZjX2RzcF9pbml0X2FhcmNo NjQoSEVWQ0RTUENvbnRleHQgKmMsIGNvbnN0IGludCBiaXRfZGVwdGgpCiB7CiAgICAgaWYg KCFoYXZlX25lb24oYXZfZ2V0X2NwdV9mbGFncygpKSkgcmV0dXJuOwpAQCAtMTg1LDYgKzIz NiwxMCBAQCBhdl9jb2xkIHZvaWQgZmZfaGV2Y19kc3BfaW5pdF9hYXJjaDY0KEhFVkNEU1BD b250ZXh0ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoKQogICAgICAgICBjLT5wdXRfaGV2Y19x cGVsX2JpWzddWzBdWzFdICAgPQogICAgICAgICBjLT5wdXRfaGV2Y19xcGVsX2JpWzhdWzBd WzFdICAgPQogICAgICAgICBjLT5wdXRfaGV2Y19xcGVsX2JpWzldWzBdWzFdICAgPSBmZl9o ZXZjX3B1dF9oZXZjX3FwZWxfYmlfaDE2XzhfbmVvbjsKKworICAgICAgICBORU9OOF9GTkFT U0lHTihjLT5wdXRfaGV2Y19lcGVsX3VuaV93LCAwLCAwLCBwZWxfdW5pX3dfcGl4ZWxzLCk7 CisgICAgICAgIE5FT044X0ZOQVNTSUdOX1BBUlRJQUxfNChjLT5wdXRfaGV2Y19xcGVsX3Vu aV93LCAxLCAwLCBxcGVsX3VuaV93X3YsKTsKKwogICAgIH0KICAgICBpZiAoYml0X2RlcHRo ID09IDEwKSB7CiAgICAgICAgIGMtPmhldmNfaF9sb29wX2ZpbHRlcl9jaHJvbWEgICA9IGZm X2hldmNfaF9sb29wX2ZpbHRlcl9jaHJvbWFfMTBfbmVvbjsKZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvYWFyY2g2NC9oZXZjZHNwX3FwZWxfbmVvbi5TIGIvbGliYXZjb2RlYy9hYXJjaDY0 L2hldmNkc3BfcXBlbF9uZW9uLlMKaW5kZXggMGU3YjkxMjY3OC4uOWU4M2JjMGUwMSAxMDA2 NDQKLS0tIGEvbGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfcXBlbF9uZW9uLlMKKysrIGIv bGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfcXBlbF9uZW9uLlMKQEAgLTMwLDYgKzMwLDEz IEBAIGNvbnN0IHFwZWxfZmlsdGVycywgYWxpZ249NAogICAgICAgICAuYnl0ZSAgICAgICAg ICAgMCwgIDEsIC01LCAxNywgNTgsLTEwLCA0LCAtMQogZW5kY29uc3QKIAorY29uc3QgcXBl bF9maWx0ZXJzX2FicywgYWxpZ249NAorICAgICAgICAuYnl0ZSAgICAgICAgICAgMCwgIDAs ICAwLCAgMCwgIDAsICAwLCAwLCAgMAorICAgICAgICAuYnl0ZSAgICAgICAgICAgMSwgIDQs IDEwLCA1OCwgMTcsICA1LCAxLCAgMAorICAgICAgICAuYnl0ZSAgICAgICAgICAgMSwgIDQs IDExLCA0MCwgNDAsIDExLCA0LCAgMQorICAgICAgICAuYnl0ZSAgICAgICAgICAgMCwgIDEs ICA1LCAxNywgNTgsIDEwLCA0LCAgMQorZW5kY29uc3QKKwogLm1hY3JvIGxvYWRfZmlsdGVy IG0KICAgICAgICAgbW92cmVsICAgICAgICAgIHgxNSwgcXBlbF9maWx0ZXJzCiAgICAgICAg IGFkZCAgICAgICAgICAgICB4MTUsIHgxNSwgXG0sIGxzbCAjMwpAQCAtNDgyLDMgKzQ4OSw3 MDYgQEAgZW5kZnVuYwogcHV0X2hldmMgcXBlbAogcHV0X2hldmMgcXBlbF91bmkKIHB1dF9o ZXZjIHFwZWxfYmkKKworCitmdW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3BlbF91bmlfd19w aXhlbHM0XzhfbmVvbiwgZXhwb3J0PTEKKyAgICAgICAgbW92ICAgICB3MTAsICMtNgorICAg ICAgICBzdWIgICAgIHcxMCwgdzEwLCB3NQorICAgICAgICBkdXAgICAgIHYzMC44aCwgdzYK KyAgICAgICAgZHVwICAgICB2MzEuNHMsIHcxMAorICAgICAgICBkdXAgICAgIHYyOS44aCwg dzcKKzE6CisgICAgICAgIGxkciAgICAgczAsIFt4Ml0KKyAgICAgICAgbGRyICAgICBzMSwg W3gyLCB4M10KKyAgICAgICAgYWRkICAgICB4MiwgeDIsIHgzLCBsc2wgMQorICAgICAgICB1 c2hsbCAgIHYwLjhoLCB2MC44YiwgIzYKKyAgICAgICAgdXNobGwgICB2MS44aCwgdjEuOGIs ICM2CisgICAgICAgIHNtdWxsICAgdjAuNHMsIHYwLjRoLCB2MzAuNGgKKyAgICAgICAgc211 bGwgICB2MS40cywgdjEuNGgsIHYzMC40aAorICAgICAgICBzcXJzaGwgIHYwLjRzLCB2MC40 cywgdjMxLjRzCisgICAgICAgIHNxcnNobCAgdjEuNHMsIHYxLjRzLCB2MzEuNHMKKyAgICAg ICAgc3FhZGQgICB2MC40cywgdjAuNHMsIHYyOS40cworICAgICAgICBzcWFkZCAgIHYxLjRz LCB2MS40cywgdjI5LjRzCisgICAgICAgIHNxeHRuICB2MC40aCwgdjAuNHMKKyAgICAgICAg c3F4dG4gIHYxLjRoLCB2MS40cworICAgICAgICBzcXh0dW4gIHYwLjhiLCB2MC44aAorICAg ICAgICBzcXh0dW4gIHYxLjhiLCB2MS44aAorICAgICAgICBzdHIgICAgIHMwLCBbeDBdCisg ICAgICAgIHN0ciAgICAgczEsIFt4MCwgeDFdCisgICAgICAgIGFkZCAgICAgeDAsIHgwLCB4 MSwgbHNsIDEKKyAgICAgICAgc3VicyAgICB3NCwgdzQsICMyCisgICAgICAgIGIubmUgICAg MWIKKyAgICAgICAgcmV0CitlbmRmdW5jCisKK2Z1bmN0aW9uIGZmX2hldmNfcHV0X2hldmNf cGVsX3VuaV93X3BpeGVsczZfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBtb3YgICAgIHcx MCwgIy02CisgICAgICAgIHN1YiAgICAgdzEwLCB3MTAsIHc1CisgICAgICAgIGR1cCAgICAg djMwLjhoLCB3NgorICAgICAgICBkdXAgICAgIHYzMS40cywgdzEwCisgICAgICAgIGR1cCAg ICAgdjI5LjRzLCB3NworICAgICAgICBzdWIgICAgIHgxLCB4MSwgIzQKKzE6CisgICAgICAg IGxkciAgICAgZDAsIFt4Ml0KKyAgICAgICAgbGRyICAgICBkMSwgW3gyLCB4M10KKyAgICAg ICAgYWRkICAgICB4MiwgeDIsIHgzLCBsc2wgMQorICAgICAgICB1c2hsbCAgIHYwLjhoLCB2 MC44YiwgIzYKKyAgICAgICAgdXNobGwgICB2MS44aCwgdjEuOGIsICM2CisgICAgICAgIHNt dWxsICAgdjQuNHMsIHYwLjRoLCB2MzAuNGgKKyAgICAgICAgc211bGwyICB2NS40cywgdjAu OGgsIHYzMC44aAorICAgICAgICBzbXVsbCAgIHY2LjRzLCB2MS40aCwgdjMwLjRoCisgICAg ICAgIHNtdWxsMiAgdjcuNHMsIHYxLjhoLCB2MzAuOGgKKyAgICAgICAgc3Fyc2hsICB2NC40 cywgdjQuNHMsIHYzMS40cworICAgICAgICBzcXJzaGwgIHY1LjRzLCB2NS40cywgdjMxLjRz CisgICAgICAgIHNxcnNobCAgdjYuNHMsIHY2LjRzLCB2MzEuNHMKKyAgICAgICAgc3Fyc2hs ICB2Ny40cywgdjcuNHMsIHYzMS40cworICAgICAgICBzcWFkZCAgIHY0LjRzLCB2NC40cywg djI5LjRzCisgICAgICAgIHNxYWRkICAgdjUuNHMsIHY1LjRzLCB2MjkuNHMKKyAgICAgICAg c3FhZGQgICB2Ni40cywgdjYuNHMsIHYyOS40cworICAgICAgICBzcWFkZCAgIHY3LjRzLCB2 Ny40cywgdjI5LjRzCisgICAgICAgIHNxeHRuICAgdjAuNGgsIHY0LjRzCisgICAgICAgIHNx eHRuMiAgdjAuOGgsIHY1LjRzCisgICAgICAgIHNxeHRuICAgdjEuNGgsIHY2LjRzCisgICAg ICAgIHNxeHRuMiAgdjEuOGgsIHY3LjRzCisgICAgICAgIHNxeHR1biAgdjAuOGIsIHYwLjho CisgICAgICAgIHNxeHR1biAgdjEuOGIsIHYxLjhoCisgICAgICAgIHN0ciAgICAgczAsIFt4 MF0sICM0CisgICAgICAgIHN0MSAgICAge3YwLmh9WzJdLCBbeDBdLCB4MQorICAgICAgICBz dHIgICAgIHMxLCBbeDBdLCAjNAorICAgICAgICBzdDEgICAgIHt2MS5ofVsyXSwgW3gwXSwg eDEKKyAgICAgICAgc3VicyAgICB3NCwgdzQsICMyCisgICAgICAgIGIubmUgICAgMWIKKyAg ICAgICAgcmV0IAorZW5kZnVuYworCitmdW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3BlbF91 bmlfd19waXhlbHM4XzhfbmVvbiwgZXhwb3J0PTEKKyAgICAgICAgbW92ICAgICB3MTAsICMt NgorICAgICAgICBzdWIgICAgIHcxMCwgdzEwLCB3NQorICAgICAgICBkdXAgICAgIHYzMC44 aCwgdzYKKyAgICAgICAgZHVwICAgICB2MzEuNHMsIHcxMAorICAgICAgICBkdXAgICAgIHYy OS40cywgdzcKKzE6CisgICAgICAgIGxkciAgICAgZDAsIFt4Ml0KKyAgICAgICAgbGRyICAg ICBkMSwgW3gyLCB4M10KKyAgICAgICAgYWRkICAgICB4MiwgeDIsIHgzLCBsc2wgMQorICAg ICAgICB1c2hsbCAgIHYwLjhoLCB2MC44YiwgIzYKKyAgICAgICAgdXNobGwgICB2MS44aCwg djEuOGIsICM2CisgICAgICAgIHNtdWxsICAgdjQuNHMsIHYwLjRoLCB2MzAuNGgKKyAgICAg ICAgc211bGwyICB2NS40cywgdjAuOGgsIHYzMC44aAorICAgICAgICBzbXVsbCAgIHY2LjRz LCB2MS40aCwgdjMwLjRoCisgICAgICAgIHNtdWxsMiAgdjcuNHMsIHYxLjhoLCB2MzAuOGgK KyAgICAgICAgc3Fyc2hsICB2NC40cywgdjQuNHMsIHYzMS40cworICAgICAgICBzcXJzaGwg IHY1LjRzLCB2NS40cywgdjMxLjRzCisgICAgICAgIHNxcnNobCAgdjYuNHMsIHY2LjRzLCB2 MzEuNHMKKyAgICAgICAgc3Fyc2hsICB2Ny40cywgdjcuNHMsIHYzMS40cworICAgICAgICBz cWFkZCAgIHY0LjRzLCB2NC40cywgdjI5LjRzCisgICAgICAgIHNxYWRkICAgdjUuNHMsIHY1 LjRzLCB2MjkuNHMKKyAgICAgICAgc3FhZGQgICB2Ni40cywgdjYuNHMsIHYyOS40cworICAg ICAgICBzcWFkZCAgIHY3LjRzLCB2Ny40cywgdjI5LjRzCisgICAgICAgIHNxeHRuICAgdjAu NGgsIHY0LjRzCisgICAgICAgIHNxeHRuMiAgdjAuOGgsIHY1LjRzCisgICAgICAgIHNxeHRu ICAgdjEuNGgsIHY2LjRzCisgICAgICAgIHNxeHRuMiAgdjEuOGgsIHY3LjRzCisgICAgICAg IHNxeHR1biAgdjAuOGIsIHYwLjhoCisgICAgICAgIHNxeHR1biAgdjEuOGIsIHYxLjhoCisg ICAgICAgIHN0ciAgICAgZDAsIFt4MF0KKyAgICAgICAgc3RyICAgICBkMSwgW3gwLCB4MV0K KyAgICAgICAgYWRkICAgICB4MCwgeDAsIHgxLCBsc2wgMQorICAgICAgICBzdWJzICAgIHc0 LCB3NCwgIzIKKyAgICAgICAgYi5uZSAgICAxYgorICAgICAgICByZXQKK2VuZGZ1bmMKKwor ZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19wZWxfdW5pX3dfcGl4ZWxzMTJfOF9uZW9uLCBl eHBvcnQ9MQorICAgICAgICBtb3YgICAgIHcxMCwgIy02CisgICAgICAgIHN1YiAgICAgdzEw LCB3MTAsIHc1CisgICAgICAgIGR1cCAgICAgdjMwLjhoLCB3NgorICAgICAgICBkdXAgICAg IHYzMS40cywgdzEwCisgICAgICAgIGR1cCAgICAgdjI5LjRzLCB3NworICAgICAgICBzdWIg ICAgIHgxLCB4MSwgIzgKKzE6CisgICAgICAgIGxkciAgICAgcTAsIFt4Ml0KKyAgICAgICAg bGRyICAgICBxMSwgW3gyLCB4M10KKyAgICAgICAgYWRkICAgICB4MiwgeDIsIHgzLCBsc2wg MQorICAgICAgICB1c2hsbCAgIHY0LjhoLCB2MC44YiwgIzYKKyAgICAgICAgdXNobGwyICB2 NS44aCwgdjAuMTZiLCAjNgorICAgICAgICB1c2hsbCAgIHY2LjhoLCB2MS44YiwgIzYKKyAg ICAgICAgdXNobGwyICB2Ny44aCwgdjEuMTZiLCAjNgorICAgICAgICBzbXVsbCAgIHYxNi40 cywgdjQuNGgsIHYzMC40aAorICAgICAgICBzbXVsbDIgIHYxNy40cywgdjQuOGgsIHYzMC44 aAorICAgICAgICBzbXVsbCAgIHYxOC40cywgdjUuNGgsIHYzMC40aAorICAgICAgICBzbXVs bDIgIHYxOS40cywgdjUuOGgsIHYzMC44aAorICAgICAgICBzbXVsbCAgIHYyMC40cywgdjYu NGgsIHYzMC40aAorICAgICAgICBzbXVsbDIgIHYyMS40cywgdjYuOGgsIHYzMC44aAorICAg ICAgICBzbXVsbCAgIHYyMi40cywgdjcuNGgsIHYzMC40aAorICAgICAgICBzbXVsbDIgIHYy My40cywgdjcuOGgsIHYzMC44aAorICAgICAgICAKKyAgICAgICAgc3Fyc2hsICB2MTYuNHMs IHYxNi40cywgdjMxLjRzCisgICAgICAgIHNxcnNobCAgdjE3LjRzLCB2MTcuNHMsIHYzMS40 cworICAgICAgICBzcXJzaGwgIHYxOC40cywgdjE4LjRzLCB2MzEuNHMKKyAgICAgICAgc3Fy c2hsICB2MTkuNHMsIHYxOS40cywgdjMxLjRzCisgICAgICAgIHNxcnNobCAgdjIwLjRzLCB2 MjAuNHMsIHYzMS40cworICAgICAgICBzcXJzaGwgIHYyMS40cywgdjIxLjRzLCB2MzEuNHMK KyAgICAgICAgc3Fyc2hsICB2MjIuNHMsIHYyMi40cywgdjMxLjRzCisgICAgICAgIHNxcnNo bCAgdjIzLjRzLCB2MjMuNHMsIHYzMS40cworICAgICAgICBzcWFkZCAgIHYxNi40cywgdjE2 LjRzLCB2MjkuNHMKKyAgICAgICAgc3FhZGQgICB2MTcuNHMsIHYxNy40cywgdjI5LjRzCisg ICAgICAgIHNxYWRkICAgdjE4LjRzLCB2MTguNHMsIHYyOS40cworICAgICAgICBzcWFkZCAg IHYxOS40cywgdjE5LjRzLCB2MjkuNHMKKyAgICAgICAgc3FhZGQgICB2MjAuNHMsIHYyMC40 cywgdjI5LjRzCisgICAgICAgIHNxYWRkICAgdjIxLjRzLCB2MjEuNHMsIHYyOS40cworICAg ICAgICBzcWFkZCAgIHYyMi40cywgdjIyLjRzLCB2MjkuNHMKKyAgICAgICAgc3FhZGQgICB2 MjMuNHMsIHYyMy40cywgdjI5LjRzCisgICAgICAgIHNxeHRuICAgdjAuNGgsIHYxNi40cwor ICAgICAgICBzcXh0bjIgIHYwLjhoLCB2MTcuNHMKKyAgICAgICAgc3F4dG4gICB2MS40aCwg djE4LjRzCisgICAgICAgIHNxeHRuMiAgdjEuOGgsIHYxOS40cworICAgICAgICBzcXh0biAg IHYyLjRoLCB2MjAuNHMKKyAgICAgICAgc3F4dG4yICB2Mi44aCwgdjIxLjRzCisgICAgICAg IHNxeHRuICAgdjMuNGgsIHYyMi40cworICAgICAgICBzcXh0bjIgIHYzLjhoLCB2MjMuNHMK KyAgICAgICAgc3F4dHVuICB2MC44YiwgdjAuOGgKKyAgICAgICAgc3F4dHVuMiB2MC4xNmIs IHYxLjhoCisgICAgICAgIHNxeHR1biAgdjIuOGIsIHYyLjhoCisgICAgICAgIHNxeHR1bjIg djIuMTZiLCB2My44aAorICAgICAgICBzdHIgICAgIGQwLCBbeDBdLCAjOAorICAgICAgICBz dDEgICAgIHt2MC5zfVsyXSwgW3gwXSwgeDEKKyAgICAgICAgc3RyICAgICBkMiwgW3gwXSwg IzgKKyAgICAgICAgc3QxICAgICB7djIuc31bMl0sIFt4MF0sIHgxCisgICAgICAgIHN1YnMg ICAgdzQsIHc0LCAjMgorICAgICAgICBiLm5lICAgIDFiCisgICAgICAgIHJldAorZW5kZnVu YworCisubWFjcm8gUEVMX1VOSV9XX1BJWEVMX0NBTEMgICAgIHMwLCB0MCwgdDEsIGQwLCBk MSwgZDIsIGQzCisgICAgICAgIHVzaGxsICAgXHQwXCgpLjhoLCBcczBcKCkuOGIsICM2Cisg ICAgICAgIHVzaGxsMiAgXHQxXCgpLjhoLCBcczBcKCkuMTZiLCAjNgorICAgICAgICBzbXVs bCAgIFxkMFwoKS40cywgXHQwXCgpLjRoLCB2MzAuNGgKKyAgICAgICAgc211bGwyICBcZDFc KCkuNHMsIFx0MFwoKS44aCwgdjMwLjhoCisgICAgICAgIHNtdWxsICAgXGQyXCgpLjRzLCBc dDFcKCkuNGgsIHYzMC40aAorICAgICAgICBzbXVsbDIgIFxkM1woKS40cywgXHQxXCgpLjho LCB2MzAuOGgKKyAgICAgICAgc3Fyc2hsICBcZDBcKCkuNHMsIFxkMFwoKS40cywgdjMxLjRz CisgICAgICAgIHNxcnNobCAgXGQxXCgpLjRzLCBcZDFcKCkuNHMsIHYzMS40cworICAgICAg ICBzcXJzaGwgIFxkMlwoKS40cywgXGQyXCgpLjRzLCB2MzEuNHMKKyAgICAgICAgc3Fyc2hs ICBcZDNcKCkuNHMsIFxkM1woKS40cywgdjMxLjRzCisgICAgICAgIHNxYWRkICAgXGQwXCgp LjRzLCBcZDBcKCkuNHMsIHYyOS40cworICAgICAgICBzcWFkZCAgIFxkMVwoKS40cywgXGQx XCgpLjRzLCB2MjkuNHMKKyAgICAgICAgc3FhZGQgICBcZDJcKCkuNHMsIFxkMlwoKS40cywg djI5LjRzCisgICAgICAgIHNxYWRkICAgXGQzXCgpLjRzLCBcZDNcKCkuNHMsIHYyOS40cwor ICAgICAgICBzcXh0biAgIFx0MFwoKS40aCwgXGQwXCgpLjRzCisgICAgICAgIHNxeHRuMiAg XHQwXCgpLjhoLCBcZDFcKCkuNHMKKyAgICAgICAgc3F4dG4gICBcdDFcKCkuNGgsIFxkMlwo KS40cworICAgICAgICBzcXh0bjIgIFx0MVwoKS44aCwgXGQzXCgpLjRzCisgICAgICAgIHNx eHR1biAgXHMwXCgpLjhiLCAgXHQwXCgpLjhoCisgICAgICAgIHNxeHR1bjIgXHMwXCgpLjE2 YiwgXHQxXCgpLjhoCisuZW5kbQorCisKK2Z1bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcGVs X3VuaV93X3BpeGVsczE2XzhfbmVvbiwgZXhwb3J0PTEKKyAgICAgICAgbW92ICAgICB3MTAs ICMtNgorICAgICAgICBzdWIgICAgIHcxMCwgdzEwLCB3NQorICAgICAgICBkdXAgICAgIHYz MC44aCwgdzYKKyAgICAgICAgZHVwICAgICB2MzEuNHMsIHcxMAorICAgICAgICBkdXAgICAg IHYyOS40cywgdzcKKzE6CisgICAgICAgIGxkciAgICAgcTAsIFt4Ml0KKyAgICAgICAgbGRy ICAgICBxMSwgW3gyLCB4M10KKyAgICAgICAgYWRkICAgICB4MiwgeDIsIHgzLCBsc2wgMQor ICAgICAgICBQRUxfVU5JX1dfUElYRUxfQ0FMQyB2MCwgdjQsIHY1LCB2MTYsIHYxNywgdjE4 LCB2MTkKKyAgICAgICAgUEVMX1VOSV9XX1BJWEVMX0NBTEMgdjEsIHY2LCB2NywgdjIwLCB2 MjEsIHYyMiwgdjIzCisgICAgICAgIHN0ciAgICAgcTAsIFt4MF0KKyAgICAgICAgc3RyICAg ICBxMSwgW3gwLCB4MV0KKyAgICAgICAgYWRkICAgICB4MCwgeDAsIHgxLCBsc2wgMQorICAg ICAgICBzdWJzICAgIHc0LCB3NCwgIzIKKyAgICAgICAgYi5uZSAgICAxYgorICAgICAgICBy ZXQKK2VuZGZ1bmMKKworCisKK2Z1bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcGVsX3VuaV93 X3BpeGVsczI0XzhfbmVvbiwgZXhwb3J0PTEKKyAgICAgICAgbW92ICAgICB3MTAsICMtNgor ICAgICAgICBzdWIgICAgIHcxMCwgdzEwLCB3NQorICAgICAgICBkdXAgICAgIHYzMC44aCwg dzYKKyAgICAgICAgZHVwICAgICB2MzEuNHMsIHcxMAorICAgICAgICBkdXAgICAgIHYyOS40 cywgdzcKKzE6CisgICAgICAgIGxkMSAgICAge3YwLjE2YiwgdjEuMTZifSwgW3gyXSwgeDMK KyAgICAgICAgdXNobGwgICB2NC44aCwgdjAuOGIsICM2CisgICAgICAgIHVzaGxsMiAgdjUu OGgsIHYwLjE2YiwgIzYKKyAgICAgICAgdXNobGwgICB2Ni44aCwgdjEuOGIsICM2CisgICAg ICAgIHNtdWxsICAgdjE2LjRzLCB2NC40aCwgdjMwLjRoCisgICAgICAgIHNtdWxsMiAgdjE3 LjRzLCB2NC44aCwgdjMwLjhoCisgICAgICAgIHNtdWxsICAgdjE4LjRzLCB2NS40aCwgdjMw LjRoCisgICAgICAgIHNtdWxsMiAgdjE5LjRzLCB2NS44aCwgdjMwLjhoCisgICAgICAgIHNt dWxsICAgdjIwLjRzLCB2Ni40aCwgdjMwLjRoCisgICAgICAgIHNtdWxsMiAgdjIxLjRzLCB2 Ni44aCwgdjMwLjhoCisgICAgICAgIHNxcnNobCAgdjE2LjRzLCB2MTYuNHMsIHYzMS40cwor ICAgICAgICBzcXJzaGwgIHYxNy40cywgdjE3LjRzLCB2MzEuNHMKKyAgICAgICAgc3Fyc2hs ICB2MTguNHMsIHYxOC40cywgdjMxLjRzCisgICAgICAgIHNxcnNobCAgdjE5LjRzLCB2MTku NHMsIHYzMS40cworICAgICAgICBzcXJzaGwgIHYyMC40cywgdjIwLjRzLCB2MzEuNHMKKyAg ICAgICAgc3Fyc2hsICB2MjEuNHMsIHYyMS40cywgdjMxLjRzCisgICAgICAgIHNxYWRkICAg djE2LjRzLCB2MTYuNHMsIHYyOS40cworICAgICAgICBzcWFkZCAgIHYxNy40cywgdjE3LjRz LCB2MjkuNHMKKyAgICAgICAgc3FhZGQgICB2MTguNHMsIHYxOC40cywgdjI5LjRzCisgICAg ICAgIHNxYWRkICAgdjE5LjRzLCB2MTkuNHMsIHYyOS40cworICAgICAgICBzcWFkZCAgIHYy MC40cywgdjIwLjRzLCB2MjkuNHMKKyAgICAgICAgc3FhZGQgICB2MjEuNHMsIHYyMS40cywg djI5LjRzCisgICAgICAgIHNxeHRuICAgdjAuNGgsIHYxNi40cworICAgICAgICBzcXh0bjIg IHYwLjhoLCB2MTcuNHMKKyAgICAgICAgc3F4dG4gICB2MS40aCwgdjE4LjRzCisgICAgICAg IHNxeHRuMiAgdjEuOGgsIHYxOS40cworICAgICAgICBzcXh0biAgIHYyLjRoLCB2MjAuNHMK KyAgICAgICAgc3F4dG4yICB2Mi44aCwgdjIxLjRzCisgICAgICAgIHNxeHR1biAgdjAuOGIs IHYwLjhoCisgICAgICAgIHNxeHR1biAgdjEuOGIsIHYxLjhoCisgICAgICAgIHNxeHR1biAg djIuOGIsIHYyLjhoCisgICAgICAgIHN0MSAgICAge3YwLjhiLCB2MS44YiwgdjIuOGJ9LCBb eDBdLCB4MQorICAgICAgICBzdWJzICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5uZSAgICAx YgorICAgICAgICByZXQKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19w ZWxfdW5pX3dfcGl4ZWxzMzJfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBtb3YgICAgIHcx MCwgIy02CisgICAgICAgIHN1YiAgICAgdzEwLCB3MTAsIHc1CisgICAgICAgIGR1cCAgICAg djMwLjhoLCB3NgorICAgICAgICBkdXAgICAgIHYzMS40cywgdzEwCisgICAgICAgIGR1cCAg ICAgdjI5LjRzLCB3NworMToKKyAgICAgICAgbGQxICAgICB7djAuMTZiLCB2MS4xNmJ9LCBb eDJdLCB4MworICAgICAgICBQRUxfVU5JX1dfUElYRUxfQ0FMQyB2MCwgdjQsIHY1LCB2MTYs IHYxNywgdjE4LCB2MTkKKyAgICAgICAgUEVMX1VOSV9XX1BJWEVMX0NBTEMgdjEsIHY2LCB2 NywgdjIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIHN0MSAgICAge3YwLjE2YiwgdjEuMTZi fSwgW3gwXSwgeDEKKyAgICAgICAgc3VicyAgICB3NCwgdzQsICMxCisgICAgICAgIGIubmUg ICAgMWIKKyAgICAgICAgcmV0CitlbmRmdW5jCisKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRf aGV2Y19wZWxfdW5pX3dfcGl4ZWxzNDhfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBtb3Yg ICAgIHcxMCwgIy02CisgICAgICAgIHN1YiAgICAgdzEwLCB3MTAsIHc1CisgICAgICAgIGR1 cCAgICAgdjMwLjhoLCB3NgorICAgICAgICBkdXAgICAgIHYzMS40cywgdzEwCisgICAgICAg IGR1cCAgICAgdjI5LjRzLCB3NworMToKKyAgICAgICAgbGQxICAgICB7djAuMTZiLCB2MS4x NmIsIHYyLjE2Yn0sIFt4Ml0sIHgzCisgICAgICAgIFBFTF9VTklfV19QSVhFTF9DQUxDIHYw LCB2NCwgdjUsIHYxNiwgdjE3LCB2MTgsIHYxOQorICAgICAgICBQRUxfVU5JX1dfUElYRUxf Q0FMQyB2MSwgdjYsIHY3LCB2MjAsIHYyMSwgdjIyLCB2MjMKKyAgICAgICAgUEVMX1VOSV9X X1BJWEVMX0NBTEMgdjIsIHY0LCB2NSwgdjE2LCB2MTcsIHYxOCwgdjE5CisgICAgICAgIHN0 MSAgICAge3YwLjE2YiwgdjEuMTZiLCB2Mi4xNmJ9LCBbeDBdLCB4MQorICAgICAgICBzdWJz ICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5uZSAgICAxYgorICAgICAgICByZXQKK2VuZGZ1 bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19wZWxfdW5pX3dfcGl4ZWxzNjRfOF9u ZW9uLCBleHBvcnQ9MQorICAgICAgICBtb3YgICAgIHcxMCwgIy02CisgICAgICAgIHN1YiAg ICAgdzEwLCB3MTAsIHc1CisgICAgICAgIGR1cCAgICAgdjMwLjhoLCB3NgorICAgICAgICBk dXAgICAgIHYzMS40cywgdzEwCisgICAgICAgIGR1cCAgICAgdjI5LjRzLCB3NworMToKKyAg ICAgICAgbGQxICAgICB7djAuMTZiLCB2MS4xNmIsIHYyLjE2YiwgdjMuMTZifSwgW3gyXSwg eDMKKyAgICAgICAgUEVMX1VOSV9XX1BJWEVMX0NBTEMgdjAsIHY0LCB2NSwgdjE2LCB2MTcs IHYxOCwgdjE5CisgICAgICAgIFBFTF9VTklfV19QSVhFTF9DQUxDIHYxLCB2NiwgdjcsIHYy MCwgdjIxLCB2MjIsIHYyMworICAgICAgICBQRUxfVU5JX1dfUElYRUxfQ0FMQyB2MiwgdjQs IHY1LCB2MTYsIHYxNywgdjE4LCB2MTkKKyAgICAgICAgUEVMX1VOSV9XX1BJWEVMX0NBTEMg djMsIHY2LCB2NywgdjIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIHN0MSAgICAge3YwLjE2 YiwgdjEuMTZiLCB2Mi4xNmIsIHYzLjE2Yn0sIFt4MF0sIHgxCisgICAgICAgIHN1YnMgICAg dzQsIHc0LCAjMQorICAgICAgICBiLm5lICAgIDFiCisgICAgICAgIHJldAorZW5kZnVuYwor CisubWFjcm8gUVBFTF9VTklfV19WX0hFQURFUgorICAgICAgICBsZHVyICAgICAgICAgICAg eDEyLCBbc3AsICM4XSAgICAgICAgICAvLyBteQorICAgICAgICBzdWIgICAgICAgICAgICAg eDIsIHgyLCB4MywgbHNsICMxCisgICAgICAgIHN1YiAgICAgICAgICAgICB4MiwgeDIsIHgz CisgICAgICAgIG1vdnJlbCAgICAgICAgICB4OSwgcXBlbF9maWx0ZXJzX2FicworICAgICAg ICBhZGQgICAgICAgICAgICAgeDksIHg5LCB4MTIsIGxzbCAzCisgICAgICAgIGxkciAgICAg ICAgICAgICBkMjgsIFt4OV0KKyAgICAgICAgZHVwICAgICAgICAgICAgIHYwLjE2YiwgdjI4 LmJbMF0KKyAgICAgICAgZHVwICAgICAgICAgICAgIHYxLjE2YiwgdjI4LmJbMV0KKyAgICAg ICAgZHVwICAgICAgICAgICAgIHYyLjE2YiwgdjI4LmJbMl0KKyAgICAgICAgZHVwICAgICAg ICAgICAgIHYzLjE2YiwgdjI4LmJbM10KKyAgICAgICAgZHVwICAgICAgICAgICAgIHY0LjE2 YiwgdjI4LmJbNF0KKyAgICAgICAgZHVwICAgICAgICAgICAgIHY1LjE2YiwgdjI4LmJbNV0K KyAgICAgICAgZHVwICAgICAgICAgICAgIHY2LjE2YiwgdjI4LmJbNl0KKyAgICAgICAgZHVw ICAgICAgICAgICAgIHY3LjE2YiwgdjI4LmJbN10KKworICAgICAgICBtb3YgICAgICAgICAg ICAgdzEwLCAjLTYKKyAgICAgICAgc3ViICAgICAgICAgICAgIHcxMCwgdzEwLCB3NQorICAg ICAgICBkdXAgICAgICAgICAgICAgdjMwLjhoLCB3NiAgICAgICAgICAgICAgLy8gd3gKKyAg ICAgICAgZHVwICAgICAgICAgICAgIHYzMS40cywgdzEwICAgICAgICAgICAgIC8vIHNoaWZ0 CisgICAgICAgIGR1cCAgICAgICAgICAgICB2MjkuNHMsIHc3ICAgICAgICAgICAgICAvLyBv eAorLmVuZG0KKworLm1hY3JvIFFQRUxfRklMVEVSX0IgZHN0LCBzcmMwLCBzcmMxLCBzcmMy LCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3CisgICAgICAgIHVtdWxsICAgICAgICAg ICBcZHN0XCgpLjhoLCBcc3JjMVwoKS44YiwgdjEuOGIKKyAgICAgICAgdW1sc2wgICAgICAg ICAgIFxkc3RcKCkuOGgsIFxzcmMwXCgpLjhiLCB2MC44YgorICAgICAgICB1bWxzbCAgICAg ICAgICAgXGRzdFwoKS44aCwgXHNyYzJcKCkuOGIsIHYyLjhiCisgICAgICAgIHVtbGFsICAg ICAgICAgICBcZHN0XCgpLjhoLCBcc3JjM1woKS44YiwgdjMuOGIKKyAgICAgICAgdW1sYWwg ICAgICAgICAgIFxkc3RcKCkuOGgsIFxzcmM0XCgpLjhiLCB2NC44YgorICAgICAgICB1bWxz bCAgICAgICAgICAgXGRzdFwoKS44aCwgXHNyYzVcKCkuOGIsIHY1LjhiCisgICAgICAgIHVt bGFsICAgICAgICAgICBcZHN0XCgpLjhoLCBcc3JjNlwoKS44YiwgdjYuOGIKKyAgICAgICAg dW1sc2wgICAgICAgICAgIFxkc3RcKCkuOGgsIFxzcmM3XCgpLjhiLCB2Ny44YgorLmVuZG0K KworLm1hY3JvIFFQRUxfRklMVEVSX0IyIGRzdCwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywg c3JjNCwgc3JjNSwgc3JjNiwgc3JjNworICAgICAgICB1bXVsbDIgICAgICAgICAgXGRzdFwo KS44aCwgXHNyYzFcKCkuMTZiLCB2MS4xNmIKKyAgICAgICAgdW1sc2wyICAgICAgICAgIFxk c3RcKCkuOGgsIFxzcmMwXCgpLjE2YiwgdjAuMTZiCisgICAgICAgIHVtbHNsMiAgICAgICAg ICBcZHN0XCgpLjhoLCBcc3JjMlwoKS4xNmIsIHYyLjE2YgorICAgICAgICB1bWxhbDIgICAg ICAgICAgXGRzdFwoKS44aCwgXHNyYzNcKCkuMTZiLCB2My4xNmIKKyAgICAgICAgdW1sYWwy ICAgICAgICAgIFxkc3RcKCkuOGgsIFxzcmM0XCgpLjE2YiwgdjQuMTZiCisgICAgICAgIHVt bHNsMiAgICAgICAgICBcZHN0XCgpLjhoLCBcc3JjNVwoKS4xNmIsIHY1LjE2YgorICAgICAg ICB1bWxhbDIgICAgICAgICAgXGRzdFwoKS44aCwgXHNyYzZcKCkuMTZiLCB2Ni4xNmIKKyAg ICAgICAgdW1sc2wyICAgICAgICAgIFxkc3RcKCkuOGgsIFxzcmM3XCgpLjE2YiwgdjcuMTZi CisuZW5kbQorCisubWFjcm8gIFFQRUxfVU5JX1dfVl80CisgICAgICAgIHNtdWxsICAgICAg ICAgICB2MjQuNHMsIHYyNC40aCwgdjMwLjRoCisgICAgICAgIHNxcnNobCAgICAgICAgICB2 MjQuNHMsIHYyNC40cywgdjMxLjRzCisgICAgICAgIHNxYWRkICAgICAgICAgICB2MjQuNHMs IHYyNC40cywgdjI5LjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjQuNGgsIHYyNC40 cworICAgICAgICBzcXh0dW4gICAgICAgICAgdjI0LjhiLCB2MjQuOGgKKyAgICAgICAgc3Qx ICAgICAgICAgICAgIHt2MjQuc31bMF0sIFt4MF0sIHgxCisuZW5kbQorCitmdW5jdGlvbiBm Zl9oZXZjX3B1dF9oZXZjX3FwZWxfdW5pX3dfdjRfOF9uZW9uLCBleHBvcnQ9MQorICAgICAg ICBRUEVMX1VOSV9XX1ZfSEVBREVSCisgICAgICAgIGxkciAgICAgICAgICAgICBzMTYsIFt4 Ml0KKyAgICAgICAgbGRyICAgICAgICAgICAgIHMxNywgW3gyLCB4M10KKyAgICAgICAgYWRk ICAgICAgICAgICAgIHgyLCB4MiwgeDMsIGxzbCAxCisgICAgICAgIGxkciAgICAgICAgICAg ICBzMTgsIFt4Ml0KKyAgICAgICAgbGRyICAgICAgICAgICAgIHMxOSwgW3gyLCB4M10KKyAg ICAgICAgYWRkICAgICAgICAgICAgIHgyLCB4MiwgeDMsIGxzbCAxCisgICAgICAgIGxkciAg ICAgICAgICAgICBzMjAsIFt4Ml0KKyAgICAgICAgbGRyICAgICAgICAgICAgIHMyMSwgW3gy LCB4M10KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgyLCB4MiwgeDMsIGxzbCAxCisgICAg ICAgIGxkciAgICAgICAgICAgICBzMjIsIFt4Ml0KKworMTogICAgICBsZHIgICAgICAgICAg ICAgczIzLCBbeDIsIHgzXQorICAgICAgICBhZGQgICAgICAgICAgICAgeDIsIHgyLCB4Mywg bHNsIDEKKyAgICAgICAgUVBFTF9GSUxURVJfQiAgICAgdjI0LCB2MTYsIHYxNywgdjE4LCB2 MTksIHYyMCwgdjIxLCB2MjIsIHYyMworICAgICAgICBRUEVMX1VOSV9XX1ZfNAorICAgICAg ICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMQorICAgICAgICBiLmVxICAgICAgICAgICAg MmYKKworICAgICAgICBsZHIgICAgICAgICAgICAgczE2LCBbeDJdCisgICAgICAgIFFQRUxf RklMVEVSX0IgICAgIHYyNCwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2 MTYKKyAgICAgICAgUVBFTF9VTklfV19WXzQKKyAgICAgICAgc3VicyAgICAgICAgICAgIHc0 LCB3NCwgIzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAgICAgICAgbGRyICAg ICAgICAgICAgIHMxNywgW3gyLCB4M10KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgyLCB4 MiwgeDMsIGxzbCAxCisgICAgICAgIFFQRUxfRklMVEVSX0IgICAgIHYyNCwgdjE4LCB2MTks IHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcKKyAgICAgICAgUVBFTF9VTklfV19WXzQK KyAgICAgICAgc3VicyAgICAgICAgICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5lcSAgICAg ICAgICAgIDJmCisKKyAgICAgICAgbGRyICAgICAgICAgICAgIHMxOCwgW3gyXQorICAgICAg ICBRUEVMX0ZJTFRFUl9CICAgICB2MjQsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYs IHYxNywgdjE4CisgICAgICAgIFFQRUxfVU5JX1dfVl80CisgICAgICAgIHN1YnMgICAgICAg ICAgICB3NCwgdzQsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAg IGxkciAgICAgICAgICAgICBzMTksIFt4MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAg ICB4MiwgeDIsIHgzLCBsc2wgMQorICAgICAgICBRUEVMX0ZJTFRFUl9CICAgICB2MjQsIHYy MCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5CisgICAgICAgIFFQRUxfVU5J X1dfVl80CisgICAgICAgIHN1YnMgICAgICAgICAgICB3NCwgdzQsICMxCisgICAgICAgIGIu ZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBzMjAsIFt4Ml0K KyAgICAgICAgUVBFTF9GSUxURVJfQiAgICAgdjI0LCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYx NywgdjE4LCB2MTksIHYyMAorICAgICAgICBRUEVMX1VOSV9XX1ZfNAorICAgICAgICBzdWJz ICAgICAgICAgICAgdzQsIHc0LCAjMQorICAgICAgICBiLmVxICAgICAgICAgICAgMmYKKwor ICAgICAgICBsZHIgICAgICAgICAgICAgczIxLCBbeDIsIHgzXQorICAgICAgICBhZGQgICAg ICAgICAgICAgeDIsIHgyLCB4MywgbHNsIDEKKyAgICAgICAgUVBFTF9GSUxURVJfQiAgICAg djI0LCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMQorICAgICAgICBR UEVMX1VOSV9XX1ZfNAorICAgICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMQorICAg ICAgICBiLmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHIgICAgICAgICAgICAgczIy LCBbeDJdCisgICAgICAgIFFQRUxfRklMVEVSX0IgICAgIHYyNCwgdjIzLCB2MTYsIHYxNywg djE4LCB2MTksIHYyMCwgdjIxLCB2MjIKKyAgICAgICAgUVBFTF9VTklfV19WXzQKKyAgICAg ICAgc3VicyAgICAgICAgICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5uZSAgICAgICAgICAg IDFiCisyOgorICAgICAgICByZXQKK2VuZGZ1bmMKKworLm1hY3JvIFFQRUxfVU5JX1dfVl84 CisgICAgICAgIHNtdWxsICAgICAgICAgICB2MjQuNHMsIHYyNi40aCwgdjMwLjRoCisgICAg ICAgIHNtdWxsMiAgICAgICAgICB2MjUuNHMsIHYyNi44aCwgdjMwLjhoCisgICAgICAgIHNx cnNobCAgICAgICAgICB2MjQuNHMsIHYyNC40cywgdjMxLjRzCisgICAgICAgIHNxcnNobCAg ICAgICAgICB2MjUuNHMsIHYyNS40cywgdjMxLjRzCisgICAgICAgIHNxYWRkICAgICAgICAg ICB2MjQuNHMsIHYyNC40cywgdjI5LjRzCisgICAgICAgIHNxYWRkICAgICAgICAgICB2MjUu NHMsIHYyNS40cywgdjI5LjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjQuNGgsIHYy NC40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjI0LjhoLCB2MjUuNHMKKyAgICAgICAg c3F4dHVuICAgICAgICAgIHYyNC44YiwgdjI0LjhoCisgICAgICAgIHN0MSAgICAgICAgICAg ICB7djI0LmR9WzBdLCBbeDBdLCB4MQorLmVuZG0KKworZnVuY3Rpb24gZmZfaGV2Y19wdXRf aGV2Y19xcGVsX3VuaV93X3Y4XzhfbmVvbiwgZXhwb3J0PTEKKyAgICAgICAgUVBFTF9VTklf V19WX0hFQURFUgorICAgICAgICBsZHIgICAgICAgICAgICAgZDE2LCBbeDJdCisgICAgICAg IGxkciAgICAgICAgICAgICBkMTcsIFt4MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAg ICB4MiwgeDIsIHgzLCBsc2wgMQorICAgICAgICBsZHIgICAgICAgICAgICAgZDE4LCBbeDJd CisgICAgICAgIGxkciAgICAgICAgICAgICBkMTksIFt4MiwgeDNdCisgICAgICAgIGFkZCAg ICAgICAgICAgICB4MiwgeDIsIHgzLCBsc2wgMQorICAgICAgICBsZHIgICAgICAgICAgICAg ZDIwLCBbeDJdCisgICAgICAgIGxkciAgICAgICAgICAgICBkMjEsIFt4MiwgeDNdCisgICAg ICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBsc2wgMQorICAgICAgICBsZHIgICAg ICAgICAgICAgZDIyLCBbeDJdCisKKzE6ICAgICAgbGRyICAgICAgICAgICAgIGQyMywgW3gy LCB4M10KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgyLCB4MiwgeDMsIGxzbCAxCisgICAg ICAgIFFQRUxfRklMVEVSX0IgICAgIHYyNiwgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYy MSwgdjIyLCB2MjMKKyAgICAgICAgUVBFTF9VTklfV19WXzgKKyAgICAgICAgc3VicyAgICAg ICAgICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAgICAg ICAgbGRyICAgICAgICAgICAgIGQxNiwgW3gyXQorICAgICAgICBRUEVMX0ZJTFRFUl9CICAg ICB2MjYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2CisgICAgICAg IFFQRUxfVU5JX1dfVl84CisgICAgICAgIHN1YnMgICAgICAgICAgICB3NCwgdzQsICMxCisg ICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBk MTcsIFt4MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBsc2wg MQorICAgICAgICBRUEVMX0ZJTFRFUl9CICAgICB2MjYsIHYxOCwgdjE5LCB2MjAsIHYyMSwg djIyLCB2MjMsIHYxNiwgdjE3CisgICAgICAgIFFQRUxfVU5JX1dfVl84CisgICAgICAgIHN1 YnMgICAgICAgICAgICB3NCwgdzQsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgor CisgICAgICAgIGxkciAgICAgICAgICAgICBkMTgsIFt4Ml0KKyAgICAgICAgUVBFTF9GSUxU RVJfQiAgICAgdjI2LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOAor ICAgICAgICBRUEVMX1VOSV9XX1ZfOAorICAgICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0 LCAjMQorICAgICAgICBiLmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHIgICAgICAg ICAgICAgZDE5LCBbeDIsIHgzXQorICAgICAgICBhZGQgICAgICAgICAgICAgeDIsIHgyLCB4 MywgbHNsIDEKKyAgICAgICAgUVBFTF9GSUxURVJfQiAgICAgdjI2LCB2MjAsIHYyMSwgdjIy LCB2MjMsIHYxNiwgdjE3LCB2MTgsIHYxOQorICAgICAgICBRUEVMX1VOSV9XX1ZfOAorICAg ICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMQorICAgICAgICBiLmVxICAgICAgICAg ICAgMmYKKworICAgICAgICBsZHIgICAgICAgICAgICAgZDIwLCBbeDJdCisgICAgICAgIFFQ RUxfRklMVEVSX0IgICAgIHYyNiwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5 LCB2MjAKKyAgICAgICAgUVBFTF9VTklfV19WXzgKKyAgICAgICAgc3VicyAgICAgICAgICAg IHc0LCB3NCwgIzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAgICAgICAgbGRy ICAgICAgICAgICAgIGQyMSwgW3gyLCB4M10KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgy LCB4MiwgeDMsIGxzbCAxCisgICAgICAgIFFQRUxfRklMVEVSX0IgICAgIHYyNiwgdjIyLCB2 MjMsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEKKyAgICAgICAgUVBFTF9VTklfV19W XzgKKyAgICAgICAgc3VicyAgICAgICAgICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5lcSAg ICAgICAgICAgIDJmCisKKyAgICAgICAgbGRyICAgICAgICAgICAgIGQyMiwgW3gyXQorICAg ICAgICBRUEVMX0ZJTFRFUl9CICAgICB2MjYsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2 MjAsIHYyMSwgdjIyCisgICAgICAgIFFQRUxfVU5JX1dfVl84CisgICAgICAgIHN1YnMgICAg ICAgICAgICB3NCwgdzQsICMxCisgICAgICAgIGIubmUgICAgICAgICAgICAxYgorMjoKKyAg ICAgICAgcmV0CitlbmRmdW5jCisKKy5tYWNybyBRUEVMX1VOSV9XX1ZfMTYKKyAgICAgICAg c211bGwgICAgICAgICAgIHYyNC40cywgdjI2LjRoLCB2MzAuNGgKKyAgICAgICAgc211bGwy ICAgICAgICAgIHYyNS40cywgdjI2LjhoLCB2MzAuOGgKKyAgICAgICAgc211bGwgICAgICAg ICAgIHYyNi40cywgdjI3LjRoLCB2MzAuNGgKKyAgICAgICAgc211bGwyICAgICAgICAgIHYy Ny40cywgdjI3LjhoLCB2MzAuOGgKKyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYyNC40cywg djI0LjRzLCB2MzEuNHMKKyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYyNS40cywgdjI1LjRz LCB2MzEuNHMKKyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYyNi40cywgdjI2LjRzLCB2MzEu NHMKKyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYyNy40cywgdjI3LjRzLCB2MzEuNHMKKyAg ICAgICAgc3FhZGQgICAgICAgICAgIHYyNC40cywgdjI0LjRzLCB2MjkuNHMKKyAgICAgICAg c3FhZGQgICAgICAgICAgIHYyNS40cywgdjI1LjRzLCB2MjkuNHMKKyAgICAgICAgc3FhZGQg ICAgICAgICAgIHYyNi40cywgdjI2LjRzLCB2MjkuNHMKKyAgICAgICAgc3FhZGQgICAgICAg ICAgIHYyNy40cywgdjI3LjRzLCB2MjkuNHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYy NC40aCwgdjI0LjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2MjQuOGgsIHYyNS40cwor ICAgICAgICBzcXh0biAgICAgICAgICAgdjI2LjRoLCB2MjYuNHMKKyAgICAgICAgc3F4dG4y ICAgICAgICAgIHYyNi44aCwgdjI3LjRzCisgICAgICAgIHNxeHR1biAgICAgICAgICB2MjQu OGIsIHYyNC44aAorICAgICAgICBzcXh0dW4yICAgICAgICAgdjI0LjE2YiwgdjI2LjhoCisg ICAgICAgIHN0MSAgICAgICAgICAgICB7djI0LjE2Yn0sIFt4MF0sIHgxCisuZW5kbQorCitm dW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfdW5pX3dfdjE2XzhfbmVvbiwgZXhwb3J0 PTEKKyAgICAgICAgUVBFTF9VTklfV19WX0hFQURFUgorICAgICAgICBsZHIgICAgICAgICAg ICAgcTE2LCBbeDJdCisgICAgICAgIGxkciAgICAgICAgICAgICBxMTcsIFt4MiwgeDNdCisg ICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBsc2wgMQorICAgICAgICBsZHIg ICAgICAgICAgICAgcTE4LCBbeDJdCisgICAgICAgIGxkciAgICAgICAgICAgICBxMTksIFt4 MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBsc2wgMQorICAg ICAgICBsZHIgICAgICAgICAgICAgcTIwLCBbeDJdCisgICAgICAgIGxkciAgICAgICAgICAg ICBxMjEsIFt4MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBs c2wgMQorICAgICAgICBsZHIgICAgICAgICAgICAgcTIyLCBbeDJdCisKKzE6ICAgICAgbGRy ICAgICAgICAgICAgIHEyMywgW3gyLCB4M10KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgy LCB4MiwgeDMsIGxzbCAxCisgICAgICAgIFFQRUxfRklMVEVSX0IgICAgIHYyNiwgdjE2LCB2 MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMKKyAgICAgICAgUVBFTF9GSUxURVJf QjIgICAgdjI3LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMworICAg ICAgICBRUEVMX1VOSV9XX1ZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAgIHc0LCB3NCwg IzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAgICAgICAgbGRyICAgICAgICAg ICAgIHExNiwgW3gyXQorICAgICAgICBRUEVMX0ZJTFRFUl9CICAgICB2MjYsIHYxNywgdjE4 LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2CisgICAgICAgIFFQRUxfRklMVEVSX0Iy ICAgIHYyNywgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYKKyAgICAg ICAgUVBFTF9VTklfV19WXzE2CisgICAgICAgIHN1YnMgICAgICAgICAgICB3NCwgdzQsICMx CisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAg ICBxMTcsIFt4MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBs c2wgMQorICAgICAgICBRUEVMX0ZJTFRFUl9CICAgICB2MjYsIHYxOCwgdjE5LCB2MjAsIHYy MSwgdjIyLCB2MjMsIHYxNiwgdjE3CisgICAgICAgIFFQRUxfRklMVEVSX0IyICAgIHYyNywg djE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcKKyAgICAgICAgUVBFTF9V TklfV19WXzE2CisgICAgICAgIHN1YnMgICAgICAgICAgICB3NCwgdzQsICMxCisgICAgICAg IGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBxMTgsIFt4 Ml0KKyAgICAgICAgUVBFTF9GSUxURVJfQiAgICAgdjI2LCB2MTksIHYyMCwgdjIxLCB2MjIs IHYyMywgdjE2LCB2MTcsIHYxOAorICAgICAgICBRUEVMX0ZJTFRFUl9CMiAgICB2MjcsIHYx OSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4CisgICAgICAgIFFQRUxfVU5J X1dfVl8xNgorICAgICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMQorICAgICAgICBi LmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHIgICAgICAgICAgICAgcTE5LCBbeDIs IHgzXQorICAgICAgICBhZGQgICAgICAgICAgICAgeDIsIHgyLCB4MywgbHNsIDEKKyAgICAg ICAgUVBFTF9GSUxURVJfQiAgICAgdjI2LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYxNiwgdjE3 LCB2MTgsIHYxOQorICAgICAgICBRUEVMX0ZJTFRFUl9CMiAgICB2MjcsIHYyMCwgdjIxLCB2 MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5CisgICAgICAgIFFQRUxfVU5JX1dfVl8xNgor ICAgICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMQorICAgICAgICBiLmVxICAgICAg ICAgICAgMmYKKworICAgICAgICBsZHIgICAgICAgICAgICAgcTIwLCBbeDJdCisgICAgICAg IFFQRUxfRklMVEVSX0IgICAgIHYyNiwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwg djE5LCB2MjAKKyAgICAgICAgUVBFTF9GSUxURVJfQjIgICAgdjI3LCB2MjEsIHYyMiwgdjIz LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMAorICAgICAgICBRUEVMX1VOSV9XX1ZfMTYKKyAg ICAgICAgc3VicyAgICAgICAgICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5lcSAgICAgICAg ICAgIDJmCisKKyAgICAgICAgbGRyICAgICAgICAgICAgIHEyMSwgW3gyLCB4M10KKyAgICAg ICAgYWRkICAgICAgICAgICAgIHgyLCB4MiwgeDMsIGxzbCAxCisgICAgICAgIFFQRUxfRklM VEVSX0IgICAgIHYyNiwgdjIyLCB2MjMsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEK KyAgICAgICAgUVBFTF9GSUxURVJfQjIgICAgdjI3LCB2MjIsIHYyMywgdjE2LCB2MTcsIHYx OCwgdjE5LCB2MjAsIHYyMQorICAgICAgICBRUEVMX1VOSV9XX1ZfMTYKKyAgICAgICAgc3Vi cyAgICAgICAgICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisK KyAgICAgICAgbGRyICAgICAgICAgICAgIHEyMiwgW3gyXQorICAgICAgICBRUEVMX0ZJTFRF Ul9CICAgICB2MjYsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyCisg ICAgICAgIFFQRUxfRklMVEVSX0IyICAgIHYyNywgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTks IHYyMCwgdjIxLCB2MjIKKyAgICAgICAgUVBFTF9VTklfV19WXzE2CisgICAgICAgIHN1YnMg ICAgICAgICAgICB3NCwgdzQsICMxCisgICAgICAgIGIubmUgICAgICAgICAgICAxYgorMjoK KyAgICAgICAgcmV0CitlbmRmdW5jCisKK2Z1bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcXBl bF91bmlfd192NjRfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBRUEVMX1VOSV9XX1ZfSEVB REVSCisgICAgICAgIGxkdXIgICAgICAgICAgICB3MTMsIFtzcCwgIzE2XQorICAgICAgICBt b3YgICAgICAgICAgICAgeDE0LCB4MAorICAgICAgICBtb3YgICAgICAgICAgICAgeDE1LCB4 MgorICAgICAgICBtb3YgICAgICAgICAgICAgdzExLCB3NAorCiszOgorICAgICAgICBsZHIg ICAgICAgICAgICAgcTE2LCBbeDJdCisgICAgICAgIGxkciAgICAgICAgICAgICBxMTcsIFt4 MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBsc2wgMQorICAg ICAgICBsZHIgICAgICAgICAgICAgcTE4LCBbeDJdCisgICAgICAgIGxkciAgICAgICAgICAg ICBxMTksIFt4MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBs c2wgMQorICAgICAgICBsZHIgICAgICAgICAgICAgcTIwLCBbeDJdCisgICAgICAgIGxkciAg ICAgICAgICAgICBxMjEsIFt4MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4Miwg eDIsIHgzLCBsc2wgMQorICAgICAgICBsZHIgICAgICAgICAgICAgcTIyLCBbeDJdCisKKwor MTogICAgICBsZHIgICAgICAgICAgICAgcTIzLCBbeDIsIHgzXQorICAgICAgICBhZGQgICAg ICAgICAgICAgeDIsIHgyLCB4MywgbHNsIDEKKyAgICAgICAgUVBFTF9GSUxURVJfQiAgICAg djI2LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMworICAgICAgICBR UEVMX0ZJTFRFUl9CMiAgICB2MjcsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYy MiwgdjIzCisgICAgICAgIFFQRUxfVU5JX1dfVl8xNgorICAgICAgICBzdWJzICAgICAgICAg ICAgdzQsIHc0LCAjMQorICAgICAgICBiLmVxICAgICAgICAgICAgMmYKKworICAgICAgICBs ZHIgICAgICAgICAgICAgcTE2LCBbeDJdCisgICAgICAgIFFQRUxfRklMVEVSX0IgICAgIHYy NiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYKKyAgICAgICAgUVBF TF9GSUxURVJfQjIgICAgdjI3LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMs IHYxNgorICAgICAgICBRUEVMX1VOSV9XX1ZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAg IHc0LCB3NCwgIzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAgICAgICAgbGRy ICAgICAgICAgICAgIHExNywgW3gyLCB4M10KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgy LCB4MiwgeDMsIGxzbCAxCisgICAgICAgIFFQRUxfRklMVEVSX0IgICAgIHYyNiwgdjE4LCB2 MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcKKyAgICAgICAgUVBFTF9GSUxURVJf QjIgICAgdjI3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNworICAg ICAgICBRUEVMX1VOSV9XX1ZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAgIHc0LCB3NCwg IzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAgICAgICAgbGRyICAgICAgICAg ICAgIHExOCwgW3gyXQorICAgICAgICBRUEVMX0ZJTFRFUl9CICAgICB2MjYsIHYxOSwgdjIw LCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4CisgICAgICAgIFFQRUxfRklMVEVSX0Iy ICAgIHYyNywgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYxNiwgdjE3LCB2MTgKKyAgICAg ICAgUVBFTF9VTklfV19WXzE2CisgICAgICAgIHN1YnMgICAgICAgICAgICB3NCwgdzQsICMx CisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAg ICBxMTksIFt4MiwgeDNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsIHgzLCBs c2wgMQorICAgICAgICBRUEVMX0ZJTFRFUl9CICAgICB2MjYsIHYyMCwgdjIxLCB2MjIsIHYy MywgdjE2LCB2MTcsIHYxOCwgdjE5CisgICAgICAgIFFQRUxfRklMVEVSX0IyICAgIHYyNywg djIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTkKKyAgICAgICAgUVBFTF9V TklfV19WXzE2CisgICAgICAgIHN1YnMgICAgICAgICAgICB3NCwgdzQsICMxCisgICAgICAg IGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBxMjAsIFt4 Ml0KKyAgICAgICAgUVBFTF9GSUxURVJfQiAgICAgdjI2LCB2MjEsIHYyMiwgdjIzLCB2MTYs IHYxNywgdjE4LCB2MTksIHYyMAorICAgICAgICBRUEVMX0ZJTFRFUl9CMiAgICB2MjcsIHYy MSwgdjIyLCB2MjMsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwCisgICAgICAgIFFQRUxfVU5J X1dfVl8xNgorICAgICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMQorICAgICAgICBi LmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHIgICAgICAgICAgICAgcTIxLCBbeDIs IHgzXQorICAgICAgICBhZGQgICAgICAgICAgICAgeDIsIHgyLCB4MywgbHNsIDEKKyAgICAg ICAgUVBFTF9GSUxURVJfQiAgICAgdjI2LCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5 LCB2MjAsIHYyMQorICAgICAgICBRUEVMX0ZJTFRFUl9CMiAgICB2MjcsIHYyMiwgdjIzLCB2 MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxCisgICAgICAgIFFQRUxfVU5JX1dfVl8xNgor ICAgICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMQorICAgICAgICBiLmVxICAgICAg ICAgICAgMmYKKworICAgICAgICBsZHIgICAgICAgICAgICAgcTIyLCBbeDJdCisgICAgICAg IFFQRUxfRklMVEVSX0IgICAgIHYyNiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwg djIxLCB2MjIKKyAgICAgICAgUVBFTF9GSUxURVJfQjIgICAgdjI3LCB2MjMsIHYxNiwgdjE3 LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMgorICAgICAgICBRUEVMX1VOSV9XX1ZfMTYKKyAg ICAgICAgc3VicyAgICAgICAgICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5uZSAgICAgICAg ICAgIDFiCisyOgorICAgICAgICBzdWJzICAgICAgICAgICAgdzEzLCB3MTMsICMxNgorICAg ICAgICBhZGQgICAgICAgICAgICAgeDE0LCB4MTQsICMxNgorICAgICAgICBhZGQgICAgICAg ICAgICAgeDE1LCB4MTUsICMxNgorICAgICAgICBtb3YgICAgICAgICAgICAgeDAsIHgxNAor ICAgICAgICBtb3YgICAgICAgICAgICAgeDIsIHgxNQorICAgICAgICBtb3YgICAgICAgICAg ICAgdzQsIHcxMQorICAgICAgICBiLmhpICAgICAgICAgICAgM2IKKyAgICAgICAgcmV0Citl bmRmdW5jCi0tIAoyLjM4LjAud2luZG93cy4xCgo= --------------THPRe0BGKIferZwPWnsRv0RP Content-Type: text/plain; charset=UTF-8; name="0002-lavc-aarch64-new-optimization-for-8-bit-hevc_qpel_un.patch" Content-Disposition: attachment; filename*0="0002-lavc-aarch64-new-optimization-for-8-bit-hevc_qpel_un.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkNGU3ZTNjNmEzOGZiOGIxMzY4ODY5NGM1NTgwZmZkMGJhYmE1NWNiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBteWFpcyA8TG9nYW4uTHl1QG15YWlzLmNvbS5jbj4K RGF0ZTogV2VkLCAzIE1heSAyMDIzIDA5OjU4OjE0ICswODAwClN1YmplY3Q6IFtQQVRDSCAy LzNdIGxhdmMvYWFyY2g2NDogbmV3IG9wdGltaXphdGlvbiBmb3IgOC1iaXQKIGhldmNfcXBl bF91bmlfd19oCgpTaWduZWQtb2ZmLWJ5OiBteWFpcyA8TG9nYW4uTHl1QG15YWlzLmNvbS5j bj4KLS0tCiBsaWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9pbml0X2FhcmNoNjQuYyB8ICAy MCArCiBsaWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9xcGVsX25lb24uUyAgICB8IDQzNCAr KysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ1NCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfaW5pdF9hYXJj aDY0LmMgYi9saWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9pbml0X2FhcmNoNjQuYwppbmRl eCBmZDk2ODE5YjVlLi4xNDYyY2EzNWRmIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FhcmNo NjQvaGV2Y2RzcF9pbml0X2FhcmNoNjQuYworKysgYi9saWJhdmNvZGVjL2FhcmNoNjQvaGV2 Y2RzcF9pbml0X2FhcmNoNjQuYwpAQCAtMTQ1LDYgKzE0NSwxNCBAQCB2b2lkIGZmX2hldmNf cHV0X2hldmNfcXBlbF9iaV9oMTZfOF9uZW9uKHVpbnQ4X3QgKl9kc3QsIHB0cmRpZmZfdCBf ZHN0c3RyaWRlLCBjbwogICAgIHZvaWQgZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyMxNl84X25l b24jI2V4dCBhcmdzOyBcCiAgICAgdm9pZCBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzY0Xzhf bmVvbiMjZXh0IGFyZ3M7IFwKIAorI2RlZmluZSBORU9OOF9GTlBST1RPX1BBUlRJQUxfNShm biwgYXJncywgZXh0KSBcCisgICAgdm9pZCBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzRfOF9u ZW9uIyNleHQgYXJnczsgXAorICAgIHZvaWQgZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM4Xzhf bmVvbiMjZXh0IGFyZ3M7IFwKKyAgICB2b2lkIGZmX2hldmNfcHV0X2hldmNfIyNmbiMjMTZf OF9uZW9uIyNleHQgYXJnczsgXAorICAgIHZvaWQgZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyMz Ml84X25lb24jI2V4dCBhcmdzOyBcCisgICAgdm9pZCBmZl9oZXZjX3B1dF9oZXZjXyMjZm4j IzY0XzhfbmVvbiMjZXh0IGFyZ3M7IFwKKworCiBORU9OOF9GTlBST1RPKHBlbF91bmlfd19w aXhlbHMsICh1aW50OF90ICpfZHN0LCBwdHJkaWZmX3QgX2RzdHN0cmlkZSwKICAgICAgICAg Y29uc3QgdWludDhfdCAqX3NyYywgcHRyZGlmZl90IF9zcmNzdHJpZGUsCiAgICAgICAgIGlu dCBoZWlnaHQsIGludCBkZW5vbSwgaW50IHd4LCBpbnQgb3gsIApAQCAtMTU1LDYgKzE2Mywx MyBAQCBORU9OOF9GTlBST1RPX1BBUlRJQUxfNChxcGVsX3VuaV93X3YsICh1aW50OF90ICpf ZHN0LCAgcHRyZGlmZl90IF9kc3RzdHJpZGUsCiAgICAgICAgIGludCBoZWlnaHQsIGludCBk ZW5vbSwgaW50IHd4LCBpbnQgb3gsCiAgICAgICAgIGludHB0cl90IG14LCBpbnRwdHJfdCBt eSwgaW50IHdpZHRoKSwpOwogCisjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0RPVFBST0Qp CisKK05FT044X0ZOUFJPVE8ocXBlbF91bmlfd19oLCAodWludDhfdCAqX2RzdCwgIHB0cmRp ZmZfdCBfZHN0c3RyaWRlLAorICAgICAgICBjb25zdCB1aW50OF90ICpfc3JjLCBwdHJkaWZm X3QgX3NyY3N0cmlkZSwKKyAgICAgICAgaW50IGhlaWdodCwgaW50IGRlbm9tLCBpbnQgd3gs IGludCBveCwKKyAgICAgICAgaW50cHRyX3QgbXgsIGludHB0cl90IG15LCBpbnQgd2lkdGgp LCBfZG90cHJvZCk7CisKICNlbmRpZgogCiAjZGVmaW5lIE5FT044X0ZOQVNTSUdOKG1lbWJl ciwgdiwgaCwgZm4sIGV4dCkgXApAQCAtMTc5LDYgKzE5NCw3IEBAIE5FT044X0ZOUFJPVE9f UEFSVElBTF80KHFwZWxfdW5pX3dfdiwgKHVpbnQ4X3QgKl9kc3QsICBwdHJkaWZmX3QgX2Rz dHN0cmlkZSwKICAgICAgICAgbWVtYmVyWzhdW3ZdW2hdID0gZmZfaGV2Y19wdXRfaGV2Y18j I2ZuIyM2NF84X25lb24jI2V4dDsgXAogICAgICAgICBtZW1iZXJbOV1bdl1baF0gPSBmZl9o ZXZjX3B1dF9oZXZjXyMjZm4jIzY0XzhfbmVvbiMjZXh0OwogCisKIGF2X2NvbGQgdm9pZCBm Zl9oZXZjX2RzcF9pbml0X2FhcmNoNjQoSEVWQ0RTUENvbnRleHQgKmMsIGNvbnN0IGludCBi aXRfZGVwdGgpCiB7CiAgICAgaWYgKCFoYXZlX25lb24oYXZfZ2V0X2NwdV9mbGFncygpKSkg cmV0dXJuOwpAQCAtMjQwLDYgKzI1NiwxMCBAQCBhdl9jb2xkIHZvaWQgZmZfaGV2Y19kc3Bf aW5pdF9hYXJjaDY0KEhFVkNEU1BDb250ZXh0ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoKQog ICAgICAgICBORU9OOF9GTkFTU0lHTihjLT5wdXRfaGV2Y19lcGVsX3VuaV93LCAwLCAwLCBw ZWxfdW5pX3dfcGl4ZWxzLCk7CiAgICAgICAgIE5FT044X0ZOQVNTSUdOX1BBUlRJQUxfNChj LT5wdXRfaGV2Y19xcGVsX3VuaV93LCAxLCAwLCBxcGVsX3VuaV93X3YsKTsKIAorICAgICNp ZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRE9UUFJPRCkKKyAgICAgICAgTkVPTjhfRk5BU1NJ R04oYy0+cHV0X2hldmNfcXBlbF91bmlfdywgMCwgMSwgcXBlbF91bmlfd19oLCBfZG90cHJv ZCk7CisKKyAgICAjZW5kaWYKICAgICB9CiAgICAgaWYgKGJpdF9kZXB0aCA9PSAxMCkgewog ICAgICAgICBjLT5oZXZjX2hfbG9vcF9maWx0ZXJfY2hyb21hICAgPSBmZl9oZXZjX2hfbG9v cF9maWx0ZXJfY2hyb21hXzEwX25lb247CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FhcmNo NjQvaGV2Y2RzcF9xcGVsX25lb24uUyBiL2xpYmF2Y29kZWMvYWFyY2g2NC9oZXZjZHNwX3Fw ZWxfbmVvbi5TCmluZGV4IDllODNiYzBlMDEuLmM2ZWIxM2FkOTggMTAwNjQ0Ci0tLSBhL2xp YmF2Y29kZWMvYWFyY2g2NC9oZXZjZHNwX3FwZWxfbmVvbi5TCisrKyBiL2xpYmF2Y29kZWMv YWFyY2g2NC9oZXZjZHNwX3FwZWxfbmVvbi5TCkBAIC0xMTkyLDMgKzExOTIsNDM3IEBAIGZ1 bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcXBlbF91bmlfd192NjRfOF9uZW9uLCBleHBvcnQ9 MQogICAgICAgICBiLmhpICAgICAgICAgICAgM2IKICAgICAgICAgcmV0CiBlbmRmdW5jCisK KyNpZiBfX0FSTV9GRUFUVVJFX0RPVFBST0QKKy5tYWNybyBRUEVMX1VOSV9XX0hfSEVBREVS CisgICAgICAgIGxkciAgICAgICAgICAgICB4MTIsIFtzcF0KKyAgICAgICAgc3ViICAgICAg ICAgICAgIHgyLCB4MiwgIzMKKyAgICAgICAgbW92cmVsICAgICAgICAgIHg5LCBxcGVsX2Zp bHRlcnMKKyAgICAgICAgYWRkICAgICAgICAgICAgIHg5LCB4OSwgeDEyLCBsc2wgMworICAg ICAgICBsZHIgICAgICAgICAgICAgeDExLCBbeDldCisgICAgICAgIGR1cCAgICAgICAgICAg ICB2MjguMmQsIHgxMQorICAgICAgICBtb3YgICAgICAgICAgICAgdzEwLCAjLTYKKyAgICAg ICAgc3ViICAgICAgICAgICAgIHcxMCwgdzEwLCB3NQorICAgICAgICBkdXAgICAgICAgICAg ICAgdjMwLjRzLCB3NiAgICAgICAgICAgICAgLy8gd3gKKyAgICAgICAgZHVwICAgICAgICAg ICAgIHYzMS40cywgdzEwICAgICAgICAgICAgIC8vIHNoaWZ0CisgICAgICAgIGR1cCAgICAg ICAgICAgICB2MjkuNHMsIHc3ICAgICAgICAgICAgICAvLyBveAorLmVuZG0KKworZnVuY3Rp b24gZmZfaGV2Y19wdXRfaGV2Y19xcGVsX3VuaV93X2g0XzhfbmVvbl9kb3Rwcm9kLCBleHBv cnQ9MQorICAgICAgICBRUEVMX1VOSV9XX0hfSEVBREVSCisxOgorICAgICAgICBsZDEgICAg ICAgICAgICAge3YwLjE2Yn0sIFt4Ml0sIHgzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2 MS4xNmIsIHYwLjE2YiwgdjAuMTZiLCAjMQorICAgICAgICBleHQgICAgICAgICAgICAgdjIu MTZiLCB2MC4xNmIsIHYwLjE2YiwgIzIKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYzLjE2 YiwgdjAuMTZiLCB2MC4xNmIsICMzCisgICAgICAgIHppcDEgICAgICAgICAgICB2MC4yZCwg djAuMmQsIHYxLjJkCisgICAgICAgIHppcDEgICAgICAgICAgICB2Mi4yZCwgdjIuMmQsIHYz LjJkCisgICAgICAgIG1vdmkgICAgICAgICAgICB2MTYuMmQsICMwCisgICAgICAgIG1vdmkg ICAgICAgICAgICB2MTcuMmQsICMwCisgICAgICAgIHVzZG90ICAgICAgICAgICB2MTYuNHMs IHYwLjE2YiwgdjI4LjE2YgorICAgICAgICB1c2RvdCAgICAgICAgICAgdjE3LjRzLCB2Mi4x NmIsIHYyOC4xNmIKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYxNi40cywgdjE2LjRzLCB2 MTcuNHMKKyAgICAgICAgbXVsICAgICAgICAgICAgIHYxNi40cywgdjE2LjRzLCB2MzAuNHMK KyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYxNi40cywgdjE2LjRzLCB2MzEuNHMKKyAgICAg ICAgc3FhZGQgICAgICAgICAgIHYxNi40cywgdjE2LjRzLCB2MjkuNHMKKyAgICAgICAgc3F4 dG4gICAgICAgICAgIHYxNi40aCwgdjE2LjRzCisgICAgICAgIHNxeHR1biAgICAgICAgICB2 MTYuOGIsIHYxNi44aAorICAgICAgICBzdHIgICAgICAgICAgICAgczE2LCBbeDBdCisgICAg ICAgIGFkZCAgICAgICAgICAgICB4MCwgeDAsIHgxCisgICAgICAgIHN1YnMgICAgICAgICAg ICB3NCwgdzQsICMxCisgICAgICAgIGIuaGkgICAgICAgICAgICAxYgorICAgICAgICByZXQK K2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19xcGVsX3VuaV93X2g2Xzhf bmVvbl9kb3Rwcm9kLCBleHBvcnQ9MQorICAgICAgICBRUEVMX1VOSV9XX0hfSEVBREVSCisg ICAgICAgIHN1YiAgICAgICAgICAgICB4MSwgeDEsICM0CisxOgorICAgICAgICBsZDEgICAg ICAgICAgICAge3YwLjE2Yn0sIFt4Ml0sIHgzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2 MS4xNmIsIHYwLjE2YiwgdjAuMTZiLCAjMQorICAgICAgICBleHQgICAgICAgICAgICAgdjIu MTZiLCB2MC4xNmIsIHYwLjE2YiwgIzIKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYzLjE2 YiwgdjAuMTZiLCB2MC4xNmIsICMzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2NC4xNmIs IHYwLjE2YiwgdjAuMTZiLCAjNAorICAgICAgICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2 MC4xNmIsIHYwLjE2YiwgIzUKKyAgICAgICAgemlwMSAgICAgICAgICAgIHYwLjJkLCB2MC4y ZCwgdjEuMmQKKyAgICAgICAgemlwMSAgICAgICAgICAgIHYyLjJkLCB2Mi4yZCwgdjMuMmQK KyAgICAgICAgemlwMSAgICAgICAgICAgIHY0LjJkLCB2NC4yZCwgdjUuMmQKKyAgICAgICAg bW92aSAgICAgICAgICAgIHYxNi4yZCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHYx Ny4yZCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHYxOC4yZCwgIzAKKyAgICAgICAg dXNkb3QgICAgICAgICAgIHYxNi40cywgdjAuMTZiLCB2MjguMTZiCisgICAgICAgIHVzZG90 ICAgICAgICAgICB2MTcuNHMsIHYyLjE2YiwgdjI4LjE2YgorICAgICAgICB1c2RvdCAgICAg ICAgICAgdjE4LjRzLCB2NC4xNmIsIHYyOC4xNmIKKyAgICAgICAgYWRkcCAgICAgICAgICAg IHYxNi40cywgdjE2LjRzLCB2MTcuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYxOC40 cywgdjE4LjRzLCB2MTguNHMKKyAgICAgICAgbXVsICAgICAgICAgICAgIHYxNi40cywgdjE2 LjRzLCB2MzAuNHMKKyAgICAgICAgbXVsICAgICAgICAgICAgIHYxOC4ycywgdjE4LjJzLCB2 MzAuMnMKKyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYxNi40cywgdjE2LjRzLCB2MzEuNHMK KyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYxOC4ycywgdjE4LjJzLCB2MzEuMnMKKyAgICAg ICAgc3FhZGQgICAgICAgICAgIHYxNi40cywgdjE2LjRzLCB2MjkuNHMKKyAgICAgICAgc3Fh ZGQgICAgICAgICAgIHYxOC4ycywgdjE4LjJzLCB2MjkuMnMKKyAgICAgICAgc3F4dG4gICAg ICAgICAgIHYxNi40aCwgdjE2LjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2MTYuOGgs IHYxOC40cworICAgICAgICBzcXh0dW4gICAgICAgICAgdjE2LjhiLCB2MTYuOGgKKyAgICAg ICAgc3RyICAgICAgICAgICAgIHMxNiwgW3gwXSwgIzQKKyAgICAgICAgc3QxICAgICAgICAg ICAgIHt2MTYuaH1bMl0sIFt4MF0sIHgxCisgICAgICAgIHN1YnMgICAgICAgICAgICB3NCwg dzQsICMxCisgICAgICAgIGIuaGkgICAgICAgICAgICAxYgorICAgICAgICByZXQKK2VuZGZ1 bmMKKworCisubWFjcm8gIFFQRUxfVU5JX1dfSF9DQUxDIHMwLCBzMSwgczIsIHMzLCBkMCwg ZDEsIGQyLCBkMworICAgICAgICBtb3ZpICAgICAgICAgICAgXGQwXCgpLjJkLCAjMAorICAg ICAgICBtb3ZpICAgICAgICAgICAgXGQxXCgpLjJkLCAjMAorICAgICAgICBtb3ZpICAgICAg ICAgICAgXGQyXCgpLjJkLCAjMAorICAgICAgICBtb3ZpICAgICAgICAgICAgXGQzXCgpLjJk LCAjMAorICAgICAgICB1c2RvdCAgICAgICAgICAgXGQwXCgpLjRzLCBcczBcKCkuMTZiLCB2 MjguMTZiCisgICAgICAgIHVzZG90ICAgICAgICAgICBcZDFcKCkuNHMsIFxzMVwoKS4xNmIs IHYyOC4xNmIKKyAgICAgICAgdXNkb3QgICAgICAgICAgIFxkMlwoKS40cywgXHMyXCgpLjE2 YiwgdjI4LjE2YgorICAgICAgICB1c2RvdCAgICAgICAgICAgXGQzXCgpLjRzLCBcczNcKCku MTZiLCB2MjguMTZiCisgICAgICAgIGFkZHAgICAgICAgICAgICBcZDBcKCkuNHMsIFxkMFwo KS40cywgXGQxXCgpLjRzCisgICAgICAgIGFkZHAgICAgICAgICAgICBcZDJcKCkuNHMsIFxk MlwoKS40cywgXGQzXCgpLjRzCisgICAgICAgIG11bCAgICAgICAgICAgICBcZDBcKCkuNHMs IFxkMFwoKS40cywgdjMwLjRzCisgICAgICAgIG11bCAgICAgICAgICAgICBcZDJcKCkuNHMs IFxkMlwoKS40cywgdjMwLjRzCisgICAgICAgIHNxcnNobCAgICAgICAgICBcZDBcKCkuNHMs IFxkMFwoKS40cywgdjMxLjRzCisgICAgICAgIHNxcnNobCAgICAgICAgICBcZDJcKCkuNHMs IFxkMlwoKS40cywgdjMxLjRzCisgICAgICAgIHNxYWRkICAgICAgICAgICBcZDBcKCkuNHMs IFxkMFwoKS40cywgdjI5LjRzCisgICAgICAgIHNxYWRkICAgICAgICAgICBcZDJcKCkuNHMs IFxkMlwoKS40cywgdjI5LjRzCisuZW5kbQorCisubWFjcm8gIFFQRUxfVU5JX1dfSF9DQUxD X0hBTEYgczAsIHMxLCBkMCwgZDEKKyAgICAgICAgbW92aSAgICAgICAgICAgIFxkMFwoKS4y ZCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIFxkMVwoKS4yZCwgIzAKKyAgICAgICAg dXNkb3QgICAgICAgICAgIFxkMFwoKS40cywgXHMwXCgpLjE2YiwgdjI4LjE2YgorICAgICAg ICB1c2RvdCAgICAgICAgICAgXGQxXCgpLjRzLCBcczFcKCkuMTZiLCB2MjguMTZiCisgICAg ICAgIGFkZHAgICAgICAgICAgICBcZDBcKCkuNHMsIFxkMFwoKS40cywgXGQxXCgpLjRzCisg ICAgICAgIG11bCAgICAgICAgICAgICBcZDBcKCkuNHMsIFxkMFwoKS40cywgdjMwLjRzCisg ICAgICAgIHNxcnNobCAgICAgICAgICBcZDBcKCkuNHMsIFxkMFwoKS40cywgdjMxLjRzCisg ICAgICAgIHNxYWRkICAgICAgICAgICBcZDBcKCkuNHMsIFxkMFwoKS40cywgdjI5LjRzCisu ZW5kbQorCisKK2Z1bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcXBlbF91bmlfd19oOF84X25l b25fZG90cHJvZCwgZXhwb3J0PTEKKyAgICAgICAgUVBFTF9VTklfV19IX0hFQURFUgorMToK KyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTYuMTZiLCB2MTcuMTZifSwgW3gyXSwgeDMK KyAgICAgICAgZXh0ICAgICAgICAgICAgIHYxLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzEK KyAgICAgICAgZXh0ICAgICAgICAgICAgIHYyLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzIK KyAgICAgICAgZXh0ICAgICAgICAgICAgIHYzLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzMK KyAgICAgICAgZXh0ICAgICAgICAgICAgIHY0LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzQK KyAgICAgICAgZXh0ICAgICAgICAgICAgIHY1LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzUK KyAgICAgICAgZXh0ICAgICAgICAgICAgIHY2LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzYK KyAgICAgICAgZXh0ICAgICAgICAgICAgIHY3LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzcK KyAgICAgICAgemlwMSAgICAgICAgICAgIHYwLjJkLCB2MTYuMmQsIHYxLjJkCisgICAgICAg IHppcDEgICAgICAgICAgICB2Mi4yZCwgdjIuMmQsIHYzLjJkCisgICAgICAgIHppcDEgICAg ICAgICAgICB2NC4yZCwgdjQuMmQsIHY1LjJkCisgICAgICAgIHppcDEgICAgICAgICAgICB2 Ni4yZCwgdjYuMmQsIHY3LjJkCisgICAgICAgIFFQRUxfVU5JX1dfSF9DQUxDICB2MCwgdjIs IHY0LCB2NiwgIHYxOCwgdjE5LCB2MjAsIHYyMQorICAgICAgICBzcXh0biAgICAgICAgICAg djE4LjRoLCB2MTguNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYxOC44aCwgdjIwLjRz CisgICAgICAgIHNxeHR1biAgICAgICAgICB2MTguOGIsIHYxOC44aAorICAgICAgICBzdHIg ICAgICAgICAgICAgZDE4LCBbeDBdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MCwgeDAs IHgxCisgICAgICAgIHN1YnMgICAgICAgICAgICB3NCwgdzQsICMxCisgICAgICAgIGIuaGkg ICAgICAgICAgICAxYgorICAgICAgICByZXQKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2 Y19wdXRfaGV2Y19xcGVsX3VuaV93X2gxMl84X25lb25fZG90cHJvZCwgZXhwb3J0PTEKKyAg ICAgICAgUVBFTF9VTklfV19IX0hFQURFUgorICAgICAgICBhZGQgICAgICAgICAgICAgeDEz LCB4MCwgIzgKKzE6CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE2LjE2YiwgdjE3LjE2 Yn0sIFt4Ml0sIHgzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2MS4xNmIsIHYxNi4xNmIs IHYxNy4xNmIsICMxCisgICAgICAgIGV4dCAgICAgICAgICAgICB2Mi4xNmIsIHYxNi4xNmIs IHYxNy4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAgICAgICB2My4xNmIsIHYxNi4xNmIs IHYxNy4xNmIsICMzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2NC4xNmIsIHYxNi4xNmIs IHYxNy4xNmIsICM0CisgICAgICAgIGV4dCAgICAgICAgICAgICB2NS4xNmIsIHYxNi4xNmIs IHYxNy4xNmIsICM1CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ni4xNmIsIHYxNi4xNmIs IHYxNy4xNmIsICM2CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ny4xNmIsIHYxNi4xNmIs IHYxNy4xNmIsICM3CisgICAgICAgIHppcDEgICAgICAgICAgICB2MTguMmQsIHYxNi4yZCwg djEuMmQKKyAgICAgICAgemlwMSAgICAgICAgICAgIHYxOS4yZCwgdjIuMmQsIHYzLjJkCisg ICAgICAgIHppcDEgICAgICAgICAgICB2MjAuMmQsIHY0LjJkLCB2NS4yZAorICAgICAgICB6 aXAxICAgICAgICAgICAgdjIxLjJkLCB2Ni4yZCwgdjcuMmQKKyAgICAgICAgemlwMiAgICAg ICAgICAgIHYyMi4yZCwgdjE2LjJkLCB2MS4yZAorICAgICAgICB6aXAyICAgICAgICAgICAg djIzLjJkLCB2Mi4yZCwgdjMuMmQKKyAgICAgICAgUVBFTF9VTklfV19IX0NBTEMgIHYxOCwg djE5LCB2MjAsIHYyMSwgdjAsIHYyLCB2NCwgdjYKKyAgICAgICAgUVBFTF9VTklfV19IX0NB TENfSEFMRiB2MjIsIHYyMywgdjI0LCB2MjUKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYw LjRoLCB2MC40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjAuOGgsIHY0LjRzCisgICAg ICAgIHNxeHRuICAgICAgICAgICB2MS40aCwgdjI0LjRzCisgICAgICAgIHNxeHR1biAgICAg ICAgICB2MC44YiwgdjAuOGgKKyAgICAgICAgc3F4dHVuICAgICAgICAgIHYxLjhiLCB2MS44 aAorCisgICAgICAgIHN0ciAgICAgICAgICAgICBkMCwgW3gwXQorICAgICAgICBzdHIgICAg ICAgICAgICAgczEsIFt4MTNdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MCwgeDAsIHgx CisgICAgICAgIGFkZCAgICAgICAgICAgICB4MTMsIHgxMywgeDEKKyAgICAgICAgc3VicyAg ICAgICAgICAgIHc0LCB3NCwgIzEKKyAgICAgICAgYi5oaSAgICAgICAgICAgIDFiCisgICAg ICAgIHJldAorZW5kZnVuYworCitmdW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfdW5p X3dfaDE2XzhfbmVvbl9kb3Rwcm9kLCBleHBvcnQ9MQorICAgICAgICBRUEVMX1VOSV9XX0hf SEVBREVSCisxOgorICAgICAgICBsZDEgICAgICAgICAgICAge3YxNi4xNmIsIHYxNy4xNmJ9 LCBbeDJdLCB4MworICAgICAgICBleHQgICAgICAgICAgICAgdjEuMTZiLCB2MTYuMTZiLCB2 MTcuMTZiLCAjMQorICAgICAgICBleHQgICAgICAgICAgICAgdjIuMTZiLCB2MTYuMTZiLCB2 MTcuMTZiLCAjMgorICAgICAgICBleHQgICAgICAgICAgICAgdjMuMTZiLCB2MTYuMTZiLCB2 MTcuMTZiLCAjMworICAgICAgICBleHQgICAgICAgICAgICAgdjQuMTZiLCB2MTYuMTZiLCB2 MTcuMTZiLCAjNAorICAgICAgICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2MTYuMTZiLCB2 MTcuMTZiLCAjNQorICAgICAgICBleHQgICAgICAgICAgICAgdjYuMTZiLCB2MTYuMTZiLCB2 MTcuMTZiLCAjNgorICAgICAgICBleHQgICAgICAgICAgICAgdjcuMTZiLCB2MTYuMTZiLCB2 MTcuMTZiLCAjNworICAgICAgICBRUEVMX1VOSV9XX0hfQ0FMQyAgdjE2LCB2MiwgdjEsIHYz LCB2MTgsIHYxOSwgdjIwLCB2MjEgICAvLyB2MTg6IDAsIDgsIDIsIDEwIHYyMDogMSwgOSwg MywgMTEKKyAgICAgICAgUVBFTF9VTklfV19IX0NBTEMgIHY0LCB2NiwgdjUsIHY3LCB2MjIs IHYyMywgdjI0LCB2MjUgICAgLy8gdjIyOiA0LCAxMiwgNiwgMTQgdjI0OiA1LCAxMywgNywg MTUKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYwLjRoLCB2MTguNHMKKyAgICAgICAgc3F4 dG4yICAgICAgICAgIHYwLjhoLCB2MjIuNHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYx LjRoLCB2MjAuNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYxLjhoLCB2MjQuNHMKKyAg ICAgICAgdHJuMSAgICAgICAgICAgIHYyLjhoLCB2MC44aCwgdjEuOGgKKyAgICAgICAgdHJu MiAgICAgICAgICAgIHYzLjhoLCB2MC44aCwgdjEuOGgKKyAgICAgICAgc3F4dHVuICAgICAg ICAgIHYwLjhiLCB2Mi44aAorICAgICAgICBzcXh0dW4yICAgICAgICAgdjAuMTZiLCB2My44 aAorICAgICAgICBzdDEgICAgICAgICAgICAge3YwLjE2Yn0sIFt4MF0sIHgxCisgICAgICAg IHN1YnMgICAgICAgICAgICB3NCwgdzQsICMxCisgICAgICAgIGIuaGkgICAgICAgICAgICAx YgorICAgICAgICByZXQKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19x cGVsX3VuaV93X2gyNF84X25lb25fZG90cHJvZCwgZXhwb3J0PTEKKyAgICAgICAgUVBFTF9V TklfV19IX0hFQURFUgorICAgICAgICBzdWIgICAgICAgICAgICAgeDEsIHgxLCAjMTYKKzE6 CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE2LjE2YiwgdjE3LjE2Yn0sIFt4Ml0sIHgz CisgICAgICAgIGV4dCAgICAgICAgICAgICB2MS4xNmIsIHYxNi4xNmIsIHYxNy4xNmIsICMx CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Mi4xNmIsIHYxNi4xNmIsIHYxNy4xNmIsICMy CisgICAgICAgIGV4dCAgICAgICAgICAgICB2My4xNmIsIHYxNi4xNmIsIHYxNy4xNmIsICMz CisgICAgICAgIGV4dCAgICAgICAgICAgICB2NC4xNmIsIHYxNi4xNmIsIHYxNy4xNmIsICM0 CisgICAgICAgIGV4dCAgICAgICAgICAgICB2NS4xNmIsIHYxNi4xNmIsIHYxNy4xNmIsICM1 CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ni4xNmIsIHYxNi4xNmIsIHYxNy4xNmIsICM2 CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ny4xNmIsIHYxNi4xNmIsIHYxNy4xNmIsICM3 CisgICAgICAgIFFQRUxfVU5JX1dfSF9DQUxDICB2MTYsIHYyLCB2MSwgdjMsIHYxOCwgdjE5 LCB2MjAsIHYyMQorICAgICAgICBRUEVMX1VOSV9XX0hfQ0FMQyAgdjQsIHY2LCB2NSwgdjcs IHYyMiwgdjIzLCB2MjQsIHYyNQorICAgICAgICBzcXh0biAgICAgICAgICAgdjE4LjRoLCB2 MTguNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYxOC44aCwgdjIyLjRzCisgICAgICAg IHNxeHRuICAgICAgICAgICB2MTkuNGgsIHYyMC40cworICAgICAgICBzcXh0bjIgICAgICAg ICAgdjE5LjhoLCB2MjQuNHMKKyAgICAgICAgdHJuMSAgICAgICAgICAgIHYyMC44aCwgdjE4 LjhoLCB2MTkuOGgKKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYyMS44aCwgdjE4LjhoLCB2 MTkuOGgKKyAgICAgICAgc3F4dHVuICAgICAgICAgIHYyNi44YiwgdjIwLjhoCisgICAgICAg IHNxeHR1bjIgICAgICAgICB2MjYuMTZiLCB2MjEuOGggICAgICAgICAgICAgICAgICAgICAg ICAgLy8gMC0xNQorICAgICAgICBleHQgICAgICAgICAgICAgdjEuMTZiLCB2MTcuMTZiLCB2 MTcuMTZiLCAjMQorICAgICAgICBleHQgICAgICAgICAgICAgdjIuMTZiLCB2MTcuMTZiLCB2 MTcuMTZiLCAjMgorICAgICAgICBleHQgICAgICAgICAgICAgdjMuMTZiLCB2MTcuMTZiLCB2 MTcuMTZiLCAjMworICAgICAgICBleHQgICAgICAgICAgICAgdjQuMTZiLCB2MTcuMTZiLCB2 MTcuMTZiLCAjNAorICAgICAgICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2MTcuMTZiLCB2 MTcuMTZiLCAjNQorICAgICAgICBleHQgICAgICAgICAgICAgdjYuMTZiLCB2MTcuMTZiLCB2 MTcuMTZiLCAjNgorICAgICAgICBleHQgICAgICAgICAgICAgdjcuMTZiLCB2MTcuMTZiLCB2 MTcuMTZiLCAjNworICAgICAgICB6aXAxICAgICAgICAgICAgdjAuMmQsIHYxNy4yZCwgdjEu MmQKKyAgICAgICAgemlwMSAgICAgICAgICAgIHYyLjJkLCB2Mi4yZCwgdjMuMmQKKyAgICAg ICAgemlwMSAgICAgICAgICAgIHY0LjJkLCB2NC4yZCwgdjUuMmQKKyAgICAgICAgemlwMSAg ICAgICAgICAgIHY2LjJkLCB2Ni4yZCwgdjcuMmQKKyAgICAgICAgUVBFTF9VTklfV19IX0NB TEMgIHYwLCB2MiwgdjQsIHY2LCB2MTgsIHYxOSwgdjIwLCB2MjEKKyAgICAgICAgc3F4dG4g ICAgICAgICAgIHYxOC40aCwgdjE4LjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2MTgu OGgsIHYyMC40cworICAgICAgICBzcXh0dW4gICAgICAgICAgdjI3LjhiLCB2MTguOGgKKwor ICAgICAgICBzdDEgICAgICAgICAgICAge3YyNi4xNmJ9LCBbeDBdLCAjMTYKKyAgICAgICAg c3QxICAgICAgICAgICAgIHt2MjcuOGJ9LCBbeDBdLCB4MQorICAgICAgICBzdWJzICAgICAg ICAgICAgdzQsIHc0LCAjMQorICAgICAgICBiLmhpICAgICAgICAgICAgMWIKKyAgICAgICAg cmV0CitlbmRmdW5jCisKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19xcGVsX3VuaV93 X2gzMl84X25lb25fZG90cHJvZCwgZXhwb3J0PTEKKyAgICAgICAgUVBFTF9VTklfV19IX0hF QURFUgorMToKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTYuMTZiLCB2MTcuMTZiLCB2 MTguMTZifSwgW3gyXSwgeDMKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYxLjE2YiwgdjE2 LjE2YiwgdjE3LjE2YiwgIzEKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYyLjE2YiwgdjE2 LjE2YiwgdjE3LjE2YiwgIzIKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYzLjE2YiwgdjE2 LjE2YiwgdjE3LjE2YiwgIzMKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY0LjE2YiwgdjE2 LjE2YiwgdjE3LjE2YiwgIzQKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY1LjE2YiwgdjE2 LjE2YiwgdjE3LjE2YiwgIzUKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY2LjE2YiwgdjE2 LjE2YiwgdjE3LjE2YiwgIzYKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY3LjE2YiwgdjE2 LjE2YiwgdjE3LjE2YiwgIzcKKyAgICAgICAgUVBFTF9VTklfV19IX0NBTEMgIHYxNiwgdjIs IHYxLCB2MywgdjAsIHYxOSwgdjIwLCB2MjEKKyAgICAgICAgUVBFTF9VTklfV19IX0NBTEMg IHY0LCB2NiwgdjUsIHY3LCB2MjIsIHYyMywgdjI0LCB2MjUKKyAgICAgICAgc3F4dG4gICAg ICAgICAgIHYwLjRoLCB2MC40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjAuOGgsIHYy Mi40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjE5LjRoLCB2MjAuNHMKKyAgICAgICAg c3F4dG4yICAgICAgICAgIHYxOS44aCwgdjI0LjRzCisgICAgICAgIHRybjEgICAgICAgICAg ICB2MjAuOGgsIHYwLjhoLCB2MTkuOGgKKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYyMS44 aCwgdjAuOGgsIHYxOS44aAorICAgICAgICBzcXh0dW4gICAgICAgICAgdjI2LjhiLCB2MjAu OGgKKyAgICAgICAgc3F4dHVuMiAgICAgICAgIHYyNi4xNmIsIHYyMS44aCAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAwLTE1CisgICAgICAgIGV4dCAgICAgICAgICAgICB2MS4xNmIs IHYxNy4xNmIsIHYxOC4xNmIsICMxCisgICAgICAgIGV4dCAgICAgICAgICAgICB2Mi4xNmIs IHYxNy4xNmIsIHYxOC4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAgICAgICB2My4xNmIs IHYxNy4xNmIsIHYxOC4xNmIsICMzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2NC4xNmIs IHYxNy4xNmIsIHYxOC4xNmIsICM0CisgICAgICAgIGV4dCAgICAgICAgICAgICB2NS4xNmIs IHYxNy4xNmIsIHYxOC4xNmIsICM1CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ni4xNmIs IHYxNy4xNmIsIHYxOC4xNmIsICM2CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ny4xNmIs IHYxNy4xNmIsIHYxOC4xNmIsICM3CisgICAgICAgIFFQRUxfVU5JX1dfSF9DQUxDICB2MTcs IHYyLCB2MSwgdjMsIHYwLCB2MTksIHYyMCwgdjIxCisgICAgICAgIFFQRUxfVU5JX1dfSF9D QUxDICB2NCwgdjYsIHY1LCB2NywgdjIyLCB2MjMsIHYyNCwgdjI1CisgICAgICAgIHNxeHRu ICAgICAgICAgICB2MC40aCwgdjAuNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYwLjho LCB2MjIuNHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYxOS40aCwgdjIwLjRzCisgICAg ICAgIHNxeHRuMiAgICAgICAgICB2MTkuOGgsIHYyNC40cworICAgICAgICB0cm4xICAgICAg ICAgICAgdjIwLjhoLCB2MC44aCwgdjE5LjhoCisgICAgICAgIHRybjIgICAgICAgICAgICB2 MjEuOGgsIHYwLjhoLCB2MTkuOGgKKyAgICAgICAgc3F4dHVuICAgICAgICAgIHYyNy44Yiwg djIwLjhoCisgICAgICAgIHNxeHR1bjIgICAgICAgICB2MjcuMTZiLCB2MjEuOGggICAgICAg ICAgICAgICAgICAgICAgICAgLy8gMTYtMzEKKyAgICAgICAgc3QxICAgICAgICAgICAgIHt2 MjYuMTZiLCB2MjcuMTZifSwgW3gwXSwgeDEKKyAgICAgICAgc3VicyAgICAgICAgICAgIHc0 LCB3NCwgIzEKKyAgICAgICAgYi5oaSAgICAgICAgICAgIDFiCisgICAgICAgIHJldAorZW5k ZnVuYworCitmdW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfdW5pX3dfaDQ4XzhfbmVv bl9kb3Rwcm9kLCBleHBvcnQ9MQorICAgICAgICBRUEVMX1VOSV9XX0hfSEVBREVSCisxOgor ICAgICAgICBsZDEgICAgICAgICAgICAge3YxNi4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsIHYx OS4xNmJ9LCBbeDJdLCB4MworICAgICAgICBleHQgICAgICAgICAgICAgdjEuMTZiLCB2MTYu MTZiLCB2MTcuMTZiLCAjMQorICAgICAgICBleHQgICAgICAgICAgICAgdjIuMTZiLCB2MTYu MTZiLCB2MTcuMTZiLCAjMgorICAgICAgICBleHQgICAgICAgICAgICAgdjMuMTZiLCB2MTYu MTZiLCB2MTcuMTZiLCAjMworICAgICAgICBleHQgICAgICAgICAgICAgdjQuMTZiLCB2MTYu MTZiLCB2MTcuMTZiLCAjNAorICAgICAgICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2MTYu MTZiLCB2MTcuMTZiLCAjNQorICAgICAgICBleHQgICAgICAgICAgICAgdjYuMTZiLCB2MTYu MTZiLCB2MTcuMTZiLCAjNgorICAgICAgICBleHQgICAgICAgICAgICAgdjcuMTZiLCB2MTYu MTZiLCB2MTcuMTZiLCAjNworICAgICAgICBRUEVMX1VOSV9XX0hfQ0FMQyAgdjE2LCB2Miwg djEsIHYzLCB2MjAsIHYyNCwgdjIxLCB2MAorICAgICAgICBRUEVMX1VOSV9XX0hfQ0FMQyAg djQsIHY2LCB2NSwgdjcsIHYyMiwgdjI0LCB2MjMsIHYwCisgICAgICAgIHNxeHRuICAgICAg ICAgICB2MjAuNGgsIHYyMC40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjIwLjhoLCB2 MjIuNHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYyMS40aCwgdjIxLjRzCisgICAgICAg IHNxeHRuMiAgICAgICAgICB2MjEuOGgsIHYyMy40cworICAgICAgICB0cm4xICAgICAgICAg ICAgdjIyLjhoLCB2MjAuOGgsIHYyMS44aAorICAgICAgICB0cm4yICAgICAgICAgICAgdjIz LjhoLCB2MjAuOGgsIHYyMS44aAorICAgICAgICBzcXh0dW4gICAgICAgICAgdjI1LjhiLCB2 MjIuOGgKKyAgICAgICAgc3F4dHVuMiAgICAgICAgIHYyNS4xNmIsIHYyMy44aCAgICAgICAg ICAgICAgICAgICAgICAgICAvLyAwLTE1CisgICAgICAgIGV4dCAgICAgICAgICAgICB2MS4x NmIsIHYxNy4xNmIsIHYxOC4xNmIsICMxCisgICAgICAgIGV4dCAgICAgICAgICAgICB2Mi4x NmIsIHYxNy4xNmIsIHYxOC4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAgICAgICB2My4x NmIsIHYxNy4xNmIsIHYxOC4xNmIsICMzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2NC4x NmIsIHYxNy4xNmIsIHYxOC4xNmIsICM0CisgICAgICAgIGV4dCAgICAgICAgICAgICB2NS4x NmIsIHYxNy4xNmIsIHYxOC4xNmIsICM1CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ni4x NmIsIHYxNy4xNmIsIHYxOC4xNmIsICM2CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ny4x NmIsIHYxNy4xNmIsIHYxOC4xNmIsICM3CisgICAgICAgIFFQRUxfVU5JX1dfSF9DQUxDICB2 MTcsIHYyLCB2MSwgdjMsIHYyMCwgdjI0LCB2MjEsIHYwCisgICAgICAgIFFQRUxfVU5JX1df SF9DQUxDICB2NCwgdjYsIHY1LCB2NywgdjIyLCB2MjQsIHYyMywgdjAKKyAgICAgICAgc3F4 dG4gICAgICAgICAgIHYyMC40aCwgdjIwLjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2 MjAuOGgsIHYyMi40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjIxLjRoLCB2MjEuNHMK KyAgICAgICAgc3F4dG4yICAgICAgICAgIHYyMS44aCwgdjIzLjRzCisgICAgICAgIHRybjEg ICAgICAgICAgICB2MjIuOGgsIHYyMC44aCwgdjIxLjhoCisgICAgICAgIHRybjIgICAgICAg ICAgICB2MjMuOGgsIHYyMC44aCwgdjIxLjhoCisgICAgICAgIHNxeHR1biAgICAgICAgICB2 MjYuOGIsIHYyMi44aAorICAgICAgICBzcXh0dW4yICAgICAgICAgdjI2LjE2YiwgdjIzLjho ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE2LTMxCisgICAgICAgIGV4dCAgICAgICAg ICAgICB2MS4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICMxCisgICAgICAgIGV4dCAgICAgICAg ICAgICB2Mi4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAg ICAgICB2My4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICMzCisgICAgICAgIGV4dCAgICAgICAg ICAgICB2NC4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICM0CisgICAgICAgIGV4dCAgICAgICAg ICAgICB2NS4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICM1CisgICAgICAgIGV4dCAgICAgICAg ICAgICB2Ni4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICM2CisgICAgICAgIGV4dCAgICAgICAg ICAgICB2Ny4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICM3CisgICAgICAgIFFQRUxfVU5JX1df SF9DQUxDICB2MTgsIHYyLCB2MSwgdjMsIHYyMCwgdjI0LCB2MjEsIHYwCisgICAgICAgIFFQ RUxfVU5JX1dfSF9DQUxDICB2NCwgdjYsIHY1LCB2NywgdjIyLCB2MjQsIHYyMywgdjAKKyAg ICAgICAgc3F4dG4gICAgICAgICAgIHYyMC40aCwgdjIwLjRzCisgICAgICAgIHNxeHRuMiAg ICAgICAgICB2MjAuOGgsIHYyMi40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjIxLjRo LCB2MjEuNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYyMS44aCwgdjIzLjRzCisgICAg ICAgIHRybjEgICAgICAgICAgICB2MjIuOGgsIHYyMC44aCwgdjIxLjhoCisgICAgICAgIHRy bjIgICAgICAgICAgICB2MjMuOGgsIHYyMC44aCwgdjIxLjhoCisgICAgICAgIHNxeHR1biAg ICAgICAgICB2MjcuOGIsIHYyMi44aAorICAgICAgICBzcXh0dW4yICAgICAgICAgdjI3LjE2 YiwgdjIzLjhoICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDMyLTQ3CisgICAgICAgIHN0 MSAgICAgICAgICAgICB7djI1LjE2YiwgdjI2LjE2YiwgdjI3LjE2Yn0sIFt4MF0sIHgxCisg ICAgICAgIHN1YnMgICAgICAgICAgICB3NCwgdzQsICMxCisgICAgICAgIGIuaGkgICAgICAg ICAgICAxYgorICAgICAgICByZXQKK2VuZGZ1bmMKKworCisKK2Z1bmN0aW9uIGZmX2hldmNf cHV0X2hldmNfcXBlbF91bmlfd19oNjRfOF9uZW9uX2RvdHByb2QsIGV4cG9ydD0xCisgICAg ICAgIFFQRUxfVU5JX1dfSF9IRUFERVIKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgzLCB4 MywgIzY0CisxOgorICAgICAgICBsZDEgICAgICAgICAgICAge3YxNi4xNmIsIHYxNy4xNmIs IHYxOC4xNmIsIHYxOS4xNmJ9LCBbeDJdLCAjNjQKKyAgICAgICAgZXh0ICAgICAgICAgICAg IHYxLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzEKKyAgICAgICAgZXh0ICAgICAgICAgICAg IHYyLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzIKKyAgICAgICAgZXh0ICAgICAgICAgICAg IHYzLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzMKKyAgICAgICAgZXh0ICAgICAgICAgICAg IHY0LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzQKKyAgICAgICAgZXh0ICAgICAgICAgICAg IHY1LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzUKKyAgICAgICAgZXh0ICAgICAgICAgICAg IHY2LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzYKKyAgICAgICAgZXh0ICAgICAgICAgICAg IHY3LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzcKKyAgICAgICAgUVBFTF9VTklfV19IX0NB TEMgIHYxNiwgdjIsIHYxLCB2MywgdjIwLCB2MjQsIHYyMSwgdjAKKyAgICAgICAgUVBFTF9V TklfV19IX0NBTEMgIHY0LCB2NiwgdjUsIHY3LCB2MjIsIHYyNCwgdjIzLCB2MAorICAgICAg ICBzcXh0biAgICAgICAgICAgdjIwLjRoLCB2MjAuNHMKKyAgICAgICAgc3F4dG4yICAgICAg ICAgIHYyMC44aCwgdjIyLjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjEuNGgsIHYy MS40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjIxLjhoLCB2MjMuNHMKKyAgICAgICAg dHJuMSAgICAgICAgICAgIHYyMi44aCwgdjIwLjhoLCB2MjEuOGgKKyAgICAgICAgdHJuMiAg ICAgICAgICAgIHYyMy44aCwgdjIwLjhoLCB2MjEuOGgKKyAgICAgICAgc3F4dHVuICAgICAg ICAgIHYxNi44YiwgdjIyLjhoCisgICAgICAgIHNxeHR1bjIgICAgICAgICB2MTYuMTZiLCB2 MjMuOGggICAgICAgICAgICAgICAgICAgICAgICAgLy8gMC0xNQorICAgICAgICBleHQgICAg ICAgICAgICAgdjEuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjMQorICAgICAgICBleHQgICAg ICAgICAgICAgdjIuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjMgorICAgICAgICBleHQgICAg ICAgICAgICAgdjMuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjMworICAgICAgICBleHQgICAg ICAgICAgICAgdjQuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjNAorICAgICAgICBleHQgICAg ICAgICAgICAgdjUuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjNQorICAgICAgICBleHQgICAg ICAgICAgICAgdjYuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjNgorICAgICAgICBleHQgICAg ICAgICAgICAgdjcuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjNworICAgICAgICBRUEVMX1VO SV9XX0hfQ0FMQyAgdjE3LCB2MiwgdjEsIHYzLCB2MjAsIHYyNCwgdjIxLCB2MAorICAgICAg ICBRUEVMX1VOSV9XX0hfQ0FMQyAgdjQsIHY2LCB2NSwgdjcsIHYyMiwgdjI0LCB2MjMsIHYw CisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjAuNGgsIHYyMC40cworICAgICAgICBzcXh0 bjIgICAgICAgICAgdjIwLjhoLCB2MjIuNHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYy MS40aCwgdjIxLjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2MjEuOGgsIHYyMy40cwor ICAgICAgICB0cm4xICAgICAgICAgICAgdjIyLjhoLCB2MjAuOGgsIHYyMS44aAorICAgICAg ICB0cm4yICAgICAgICAgICAgdjIzLjhoLCB2MjAuOGgsIHYyMS44aAorICAgICAgICBzcXh0 dW4gICAgICAgICAgdjE3LjhiLCB2MjIuOGgKKyAgICAgICAgc3F4dHVuMiAgICAgICAgIHYx Ny4xNmIsIHYyMy44aCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxNi0zMQorICAgICAg ICBleHQgICAgICAgICAgICAgdjEuMTZiLCB2MTguMTZiLCB2MTkuMTZiLCAjMQorICAgICAg ICBleHQgICAgICAgICAgICAgdjIuMTZiLCB2MTguMTZiLCB2MTkuMTZiLCAjMgorICAgICAg ICBleHQgICAgICAgICAgICAgdjMuMTZiLCB2MTguMTZiLCB2MTkuMTZiLCAjMworICAgICAg ICBleHQgICAgICAgICAgICAgdjQuMTZiLCB2MTguMTZiLCB2MTkuMTZiLCAjNAorICAgICAg ICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2MTguMTZiLCB2MTkuMTZiLCAjNQorICAgICAg ICBleHQgICAgICAgICAgICAgdjYuMTZiLCB2MTguMTZiLCB2MTkuMTZiLCAjNgorICAgICAg ICBleHQgICAgICAgICAgICAgdjcuMTZiLCB2MTguMTZiLCB2MTkuMTZiLCAjNworICAgICAg ICBRUEVMX1VOSV9XX0hfQ0FMQyAgdjE4LCB2MiwgdjEsIHYzLCB2MjAsIHYyNCwgdjIxLCB2 MAorICAgICAgICBRUEVMX1VOSV9XX0hfQ0FMQyAgdjQsIHY2LCB2NSwgdjcsIHYyMiwgdjI0 LCB2MjMsIHYwCisgICAgICAgIGxkMSAgICAgICAgICAgICB7djAuMTZifSwgW3gyXSwgeDMK KyAgICAgICAgc3F4dG4gICAgICAgICAgIHYyMC40aCwgdjIwLjRzCisgICAgICAgIHNxeHRu MiAgICAgICAgICB2MjAuOGgsIHYyMi40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjIx LjRoLCB2MjEuNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYyMS44aCwgdjIzLjRzCisg ICAgICAgIHRybjEgICAgICAgICAgICB2MjIuOGgsIHYyMC44aCwgdjIxLjhoCisgICAgICAg IHRybjIgICAgICAgICAgICB2MjMuOGgsIHYyMC44aCwgdjIxLjhoCisgICAgICAgIHNxeHR1 biAgICAgICAgICB2MTguOGIsIHYyMi44aAorICAgICAgICBzcXh0dW4yICAgICAgICAgdjE4 LjE2YiwgdjIzLjhoICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDMyLTQ3CisgICAgICAg IGV4dCAgICAgICAgICAgICB2MS4xNmIsIHYxOS4xNmIsIHYwLjE2YiwgIzEKKyAgICAgICAg ZXh0ICAgICAgICAgICAgIHYyLjE2YiwgdjE5LjE2YiwgdjAuMTZiLCAjMgorICAgICAgICBl eHQgICAgICAgICAgICAgdjMuMTZiLCB2MTkuMTZiLCB2MC4xNmIsICMzCisgICAgICAgIGV4 dCAgICAgICAgICAgICB2NC4xNmIsIHYxOS4xNmIsIHYwLjE2YiwgIzQKKyAgICAgICAgZXh0 ICAgICAgICAgICAgIHY1LjE2YiwgdjE5LjE2YiwgdjAuMTZiLCAjNQorICAgICAgICBleHQg ICAgICAgICAgICAgdjYuMTZiLCB2MTkuMTZiLCB2MC4xNmIsICM2CisgICAgICAgIGV4dCAg ICAgICAgICAgICB2Ny4xNmIsIHYxOS4xNmIsIHYwLjE2YiwgIzcKKyAgICAgICAgUVBFTF9V TklfV19IX0NBTEMgIHYxOSwgdjIsIHYxLCB2MywgdjIwLCB2MjQsIHYyMSwgdjAKKyAgICAg ICAgUVBFTF9VTklfV19IX0NBTEMgIHY0LCB2NiwgdjUsIHY3LCB2MjIsIHYyNCwgdjIzLCB2 MAorICAgICAgICBzcXh0biAgICAgICAgICAgdjIwLjRoLCB2MjAuNHMKKyAgICAgICAgc3F4 dG4yICAgICAgICAgIHYyMC44aCwgdjIyLjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2 MjEuNGgsIHYyMS40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjIxLjhoLCB2MjMuNHMK KyAgICAgICAgdHJuMSAgICAgICAgICAgIHYyMi44aCwgdjIwLjhoLCB2MjEuOGgKKyAgICAg ICAgdHJuMiAgICAgICAgICAgIHYyMy44aCwgdjIwLjhoLCB2MjEuOGgKKyAgICAgICAgc3F4 dHVuICAgICAgICAgIHYxOS44YiwgdjIyLjhoCisgICAgICAgIHNxeHR1bjIgICAgICAgICB2 MTkuMTZiLCB2MjMuOGggICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDgtNjMKKworICAg ICAgICBzdDEgICAgICAgICAgICAge3YxNi4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsIHYxOS4x NmJ9LCBbeDBdLCB4MQorICAgICAgICBzdWJzICAgICAgICAgICAgdzQsIHc0LCAjMQorICAg ICAgICBiLmhpICAgICAgICAgICAgMWIKKyAgICAgICAgcmV0CitlbmRmdW5jCisKKyNlbmRp ZiAvLyBfX0FSTV9GRUFUVVJFX0RPVFBST0QKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl Ci0tIAoyLjM4LjAud2luZG93cy4xCgo= --------------THPRe0BGKIferZwPWnsRv0RP Content-Type: text/plain; charset=UTF-8; name="0003-lavc-aarch64-new-optimization-for-8-bit-hevc_qpel_h-.patch" Content-Disposition: attachment; filename*0="0003-lavc-aarch64-new-optimization-for-8-bit-hevc_qpel_h-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkYzFlNGRkZTFlZDQ2MzA1MjI0NDQwODIwNDgwZDBiNTZlMGI0NGRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBteWFpcyA8TG9nYW4uTHl1QG15YWlzLmNvbS5jbj4K RGF0ZTogV2VkLCAzIE1heSAyMDIzIDEwOjAxOjExICswODAwClN1YmplY3Q6IFtQQVRDSCAz LzNdIGxhdmMvYWFyY2g2NDogbmV3IG9wdGltaXphdGlvbiBmb3IgOC1iaXQgaGV2Y19xcGVs X2gKIGhldmNfcXBlbF91bmlfd19odgoKU2lnbmVkLW9mZi1ieTogbXlhaXMgPExvZ2FuLkx5 dUBteWFpcy5jb20uY24+Ci0tLQogbGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfaW5pdF9h YXJjaDY0LmMgfCAgIDIwICsKIGxpYmF2Y29kZWMvYWFyY2g2NC9oZXZjZHNwX3FwZWxfbmVv bi5TICAgIHwgMTA3OSArKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwg MTA5OSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYXJjaDY0L2hl dmNkc3BfaW5pdF9hYXJjaDY0LmMgYi9saWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9pbml0 X2FhcmNoNjQuYwppbmRleCAxNDYyY2EzNWRmLi4xMTgyZTRiY2QyIDEwMDY0NAotLS0gYS9s aWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9pbml0X2FhcmNoNjQuYworKysgYi9saWJhdmNv ZGVjL2FhcmNoNjQvaGV2Y2RzcF9pbml0X2FhcmNoNjQuYwpAQCAtMTY0LDEyICsxNjQsMjAg QEAgTkVPTjhfRk5QUk9UT19QQVJUSUFMXzQocXBlbF91bmlfd192LCAodWludDhfdCAqX2Rz dCwgIHB0cmRpZmZfdCBfZHN0c3RyaWRlLAogICAgICAgICBpbnRwdHJfdCBteCwgaW50cHRy X3QgbXksIGludCB3aWR0aCksKTsKIAogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9ET1RQ Uk9EKQorTkVPTjhfRk5QUk9UTyhxcGVsX2gsIChpbnQxNl90ICpkc3QsCisgICAgICAgIGNv bnN0IHVpbnQ4X3QgKl9zcmMsIHB0cmRpZmZfdCBfc3Jjc3RyaWRlLAorICAgICAgICBpbnQg aGVpZ2h0LCBpbnRwdHJfdCBteCwgaW50cHRyX3QgbXksIGludCB3aWR0aCksIF9kb3Rwcm9k KTsKIAogTkVPTjhfRk5QUk9UTyhxcGVsX3VuaV93X2gsICh1aW50OF90ICpfZHN0LCAgcHRy ZGlmZl90IF9kc3RzdHJpZGUsCiAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKl9zcmMsIHB0cmRp ZmZfdCBfc3Jjc3RyaWRlLAogICAgICAgICBpbnQgaGVpZ2h0LCBpbnQgZGVub20sIGludCB3 eCwgaW50IG94LAogICAgICAgICBpbnRwdHJfdCBteCwgaW50cHRyX3QgbXksIGludCB3aWR0 aCksIF9kb3Rwcm9kKTsKIAorTkVPTjhfRk5QUk9UT19QQVJUSUFMXzUocXBlbF91bmlfd19o diwgKHVpbnQ4X3QgKl9kc3QsICBwdHJkaWZmX3QgX2RzdHN0cmlkZSwKKyAgICAgICAgY29u c3QgdWludDhfdCAqX3NyYywgcHRyZGlmZl90IF9zcmNzdHJpZGUsCisgICAgICAgIGludCBo ZWlnaHQsIGludCBkZW5vbSwgaW50IHd4LCBpbnQgb3gsCisgICAgICAgIGludHB0cl90IG14 LCBpbnRwdHJfdCBteSwgaW50IHdpZHRoKSwgX2RvdHByb2QpOworCiAjZW5kaWYKIAogI2Rl ZmluZSBORU9OOF9GTkFTU0lHTihtZW1iZXIsIHYsIGgsIGZuLCBleHQpIFwKQEAgLTE5NCw2 ICsyMDIsMTYgQEAgTkVPTjhfRk5QUk9UTyhxcGVsX3VuaV93X2gsICh1aW50OF90ICpfZHN0 LCAgcHRyZGlmZl90IF9kc3RzdHJpZGUsCiAgICAgICAgIG1lbWJlcls4XVt2XVtoXSA9IGZm X2hldmNfcHV0X2hldmNfIyNmbiMjNjRfOF9uZW9uIyNleHQ7IFwKICAgICAgICAgbWVtYmVy WzldW3ZdW2hdID0gZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM2NF84X25lb24jI2V4dDsKIAor I2RlZmluZSBORU9OOF9GTkFTU0lHTl9QQVJUSUFMXzUobWVtYmVyLCB2LCBoLCBmbiwgZXh0 KSBcCisgICAgICAgIG1lbWJlclsxXVt2XVtoXSA9IGZmX2hldmNfcHV0X2hldmNfIyNmbiMj NF84X25lb24jI2V4dDsgIFwKKyAgICAgICAgbWVtYmVyWzJdW3ZdW2hdID0gZmZfaGV2Y19w dXRfaGV2Y18jI2ZuIyM4XzhfbmVvbiMjZXh0OyAgXAorICAgICAgICBtZW1iZXJbM11bdl1b aF0gPSBmZl9oZXZjX3B1dF9oZXZjXyMjZm4jIzhfOF9uZW9uIyNleHQ7ICBcCisgICAgICAg IG1lbWJlcls0XVt2XVtoXSA9IGZmX2hldmNfcHV0X2hldmNfIyNmbiMjMTZfOF9uZW9uIyNl eHQ7IFwKKyAgICAgICAgbWVtYmVyWzVdW3ZdW2hdID0gZmZfaGV2Y19wdXRfaGV2Y18jI2Zu IyMxNl84X25lb24jI2V4dDsgXAorICAgICAgICBtZW1iZXJbNl1bdl1baF0gPSBmZl9oZXZj X3B1dF9oZXZjXyMjZm4jIzMyXzhfbmVvbiMjZXh0OyBcCisgICAgICAgIG1lbWJlcls3XVt2 XVtoXSA9IGZmX2hldmNfcHV0X2hldmNfIyNmbiMjMzJfOF9uZW9uIyNleHQ7IFwKKyAgICAg ICAgbWVtYmVyWzhdW3ZdW2hdID0gZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM2NF84X25lb24j I2V4dDsgXAorICAgICAgICBtZW1iZXJbOV1bdl1baF0gPSBmZl9oZXZjX3B1dF9oZXZjXyMj Zm4jIzY0XzhfbmVvbiMjZXh0OwogCiBhdl9jb2xkIHZvaWQgZmZfaGV2Y19kc3BfaW5pdF9h YXJjaDY0KEhFVkNEU1BDb250ZXh0ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoKQogewpAQCAt MjU3LDcgKzI3NSw5IEBAIGF2X2NvbGQgdm9pZCBmZl9oZXZjX2RzcF9pbml0X2FhcmNoNjQo SEVWQ0RTUENvbnRleHQgKmMsIGNvbnN0IGludCBiaXRfZGVwdGgpCiAgICAgICAgIE5FT044 X0ZOQVNTSUdOX1BBUlRJQUxfNChjLT5wdXRfaGV2Y19xcGVsX3VuaV93LCAxLCAwLCBxcGVs X3VuaV93X3YsKTsKIAogICAgICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRE9UUFJPRCkK KyAgICAgICAgTkVPTjhfRk5BU1NJR04oYy0+cHV0X2hldmNfcXBlbCwgMCwgMSwgcXBlbF9o LCBfZG90cHJvZCk7CiAgICAgICAgIE5FT044X0ZOQVNTSUdOKGMtPnB1dF9oZXZjX3FwZWxf dW5pX3csIDAsIDEsIHFwZWxfdW5pX3dfaCwgX2RvdHByb2QpOworICAgICAgICBORU9OOF9G TkFTU0lHTl9QQVJUSUFMXzUoYy0+cHV0X2hldmNfcXBlbF91bmlfdywgMSwgMSwgcXBlbF91 bmlfd19odiwgX2RvdHByb2QpOwogCiAgICAgI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfcXBlbF9uZW9uLlMgYi9saWJhdmNvZGVjL2Fh cmNoNjQvaGV2Y2RzcF9xcGVsX25lb24uUwppbmRleCBjNmViMTNhZDk4Li5lMzBhYzFiNDY1 IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9xcGVsX25lb24uUwor KysgYi9saWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9xcGVsX25lb24uUwpAQCAtMTYyNSw0 ICsxNjI1LDEwODMgQEAgZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19xcGVsX3VuaV93X2g2 NF84X25lb25fZG90cHJvZCwgZXhwb3J0PTEKICAgICAgICAgcmV0CiBlbmRmdW5jCiAKKwor Lm1hY3JvIFFQRUxfSF9IRUFERVIKKyAgICAgICAgbW92cmVsICAgICAgICAgIHg5LCBxcGVs X2ZpbHRlcnMKKyAgICAgICAgYWRkICAgICAgICAgICAgIHg5LCB4OSwgeDQsIGxzbCAzCisg ICAgICAgIGxkciAgICAgICAgICAgICB4MTEsIFt4OV0KKyAgICAgICAgZHVwICAgICAgICAg ICAgIHYzMS4yZCwgeDExCisgICAgICAgIHN1YiAgICAgICAgICAgICB4MSwgeDEsICMzCisu ZW5kbQorCitmdW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfaDRfOF9uZW9uX2RvdHBy b2QsIGV4cG9ydD0xCisgICAgICAgIFFQRUxfSF9IRUFERVIKKyAgICAgICAgbW92ICAgICAg ICAgICAgIHgxMCwgI01BWF9QQl9TSVpFICogMgorMToKKyAgICAgICAgbGQxICAgICAgICAg ICAgIHt2MC4xNmJ9LCBbeDFdLCB4MgorICAgICAgICBleHQgICAgICAgICAgICAgdjEuMTZi LCB2MC4xNmIsIHYwLjE2YiwgIzEKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYyLjE2Yiwg djAuMTZiLCB2MC4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAgICAgICB2My4xNmIsIHYw LjE2YiwgdjAuMTZiLCAjMworICAgICAgICB6aXAxICAgICAgICAgICAgdjAuMmQsIHYwLjJk LCB2MS4yZAorICAgICAgICB6aXAxICAgICAgICAgICAgdjIuMmQsIHYyLjJkLCB2My4yZAor ICAgICAgICBtb3ZpICAgICAgICAgICAgdjE2LjJkLCAjMAorICAgICAgICBtb3ZpICAgICAg ICAgICAgdjE3LjJkLCAjMAorICAgICAgICB1c2RvdCAgICAgICAgICAgdjE2LjRzLCB2MC4x NmIsIHYzMS4xNmIKKyAgICAgICAgdXNkb3QgICAgICAgICAgIHYxNy40cywgdjIuMTZiLCB2 MzEuMTZiCisgICAgICAgIGFkZHAgICAgICAgICAgICB2MTYuNHMsIHYxNi40cywgdjE3LjRz CisgICAgICAgIHNxeHRuICAgICAgICAgICB2MTYuNGgsIHYxNi40cworICAgICAgICBzdHIg ICAgICAgICAgICAgZDE2LCBbeDBdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MCwgeDAs IHgxMAorICAgICAgICBzdWJzICAgICAgICAgICAgdzMsIHczLCAjMQorICAgICAgICBiLm5l ICAgICAgICAgICAgMWIKKyAgICAgICAgcmV0CitlbmRmdW5jCisKK2Z1bmN0aW9uIGZmX2hl dmNfcHV0X2hldmNfcXBlbF9oNl84X25lb25fZG90cHJvZCwgZXhwb3J0PTEKKyAgICAgICAg UVBFTF9IX0hFQURFUgorICAgICAgICBtb3YgICAgICAgICAgICAgeDEwLCAjTUFYX1BCX1NJ WkUgKiAyCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MTUsIHgwLCAjOAorMToKKyAgICAg ICAgbGQxICAgICAgICAgICAgIHt2MC4xNmJ9LCBbeDFdLCB4MgorICAgICAgICBleHQgICAg ICAgICAgICAgdjEuMTZiLCB2MC4xNmIsIHYwLjE2YiwgIzEKKyAgICAgICAgZXh0ICAgICAg ICAgICAgIHYyLjE2YiwgdjAuMTZiLCB2MC4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAg ICAgICB2My4xNmIsIHYwLjE2YiwgdjAuMTZiLCAjMworICAgICAgICBleHQgICAgICAgICAg ICAgdjQuMTZiLCB2MC4xNmIsIHYwLjE2YiwgIzQKKyAgICAgICAgZXh0ICAgICAgICAgICAg IHY1LjE2YiwgdjAuMTZiLCB2MC4xNmIsICM1CisgICAgICAgIHppcDEgICAgICAgICAgICB2 MC4yZCwgdjAuMmQsIHYxLjJkCisgICAgICAgIHppcDEgICAgICAgICAgICB2Mi4yZCwgdjIu MmQsIHYzLjJkCisgICAgICAgIHppcDEgICAgICAgICAgICB2NC4yZCwgdjQuMmQsIHY1LjJk CisgICAgICAgIG1vdmkgICAgICAgICAgICB2MTYuMmQsICMwCisgICAgICAgIG1vdmkgICAg ICAgICAgICB2MTcuMmQsICMwCisgICAgICAgIG1vdmkgICAgICAgICAgICB2MTguMmQsICMw CisgICAgICAgIHVzZG90ICAgICAgICAgICB2MTYuNHMsIHYwLjE2YiwgdjMxLjE2YgorICAg ICAgICB1c2RvdCAgICAgICAgICAgdjE3LjRzLCB2Mi4xNmIsIHYzMS4xNmIKKyAgICAgICAg dXNkb3QgICAgICAgICAgIHYxOC40cywgdjQuMTZiLCB2MzEuMTZiCisgICAgICAgIGFkZHAg ICAgICAgICAgICB2MTYuNHMsIHYxNi40cywgdjE3LjRzCisgICAgICAgIGFkZHAgICAgICAg ICAgICB2MTguNHMsIHYxOC40cywgdjE4LjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2 MTYuNGgsIHYxNi40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjE4LjRoLCB2MTguNHMK KyAgICAgICAgc3RyICAgICAgICAgICAgIGQxNiwgW3gwXQorICAgICAgICBzdHIgICAgICAg ICAgICAgczE4LCBbeDE1XQorICAgICAgICBhZGQgICAgICAgICAgICAgeDAsIHgwLCB4MTAK KyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNSwgeDE1LCB4MTAKKyAgICAgICAgc3VicyAg ICAgICAgICAgIHczLCB3MywgIzEKKyAgICAgICAgYi5uZSAgICAgICAgICAgIDFiCisgICAg ICAgIHJldAorZW5kZnVuYworCitmdW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfaDhf OF9uZW9uX2RvdHByb2QsIGV4cG9ydD0xCisgICAgICAgIFFQRUxfSF9IRUFERVIKKyAgICAg ICAgbW92ICAgICAgICAgICAgIHgxMCwgI01BWF9QQl9TSVpFICogMgorMToKKyAgICAgICAg bGQxICAgICAgICAgICAgIHt2MC4xNmJ9LCBbeDFdLCB4MgorICAgICAgICBleHQgICAgICAg ICAgICAgdjEuMTZiLCB2MC4xNmIsIHYwLjE2YiwgIzEKKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHYyLjE2YiwgdjAuMTZiLCB2MC4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAgICAg ICB2My4xNmIsIHYwLjE2YiwgdjAuMTZiLCAjMworICAgICAgICBleHQgICAgICAgICAgICAg djQuMTZiLCB2MC4xNmIsIHYwLjE2YiwgIzQKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY1 LjE2YiwgdjAuMTZiLCB2MC4xNmIsICM1CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ni4x NmIsIHYwLjE2YiwgdjAuMTZiLCAjNgorICAgICAgICBleHQgICAgICAgICAgICAgdjcuMTZi LCB2MC4xNmIsIHYwLjE2YiwgIzcKKyAgICAgICAgemlwMSAgICAgICAgICAgIHYwLjJkLCB2 MC4yZCwgdjEuMmQKKyAgICAgICAgemlwMSAgICAgICAgICAgIHYyLjJkLCB2Mi4yZCwgdjMu MmQKKyAgICAgICAgemlwMSAgICAgICAgICAgIHY0LjJkLCB2NC4yZCwgdjUuMmQKKyAgICAg ICAgemlwMSAgICAgICAgICAgIHY2LjJkLCB2Ni4yZCwgdjcuMmQKKyAgICAgICAgbW92aSAg ICAgICAgICAgIHYxNi4yZCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHYxNy4yZCwg IzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHYxOC4yZCwgIzAKKyAgICAgICAgbW92aSAg ICAgICAgICAgIHYxOS4yZCwgIzAKKyAgICAgICAgdXNkb3QgICAgICAgICAgIHYxNi40cywg djAuMTZiLCB2MzEuMTZiCisgICAgICAgIHVzZG90ICAgICAgICAgICB2MTcuNHMsIHYyLjE2 YiwgdjMxLjE2YgorICAgICAgICB1c2RvdCAgICAgICAgICAgdjE4LjRzLCB2NC4xNmIsIHYz MS4xNmIKKyAgICAgICAgdXNkb3QgICAgICAgICAgIHYxOS40cywgdjYuMTZiLCB2MzEuMTZi CisgICAgICAgIGFkZHAgICAgICAgICAgICB2MTYuNHMsIHYxNi40cywgdjE3LjRzCisgICAg ICAgIGFkZHAgICAgICAgICAgICB2MTguNHMsIHYxOC40cywgdjE5LjRzCisgICAgICAgIHNx eHRuICAgICAgICAgICB2MTYuNGgsIHYxNi40cworICAgICAgICBzcXh0bjIgICAgICAgICAg djE2LjhoLCB2MTguNHMKKyAgICAgICAgc3RyICAgICAgICAgICAgIHExNiwgW3gwXQorICAg ICAgICBhZGQgICAgICAgICAgICAgeDAsIHgwLCB4MTAKKyAgICAgICAgc3VicyAgICAgICAg ICAgIHczLCB3MywgIzEKKyAgICAgICAgYi5uZSAgICAgICAgICAgIDFiCisgICAgICAgIHJl dAorZW5kZnVuYworCisubWFjcm8gUVBFTF9IX0NBTEMgczAsIHMxLCBzMiwgczMsIGQwLCBk MSwgZDIsIGQzIAorICAgICAgICBtb3ZpICAgICAgICAgICAgXGQwXCgpLjJkLCAjMAorICAg ICAgICBtb3ZpICAgICAgICAgICAgXGQxXCgpLjJkLCAjMAorICAgICAgICBtb3ZpICAgICAg ICAgICAgXGQyXCgpLjJkLCAjMAorICAgICAgICBtb3ZpICAgICAgICAgICAgXGQzXCgpLjJk LCAjMAorICAgICAgICB1c2RvdCAgICAgICAgICAgXGQwXCgpLjRzLCBcczBcKCkuMTZiLCB2 MzEuMTZiCisgICAgICAgIHVzZG90ICAgICAgICAgICBcZDFcKCkuNHMsIFxzMVwoKS4xNmIs IHYzMS4xNmIKKyAgICAgICAgdXNkb3QgICAgICAgICAgIFxkMlwoKS40cywgXHMyXCgpLjE2 YiwgdjMxLjE2YgorICAgICAgICB1c2RvdCAgICAgICAgICAgXGQzXCgpLjRzLCBcczNcKCku MTZiLCB2MzEuMTZiCisuZW5kbQorCitmdW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxf aDEyXzhfbmVvbl9kb3Rwcm9kLCBleHBvcnQ9MQorICAgICAgICBRUEVMX0hfSEVBREVSCisg ICAgICAgIG1vdiAgICAgICAgICAgICB4MTAsICNNQVhfUEJfU0laRSAqIDIKKyAgICAgICAg YWRkICAgICAgICAgICAgIHgxNSwgeDAsICMxNgorMToKKyAgICAgICAgbGQxICAgICAgICAg ICAgIHt2MTYuMTZiLCB2MTcuMTZifSwgW3gxXSwgeDIKKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHYxLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzEKKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHYyLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzIKKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHYzLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzMKKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHY0LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzQKKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHY1LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzUKKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHY2LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzYKKyAgICAgICAgZXh0ICAgICAgICAg ICAgIHY3LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzcKKyAgICAgICAgemlwMSAgICAgICAg ICAgIHYxOC4yZCwgdjQuMmQsIHY1LjJkCisgICAgICAgIHppcDEgICAgICAgICAgICB2MTku MmQsIHY2LjJkLCB2Ny4yZAorICAgICAgICBRUEVMX0hfQ0FMQyAgICAgdjE2LCB2MSwgdjIs IHYzLCB2MjAsIHYyMSwgdjIyLCB2MjMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyMC40 cywgdjIwLjRzLCB2MjIuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyMS40cywgdjIx LjRzLCB2MjMuNHMKKyAgICAgICAgbW92aSAgICAgICAgICAgIHYyNC4yZCwgIzAKKyAgICAg ICAgbW92aSAgICAgICAgICAgIHYyNS4yZCwgIzAKKyAgICAgICAgdXNkb3QgICAgICAgICAg IHYyNC40cywgdjE4LjE2YiwgdjMxLjE2YgorICAgICAgICB1c2RvdCAgICAgICAgICAgdjI1 LjRzLCB2MTkuMTZiLCB2MzEuMTZiCisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjQuNHMs IHYyNC40cywgdjI1LjRzCisgICAgICAgIHRybjEgICAgICAgICAgICB2MjYuNHMsIHYyMC40 cywgdjIxLjRzCisgICAgICAgIHRybjIgICAgICAgICAgICB2MjcuNHMsIHYyMC40cywgdjIx LjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjYuNGgsIHYyNi40cworICAgICAgICBz cXh0biAgICAgICAgICAgdjI3LjRoLCB2MjcuNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAg IHYyNi44aCwgdjI0LjRzCisKKyAgICAgICAgc3RyICAgICAgICAgICAgIHEyNiwgW3gwXQor ICAgICAgICBzdHIgICAgICAgICAgICAgZDI3LCBbeDE1XQorICAgICAgICBhZGQgICAgICAg ICAgICAgeDAsIHgwLCB4MTAKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNSwgeDE1LCB4 MTAKKyAgICAgICAgc3VicyAgICAgICAgICAgIHczLCB3MywgIzEKKyAgICAgICAgYi5uZSAg ICAgICAgICAgIDFiCisgICAgICAgIHJldAorZW5kZnVuYworCitmdW5jdGlvbiBmZl9oZXZj X3B1dF9oZXZjX3FwZWxfaDE2XzhfbmVvbl9kb3Rwcm9kLCBleHBvcnQ9MQorICAgICAgICBR UEVMX0hfSEVBREVSCisgICAgICAgIG1vdiAgICAgICAgICAgICB4MTAsICNNQVhfUEJfU0la RSAqIDIKKzE6CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE2LjE2YiwgdjE3LjE2Yn0s IFt4MV0sIHgyCisgICAgICAgIGV4dCAgICAgICAgICAgICB2MS4xNmIsIHYxNi4xNmIsIHYx Ny4xNmIsICMxCisgICAgICAgIGV4dCAgICAgICAgICAgICB2Mi4xNmIsIHYxNi4xNmIsIHYx Ny4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAgICAgICB2My4xNmIsIHYxNi4xNmIsIHYx Ny4xNmIsICMzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2NC4xNmIsIHYxNi4xNmIsIHYx Ny4xNmIsICM0CisgICAgICAgIGV4dCAgICAgICAgICAgICB2NS4xNmIsIHYxNi4xNmIsIHYx Ny4xNmIsICM1CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ni4xNmIsIHYxNi4xNmIsIHYx Ny4xNmIsICM2CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ny4xNmIsIHYxNi4xNmIsIHYx Ny4xNmIsICM3CisKKyAgICAgICAgUVBFTF9IX0NBTEMgICAgIHYxNiwgdjEsIHYyLCB2Mywg djIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIFFQRUxfSF9DQUxDICAgICB2NCwgdjUsIHY2 LCB2NywgdjI0LCB2MjUsIHYyNiwgdjI3CisKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYy MC40cywgdjIwLjRzLCB2MjIuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyMS40cywg djIxLjRzLCB2MjMuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyNC40cywgdjI0LjRz LCB2MjYuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyNS40cywgdjI1LjRzLCB2Mjcu NHMKKworICAgICAgICB0cm4xICAgICAgICAgICAgdjIyLjRzLCB2MjAuNHMsIHYyMS40cwor ICAgICAgICB0cm4yICAgICAgICAgICAgdjIzLjRzLCB2MjAuNHMsIHYyMS40cworICAgICAg ICB0cm4xICAgICAgICAgICAgdjI2LjRzLCB2MjQuNHMsIHYyNS40cworICAgICAgICB0cm4y ICAgICAgICAgICAgdjI3LjRzLCB2MjQuNHMsIHYyNS40cworCisgICAgICAgIHNxeHRuICAg ICAgICAgICB2MTguNGgsIHYyMi40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjE4Ljho LCB2MjYuNHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYxOS40aCwgdjIzLjRzCisgICAg ICAgIHNxeHRuMiAgICAgICAgICB2MTkuOGgsIHYyNy40cworICAgICAgICAKKyAgICAgICAg c3RwICAgICAgICAgICAgIHExOCwgcTE5LCBbeDBdCisgICAgICAgIGFkZCAgICAgICAgICAg ICB4MCwgeDAsIHgxMAorICAgICAgICBzdWJzICAgICAgICAgICAgdzMsIHczLCAjMQorICAg ICAgICBiLm5lICAgICAgICAgICAgMWIKKyAgICAgICAgcmV0CitlbmRmdW5jCisKK2Z1bmN0 aW9uIGZmX2hldmNfcHV0X2hldmNfcXBlbF9oMjRfOF9uZW9uX2RvdHByb2QsIGV4cG9ydD0x CisgICAgICAgIFFQRUxfSF9IRUFERVIKKyAgICAgICAgbW92ICAgICAgICAgICAgIHgxMCwg I01BWF9QQl9TSVpFICogMgorICAgICAgICBhZGQgICAgICAgICAgICAgeDE1LCB4MCwgIzMy CisxOgorICAgICAgICBsZDEgICAgICAgICAgICAge3YxNi4xNmIsIHYxNy4xNmJ9LCBbeDFd LCB4MgorICAgICAgICBleHQgICAgICAgICAgICAgdjEuMTZiLCB2MTYuMTZiLCB2MTcuMTZi LCAjMQorICAgICAgICBleHQgICAgICAgICAgICAgdjIuMTZiLCB2MTYuMTZiLCB2MTcuMTZi LCAjMgorICAgICAgICBleHQgICAgICAgICAgICAgdjMuMTZiLCB2MTYuMTZiLCB2MTcuMTZi LCAjMworICAgICAgICBleHQgICAgICAgICAgICAgdjQuMTZiLCB2MTYuMTZiLCB2MTcuMTZi LCAjNAorICAgICAgICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2MTYuMTZiLCB2MTcuMTZi LCAjNQorICAgICAgICBleHQgICAgICAgICAgICAgdjYuMTZiLCB2MTYuMTZiLCB2MTcuMTZi LCAjNgorICAgICAgICBleHQgICAgICAgICAgICAgdjcuMTZiLCB2MTYuMTZiLCB2MTcuMTZi LCAjNworICAgICAgICBRUEVMX0hfQ0FMQyAgICAgdjE2LCB2MSwgdjIsIHYzLCB2MjAsIHYy MSwgdjIyLCB2MjMKKyAgICAgICAgUVBFTF9IX0NBTEMgICAgIHY0LCB2NSwgdjYsIHY3LCB2 MjQsIHYyNSwgdjI2LCB2MjcKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyMC40cywgdjIw LjRzLCB2MjIuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyMS40cywgdjIxLjRzLCB2 MjMuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyNC40cywgdjI0LjRzLCB2MjYuNHMK KyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyNS40cywgdjI1LjRzLCB2MjcuNHMKKyAgICAg ICAgdHJuMSAgICAgICAgICAgIHYyMi40cywgdjIwLjRzLCB2MjEuNHMKKyAgICAgICAgdHJu MiAgICAgICAgICAgIHYyMy40cywgdjIwLjRzLCB2MjEuNHMKKyAgICAgICAgdHJuMSAgICAg ICAgICAgIHYyNi40cywgdjI0LjRzLCB2MjUuNHMKKyAgICAgICAgdHJuMiAgICAgICAgICAg IHYyNy40cywgdjI0LjRzLCB2MjUuNHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYxOC40 aCwgdjIyLjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2MTguOGgsIHYyNi40cworICAg ICAgICBzcXh0biAgICAgICAgICAgdjE5LjRoLCB2MjMuNHMKKyAgICAgICAgc3F4dG4yICAg ICAgICAgIHYxOS44aCwgdjI3LjRzCisgICAgICAgIHN0cCAgICAgICAgICAgICBxMTgsIHEx OSwgW3gwXQorICAgICAgICBhZGQgICAgICAgICAgICAgeDAsIHgwLCB4MTAKKyAgICAgICAg ZXh0ICAgICAgICAgICAgIHYxLjE2YiwgdjE3LjE2YiwgdjE3LjE2YiwgIzEKKyAgICAgICAg ZXh0ICAgICAgICAgICAgIHYyLjE2YiwgdjE3LjE2YiwgdjE3LjE2YiwgIzIKKyAgICAgICAg ZXh0ICAgICAgICAgICAgIHYzLjE2YiwgdjE3LjE2YiwgdjE3LjE2YiwgIzMKKyAgICAgICAg ZXh0ICAgICAgICAgICAgIHY0LjE2YiwgdjE3LjE2YiwgdjE3LjE2YiwgIzQKKyAgICAgICAg ZXh0ICAgICAgICAgICAgIHY1LjE2YiwgdjE3LjE2YiwgdjE3LjE2YiwgIzUKKyAgICAgICAg ZXh0ICAgICAgICAgICAgIHY2LjE2YiwgdjE3LjE2YiwgdjE3LjE2YiwgIzYKKyAgICAgICAg ZXh0ICAgICAgICAgICAgIHY3LjE2YiwgdjE3LjE2YiwgdjE3LjE2YiwgIzcKKyAgICAgICAg emlwMSAgICAgICAgICAgIHYwLjJkLCB2MTcuMmQsIHYxLjJkCisgICAgICAgIHppcDEgICAg ICAgICAgICB2Mi4yZCwgdjIuMmQsIHYzLjJkCisgICAgICAgIHppcDEgICAgICAgICAgICB2 NC4yZCwgdjQuMmQsIHY1LjJkCisgICAgICAgIHppcDEgICAgICAgICAgICB2Ni4yZCwgdjYu MmQsIHY3LjJkCisgICAgICAgIFFQRUxfSF9DQUxDICAgICB2MCwgdjIsIHY0LCB2NSwgdjIw LCB2MjEsIHYyMiwgdjIzCisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjAuNHMsIHYyMC40 cywgdjIxLjRzCisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjIuNHMsIHYyMi40cywgdjIz LjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjAuNGgsIHYyMC40cworICAgICAgICBz cXh0bjIgICAgICAgICAgdjIwLjhoLCB2MjIuNHMKKyAgICAgICAgc3RyICAgICAgICAgICAg IHEyMCwgW3gxNV0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNSwgeDE1LCB4MTAKKyAg ICAgICAgc3VicyAgICAgICAgICAgIHczLCB3MywgIzEKKyAgICAgICAgYi5uZSAgICAgICAg ICAgIDFiCisgICAgICAgIHJldAorZW5kZnVuYworCitmdW5jdGlvbiBmZl9oZXZjX3B1dF9o ZXZjX3FwZWxfaDMyXzhfbmVvbl9kb3Rwcm9kLCBleHBvcnQ9MQorICAgICAgICBRUEVMX0hf SEVBREVSCisgICAgICAgIG1vdiAgICAgICAgICAgICB4MTAsICNNQVhfUEJfU0laRSAqIDIK KyAgICAgICAgYWRkICAgICAgICAgICAgIHgxNSwgeDAsICMzMgorMToKKyAgICAgICAgbGQx ICAgICAgICAgICAgIHt2MTYuMTZiLCB2MTcuMTZiLCB2MTguMTZifSwgW3gxXSwgeDIKKyAg ICAgICAgZXh0ICAgICAgICAgICAgIHYxLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzEKKyAg ICAgICAgZXh0ICAgICAgICAgICAgIHYyLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzIKKyAg ICAgICAgZXh0ICAgICAgICAgICAgIHYzLjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzMKKyAg ICAgICAgZXh0ICAgICAgICAgICAgIHY0LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzQKKyAg ICAgICAgZXh0ICAgICAgICAgICAgIHY1LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzUKKyAg ICAgICAgZXh0ICAgICAgICAgICAgIHY2LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzYKKyAg ICAgICAgZXh0ICAgICAgICAgICAgIHY3LjE2YiwgdjE2LjE2YiwgdjE3LjE2YiwgIzcKKyAg ICAgICAgUVBFTF9IX0NBTEMgICAgIHYxNiwgdjEsIHYyLCB2MywgdjIwLCB2MjEsIHYyMiwg djIzCisgICAgICAgIFFQRUxfSF9DQUxDICAgICB2NCwgdjUsIHY2LCB2NywgdjI0LCB2MjUs IHYyNiwgdjI3CisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjAuNHMsIHYyMC40cywgdjIy LjRzCisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjEuNHMsIHYyMS40cywgdjIzLjRzCisg ICAgICAgIGFkZHAgICAgICAgICAgICB2MjQuNHMsIHYyNC40cywgdjI2LjRzCisgICAgICAg IGFkZHAgICAgICAgICAgICB2MjUuNHMsIHYyNS40cywgdjI3LjRzCisgICAgICAgIHRybjEg ICAgICAgICAgICB2MjIuNHMsIHYyMC40cywgdjIxLjRzCisgICAgICAgIHRybjIgICAgICAg ICAgICB2MjMuNHMsIHYyMC40cywgdjIxLjRzCisgICAgICAgIHRybjEgICAgICAgICAgICB2 MjYuNHMsIHYyNC40cywgdjI1LjRzCisgICAgICAgIHRybjIgICAgICAgICAgICB2MjcuNHMs IHYyNC40cywgdjI1LjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjAuNGgsIHYyMi40 cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjIwLjhoLCB2MjYuNHMKKyAgICAgICAgc3F4 dG4gICAgICAgICAgIHYyMS40aCwgdjIzLjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2 MjEuOGgsIHYyNy40cworICAgICAgICBzdHAgICAgICAgICAgICAgcTIwLCBxMjEsIFt4MF0K KyAgICAgICAgYWRkICAgICAgICAgICAgIHgwLCB4MCwgeDEwCisgICAgICAgIGV4dCAgICAg ICAgICAgICB2MS4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsICMxCisgICAgICAgIGV4dCAgICAg ICAgICAgICB2Mi4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsICMyCisgICAgICAgIGV4dCAgICAg ICAgICAgICB2My4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsICMzCisgICAgICAgIGV4dCAgICAg ICAgICAgICB2NC4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsICM0CisgICAgICAgIGV4dCAgICAg ICAgICAgICB2NS4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsICM1CisgICAgICAgIGV4dCAgICAg ICAgICAgICB2Ni4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsICM2CisgICAgICAgIGV4dCAgICAg ICAgICAgICB2Ny4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsICM3CisgICAgICAgIFFQRUxfSF9D QUxDICAgICB2MTcsIHYxLCB2MiwgdjMsIHYyMCwgdjIxLCB2MjIsIHYyMworICAgICAgICBR UEVMX0hfQ0FMQyAgICAgdjQsIHY1LCB2NiwgdjcsIHYyNCwgdjI1LCB2MjYsIHYyNworICAg ICAgICBhZGRwICAgICAgICAgICAgdjIwLjRzLCB2MjAuNHMsIHYyMi40cworICAgICAgICBh ZGRwICAgICAgICAgICAgdjIxLjRzLCB2MjEuNHMsIHYyMy40cworICAgICAgICBhZGRwICAg ICAgICAgICAgdjI0LjRzLCB2MjQuNHMsIHYyNi40cworICAgICAgICBhZGRwICAgICAgICAg ICAgdjI1LjRzLCB2MjUuNHMsIHYyNy40cworICAgICAgICB0cm4xICAgICAgICAgICAgdjIy LjRzLCB2MjAuNHMsIHYyMS40cworICAgICAgICB0cm4yICAgICAgICAgICAgdjIzLjRzLCB2 MjAuNHMsIHYyMS40cworICAgICAgICB0cm4xICAgICAgICAgICAgdjI2LjRzLCB2MjQuNHMs IHYyNS40cworICAgICAgICB0cm4yICAgICAgICAgICAgdjI3LjRzLCB2MjQuNHMsIHYyNS40 cworICAgICAgICBzcXh0biAgICAgICAgICAgdjIwLjRoLCB2MjIuNHMKKyAgICAgICAgc3F4 dG4yICAgICAgICAgIHYyMC44aCwgdjI2LjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2 MjEuNGgsIHYyMy40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjIxLjhoLCB2MjcuNHMK KyAgICAgICAgc3RwICAgICAgICAgICAgIHEyMCwgcTIxLCBbeDE1XQorICAgICAgICBhZGQg ICAgICAgICAgICAgeDE1LCB4MTUsIHgxMAorICAgICAgICBzdWJzICAgICAgICAgICAgdzMs IHczLCAjMQorICAgICAgICBiLm5lICAgICAgICAgICAgMWIKKyAgICAgICAgcmV0CitlbmRm dW5jCisKK2Z1bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcXBlbF9oNDhfOF9uZW9uX2RvdHBy b2QsIGV4cG9ydD0xCisgICAgICAgIFFQRUxfSF9IRUFERVIKKyAgICAgICAgbW92ICAgICAg ICAgICAgIHgxMCwgI01BWF9QQl9TSVpFICogMiAtIDY0CisxOgorICAgICAgICBsZDEgICAg ICAgICAgICAge3YxNi4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsIHYxOS4xNmJ9LCBbeDFdLCB4 MgorICAgICAgICBleHQgICAgICAgICAgICAgdjEuMTZiLCB2MTYuMTZiLCB2MTcuMTZiLCAj MQorICAgICAgICBleHQgICAgICAgICAgICAgdjIuMTZiLCB2MTYuMTZiLCB2MTcuMTZiLCAj MgorICAgICAgICBleHQgICAgICAgICAgICAgdjMuMTZiLCB2MTYuMTZiLCB2MTcuMTZiLCAj MworICAgICAgICBleHQgICAgICAgICAgICAgdjQuMTZiLCB2MTYuMTZiLCB2MTcuMTZiLCAj NAorICAgICAgICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2MTYuMTZiLCB2MTcuMTZiLCAj NQorICAgICAgICBleHQgICAgICAgICAgICAgdjYuMTZiLCB2MTYuMTZiLCB2MTcuMTZiLCAj NgorICAgICAgICBleHQgICAgICAgICAgICAgdjcuMTZiLCB2MTYuMTZiLCB2MTcuMTZiLCAj NworICAgICAgICBRUEVMX0hfQ0FMQyAgICAgdjE2LCB2MSwgdjIsIHYzLCB2MjAsIHYyMSwg djIyLCB2MjMKKyAgICAgICAgUVBFTF9IX0NBTEMgICAgIHY0LCB2NSwgdjYsIHY3LCB2MjQs IHYyNSwgdjI2LCB2MjcKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyMC40cywgdjIwLjRz LCB2MjIuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyMS40cywgdjIxLjRzLCB2MjMu NHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyNC40cywgdjI0LjRzLCB2MjYuNHMKKyAg ICAgICAgYWRkcCAgICAgICAgICAgIHYyNS40cywgdjI1LjRzLCB2MjcuNHMKKyAgICAgICAg dHJuMSAgICAgICAgICAgIHYyMi40cywgdjIwLjRzLCB2MjEuNHMKKyAgICAgICAgdHJuMiAg ICAgICAgICAgIHYyMy40cywgdjIwLjRzLCB2MjEuNHMKKyAgICAgICAgdHJuMSAgICAgICAg ICAgIHYyNi40cywgdjI0LjRzLCB2MjUuNHMKKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYy Ny40cywgdjI0LjRzLCB2MjUuNHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYyMC40aCwg djIyLjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2MjAuOGgsIHYyNi40cworICAgICAg ICBzcXh0biAgICAgICAgICAgdjIxLjRoLCB2MjMuNHMKKyAgICAgICAgc3F4dG4yICAgICAg ICAgIHYyMS44aCwgdjI3LjRzCisgICAgICAgIHN0cCAgICAgICAgICAgICBxMjAsIHEyMSwg W3gwXSwgIzMyCisKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYxLjE2YiwgdjE3LjE2Yiwg djE4LjE2YiwgIzEKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYyLjE2YiwgdjE3LjE2Yiwg djE4LjE2YiwgIzIKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHYzLjE2YiwgdjE3LjE2Yiwg djE4LjE2YiwgIzMKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY0LjE2YiwgdjE3LjE2Yiwg djE4LjE2YiwgIzQKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY1LjE2YiwgdjE3LjE2Yiwg djE4LjE2YiwgIzUKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY2LjE2YiwgdjE3LjE2Yiwg djE4LjE2YiwgIzYKKyAgICAgICAgZXh0ICAgICAgICAgICAgIHY3LjE2YiwgdjE3LjE2Yiwg djE4LjE2YiwgIzcKKyAgICAgICAgUVBFTF9IX0NBTEMgICAgIHYxNywgdjEsIHYyLCB2Mywg djIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIFFQRUxfSF9DQUxDICAgICB2NCwgdjUsIHY2 LCB2NywgdjI0LCB2MjUsIHYyNiwgdjI3CisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjAu NHMsIHYyMC40cywgdjIyLjRzCisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjEuNHMsIHYy MS40cywgdjIzLjRzCisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjQuNHMsIHYyNC40cywg djI2LjRzCisgICAgICAgIGFkZHAgICAgICAgICAgICB2MjUuNHMsIHYyNS40cywgdjI3LjRz CisgICAgICAgIHRybjEgICAgICAgICAgICB2MjIuNHMsIHYyMC40cywgdjIxLjRzCisgICAg ICAgIHRybjIgICAgICAgICAgICB2MjMuNHMsIHYyMC40cywgdjIxLjRzCisgICAgICAgIHRy bjEgICAgICAgICAgICB2MjYuNHMsIHYyNC40cywgdjI1LjRzCisgICAgICAgIHRybjIgICAg ICAgICAgICB2MjcuNHMsIHYyNC40cywgdjI1LjRzCisgICAgICAgIHNxeHRuICAgICAgICAg ICB2MjAuNGgsIHYyMi40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjIwLjhoLCB2MjYu NHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYyMS40aCwgdjIzLjRzCisgICAgICAgIHNx eHRuMiAgICAgICAgICB2MjEuOGgsIHYyNy40cworICAgICAgICBzdHAgICAgICAgICAgICAg cTIwLCBxMjEsIFt4MF0sICMzMgorICAgICAgICBleHQgICAgICAgICAgICAgdjEuMTZiLCB2 MTguMTZiLCB2MTkuMTZiLCAjMQorICAgICAgICBleHQgICAgICAgICAgICAgdjIuMTZiLCB2 MTguMTZiLCB2MTkuMTZiLCAjMgorICAgICAgICBleHQgICAgICAgICAgICAgdjMuMTZiLCB2 MTguMTZiLCB2MTkuMTZiLCAjMworICAgICAgICBleHQgICAgICAgICAgICAgdjQuMTZiLCB2 MTguMTZiLCB2MTkuMTZiLCAjNAorICAgICAgICBleHQgICAgICAgICAgICAgdjUuMTZiLCB2 MTguMTZiLCB2MTkuMTZiLCAjNQorICAgICAgICBleHQgICAgICAgICAgICAgdjYuMTZiLCB2 MTguMTZiLCB2MTkuMTZiLCAjNgorICAgICAgICBleHQgICAgICAgICAgICAgdjcuMTZiLCB2 MTguMTZiLCB2MTkuMTZiLCAjNworICAgICAgICBRUEVMX0hfQ0FMQyAgICAgdjE4LCB2MSwg djIsIHYzLCB2MjAsIHYyMSwgdjIyLCB2MjMKKyAgICAgICAgUVBFTF9IX0NBTEMgICAgIHY0 LCB2NSwgdjYsIHY3LCB2MjQsIHYyNSwgdjI2LCB2MjcKKyAgICAgICAgYWRkcCAgICAgICAg ICAgIHYyMC40cywgdjIwLjRzLCB2MjIuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYy MS40cywgdjIxLjRzLCB2MjMuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyNC40cywg djI0LjRzLCB2MjYuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYyNS40cywgdjI1LjRz LCB2MjcuNHMKKyAgICAgICAgdHJuMSAgICAgICAgICAgIHYyMi40cywgdjIwLjRzLCB2MjEu NHMKKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYyMy40cywgdjIwLjRzLCB2MjEuNHMKKyAg ICAgICAgdHJuMSAgICAgICAgICAgIHYyNi40cywgdjI0LjRzLCB2MjUuNHMKKyAgICAgICAg dHJuMiAgICAgICAgICAgIHYyNy40cywgdjI0LjRzLCB2MjUuNHMKKyAgICAgICAgc3F4dG4g ICAgICAgICAgIHYyMC40aCwgdjIyLjRzCisgICAgICAgIHNxeHRuMiAgICAgICAgICB2MjAu OGgsIHYyNi40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjIxLjRoLCB2MjMuNHMKKyAg ICAgICAgc3F4dG4yICAgICAgICAgIHYyMS44aCwgdjI3LjRzCisgICAgICAgIHN0cCAgICAg ICAgICAgICBxMjAsIHEyMSwgW3gwXQorICAgICAgICBhZGQgICAgICAgICAgICAgeDAsIHgw LCB4MTAKKyAgICAgICAgc3VicyAgICAgICAgICAgIHczLCB3MywgIzEKKyAgICAgICAgYi5u ZSAgICAgICAgICAgIDFiCisgICAgICAgIHJldAorZW5kZnVuYworCitmdW5jdGlvbiBmZl9o ZXZjX3B1dF9oZXZjX3FwZWxfaDY0XzhfbmVvbl9kb3Rwcm9kLCBleHBvcnQ9MQorICAgICAg ICBRUEVMX0hfSEVBREVSCisgICAgICAgIHN1YiAgICAgICAgICAgICB4MiwgeDIsICM2NAor MToKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTYuMTZiLCB2MTcuMTZiLCB2MTguMTZi LCB2MTkuMTZifSwgW3gxXSwgIzY0CisgICAgICAgIGV4dCAgICAgICAgICAgICB2MS4xNmIs IHYxNi4xNmIsIHYxNy4xNmIsICMxCisgICAgICAgIGV4dCAgICAgICAgICAgICB2Mi4xNmIs IHYxNi4xNmIsIHYxNy4xNmIsICMyCisgICAgICAgIGV4dCAgICAgICAgICAgICB2My4xNmIs IHYxNi4xNmIsIHYxNy4xNmIsICMzCisgICAgICAgIGV4dCAgICAgICAgICAgICB2NC4xNmIs IHYxNi4xNmIsIHYxNy4xNmIsICM0CisgICAgICAgIGV4dCAgICAgICAgICAgICB2NS4xNmIs IHYxNi4xNmIsIHYxNy4xNmIsICM1CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ni4xNmIs IHYxNi4xNmIsIHYxNy4xNmIsICM2CisgICAgICAgIGV4dCAgICAgICAgICAgICB2Ny4xNmIs IHYxNi4xNmIsIHYxNy4xNmIsICM3CisgICAgICAgIFFQRUxfSF9DQUxDICAgICB2MTYsIHYx LCB2MiwgdjMsIHYyMCwgdjIxLCB2MjIsIHYyMworICAgICAgICBRUEVMX0hfQ0FMQyAgICAg djQsIHY1LCB2NiwgdjcsIHYyNCwgdjI1LCB2MjYsIHYyNworICAgICAgICBhZGRwICAgICAg ICAgICAgdjIwLjRzLCB2MjAuNHMsIHYyMi40cworICAgICAgICBhZGRwICAgICAgICAgICAg djIxLjRzLCB2MjEuNHMsIHYyMy40cworICAgICAgICBhZGRwICAgICAgICAgICAgdjI0LjRz LCB2MjQuNHMsIHYyNi40cworICAgICAgICBhZGRwICAgICAgICAgICAgdjI1LjRzLCB2MjUu NHMsIHYyNy40cworICAgICAgICB0cm4xICAgICAgICAgICAgdjIyLjRzLCB2MjAuNHMsIHYy MS40cworICAgICAgICB0cm4yICAgICAgICAgICAgdjIzLjRzLCB2MjAuNHMsIHYyMS40cwor ICAgICAgICB0cm4xICAgICAgICAgICAgdjI2LjRzLCB2MjQuNHMsIHYyNS40cworICAgICAg ICB0cm4yICAgICAgICAgICAgdjI3LjRzLCB2MjQuNHMsIHYyNS40cworICAgICAgICBzcXh0 biAgICAgICAgICAgdjIwLjRoLCB2MjIuNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYy MC44aCwgdjI2LjRzCisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjEuNGgsIHYyMy40cwor ICAgICAgICBzcXh0bjIgICAgICAgICAgdjIxLjhoLCB2MjcuNHMKKyAgICAgICAgc3RwICAg ICAgICAgICAgIHEyMCwgcTIxLCBbeDBdLCAjMzIKKworICAgICAgICBleHQgICAgICAgICAg ICAgdjEuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjMQorICAgICAgICBleHQgICAgICAgICAg ICAgdjIuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjMgorICAgICAgICBleHQgICAgICAgICAg ICAgdjMuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjMworICAgICAgICBleHQgICAgICAgICAg ICAgdjQuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjNAorICAgICAgICBleHQgICAgICAgICAg ICAgdjUuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjNQorICAgICAgICBleHQgICAgICAgICAg ICAgdjYuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjNgorICAgICAgICBleHQgICAgICAgICAg ICAgdjcuMTZiLCB2MTcuMTZiLCB2MTguMTZiLCAjNworICAgICAgICBRUEVMX0hfQ0FMQyAg ICAgdjE3LCB2MSwgdjIsIHYzLCB2MjAsIHYyMSwgdjIyLCB2MjMKKyAgICAgICAgUVBFTF9I X0NBTEMgICAgIHY0LCB2NSwgdjYsIHY3LCB2MjQsIHYyNSwgdjI2LCB2MjcKKyAgICAgICAg YWRkcCAgICAgICAgICAgIHYyMC40cywgdjIwLjRzLCB2MjIuNHMKKyAgICAgICAgYWRkcCAg ICAgICAgICAgIHYyMS40cywgdjIxLjRzLCB2MjMuNHMKKyAgICAgICAgYWRkcCAgICAgICAg ICAgIHYyNC40cywgdjI0LjRzLCB2MjYuNHMKKyAgICAgICAgYWRkcCAgICAgICAgICAgIHYy NS40cywgdjI1LjRzLCB2MjcuNHMKKyAgICAgICAgdHJuMSAgICAgICAgICAgIHYyMi40cywg djIwLjRzLCB2MjEuNHMKKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYyMy40cywgdjIwLjRz LCB2MjEuNHMKKyAgICAgICAgdHJuMSAgICAgICAgICAgIHYyNi40cywgdjI0LjRzLCB2MjUu NHMKKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYyNy40cywgdjI0LjRzLCB2MjUuNHMKKyAg ICAgICAgc3F4dG4gICAgICAgICAgIHYyMC40aCwgdjIyLjRzCisgICAgICAgIHNxeHRuMiAg ICAgICAgICB2MjAuOGgsIHYyNi40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjIxLjRo LCB2MjMuNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYyMS44aCwgdjI3LjRzCisgICAg ICAgIHN0cCAgICAgICAgICAgICBxMjAsIHEyMSwgW3gwXSwgIzMyCisgICAgICAgIGV4dCAg ICAgICAgICAgICB2MS4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICMxCisgICAgICAgIGV4dCAg ICAgICAgICAgICB2Mi4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICMyCisgICAgICAgIGV4dCAg ICAgICAgICAgICB2My4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICMzCisgICAgICAgIGV4dCAg ICAgICAgICAgICB2NC4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICM0CisgICAgICAgIGV4dCAg ICAgICAgICAgICB2NS4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICM1CisgICAgICAgIGV4dCAg ICAgICAgICAgICB2Ni4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICM2CisgICAgICAgIGV4dCAg ICAgICAgICAgICB2Ny4xNmIsIHYxOC4xNmIsIHYxOS4xNmIsICM3CisgICAgICAgIFFQRUxf SF9DQUxDICAgICB2MTgsIHYxLCB2MiwgdjMsIHYyMCwgdjIxLCB2MjIsIHYyMworICAgICAg ICBRUEVMX0hfQ0FMQyAgICAgdjQsIHY1LCB2NiwgdjcsIHYyNCwgdjI1LCB2MjYsIHYyNwor ICAgICAgICBhZGRwICAgICAgICAgICAgdjIwLjRzLCB2MjAuNHMsIHYyMi40cworICAgICAg ICBhZGRwICAgICAgICAgICAgdjIxLjRzLCB2MjEuNHMsIHYyMy40cworICAgICAgICBhZGRw ICAgICAgICAgICAgdjI0LjRzLCB2MjQuNHMsIHYyNi40cworICAgICAgICBhZGRwICAgICAg ICAgICAgdjI1LjRzLCB2MjUuNHMsIHYyNy40cworICAgICAgICB0cm4xICAgICAgICAgICAg djIyLjRzLCB2MjAuNHMsIHYyMS40cworICAgICAgICB0cm4yICAgICAgICAgICAgdjIzLjRz LCB2MjAuNHMsIHYyMS40cworICAgICAgICB0cm4xICAgICAgICAgICAgdjI2LjRzLCB2MjQu NHMsIHYyNS40cworICAgICAgICB0cm4yICAgICAgICAgICAgdjI3LjRzLCB2MjQuNHMsIHYy NS40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjIwLjRoLCB2MjIuNHMKKyAgICAgICAg c3F4dG4yICAgICAgICAgIHYyMC44aCwgdjI2LjRzCisgICAgICAgIHNxeHRuICAgICAgICAg ICB2MjEuNGgsIHYyMy40cworICAgICAgICBzcXh0bjIgICAgICAgICAgdjIxLjhoLCB2Mjcu NHMKKyAgICAgICAgc3RwICAgICAgICAgICAgIHEyMCwgcTIxLCBbeDBdLCAjMzIKKyAgICAg ICAgbGQxICAgICAgICAgICAgIHt2MjguOGJ9LCBbeDFdLCB4MgorICAgICAgICBleHQgICAg ICAgICAgICAgdjEuMTZiLCB2MTkuMTZiLCB2MjguMTZiLCAjMQorICAgICAgICBleHQgICAg ICAgICAgICAgdjIuMTZiLCB2MTkuMTZiLCB2MjguMTZiLCAjMgorICAgICAgICBleHQgICAg ICAgICAgICAgdjMuMTZiLCB2MTkuMTZiLCB2MjguMTZiLCAjMworICAgICAgICBleHQgICAg ICAgICAgICAgdjQuMTZiLCB2MTkuMTZiLCB2MjguMTZiLCAjNAorICAgICAgICBleHQgICAg ICAgICAgICAgdjUuMTZiLCB2MTkuMTZiLCB2MjguMTZiLCAjNQorICAgICAgICBleHQgICAg ICAgICAgICAgdjYuMTZiLCB2MTkuMTZiLCB2MjguMTZiLCAjNgorICAgICAgICBleHQgICAg ICAgICAgICAgdjcuMTZiLCB2MTkuMTZiLCB2MjguMTZiLCAjNworICAgICAgICBRUEVMX0hf Q0FMQyAgICAgdjE5LCB2MSwgdjIsIHYzLCB2MjAsIHYyMSwgdjIyLCB2MjMKKyAgICAgICAg UVBFTF9IX0NBTEMgICAgIHY0LCB2NSwgdjYsIHY3LCB2MjQsIHYyNSwgdjI2LCB2MjcKKyAg ICAgICAgYWRkcCAgICAgICAgICAgIHYyMC40cywgdjIwLjRzLCB2MjIuNHMKKyAgICAgICAg YWRkcCAgICAgICAgICAgIHYyMS40cywgdjIxLjRzLCB2MjMuNHMKKyAgICAgICAgYWRkcCAg ICAgICAgICAgIHYyNC40cywgdjI0LjRzLCB2MjYuNHMKKyAgICAgICAgYWRkcCAgICAgICAg ICAgIHYyNS40cywgdjI1LjRzLCB2MjcuNHMKKyAgICAgICAgdHJuMSAgICAgICAgICAgIHYy Mi40cywgdjIwLjRzLCB2MjEuNHMKKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYyMy40cywg djIwLjRzLCB2MjEuNHMKKyAgICAgICAgdHJuMSAgICAgICAgICAgIHYyNi40cywgdjI0LjRz LCB2MjUuNHMKKyAgICAgICAgdHJuMiAgICAgICAgICAgIHYyNy40cywgdjI0LjRzLCB2MjUu NHMKKyAgICAgICAgc3F4dG4gICAgICAgICAgIHYyMC40aCwgdjIyLjRzCisgICAgICAgIHNx eHRuMiAgICAgICAgICB2MjAuOGgsIHYyNi40cworICAgICAgICBzcXh0biAgICAgICAgICAg djIxLjRoLCB2MjMuNHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYyMS44aCwgdjI3LjRz CisgICAgICAgIHN0cCAgICAgICAgICAgICBxMjAsIHEyMSwgW3gwXSwgIzMyCisgICAgICAg IHN1YnMgICAgICAgICAgICB3MywgdzMsICMxCisgICAgICAgIGIubmUgICAgICAgICAgICAx YgorICAgICAgICByZXQKK2VuZGZ1bmMKKworLm1hY3JvIFFQRUxfVU5JX1dfSFZfSEVBREVS IHdpZHRoCisgICAgICAgIGxkcCAgICAgICAgICAgICB4MTQsIHgxNSwgW3NwXSAgICAgICAg ICAvLyBteCwgbXkKKyAgICAgICAgbGRyICAgICAgICAgICAgIHcxMywgW3NwLCAjMTZdICAg ICAgICAgIC8vIHdpZHRoCisgICAgICAgIHN0cCAgICAgICAgICAgICB4MjAsIHgyMSwgW3Nw LCAjLTE2XSEKKyAgICAgICAgc3RwICAgICAgICAgICAgIHgyMiwgeDIzLCBbc3AsICMtMTZd IQorICAgICAgICBzdHAgICAgICAgICAgICAgeDI0LCB4MjUsIFtzcCwgIy0xNl0hCisgICAg ICAgIHN0cCAgICAgICAgICAgICB4MjYsIHgyNywgW3NwLCAjLTE2XSEKKyAgICAgICAgc3Rw ICAgICAgICAgICAgIHgyOCwgeDMwLCBbc3AsICMtMTZdIQorICAgICAgICBtb3YgICAgICAg ICAgICAgeDI4LCBzcAorICAgICAgICBtb3YgICAgICAgICAgICAgeDExLCAjOTA4OAorICAg ICAgICBzdWIgICAgICAgICAgICAgc3AsIHNwLCB4MTEKKyAgICAgICAgbW92ICAgICAgICAg ICAgIHgyMCwgeDAKKyAgICAgICAgbW92ICAgICAgICAgICAgIHgyMSwgeDEKKyAgICAgICAg bW92ICAgICAgICAgICAgIHgwLCBzcAorICAgICAgICBzdWIgICAgICAgICAgICAgeDEsIHgy LCB4MywgbHNsIDEKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MSwgeDMKKyAgICAg ICAgbW92ICAgICAgICAgICAgIHgyLCB4MworICAgICAgICBhZGQgICAgICAgICAgICAgdzMs IHc0LCAjNworICAgICAgICBtb3YgICAgICAgICAgICAgdzIyLCB3NCAgICAgICAgICAgICAg ICAgLy8gaGVpZ2h0CisgICAgICAgIG1vdiAgICAgICAgICAgICB4NCwgeDE0ICAgICAgICAg ICAgICAgICAvLyBteAorICAgICAgICBtb3YgICAgICAgICAgICAgeDIzLCB4MTUgICAgICAg ICAgICAgICAgLy8gbXkKKyAgICAgICAgbW92ICAgICAgICAgICAgIHcyNCwgdzYgICAgICAg ICAgICAgICAgIC8vIHd4CisgICAgICAgIG1vdiAgICAgICAgICAgICB3MjUsIHc3ICAgICAg ICAgICAgICAgICAvLyBveAorICAgICAgICBtb3YgICAgICAgICAgICAgdzI2LCAjLTYKKyAg ICAgICAgc3ViICAgICAgICAgICAgIHcyNiwgdzI2LCB3NSAgICAgICAgICAgIC8vIC1zaGlm dAorICAgICAgICBtb3YgICAgICAgICAgICAgdzI3LCB3MTMgICAgICAgICAgICAgICAgLy8g d2lkdGgKKyAgICAgICAgYmwgICAgICAgICAgICAgIFgoZmZfaGV2Y19wdXRfaGV2Y19xcGVs X2hcd2lkdGhcKClfOF9uZW9uX2RvdHByb2QpCisgICAgICAgIG1vdnJlbCAgICAgICAgICB4 OSwgcXBlbF9maWx0ZXJzCisgICAgICAgIGFkZCAgICAgICAgICAgICB4OSwgeDksIHgyMywg bHNsIDMKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MC44Yn0sIFt4OV0KKyAgICAgICAg c3h0bCAgICAgICAgICAgIHYwLjhoLCB2MC44YgorICAgICAgICBtb3YgICAgICAgICAgICAg eDEwLCAjKE1BWF9QQl9TSVpFICogMikKKyAgICAgICAgZHVwICAgICAgICAgICAgIHYyOC40 cywgdzI0CisgICAgICAgIGR1cCAgICAgICAgICAgICB2MjkuNHMsIHcyNQorICAgICAgICBk dXAgICAgICAgICAgICAgdjMwLjRzLCB3MjYKKy5lbmRtCisKKy5tYWNybyBRUEVMX1VOSV9X X0hWX0VORAorICAgICAgICBtb3YgICAgICAgICAgICAgc3AsIHgyOAorICAgICAgICBsZHAg ICAgICAgICAgICAgeDI4LCB4MzAsIFtzcF0sICMxNgorICAgICAgICBsZHAgICAgICAgICAg ICAgeDI2LCB4MjcsIFtzcF0sICMxNgorICAgICAgICBsZHAgICAgICAgICAgICAgeDI0LCB4 MjUsIFtzcF0sICMxNgorICAgICAgICBsZHAgICAgICAgICAgICAgeDIyLCB4MjMsIFtzcF0s ICMxNgorICAgICAgICBsZHAgICAgICAgICAgICAgeDIwLCB4MjEsIFtzcF0sICMxNgorLmVu ZG0KKworLm1hY3JvIFFQRUxfVU5JX1dfSFZfNAorICAgICAgICBzc2hyICAgICAgICAgICAg djI2LjRzLCB2MjYuNHMsICM2CisgICAgICAgIG11bCAgICAgICAgICAgICB2MjQuNHMsIHYy Ni40cywgdjI4LjRzCisgICAgICAgIHNxcnNobCAgICAgICAgICB2MjQuNHMsIHYyNC40cywg djMwLjRzCisgICAgICAgIHNxYWRkICAgICAgICAgICB2MjQuNHMsIHYyNC40cywgdjI5LjRz CisgICAgICAgIHNxeHRuICAgICAgICAgICB2MjQuNGgsIHYyNC40cworICAgICAgICBzcXh0 dW4gICAgICAgICAgdjI0LjhiLCB2MjQuOGgKKyAgICAgICAgc3QxICAgICAgICAgICAgIHt2 MjQuc31bMF0sIFt4MjBdLCB4MjEKKy5lbmRtCisKKy5tYWNybyBRUEVMX0ZJTFRFUl9IICAg IGRzdCwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNwor ICAgICAgICBzbXVsbCAgICAgICAgICAgXGRzdFwoKS40cywgXHNyYzBcKCkuNGgsIHYwLmhb MF0KKyAgICAgICAgc21sYWwgICAgICAgICAgIFxkc3RcKCkuNHMsIFxzcmMxXCgpLjRoLCB2 MC5oWzFdCisgICAgICAgIHNtbGFsICAgICAgICAgICBcZHN0XCgpLjRzLCBcc3JjMlwoKS40 aCwgdjAuaFsyXQorICAgICAgICBzbWxhbCAgICAgICAgICAgXGRzdFwoKS40cywgXHNyYzNc KCkuNGgsIHYwLmhbM10KKyAgICAgICAgc21sYWwgICAgICAgICAgIFxkc3RcKCkuNHMsIFxz cmM0XCgpLjRoLCB2MC5oWzRdCisgICAgICAgIHNtbGFsICAgICAgICAgICBcZHN0XCgpLjRz LCBcc3JjNVwoKS40aCwgdjAuaFs1XQorICAgICAgICBzbWxhbCAgICAgICAgICAgXGRzdFwo KS40cywgXHNyYzZcKCkuNGgsIHYwLmhbNl0KKyAgICAgICAgc21sYWwgICAgICAgICAgIFxk c3RcKCkuNHMsIFxzcmM3XCgpLjRoLCB2MC5oWzddCisuZW5kbQorCisubWFjcm8gUVBFTF9G SUxURVJfSDIgICAgZHN0LCBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0LCBzcmM1LCBz cmM2LCBzcmM3CisgICAgICAgIHNtdWxsMiAgICAgICAgICBcZHN0XCgpLjRzLCBcc3JjMFwo KS44aCwgdjAuaFswXQorICAgICAgICBzbWxhbDIgICAgICAgICAgXGRzdFwoKS40cywgXHNy YzFcKCkuOGgsIHYwLmhbMV0KKyAgICAgICAgc21sYWwyICAgICAgICAgIFxkc3RcKCkuNHMs IFxzcmMyXCgpLjhoLCB2MC5oWzJdCisgICAgICAgIHNtbGFsMiAgICAgICAgICBcZHN0XCgp LjRzLCBcc3JjM1woKS44aCwgdjAuaFszXQorICAgICAgICBzbWxhbDIgICAgICAgICAgXGRz dFwoKS40cywgXHNyYzRcKCkuOGgsIHYwLmhbNF0KKyAgICAgICAgc21sYWwyICAgICAgICAg IFxkc3RcKCkuNHMsIFxzcmM1XCgpLjhoLCB2MC5oWzVdCisgICAgICAgIHNtbGFsMiAgICAg ICAgICBcZHN0XCgpLjRzLCBcc3JjNlwoKS44aCwgdjAuaFs2XQorICAgICAgICBzbWxhbDIg ICAgICAgICAgXGRzdFwoKS40cywgXHNyYzdcKCkuOGgsIHYwLmhbN10KKy5lbmRtCisKK2Z1 bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcXBlbF91bmlfd19odjRfOF9uZW9uX2RvdHByb2Qs IGV4cG9ydD0xCisgICAgICAgIFFQRUxfVU5JX1dfSFZfSEVBREVSIDQKKyAgICAgICAgbGRy ICAgICAgICAgICAgIGQxNiwgW3NwXQorICAgICAgICBsZHIgICAgICAgICAgICAgZDE3LCBb c3AsIHgxMF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwLCBsc2wgMQor ICAgICAgICBsZHIgICAgICAgICAgICAgZDE4LCBbc3BdCisgICAgICAgIGxkciAgICAgICAg ICAgICBkMTksIFtzcCwgeDEwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4 MTAsIGxzbCAxCisgICAgICAgIGxkciAgICAgICAgICAgICBkMjAsIFtzcF0KKyAgICAgICAg bGRyICAgICAgICAgICAgIGQyMSwgW3NwLCB4MTBdCisgICAgICAgIGFkZCAgICAgICAgICAg ICBzcCwgc3AsIHgxMCwgbHNsIDEKKyAgICAgICAgbGRyICAgICAgICAgICAgIGQyMiwgW3Nw XQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKzE6CisgICAgICAgIGxk ciAgICAgICAgICAgICBkMjMsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBz cCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsIHYxNiwgdjE3LCB2MTgsIHYx OSwgdjIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIFFQRUxfVU5JX1dfSFZfNAorICAgICAg ICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAg ICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBkMTYsIFtzcF0KKyAgICAgICAgYWRk ICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYs IHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2CisgICAgICAgIFFQRUxf VU5JX1dfSFZfNAorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAg ICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBkMTcs IFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQ RUxfRklMVEVSX0ggICB2MjYsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYxNiwg djE3CisgICAgICAgIFFQRUxfVU5JX1dfSFZfNAorICAgICAgICBzdWJzICAgICAgICAgICAg dzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxk ciAgICAgICAgICAgICBkMTgsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBz cCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsIHYxOSwgdjIwLCB2MjEsIHYy MiwgdjIzLCB2MTYsIHYxNywgdjE4CisgICAgICAgIFFQRUxfVU5JX1dfSFZfNAorICAgICAg ICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAg ICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBkMTksIFtzcF0KKyAgICAgICAgYWRk ICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYs IHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5CisgICAgICAgIFFQRUxf VU5JX1dfSFZfNAorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAg ICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBkMjAs IFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQ RUxfRklMVEVSX0ggICB2MjYsIHYyMSwgdjIyLCB2MjMsIHYxNiwgdjE3LCB2MTgsIHYxOSwg djIwCisgICAgICAgIFFQRUxfVU5JX1dfSFZfNAorICAgICAgICBzdWJzICAgICAgICAgICAg dzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxk ciAgICAgICAgICAgICBkMjEsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBz cCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsIHYyMiwgdjIzLCB2MTYsIHYx NywgdjE4LCB2MTksIHYyMCwgdjIxCisgICAgICAgIFFQRUxfVU5JX1dfSFZfNAorICAgICAg ICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAg ICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBkMjIsIFtzcF0KKyAgICAgICAgYWRk ICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYs IHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyCisgICAgICAgIFFQRUxf VU5JX1dfSFZfNAorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAg ICAgIGIuaGkgICAgICAgICAgICAxYgorCisyOgorICAgICAgICBRUEVMX1VOSV9XX0hWX0VO RAorICAgICAgICByZXQKK2VuZGZ1bmMKKworLm1hY3JvIFFQRUxfVU5JX1dfSFZfOAorICAg ICAgICBzc2hyICAgICAgICAgICAgdjI2LjRzLCB2MjYuNHMsICM2CisgICAgICAgIHNzaHIg ICAgICAgICAgICB2MjcuNHMsIHYyNy40cywgIzYKKyAgICAgICAgbXVsICAgICAgICAgICAg IHYyNC40cywgdjI2LjRzLCB2MjguNHMKKyAgICAgICAgbXVsICAgICAgICAgICAgIHYyNS40 cywgdjI3LjRzLCB2MjguNHMKKyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYyNC40cywgdjI0 LjRzLCB2MzAuNHMKKyAgICAgICAgc3Fyc2hsICAgICAgICAgIHYyNS40cywgdjI1LjRzLCB2 MzAuNHMKKyAgICAgICAgc3FhZGQgICAgICAgICAgIHYyNC40cywgdjI0LjRzLCB2MjkuNHMK KyAgICAgICAgc3FhZGQgICAgICAgICAgIHYyNS40cywgdjI1LjRzLCB2MjkuNHMKKyAgICAg ICAgc3F4dG4gICAgICAgICAgIHYyNC40aCwgdjI0LjRzCisgICAgICAgIHNxeHRuMiAgICAg ICAgICB2MjQuOGgsIHYyNS40cworICAgICAgICBzcXh0dW4gICAgICAgICAgdjI0LjhiLCB2 MjQuOGgKKyAgICAgICAgc3QxICAgICAgICAgICAgIHt2MjQuZH1bMF0sIFt4MjBdLCB4MjEK Ky5lbmRtCisKK2Z1bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcXBlbF91bmlfd19odjhfOF9u ZW9uX2RvdHByb2QsIGV4cG9ydD0xCisgICAgICAgIFFQRUxfVU5JX1dfSFZfSEVBREVSIDgK KyAgICAgICAgbGRyICAgICAgICAgICAgIHExNiwgW3NwXQorICAgICAgICBsZHIgICAgICAg ICAgICAgcTE3LCBbc3AsIHgxMF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwg eDEwLCBsc2wgMQorICAgICAgICBsZHIgICAgICAgICAgICAgcTE4LCBbc3BdCisgICAgICAg IGxkciAgICAgICAgICAgICBxMTksIFtzcCwgeDEwXQorICAgICAgICBhZGQgICAgICAgICAg ICAgc3AsIHNwLCB4MTAsIGxzbCAxCisgICAgICAgIGxkciAgICAgICAgICAgICBxMjAsIFtz cF0KKyAgICAgICAgbGRyICAgICAgICAgICAgIHEyMSwgW3NwLCB4MTBdCisgICAgICAgIGFk ZCAgICAgICAgICAgICBzcCwgc3AsIHgxMCwgbHNsIDEKKyAgICAgICAgbGRyICAgICAgICAg ICAgIHEyMiwgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKzE6 CisgICAgICAgIGxkciAgICAgICAgICAgICBxMjMsIFtzcF0KKyAgICAgICAgYWRkICAgICAg ICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsIHYxNiwg djE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIFFQRUxfRklMVEVS X0gyICB2MjcsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzCisgICAg ICAgIFFQRUxfVU5JX1dfSFZfOAorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIs ICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAg ICAgICBxMTYsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisg ICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2 MjIsIHYyMywgdjE2CisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjcsIHYxNywgdjE4LCB2 MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2CisgICAgICAgIFFQRUxfVU5JX1dfSFZfOAor ICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAg ICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBxMTcsIFtzcF0KKyAgICAg ICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0gg ICB2MjYsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYxNiwgdjE3CisgICAgICAg IFFQRUxfRklMVEVSX0gyICB2MjcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyLCB2MjMsIHYx NiwgdjE3CisgICAgICAgIFFQRUxfVU5JX1dfSFZfOAorICAgICAgICBzdWJzICAgICAgICAg ICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAg IGxkciAgICAgICAgICAgICBxMTgsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNw LCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsIHYxOSwgdjIwLCB2MjEs IHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4CisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2Mjcs IHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4CisgICAgICAgIFFQRUxf VU5JX1dfSFZfOAorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAg ICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBxMTks IFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQ RUxfRklMVEVSX0ggICB2MjYsIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwg djE5CisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjcsIHYyMCwgdjIxLCB2MjIsIHYyMywg djE2LCB2MTcsIHYxOCwgdjE5CisgICAgICAgIFFQRUxfVU5JX1dfSFZfOAorICAgICAgICBz dWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAy ZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBxMjAsIFtzcF0KKyAgICAgICAgYWRkICAg ICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsIHYy MSwgdjIyLCB2MjMsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwCisgICAgICAgIFFQRUxfRklM VEVSX0gyICB2MjcsIHYyMSwgdjIyLCB2MjMsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwCisg ICAgICAgIFFQRUxfVU5JX1dfSFZfOAorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3 MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAg ICAgICAgICBxMjEsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEw CisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4 LCB2MTksIHYyMCwgdjIxCisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjcsIHYyMiwgdjIz LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxCisgICAgICAgIFFQRUxfVU5JX1dfSFZf OAorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEg ICAgICAgICAgICAyZgorCisgICAgICAgIGxkciAgICAgICAgICAgICBxMjIsIFtzcF0KKyAg ICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVS X0ggICB2MjYsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyCisgICAg ICAgIFFQRUxfRklMVEVSX0gyICB2MjcsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAs IHYyMSwgdjIyCisgICAgICAgIFFQRUxfVU5JX1dfSFZfOAorICAgICAgICBzdWJzICAgICAg ICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuaGkgICAgICAgICAgICAxYgorCisyOgor ICAgICAgICBRUEVMX1VOSV9XX0hWX0VORAorICAgICAgICByZXQKK2VuZGZ1bmMKKworLm1h Y3JvIFFQRUxfVU5JX1dfSFZfMTYKKyAgICAgICAgc3NociAgICAgICAgICAgIHYyNC40cywg djI0LjRzLCAjNgorICAgICAgICBzc2hyICAgICAgICAgICAgdjI1LjRzLCB2MjUuNHMsICM2 CisgICAgICAgIHNzaHIgICAgICAgICAgICB2MjYuNHMsIHYyNi40cywgIzYKKyAgICAgICAg c3NociAgICAgICAgICAgIHYyNy40cywgdjI3LjRzLCAjNgorICAgICAgICBtdWwgICAgICAg ICAgICAgdjI0LjRzLCB2MjQuNHMsIHYyOC40cworICAgICAgICBtdWwgICAgICAgICAgICAg djI1LjRzLCB2MjUuNHMsIHYyOC40cworICAgICAgICBtdWwgICAgICAgICAgICAgdjI2LjRz LCB2MjYuNHMsIHYyOC40cworICAgICAgICBtdWwgICAgICAgICAgICAgdjI3LjRzLCB2Mjcu NHMsIHYyOC40cworICAgICAgICBzcXJzaGwgICAgICAgICAgdjI0LjRzLCB2MjQuNHMsIHYz MC40cworICAgICAgICBzcXJzaGwgICAgICAgICAgdjI1LjRzLCB2MjUuNHMsIHYzMC40cwor ICAgICAgICBzcXJzaGwgICAgICAgICAgdjI2LjRzLCB2MjYuNHMsIHYzMC40cworICAgICAg ICBzcXJzaGwgICAgICAgICAgdjI3LjRzLCB2MjcuNHMsIHYzMC40cworICAgICAgICBzcWFk ZCAgICAgICAgICAgdjI0LjRzLCB2MjQuNHMsIHYyOS40cworICAgICAgICBzcWFkZCAgICAg ICAgICAgdjI1LjRzLCB2MjUuNHMsIHYyOS40cworICAgICAgICBzcWFkZCAgICAgICAgICAg djI2LjRzLCB2MjYuNHMsIHYyOS40cworICAgICAgICBzcWFkZCAgICAgICAgICAgdjI3LjRz LCB2MjcuNHMsIHYyOS40cworICAgICAgICBzcXh0biAgICAgICAgICAgdjI0LjRoLCB2MjQu NHMKKyAgICAgICAgc3F4dG4yICAgICAgICAgIHYyNC44aCwgdjI1LjRzCisgICAgICAgIHNx eHRuICAgICAgICAgICB2MjYuNGgsIHYyNi40cworICAgICAgICBzcXh0bjIgICAgICAgICAg djI2LjhoLCB2MjcuNHMKKyAgICAgICAgc3F4dHVuICAgICAgICAgIHYyNC44YiwgdjI0Ljho CisgICAgICAgIHNxeHR1bjIgICAgICAgICB2MjQuMTZiLCB2MjYuOGgKKworICAgICAgICBz dDEgICAgICAgICAgICAge3YyNC4xNmJ9LCBbeDIwXSwgeDIxCisuZW5kbQorCitmdW5jdGlv biBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfdW5pX3dfaHYxNl84X25lb25fZG90cHJvZCwgZXhw b3J0PTEKKyAgICAgICAgUVBFTF9VTklfV19IVl9IRUFERVIgMTYKKyAgICAgICAgbGRwICAg ICAgICAgICAgIHExNiwgcTEsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBz cCwgeDEwCisgICAgICAgIGxkcCAgICAgICAgICAgICBxMTcsIHEyLCBbc3BdCisgICAgICAg IGFkZCAgICAgICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBsZHAgICAgICAgICAgICAg cTE4LCBxMywgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKyAg ICAgICAgbGRwICAgICAgICAgICAgIHExOSwgcTQsIFtzcF0KKyAgICAgICAgYWRkICAgICAg ICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIGxkcCAgICAgICAgICAgICBxMjAsIHE1LCBb c3BdCisgICAgICAgIGFkZCAgICAgICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBsZHAg ICAgICAgICAgICAgcTIxLCBxNiwgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3As IHNwLCB4MTAKKyAgICAgICAgbGRwICAgICAgICAgICAgIHEyMiwgcTcsIFtzcF0KKyAgICAg ICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisxOgorICAgICAgICBsZHAgICAgICAg ICAgICAgcTIzLCBxMzEsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwg eDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjQsIHYxNiwgdjE3LCB2MTgsIHYxOSwg djIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjUsIHYxNiwg djE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIFFQRUxfRklMVEVS X0ggICB2MjYsICB2MSwgIHYyLCAgdjMsICB2NCwgIHY1LCAgdjYsICB2NywgdjMxCisgICAg ICAgIFFQRUxfRklMVEVSX0gyICB2MjcsICB2MSwgIHYyLCAgdjMsICB2NCwgIHY1LCAgdjYs ICB2NywgdjMxCisgICAgICAgIFFQRUxfVU5JX1dfSFZfMTYKKyAgICAgICAgc3VicyAgICAg ICAgICAgIHcyMiwgdzIyLCAjMQorICAgICAgICBiLmVxICAgICAgICAgICAgMmYKKworICAg ICAgICBsZHAgICAgICAgICAgICAgcTE2LCBxMSwgW3NwXQorICAgICAgICBhZGQgICAgICAg ICAgICAgc3AsIHNwLCB4MTAKKyAgICAgICAgUVBFTF9GSUxURVJfSCAgIHYyNCwgdjE3LCB2 MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYKKyAgICAgICAgUVBFTF9GSUxURVJf SDIgIHYyNSwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYKKyAgICAg ICAgUVBFTF9GSUxURVJfSCAgIHYyNiwgIHYyLCAgdjMsICB2NCwgIHY1LCAgdjYsICB2Nywg djMxLCAgdjEKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNywgIHYyLCAgdjMsICB2NCwg IHY1LCAgdjYsICB2NywgdjMxLCAgdjEKKyAgICAgICAgUVBFTF9VTklfV19IVl8xNgorICAg ICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAg ICAgICAyZgorCisgICAgICAgIGxkcCAgICAgICAgICAgICBxMTcsIHEyLCBbc3BdCisgICAg ICAgIGFkZCAgICAgICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBRUEVMX0ZJTFRFUl9I ICAgdjI0LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNworICAgICAg ICBRUEVMX0ZJTFRFUl9IMiAgdjI1LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2 MTYsIHYxNworICAgICAgICBRUEVMX0ZJTFRFUl9IICAgdjI2LCAgdjMsICB2NCwgIHY1LCAg djYsICB2NywgdjMxLCAgdjEsICB2MgorICAgICAgICBRUEVMX0ZJTFRFUl9IMiAgdjI3LCAg djMsICB2NCwgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MgorICAgICAgICBRUEVMX1VO SV9XX0hWXzE2CisgICAgICAgIHN1YnMgICAgICAgICAgICB3MjIsIHcyMiwgIzEKKyAgICAg ICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAgICAgICAgbGRwICAgICAgICAgICAgIHExOCwg cTMsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAg IFFQRUxfRklMVEVSX0ggICB2MjQsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYx NywgdjE4CisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjUsIHYxOSwgdjIwLCB2MjEsIHYy MiwgdjIzLCB2MTYsIHYxNywgdjE4CisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsICB2 NCwgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYzCisgICAgICAgIFFQRUxfRklM VEVSX0gyICB2MjcsICB2NCwgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYzCisg ICAgICAgIFFQRUxfVU5JX1dfSFZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAgIHcyMiwg dzIyLCAjMQorICAgICAgICBiLmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHAgICAg ICAgICAgICAgcTE5LCBxNCwgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNw LCB4MTAKKyAgICAgICAgUVBFTF9GSUxURVJfSCAgIHYyNCwgdjIwLCB2MjEsIHYyMiwgdjIz LCB2MTYsIHYxNywgdjE4LCB2MTkKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNSwgdjIw LCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTkKKyAgICAgICAgUVBFTF9GSUxU RVJfSCAgIHYyNiwgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYzLCAgdjQKKyAg ICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNywgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2 MiwgIHYzLCAgdjQKKyAgICAgICAgUVBFTF9VTklfV19IVl8xNgorICAgICAgICBzdWJzICAg ICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisg ICAgICAgIGxkcCAgICAgICAgICAgICBxMjAsIHE1LCBbc3BdCisgICAgICAgIGFkZCAgICAg ICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBRUEVMX0ZJTFRFUl9IICAgdjI0LCB2MjEs IHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMAorICAgICAgICBRUEVMX0ZJTFRF Ul9IMiAgdjI1LCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMAorICAg ICAgICBRUEVMX0ZJTFRFUl9IICAgdjI2LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYz LCAgdjQsICB2NQorICAgICAgICBRUEVMX0ZJTFRFUl9IMiAgdjI3LCAgdjYsICB2NywgdjMx LCAgdjEsICB2MiwgIHYzLCAgdjQsICB2NQorICAgICAgICBRUEVMX1VOSV9XX0hWXzE2Cisg ICAgICAgIHN1YnMgICAgICAgICAgICB3MjIsIHcyMiwgIzEKKyAgICAgICAgYi5lcSAgICAg ICAgICAgIDJmCisKKyAgICAgICAgbGRwICAgICAgICAgICAgIHEyMSwgcTYsIFtzcF0KKyAg ICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVS X0ggICB2MjQsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxCisgICAg ICAgIFFQRUxfRklMVEVSX0gyICB2MjUsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTks IHYyMCwgdjIxCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsICB2NywgdjMxLCAgdjEs ICB2MiwgIHYzLCAgdjQsICB2NSwgIHY2CisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2Mjcs ICB2NywgdjMxLCAgdjEsICB2MiwgIHYzLCAgdjQsICB2NSwgIHY2CisgICAgICAgIFFQRUxf VU5JX1dfSFZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAgIHcyMiwgdzIyLCAjMQorICAg ICAgICBiLmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHAgICAgICAgICAgICAgcTIy LCBxNywgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKyAgICAg ICAgUVBFTF9GSUxURVJfSCAgIHYyNCwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwg djIxLCB2MjIKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNSwgdjIzLCB2MTYsIHYxNywg djE4LCB2MTksIHYyMCwgdjIxLCB2MjIKKyAgICAgICAgUVBFTF9GSUxURVJfSCAgIHYyNiwg djMxLCAgdjEsICB2MiwgIHYzLCAgdjQsICB2NSwgIHY2LCAgdjcKKyAgICAgICAgUVBFTF9G SUxURVJfSDIgIHYyNywgdjMxLCAgdjEsICB2MiwgIHYzLCAgdjQsICB2NSwgIHY2LCAgdjcK KyAgICAgICAgUVBFTF9VTklfV19IVl8xNgorICAgICAgICBzdWJzICAgICAgICAgICAgdzIy LCB3MjIsICMxCisgICAgICAgIGIuaGkgICAgICAgICAgICAxYgorCisyOgorICAgICAgICBR UEVMX1VOSV9XX0hWX0VORAorICAgICAgICByZXQKK2VuZGZ1bmMKKworCitmdW5jdGlvbiBm Zl9oZXZjX3B1dF9oZXZjX3FwZWxfdW5pX3dfaHYzMl84X25lb25fZG90cHJvZCwgZXhwb3J0 PTEKKyAgICAgICAgUVBFTF9VTklfV19IVl9IRUFERVIgMzIKKyAgICAgICAgbW92ICAgICAg ICAgICAgIHgxMSwgc3AKKyAgICAgICAgbW92ICAgICAgICAgICAgIHcxMiwgdzIyCisgICAg ICAgIG1vdiAgICAgICAgICAgICB4MTMsIHgyMAorMzoKKyAgICAgICAgbGRwICAgICAgICAg ICAgIHExNiwgcTEsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEw CisgICAgICAgIGxkcCAgICAgICAgICAgICBxMTcsIHEyLCBbc3BdCisgICAgICAgIGFkZCAg ICAgICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBsZHAgICAgICAgICAgICAgcTE4LCBx MywgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKyAgICAgICAg bGRwICAgICAgICAgICAgIHExOSwgcTQsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAg IHNwLCBzcCwgeDEwCisgICAgICAgIGxkcCAgICAgICAgICAgICBxMjAsIHE1LCBbc3BdCisg ICAgICAgIGFkZCAgICAgICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBsZHAgICAgICAg ICAgICAgcTIxLCBxNiwgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4 MTAKKyAgICAgICAgbGRwICAgICAgICAgICAgIHEyMiwgcTcsIFtzcF0KKyAgICAgICAgYWRk ICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisxOgorICAgICAgICBsZHAgICAgICAgICAgICAg cTIzLCBxMzEsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisg ICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjQsIHYxNiwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2 MjEsIHYyMiwgdjIzCisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjUsIHYxNiwgdjE3LCB2 MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2 MjYsICB2MSwgIHYyLCAgdjMsICB2NCwgIHY1LCAgdjYsICB2NywgdjMxCisgICAgICAgIFFQ RUxfRklMVEVSX0gyICB2MjcsICB2MSwgIHYyLCAgdjMsICB2NCwgIHY1LCAgdjYsICB2Nywg djMxCisgICAgICAgIFFQRUxfVU5JX1dfSFZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAg IHcyMiwgdzIyLCAjMQorICAgICAgICBiLmVxICAgICAgICAgICAgMmYKKworICAgICAgICBs ZHAgICAgICAgICAgICAgcTE2LCBxMSwgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAg c3AsIHNwLCB4MTAKKyAgICAgICAgUVBFTF9GSUxURVJfSCAgIHYyNCwgdjE3LCB2MTgsIHYx OSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYy NSwgdjE3LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYKKyAgICAgICAgUVBF TF9GSUxURVJfSCAgIHYyNiwgIHYyLCAgdjMsICB2NCwgIHY1LCAgdjYsICB2NywgdjMxLCAg djEKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNywgIHYyLCAgdjMsICB2NCwgIHY1LCAg djYsICB2NywgdjMxLCAgdjEKKyAgICAgICAgUVBFTF9VTklfV19IVl8xNgorICAgICAgICBz dWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAy ZgorCisgICAgICAgIGxkcCAgICAgICAgICAgICBxMTcsIHEyLCBbc3BdCisgICAgICAgIGFk ZCAgICAgICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBRUEVMX0ZJTFRFUl9IICAgdjI0 LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNworICAgICAgICBRUEVM X0ZJTFRFUl9IMiAgdjI1LCB2MTgsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYx NworICAgICAgICBRUEVMX0ZJTFRFUl9IICAgdjI2LCAgdjMsICB2NCwgIHY1LCAgdjYsICB2 NywgdjMxLCAgdjEsICB2MgorICAgICAgICBRUEVMX0ZJTFRFUl9IMiAgdjI3LCAgdjMsICB2 NCwgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MgorICAgICAgICBRUEVMX1VOSV9XX0hW XzE2CisgICAgICAgIHN1YnMgICAgICAgICAgICB3MjIsIHcyMiwgIzEKKyAgICAgICAgYi5l cSAgICAgICAgICAgIDJmCisKKyAgICAgICAgbGRwICAgICAgICAgICAgIHExOCwgcTMsIFtz cF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxf RklMVEVSX0ggICB2MjQsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4 CisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjUsIHYxOSwgdjIwLCB2MjEsIHYyMiwgdjIz LCB2MTYsIHYxNywgdjE4CisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsICB2NCwgIHY1 LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYzCisgICAgICAgIFFQRUxfRklMVEVSX0gy ICB2MjcsICB2NCwgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYzCisgICAgICAg IFFQRUxfVU5JX1dfSFZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAgIHcyMiwgdzIyLCAj MQorICAgICAgICBiLmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHAgICAgICAgICAg ICAgcTE5LCBxNCwgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAK KyAgICAgICAgUVBFTF9GSUxURVJfSCAgIHYyNCwgdjIwLCB2MjEsIHYyMiwgdjIzLCB2MTYs IHYxNywgdjE4LCB2MTkKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNSwgdjIwLCB2MjEs IHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTkKKyAgICAgICAgUVBFTF9GSUxURVJfSCAg IHYyNiwgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYzLCAgdjQKKyAgICAgICAg UVBFTF9GSUxURVJfSDIgIHYyNywgIHY1LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYz LCAgdjQKKyAgICAgICAgUVBFTF9VTklfV19IVl8xNgorICAgICAgICBzdWJzICAgICAgICAg ICAgdzIyLCB3MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAg IGxkcCAgICAgICAgICAgICBxMjAsIHE1LCBbc3BdCisgICAgICAgIGFkZCAgICAgICAgICAg ICBzcCwgc3AsIHgxMAorICAgICAgICBRUEVMX0ZJTFRFUl9IICAgdjI0LCB2MjEsIHYyMiwg djIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMAorICAgICAgICBRUEVMX0ZJTFRFUl9IMiAg djI1LCB2MjEsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMAorICAgICAgICBR UEVMX0ZJTFRFUl9IICAgdjI2LCAgdjYsICB2NywgdjMxLCAgdjEsICB2MiwgIHYzLCAgdjQs ICB2NQorICAgICAgICBRUEVMX0ZJTFRFUl9IMiAgdjI3LCAgdjYsICB2NywgdjMxLCAgdjEs ICB2MiwgIHYzLCAgdjQsICB2NQorICAgICAgICBRUEVMX1VOSV9XX0hWXzE2CisgICAgICAg IHN1YnMgICAgICAgICAgICB3MjIsIHcyMiwgIzEKKyAgICAgICAgYi5lcSAgICAgICAgICAg IDJmCisKKyAgICAgICAgbGRwICAgICAgICAgICAgIHEyMSwgcTYsIFtzcF0KKyAgICAgICAg YWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2 MjQsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxCisgICAgICAgIFFQ RUxfRklMVEVSX0gyICB2MjUsIHYyMiwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwg djIxCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsICB2NywgdjMxLCAgdjEsICB2Miwg IHYzLCAgdjQsICB2NSwgIHY2CisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjcsICB2Nywg djMxLCAgdjEsICB2MiwgIHYzLCAgdjQsICB2NSwgIHY2CisgICAgICAgIFFQRUxfVU5JX1df SFZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAgIHcyMiwgdzIyLCAjMQorICAgICAgICBi LmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHAgICAgICAgICAgICAgcTIyLCBxNywg W3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKyAgICAgICAgUVBF TF9GSUxURVJfSCAgIHYyNCwgdjIzLCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2 MjIKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNSwgdjIzLCB2MTYsIHYxNywgdjE4LCB2 MTksIHYyMCwgdjIxLCB2MjIKKyAgICAgICAgUVBFTF9GSUxURVJfSCAgIHYyNiwgdjMxLCAg djEsICB2MiwgIHYzLCAgdjQsICB2NSwgIHY2LCAgdjcKKyAgICAgICAgUVBFTF9GSUxURVJf SDIgIHYyNywgdjMxLCAgdjEsICB2MiwgIHYzLCAgdjQsICB2NSwgIHY2LCAgdjcKKyAgICAg ICAgUVBFTF9VTklfV19IVl8xNgorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIs ICMxCisgICAgICAgIGIuaGkgICAgICAgICAgICAxYgorMjoKKyAgICAgICAgc3VicyAgICAg ICAgICAgIHcyNywgdzI3LCAjMTYKKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCB4MTEs ICMzMgorICAgICAgICBhZGQgICAgICAgICAgICAgeDIwLCB4MTMsICMxNgorICAgICAgICBt b3YgICAgICAgICAgICAgdzIyLCB3MTIKKyAgICAgICAgbW92ICAgICAgICAgICAgIHgxMSwg c3AKKyAgICAgICAgbW92ICAgICAgICAgICAgIHgxMywgeDIwCisgICAgICAgIGIuaGkgICAg ICAgICAgICAzYgorICAgICAgICBRUEVMX1VOSV9XX0hWX0VORAorICAgICAgICByZXQKK2Vu ZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19xcGVsX3VuaV93X2h2NjRfOF9u ZW9uX2RvdHByb2QsIGV4cG9ydD0xCisgICAgICAgIFFQRUxfVU5JX1dfSFZfSEVBREVSIDY0 CisgICAgICAgIG1vdiAgICAgICAgICAgICB4MTEsIHNwCisgICAgICAgIG1vdiAgICAgICAg ICAgICB3MTIsIHcyMgorICAgICAgICBtb3YgICAgICAgICAgICAgeDEzLCB4MjAKKzM6Cisg ICAgICAgIGxkcCAgICAgICAgICAgICBxMTYsIHExLCBbc3BdCisgICAgICAgIGFkZCAgICAg ICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBsZHAgICAgICAgICAgICAgcTE3LCBxMiwg W3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKyAgICAgICAgbGRw ICAgICAgICAgICAgIHExOCwgcTMsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNw LCBzcCwgeDEwCisgICAgICAgIGxkcCAgICAgICAgICAgICBxMTksIHE0LCBbc3BdCisgICAg ICAgIGFkZCAgICAgICAgICAgICBzcCwgc3AsIHgxMAorICAgICAgICBsZHAgICAgICAgICAg ICAgcTIwLCBxNSwgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAK KyAgICAgICAgbGRwICAgICAgICAgICAgIHEyMSwgcTYsIFtzcF0KKyAgICAgICAgYWRkICAg ICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIGxkcCAgICAgICAgICAgICBxMjIsIHE3 LCBbc3BdCisgICAgICAgIGFkZCAgICAgICAgICAgICBzcCwgc3AsIHgxMAorMToKKyAgICAg ICAgbGRwICAgICAgICAgICAgIHEyMywgcTMxLCBbc3BdCisgICAgICAgIGFkZCAgICAgICAg ICAgICBzcCwgc3AsIHgxMAorICAgICAgICBRUEVMX0ZJTFRFUl9IICAgdjI0LCB2MTYsIHYx NywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMworICAgICAgICBRUEVMX0ZJTFRFUl9I MiAgdjI1LCB2MTYsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMworICAgICAg ICBRUEVMX0ZJTFRFUl9IICAgdjI2LCAgdjEsICB2MiwgIHYzLCAgdjQsICB2NSwgIHY2LCAg djcsIHYzMQorICAgICAgICBRUEVMX0ZJTFRFUl9IMiAgdjI3LCAgdjEsICB2MiwgIHYzLCAg djQsICB2NSwgIHY2LCAgdjcsIHYzMQorICAgICAgICBRUEVMX1VOSV9XX0hWXzE2CisgICAg ICAgIHN1YnMgICAgICAgICAgICB3MjIsIHcyMiwgIzEKKyAgICAgICAgYi5lcSAgICAgICAg ICAgIDJmCisKKyAgICAgICAgbGRwICAgICAgICAgICAgIHExNiwgcTEsIFtzcF0KKyAgICAg ICAgYWRkICAgICAgICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0gg ICB2MjQsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2CisgICAgICAg IFFQRUxfRklMVEVSX0gyICB2MjUsIHYxNywgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYy MywgdjE2CisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjYsICB2MiwgIHYzLCAgdjQsICB2 NSwgIHY2LCAgdjcsIHYzMSwgIHYxCisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjcsICB2 MiwgIHYzLCAgdjQsICB2NSwgIHY2LCAgdjcsIHYzMSwgIHYxCisgICAgICAgIFFQRUxfVU5J X1dfSFZfMTYKKyAgICAgICAgc3VicyAgICAgICAgICAgIHcyMiwgdzIyLCAjMQorICAgICAg ICBiLmVxICAgICAgICAgICAgMmYKKworICAgICAgICBsZHAgICAgICAgICAgICAgcTE3LCBx MiwgW3NwXQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKyAgICAgICAg UVBFTF9GSUxURVJfSCAgIHYyNCwgdjE4LCB2MTksIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2 LCB2MTcKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNSwgdjE4LCB2MTksIHYyMCwgdjIx LCB2MjIsIHYyMywgdjE2LCB2MTcKKyAgICAgICAgUVBFTF9GSUxURVJfSCAgIHYyNiwgIHYz LCAgdjQsICB2NSwgIHY2LCAgdjcsIHYzMSwgIHYxLCAgdjIKKyAgICAgICAgUVBFTF9GSUxU RVJfSDIgIHYyNywgIHYzLCAgdjQsICB2NSwgIHY2LCAgdjcsIHYzMSwgIHYxLCAgdjIKKyAg ICAgICAgUVBFTF9VTklfV19IVl8xNgorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3 MjIsICMxCisgICAgICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkcCAgICAg ICAgICAgICBxMTgsIHEzLCBbc3BdCisgICAgICAgIGFkZCAgICAgICAgICAgICBzcCwgc3As IHgxMAorICAgICAgICBRUEVMX0ZJTFRFUl9IICAgdjI0LCB2MTksIHYyMCwgdjIxLCB2MjIs IHYyMywgdjE2LCB2MTcsIHYxOAorICAgICAgICBRUEVMX0ZJTFRFUl9IMiAgdjI1LCB2MTks IHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOAorICAgICAgICBRUEVMX0ZJTFRF Ul9IICAgdjI2LCAgdjQsICB2NSwgIHY2LCAgdjcsIHYzMSwgIHYxLCAgdjIsICB2MworICAg ICAgICBRUEVMX0ZJTFRFUl9IMiAgdjI3LCAgdjQsICB2NSwgIHY2LCAgdjcsIHYzMSwgIHYx LCAgdjIsICB2MworICAgICAgICBRUEVMX1VOSV9XX0hWXzE2CisgICAgICAgIHN1YnMgICAg ICAgICAgICB3MjIsIHcyMiwgIzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAg ICAgICAgbGRwICAgICAgICAgICAgIHExOSwgcTQsIFtzcF0KKyAgICAgICAgYWRkICAgICAg ICAgICAgIHNwLCBzcCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjQsIHYyMCwg djIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5CisgICAgICAgIFFQRUxfRklMVEVS X0gyICB2MjUsIHYyMCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5CisgICAg ICAgIFFQRUxfRklMVEVSX0ggICB2MjYsICB2NSwgIHY2LCAgdjcsIHYzMSwgIHYxLCAgdjIs ICB2MywgIHY0CisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjcsICB2NSwgIHY2LCAgdjcs IHYzMSwgIHYxLCAgdjIsICB2MywgIHY0CisgICAgICAgIFFQRUxfVU5JX1dfSFZfMTYKKyAg ICAgICAgc3VicyAgICAgICAgICAgIHcyMiwgdzIyLCAjMQorICAgICAgICBiLmVxICAgICAg ICAgICAgMmYKKworICAgICAgICBsZHAgICAgICAgICAgICAgcTIwLCBxNSwgW3NwXQorICAg ICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAKKyAgICAgICAgUVBFTF9GSUxURVJf SCAgIHYyNCwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAKKyAgICAg ICAgUVBFTF9GSUxURVJfSDIgIHYyNSwgdjIxLCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwg djE5LCB2MjAKKyAgICAgICAgUVBFTF9GSUxURVJfSCAgIHYyNiwgIHY2LCAgdjcsIHYzMSwg IHYxLCAgdjIsICB2MywgIHY0LCAgdjUKKyAgICAgICAgUVBFTF9GSUxURVJfSDIgIHYyNywg IHY2LCAgdjcsIHYzMSwgIHYxLCAgdjIsICB2MywgIHY0LCAgdjUKKyAgICAgICAgUVBFTF9V TklfV19IVl8xNgorICAgICAgICBzdWJzICAgICAgICAgICAgdzIyLCB3MjIsICMxCisgICAg ICAgIGIuZXEgICAgICAgICAgICAyZgorCisgICAgICAgIGxkcCAgICAgICAgICAgICBxMjEs IHE2LCBbc3BdCisgICAgICAgIGFkZCAgICAgICAgICAgICBzcCwgc3AsIHgxMAorICAgICAg ICBRUEVMX0ZJTFRFUl9IICAgdjI0LCB2MjIsIHYyMywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2 MjAsIHYyMQorICAgICAgICBRUEVMX0ZJTFRFUl9IMiAgdjI1LCB2MjIsIHYyMywgdjE2LCB2 MTcsIHYxOCwgdjE5LCB2MjAsIHYyMQorICAgICAgICBRUEVMX0ZJTFRFUl9IICAgdjI2LCAg djcsIHYzMSwgIHYxLCAgdjIsICB2MywgIHY0LCAgdjUsICB2NgorICAgICAgICBRUEVMX0ZJ TFRFUl9IMiAgdjI3LCAgdjcsIHYzMSwgIHYxLCAgdjIsICB2MywgIHY0LCAgdjUsICB2Ngor ICAgICAgICBRUEVMX1VOSV9XX0hWXzE2CisgICAgICAgIHN1YnMgICAgICAgICAgICB3MjIs IHcyMiwgIzEKKyAgICAgICAgYi5lcSAgICAgICAgICAgIDJmCisKKyAgICAgICAgbGRwICAg ICAgICAgICAgIHEyMiwgcTcsIFtzcF0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHNwLCBz cCwgeDEwCisgICAgICAgIFFQRUxfRklMVEVSX0ggICB2MjQsIHYyMywgdjE2LCB2MTcsIHYx OCwgdjE5LCB2MjAsIHYyMSwgdjIyCisgICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjUsIHYy MywgdjE2LCB2MTcsIHYxOCwgdjE5LCB2MjAsIHYyMSwgdjIyCisgICAgICAgIFFQRUxfRklM VEVSX0ggICB2MjYsIHYzMSwgIHYxLCAgdjIsICB2MywgIHY0LCAgdjUsICB2NiwgIHY3Cisg ICAgICAgIFFQRUxfRklMVEVSX0gyICB2MjcsIHYzMSwgIHYxLCAgdjIsICB2MywgIHY0LCAg djUsICB2NiwgIHY3CisgICAgICAgIFFQRUxfVU5JX1dfSFZfMTYKKyAgICAgICAgc3VicyAg ICAgICAgICAgIHcyMiwgdzIyLCAjMQorICAgICAgICBiLmhpICAgICAgICAgICAgMWIKKzI6 CisgICAgICAgIHN1YnMgICAgICAgICAgICB3MjcsIHcyNywgIzE2CisgICAgICAgIGFkZCAg ICAgICAgICAgICBzcCwgeDExLCAjMzIKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgyMCwg eDEzLCAjMTYKKyAgICAgICAgbW92ICAgICAgICAgICAgIHcyMiwgdzEyCisgICAgICAgIG1v diAgICAgICAgICAgICB4MTEsIHNwCisgICAgICAgIG1vdiAgICAgICAgICAgICB4MTMsIHgy MAorICAgICAgICBiLmhpICAgICAgICAgICAgM2IKKyAgICAgICAgUVBFTF9VTklfV19IVl9F TkQKKyAgICAgICAgcmV0CitlbmRmdW5jCisKICNlbmRpZiAvLyBfX0FSTV9GRUFUVVJFX0RP VFBST0QKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM4LjAud2luZG93cy4x Cgo= --------------THPRe0BGKIferZwPWnsRv0RP Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --------------THPRe0BGKIferZwPWnsRv0RP--