From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D1686C61DA4 for ; Sat, 4 Feb 2023 12:32:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:CC:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Q4lkE7FLw/WENeRMiiGfy6P4eB2b2U70o/SYw/YkVwc=; b=2VzVcO4HIi1VQXhGhbItfOSLLY Yrxx9tYI/jbSIkmhC22dAw0VRr3I+XJGrTu6CaBbIc/N9xyZ2++fnV4zeKhKvzfM0dDs7urXJkZXU GRkGIi7o8wI1mfNiR12zQun9CoEST/QhEI8eMrlMjPgGzQhO55WMY5y2FBDknvmw823hP6wwJ1SrG TLagqEZHj4UP6A4DHDZWjC+E7haV4jAKWpH3qzKujTJZQVPFIxZOQvp8BymM4lQzMCnePh0mU9tMu Toyqzh8yllto3ethIop3Ut6+x8XoK/ap7HKVL1Th9PhGdMjim8S8K6rBGIeSOMIzwwGaS0VGWl1KN zlCMRP3A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pOHhT-0051cS-6f; Sat, 04 Feb 2023 12:31:23 +0000 Received: from mga02.intel.com ([134.134.136.20]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pOHhP-0051bm-3k for linux-arm-kernel@lists.infradead.org; Sat, 04 Feb 2023 12:31:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675513879; x=1707049879; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=2V7twLU44yp0hvOveyY7kh9wg5JdEmiIN2gH12lV4zE=; b=EATEnU/XLPs2Yfu4OJKgcF4i8RAvynQ4d/bp83+YGn/QWXezIU/VuCn8 /OGc38TmW/wJs2SsASer1rQeKVP+2usXaqhCZ4SpXWWwU++pSgl4q+sQW BGfYGQlBRzOVYXU3q9jJMoZnbTEGEIW3Li/kMpn0JO97neVLR4nFut1BK m5yq4JKd6wKkG4jSB1ThgcHeorkck3GBvvFVnrXgTHe8Qe7DNXMpwob1C /ny9c8s24gE4kryK0+g0If3YsIlakiJNbPP1lvdPCDILG9QJQ9Zf4P8rh nXxs04bPMX2WE6cjEdySufihOftYDWhH0RLllimaCloYj3TCjGX+Wkl60 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10610"; a="316941501" X-IronPort-AV: E=Sophos;i="5.97,272,1669104000"; d="scan'208";a="316941501" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Feb 2023 04:31:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10610"; a="696408316" X-IronPort-AV: E=Sophos;i="5.97,272,1669104000"; d="scan'208";a="696408316" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga008.jf.intel.com with ESMTP; 04 Feb 2023 04:31:13 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sat, 4 Feb 2023 04:31:13 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sat, 4 Feb 2023 04:31:12 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Sat, 4 Feb 2023 04:31:12 -0800 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.44) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Sat, 4 Feb 2023 04:31:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RMcVyFfvL03et4nt/Wu3RQtxiVaZUo6TtlBXjyARYOwOMpdGjnc5qrLpHCmczGc/caiivLt4djgIVj9aUZ4dYmXK/bxIWD66V5TOqxtkr4dFp5qsZNQDjk1tYUHeHiqeVuvXB6SHBWNb5LlnJh8DxhUamaQE/ocx5j5Eap4kDDtcObPgj3ge/9VpeINuk8+qAV6norgC25W83jbegG6O1dkL7DbNgmdtDjp9Y9GurysvAKS9/ayNw2qWDXFJPAjXp3ipGFoxCSZVUn5fBa3mWjtEwNIUUZbNt/zIhpi+48Kb8UFLZugChT6jYh098tlBB7czbmtyGT0OaDGQZ42vRg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rXeHqG0OpWeiPedr9adZvcDmUCZ3VCOFMaET+mTlVS8=; b=fOKmKVhXJBGfarUmXdKlCnqauQ8OAJ2XcS64EgPTJMU6aN3qmBLFU08KuMzadwgxG5iNQYE50AejqcaOKZKp+vG3H+8n6ADtJRjx/PbtTAFT72loIOIH1Cp2nHes8v8p2H15tfsc5v50tynCwzgY6gG2K2PDSssTkT78T25rFkOyJXZuwlS9l9J971UxByGJqaJ87De1LOICFY0OM8AMgvditFGKCEq9v+4DnDieNLrqehmKQ3AFh+Xn0rDFmOcutDFGuHrLWGnrRqKrFjIxb+99ND7ANGIOPwkWOjAHXZY/+/yYAn+F6VG85+9KtSdlCm6SVEJFmwk776GTKzPzLA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from MW5PR11MB5881.namprd11.prod.outlook.com (2603:10b6:303:19d::14) by BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.31; Sat, 4 Feb 2023 12:31:09 +0000 Received: from MW5PR11MB5881.namprd11.prod.outlook.com ([fe80::d1f4:4d52:6667:5479]) by MW5PR11MB5881.namprd11.prod.outlook.com ([fe80::d1f4:4d52:6667:5479%6]) with mapi id 15.20.6064.027; Sat, 4 Feb 2023 12:31:09 +0000 Message-ID: <0ddefee6-3fee-c491-2b80-aaf0b3753d90@intel.com> Date: Sat, 4 Feb 2023 20:30:17 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.4.2 Subject: Re: [RFC PATCH 00/45] KVM: Arm SMMUv3 driver for pKVM To: "Chen, Jason CJ" , Jean-Philippe Brucker CC: "Tian, Kevin" , "maz@kernel.org" , "catalin.marinas@arm.com" , "will@kernel.org" , "joro@8bytes.org" , "robin.murphy@arm.com" , "james.morse@arm.com" , "suzuki.poulose@arm.com" , "oliver.upton@linux.dev" , "yuzenghui@huawei.com" , "smostafa@google.com" , "dbrazdil@google.com" , "ryan.roberts@arm.com" , "linux-arm-kernel@lists.infradead.org" , "kvmarm@lists.linux.dev" , "iommu@lists.linux.dev" References: <20230201125328.2186498-1-jean-philippe@linaro.org> Content-Language: en-US From: tina.zhang In-Reply-To: X-ClientProxiedBy: SG2PR02CA0084.apcprd02.prod.outlook.com (2603:1096:4:90::24) To MW5PR11MB5881.namprd11.prod.outlook.com (2603:10b6:303:19d::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW5PR11MB5881:EE_|BN9PR11MB5515:EE_ X-MS-Office365-Filtering-Correlation-Id: e78cfc8f-2d3f-4d86-a348-08db06abb178 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NFQOgwCTscIqW5WXOI9yqnCqSzoJZoCIkQ05r6TUXoI0d6MsRE7bt+gFogMC7i3HH67b5Cmiuuv6Ap5I4uCV9OrlUcAh17zB4Wi4A3hQHvdtUxQQ18wpjqpYvEVGTlsGl/gNspBPmG/rZXrJ/CLB+fuSfjjvTQMjBOxsST/rSHuLS7LmRhnAABb6aofSSgnBH89kO8MhHqPwLyg/GIuunTX7cW4tr7K+UEkRw2a9V0SFdl017UmxV3/wg198nqBmjZmVtVrAjP9KnCIAgBwhF7sQqq0Jfw6FbFH9MycWMrdpU0nLLpQsyWHSMuvLLAYldAp9+IAuGonJBU48HsX2jH02bZAe+AZV0hMxU5HwG1u5+igI1qQvXLR5urfp2q3UxF5qekEeTz9soZjWdYbafUQIRAGSfX+2LFYzPMC2MOiYcBKMEuih3QO5Kb4Eri40osfRcs/w6G7pSYMfUamXN9o4X0zZblOENljCcfZUypodYeRBj3wPzgxSG6eYhcVTOnafaKSBcgVHCssNiOuya050AXN01AyB54eo5h3bYg0R8pl7BfY/PT+FCPlxHJ9sL0qHNROD0L6ZvI3rgHOluAQw/D4t+fUg6x6JDrRj+6C5s5G/jQpX4DlWUPoxT0wDBV5LqkaqLIac7ZvvYECoOxm0ghP2+91Wsb0CTAyOINbam4dsCCgu0yw2eL+UorcsrJNFmdQJZEHyt+Z8N1j4yk9Ffot7O/m30oLhaDT8gDnqymwzY9ArSNpnNw5v433tvG5wJzrpW8/cpDN69VZmpg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5881.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(366004)(376002)(346002)(39860400002)(136003)(451199018)(66899018)(31686004)(26005)(6512007)(82960400001)(6506007)(53546011)(186003)(7416002)(2906002)(36756003)(83380400001)(6486002)(38100700002)(6666004)(66556008)(66476007)(66946007)(4326008)(31696002)(2616005)(478600001)(110136005)(54906003)(966005)(41300700001)(8936002)(86362001)(5660300002)(316002)(8676002)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L2ZwNlBOSDN1V2RBT3V2bGlwbHZkTHdjbC80eUd3WUh1WWJMdGtXQUVZOGlZ?= =?utf-8?B?ZDBtc3ZjRk4xZGI1N0xLbFI0b1pDTkdKeEpSdmtYdnNybllSY1NDeng0WG81?= =?utf-8?B?Ky8zcS9wZGIwNjF4RjJqOG12bUVvRUFHWEtJcUlxeHZEd1RmRTNWd21ha3gy?= =?utf-8?B?NmZ4SVFoMzJvM3VGTXdHajgwaEVBSVlUVitCTldrVVNFZnRCL0o0V20rZWpV?= =?utf-8?B?Q0wyYkZ6blk0Z0piamhOM3NQWTA3ZXEyL0s2LzdPaHhhVXZ0aXNhYWs4SVFY?= =?utf-8?B?RDBmd0VqeVVGMGVGZmYxNnE5eFg0NkQ4VjZTc3BuYVlWSEVadjRHVVBxS25L?= =?utf-8?B?clNCOTVFU3FmbmlwL1YzV0xMd1p6WnJFV0x2aStLT0I2QUpISnd1dWNRM1Bu?= =?utf-8?B?eUtXamJCTWIySXY3MDFFeFNoZEFEcDZQcmNDVVNBdEdRUmVBYlhHV0ppb0Nj?= =?utf-8?B?NXVwNUl2bWFBOVRxd05BdXE4MjE2R28zUnRSMCs1UUNzY2NYNFJXZDhQY01C?= =?utf-8?B?SG5mMnhTcHRBK1lJNHhzMDZDbW4yVUg3STQ5bVV3RmlOMlRIRFp4NEdzbHF1?= =?utf-8?B?TmN0NUJxS1hHRjhQWnRhNTF1TUQ5aWU5M2tzMXJ2SDNWRXZ3cGU5emhPUENF?= =?utf-8?B?T01VODB3V2NCb2dFQjdHOGM1MFo1ejZqTWY4ZkRVQVUrZ2x0Z3Y3Zk5mNnph?= =?utf-8?B?RFV0TWt4MzUzdWZHVjI2V3cvdnA3VUhLYXpNUTdQbTJOK0krbURZOE1RTlZY?= =?utf-8?B?ekVtWnJPaGVaUDRMV01mZDBDcnJ3Kzd1QVpZSmVkbU5iN0gxa2tMdUdaTEFQ?= =?utf-8?B?cFppaWdZUnZNSVlvOW1qaVJEdEVCK1Z2WlIxM3ZzWTBNam56QnFaOGVpcno1?= =?utf-8?B?L1lxZEQ5c0tLWWdjNGxsODlqeHJ0b1BLQVVsQVBWSTg5SFMwdXloUGZ0bVlQ?= =?utf-8?B?R29KNUNxUnFZcGpDZDhaclI2WmJtRUs1UU51SGhxNnFXT2NaZWJzb3FEMk94?= =?utf-8?B?cFZSa21KdmdCT0hmRnh1TEltRGVJNlgvVjlha2JVVUw0QVRKbWxhYmJmOG02?= =?utf-8?B?M1hrbGhqeHBtcEhrdHFacHZtQWFHR3VGODBLeTlZdUdpZlkrOVFzUnpEYWhW?= =?utf-8?B?bEtma3pOVkpWKy9sNmw2ejh6QkNRTXN0aTJqdHkxemhFQWUwQ1JlbUZhOFc4?= =?utf-8?B?WkVtc0Y0dWJEcS9Ud012TGVVbVFQeExqYlF0Q1k2eXp0VVlOQkk1YWUrZnFW?= =?utf-8?B?ZnJDemJwd1hRNGIxd0NuTEp5cHFGSXc1Y2x2dXpDWFg3bzBNVFlFZi9TQWt6?= =?utf-8?B?WTlITXBDdThEbUVXVWdqZGFDT3RpQWFNMlg5RTE0cnhPTWhnMFREZnpjYXd5?= =?utf-8?B?V3JXTVdqOUd2MndaUzljTkFFY1VheUt3bXBRYXdhTFdzdGQ5RitYVndxaVBk?= =?utf-8?B?N2NUV3NCQmk2UXQ4Um9NUlVWS0N0LzRvMHE1cjIrVkk5OXBkT1hNZ1lOM211?= =?utf-8?B?dGRXWG5EaCtTQVZSZXY5VzBGMHNyVnVjQlVmTTZnMElHalErTlRMWldUaC9v?= =?utf-8?B?M2xPRUZwT0U3YXdINGhEV1FMVjBtZ1RTV3N2MTdvUzZZUGZzMjRMM0lqNzhS?= =?utf-8?B?eWpMK1NpNnpzL3BaWERiNnk1aFhJendJeUNRVmh2ZVc3Z2E1dU0zWm1HQ1Zy?= =?utf-8?B?cTVQdE1qc1l0N2NDckVMZUcvMS9WSS93cDRDKy9Fb25jM01lK2czaTFYajV3?= =?utf-8?B?aVpMSElUNFN1MVUxNnRlMXpoUUR3OHBZWGRIeU5ocHB5dTJ6SmNwSk0wMWRy?= =?utf-8?B?dTkvMU9VaUdoUFhMcnE5Q2Q3anpxczJ5VlQyd3Z5TkJvY25vdkp1MUhvWVVq?= =?utf-8?B?b1hVSnNZa01VZjFtcHNJaWZHb2FKdTE0bDFETDFlMDNqZFJLOGY1VlFYSkpm?= =?utf-8?B?YlJMaWJQVFBSQVdmeVlXc1hYcTlxc3FGcndZWENybkdaZkJXcDdBOGdxU1dB?= =?utf-8?B?QldHMDhmV1hOR2VTTFJRVGdZdjhzWnloUS92emwrRkpRZngyVzRiRDhkb3M0?= =?utf-8?B?ZEJFYTF2UHRxNDZMQ3NEQU5QU2lyQkx0Vy9CdC93YU0zMG5oRHJ6VEd4ME44?= =?utf-8?B?b0xZK2hFR1lzTXRra0diYlM4V3Y5Mzl4bVljd2hWRHlZSFdCcnM2bU9wUHJI?= =?utf-8?B?Q1E9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: e78cfc8f-2d3f-4d86-a348-08db06abb178 X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5881.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2023 12:31:09.2998 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2wx6p+Oj0E0l/ocGiyR4yc/fiEfQAiPGakMvwrvYMAZlLkZ+i6EMZqHAIWGFJWZBgVtsDJakPltZCOu7DyAiPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5515 X-OriginatorOrg: intel.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230204_043119_293068_BEB630C9 X-CRM114-Status: GOOD ( 27.65 ) 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 CgpPbiAyLzQvMjMgMTY6MTksIENoZW4sIEphc29uIENKIHdyb3RlOgo+IEhpLCBKZWFuLAo+IAo+ IFRoYW5rcyBmb3IgdGhlIGluZm9ybWF0aW9uISBMZXQncyBkbyBtb3JlIGludmVzdGlnYXRpb24u Cj4gCj4gWWVzLCBpZiB1c2luZyBlbmxpZ2h0ZW4gbWV0aG9kLCB3ZSBtYXkgc2tpcCBuZXN0ZWQg dHJhbnNsYXRpb24uIE1lYW50aW1lIHdlCj4gc2hhbGwgZW5zdXJlIGhvc3Qgbm90IHRvdWNoIHRo aXMgY2FwYWJpbGl0eS4gV2UgbWF5IGFsc28gbmVlZCB0cmFkZS1vZmYgdG8gc3VwcG9ydAo+IFNW TSBraW5kIGZlYXR1cmVzLgpIaSBKYXNvbiwKCk5lc3RlZCB0cmFuc2xhdGlvbiBpcyBhbHNvIG9w dGlvbmFsIHRvIHZ0LWQuIE5vdCBhbGwgSUEgcGxhdGZvcm1zIGNvdWxkIApoYXZlIHZ0LWQgd2l0 aCBuZXN0ZWQgdHJhbnNsYXRpb24gc3VwcG9ydC4gRm9yIHRob3NlIGxlZ2FjeSBwbGF0Zm9ybXMg CihlLmcuIG9uIHdoaWNoIHZ0LWQgZG9lc24ndCBzdXBwb3J0IHNjYWxhYmxlIG1vZGUpLCBwcm92 aWRpbmcgYW4gCmVubGlnaHRlbmVkIHdheSBmb3IgcEtWTSB0byBpc29sYXRlIERNQSBzZWVtcyBy ZWFzb25hYmxlLiBPdGhlcndpc2UsIApwS1ZNIG1heSBuZWVkIHRvIHNoYWRvdyBpby1wYWdlIHRh YmxlIHdoaWNoIGNvdWxkIGludHJvZHVjZSBwZXJmb3JtYW5jZSAKb3ZlcmhlYWQuCgoKUmVnYXJk cywKLVRpbmEKPiAKPiBUaGFua3MKPiAKPiBKYXNvbgo+IAo+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQo+PiBGcm9tOiBKZWFuLVBoaWxpcHBlIEJydWNrZXIgPGplYW4tcGhpbGlwcGVAbGlu YXJvLm9yZz4KPj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAzLCAyMDIzIDc6MjQgUE0KPj4gVG86 IENoZW4sIEphc29uIENKIDxqYXNvbi5jai5jaGVuQGludGVsLmNvbT4KPj4gQ2M6IFRpYW4sIEtl dmluIDxrZXZpbi50aWFuQGludGVsLmNvbT47IG1hekBrZXJuZWwub3JnOwo+PiBjYXRhbGluLm1h cmluYXNAYXJtLmNvbTsgd2lsbEBrZXJuZWwub3JnOyBqb3JvQDhieXRlcy5vcmc7Cj4+IHJvYmlu Lm11cnBoeUBhcm0uY29tOyBqYW1lcy5tb3JzZUBhcm0uY29tOwo+PiBzdXp1a2kucG91bG9zZUBh cm0uY29tOyBvbGl2ZXIudXB0b25AbGludXguZGV2OyB5dXplbmdodWlAaHVhd2VpLmNvbTsKPj4g c21vc3RhZmFAZ29vZ2xlLmNvbTsgZGJyYXpkaWxAZ29vZ2xlLmNvbTsgcnlhbi5yb2JlcnRzQGFy bS5jb207Cj4+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsga3ZtYXJtQGxp c3RzLmxpbnV4LmRldjsKPj4gaW9tbXVAbGlzdHMubGludXguZGV2OyBaaGFuZywgVGluYSA8dGlu YS56aGFuZ0BpbnRlbC5jb20+Cj4+IFN1YmplY3Q6IFJlOiBbUkZDIFBBVENIIDAwLzQ1XSBLVk06 IEFybSBTTU1VdjMgZHJpdmVyIGZvciBwS1ZNCj4+Cj4+IEhpIEphc29uLAo+Pgo+PiBPbiBGcmks IEZlYiAwMywgMjAyMyBhdCAwODozOTo0MUFNICswMDAwLCBDaGVuLCBKYXNvbiBDSiB3cm90ZToK Pj4+Pj4+IGJ0dyBzb21lIG9mIG15IGNvbGxlYWd1ZXMgYXJlIHBvcnRpbmcgcEtWTSB0byBJbnRl bCBwbGF0Zm9ybS4gSQo+Pj4+Pj4gYmVsaWV2ZSB0aGV5IHdpbGwgcG9zdCB0aGVpciB3b3JrIHNo b3J0bHkgYW5kIHRoZXJlIG1pZ2h0Cj4+Pj4+PiByZXF1aXJlIHNvbWUgY29tbW9uIGZyYW1ld29y ayBpbiBwS1ZNIGh5cGVydmlzb3IgbGlrZSBpb21tdQo+Pj4+Pj4gZG9tYWluLCBoeXBlcmNhbGxz LCBldGMuIGxpa2Ugd2hhdCB3ZSBoYXZlIGluIHRoZSBob3N0IGlvbW11Cj4+Pj4+PiBzdWJzeXN0 ZW0uIENDIHRoZW0gaW4gY2FzZSBvZiBhbnkgZWFybHkgdGhvdWdodCB0aGV5IHdhbnQgdG8KPj4+ Pj4+IHRocm93IGluLiDwn5iKCj4+Pj4+Cj4+Pj4+IENvb2whIFRoZSBoeXBlcnZpc29yIHBhcnQg Y29udGFpbnMgaW9tbXUvaW9tbXUuYyB3aGljaCBkZWFscyB3aXRoCj4+Pj4+IGh5cGVyY2FsbHMg YW5kIGRvbWFpbnMgYW5kIGRvZXNuJ3QgY29udGFpbiBhbnl0aGluZyBzcGVjaWZpYyB0bwo+Pj4+ PiBBcm0gKGl0J3Mgb25seSBpbiBhcmNoL2FybTY0IGJlY2F1c2UgdGhhdCdzIHdoZXJlIHBrdm0g Y3VycmVudGx5Cj4+Pj4+IHNpdHMpLiBJdCBkb2VzIHJlbHkgb24gaW8tcGd0YWJsZSBhdCB0aGUg bW9tZW50IHdoaWNoIGlzIG5vdCB1c2VkCj4+Pj4+IGJ5IFZULWQgYnV0IHRoYXQgY2FuIGJlIGFi c3RyYWN0ZWQgYXMgd2VsbC4gSXQncyBwb3NzaWJsZSBob3dldmVyCj4+Pj4+IHRoYXQgb24gSW50 ZWwgYW4gZW50aXJlbHkgZGlmZmVyZW50IHNldCBvZiBoeXBlcmNhbGxzIHdpbGwgYmUKPj4+Pj4g bmVlZGVkLCBpZiBhIHNpbXBsZXIgc29sdXRpb24gc3VjaCBhcyBzaGFyaW5nIHBhZ2UgdGFibGVz IGZpdHMKPj4+Pj4gYmV0dGVyIGJlY2F1c2UgVlQtZCBpbXBsZW1lbnRhdGlvbnMgYXJlIG1vcmUg aG9tb2dlbmVvdXMuCj4+Pj4+Cj4+Pj4KPj4+PiB5ZXMgZGVwZW5kaW5nIG9uIHRoZSBjaG9pY2Ug b24gVlQtZCB0aGVyZSBjb3VsZCBiZSBkaWZmZXJlbnQgZGVncmVlCj4+Pj4gb2YgdGhlIHNoYXJp bmcgcG9zc2liaWxpdHkuIEknbGwgbGV0IEphc29uL1RpbmEgY29tbWVudCBvbiB0aGVpciBkZXNp Z24KPj4gY2hvaWNlLgo+Pj4KPj4+IFRoYW5rcyBLZXZpbiBicmluZyB1cyBoZXJlLiBDdXJyZW50 IG91ciBQT0Mgc29sdXRpb24gZm9yIFZULWQgaXMgYmFzZWQKPj4+IG9uIG5lc3RlZCB0cmFuc2xh dGlvbiwgYXMgdGhlcmUgYXJlIHR3byBsZXZlbCBpby1wZ3RhYmxlLCB3ZSBrZWVwCj4+PiBmaXJz dC1sZXZlbCBwYWdlIHRhYmxlIGZ1bGwgY29udHJvbGxlZCBieSBob3N0IFZNIChJT1ZBIC0+IGhv c3RfR1BBKQo+Pj4gYW5kIHNlY29uZC1sZXZlbCBwYWdlIHRhYmxlIGlzIG1hbmFnZWQgYnkgcEtW TSAoaG9zdF9HUEEgLT4gSFBBKS4gVGhpcwo+Pj4gc29sdXRpb24gaXMgc2ltcGxlIHN0cmFpZ2h0 LWZvcndhcmQsIGJ1dCBwS1ZNIHN0aWxsIG5lZWQgdG8gcHJvdmlkZQo+Pj4gdklPTU1VIGVtdWxh dGlvbiBmb3IgaG9zdCAoZS5nLiwgc2hhZG93aW5nIHJvb3QvY29udGV4dC8gcGFzaWQgdGFibGVz LAo+PiBlbXVsYXRpbmcgSU9UTEIgZmx1c2ggZXRjLikuCj4+Cj4+IEkgZGlzbWlzc2VkIGVtdWxh dGluZyB0aGUgU01NVSBlYXJseSBvbiBiZWNhdXNlIGl0IGZlZWxzIHRvbyBjb21wbGV4Cj4+IGNv bXBhcmVkIHRvIGFuIGFic3RyYWN0ZWQgaHlwZXJjYWxsIGludGVyZmFjZSwgYnV0IGFnYWluIHRo YXQgbWF5IGJlIGR1ZSB0bwo+PiB0aGUgaGlnaCB2YXJpYXRpb24gb2YgY29uZmlndXJhdGlvbnMg b2YgdGhlIFNNTVUuIEZvciBuZXN0aW5nLCB5b3UgY291bGQgdXNlCj4+IHNvbWUgb2YgdGhlIGlu dGVyZmFjZSB0aGF0IFlpIExpdSBhbmQgSmFjb2IgUGFuIGhhdmUgYmVlbiB3b3JraW5nIG9uIFsx XS4gSXQKPj4gc2hvdWxkIGJlIHBvc3NpYmxlIHdpdGggYSBjb3VwbGUgb2YgYXR0YWNoLXRhYmxl IGFuZCB0bGItaW52YWxpZGF0ZSBoeXBlcmNhbGxzCj4+IHRvIGF2b2lkIGVtdWxhdGluZyB0aGUg bG93LWxldmVsIHJlZ2lzdGVycyBhbmQgcXVldWVzLgo+Pgo+Pj4gQXMgSSBrbm93LCBTTU1VIGFs c28gc3VwcG9ydCBuZXN0ZWQgdHJhbnNsYXRpb24gbW9kZSwgbWF5IEkga25vdwo+Pj4gd2hhdCdz IHRoZSBtb2RlIHVzZWQgZm9yIHBLVk0/Cj4+Cj4+IEl0IGRvZXNuJ3QgdXNlIG5lc3RlZCB0cmFu c2xhdGlvbiBiZWNhdXNlIGl0IGlzIG9wdGlvbmFsIGluIHRoZSBTTU1VLCBhbmQgdGhpcwo+PiBz ZXJpZXMgdHJpZXMgdG8gc3VwcG9ydCBhbnkgcG9zc2libGUgaW1wbGVtZW50YXRpb24uIFNpbmNl IHBLVk0gb24KPj4gYXJtNjQgaXMgYmVpbmcgdXNlZCBvbiBtb2JpbGUgcGxhdGZvcm1zIEkgc3Vz cGVjdCB0aGF0LCB0byBzYXZlIHNwYWNlLCBzb21lCj4+IFNNTVVzIG1pZ2h0IG5vdCBpbXBsZW1l bnQgZmlyc3QtbGV2ZWwgb3Igc2Vjb25kLWxldmVsIHBhZ2UgdGFibGVzLgo+PiBCZXNpZGVzLCBz dXBwb3J0aW5nIG5lc3RpbmcgZm9yIEFybSB3b3VsZCBzdGlsbCByZXF1aXJlIGh5cGVyY2FsbHMg Zm9yIHBpbm5pbmcKPj4gRE1BIHBhZ2VzIChzb2x1dGlvbiAyKS4KPj4KPj4gVGhpcyBzZXJpZXMg cG9wdWxhdGVzIHRoZSBzZWNvbmQtbGV2ZWwgdGFibGVzIHdpdGggdGhlIGNvbXBsZXRlIElPVkEg LT4gUEEKPj4gdHJhbnNsYXRpb24gKHNpbWlsYXJseSB0byBob3cgVkZJTyB3b3JrcyBhdCB0aGUg bW9tZW50KS4gSWYgYW4KPj4gaW1wbGVtZW50YXRpb24gb25seSBzdXBwb3J0cyBmaXJzdC1sZXZl bCB0YWJsZXMsIHRoZW4gdGhlIGh5cGVydmlzb3Igd291bGQKPj4gb3duIGl0IGFuZCBwdXQgdGhl IElPVkEgLT4gUEEgdHJhbnNsYXRpb24gaW4gdGhlcmUuCj4+Cj4+IFRoYW5rcywKPj4gSmVhbgo+ Pgo+PiBbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtaW9tbXUvMTU3MDA0NTM2My0y NDg1Ni0yLWdpdC1zZW5kLWVtYWlsLQo+PiBqYWNvYi5qdW4ucGFuQGxpbnV4LmludGVsLmNvbS8K Pj4gICAgICAoSXQncyBiZWluZyByZXdvcmtlZCBidXQgSSBjb3VsZG4ndCBmaW5kIGEgcmVjZW50 IGxpbmspCj4+Cj4+Pgo+Pj4gV2UgbWV0IHNpbWlsYXIgc29sdXRpb24gY2hvaWNlcyB3aGV0aGVy IHRvIHNoYXJlIHNlY29uZC1sZXZlbAo+Pj4gaW8tcGd0YWJsZSB3aXRoIENQVSBwZ3RhYmxlLCAg YW5kIGZpbmFsbHkgd2UgYWxzbyBkZWNpZGVkIHRvIGludHJvZHVjZQo+Pj4gYSBuZXcgcGd0YWJs ZSwgdGhpcyBpbmNyZWFzZSB0aGUgY29tcGxleGl0eSBvZiBwYWdlIHN0YXRlIG1hbmFnZW1lbnQg LQo+Pj4gYXMgaW8tcGd0YWJsZSAmIGNwdS1wZ3RhYmxlIG5lZWQgdG8gYWxpZ24gdGhlIHBhZ2Ug b3duZXJzaGlwLgo+Pj4KPj4+IE5vdyBvdXIgc29sdXRpb24gaXMgYmFzZWQgb24gdklPTU1VIGVt dWxhdGlvbiBpbiBwS1ZNLCBlbmxpZ2h0ZW4KPj4+IG1ldGhvZCBzaG91bGQgYWxzbyBiZSBhbiBh bHRlcm5hdGl2ZSBzb2x1dGlvbi4KPj4+Cj4+PiBUaGFua3MKPj4+IEphc29uIENKIENoZW4KPiAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1r ZXJuZWwK