From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B96A8C433B4 for ; Tue, 18 May 2021 05:23:26 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1262660FE9 for ; Tue, 18 May 2021 05:23:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1262660FE9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=windriver.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=8/TWqX247JRyYUw/9pO4RQGrtDPSHv9WhthShXC5d90=; b=Tiz8ZAzzTqu32OcK0LhKivhC6 lbJxnD4sN3T5a3wvr4SiXNqUsycbN4Bqhx+nT7SV5XndmsC+I1yS+71xWU2OB1v6CAhN2qb/NBMOa JOjaJ4yWss1mdReU2SKpgzcHk5U178YG8VyOG8ryAUfH0aMpqAaXeWj8epL/dI61Puybai84Fm1kE GQFFMh/dh5BcyzcVwxx1Oe2xq5c4Li8QFWwysrCWsHLllo0YaoScKz1ccs726MwJ9leblnSf1Zawb z3T/4lxujzKC37kNOrvJxtPSR9/+GQq2eD+WTjp0wasSskO2PNU9D0iJD+qGPXZraVoyVpKCuKtwe TRBvTDiug==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lis9x-00H0UF-EL; Tue, 18 May 2021 05:20:49 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lis9t-00H0TG-BX for linux-arm-kernel@desiato.infradead.org; Tue, 18 May 2021 05:20:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:Date:Message-ID:From: References:Cc:To:Subject:Sender:Reply-To:Content-ID:Content-Description; bh=KvqdCcGWqn7tO/z/kms/KbCKXEPJeeq9N09DnCtRRz8=; b=Pn3EbuDsGEwjvKR2tRmjkn2b2W 6iVeTp4vrJjZNox9+clO3wbv+QFIb1wbAyTStiP8LdKOxM9pZUS3d5kRmMOO5KZ2cyJtkDhBdLICj 1b7q4/RpdZXuJD//UWghA2q3wL27zzxD3Nuj9JbppqxFyu7exMEYsV7wbQ6zscvvIq5/NKtu0aQgz elBgf1t7xhmW8hhvUEe1kpV/T1QD3n3l0+cCdVA21etZR8JOZ1r6gSzFMUtWeoJi9M2nEHzVyTD6b DgjpoB3doY5QT0BgVXvwjzfpgGoCZEHgkhzNIYo4p8q7KkZiWgGEQ+po+OGtdx5bnxpj/Nfw8v9uE K6gVcwjA==; Received: from mail-co1nam11on2062.outbound.protection.outlook.com ([40.107.220.62] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lis9q-00EKAO-BS for linux-arm-kernel@lists.infradead.org; Tue, 18 May 2021 05:20:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kSlUl8vxRm1HcwJVoBhSiMUOU25yiGwErokzwlJKfZerxOSI3c5OfVJ2huUQy38tPnF3uf3PvCAtK4eLGrHYmjd8eSEjqaRLeUxDfbM2+NL1DHYdyLVGgsS1yyWb7e38nDNRdTAwS9W1lrvLXZgK6/MJvAxJ7zV/Q2FJsWpoE+J1nZbPyA8ZrAouotLGU35le7RZR/2pfuP3T120aHd9hqLK8wwBNUgbn4U+dc0h0eKrsObEcAgdzblc0V3xhj6GRPW2G71Kfgz3rL1IrFLkTEyOOFBX0PwV+7yaQLJmM/wTffhzqMZBQcU7vPA/zAAWCI79CgPhEJmFR2I4ja075Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KvqdCcGWqn7tO/z/kms/KbCKXEPJeeq9N09DnCtRRz8=; b=mmn5yCYTPbJSl4efE01eoAJJMGfYDrLckTB9BSMVsBTQU29/D7LUUg1tAjdliwy2GX35DB9SjG/rHI3KOllLL+nBTgQyxEHKWaHKftsOJHESzo9L6Dzu/uAtrgRz31uIBCoPXCo02orIiHwBg2GhIzCIMQhrrNtYIAS1c+9w3RFuJl2Jw7Eu0ry3/OqBrn3MgLoDVKbUlxKC8lydMoII9NRp8FeYEKYF8wUcXM4suCZMRdbtOzFSyLx58WShvENs8y0xWJCI1lOEtl6HM/TvfN6q9ZQ2ETN2NPm63nh7akOzi0hrAmALk67t8ekAn8Ri/W9Q8KB7bcW3pgdDk3BJdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriversystems.onmicrosoft.com; s=selector2-windriversystems-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KvqdCcGWqn7tO/z/kms/KbCKXEPJeeq9N09DnCtRRz8=; b=Nrc7om/WYEnFKM3mCsEkTaRWtkUinnsEIJTvE+4uUvK9UuoLoa95mgPrg+TFAdJxpWffeQWDsbcyIKusZU7Cj/9KIl6oWJFL+KyB+884MAv/XnGdEVuliyAUY3uxXwfWB37MsPEk91LH/UyEypdCGLOd0C07+0AllQfqTSdrgc0= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=windriver.com; Received: from CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) by CY4PR1101MB2101.namprd11.prod.outlook.com (2603:10b6:910:24::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Tue, 18 May 2021 05:20:39 +0000 Received: from CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::cccf:6e19:b547:da8b]) by CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::cccf:6e19:b547:da8b%6]) with mapi id 15.20.4129.031; Tue, 18 May 2021 05:20:39 +0000 Subject: Re: [PATCH 1/2] drm: xlnx: add is_layer_vid() to simplify the code To: Paul Cercueil Cc: Hyun Kwon , Laurent Pinchart , David Airlie , Daniel Vetter , Michal Simek , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20210513114540.1241122-1-quanyang.wang@windriver.com> <20210513114540.1241122-2-quanyang.wang@windriver.com> <90G9TQ.H0YO8VGDCBTU@crapouillou.net> From: "quanyang.wang" Message-ID: Date: Tue, 18 May 2021 13:14:46 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: <90G9TQ.H0YO8VGDCBTU@crapouillou.net> Content-Language: en-US X-Originating-IP: [60.247.85.82] X-ClientProxiedBy: HK2P15301CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::23) To CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [128.224.162.199] (60.247.85.82) by HK2P15301CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096:202:1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.2 via Frontend Transport; Tue, 18 May 2021 05:20:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e93e88c1-647c-4f2d-1294-08d919bcaca7 X-MS-TrafficTypeDiagnostic: CY4PR1101MB2101: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2Ea55u9QsTsE/WqyoqH/6MPNimkjGZ+ZBs4FyoNG3zBowRJK5NX872E6hA3SicFrlOAQ9VdqtGEwABQ9u4YKaVObAAiOsWCXUecF9E9EZOmmciG0cjx10koM5m+ZVwGYWbBeuGAK7mE301eu/GaL4u2yHxVua3xDGaAL69n894ofr8nQFtskrxBI8m7yKWKMpJVGxf8XTdjLd5nwb3x4CAIjI0ieHca1GtV5xUS4A28azy2v7kaVqjCuFYewJ979v2/ptmdb0lt0DQn6TW4MoyeqmBcQtj9N/StTLLBvjs/DFEyG0TO5A2JxitjBN9nYvOflRjMF67twW1C3uRVH9Sga7YfdWNA7uhqhXuV5sj2sXeiM6Zry9jHLdj4OHsMUxOhnvJjsUV8teAYIhxqS3BfNEACA1e5KszNaDZT9V0P+J2UtoEvjGRIFuUMVRFvOATn2tNWwgsTec+Z9FoE1wR+5QIhtXi4SC2x4cnW5yWmEOM+l805PsiHrgBKwDoAcn6jqdcm/lgh7lTY8o8mlQDmwj8Vy75szEN3tevVXS7Vn8IzJEXwhaeWp/ukKpiglGKpo9UYd5waqiPfksDgjosyHvzZ51IqS/W5EW/AiHPlp6sHeZgQmHr7pdCmfvbouGql/I80wDZqc6HRNARnL9CEhAY7Gk3viaOCBzUx8lgC4LjBRKuppiqXit6PY/0KJfDy/0VXhd9l4m2FpS/2GXtPiECfiyo5xE4qi7PW8rKw9Q5lIIcicoY76CwyJ1gbb X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR11MB0071.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(346002)(376002)(39850400004)(136003)(396003)(956004)(2616005)(31686004)(66476007)(8936002)(16526019)(66556008)(36756003)(8676002)(186003)(6916009)(478600001)(31696002)(38350700002)(54906003)(6666004)(6706004)(38100700002)(2906002)(83380400001)(6486002)(86362001)(66946007)(26005)(53546011)(5660300002)(52116002)(316002)(4326008)(16576012)(78286007)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?Z3VWRXdmUEdWZmo0VDNBU3ZDeDl6N0FEQnpoSVNnRVhEWEhRRDlqSHdITGh0?= =?utf-8?B?Vkcxeit5UUEwTTZEN2c0cUJQSXVBSzM3S0tST2NVcTh0NFViYW1HQk5RM2sy?= =?utf-8?B?UGZqRXRpekN6akZTdjJVbyszd21SdXVNRExJWXNtQ2UycUdQWXZyQ1ZxZ0lN?= =?utf-8?B?WVNNL0pMajF3R0FmZHFoR1pQTkpPcFlNZlVEMGVKSlB5aTRlSjV3QVgvNDRG?= =?utf-8?B?Y0hseWpwK3JJZ3B4emhGejM2SUpCYmp3TDRNZU9ZZUtuTnRsQWtkV083Vk1M?= =?utf-8?B?RERSV0ljaGdtNUg0Z2ZsVzZRcy91UWlrTVEvK2Z4QktML3NxQUVSemtaaytD?= =?utf-8?B?c0trSHVBRDUvdHJGWVQybExNMkFaR2ExUW8weUIzby9XMlNRbnozck5hSXdn?= =?utf-8?B?V1RaNC9QaXl1b01MRVNGYUVZaktlbHYxS2pNeXB0djV6UG5ycTkyS0lzSkh1?= =?utf-8?B?YmdOcWZpOGVNQjJPam1JWGQvaVIxSlprZkJkejFoKzV1QjZMWUNmTTRmdWRF?= =?utf-8?B?bitGbWVWMUFjeW5MZm9DVTdzRXdHemRpdFJua1lORFFFWElCRUhOR2xyM3c4?= =?utf-8?B?K2hFWlJpMkZ6RFlvNU91S1NsL09NbmtvVWtvUmhWdWgrRlp0NVZYeENkYUxO?= =?utf-8?B?ODhJN2drL0laRDJPOXFGRUExbldDRWYvaVU0N1pWaThENmUyQndlRENScnJ2?= =?utf-8?B?dDA2MW5tMWFraUNXYWZWajdaNHNMN2VoMGVsczhtQWdWc0JVbXJ4alNSMWt4?= =?utf-8?B?WUJTTmd0WDl2M0ZteVBDRmlNZkd1dmlXb21COTRYMHhvOGhUM2F1QWwxdSs5?= =?utf-8?B?aHB0UGUyVk40c3NldjFmVEgyZnYvdUduL0lQOWU4THZGNEFjQTVGZnRIdUQr?= =?utf-8?B?U2NWdEZQdmlmdzVwZG5JU1N6VUR6eUl2TzBqNWVsUCtReHZmRUdBaXc3U2NY?= =?utf-8?B?K2MwUlhabFEzZHYwVUZVa25kUmZiWUlRL3dOeCtPRUx0ZUlFcWtYNzM2MkNY?= =?utf-8?B?NUhRelNFTGJsSHZZWDBMdTRHVG0zeFdJV3QwMnh2cEpWRTVlN3U2WHdwRmxQ?= =?utf-8?B?Rk1ueGdWL0JHMitMWFJ3ZGppdXdSOHEwd1FnMmVmT3hQcnNMQWlUNW5qUGEx?= =?utf-8?B?ZUdobHErSHZUN0x4Q3FPZVlHU2Q3S2xPaW1tQTdZSnlnZFUza0NwZ0hlTjJW?= =?utf-8?B?clFPNFk3RjZMN0JZM1c3RE5sb3FJZVV3elVZM2dBU081ZG1La2ZpRnZ1VGhB?= =?utf-8?B?ZkZhMjBvY24yTVg1SlV4R1NQVDBGWStFV3Z4TmljMVUzY0FEQTlnazZKa2p5?= =?utf-8?B?LzNUN3BjbGttUU02NWxYUU9mS01EQVk1dGltZnIvNXZKQmVjdUxOdVBFSkVo?= =?utf-8?B?NEZkalJtVmNsbDlTZ3JzNXdGVFR6NDQ5RExMU0hJazZXanZtOFFBc3ptUE9W?= =?utf-8?B?aEYzVWdCZEhNcFpCWFMzTWZlNEo4L285MTFxaUhrcFZFTHlaUEpTVENVcmc2?= =?utf-8?B?WWEwSE1WNERaMXhyczA5aXNWTkcyVWxQcnZ0NTJvZzFPSHVtQ21PQVBaR3dp?= =?utf-8?B?eDhJQVhaUWJGdXNtdXgwb0FjZFBlWmd1bXQvck1yeFRNQTZadXNiRWFqeHZ1?= =?utf-8?B?bkl3Z2hmWDZpU01CZEJsSG5sWldnSXREbWpRYlJBb1N4T29iSk01NnNSVHht?= =?utf-8?B?L0czM3IwTjk1SkoraWM5WDVvQkduV3hneEtuc3hqN2lucEpjZ2haOXRMdzZz?= =?utf-8?Q?DSPgztIwk/fymMDTQfoP00sNH0J969vfxI1Eu2H?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: e93e88c1-647c-4f2d-1294-08d919bcaca7 X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB0071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2021 05:20:39.4120 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wnSqoOG05TAXTf6qeZlFjAVvxptF7ufYmpsldeV0Q+Np46htZJvzh3Yl6nJ7zuchaWxC4A8BQMBoUaCFvYgWhnm/m4wAz4PvbGLisXimAwI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2101 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210517_222042_532158_64D069E0 X-CRM114-Status: GOOD ( 22.43 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgUGF1bCwKVGhhbmsgIHlvdSBmb3IgeW91ciByZXZpZXcuCkkgd2lsbCB1cGRhdGUgdGhlc2Ug aW4gVjIgcGF0Y2guClRoYW5rcywKUXVhbnlhbmcKCk9uIDUvMTgvMjEgMTI6NDggQU0sIFBhdWwg Q2VyY3VlaWwgd3JvdGU6Cj4gSGkgUXVhbnlhbmcsCj4gCj4gTGUgamV1LiwgbWFpIDEzIDIwMjEg YXQgMTk6NDU6MzkgKzA4MDAsIHF1YW55YW5nLndhbmdAd2luZHJpdmVyLmNvbSBhIAo+IMOpY3Jp dCA6Cj4+IEZyb206IFF1YW55YW5nIFdhbmcgPHF1YW55YW5nLndhbmdAd2luZHJpdmVyLmNvbT4K Pj4KPj4gQWRkIGEgbmV3IGZ1bmN0aW9uIGlzX2xheWVyX3ZpZCgpIHRvIHNpbXBsaWZ5IHRoZSBj b2RlIHRoYXQKPj4ganVkZ2VzIGlmIGEgbGF5ZXIgaXMgdGhlIHZpZGVvIGxheWVyLgo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBRdWFueWFuZyBXYW5nIDxxdWFueWFuZy53YW5nQHdpbmRyaXZlci5jb20+ Cj4+IC0tLQo+PiDCoGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMgfCAzOSArKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPj4gwqAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0 aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0veGxueC96eW5xbXBfZGlzcC5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9k aXNwLmMKPj4gaW5kZXggMTA5ZDYyNzk2OGFjLi5jNTVlMjQ0MTJmOGMgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3hsbngvenlucW1wX2Rpc3AuYwo+PiBAQCAtNDM0LDMwICs0MzQsMzUgQEAgc3RhdGljIHZv aWQgenlucW1wX2Rpc3BfYXZidWZfd3JpdGUoc3RydWN0IAo+PiB6eW5xbXBfZGlzcF9hdmJ1ZiAq YXZidWYsCj4+IMKgwqDCoMKgIHdyaXRlbCh2YWwsIGF2YnVmLT5iYXNlICsgcmVnKTsKPj4gwqB9 Cj4+Cj4+ICtzdGF0aWMgYm9vbCBpc19sYXllcl92aWQoc3RydWN0IHp5bnFtcF9kaXNwX2xheWVy ICpsYXllcikKPiAKPiAnbGF5ZXInIHNob3VsZCBiZSBjb25zdC4KPiAKPj4gK3sKPj4gK8KgwqDC oCByZXR1cm4gKGxheWVyLT5pZCA9PSBaWU5RTVBfRElTUF9MQVlFUl9WSUQpID8gdHJ1ZSA6IGZh bHNlOwo+IAo+IHJldHVybiBsYXllci0+aWQgPT0gWllOUU1QX0RJU1BfTEFZRVJfVklEOwo+IAo+ IFRoZSByZXN0IGxvb2tzIGdvb2QuCj4gCj4gV2l0aCB0aGVzZSBmaXhlZDoKPiBBY2tlZC1ieTog UGF1bCBDZXJjdWVpbCA8cGF1bEBjcmFwb3VpbGxvdS5uZXQ+Cj4gCj4gQ2hlZXJzLAo+IC1QYXVs Cj4gCj4+ICt9Cj4+ICsKPj4gwqAvKioKPj4gwqAgKiB6eW5xbXBfZGlzcF9hdmJ1Zl9zZXRfZm9y bWF0IC0gU2V0IHRoZSBpbnB1dCBmb3JtYXQgZm9yIGEgbGF5ZXIKPj4gwqAgKiBAYXZidWY6IEF1 ZGlvL3ZpZGVvIGJ1ZmZlciBtYW5hZ2VyCj4+IC0gKiBAbGF5ZXI6IFRoZSBsYXllciBJRAo+PiAr ICogQGxheWVyOiBUaGUgbGF5ZXIKPj4gwqAgKiBAZm10OiBUaGUgZm9ybWF0IGluZm9ybWF0aW9u Cj4+IMKgICoKPj4gwqAgKiBTZXQgdGhlIHZpZGVvIGJ1ZmZlciBtYW5hZ2VyIGZvcm1hdCBmb3Ig QGxheWVyIHRvIEBmbXQuCj4+IMKgICovCj4+IMKgc3RhdGljIHZvaWQgenlucW1wX2Rpc3BfYXZi dWZfc2V0X2Zvcm1hdChzdHJ1Y3QgenlucW1wX2Rpc3BfYXZidWYgCj4+ICphdmJ1ZiwKPj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSB6eW5xbXBfZGlzcF9s YXllcl9pZCBsYXllciwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc3RydWN0IHp5bnFtcF9kaXNwX2xheWVyICpsYXllciwKPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCB6eW5xbXBfZGlzcF9mb3JtYXQg KmZtdCkKPj4gwqB7Cj4+IMKgwqDCoMKgIHVuc2lnbmVkIGludCBpOwo+PiDCoMKgwqDCoCB1MzIg dmFsOwo+Pgo+PiDCoMKgwqDCoCB2YWwgPSB6eW5xbXBfZGlzcF9hdmJ1Zl9yZWFkKGF2YnVmLCBa WU5RTVBfRElTUF9BVl9CVUZfRk1UKTsKPj4gLcKgwqDCoCB2YWwgJj0gbGF5ZXIgPT0gWllOUU1Q X0RJU1BfTEFZRVJfVklECj4+ICvCoMKgwqAgdmFsICY9IGlzX2xheWVyX3ZpZChsYXllcikKPj4g wqDCoMKgwqDCoMKgwqDCoCA/IH5aWU5RTVBfRElTUF9BVl9CVUZfRk1UX05MX1ZJRF9NQVNLCj4+ IMKgwqDCoMKgwqDCoMKgwqAgOiB+WllOUU1QX0RJU1BfQVZfQlVGX0ZNVF9OTF9HRlhfTUFTSzsK Pj4gwqDCoMKgwqAgdmFsIHw9IGZtdC0+YnVmX2ZtdDsKPj4gwqDCoMKgwqAgenlucW1wX2Rpc3Bf YXZidWZfd3JpdGUoYXZidWYsIFpZTlFNUF9ESVNQX0FWX0JVRl9GTVQsIHZhbCk7Cj4+Cj4+IMKg wqDCoMKgIGZvciAoaSA9IDA7IGkgPCBaWU5RTVBfRElTUF9BVl9CVUZfTlVNX1NGOyBpKyspIHsK Pj4gLcKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCByZWcgPSBsYXllciA9PSBaWU5RTVBfRElT UF9MQVlFUl9WSUQKPj4gK8KgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCByZWcgPSBpc19sYXll cl92aWQobGF5ZXIpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPyBaWU5R TVBfRElTUF9BVl9CVUZfVklEX0NPTVBfU0YoaSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCA6IFpZTlFNUF9ESVNQX0FWX0JVRl9HRlhfQ09NUF9TRihpKTsKPj4KPj4gQEAg LTU3MywxOSArNTc4LDE5IEBAIHN0YXRpYyB2b2lkIAo+PiB6eW5xbXBfZGlzcF9hdmJ1Zl9kaXNh YmxlX2F1ZGlvKHN0cnVjdCB6eW5xbXBfZGlzcF9hdmJ1ZiAqYXZidWYpCj4+IMKgLyoqCj4+IMKg ICogenlucW1wX2Rpc3BfYXZidWZfZW5hYmxlX3ZpZGVvIC0gRW5hYmxlIGEgdmlkZW8gbGF5ZXIK Pj4gwqAgKiBAYXZidWY6IEF1ZGlvL3ZpZGVvIGJ1ZmZlciBtYW5hZ2VyCj4+IC0gKiBAbGF5ZXI6 IFRoZSBsYXllciBJRAo+PiArICogQGxheWVyOiBUaGUgbGF5ZXIKPj4gwqAgKiBAbW9kZTogT3Bl cmF0aW5nIG1vZGUgb2YgbGF5ZXIKPj4gwqAgKgo+PiDCoCAqIEVuYWJsZSB0aGUgdmlkZW8vZ3Jh cGhpY3MgYnVmZmVyIGZvciBAbGF5ZXIuCj4+IMKgICovCj4+IMKgc3RhdGljIHZvaWQgenlucW1w X2Rpc3BfYXZidWZfZW5hYmxlX3ZpZGVvKHN0cnVjdCB6eW5xbXBfZGlzcF9hdmJ1ZiAKPj4gKmF2 YnVmLAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51 bSB6eW5xbXBfZGlzcF9sYXllcl9pZCBsYXllciwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB6eW5xbXBfZGlzcF9sYXllciAqbGF5ZXIsCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSB6eW5x bXBfZGlzcF9sYXllcl9tb2RlIG1vZGUpCj4+IMKgewo+PiDCoMKgwqDCoCB1MzIgdmFsOwo+Pgo+ PiDCoMKgwqDCoCB2YWwgPSB6eW5xbXBfZGlzcF9hdmJ1Zl9yZWFkKGF2YnVmLCBaWU5RTVBfRElT UF9BVl9CVUZfT1VUUFVUKTsKPj4gLcKgwqDCoCBpZiAobGF5ZXIgPT0gWllOUU1QX0RJU1BfTEFZ RVJfVklEKSB7Cj4+ICvCoMKgwqAgaWYgKGlzX2xheWVyX3ZpZChsYXllcikpIHsKPj4gwqDCoMKg wqDCoMKgwqDCoCB2YWwgJj0gflpZTlFNUF9ESVNQX0FWX0JVRl9PVVRQVVRfVklEMV9NQVNLOwo+ PiDCoMKgwqDCoMKgwqDCoMKgIGlmIChtb2RlID09IFpZTlFNUF9ESVNQX0xBWUVSX05PTkxJVkUp Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2YWwgfD0gWllOUU1QX0RJU1BfQVZfQlVGX09V VFBVVF9WSUQxX01FTTsKPj4gQEAgLTYwNSwxNyArNjEwLDE3IEBAIHN0YXRpYyB2b2lkIAo+PiB6 eW5xbXBfZGlzcF9hdmJ1Zl9lbmFibGVfdmlkZW8oc3RydWN0IHp5bnFtcF9kaXNwX2F2YnVmICph dmJ1ZiwKPj4gwqAvKioKPj4gwqAgKiB6eW5xbXBfZGlzcF9hdmJ1Zl9kaXNhYmxlX3ZpZGVvIC0g RGlzYWJsZSBhIHZpZGVvIGxheWVyCj4+IMKgICogQGF2YnVmOiBBdWRpby92aWRlbyBidWZmZXIg bWFuYWdlcgo+PiAtICogQGxheWVyOiBUaGUgbGF5ZXIgSUQKPj4gKyAqIEBsYXllcjogVGhlIGxh eWVyCj4+IMKgICoKPj4gwqAgKiBEaXNhYmxlIHRoZSB2aWRlby9ncmFwaGljcyBidWZmZXIgZm9y IEBsYXllci4KPj4gwqAgKi8KPj4gwqBzdGF0aWMgdm9pZCB6eW5xbXBfZGlzcF9hdmJ1Zl9kaXNh YmxlX3ZpZGVvKHN0cnVjdCB6eW5xbXBfZGlzcF9hdmJ1ZiAKPj4gKmF2YnVmLAo+PiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnVtIHp5bnFtcF9kaXNw X2xheWVyX2lkIGxheWVyKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzdHJ1Y3QgenlucW1wX2Rpc3BfbGF5ZXIgKmxheWVyKQo+PiDCoHsKPj4gwqDC oMKgwqAgdTMyIHZhbDsKPj4KPj4gwqDCoMKgwqAgdmFsID0genlucW1wX2Rpc3BfYXZidWZfcmVh ZChhdmJ1ZiwgWllOUU1QX0RJU1BfQVZfQlVGX09VVFBVVCk7Cj4+IC3CoMKgwqAgaWYgKGxheWVy ID09IFpZTlFNUF9ESVNQX0xBWUVSX1ZJRCkgewo+PiArwqDCoMKgIGlmIChpc19sYXllcl92aWQo bGF5ZXIpKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqAgdmFsICY9IH5aWU5RTVBfRElTUF9BVl9CVUZf T1VUUFVUX1ZJRDFfTUFTSzsKPj4gwqDCoMKgwqDCoMKgwqDCoCB2YWwgfD0gWllOUU1QX0RJU1Bf QVZfQlVGX09VVFBVVF9WSUQxX05PTkU7Cj4+IMKgwqDCoMKgIH0gZWxzZSB7Cj4+IEBAIC04MDcs NyArODEyLDcgQEAgc3RhdGljIHZvaWQgenlucW1wX2Rpc3BfYmxlbmRfbGF5ZXJfc2V0X2NzYyhz dHJ1Y3QgCj4+IHp5bnFtcF9kaXNwX2JsZW5kICpibGVuZCwKPj4gwqDCoMKgwqDCoMKgwqDCoCB9 Cj4+IMKgwqDCoMKgIH0KPj4KPj4gLcKgwqDCoCBpZiAobGF5ZXItPmlkID09IFpZTlFNUF9ESVNQ X0xBWUVSX1ZJRCkKPj4gK8KgwqDCoCBpZiAoaXNfbGF5ZXJfdmlkKGxheWVyKSkKPj4gwqDCoMKg wqDCoMKgwqDCoCByZWcgPSBaWU5RTVBfRElTUF9WX0JMRU5EX0lOMUNTQ19DT0VGRigwKTsKPj4g wqDCoMKgwqAgZWxzZQo+PiDCoMKgwqDCoMKgwqDCoMKgIHJlZyA9IFpZTlFNUF9ESVNQX1ZfQkxF TkRfSU4yQ1NDX0NPRUZGKDApOwo+PiBAQCAtODE4LDcgKzgyMyw3IEBAIHN0YXRpYyB2b2lkIHp5 bnFtcF9kaXNwX2JsZW5kX2xheWVyX3NldF9jc2Moc3RydWN0IAo+PiB6eW5xbXBfZGlzcF9ibGVu ZCAqYmxlbmQsCj4+IMKgwqDCoMKgwqDCoMKgwqAgenlucW1wX2Rpc3BfYmxlbmRfd3JpdGUoYmxl bmQsIHJlZyArIDgsIGNvZWZmc1tpICsgc3dhcFsyXV0pOwo+PiDCoMKgwqDCoCB9Cj4+Cj4+IC3C oMKgwqAgaWYgKGxheWVyLT5pZCA9PSBaWU5RTVBfRElTUF9MQVlFUl9WSUQpCj4+ICvCoMKgwqAg aWYgKGlzX2xheWVyX3ZpZChsYXllcikpCj4+IMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gWllOUU1Q X0RJU1BfVl9CTEVORF9JTjFDU0NfT0ZGU0VUKDApOwo+PiDCoMKgwqDCoCBlbHNlCj4+IMKgwqDC oMKgwqDCoMKgwqAgcmVnID0gWllOUU1QX0RJU1BfVl9CTEVORF9JTjJDU0NfT0ZGU0VUKDApOwo+ PiBAQCAtMTAyNSw3ICsxMDMwLDcgQEAgenlucW1wX2Rpc3BfbGF5ZXJfZmluZF9mb3JtYXQoc3Ry dWN0IAo+PiB6eW5xbXBfZGlzcF9sYXllciAqbGF5ZXIsCj4+IMKgICovCj4+IMKgc3RhdGljIHZv aWQgenlucW1wX2Rpc3BfbGF5ZXJfZW5hYmxlKHN0cnVjdCB6eW5xbXBfZGlzcF9sYXllciAqbGF5 ZXIpCj4+IMKgewo+PiAtwqDCoMKgIHp5bnFtcF9kaXNwX2F2YnVmX2VuYWJsZV92aWRlbygmbGF5 ZXItPmRpc3AtPmF2YnVmLCBsYXllci0+aWQsCj4+ICvCoMKgwqAgenlucW1wX2Rpc3BfYXZidWZf ZW5hYmxlX3ZpZGVvKCZsYXllci0+ZGlzcC0+YXZidWYsIGxheWVyLAo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFpZTlFNUF9ESVNQX0xBWUVSX05PTkxJ VkUpOwo+PiDCoMKgwqDCoCB6eW5xbXBfZGlzcF9ibGVuZF9sYXllcl9lbmFibGUoJmxheWVyLT5k aXNwLT5ibGVuZCwgbGF5ZXIpOwo+Pgo+PiBAQCAtMTA0Niw3ICsxMDUxLDcgQEAgc3RhdGljIHZv aWQgenlucW1wX2Rpc3BfbGF5ZXJfZGlzYWJsZShzdHJ1Y3QgCj4+IHp5bnFtcF9kaXNwX2xheWVy ICpsYXllcikKPj4gwqDCoMKgwqAgZm9yIChpID0gMDsgaSA8IGxheWVyLT5kcm1fZm10LT5udW1f cGxhbmVzOyBpKyspCj4+IMKgwqDCoMKgwqDCoMKgwqAgZG1hZW5naW5lX3Rlcm1pbmF0ZV9zeW5j KGxheWVyLT5kbWFzW2ldLmNoYW4pOwo+Pgo+PiAtwqDCoMKgIHp5bnFtcF9kaXNwX2F2YnVmX2Rp c2FibGVfdmlkZW8oJmxheWVyLT5kaXNwLT5hdmJ1ZiwgbGF5ZXItPmlkKTsKPj4gK8KgwqDCoCB6 eW5xbXBfZGlzcF9hdmJ1Zl9kaXNhYmxlX3ZpZGVvKCZsYXllci0+ZGlzcC0+YXZidWYsIGxheWVy KTsKPj4gwqDCoMKgwqAgenlucW1wX2Rpc3BfYmxlbmRfbGF5ZXJfZGlzYWJsZSgmbGF5ZXItPmRp c3AtPmJsZW5kLCBsYXllcik7Cj4+IMKgfQo+Pgo+PiBAQCAtMTA2Nyw3ICsxMDcyLDcgQEAgc3Rh dGljIHZvaWQgenlucW1wX2Rpc3BfbGF5ZXJfc2V0X2Zvcm1hdChzdHJ1Y3QgCj4+IHp5bnFtcF9k aXNwX2xheWVyICpsYXllciwKPj4gwqDCoMKgwqAgbGF5ZXItPmRpc3BfZm10ID0genlucW1wX2Rp c3BfbGF5ZXJfZmluZF9mb3JtYXQobGF5ZXIsIAo+PiBpbmZvLT5mb3JtYXQpOwo+PiDCoMKgwqDC oCBsYXllci0+ZHJtX2ZtdCA9IGluZm87Cj4+Cj4+IC3CoMKgwqAgenlucW1wX2Rpc3BfYXZidWZf c2V0X2Zvcm1hdCgmbGF5ZXItPmRpc3AtPmF2YnVmLCBsYXllci0+aWQsCj4+ICvCoMKgwqAgenlu cW1wX2Rpc3BfYXZidWZfc2V0X2Zvcm1hdCgmbGF5ZXItPmRpc3AtPmF2YnVmLCBsYXllciwKPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxheWVyLT5kaXNwX2Zt dCk7Cj4+Cj4+IMKgwqDCoMKgIC8qCj4+IEBAIC0xMjQ0LDggKzEyNDksOCBAQCBzdGF0aWMgaW50 IHp5bnFtcF9kaXNwX2NyZWF0ZV9wbGFuZXMoc3RydWN0IAo+PiB6eW5xbXBfZGlzcCAqZGlzcCkK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRybV9mb3JtYXRzW2pdID0gbGF5ZXItPmluZm8t PmZvcm1hdHNbal0uZHJtX2ZtdDsKPj4KPj4gwqDCoMKgwqDCoMKgwqDCoCAvKiBHcmFwaGljcyBs YXllciBpcyBwcmltYXJ5LCBhbmQgdmlkZW8gbGF5ZXIgaXMgb3ZlcmxheS4gKi8KPj4gLcKgwqDC oMKgwqDCoMKgIHR5cGUgPSBpID09IFpZTlFNUF9ESVNQX0xBWUVSX0dGWAo+PiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgID8gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSA6IERSTV9QTEFORV9UWVBF X09WRVJMQVk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB0eXBlID0gaXNfbGF5ZXJfdmlkKGxheWVyKQo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgID8gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSA6IERS TV9QTEFORV9UWVBFX1BSSU1BUlk7Cj4+IMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gZHJtX3VuaXZl cnNhbF9wbGFuZV9pbml0KGRpc3AtPmRybSwgJmxheWVyLT5wbGFuZSwgMCwKPj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZ6eW5xbXBfZGlz cF9wbGFuZV9mdW5jcywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGRybV9mb3JtYXRzLAo+IAo+IAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=