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.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,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 A73C9C4743C for ; Wed, 23 Jun 2021 12:59:11 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 7517E60698 for ; Wed, 23 Jun 2021 12:59:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7517E60698 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 323386E0E9; Wed, 23 Jun 2021 12:59:11 +0000 (UTC) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2046.outbound.protection.outlook.com [40.107.92.46]) by gabe.freedesktop.org (Postfix) with ESMTPS id 719FB6E0E9; Wed, 23 Jun 2021 12:59:10 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V7BRFHWn1jOioeEniE1oQJ+Bn3lsIowkqS7dBAeBYsbZnQ5TZEeDsaHotAj15Y2e3uLWcbaPg5TjiQsebBuE2G9OOC7KylSql/BD4XSVNY7mjeFNnC2P5BPyd/dD71h116JOK1Z6Gbs6OuySVCapJL7Q0/tWEgS+gvw5CZaDial2WzOJwq/1BYH6DlY0HLvYYMs9HxeHUtxAY7KoRedXUTCoxknj3Bek0iCw5SxVNmlOgFZoi8v7xJWnsW9ZdSQ2p1FHEpPA+gy44/bzECThPty+MrpRL12/0PDc0BXulazYjPn35qF6fylu6HLBfy261TwuN9D6r7gFK/h1pZqw9A== 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=0poL/xck/F+X6ASXMufxMmar/+nD5KtqcU6yt4hGGOY=; b=fjbp07Z6otmkDps0XSGfy/73X8s+PZcnfzr6bzeFZMGgyD2VImymEEWjPWSqNl1rQ8xwwdbKSExaaRyXGEy14erheMBG+Pasux4dZ+E2FFyFj7mJBbrSB6cyTb6beMsdyEgz6BM7dahJclFUvPd07iqyCeWtdZPvnCD7qvWBUsjY7qLLKZQT0f5oPEaR3ZzsKUH4BpyzJGP+Yp1efb634h9R8soPGuMAgBHs4eki9Yti8cWDiiayuK4098GGIWR3Bau7NZWTMTzuD01y+7TR8BYs112Mlr3R4Y4NFVeWtiM6b6CX4x4g3ihVqKAMhMNXd+sjKzQsivp/hEu8SxuY8A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0poL/xck/F+X6ASXMufxMmar/+nD5KtqcU6yt4hGGOY=; b=rFb8kEa8NgwbKSevBcfA8DNOXvDkqzU1NMorkKNVhFv260t3ginFax3+lhBR5tEds9fQ+o3YYbL2wjrrs/ngsTH8xnJ1CQZJhpJXvIhDqQLqFD6onSR//6HeW73dFd6iXj6+e3NVYQRRBjyxIkuj0JcCsVYIkLkYadtDrZnEI9o= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by BL0PR12MB4961.namprd12.prod.outlook.com (2603:10b6:208:1c9::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18; Wed, 23 Jun 2021 12:59:08 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756%5]) with mapi id 15.20.4242.024; Wed, 23 Jun 2021 12:59:08 +0000 To: Daniel Vetter , Bas Nieuwenhuizen References: <20210622165511.3169559-1-daniel.vetter@ffwll.ch> <20210622165511.3169559-16-daniel.vetter@ffwll.ch> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <3bf45006-4256-763d-601b-3a25a7057820@amd.com> Date: Wed, 23 Jun 2021 14:59:02 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:871f:87e2:f394:e667] X-ClientProxiedBy: PR3P189CA0050.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:53::25) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:871f:87e2:f394:e667] (2a02:908:1252:fb60:871f:87e2:f394:e667) by PR3P189CA0050.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:53::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18 via Frontend Transport; Wed, 23 Jun 2021 12:59:05 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5d828fe0-edc1-4ea0-0775-08d93646b01b X-MS-TrafficTypeDiagnostic: BL0PR12MB4961: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EOg6G0Rmymmk2PuyDbe0mP7P4sjc7tMrLAc6CTvGZHGz1aRCQjFO9L4VRypUas8huTi4IpqKEkCUo2FNrEWDOaWJbL1G9I7OE9XebY1j0EbIlcxV1kiU0Qf0xJ6S62BgtM3hTtJCLZwVSudLSY4gFGXlHM0Ori2oiU1qeFuC09SZQiOt/ueIDXm+oxuZz2k6nUDaSBWPLjTCKURxNRy6gF3Z6dGp5iWhnD3vK/EvPNQu54lqszpFyPUpk3UBVpV751rnjvTPfJ/3HsVKLRyul1Yn+WfyEXMWxqdydKLis55L2Wxoa0s++rcaijDgFOdDlA80X3a7HTpZAxtxe4tWM7IOLgWZITM+tgwrP0YaT/JNHNtQRNKJOhQzOLd6z1a4wyJ4Zix0hRRaYiFkp2C2dCnH50rlpczpBGahMAifRfkMTnMwss9TuxcR/f8cQ9V67x9awFeToLOv4xBOHBwi/w01zvTU7S+FGNnO151JuSKWlzbE3PZgqPZYzzO01Z5xOXsstYlFRcafSXi12iIDtXY/+V6WVsq9RslKGHBBXluX5l0gXWoDe2uJrhuR6gFWc6u4+X23dIYpt52Y6IMEH+dfgQFKlGJihHFIVVnOhUfO2qSVdUPRi0QgPiHKuDeM4gJDfN5tlKDpGblWxhCGE1WmQr+sroTH8WxvQS+I1sjCTxOULQLehRFnrS6YbjP0u45Blb095mADVRuNyONryzazTri7eoTUYTB07TL98oY05QlGyApyMcKnL/5YO41VFdE9KNxI3rJFCeuwy8I3hSF9pgKoGhI9UDS3X7bxLj4m456j+p2uBxU1UfTutwdhlC/JumVi/6DLZt4xRmiDyi8v7crE1Fx6QVp3FYKk3t4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(366004)(346002)(376002)(396003)(5660300002)(8936002)(8676002)(66946007)(66556008)(66476007)(966005)(83380400001)(66574015)(30864003)(31696002)(110136005)(36756003)(86362001)(478600001)(45080400002)(6486002)(7416002)(2616005)(31686004)(54906003)(53546011)(16526019)(186003)(316002)(6666004)(4326008)(2906002)(38100700002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aDhhakZoMDF2d0hqWGV5K0t2YzM3Qm93U3BjTk5IRTF0Vmp5YitYdVUyUkkx?= =?utf-8?B?T0ZNYjVHMzhZTTNyeGUyRXU5SXhmb081aUxKTG9QdUI4K1hMT1F1NmZUU2Z2?= =?utf-8?B?ellhM3oyWlZaeTA3aGxvS0pWZldzcE0xYVB1TnhibTVEdVNVQS8wQWEyQWdn?= =?utf-8?B?VnAzNGhlb01CS0Q4SW5yMWx2am9Da29BN01raWtXQWhrR3dDakR6aDBjMlVV?= =?utf-8?B?Ykw4Rkk0YUZuTTZ1OVM5eGlIRkxicHRVWVFtNlQ5ZjFtckxFZng1NXNMdnNP?= =?utf-8?B?ZWh5anRXQXp5QjFZVXFwS01telJYMnN0ajdlQjVWdm5ZWW5LSUcvbHlPS09u?= =?utf-8?B?SFZKekVvdmtZcU9wVXkzaHZNaEdKQmgrM0V4cmFRc3VSdSs2SU83SlJNOGly?= =?utf-8?B?R0tYNS9td3JZK2R1VUpySWhwVXd5U2J4NzZEQUREeUx3VFFaN2x3TmJ5NFdQ?= =?utf-8?B?TDJNaVlBd1FVR29Ka1ZqSytWbkM3akZtZVpNVjhzcStML21jbWREL2cyc0ox?= =?utf-8?B?VUwyZ0hRaSs4ZE04eUUxWkltMWRhMUtRVmEwYThKWkxCaVJobFlVL2tnSkkx?= =?utf-8?B?elE5T0FhNExXdkNtSzdkS3o0d0V3eFF5TVlNQjBkMTE5NUl5ZnQ1VDFqRHJ3?= =?utf-8?B?QnRlQUZNeGpWR0tiZ01ZYTlPYkJuczVONUpNMXp0dG9zaG9vRVMyR2dGS1RR?= =?utf-8?B?d0NQY0Nod3dBbG1HVG5STyt0QVJwMUNYV1RBUGJWZnpObHFtUWZBRWdLa2Zv?= =?utf-8?B?Q1RpVTJOcFo3OHZpZ0lNVE9BS3ZPenJKaUZBcXJzUllicVRsL292QlFPdEVQ?= =?utf-8?B?TSt4MllTdWNDR1laUzNMTGpIUWtyRVVQdERVM0VMSmFxeFQ2VzZxcWY1NVQ0?= =?utf-8?B?MlpkbjlDU1J0NHZKYU1QcWtxaFBETnpvSHBWV3UyeUcxNU83SWNUU2QxWGVh?= =?utf-8?B?Z0RpM1pVcFc3N3ExakdqTmVuem9IS2VKaGJCbzl1NzJFbFp4cHZ3czRaNHRk?= =?utf-8?B?QVBOMUpJeXpWZys3SmZJd080TG9QSUNUY3g1anFNeUVUSmVJWDhIQS82ZlBN?= =?utf-8?B?RTFDbjlWcGJJZS9wYmNDSkhIa1pwNVZmR0tyMVdzUmtRZC8vVHV5aVNyQkVI?= =?utf-8?B?ZEVncXB5S0dzNitDRTZLdUJobGRWVVJwVWYzVXQvTG9CelN5MERNY0N2RGV0?= =?utf-8?B?S1RvWGsvNFJyWVFvR0llYnRyZUJMTXE5VmZBbVl0dUJIR2J0Mkg3UmRGdzB0?= =?utf-8?B?MHRRQ1p5VW91UkpYNURVOE5tNEorN3poR2Nhd1d5V3J6NjFoRjZ2TldOQ3NW?= =?utf-8?B?bmxTMzdzWG5KeDVvTTNjYjRkUjFXcFpsTVEwUGZuRTV0a3hNYVRtaXZmclNv?= =?utf-8?B?N3VFTExBK3c5bzhiVWIveTRlQ0dCZkZnZFFiNXNSczF6aTJjUEh0aXNkVjZD?= =?utf-8?B?d0o1YWJmOXVLQ0lQek1ERHE0S21vMDhLMERFOElzSVhyS0xKMmhUbC9KSVB1?= =?utf-8?B?UDZYZ3ZRYUlEeVpvbGs4Mmh3Mm56NmhNMmhOdzR5YU15N25yM2ZWc29ZZTFW?= =?utf-8?B?M0l5dDEvOGFoeHFtTWJJenpIVHVqMUdrejA4K3ovQjBDREplSFYxS1Bydlhv?= =?utf-8?B?NG9FQ2JGVzBwMGVRTWFLcXVwZjFzTHNacWI3RVJVY2QxR2ZVbmlnY0VaRWZh?= =?utf-8?B?emhVdVRvT04zUTNyV01aREFpTDNEb1h1Rk5rNDVFR1lnclhHUTFXNTVyWW1S?= =?utf-8?B?U2UzNDFYVm03bzRzWk03WjZrSVBsYmY3WEJUekNYOSs2dFVLeFZvOGg4RmpC?= =?utf-8?B?TlBYRktwTllJZG5IcWdLRVp4UG9pS0dtNkdURDlKc3lpUkVLUVZwZHJxbkcr?= =?utf-8?Q?GghELAqFnnDsE?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d828fe0-edc1-4ea0-0775-08d93646b01b X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2021 12:59:08.1886 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ORbxC8mc2TGoQ9KzoUAFLrB4PcIdJJj/RsVMHl3FSpWzoIpmVJ67edN2bf6JjnRn X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4961 Subject: Re: [Intel-gfx] [PATCH 15/15] RFC: drm/amdgpu: Implement a proper implicit fencing uapi X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Clark , Daniel Stone , Intel Graphics Development , Kevin Wang , DRI Development , Sumit Semwal , "moderated list:DMA BUFFER SHARING FRAMEWORK" , Luben Tuikov , "Kristian H . Kristensen" , Chen Li , Daniel Vetter , Alex Deucher , mesa-dev , Dave Airlie , =?UTF-8?Q?Michel_D=c3=a4nzer?= , Dennis Li , Deepak R Varma Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" QW0gMjMuMDYuMjEgdW0gMTQ6MTggc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFdlZCwgSnVu IDIzLCAyMDIxIGF0IDExOjQ1IEFNIEJhcyBOaWV1d2VuaHVpemVuCj4gPGJhc0BiYXNuaWV1d2Vu aHVpemVuLm5sPiB3cm90ZToKPj4gT24gVHVlLCBKdW4gMjIsIDIwMjEgYXQgNjo1NSBQTSBEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPiB3cm90ZToKPj4+IFdBUk5JTkc6IEFi c29sdXRlbHkgdW50ZXN0ZWQgYmV5b25kICJnY2MgaXNuJ3QgZHlpbmcgaW4gYWdvbnkiLgo+Pj4K Pj4+IEltcGxpY2l0IGZlbmNpbmcgZG9uZSBwcm9wZXJseSBuZWVkcyB0byB0cmVhdCB0aGUgaW1w bGljaXQgZmVuY2luZwo+Pj4gc2xvdHMgbGlrZSBhIGZ1bm55IGtpbmQgb2YgSVBDIG1haWxib3gu IEluIG90aGVyIHdvcmRzIGl0IG5lZWRzIHRvIGJlCj4+PiBleHBsaWNpdGx5LiBUaGlzIGlzIHRo ZSBvbmx5IHdheSBpdCB3aWxsIG1lc2ggd2VsbCB3aXRoIGV4cGxpY2l0Cj4+PiBmZW5jaW5nIHVz ZXJzcGFjZSBsaWtlIHZrLCBhbmQgaXQncyBhbHNvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQg dG8KPj4+IGJlIGFibGUgdG8gbWFuYWdlIGFueXRoaW5nIGVsc2UgdGhhdCB3YW50cyB0byB1c2Ug dGhlIHNhbWUgYnVmZmVyIG9uCj4+PiBtdWx0aXBsZSBlbmdpbmVzIGluIHBhcmFsbGVsLCBhbmQg c3RpbGwgYmUgYWJsZSB0byBzaGFyZSBpdCB0aHJvdWdoCj4+PiBpbXBsaWNpdCBzeW5jLgo+Pj4K Pj4+IGFtZGdwdSBjb21wbGV0ZWx5IGxhY2tzIHN1Y2ggYW4gdWFwaS4gRml4IHRoaXMuCj4+Pgo+ Pj4gTHVja2lseSB0aGUgY29uY2VwdCBvZiBpZ25vcmluZyBpbXBsaWNpdCBmZW5jZXMgZXhpc3Rz IGFscmVhZHksIGFuZAo+Pj4gdGFrZXMgY2FyZSBvZiBhbGwgdGhlIGNvbXBsZXhpdGllcyBvZiBt YWtpbmcgc3VyZSB0aGF0IG5vbi1vcHRpb25hbAo+Pj4gZmVuY2VzIChsaWtlIGJvIG1vdmVzKSBh cmUgbm90IGlnbm9yZWQuIFRoaXMgc3VwcG9ydCB3YXMgYWRkZWQgaW4KPj4+Cj4+PiBjb21taXQg MTc3YWUwOWI1ZDY5OWE1ZWJkMWNhZmNlZTc4ODg5ZGI5NjhhYmY1NAo+Pj4gQXV0aG9yOiBBbmRy ZXMgUm9kcmlndWV6IDxhbmRyZXN4N0BnbWFpbC5jb20+Cj4+PiBEYXRlOiAgIEZyaSBTZXAgMTUg MjA6NDQ6MDYgMjAxNyAtMDQwMAo+Pj4KPj4+ICAgICAgZHJtL2FtZGdwdTogaW50cm9kdWNlIEFN REdQVV9HRU1fQ1JFQVRFX0VYUExJQ0lUX1NZTkMgdjIKPj4+Cj4+PiBVbmZvcnR1YW50ZWx5IGl0 J3MgdGhlIHdyb25nIHNlbWFudGljcywgYmVjYXVzZSBpdCdzIGEgYm8gZmxhZyBhbmQKPj4+IGRp c2FibGVzIGltcGxpY2l0IHN5bmMgb24gYW4gYWxsb2NhdGVkIGJ1ZmZlciBjb21wbGV0ZWx5Lgo+ Pj4KPj4+IFdlIF9kb18gd2FudCBpbXBsaWNpdCBzeW5jLCBidXQgY29udHJvbCBpdCBleHBsaWNp dGx5LiBGb3IgdGhpcyB3ZQo+Pj4gbmVlZCBhIGZsYWcgb24gdGhlIGRybV9maWxlLCBzbyB0aGF0 IGEgZ2l2ZW4gdXNlcnNwYWNlIChsaWtlIHZ1bGthbikKPj4+IGNhbiBtYW5hZ2UgdGhlIGltcGxp Y2l0IHN5bmMgc2xvdHMgZXhwbGljaXRseS4gVGhlIG90aGVyIHNpZGUgb2YgdGhlCj4+PiBwaXBl bGluZSAoY29tcG9zaXRvciwgb3RoZXIgcHJvY2VzcyBvciBqdXN0IGRpZmZlcmVudCBzdGFnZSBp biBhIG1lZGlhCj4+PiBwaXBlbGluZSBpbiB0aGUgc2FtZSBwcm9jZXNzKSBjYW4gdGhlbiBlaXRo ZXIgZG8gdGhlIHNhbWUsIG9yIGZ1bGx5Cj4+PiBwYXJ0aWNpcGF0ZSBpbiB0aGUgaW1wbGljaXQg c3luYyBhcyBpbXBsZW1lbnRlZCBieSB0aGUga2VybmVsIGJ5Cj4+PiBkZWZhdWx0Lgo+Pj4KPj4+ IEJ5IGJ1aWxkaW5nIG9uIHRoZSBleGlzdGluZyBmbGFnIGZvciBidWZmZXJzIHdlIGF2b2lkIGFu eSBpc3N1ZXMgd2l0aAo+Pj4gb3BlbmluZyB1cCBhZGRpdGlvbmFsIHNlY3VyaXR5IGNvbmNlcm5z IC0gYW55dGhpbmcgdGhpcyBuZXcgZmxhZyBoZXJlCj4+PiBhbGxvd3MgaXMgYWxyZWFkeS4KPj4+ Cj4+PiBBbGwgZHJpdmVycyB3aGljaCBzdXBwb3J0cyB0aGlzIGNvbmNlcHQgb2YgYSB1c2Vyc3Bh Y2Utc3BlY2lmaWMKPj4+IG9wdC1vdXQgb2YgaW1wbGljaXQgc3luYyBoYXZlIGEgZmxhZyBpbiB0 aGVpciBDUyBpb2N0bCwgYnV0IGluIHJlYWxpdHkKPj4+IHRoYXQgdHVybmVkIG91dCB0byBiZSBh IGJpdCB0b28gaW5mbGV4aWJsZS4gU2VlIHRoZSBkaXNjdXNzaW9uIGJlbG93LAo+Pj4gbGV0J3Mg dHJ5IHRvIGRvIGEgYml0IGJldHRlciBmb3IgYW1kZ3B1Lgo+Pj4KPj4+IFRoaXMgYWxvbmUgb25s eSBhbGxvd3MgdXMgdG8gY29tcGxldGVseSBhdm9pZCBhbnkgc3RhbGxzIGR1ZSB0bwo+Pj4gaW1w bGljaXQgc3luYywgaXQgZG9lcyBub3QgeWV0IGFsbG93IHVzIHRvIHVzZSBpbXBsaWNpdCBzeW5j IGFzIGEKPj4+IHN0cmFuZ2UgZm9ybSBvZiBJUEMgZm9yIHN5bmNfZmlsZS4KPj4+Cj4+PiBGb3Ig dGhhdCB3ZSBuZWVkIHR3byBtb3JlIHBpZWNlczoKPj4+Cj4+PiAtIGEgd2F5IHRvIGdldCB0aGUg Y3VycmVudCBpbXBsaWNpdCBzeW5jIGZlbmNlcyBvdXQgb2YgYSBidWZmZXIuIENvdWxkCj4+PiAg ICBiZSBkb25lIGluIGEgZHJpdmVyIGlvY3RsLCBidXQgZXZlcnlvbmUgbmVlZHMgdGhpcywgYW5k IGdlbmVyYWxseSBhCj4+PiAgICBkbWEtYnVmIGlzIGludm9sdmVkIGFueXdheSB0byBlc3RhYmxp c2ggdGhlIHNoYXJpbmcuIFNvIGFuIGlvY3RsIG9uCj4+PiAgICB0aGUgZG1hLWJ1ZiBtYWtlcyBh IHRvbiBtb3JlIHNlbnNlOgo+Pj4KPj4+ICAgIGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3Rl Y3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmxvcmUua2VybmVsLm9yZyUyRmRy aS1kZXZlbCUyRjIwMjEwNTIwMTkwMDA3LjUzNDA0Ni00LWphc29uJTQwamxla3N0cmFuZC5uZXQl MkYmYW1wO2RhdGE9MDQlN0MwMSU3Q2NocmlzdGlhbi5rb2VuaWclNDBhbWQuY29tJTdDZjAyNjA1 NWY1MjNkNGU0ZGY5NWIwOGQ5MzY0MTBlMzklN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRl MTgzZCU3QzAlN0MwJTdDNjM3NjAwNDc1MzUxMDg1NTM2JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNk OGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pY VkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRhPWdVbk04JTJGdWx4JTJCJTJCREx4QnlPJTJGMFYz Y0xxdCUyRmMydW5Xaml6RXBwdFFxTThnJTNEJmFtcDtyZXNlcnZlZD0wCj4+Pgo+Pj4gICAgQ3Vy cmVudCBkcml2ZXJzIGluIHVwc3RyZWFtIHNvbHZlcyB0aGlzIGJ5IGhhdmluZyB0aGUgb3B0LW91 dCBmbGFnCj4+PiAgICBvbiB0aGVpciBDUyBpb2N0bC4gVGhpcyBoYXMgdGhlIGRvd25zaWRlIHRo YXQgdmVyeSBvZnRlbiB0aGUgQ1MKPj4+ICAgIHdoaWNoIG11c3QgYWN0dWFsbHkgc3RhbGwgZm9y IHRoZSBpbXBsaWNpdCBmZW5jZSBpcyBydW4gYSB3aGlsZQo+Pj4gICAgYWZ0ZXIgdGhlIGltcGxp Y2l0IGZlbmNlIHBvaW50IHdhcyBsb2dpY2FsbHkgc2FtcGxlZCBwZXIgdGhlIGFwaQo+Pj4gICAg c3BlYyAodmsgcGFzc2VzIGFuIGV4cGxpY2l0IHN5bmNvYmogYXJvdW5kIGZvciB0aGF0IGFmYWl1 aSksIGFuZCBzbwo+Pj4gICAgcmVzdWx0cyBpbiBvdmVyc3luYy4gQ29udmVydGluZyB0aGUgaW1w bGljaXQgc3luYyBmZW5jZXMgaW50byBhCj4+PiAgICBzbmFwLXNob3Qgc3luY19maWxlIGlzIGFj dHVhbGx5IGFjY3VyYXRlLgo+Pj4KPj4+IC0gU2ltaWxsYXIgd2UgbmVlZCB0byBiZSBhYmxlIHRv IHNldCB0aGUgZXhjbHVzaXZlIGltcGxpY2l0IGZlbmNlLgo+Pj4gICAgQ3VycmVudCBkcml2ZXJz IGFnYWluIGRvIHRoaXMgd2l0aCBhIENTIGlvY3RsIGZsYWcsIHdpdGggYWdhaW4gdGhlCj4+PiAg ICBzYW1lIHByb2JsZW1zIHRoYXQgdGhlIHRpbWUgdGhlIENTIGhhcHBlbnMgYWRkaXRpb25hbCBk ZXBlbmRlbmNpZXMKPj4+ICAgIGhhdmUgYmVlbiBhZGRlZC4gQW4gZXhwbGljaXQgaW9jdGwgdG8g b25seSBpbnNlcnQgYSBzeW5jX2ZpbGUgKHdoaWxlCj4+PiAgICByZXNwZWN0aW5nIHRoZSBydWxl cyBmb3IgaG93IGV4Y2x1c2l2ZSBhbmQgc2hhcmVkIGZlbmNlIHNsb3RzIG11c3QKPj4+ICAgIGJl IHVwZGF0ZSBpbiBzdHJ1Y3QgZG1hX3Jlc3YpIGlzIG11Y2ggYmV0dGVyLiBUaGlzIGlzIHByb3Bv c2VkIGhlcmU6Cj4+Pgo+Pj4gICAgaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5v dXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbG9yZS5rZXJuZWwub3JnJTJGZHJpLWRldmVs JTJGMjAyMTA1MjAxOTAwMDcuNTM0MDQ2LTUtamFzb24lNDBqbGVrc3RyYW5kLm5ldCUyRiZhbXA7 ZGF0YT0wNCU3QzAxJTdDY2hyaXN0aWFuLmtvZW5pZyU0MGFtZC5jb20lN0NmMDI2MDU1ZjUyM2Q0 ZTRkZjk1YjA4ZDkzNjQxMGUzOSU3QzNkZDg5NjFmZTQ4ODRlNjA4ZTExYTgyZDk5NGUxODNkJTdD MCU3QzAlN0M2Mzc2MDA0NzUzNTEwODU1MzYlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lq b2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4w JTNEJTdDMTAwMCZhbXA7c2RhdGE9d0ZHTnllTDFZU3BrZWJmMUwxRERiMmV1aWhmMWZ2bVI5Rzhj Znl3cnBWVSUzRCZhbXA7cmVzZXJ2ZWQ9MAo+Pj4KPj4+IFRoZXNlIHRocmVlIHBpZWNlcyB0b2dl dGhlciBhbGxvdyB1c2Vyc3BhY2UgdG8gZnVsbHkgY29udHJvbCBpbXBsaWNpdAo+Pj4gZmVuY2lu ZyBhbmQgcmVtb3ZlIGFsbCB1bmVjZXNzYXJ5IHN0YWxsIHBvaW50cyBkdWUgdG8gdGhlbS4KPj4+ Cj4+PiBXZWxsLCBhcyBtdWNoIGFzIHRoZSBpbXBsaWNpdCBmZW5jaW5nIG1vZGVsIGZ1bmRhbWVu dGFsbHkgYWxsb3dzOgo+Pj4gVGhlcmUgaXMgb25seSBvbmUgc2V0IG9mIGZlbmNlcywgeW91IGNh biBvbmx5IGNob29zZSB0byBzeW5jIGFnYWluc3QKPj4+IG9ubHkgd3JpdGVycyAoZXhjbHVzaXZl IHNsb3QpLCBvciBldmVyeW9uZS4gSGVuY2Ugc3ViYWxsb2NhdGluZwo+Pj4gbXVsdGlwbGUgYnVm ZmVycyBvciBhbnl0aGluZyBlbHNlIGxpa2UgdGhpcyBpcyBmdW5kYW1lbnRhbGx5IG5vdAo+Pj4g cG9zc2libGUsIGFuZCBjYW4gb25seSBiZSBmaXhlZCBieSBhIHByb3BlciBleHBsaWNpdCBmZW5j aW5nIG1vZGVsLgo+Pj4KPj4+IEFzaWRlIGZyb20gdGhhdCBjYXZlYXQgdGhpcyBtb2RlbCBnZXRz IGltcGxpY2l0IGZlbmNpbmcgYXMgY2xvc2VseSB0bwo+Pj4gZXhwbGljaXQgZmVuY2luZyBzZW1h bnRpY3MgYXMgcG9zc2libGU6Cj4+Pgo+Pj4gT24gdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBJ IG9wdGVkIGZvciBhIHNpbXBsZSBzZXRwYXJhbSBpb2N0bCwgbm8KPj4+IGxvY2tpbmcgKGp1c3Qg YXRvbWljIHJlYWRzL3dyaXRlcykgZm9yIHNpbXBsaWNpdHkuIFRoZXJlIGlzIGEgbmljZQo+Pj4g ZmxhZyBwYXJhbWV0ZXIgaW4gdGhlIFZNIGlvY3RsIHdoaWNoIHdlIGNvdWxkIHVzZSwgZXhjZXB0 Ogo+Pj4gLSBpdCdzIG5vdCBjaGVja2VkLCBzbyB1c2Vyc3BhY2UgbGlrZWx5IHBhc3NlcyBnYXJi YWdlCj4+PiAtIHRoZXJlJ3MgYWxyZWFkeSBhIGNvbW1lbnQgdGhhdCB1c2Vyc3BhY2UgX2RvZXNf IHBhc3MgZ2FyYmFnZSBpbiB0aGUKPj4+ICAgIHByaW9yaXR5IGZpZWxkCj4+PiBTbyB5ZWFoIHVu Zm9ydHVuYXRlbHkgdGhpcyBmbGFnIHBhcmFtZXRlciBmb3Igc2V0dGluZyB2bSBmbGFncyBpcwo+ Pj4gdXNlbGVzcywgYW5kIHdlIG5lZWQgdG8gaGFjayB1cCBhIG5ldyBvbmUuCj4+Pgo+Pj4gdjI6 IEV4cGxhaW4gd2h5IGEgbmV3IFNFVFBBUkFNIChKYXNvbikKPj4+Cj4+PiB2MzogQmFzIG5vdGlj ZWQgSSBmb3Jnb3QgdG8gaG9vayB1cCB0aGUgZGVwZW5kZW5jeS1zaWRlIHNob3J0Y3V0LiBXZQo+ Pj4gbmVlZCBib3RoLCBvciB0aGlzIGRvZXNuJ3QgZG8gbXVjaC4KPj4+Cj4+PiB2NDogUmViYXNl IG92ZXIgdGhlIGFtZGdwdSBwYXRjaCB0byBhbHdheXMgc2V0IHRoZSBpbXBsaWNpdCBzeW5jCj4+ PiBmZW5jZXMuCj4+IFNvIEkgdGhpbmsgdGhlcmUgaXMgc3RpbGwgYSBjYXNlIG1pc3NpbmcgaW4g dGhpcyBpbXBsZW1lbnRhdGlvbi4KPj4gQ29uc2lkZXIgdGhlc2UgMyBjYXNlcwo+Pgo+PiAoZm9y bWF0OiBhLT5iOiBiIHdhaXRzIG9uIGEuIFllcywgSSBrbm93IGFycm93cyBhcmUgaGFyZCkKPj4K Pj4gZXhwbGljaXQtPmV4cGxpY2l0OiBUaGlzIGRvZXNuJ3Qgd2FpdCBub3csIHdoaWNoIGlzIGdv b2QKPj4gSW1wbGljaXQtPmV4cGxpY2l0OiBUaGlzIGRvZXNuJ3Qgd2FpdCBub3csIHdoaWNoIGlz IGdvb2QKPj4gZXhwbGljaXQtPmltcGxpY2l0IDogVGhpcyBzdGlsbCB3YWl0cyBhcyB0aGUgZXhw bGljaXQgc3VibWlzc2lvbiBzdGlsbAo+PiBhZGRzIHNoYXJlZCBmZW5jZXMgYW5kIG1vc3QgdGhp bmdzIHRoYXQgc2V0IGFuIGV4Y2x1c2l2ZSBmZW5jZSBmb3IKPj4gaW1wbGljaXQgc3luYyB3aWxs IGhlbmNlIHdhaXQgb24gaXQuCj4+Cj4+IFRoaXMgaXMgcHJvYmFibHkgZ29vZCBlbm91Z2ggZm9y IHdoYXQgcmFkdiBuZWVkcyBub3cgYnV0IGFsc28gc291bmRzCj4+IGxpa2UgYSByaXNrIHdydCBi YWtpbmcgaW4gbmV3IHVhcGkgYmVoYXZpb3IgdGhhdCB3ZSBkb24ndCB3YW50IHRvIGJlCj4+IHRo ZSBlbmQgcmVzdWx0Lgo+Pgo+PiBXaXRoaW4gQU1ER1BVIHRoaXMgaXMgcHJvYmFibHkgc29sdmFi bGUgaW4gdHdvIHdheXM6Cj4+Cj4+IDEpIERvd25ncmFkZSBBTURHUFVfU1lOQ19ORV9PV05FUiB0 byBBTURHUFVfU1lOQ19FWFBMSUNJVCBmb3Igc2hhcmVkIGZlbmNlcy4KPiBJJ20gbm90IHN1cmUg dGhhdCB3b3Jrcy4gSSB0aGluayB0aGUgcmlnaHQgZml4IGlzIHRoYXQgcmFkZW9uc2kgYWxzbwo+ IHN3aXRjaGVzIHRvIHRoaXMgbW9kZWwsIHdpdGggbWF5YmUgYSBwZXItYm8gQ1MgZmxhZyB0byBz ZXQgaW5kaWNhdGUKPiB3cml0ZSBhY2Nlc3MsIHRvIGN1dCBkb3duIG9uIHRoZSBudW1iZXIgb2Yg aW9jdGxzIHRoYXQgYXJlIG5lZWRlZAo+IG90aGVyd2lzZSBvbiBzaGFyZWQgYnVmZmVycy4gVGhp cyBwZXItYm8gZmxhZyB3b3VsZCBlc3NlbnRpYWxseSBzZWxlY3QKPiBiZXR3ZWVuIFNZTkNfTkVf T1dORVIgYW5kIFNZTkNfRVhQTElDSVQgb24gYSBwZXItYnVmZmVyIGJhc2lzLgoKWWVhaCwgYnV0 IEknbSBzdGlsbCBub3QgZW50aXJlbHkgc3VyZSB3aHkgdGhhdCBhcHByb2FjaCBpc24ndCBzdWZm aWNpZW50PwoKUHJvYmxlbSB3aXRoIHRoZSBwZXIgY29udGV4dCBvciBwZXIgdm0gZmxhZyBpcyB0 aGF0IHlvdSB0aGVuIGRvbid0IGdldCAKYW55IGltcGxpY2l0IHN5bmNocm9uaXphdGlvbiBhbnkg bW9yZSB3aGVuIGFub3RoZXIgcHJvY2VzcyBzdGFydHMgdXNpbmcgCnRoZSBidWZmZXIuCgo+IFRo ZSBjdXJyZW50IGFtZGdwdSB1YXBpIGp1c3QgZG9lc24ndCBhbGxvdyBhbnkgb3RoZXIgbW9kZWwg d2l0aG91dCBhbgo+IGV4cGxpY2l0IG9wdC1pbi4gU28gY3VycmVudCBpbXBsaWNpdCBzeW5jIHVz ZXJzcGFjZSBqdXN0IGhhcyB0bwo+IG92ZXJzeW5jLCB0aGVyZSdzIG5vdCBtdWNoIGNob2ljZS4K Pgo+PiAyKSBIYXZlIGFuIEVYUExJQ0lUIGZlbmNlIG93bmVyIHRoYXQgaXMgdXNlZCBmb3IgZXhw bGljaXQgc3VibWlzc2lvbnMKPj4gdGhhdCBpcyBpZ25vcmVkIGJ5IEFNREdQVV9TWU5DX05FX09X TkVSLgo+Pgo+PiBCdXQgdGhpcyBkb2Vzbid0IHNvbHZlIGNyb3NzLWRyaXZlciBpbnRlcmFjdGlv bnMgaGVyZS4KPiBZZWFoIGNyb3NzLWRyaXZlciBpcyBzdGlsbCBlbnRpcmVseSB1bnNvbHZlZCwg YmVjYXVzZQo+IGFtZGdwdV9ib19leHBsaWNpdF9zeW5jKCkgb24gdGhlIGJvIGRpZG4ndCBzb2x2 ZSB0aGF0IGVpdGhlci4KCkh1aT8gWW91IGhhdmUgbG9zdCBtZS4gV2h5IGlzIHRoYXQgc3RpbGwg dW5zb2x2ZWQ/CgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+IC1EYW5pZWwKPgo+Pj4gQ2M6IG1lc2Et ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4gQ2M6IEJhcyBOaWV1d2VuaHVpemVuIDxiYXNA YmFzbmlldXdlbmh1aXplbi5ubD4KPj4+IENjOiBEYXZlIEFpcmxpZSA8YWlybGllZEBnbWFpbC5j b20+Cj4+PiBDYzogUm9iIENsYXJrIDxyb2JkY2xhcmtAY2hyb21pdW0ub3JnPgo+Pj4gQ2M6IEty aXN0aWFuIEguIEtyaXN0ZW5zZW4gPGhvZWdzYmVyZ0Bnb29nbGUuY29tPgo+Pj4gQ2M6IE1pY2hl bCBEw6RuemVyIDxtaWNoZWxAZGFlbnplci5uZXQ+Cj4+PiBDYzogRGFuaWVsIFN0b25lIDxkYW5p ZWxzQGNvbGxhYm9yYS5jb20+Cj4+PiBDYzogU3VtaXQgU2Vtd2FsIDxzdW1pdC5zZW13YWxAbGlu YXJvLm9yZz4KPj4+IENjOiAiQ2hyaXN0aWFuIEvDtm5pZyIgPGNocmlzdGlhbi5rb2VuaWdAYW1k LmNvbT4KPj4+IENjOiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4+ PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPj4+IENjOiBEZWVw YWsgUiBWYXJtYSA8bWgxMmd4MjgyNUBnbWFpbC5jb20+Cj4+PiBDYzogQ2hlbiBMaSA8Y2hlbmxp QHVuaW9udGVjaC5jb20+Cj4+PiBDYzogS2V2aW4gV2FuZyA8a2V2aW4xLndhbmdAYW1kLmNvbT4K Pj4+IENjOiBEZW5uaXMgTGkgPERlbm5pcy5MaUBhbWQuY29tPgo+Pj4gQ2M6IEx1YmVuIFR1aWtv diA8bHViZW4udHVpa292QGFtZC5jb20+Cj4+PiBDYzogbGluYXJvLW1tLXNpZ0BsaXN0cy5saW5h cm8ub3JnCj4+PiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGlu dGVsLmNvbT4KPj4+IC0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf Y3MuYyAgfCAgNyArKysrKy0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kcnYuYyB8IDIxICsrKysrKysrKysrKysrKysrKysrKwo+Pj4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdm0uaCAgfCAgNiArKysrKysKPj4+ICAgaW5jbHVkZS91YXBpL2Ry bS9hbWRncHVfZHJtLmggICAgICAgICAgIHwgMTAgKysrKysrKysrKwo+Pj4gICA0IGZpbGVzIGNo YW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+IGluZGV4IDY1ZGYzNGMxNzI2NC4uYzUzODZk MTNlYjRhIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+ PiBAQCAtNDk4LDYgKzQ5OCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3BhcnNlcl9ib3Moc3Ry dWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCj4+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpn ZHM7Cj4+PiAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpnd3M7Cj4+PiAgICAgICAgICBzdHJ1 Y3QgYW1kZ3B1X2JvICpvYTsKPj4+ICsgICAgICAgYm9vbCBub19pbXBsaWNpdF9zeW5jID0gUkVB RF9PTkNFKGZwcml2LT52bS5ub19pbXBsaWNpdF9zeW5jKTsKPj4+ICAgICAgICAgIGludCByOwo+ Pj4KPj4+ICAgICAgICAgIElOSVRfTElTVF9IRUFEKCZwLT52YWxpZGF0ZWQpOwo+Pj4gQEAgLTU3 Nyw3ICs1NzgsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19wYXJzZXJfYm9zKHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyICpwLAo+Pj4KPj4+ICAgICAgICAgICAgICAgICAgZS0+Ym9fdmEgPSBhbWRn cHVfdm1fYm9fZmluZCh2bSwgYm8pOwo+Pj4KPj4+IC0gICAgICAgICAgICAgICBpZiAoYm8tPnRi by5iYXNlLmRtYV9idWYgJiYgIWFtZGdwdV9ib19leHBsaWNpdF9zeW5jKGJvKSkgewo+Pj4gKyAg ICAgICAgICAgICAgIGlmIChiby0+dGJvLmJhc2UuZG1hX2J1ZiAmJgo+Pj4gKyAgICAgICAgICAg ICAgICAgICAhKG5vX2ltcGxpY2l0X3N5bmMgfHwgYW1kZ3B1X2JvX2V4cGxpY2l0X3N5bmMoYm8p KSkgewo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGUtPmNoYWluID0gZG1hX2ZlbmNlX2No YWluX2FsbG9jKCk7Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlLT5jaGFpbikg ewo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IC1FTk9NRU07Cj4+PiBA QCAtNjQ5LDYgKzY1MSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N5bmNfcmluZ3Moc3RydWN0 IGFtZGdwdV9jc19wYXJzZXIgKnApCj4+PiAgIHsKPj4+ICAgICAgICAgIHN0cnVjdCBhbWRncHVf ZnByaXYgKmZwcml2ID0gcC0+ZmlscC0+ZHJpdmVyX3ByaXY7Cj4+PiAgICAgICAgICBzdHJ1Y3Qg YW1kZ3B1X2JvX2xpc3RfZW50cnkgKmU7Cj4+PiArICAgICAgIGJvb2wgbm9faW1wbGljaXRfc3lu YyA9IFJFQURfT05DRShmcHJpdi0+dm0ubm9faW1wbGljaXRfc3luYyk7Cj4+PiAgICAgICAgICBp bnQgcjsKPj4+Cj4+PiAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGUsICZwLT52YWxpZGF0 ZWQsIHR2LmhlYWQpIHsKPj4+IEBAIC02NTYsNyArNjU5LDcgQEAgc3RhdGljIGludCBhbWRncHVf Y3Nfc3luY19yaW5ncyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCkKPj4+ICAgICAgICAgICAg ICAgICAgc3RydWN0IGRtYV9yZXN2ICpyZXN2ID0gYm8tPnRiby5iYXNlLnJlc3Y7Cj4+PiAgICAg ICAgICAgICAgICAgIGVudW0gYW1kZ3B1X3N5bmNfbW9kZSBzeW5jX21vZGU7Cj4+Pgo+Pj4gLSAg ICAgICAgICAgICAgIHN5bmNfbW9kZSA9IGFtZGdwdV9ib19leHBsaWNpdF9zeW5jKGJvKSA/Cj4+ PiArICAgICAgICAgICAgICAgc3luY19tb2RlID0gbm9faW1wbGljaXRfc3luYyB8fCBhbWRncHVf Ym9fZXhwbGljaXRfc3luYyhibykgPwo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIEFNREdQ VV9TWU5DX0VYUExJQ0lUIDogQU1ER1BVX1NZTkNfTkVfT1dORVI7Cj4+PiAgICAgICAgICAgICAg ICAgIHIgPSBhbWRncHVfc3luY19yZXN2KHAtPmFkZXYsICZwLT5qb2ItPnN5bmMsIHJlc3YsIHN5 bmNfbW9kZSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZwcml2 LT52bSk7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCj4+PiBpbmRl eCBjMDgwYmExNWFlNzcuLmY5ODI2MjZiNTMyOCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2Rydi5jCj4+PiBAQCAtMTcyNCw2ICsxNzI0LDI2IEBAIGludCBhbWRn cHVfZmlsZV90b19mcHJpdihzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGFtZGdwdV9mcHJpdiAq KmZwcml2KQo+Pj4gICAgICAgICAgcmV0dXJuIDA7Cj4+PiAgIH0KPj4+Cj4+PiAraW50IGFtZGdw dV9zZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCj4+PiArewo+ Pj4gKyAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9zZXRwYXJhbSAqc2V0cGFyYW0gPSBkYXRhOwo+ Pj4gKyAgICAgICBzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiA9IGZpbHAtPmRyaXZlcl9wcml2 Owo+Pj4gKwo+Pj4gKyAgICAgICBzd2l0Y2ggKHNldHBhcmFtLT5wYXJhbSkgewo+Pj4gKyAgICAg ICBjYXNlIEFNREdQVV9TRVRQQVJBTV9OT19JTVBMSUNJVF9TWU5DOgo+Pj4gKyAgICAgICAgICAg ICAgIGlmIChzZXRwYXJhbS0+dmFsdWUpCj4+PiArICAgICAgICAgICAgICAgICAgICAgICBXUklU RV9PTkNFKGZwcml2LT52bS5ub19pbXBsaWNpdF9zeW5jLCB0cnVlKTsKPj4+ICsgICAgICAgICAg ICAgICBlbHNlCj4+PiArICAgICAgICAgICAgICAgICAgICAgICBXUklURV9PTkNFKGZwcml2LT52 bS5ub19pbXBsaWNpdF9zeW5jLCBmYWxzZSk7Cj4+PiArICAgICAgICAgICAgICAgYnJlYWs7Cj4+ PiArICAgICAgIGRlZmF1bHQ6Cj4+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ PiArICAgICAgIH0KPj4+ICsKPj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4g ICBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgYW1kZ3B1X2lvY3Rsc19rbXNbXSA9IHsKPj4+ ICAgICAgICAgIERSTV9JT0NUTF9ERUZfRFJWKEFNREdQVV9HRU1fQ1JFQVRFLCBhbWRncHVfZ2Vt X2NyZWF0ZV9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCj4+PiAgICAgICAgICBE Uk1fSU9DVExfREVGX0RSVihBTURHUFVfQ1RYLCBhbWRncHVfY3R4X2lvY3RsLCBEUk1fQVVUSHxE Uk1fUkVOREVSX0FMTE9XKSwKPj4+IEBAIC0xNzQyLDYgKzE3NjIsNyBAQCBjb25zdCBzdHJ1Y3Qg ZHJtX2lvY3RsX2Rlc2MgYW1kZ3B1X2lvY3Rsc19rbXNbXSA9IHsKPj4+ICAgICAgICAgIERSTV9J T0NUTF9ERUZfRFJWKEFNREdQVV9HRU1fVkEsIGFtZGdwdV9nZW1fdmFfaW9jdGwsIERSTV9BVVRI fERSTV9SRU5ERVJfQUxMT1cpLAo+Pj4gICAgICAgICAgRFJNX0lPQ1RMX0RFRl9EUlYoQU1ER1BV X0dFTV9PUCwgYW1kZ3B1X2dlbV9vcF9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyks Cj4+PiAgICAgICAgICBEUk1fSU9DVExfREVGX0RSVihBTURHUFVfR0VNX1VTRVJQVFIsIGFtZGdw dV9nZW1fdXNlcnB0cl9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCj4+PiArICAg ICAgIERSTV9JT0NUTF9ERUZfRFJWKEFNREdQVV9TRVRQQVJBTSwgYW1kZ3B1X3NldHBhcmFtX2lv Y3RsLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKPj4+ICAgfTsKPj4+Cj4+PiAgIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2RyaXZlciBhbWRncHVfa21zX2RyaXZlciA9IHsKPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4+PiBpbmRleCBkZGI4NWE4NWNiYmEuLjBl OGM0NDBjNjMwMyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92bS5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0u aAo+Pj4gQEAgLTMyMSw2ICszMjEsMTIgQEAgc3RydWN0IGFtZGdwdV92bSB7Cj4+PiAgICAgICAg ICBib29sICAgICAgICAgICAgICAgICAgICBidWxrX21vdmVhYmxlOwo+Pj4gICAgICAgICAgLyog RmxhZyB0byBpbmRpY2F0ZSBpZiBWTSBpcyB1c2VkIGZvciBjb21wdXRlICovCj4+PiAgICAgICAg ICBib29sICAgICAgICAgICAgICAgICAgICBpc19jb21wdXRlX2NvbnRleHQ7Cj4+PiArICAgICAg IC8qCj4+PiArICAgICAgICAqIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBpbXBsaWNpdCBzeW5j IHNob3VsZCBhbHdheXMgYmUgc2tpcHBlZCBvbgo+Pj4gKyAgICAgICAgKiB0aGlzIGNvbnRleHQu IFdlIGRvIG5vdCBjYXJlIGFib3V0IHJhY2VzIGF0IGFsbCwgdXNlcnNwYWNlIGlzIGFsbG93ZWQK Pj4+ICsgICAgICAgICogdG8gc2hvb3QgaXRzZWxmIHdpdGggaW1wbGljaXQgc3luYyB0byBpdHMg ZnVsbGVzdCBsaWtpbmcuCj4+PiArICAgICAgICAqLwo+Pj4gKyAgICAgICBib29sIG5vX2ltcGxp Y2l0X3N5bmM7Cj4+PiAgIH07Cj4+Pgo+Pj4gICBzdHJ1Y3QgYW1kZ3B1X3ZtX21hbmFnZXIgewo+ Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oIGIvaW5jbHVkZS91 YXBpL2RybS9hbWRncHVfZHJtLmgKPj4+IGluZGV4IDBjYmQxNTQwYWVhYy4uOWVhZTI0NWMxNGQ2 IDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPj4+ICsrKyBi L2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCj4+PiBAQCAtNTQsNiArNTQsNyBAQCBleHRl cm4gIkMiIHsKPj4+ICAgI2RlZmluZSBEUk1fQU1ER1BVX1ZNICAgICAgICAgICAgICAgICAgMHgx Mwo+Pj4gICAjZGVmaW5lIERSTV9BTURHUFVfRkVOQ0VfVE9fSEFORExFICAgICAweDE0Cj4+PiAg ICNkZWZpbmUgRFJNX0FNREdQVV9TQ0hFRCAgICAgICAgICAgICAgIDB4MTUKPj4+ICsjZGVmaW5l IERSTV9BTURHUFVfU0VUUEFSQU0gICAgICAgICAgICAweDE2Cj4+Pgo+Pj4gICAjZGVmaW5lIERS TV9JT0NUTF9BTURHUFVfR0VNX0NSRUFURSAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsg RFJNX0FNREdQVV9HRU1fQ1JFQVRFLCB1bmlvbiBkcm1fYW1kZ3B1X2dlbV9jcmVhdGUpCj4+PiAg ICNkZWZpbmUgRFJNX0lPQ1RMX0FNREdQVV9HRU1fTU1BUCAgICAgIERSTV9JT1dSKERSTV9DT01N QU5EX0JBU0UgKyBEUk1fQU1ER1BVX0dFTV9NTUFQLCB1bmlvbiBkcm1fYW1kZ3B1X2dlbV9tbWFw KQo+Pj4gQEAgLTcxLDYgKzcyLDcgQEAgZXh0ZXJuICJDIiB7Cj4+PiAgICNkZWZpbmUgRFJNX0lP Q1RMX0FNREdQVV9WTSAgICAgICAgICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1f QU1ER1BVX1ZNLCB1bmlvbiBkcm1fYW1kZ3B1X3ZtKQo+Pj4gICAjZGVmaW5lIERSTV9JT0NUTF9B TURHUFVfRkVOQ0VfVE9fSEFORExFIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fQU1E R1BVX0ZFTkNFX1RPX0hBTkRMRSwgdW5pb24gZHJtX2FtZGdwdV9mZW5jZV90b19oYW5kbGUpCj4+ PiAgICNkZWZpbmUgRFJNX0lPQ1RMX0FNREdQVV9TQ0hFRCAgICAgICAgIERSTV9JT1coRFJNX0NP TU1BTkRfQkFTRSArIERSTV9BTURHUFVfU0NIRUQsIHVuaW9uIGRybV9hbWRncHVfc2NoZWQpCj4+ PiArI2RlZmluZSBEUk1fSU9DVExfQU1ER1BVX1NFVFBBUkFNICAgICAgRFJNX0lPVyhEUk1fQ09N TUFORF9CQVNFICsgRFJNX0FNREdQVV9TRVRQQVJBTSwgc3RydWN0IGRybV9hbWRncHVfc2V0cGFy YW0pCj4+Pgo+Pj4gICAvKioKPj4+ICAgICogRE9DOiBtZW1vcnkgZG9tYWlucwo+Pj4gQEAgLTMw Niw2ICszMDgsMTQgQEAgdW5pb24gZHJtX2FtZGdwdV9zY2hlZCB7Cj4+PiAgICAgICAgICBzdHJ1 Y3QgZHJtX2FtZGdwdV9zY2hlZF9pbiBpbjsKPj4+ICAgfTsKPj4+Cj4+PiArI2RlZmluZSBBTURH UFVfU0VUUEFSQU1fTk9fSU1QTElDSVRfU1lOQyAgICAgICAxCj4+PiArCj4+PiArc3RydWN0IGRy bV9hbWRncHVfc2V0cGFyYW0gewo+Pj4gKyAgICAgICAvKiBBTURHUFVfU0VUUEFSQU1fKiAqLwo+ Pj4gKyAgICAgICBfX3UzMiAgIHBhcmFtOwo+Pj4gKyAgICAgICBfX3UzMiAgIHZhbHVlOwo+Pj4g K307Cj4+PiArCj4+PiAgIC8qCj4+PiAgICAqIFRoaXMgaXMgbm90IGEgcmVsaWFibGUgQVBJIGFu ZCB5b3Ugc2hvdWxkIGV4cGVjdCBpdCB0byBmYWlsIGZvciBhbnkKPj4+ICAgICogbnVtYmVyIG9m IHJlYXNvbnMgYW5kIGhhdmUgZmFsbGJhY2sgcGF0aCB0aGF0IGRvIG5vdCB1c2UgdXNlcnB0ciB0 bwo+Pj4gLS0KPj4+IDIuMzIuMC5yYzIKPj4+Cj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==