From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA2272862A5; Thu, 20 Feb 2025 23:45:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=198.175.65.9 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740095149; cv=fail; b=UBopmyqpNZL2J4YvK2FUfgUiD7aIvi1gK4A9mbS8imxaV4yRpRykEZ1pIoaYksJpDt9VPUxMx5B2LhlAuHz9Op2uSBS0dmlndskHsrvXPF6dO8o6c+rQMR4fj7CY4GDenQ4l1bQ3VAiASUT7xWUEXZC/g78ZMHIgvzBrAKIbXwo= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740095149; c=relaxed/simple; bh=uEIzVN/LBZXn8O3x53P1vu/OqLDs9RiRShZWXpyckds=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=p3lXF9/wUutdugeck/ZwvkeUmegWLApetFUQ5bh3OlHexe3MSZHsEHOqH6sX+o5tJPHFGLcdie9hNL2f5K6R9kgTxGSijsyCyu+M5AWj4J15lXdi8kbTnXD/K50W9Hiu64lPQ13G5jb9SoKPshR/V07ZhqvlOiEKCt5VVg0IWPQ= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=PlpJ9ezw; arc=fail smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="PlpJ9ezw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1740095147; x=1771631147; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=uEIzVN/LBZXn8O3x53P1vu/OqLDs9RiRShZWXpyckds=; b=PlpJ9ezwQe0fY3s0uUrPcv1yE4DC8ADYvAnchNjQ1ok/Q0U5+2HyHmmA Kf4ry/lTM8NHiHvHafcwHUOBxoiw9KU/r/5yfNrFpSdgUmhgLS8BX2ncU w2Vk0cj65SwJ5N0Bx5Dfd0LSmJePoP1Hxz+RvvEgj5cbbqOo2m04q3EHC RjJSm4fGh7B7LerXshQ6knpEyqSwrYwhxvv3eqKfTqlpftDaXefW7JFqI /qt4vErUqIGYF78JPan+tj0VVEh3WI3VZbcNbKhKzBc4CwBFah7FO5mQh hTggTrGMEA/rIjZFLOIQrfJdZ5gdSaaWSZ9nA4ibJi4widXVqCNhjxTsW A==; X-CSE-ConnectionGUID: ewS7By6JTVOXlZFSlVmhTw== X-CSE-MsgGUID: nYCNLzRlTCSP5YSPpaXCdQ== X-IronPort-AV: E=McAfee;i="6700,10204,11351"; a="63377279" X-IronPort-AV: E=Sophos;i="6.13,303,1732608000"; d="scan'208";a="63377279" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Feb 2025 15:45:46 -0800 X-CSE-ConnectionGUID: cEV4y0hQTt6EB9hcMnYfbg== X-CSE-MsgGUID: McOP1MeATjaejM6XL3cAbw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,224,1728975600"; d="scan'208";a="116098777" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by orviesa008.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Feb 2025 15:45:47 -0800 Received: from ORSMSX903.amr.corp.intel.com (10.22.229.25) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Thu, 20 Feb 2025 15:45:45 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Thu, 20 Feb 2025 15:45:45 -0800 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.43) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Thu, 20 Feb 2025 15:45:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cSRz0ZxJRhDK+Q9EyYi8oFYhqF/FhLPy5PPJWTpldUGGNd1G1ea3WrydOZqwnR4HDqWDfYSAgeanNIp+Yit7MRI6/zDVABtNlbZepOatKd6u5772e4PX3brHTSqyJD9DYc1Gkc2nG/6KnjFLpjqzo7Chtq3s3qBPS8t/J1Q8DnDL4ZkYubRa5bN/gH+z6misykrVaw8EFXMb3U+fz9lxvHrCa3Ltx+9KlZEmZ0FGiWRFdxlDFhXwHJXqzKAz2b8g2DmeUe8Xtf4vWSknbeP5KxzjG1vfx00rwMOUEngofEmhs2z05Ocejst7LFavqw/YJqsH9mJMmG22+1cRheDNxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=uEIzVN/LBZXn8O3x53P1vu/OqLDs9RiRShZWXpyckds=; b=cAqRCkt0tGs0v+MeY8mafaQc+kW61ltar+FV6rLaoaPvfsig7RBi++f86lfSvaXQprS8cVx6JynUGJGCBU8JrHgjnm+b07DcYyOlyMl6I5xBfDtHpjkksMwXZOBY8Amvlp/gdcxjd0tBv2E/5yOSAHuqMKapEtAd4k2Q4ETFHOEjIigytH50O8qcWasbckJfzMC9YhmxOW8ExRPhz/g3uCv+DPTDRuDWGrpKLMHk2Blc18n5CGH0DGjuAluTE1EwKQ9DTDy4wPEionjN6vj4Km9tmWtpX5grNbuFhIr8HPsg+Pt4OLk4LSMrVVya+AA/lMW0bJ+/t3YRL4qbn20bkg== 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 Received: from BL1PR11MB5978.namprd11.prod.outlook.com (2603:10b6:208:385::18) by PH0PR11MB5142.namprd11.prod.outlook.com (2603:10b6:510:39::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Thu, 20 Feb 2025 23:45:41 +0000 Received: from BL1PR11MB5978.namprd11.prod.outlook.com ([fe80::fdb:309:3df9:a06b]) by BL1PR11MB5978.namprd11.prod.outlook.com ([fe80::fdb:309:3df9:a06b%6]) with mapi id 15.20.8466.015; Thu, 20 Feb 2025 23:45:40 +0000 From: "Huang, Kai" To: "Li, Xiaoyao" , "kvm@vger.kernel.org" , "pbonzini@redhat.com" , "seanjc@google.com" , "binbin.wu@linux.intel.com" CC: "Gao, Chao" , "Edgecombe, Rick P" , "Chatre, Reinette" , "linux-kernel@vger.kernel.org" , "Zhao, Yan Y" , "Hunter, Adrian" , "tony.lindgren@linux.intel.com" , "Yamahata, Isaku" Subject: Re: [PATCH 18/18] Documentation/virt/kvm: Document on Trust Domain Extensions(TDX) Thread-Topic: [PATCH 18/18] Documentation/virt/kvm: Document on Trust Domain Extensions(TDX) Thread-Index: AQHbSp1UouIiZJs0AUGH467f0Ow0rLNO21mAgAFGFwCAASxmAA== Date: Thu, 20 Feb 2025 23:45:39 +0000 Message-ID: References: <20241210004946.3718496-1-binbin.wu@linux.intel.com> <20241210004946.3718496-19-binbin.wu@linux.intel.com> <9cdf63d6-6e8d-4f68-a4be-c16ca4c22426@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.54.3 (3.54.3-1.fc41) authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB5978:EE_|PH0PR11MB5142:EE_ x-ms-office365-filtering-correlation-id: e4ec204d-8563-42ea-3067-08dd5208ae94 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?VGlLWUV5cGJ5Z2J4cEFvbXJ1Wkx4aHpkbGplT2FKaE9NOTVBTGc2RDBFTmpk?= =?utf-8?B?SzAvakhkRno0M1U4MnE4N2ZBNFlpNkE3S2djSjAzR3cvd2cwR0pSQVlBUHJ3?= =?utf-8?B?MVkwUldZNDFWMnlqQVhjeDIxT0J0QmN4RXVkRnpuSldna2JYRzZUS1RoYnVZ?= =?utf-8?B?Uk12M2hQK3A4SnlqK1VJc1FYWHVkTzVKYzlMeUJBZk96VkFWNGZIVXVJN1F6?= =?utf-8?B?eWV5d0RNTDdHeFREdnFVSzV5dkxCSC9TYU9JWFVzcjBUMit3bjc3N2RVZ1BZ?= =?utf-8?B?bGlaczhsWjBhVzAzUzgyMVNIN2ZRbTAxc1NxdGc0RiswWGRFYVFBUVhxMHZW?= =?utf-8?B?T1VSM3RQT0Q0eDZlVkJ4VVU4cE5pdUdWTVNtR0NiWnJSUWg3Znd4NnRLM3Rz?= =?utf-8?B?Ym9XUHhZVVdhdk1JY3NoZzZqQlR5Z0s3YXJGZi8vWnpYK1I2M3RUVVZSL3R6?= =?utf-8?B?SXNWcUNtR1JWOHl6THk5MzJrOUhuMk5EL1FjblRDNTYvUldUMTZ5dEZTck96?= =?utf-8?B?UVZSbTdDZXMyV0dQQU41bjRrWW9sQm9ta2xGQWthQ0Q5ZGg3USt0eGYwa1N5?= =?utf-8?B?cjhzSU9uUHJINGRaYjk4QWYwbC9jeHErMlJwTWtaNE45MkI5bk5mejB0YVZh?= =?utf-8?B?TFhvNjkzUGRtV3RZZGRDMkJ5RC9HOCtyQXl3clV0SUwySHdXQmE0aEQyWWRP?= =?utf-8?B?SUxObnFMNFJja1B3MnU5YzMwWHhJSXE1Q3B4V3p2dUF1M3g3NXdkVmlGTmpQ?= =?utf-8?B?N3h3Z2I4MXhFR0dtY3ZvM2pIN2ViMVVjQUorcDl2MU1QZXM4aGM5VFpMTjhR?= =?utf-8?B?ckRYOWE2QTBQZFdJR3dCNWUwVFF1TUVCbGhmYXpBa1FPdkltRzhkUE9qd1Vn?= =?utf-8?B?V3JhUTRzN0E5L013WmtaWG1kcGJ4RWp4bG43eDRsNFNiaTB6dms3TENtZkxZ?= =?utf-8?B?Wk9qMjV0a2dNdEF5VER2a1g4ZHAyaHIyN0szTndVaXA5ZGszS09odVB5MDlC?= =?utf-8?B?TXNmczRlUEV0SUVKdFRITklQTjB1SUp4Y2l4bG5LWnlMY0ZERkJOS3NVbDVS?= =?utf-8?B?RHdJZVUwWDJFOWREbGhsekRkZ0pJNHpzZ3g5ZHltbFF2MjN0VVVSNXdXMWJN?= =?utf-8?B?bGMxLzR2ODVkVGFYOFhNZkYyY0RwY2x4RU9Qdk9BcHFRaXBPM1lXQmk4NHBZ?= =?utf-8?B?aU5ycXpSaUJ1d1lFcDNOOVFmV3pDRlYxSDM4RmlZbncxa09vN010c1dFQU9Z?= =?utf-8?B?K3I2ZEdVR3VsdytYdWhWc0VpWnpJenRqTVRPeVF1a21RUUtTKy9TZElXYmNW?= =?utf-8?B?LzNZVU1La0hZU01PN2lpUXVtaUNVWjZWR1U3bFdjOXBtTnIwQ3ovTFlUQzhB?= =?utf-8?B?OTZyNHliZVRycDUrNEhCMXQrdlh6OGs4TkJOdFZORm5vUjU3Q0ZwYjIreEho?= =?utf-8?B?RmQ3OE1INnNFMko5RXV5Vmc1YWdHMGZqUDJhTW9hT0N1Y08rbHdVM2g5cS96?= =?utf-8?B?OGxTT3ZnTlJ2RWkrZjZkSjU5ejkwT3hOWCt6VllsVy9ubzZYcXpybDVOQ2tK?= =?utf-8?B?b3pnMWV1R1N2MUYzOWJwWkJObmF3UEdncHBTSjIzMVEyRzlFWTFhcUYwbS92?= =?utf-8?B?NEhPdk41NE5LR1FiQWg4azlLeWFiZVl2TG9WbjUzZi92UVNiTFQvS3hzaEwr?= =?utf-8?B?cm9CQTlCbXp5MEZ3NVZtbWxxU1ZMdU1Ed0ZNT3BYSEVuMHczV2l3Tk95VWdC?= =?utf-8?B?K25TTitHRG1ZUng4TnpsZlRYVE1MY245NHovN0F1UktEVTVjc2NNVlBkZTk5?= =?utf-8?B?NGJleXRiUDhLUTBsVDRidlBoVENqeEhpQllDTENVdVcwcHdmU3RvT1QrcFEx?= =?utf-8?B?anVYTHk2Zk9LQlE4cVlXVUZOeDJydDk5ZnhqMklvdVZNNnN4Tk92Z0NxWGkw?= =?utf-8?Q?JuAqoW4/CzwCgrYsWpYqJ8T24YMsu8eB?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5978.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?czZrbU00KzRGNkZsb2VGZURIRFBMd0NWNXY4OCtvL0pvZ1M3OWtHRFNOOUls?= =?utf-8?B?M052R2xlS0VDM1Zob2hnTDJNNWhNK0VNS21ocVlSTzJ3RktHTTRDQ3hodTZR?= =?utf-8?B?Y0ppeGpqaC92d1VYdXpRUlNqeEVjbUhiMGNRemJTRHBmRVhBREZCTE5iTmZN?= =?utf-8?B?YTVCU1R3UmxqM3c1R09PY2VtTWF0RFZDeC9xNnEydENMZitDUW5RUldWcktT?= =?utf-8?B?OFpqQUZLNXVOdEpBV00zcEtaWGVjaGhqVno3R3FZWmcwTE9sMFd4OTBFUmpp?= =?utf-8?B?OTd2dmxKYnN4Skk3MHZmeGt1SUcvV3ZzOHc4WjRITVBjc3JhREtPT3dhMHNm?= =?utf-8?B?alZHdmpOd1hhLzljYU1nbGw2c1orei9qOGJYSjFPRGdKbEFTVkdjQ2lzSkNm?= =?utf-8?B?Tm9tdldKcVV1WDlvN281TDd2aHN1Y1FLQWt6dTQ0SG8rSzc5ejE3RmducGhE?= =?utf-8?B?eVlJakdBOTEwK3FyZXF0Z0EvNm54ZkZpUGhxU3gxam5WcHFmV2pIaDc1MHFi?= =?utf-8?B?TVMxVXI4THZvN2FOUU13SDkzRURlZElwYkI4dWVPU1l1NVhFRXJHVEVEVCtk?= =?utf-8?B?RnQ2djRJR2I5NjAyNVVKWHhVUmUrVTJycUJzUitxNy8zNEEzM2tSTTZmNEVD?= =?utf-8?B?N0Z3R0JFTTVTUFJnbGtnOVNha3V4SDR0Z1FmY09PTElQaSs2YWEzWWhNcGwy?= =?utf-8?B?SHA5MUZpTzBJVDU2MEJaRlJVU0kwZkRrWE95cVV1YkdpcStLOTkyNkI5K1ll?= =?utf-8?B?TVJxNDlKVXhOTFQzbEJ5M0pzdktLcnBRNFd6MXR3L0tiZk5TSFRXYVJPZnlv?= =?utf-8?B?b3pFSUhzejROeW1QZEY0TmE2ZmZPM3F0dWRCdWZ6T2I4TEVtSTl3clRXaW9a?= =?utf-8?B?MnpDVGw1NHIzVCt3MHBIZThldUM0KzY2SklNbHBrTDNLdUxJeHFYeGc0Ym5G?= =?utf-8?B?bnpEazhIdFF2VndKdnA3ZDN1RlRXTEUvZjM1MmRnYTlwVHlTVjRNRm96aWZR?= =?utf-8?B?cGJRdkhQUzFYTzkxT1c3d01ab05Gd2FjMys4ZmwrN251L1ppbFBIT0JVYmQ3?= =?utf-8?B?OGQ1dTJ3V2dybUJ1Y1BwOHNaWk5EN2g5ZzlCMnVyb3ViZFJHNms0Ukh0Y09X?= =?utf-8?B?UElDSzh0c2wzWVEyTXlWK1dmNTA3bGJDMks2ZTBGUFRoZEJiV2tyMHdjY25Z?= =?utf-8?B?dkVjdTFUeHR2bnhVU0N6KzVpanlEemx4SGpwNnhuVEpLQWhoTm9ySDFYdW5l?= =?utf-8?B?allxRWhGRG5MazRYOCsycGt3VzFydko1TTBZV1FxWVZVODRxVG0zaTNhMVMr?= =?utf-8?B?N3VxL0ZsWCtGTTF4SFNZeENndnFFOU5adUdrT2tRa0piUUthc2RJaG1QY1Ev?= =?utf-8?B?V0d0a1V1aTV0YjluUFc0UlVyVWI3S3p4cVhjN1V5Yzd1ZzAwSUxJKy9wNFNN?= =?utf-8?B?WTdDcFhOZnBua2J6aWZVeGZieFA2eDgxVUtjZjFSSjRCS1BudW96d2RiNU5W?= =?utf-8?B?akQ1Q0dDaExFUTgvSHhNaVNaZXNrbXFVMmtsKzdOT1gwS0F3SC9NTUJ1S3ow?= =?utf-8?B?QkM4NXhudlpxeWREM3hDWTg4Z29XY3JxeDFic2hmZXZOa1Jyc0IyejNUMVFW?= =?utf-8?B?V01zcHZ0QVl2T3N1azB6ZkFHTW1SNElkQ0laZWlkT3BBelpVdTB3eFRqZnlG?= =?utf-8?B?bDl6VFlQeThjdWpWYmJwN1N1OUkvbTdPdGFCWXVNajZmVWQwVTRRT1hiMkdM?= =?utf-8?B?d1pNQnd3aUppMlBNK05UY3EweExZTTV0UG5IWlZINWhuUjZNYUs5MW5YT0t4?= =?utf-8?B?RFNWM3gwUFlUK2VUU1k3UHlGZzlCNFBzQXkrRVc4TlJWVmZCQkpXRTRWaHpa?= =?utf-8?B?Qmd5cmZGZGpIRkZLbmxBbko0RjJtZEx5WVRpVkpRNFg3eEV1czU3cnVNaWRH?= =?utf-8?B?VmordDJmQUlyNkFueXRPcHRTelN3UXoxcTcxZncyK1ZSa0lYSFBPZUs4dnBE?= =?utf-8?B?RC9Cd2VQajdhLzNBYjFGUURsT3ByeXMrbFNGaWZ1M3hWRFB5N1Jsc3lDQ3ds?= =?utf-8?B?WXRFb3o0d29yY3hHVXJSV3UzMnJkZFg4M2liK283amNXVTlEYmVoRmdiYUk2?= =?utf-8?Q?vrVlE7j7yYYp3mBVxkZG8KJro?= Content-Type: text/plain; charset="utf-8" Content-ID: <2F0AEABA598A5C43AEA0415ACDB5110C@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5978.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4ec204d-8563-42ea-3067-08dd5208ae94 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2025 23:45:39.1306 (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: fiSMTCMqavxPwXRum05bHfntFNL8CTnB2IJQwSc0Nz1vA8YCFHBvBTD4C7N3gd/fj1uZ5YeVN58J2A426U0QYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5142 X-OriginatorOrg: intel.com T24gVGh1LCAyMDI1LTAyLTIwIGF0IDEzOjUwICswODAwLCBYaWFveWFvIExpIHdyb3RlOg0KPiBP biAyLzE5LzIwMjUgNjoyMyBQTSwgSHVhbmcsIEthaSB3cm90ZToNCj4gPiANCj4gPiANCj4gPiBP biAxMC8xMi8yMDI0IDE6NDkgcG0sIEJpbmJpbiBXdSB3cm90ZToNCj4gLi4uDQo+ID4gPiArDQo+ ID4gPiArDQo+ID4gPiArQVBJIGRlc2NyaXB0aW9uDQo+ID4gPiArPT09PT09PT09PT09PT09DQo+ ID4gPiArDQo+ID4gPiArS1ZNX01FTU9SWV9FTkNSWVBUX09QDQo+ID4gPiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gPiArOlR5cGU6IHZtIGlvY3RsLCB2Y3B1IGlvY3RsDQo+ID4gPiArDQo+ ID4gPiArRm9yIFREWCBvcGVyYXRpb25zLCBLVk1fTUVNT1JZX0VOQ1JZUFRfT1AgaXMgcmUtcHVy cG9zZWQgdG8gYmUgZ2VuZXJpYw0KPiA+ID4gK2lvY3RsIHdpdGggVERYIHNwZWNpZmljIHN1YiBp b2N0bCBjb21tYW5kLg0KPiA+IA0KPiA+IGNvbW1hbmQgLT4gY29tbWFuZHMuDQo+ID4gDQo+ID4g PiArDQo+ID4gPiArOjoNCj4gPiA+ICsNCj4gPiA+ICvCoCAvKiBUcnVzdCBEb21haW4gZVh0ZW5z aW9uIHN1Yi1pb2N0bCgpIGNvbW1hbmRzLiAqLw0KPiA+IA0KPiA+IEkgdGhpbmsgIkV4dGVuc2lv bnMiIGlzIHVzZWQgaW4gZXZlcnkgcGxhY2UgaW4gdGhlIGtlcm5lbCwgc28gDQo+ID4gImVYdGVu c2lvbiIgLT4gIkV4dGVuc2lvbnMiLg0KPiA+IA0KPiA+IEFuZCBsYWNrIG9mIGNvbnNpc3RlbmN5 IGJldHdlZW4gInN1YiBpb2N0bCBjb21tYW5kcyIgYW5kICJzdWItaW9jdGwoKSANCj4gPiBjb21t YW5kcyIuwqAgUGVyaGFwcyBqdXN0IHVzZSAic3ViLWNvbW1hbmRzIiBmb3IgYWxsIHRoZSBwbGFj ZXMuDQo+IA0KPiBJdCdzIGNvcGllZCBmcm9tIHRoZSBrZXJuZWwgaGVhZGVyIGZpbGUsIHdlIG5l ZWQgdG8gZml4IHRoZXJlIGF0IGZpcnN0Lg0KDQpJIHNlZS4gIFNvIGxldCdzIGtlZXAgdGhlIGNv ZGUgYW5kIHRoZSBkb2Mgc3luY2VkLg0KDQpJJ2xsIGxlYXZlIHRvIFJpY2sgdG8gZGVjaWRlIHdo ZXRoZXIgd2Ugc2hvdWxkIGZpeCBpbiB0aGUgY29kZS4NCg0KPiANCj4gPiA+ICvCoCBlbnVtIGt2 bV90ZHhfY21kX2lkIHsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgS1ZNX1REWF9DQVBBQklM SVRJRVMgPSAwLA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCBLVk1fVERYX0lOSVRfVk0sDQo+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIEtWTV9URFhfSU5JVF9WQ1BVLA0KPiA+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoCBLVk1fVERYX0lOSVRfTUVNX1JFR0lPTiwNCj4gPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqAgS1ZNX1REWF9GSU5BTElaRV9WTSwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAg S1ZNX1REWF9HRVRfQ1BVSUQsDQo+ID4gPiArDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIEtW TV9URFhfQ01EX05SX01BWCwNCj4gPiA+ICvCoCB9Ow0KPiA+ID4gKw0KPiA+ID4gK8KgIHN0cnVj dCBrdm1fdGR4X2NtZCB7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqAgLyogZW51bSBrdm1fdGR4X2Nt ZF9pZCAqLw0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgIF9fdTMyIGlkOw0KPiA+ID4gK8KgwqDCoMKg wqDCoMKgIC8qIGZsYWdzIGZvciBzdWItY29tbWVuZC4gSWYgc3ViLWNvbW1hbmQgZG9lc24ndCB1 c2UgdGhpcywgDQo+ID4gPiBzZXQgemVyby4gKi8NCj4gPiANCj4gPiBjb21tZW5kIC0+IGNvbW1h bmQuDQo+IA0KPiBEaXR0by4NCg0KRGl0dG8uDQoNCj4gDQo+ID4gPiArwqDCoMKgwqDCoMKgwqAg X191MzIgZmxhZ3M7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqAgLyoNCj4gPiA+ICvCoMKgwqDCoMKg wqDCoMKgICogZGF0YSBmb3IgZWFjaCBzdWItY29tbWFuZC4gQW4gaW1tZWRpYXRlIG9yIGEgcG9p bnRlciB0byANCj4gPiA+IHRoZSBhY3R1YWwNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgICogZGF0 YSBpbiBwcm9jZXNzIHZpcnR1YWwgYWRkcmVzcy7CoCBJZiBzdWItY29tbWFuZCBkb2Vzbid0IA0K PiA+ID4gdXNlIGl0LA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqAgKiBzZXQgemVyby4NCj4gPiA+ ICvCoMKgwqDCoMKgwqDCoMKgICovDQo+ID4gPiArwqDCoMKgwqDCoMKgwqAgX191NjQgZGF0YTsN Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCAvKg0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqAgKiBBdXhp bGlhcnkgZXJyb3IgY29kZS7CoCBUaGUgc3ViLWNvbW1hbmQgbWF5IHJldHVybiBURFggDQo+ID4g PiBTRUFNQ0FMTA0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqAgKiBzdGF0dXMgY29kZSBpbiBhZGRp dGlvbiB0byAtRXh4eC4NCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgICogRGVmaW5lZCBmb3IgY29u c2lzdGVuY3kgd2l0aCBzdHJ1Y3Qga3ZtX3Nldl9jbWQuDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDC oCAqLw0KPiA+IA0KPiA+ICJEZWZpbmVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHN0cnVjdCBrdm1f c2V2X2NtZCIgZ290IHJlbW92ZWQgaW4gdGhlIA0KPiA+IGNvZGUuwqAgSXQgc2hvdWxkIGJlIHJl bW92ZWQgaGVyZSB0b28uDQoNClRoaXMgY2FuIGJlIGRvbmUgc2luY2UgSSBzZWUgaXQgZ290IHJl bW92ZWQgaW4gdGhlIGNvZGUuDQoNCj4gPiANCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBfX3U2NCBo d19lcnJvcjsNCj4gPiA+ICvCoCB9Ow0KPiA+ID4gKw0KPiA+ID4gK0tWTV9URFhfQ0FQQUJJTElU SUVTDQo+ID4gPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICs6VHlwZTogdm0gaW9jdGwN Cj4gPiA+ICsNCj4gPiA+ICtTdWJzZXQgb2YgVERTWVNJTkZPX1NUUlVDVCByZXRyaWV2ZWQgYnkg VERILlNZUy5JTkZPIFREWCBTRUFNIGNhbGwgDQo+ID4gPiB3aWxsIGJlDQo+ID4gPiArcmV0dXJu ZWQuIEl0IGRlc2NyaWJlcyB0aGUgSW50ZWwgVERYIG1vZHVsZS4NCj4gPiANCj4gPiBXZSBhcmUg bm90IHVzaW5nIFRESC5TWVMuSU5GTyBhbmQgVERTWVNJTkZPX1NUUlVDVCBhbnltb3JlLsKgIFBl cmhhcHM6DQo+ID4gDQo+ID4gIMKgwqDCoMKgUmV0cml2ZSBURFggbW9kdWVsIGdsb2JhbCBjYXBh YmlsaXRpZXMgZm9yIHJ1bm5pbmcgVERYIGd1ZXN0cy4NCj4gDQo+IChzb21lIHR5cG9zOiBSZXRy aXZlID0+IFJldHJpZXZlLCBtb2R1ZWwgPT4gbW9kdWxlKQ0KPiANCj4gSXQncyBub3QgVERYIG1v ZHVsZSBnbG9iYWwgY2FwYWJpbGl0aWVzLiBJdCBoYXMgYmVlbiBhZGp1ZXN0ZWQgYnkgS1ZNIHRv IA0KPiBtYXNrIG9mZiB0aGUgYml0cyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBLVk0u DQo+IA0KPiBIb3cgYWJvdXQ6DQo+IA0KPiBSZXR1cm4gdGhlIFREWCBjYXBhYmlsaXRpZXMgdGhh dCBjdXJyZW50IEtWTSBzdXBwb3J0cyB3aXRoIHRoZSBzcGVjaWZpYyANCj4gVERYIG1vZHVsZSBs b2FlZGVkIGluIHRoZSBzeXN0ZW0uIEl0IHJlcG9ydHMgd2hhdCBmZWF0dXJlcy9jYXBhYmlsaXRp ZXMgDQo+IGFyZSBhbGxvd2VkIHRvIGJlIGNvbmZpZ3VyZWQgdG8gdGhlIFREWCBndWVzdC4NCg0K RmluZSB0byBtZS4gIFRoYW5rcy4NCg0KPiANCj4gPiA+ICsNCj4gPiA+ICstIGlkOiBLVk1fVERY X0NBUEFCSUxJVElFUw0KPiA+ID4gKy0gZmxhZ3M6IG11c3QgYmUgMA0KPiA+ID4gKy0gZGF0YTog cG9pbnRlciB0byBzdHJ1Y3Qga3ZtX3RkeF9jYXBhYmlsaXRpZXMNCj4gPiA+ICstIGVycm9yOiBt dXN0IGJlIDANCj4gPiA+ICstIHVudXNlZDogbXVzdCBiZSAwDQo+ID4gDQo+ID4gQGVycm9yIHNo b3VsZCBiZSBAaHdfZXJyb3IuDQo+ID4gDQo+ID4gQW5kIEkgZG9uJ3Qgc2VlIEB1bnVzZWQgYW55 d2FyZSBpbiB0aGUgJ3N0cnVjdCBrdm1fdGR4X2NtZCcuwqAgU2hvdWxkIGJlIA0KPiA+IHJlbW92 ZWQuDQo+ID4gDQo+ID4gVGhlIHNhbWUgdG8gYWxsIGJlbG93IHN1Yi1jb21tYW5kcy4NCj4gPiAN Cj4gPiA+ICsNCj4gPiA+ICs6Og0KPiA+ID4gKw0KPiA+ID4gK8KgIHN0cnVjdCBrdm1fdGR4X2Nh cGFiaWxpdGllcyB7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqAgX191NjQgc3VwcG9ydGVkX2F0dHJz Ow0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgIF9fdTY0IHN1cHBvcnRlZF94ZmFtOw0KPiA+ID4gK8Kg wqDCoMKgwqDCoMKgIF9fdTY0IHJlc2VydmVkWzI1NF07DQo+ID4gPiArwqDCoMKgwqDCoMKgwqAg c3RydWN0IGt2bV9jcHVpZDIgY3B1aWQ7DQo+ID4gPiArwqAgfTsNCj4gPiA+ICsNCj4gPiA+ICsN Cj4gPiA+ICtLVk1fVERYX0lOSVRfVk0NCj4gPiA+ICstLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICs6 VHlwZTogdm0gaW9jdGwNCj4gPiANCj4gPiBJIHdvdWxkIGFkZCBkZXNjcmlwdGlvbiBmb3IgcmV0 dXJuIHZhbHVlczoNCj4gPiANCj4gPiAgwqDCoMKgwqA6UmV0dXJuczogMCBvbiBzdWNjZXNzLCA8 MCBvbiBlcnJvci4NCj4gDQo+ICsxLA0KPiANCj4gSSBoYXZlIGFkZGVkIGl0IGZvciBLVk1fVERY X0dFVF9DUFVJRCBpbnRlcm5hbGx5Lg0KDQpMZXQncyBhZGQgaXQgZm9yIGFsbCBzdWItY29tbWFu ZHMgdGhlbi4NCg0KPiANCj4gPiBXZSBjYW4gYWxzbyByZXBlYXQgdGhpcyBpbiBhbGwgc3ViLWNv bW1hbmRzLCBidXQgSSBhbSBub3Qgc3VyZSBpdCdzIA0KPiA+IG5lY2Vzc2FyeS4NCj4gPiANCj4g PiA+ICsNCj4gPiA+ICtEb2VzIGFkZGl0aW9uYWwgVk0gaW5pdGlhbGl6YXRpb24gc3BlY2lmaWMg dG8gVERYIHdoaWNoIGNvcnJlc3BvbmRzIHRvDQo+ID4gPiArVERILk1ORy5JTklUIFREWCBTRUFN IGNhbGwuDQo+ID4gDQo+ID4gIlNFQU0gY2FsbCIgLT4gIlNFQU1DQUxMIiBmb3IgY29uc2lzdGVu Y3kuwqAgQW5kIHRoZSBzYW1lIHRvIGJlbG93IGFsbCANCj4gPiBzdWItY29tbWFuZHMuDQo+ID4g DQo+ID4gTml0Og0KPiA+IA0KPiA+IEkgYW0gbm90IHN1cmUgd2hldGhlciB3ZSBuZWVkIHRvLCBv ciBzaG91bGQsIG1lbnRpb24gdGhlIGRldGFpbGVkIA0KPiA+IFNFQU1DQUxMIGhlcmUuwqAgVG8g bWUgdGhlIEFCSSBkb2Vzbid0IG5lZWQgdG8gZG9jdW1lbnQgdGhlIGRldGFpbGVkIA0KPiA+IGlt cGxlbWVudGF0aW9uIChpLmUuLCB3aGljaCBTRUFNQ0FMTCBpcyB1c2VkKSBpbiB0aGUgdW5kZXJu ZWF0aCBrZXJuZWwuDQo+IA0KPiBBZ3JlZWQgdG8gZHJvcCBtZW50aW9uaW5nIHRoZSBkZXRhaWxl ZCBTRUFNQ0FMTC4NCj4gDQo+IE1heWJlLCB3ZSBjYW4gbWVudGlvbiB0aGUgc2VxdWVuY2UgcmVx dWlyZW1lbnQgYXMgd2VsbCwgdGhhdCBpdCBuZWVkcyB0byANCj4gYmUgY2FsbGVkIGFmdGVyIEtW TV9DUkVBVEVfVk0gYW5kIGJlZm9yZSBjcmVhdGluZyBhbnkgVkNQVXMuDQoNClllYWggYWdyZWVk LiDCoA0KDQpUaGVuIHBlcmhhcHMgd2UgY2FuIGRyb3AgdGhlICJLVk0gVERYIGNyZWF0aW9uIGZs b3ciIHNlY3Rpb24gZW50aXJlbHkgdG8gYXZvaWQNCnRoZSBwb3RlbnRpYWwgZGViYXRlLg0KDQo+ IA0KPiA+ID4gKw0KPiA+ID4gKy0gaWQ6IEtWTV9URFhfSU5JVF9WTQ0KPiA+ID4gKy0gZmxhZ3M6 IG11c3QgYmUgMA0KPiA+ID4gKy0gZGF0YTogcG9pbnRlciB0byBzdHJ1Y3Qga3ZtX3RkeF9pbml0 X3ZtDQo+ID4gPiArLSBlcnJvcjogbXVzdCBiZSAwDQo+ID4gPiArLSB1bnVzZWQ6IG11c3QgYmUg MA0KPiA+ID4gKw0KPiA+ID4gKzo6DQo+ID4gPiArDQo+ID4gPiArwqAgc3RydWN0IGt2bV90ZHhf aW5pdF92bSB7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIF9fdTY0IGF0dHJpYnV0ZXM7DQo+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIF9fdTY0IHhmYW07DQo+ID4gPiArwqDCoMKgwqDCoMKg wqDCoMKgIF9fdTY0IG1yY29uZmlnaWRbNl07wqDCoMKgwqDCoMKgwqDCoMKgIC8qIHNoYTM4NCBk aWdlc3QgKi8NCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgX191NjQgbXJvd25lcls2XTvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogc2hhMzg0IGRpZ2VzdCAqLw0KPiA+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoCBfX3U2NCBtcm93bmVyY29uZmlnWzZdO8KgwqDCoMKgwqDCoCAvKiBzaGEzODQg ZGlnZXN0ICovDQo+ID4gPiArDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFRoZSB0b3Rh bCBzcGFjZSBmb3IgVERfUEFSQU1TIGJlZm9yZSB0aGUgQ1BVSURzIGlzIDI1NiANCj4gPiA+IGJ5 dGVzICovDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIF9fdTY0IHJlc2VydmVkWzEyXTsNCj4g PiA+ICsNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCAvKg0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqAg KiBDYWxsIEtWTV9URFhfSU5JVF9WTSBiZWZvcmUgdmNwdSBjcmVhdGlvbiwgdGh1cyBiZWZvcmUN Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgICogS1ZNX1NFVF9DUFVJRDIuDQo+ID4gPiArwqDCoMKg wqDCoMKgwqDCoCAqIFRoaXMgY29uZmlndXJhdGlvbiBzdXBlcnNlZGVzIEtWTV9TRVRfQ1BVSUQy cyBmb3IgVkNQVXMgDQo+ID4gPiBiZWNhdXNlIHRoZQ0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqAg KiBURFggbW9kdWxlIGRpcmVjdGx5IHZpcnR1YWxpemVzIHRob3NlIENQVUlEcyB3aXRob3V0IFZN TS4gIA0KPiA+ID4gVGhlIHVzZXINCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgICogc3BhY2UgVk1N LCBlLmcuIHFlbXUsIHNob3VsZCBtYWtlIEtWTV9TRVRfQ1BVSUQyIA0KPiA+ID4gY29uc2lzdGVu dCB3aXRoDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoCAqIHRob3NlIHZhbHVlcy7CoCBJZiBpdCBk b2Vzbid0LCBLVk0gbWF5IGhhdmUgd3JvbmcgaWRlYSBvZiANCj4gPiA+IHZDUFVJRHMgb2YNCj4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgICogdGhlIGd1ZXN0LCBhbmQgS1ZNIG1heSB3cm9uZ2x5IGVt dWxhdGUgQ1BVSURzIG9yIE1TUnMgdGhhdCANCj4gPiA+IHRoZSBURFgNCj4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgICogbW9kdWxlIGRvZXNuJ3QgdmlydHVhbGl6ZS4NCj4gPiA+ICvCoMKgwqDCoMKg wqDCoMKgICovDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBrdm1fY3B1aWQyIGNw dWlkOw0KPiA+ID4gK8KgIH07DQo+ID4gPiArDQo+ID4gPiArDQo+ID4gPiArS1ZNX1REWF9JTklU X1ZDUFUNCj4gPiA+ICstLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gKzpUeXBlOiB2Y3B1IGlvY3Rs DQo+ID4gPiArDQo+ID4gPiArRG9lcyBhZGRpdGlvbmFsIFZDUFUgaW5pdGlhbGl6YXRpb24gc3Bl Y2lmaWMgdG8gVERYIHdoaWNoIGNvcnJlc3BvbmRzIHRvDQo+ID4gPiArVERILlZQLklOSVQgVERY IFNFQU0gY2FsbC4NCj4gDQo+IFNhbWUgZm9yIHRoZSBUREguVlAuSU5JVCBTRUFNQ0FMTCwgSSBk b24ndCB0aGluayB3ZSBuZWVkIHRvIG1lbnRpb24gaXQuDQo+IEFuZCBLVk1fVERYX0lOSVRfVkNQ VSBkb2VzIG1vcmUgdGhpbmdzIG90aGVyIHRoYW4gVERILlZQLklOSVQuDQo+IA0KPiBIb3cgYWJv dXQganVzdDoNCj4gDQo+ICAgIFBlcmZvcm0gVERYIHNwZWNpZmljIFZDUFUgaW5pdGlhbGl6YXRp b24NCg0KRmluZSB0byBtZS4NCg0KPiANCj4gPiA+ICstIGlkOiBLVk1fVERYX0lOSVRfVkNQVQ0K PiA+ID4gKy0gZmxhZ3M6IG11c3QgYmUgMA0KPiA+ID4gKy0gZGF0YTogaW5pdGlhbCB2YWx1ZSBv ZiB0aGUgZ3Vlc3QgVEQgVkNQVSBSQ1gNCj4gPiA+ICstIGVycm9yOiBtdXN0IGJlIDANCj4gPiA+ ICstIHVudXNlZDogbXVzdCBiZSAwDQo+ID4gPiArDQo+ID4gPiArS1ZNX1REWF9JTklUX01FTV9S RUdJT04NCj4gPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gKzpUeXBlOiB2Y3B1 IGlvY3RsDQo+ID4gPiArDQo+ID4gPiArRW5jcnlwdCBhIG1lbW9yeSBjb250aW51b3VzIHJlZ2lv biB3aGljaCBjb3JyZXNwb25kaW5nIHRvIA0KPiA+ID4gVERILk1FTS5QQUdFLkFERA0KPiA+ID4g K1REWCBTRUFNIGNhbGwuDQo+ID4gDQo+ID4gImEgY29udGlndW91cyBndWVzdCBtZW1vcnkgcmVn aW9uIj8NCj4gPiANCj4gPiBBbmQgIndoaWNoIGNvcnJlc3BvbmRpbmcgdG8gLi4iIGhhcyBncmFt bWFyIGlzc3VlLg0KPiA+IA0KPiA+IEhvdyBhYm91dDoNCj4gPiANCj4gPiAgwqDCoMKgwqBMb2Fk IGFuZCBlbmNyeXB0IGEgY29udGlndW91cyBtZW1vcnkgcmVnaW9uIGZyb20gdGhlIHNvdXJjZQ0K PiA+ICDCoMKgwqDCoG1lbW9yeSB3aGljaCBjb3JyZXNwb25kcyB0byB0aGUgVERILk1FTS5QQUdF LkFERCBURFggU0VBTUNBTEwuDQo+IA0KPiBBcyBzdWdndWVzdGVkIGFib3ZlLCBJIHByZWZlciB0 byBkcm9wIG1lbnRpb250aW5nIHRoZSBkZXRhaWxlZCBTRUFNQ0FMTC4NCj4gDQo+IEJlc2lkZXMs IGl0J3MgYmV0dGVyIHRvIGNhbGwgb3V0IHRoZSBkZXBlbmRlbmNlIHRoYXQgdGhlIGdwYSBuZWVk cyB0byBiZSANCj4gc2V0IHRvIHByaXZhdGUgYXR0cmlidXRlIGJlZm9yZSBjYWxsaW5nIEtWTV9U RFhfSU5JVF9NRU1fUkVHSU9OIHRvIA0KPiBpbml0aWFsaXplIHRoZSBwcml2aWF0ZSBtZW1vcnku DQo+IA0KPiBIb3cgYWJvdXQ6DQo+IA0KPiAgICBJbml0aWFsaXplIEBucl9wYWdlcyBURFggZ3Vl c3QgcHJpdmF0ZSBtZW1vcnkgc3RhcnRpbmcgZnJvbSBAZ3BhIHdpdGgNCj4gICAgdXNlcnNwYWNl IHByb3ZpZGVkIGRhdGEgZnJvbSBAc291cmNlX2FkZHIuDQo+IA0KPiAgICBOb3RlLCBiZWZvcmUg Y2FsbGluZyB0aGlzIHN1YiBjb21tYW5kLCBtZW1vcnkgYXR0cmlidXRlIG9mIHRoZSByYW5nZQ0K PiAgICBbZ3BhLCBncGEgKyBucl9wYWdlc10gbmVlZHMgdG8gYmUgcHJpdmF0ZS4gVXNlcnNwYWNl IGNhbiB1c2UNCj4gICAgS1ZNX1NFVF9NRU1PUllfQVRUUklCVVRFUyB0byBzZXQgdGhlIGF0dHJp YnV0ZS4NCg0KRmluZSB0byBtZS4NCg0KPiANCj4gDQo+ID4gPiArSWYgS1ZNX1REWF9NRUFTVVJF X01FTU9SWV9SRUdJT04gZmxhZyBpcyBzcGVjaWZpZWQsIGl0IGFsc28gZXh0ZW5kcyANCj4gPiA+ IG1lYXN1cmVtZW50DQo+ID4gPiArd2hpY2ggY29ycmVzcG9uZHMgdG8gVERILk1SLkVYVEVORCBU RFggU0VBTSBjYWxsLg0KPiA+ID4gKw0KPiA+ID4gKy0gaWQ6IEtWTV9URFhfSU5JVF9NRU1fUkVH SU9ODQo+ID4gPiArLSBmbGFnczogZmxhZ3MNCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGN1cnJlbnRseSBvbmx5IEtWTV9URFhfTUVBU1VSRV9NRU1PUllfUkVHSU9OIGlzIGRlZmluZWQN Cj4gPiA+ICstIGRhdGE6IHBvaW50ZXIgdG8gc3RydWN0IGt2bV90ZHhfaW5pdF9tZW1fcmVnaW9u DQo+ID4gPiArLSBlcnJvcjogbXVzdCBiZSAwDQo+ID4gPiArLSB1bnVzZWQ6IG11c3QgYmUgMA0K PiA+ID4gKw0KPiA+ID4gKzo6DQo+ID4gPiArDQo+ID4gPiArwqAgI2RlZmluZSBLVk1fVERYX01F QVNVUkVfTUVNT1JZX1JFR0lPTsKgwqAgKDFVTCA8PCAwKQ0KPiA+ID4gKw0KPiA+ID4gK8KgIHN0 cnVjdCBrdm1fdGR4X2luaXRfbWVtX3JlZ2lvbiB7DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKg IF9fdTY0IHNvdXJjZV9hZGRyOw0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCBfX3U2NCBncGE7 DQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIF9fdTY0IG5yX3BhZ2VzOw0KPiA+ID4gK8KgIH07 DQo+ID4gPiArDQo+ID4gPiArDQo+ID4gPiArS1ZNX1REWF9GSU5BTElaRV9WTQ0KPiA+ID4gKy0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICs6VHlwZTogdm0gaW9jdGwNCj4gPiA+ICsNCj4gPiA+ ICtDb21wbGV0ZSBtZWFzdXJlbWVudCBvZiB0aGUgaW5pdGlhbCBURCBjb250ZW50cyBhbmQgbWFy ayBpdCByZWFkeSB0byBydW4NCj4gPiA+ICt3aGljaCBjb3JyZXNwb25kcyB0byBUREguTVIuRklO QUxJWkUNCj4gPiANCj4gPiBNaXNzaW5nIHBlcmlvZCBhdCB0aGUgZW5kIG9mIHRoZSBzZW50ZW5j ZS4NCj4gPiANCj4gPiBBbmQgbml0IGFnYWluOiBJIGRvbid0IGxpa2UgdGhlICJ3aGljaCBjb3Jy ZXNwb25kcyB0byBUREguTVIuRklOQUxJWkUiLg0KPiA+IA0KPiA+ID4gKw0KPiA+ID4gKy0gaWQ6 IEtWTV9URFhfRklOQUxJWkVfVk0NCj4gPiA+ICstIGZsYWdzOiBtdXN0IGJlIDANCj4gPiA+ICst IGRhdGE6IG11c3QgYmUgMA0KPiA+ID4gKy0gZXJyb3I6IG11c3QgYmUgMA0KPiA+ID4gKy0gdW51 c2VkOiBtdXN0IGJlIDANCj4gPiANCj4gPiANCj4gPiBUaGlzIHBhdGNoIGRvZXNuJ3QgY29udGFp biBLVk1fVERYX0dFVF9DUFVJRC7CoCBJIHNhdyBpbiBpbnRlcm5hbCBkZXYgDQo+ID4gYnJhbmNo IHdlIGhhdmUgaXQuDQo+ID4gDQo+IA0KPiBJIGFkZGVkIGl0IGluIHRoZSBpbnRlcm5hbCBicmFu Y2guIE5leHQgdmVyc2lvbiBwb3N0IHNob3VsZCBoYXZlIGl0Lg0KDQpHcmVhdC4gIFBlcmhhcHMg eW91IGNhbiBzZW5kIG91dCBhIGZpeHVwIHBhdGNoIGludGVybmFsbHkuDQoNCj4gDQo+ID4gPiAr DQo+ID4gPiArS1ZNIFREWCBjcmVhdGlvbiBmbG93DQo+ID4gPiArPT09PT09PT09PT09PT09PT09 PT09DQo+ID4gPiArSW4gYWRkaXRpb24gdG8gS1ZNIG5vcm1hbCBmbG93LCBuZXcgVERYIGlvY3Rs cyBuZWVkIHRvIGJlIGNhbGxlZC4gIA0KPiA+ID4gVGhlIGNvbnRyb2wgZmxvdw0KPiA+ID4gK2xv b2tzIGxpa2UgYXMgZm9sbG93cy4NCj4gPiA+ICsNCj4gPiA+ICsjLiBzeXN0ZW0gd2lkZSBjYXBh YmlsaXR5IGNoZWNrDQo+ID4gDQo+ID4gVG8gbWFrZSBhbGwgY29uc2lzdGVudDoNCj4gPiANCj4g PiBDaGVjayBzeXN0ZW0gd2lkZSBjYXBhYmlsaXR5DQo+ID4gDQo+ID4gPiArDQo+ID4gPiArwqDC oCAqIEtWTV9DQVBfVk1fVFlQRVM6IGNoZWNrIGlmIFZNIHR5cGUgaXMgc3VwcG9ydGVkIGFuZCBp ZiANCj4gPiA+IEtWTV9YODZfVERYX1ZNDQo+ID4gPiArwqDCoMKgwqAgaXMgc3VwcG9ydGVkLg0K PiA+ID4gKw0KPiA+ID4gKyMuIGNyZWF0aW5nIFZNDQo+ID4gDQo+ID4gQ3JlYXRlIFZNDQo+ID4g PiArDQo+ID4gPiArwqDCoCAqIEtWTV9DUkVBVEVfVk0NCj4gPiA+ICvCoMKgICogS1ZNX1REWF9D QVBBQklMSVRJRVM6IHF1ZXJ5IGlmIFREWCBpcyBzdXBwb3J0ZWQgb24gdGhlIHBsYXRmb3JtLg0K PiA+IA0KPiA+ICJURFggaXMgc3VwcG9ydGVkIG9yIG5vdCIgaXMgYWxyZWFkeSBjaGVja2VkIGlu IHN0ZXAgMS4NCj4gPiANCj4gPiBJIHRoaW5rIHdlIHNob3VsZCBzYXk6DQo+ID4gDQo+ID4gcXVl cnkgVERYIGdsb2JhbCBjYXBhYmlsaXRpZXMgZm9yIGNyZWF0aW5nIFREWCBndWVzdHMuDQo+IA0K PiBJIGRvbid0IGxpa2UgdGhlICJnbG9iYWwiIHRlcm0gYW5kIEkgZG9uJ3QgdGhpbmsgaXQncyBj b3JyZWN0Lg0KPiANCj4gS1ZNX1REWF9DQVBBQklMSVRJRVMgd2FzIHJlcXVlc3RlZCB0byBjaGFu Z2UgZnJvbSB0aGUgcGxhdGZvcm0tc2NvcGUgDQo+IGlvY3RsIHRvIFZNLXNjb3BlLiBJdCBzaG91 bGQgb25seSByZXBvcnQgdGhlIHBlci1URCBjYXBhYmlsaXRpZXMsIHRob3VnaCANCj4gaXQncyBp ZGVudGljYWwgZm9yIGFsbCBURHMgY3VycmVudGx5Lg0KDQpPaCBJIGRpZG4ndCBrbm93IHRoaXMu ICBUaGFua3MgZm9yIHBvaW50aW5nIG91dC4gIENvdWxkIHlvdSBzdWdnZXN0IHRoZQ0KcHJlZmVy cmVkIHdvcmRzPw0KDQooQnR3LCBhcyBtZW50aW9uZWQgYWJvdmUgaWYgd2UgZG9jdW1lbnQgdGhl IGNhbGxpbmcgc2VxdWVuY2Ugb2YgdGhlIGNvbW1hbmRzIGluDQplYWNoIGNvbW1hbmQgdGhlbiBw ZXJoYXBzIHdlIGNhbiBnZXQgcmlkIG9mIHRoaXMgZW50aXJlICJURFggVERYIGNyZWF0aW9uIGZs b3ciDQppbiB3aGljaCBjYXNlIHdlIHdvbid0IG5lZWQgdG8gZml4IHRob3NlIHVwKS4NCg0KPiAN Cj4gPiA+ICvCoMKgICogS1ZNX0VOQUJMRV9DQVBfVk0oS1ZNX0NBUF9NQVhfVkNQVVMpOiBzZXQg bWF4X3ZjcHVzLiANCj4gPiA+IEtWTV9NQVhfVkNQVVMgYnkNCj4gPiA+ICvCoMKgwqDCoCBkZWZh dWx0LsKgIEtWTV9NQVhfVkNQVVMgaXMgbm90IGEgcGFydCBvZiBBQkksIGJ1dCBrZXJuZWwgDQo+ ID4gPiBpbnRlcm5hbCBjb25zdGFudA0KPiA+ID4gK8KgwqDCoMKgIHRoYXQgaXMgc3ViamVjdCB0 byBjaGFuZ2UuwqAgQmVjYXVzZSBtYXggdmNwdXMgaXMgYSBwYXJ0IG9mIA0KPiA+ID4gYXR0ZXN0 YXRpb24sIG1heA0KPiA+ID4gK8KgwqDCoMKgIHZjcHVzIHNob3VsZCBiZSBleHBsaWNpdGx5IHNl dC4NCj4gPiANCj4gPiBUaGlzIGlzIG91dC1vZi1kYXRlLg0KPiA+IA0KPiA+ICDCoMKgwqDCoMKg ICogS1ZNX0NIRUNLX0VYVEVOU0lPTihLVk1fQ0FQX01BWF9WQ1BVUyk6IHF1ZXJ5IG1heGltdW0g dmNwdXMgdGhlDQo+ID4gIMKgwqDCoMKgVERYIGd1ZXN0IGNhbiBzdXBwb3J0IChURFggaGFzIGl0 cyBvd24gbGltaXRhdGlvbiBvbiB0aGlzKS4NCj4gDQo+IE1vcmUgcHJlY2lzZWx5LCBLVk1fQ0hF Q0tfRVhURVNJT04oS1ZNX0NBUF9NQVhfVkNQVVMpIGF0IHZtIGxldmVsDQoNClN1cmU6DQoNCktW TV9DSEVDS19FWFRFTlNJT04oS1ZNX0NBUF9NQVhfVkNQVVMpOiBRdWVyeSBtYXhpbXVtIHZDUFVz IHRoZSBURCBjYW4gc3VwcG9ydA0KYXQgdm0gbGV2ZWwgKFREWCBoYXMgaXRzIG93biBsaW1pdGF0 aW9uIG9uIHRoaXMpLg0KDQo+IA0KPiA+ID4gK8KgwqAgKiBLVk1fU0VUX1RTQ19LSFogZm9yIHZt LiBvcHRpb25hbA0KPiA+IA0KPiA+IEZvciBjb25zaXN0ZW5jeToNCj4gPiANCj4gPiAgwqDCoMKg wqDCoCAqIEtWTV9TRVRfVFNDX0tIWjogb3B0aW9uYWwNCj4gDQo+IE1vcmUgcHJlY2lzZWx5LCBL Vk1fU0VUX1RTQ19LSFogYXQgVk0tbGV2ZWwgaWYgdXNlcnNwYWNlIGRlc2lyZXMgYSANCj4gZGlm ZmVyZW50IFRTQyBmcmVxdWVuY3kgdGhhbiB0aGUgaG9zdC4gT3RoZXJ3aXNlLCBob3N0J3MgVFND IGZyZXF1ZW5jeSANCj4gd2lsbCBiZSBjb25maWd1cmVkIGZvciB0aGUgVEQuDQoNClN1cmU6DQoN CktWTV9TRVRfVFNDX0tIWjogQ29uZmlndXJlIFREJ3MgVFNDIGZyZXF1ZW5jeSBpZiBhIGRpZmZl cmVudCBUU0MgZnJlcXVlbmN5IHRoYW4NCmhvc3QgaXMgZGVzaXJlZC4gIFRoaXMgaXMgT3B0aW9u YWwuDQoNCj4gDQo+ID4gDQo+ID4gPiArwqDCoCAqIEtWTV9URFhfSU5JVF9WTTogcGFzcyBURFgg c3BlY2lmaWMgVk0gcGFyYW1ldGVycy4NCj4gPiA+ICsNCj4gPiA+ICsjLiBjcmVhdGluZyBWQ1BV DQo+ID4gDQo+ID4gQ3JlYXRlIHZDUFVzDQo+ID4gDQo+ID4gPiArDQo+ID4gPiArwqDCoCAqIEtW TV9DUkVBVEVfVkNQVQ0KPiA+ID4gK8KgwqAgKiBLVk1fVERYX0lOSVRfVkNQVTogcGFzcyBURFgg c3BlY2lmaWMgVkNQVSBwYXJhbWV0ZXJzLg0KPiA+ID4gK8KgwqAgKiBLVk1fU0VUX0NQVUlEMjog RW5hYmxlIENQVUlEWzB4MV0uRUNYLlgyQVBJQyhiaXQgMjEpPTEgc28gdGhhdCANCj4gPiA+IHRo ZSBmb2xsb3dpbmcNCj4gPiA+ICvCoMKgwqDCoCBzZXR0aW5nIG9mIE1TUl9JQTMyX0FQSUNfQkFT RSBzdWNjZXNzLiBXaXRob3V0IHRoaXMsDQo+ID4gPiArwqDCoMKgwqAgS1ZNX1NFVF9NU1JTKE1T Ul9JQTMyX0FQSUNfQkFTRSkgZmFpbHMuDQo+ID4gDQo+ID4gSSB3b3VsZCBwcmVmZXIgdG8gcHV0 IFgyQVBJQyBzcGVjaWZpYyB0byBhIG5vdGU6DQo+ID4gDQo+ID4gIMKgwqDCoMKgwqAgKiBLVk1f U0VUX0NQVUlEMjogY29uZmlndXJlIGd1ZXN0J3MgQ1BVSURzLsKgIE5vdGU6IEVuYWJsZSAuLi4N Cj4gPiANCj4gPiA+ICvCoMKgICogS1ZNX1NFVF9NU1JTOiBTZXQgdGhlIGluaXRpYWwgcmVzZXQg dmFsdWUgb2YgTVNSX0lBMzJfQVBJQ19CQVNFIHRvDQo+ID4gPiArwqDCoMKgwqAgQVBJQ19ERUZB VUxUX0FERFJFU1MoMHhmZWUwMDAwMCkgfCBYQVBJQ19FTkFCTEUoYml0IDEwKSB8DQo+ID4gPiAr wqDCoMKgwqAgWDJBUElDX0VOQUJMRShiaXQgMTEpIFt8IE1TUl9JQTMyX0FQSUNCQVNFX0JTUChi aXQgOCkgb3B0aW9uYWxdDQo+IA0KPiBUaGlzIGlzIG5vdCB0cnVlIG5vdy4gTVNSX0lBMzJfQVBJ Q0JBU0UgaXMgcmVhZC1vbmx5IE1TUiBmb3IgVERYLiBLVk0gDQo+IGRpc2FsbG93cyB1c2Vyc3Bh Y2UgdG8gc2V0IE1TUl9JQTMyX0FQSUNCQVNFIGFuZCANCj4gaW9jdGwoS1ZNX1REWF9JTklUX1ZD UFUpIGluaXRpYWxpemUgYSBjb3JyZWN0IHZhbHVlIGZvciANCj4gTVNSX0lBMzJfQVBJQ0JBU0Ug aW50ZXJuYWxseS4NCg0KUGVyaGFwcyB3ZSBjYW4ganVzdCBzYXk6DQoNCkNvbmZpZ3VyZSBURCdz IENQVUlEcy4NCj4gDQo+ID4gRGl0dG8sIEkgYmVsaWV2ZSB0aGVyZSBhcmUgb3RoZXIgTVNScyB0 byBiZSBzZXQgdG9vLg0KPiANCj4gSXQgc2VlbXMgbm8gbXVzdC10by1iZS1zZXQgTVNSIGZvciBU RFggZ3Vlc3QuDQoNCldlIGNhbiBqdXN0IHNheTogQ29uZmlndXJlIFREJ3MgTVNScy4NCg0KPiAN Cj4gPiA+ICsNCj4gPiA+ICsjLiBpbml0aWFsaXppbmcgZ3Vlc3QgbWVtb3J5DQo+ID4gDQo+ID4g SW5pdGlhbGl6ZSBpbml0aWFsIGd1ZXN0IG1lbW9yeQ0KPiA+IA0KPiA+ID4gKw0KPiA+ID4gK8Kg wqAgKiBhbGxvY2F0ZSBndWVzdCBtZW1vcnkgYW5kIGluaXRpYWxpemUgcGFnZSBzYW1lIHRvIG5v cm1hbCBLVk0gY2FzZQ0KPiA+IA0KPiA+IENhbm5vdCBwYXJzZSB0aGlzLg0KPiA+IA0KPiA+ID4g K8KgwqDCoMKgIEluIFREWCBjYXNlLCBwYXJzZSBhbmQgbG9hZCBURFZGIGludG8gZ3Vlc3QgbWVt b3J5IGluIGFkZGl0aW9uLg0KPiA+IA0KPiA+IERvbid0IHVuZGVyc3RhbmQgInBhcnNlIFREVkYi IGVpdGhlci4NCj4gPiANCj4gPiA+ICvCoMKgICogS1ZNX1REWF9JTklUX01FTV9SRUdJT04gdG8g YWRkIGFuZCBtZWFzdXJlIGd1ZXN0IHBhZ2VzLg0KPiA+ID4gK8KgwqDCoMKgIElmIHRoZSBwYWdl cyBoYXMgY29udGVudHMgYWJvdmUsIHRob3NlIHBhZ2VzIG5lZWQgdG8gYmUgYWRkZWQuDQo+ID4g PiArwqDCoMKgwqAgT3RoZXJ3aXNlIHRoZSBjb250ZW50cyB3aWxsIGJlIGxvc3QgYW5kIGd1ZXN0 IHNlZXMgemVybyBwYWdlcy4NCj4gPiA+ICvCoMKgICogS1ZNX1REWF9GSU5BTElBWkVfVk06IEZp bmFsaXplIFZNIGFuZCBtZWFzdXJlbWVudA0KPiA+ID4gK8KgwqDCoMKgIFRoaXMgbXVzdCBiZSBh ZnRlciBLVk1fVERYX0lOSVRfTUVNX1JFR0lPTi4NCj4gPiANCj4gPiBQZXJoYXBzIHJlZmluZSB0 aGUgYWJvdmUgdG86DQo+ID4gDQo+ID4gDQo+ID4gIMKgwqDCoMKgwqAgKiBBbGxvY2F0ZSBndWVz dCBtZW1vcnkgaW4gdGhlIHNhbWUgd2F5IGFzIGFsbG9jYXRpbmcgbWVtb3J5IGZvcg0KPiA+ICDC oMKgwqDCoG5vcm1hbCBWTXMuDQo+ID4gIMKgwqDCoMKgwqAgKiBLVk1fVERYX0lOSVRfTUVNX1JF R0lPTiB0byBhZGQgaW5pdGlhbCBndWVzdCBtZW1vcnkuwqAgTm90ZSBmb3INCj4gPiAgwqDCoMKg wqBub3cgVERYIGd1ZXN0cyBvbmx5IHdvcmtzIHdpdGggVERWRiwgdGh1cyB0aGUgVERWRiBuZWVk cyB0byBiZQ0KPiA+ICDCoMKgwqDCoGluY2x1ZGVkIGluIHRoZSBpbml0aWFsIGd1ZXN0IG1lbW9y eS4NCj4gPiAgwqDCoMKgwqDCoCAqIEtWTV9URFhfRklOQUxJWkVfVk06IEZpbmFsaXplIHRoZSBt ZWFzdXJlbWVudCBvZiB0aGUgVERYIGd1ZXN0Lg0KPiANCj4gSSdtIG5vdCBzdXJlIGlmIHdlIG5l ZWQgdG8gbWVudGlvbiBURFZGIGhlcmUuIEkgdGhpbmsgS1ZNIGRvZXNuJ3QgY2FyZSANCj4gYWJv dXQgaXQuIFBlb3BsZSBjYW4gYWx3YXlzIGNyZWF0ZSBhIG5ldyB2aXJ0dWFsIGJpb3MgZm9yIFRE WCBndWVzdCANCj4gdGhlbXNlbHZlcy4NCg0KRmluZSB0byByZW1vdmUgaXQuDQoNCg==