From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.12529.1679028814614943963 for ; Thu, 16 Mar 2023 21:53:34 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Ub0O2P9y; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: andrei.warkentin@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679028814; x=1710564814; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=NzA/tulKyT1z9KRntKo/aIa4/p82pJudssvE8+dah+s=; b=Ub0O2P9yQ9BZ3/vY1dYri1rd8ecZOWQelIM4x/jjrhGIpMlUoMa9jJ/x IcEOeVHrWdecICuP+2T0p1p6SgKZsCKU7vJbIN9icaAyFATmzsr34dHWB 3wQLxXcF1fHYVWXPxwr1hixlVCxLLTPiORDo++Yk01wOyogo7Y4ysG6wi 0wTdFjfC5I9Qbf8QL28uBB/BuX+tmOJvgs1JqDRImzHHlLDYjh2YV5muI POUokmFeFNhb22cdds3sC9nDd+L0nLm+HUgIxGFjf5W+W2BN3L3JrtZNU KI84tigH8JU683irqU5O3vUbSIuXF8InaIYj9Rgluzo7dnkZUShyOq6BE w==; X-IronPort-AV: E=McAfee;i="6600,9927,10651"; a="317837322" X-IronPort-AV: E=Sophos;i="5.98,267,1673942400"; d="scan'208";a="317837322" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Mar 2023 21:53:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10651"; a="630156970" X-IronPort-AV: E=Sophos;i="5.98,267,1673942400"; d="scan'208";a="630156970" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga003.jf.intel.com with ESMTP; 16 Mar 2023 21:53:33 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 16 Mar 2023 21:53:33 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 16 Mar 2023 21:53:32 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Thu, 16 Mar 2023 21:53:32 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.48) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Thu, 16 Mar 2023 21:53:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KqTienBKY2E+343lG71UleTtwBqeEN2MF4HEb0KpljIbisezM9Va4XaR2gXnl6xbYsQVe2NNh8Grv14DTfIFQgaaxolIhwx1tVLFx3e7WAviXYhYesdj08eqrfw5Uker4xEouCNg4z8/uSsfOrcybfeT+s0tct7gufpEeMX6hqnYjZHi6rzus2kGizStuNuz8ztj3Kv0LvMhYa/Ea3+3y5sHf8ymCkbQ/GIz1Nli/ANNPXcidozR07c/dJGxR7N58banGVe+HSK4bk8GoVMmQcSHANG8CFoC5XWiMkvYYq0dLMGzNHtvFjXLmAg39UPh7VRQeybnqGIDhY6X/MRzxw== 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=NzA/tulKyT1z9KRntKo/aIa4/p82pJudssvE8+dah+s=; b=X0JZXvViCpjw8Y9oWmgVA8QG21OajHF08jIK+7sJRO3vjpk/0Uf0FbUEnj8rVoHPWTRJBN2W685bb2VPgSzkzIEVMFVh7UZ3RPuSQ2wxJLM8ZuFI5Ml23+KycvJp2H53tFTwe4d/WU+aeXuBiVOo71K06E0X2c4x//OSXBO8ttLICfZrG3zsNMN412/94SwJzSfYxcx8PjneC63bc8Ehps6tnPHZs57QldJ038UYHnbYqSE5F6U/W7KmxhrRdxOlJpeKKQvFAHmqvZQiyoGXdi9S1VFTQ6tCMKTcVy/DQ7hFHATg7w51CZ/oufawsQDKqeWJow8n7FItbhbfKZVWaw== 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 PH8PR11MB6856.namprd11.prod.outlook.com (2603:10b6:510:22b::7) by BL1PR11MB6028.namprd11.prod.outlook.com (2603:10b6:208:393::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.33; Fri, 17 Mar 2023 04:53:24 +0000 Received: from PH8PR11MB6856.namprd11.prod.outlook.com ([fe80::f480:22ed:c915:13f1]) by PH8PR11MB6856.namprd11.prod.outlook.com ([fe80::f480:22ed:c915:13f1%6]) with mapi id 15.20.6178.024; Fri, 17 Mar 2023 04:53:24 +0000 From: "Andrei Warkentin" To: "devel@edk2.groups.io" CC: "Kinney, Michael D" , "Gao, Liming" , "Liu, Zhiguang" Subject: Re: [PATCH v5 2/3] MdePkg: add SBI-based SerialPortLib for RISC-V Thread-Topic: [PATCH v5 2/3] MdePkg: add SBI-based SerialPortLib for RISC-V Thread-Index: AQHZU3KAVGzPlaHoyEG7qZm8cJJIT67+cWFg Date: Fri, 17 Mar 2023 04:53:24 +0000 Message-ID: References: <20230310170456.5230-1-andrei.warkentin@intel.com> <20230310170456.5230-3-andrei.warkentin@intel.com> In-Reply-To: <20230310170456.5230-3-andrei.warkentin@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: PH8PR11MB6856:EE_|BL1PR11MB6028:EE_ x-ms-office365-filtering-correlation-id: e0b0570c-eac9-449b-aad9-08db26a38a19 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8MYad4gFRsJx6QrZCN3Ea3Cx/Y6097edets0Fyp8Bxca7+TXfRkts1tZn1fD8F/2D976ZBwQoB3BZ79qsKvTmbbImhuqXxJK5QcO7CWTfPinUqDIPXoh8kVLzLmRiuG6ItLo0L+aGwDbyTGFJDFadeBN7MMaEwZiHPf0qGVOkUaMJmjygkuYljZSL8p8q1VwV0jS6gtnf9AhJ8LG8/42yjKyPYArDSCrJxs/NVX6s4Est4M8cQB5TwLlHyq0jjKQGiWA6hA++cILl6V5Vk0zWGT0DckGoQL3mDgXmK8HagjDy4RiptGVK/AEB62Gwk22cu7vX7MWnPBAqrPJlIoy2iu8EIVTDT35ZvG43ZHKVHlxXEYWZY4idE0j8n+ZeGtnB3QDd+ldhI6MPPXnXp/4njPhXzX2Y/Gy6rCBpm6V141kpdtQsdOm7e93b/K4APTUdifH1htosRhD8ao7c+TQvpWm8KtPKSE6XI4cOmulHx3rSbTLUJy599djD126odqU/+lgGnJdQjKJEVuWmvxKV2aFRScafS6w1rlNrazbMPJOI+QAIVQDpOQVhOarg3eC11nTuD5CHZ/UH4pZrdsepJdZcuzw9wY8Vgv31XzssAqozNcABvPpdzyAymvU3OfGhe3C6e748FaOGxVqRDMRGX48YYLBewB5Vr5MFB7GH8LRwqUBWk3bhw0QJAWzvFM8qmI2NLoezFsywXix65+xkA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR11MB6856.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(39860400002)(366004)(136003)(396003)(376002)(346002)(451199018)(6916009)(4326008)(8676002)(66446008)(66476007)(64756008)(38070700005)(76116006)(41300700001)(82960400001)(66946007)(316002)(66556008)(38100700002)(122000001)(8936002)(30864003)(54906003)(52536014)(478600001)(5660300002)(86362001)(83380400001)(71200400001)(7696005)(33656002)(53546011)(6506007)(107886003)(186003)(9686003)(2906002)(26005)(55016003)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eDA2ZmR5R1dzTWdFNlZHVTlEb0lOeW83WkhmQXgzc0lLVjBxaDdvSXNIaDhP?= =?utf-8?B?aURrTGV3L0VPL1MrNkRtVkNoelM3STd6VDk5S0ZCZnMwWUhXcmtMbHo4VUUx?= =?utf-8?B?c3lia3JjcEZ2WFJXQUZTYWcxTmZzaElpOGVFV2FDSXJiTjQzakdvOHV5WWpu?= =?utf-8?B?TnZsamU3TUFrUDFWWjN5VWppQWxOcFNiMjhseDlyaU1GY25vdTRSb2VjTlox?= =?utf-8?B?cldCQUMzaE82NVR1NXlvYzlnbjFrZlA0TUwrYnp0S29aQW9hWFBnQlZ6MlR4?= =?utf-8?B?UlQrOVJnS3FiT1gxa1AvUEwrblFiZlUwaWNKVDhKMU80R2ZPdGhjNzVKSWgx?= =?utf-8?B?bTVwY3d1UGdpdC9ueFdRSWdvZVpIc1FSRlhycDJFTHhkNXZPWFB3dWVqQnV4?= =?utf-8?B?aU8xbmVNc2x3MmlSQWpXVG9zVkFUakdjeU1lUGxyYkJqekdWeEozRTc1VjQy?= =?utf-8?B?a3kzQmpCMDRiNUpSdDY3U2pYRjUvUG5lZmZnTzBCN3lCa1V0WE1CWVlXRHRj?= =?utf-8?B?ejhrSFNXRDhkODhtTkNKMmNidXBOQjVYR3dNcGVUalBIMFlGUlVaaEc3My9P?= =?utf-8?B?QUw5a2M3S0xuY0pmR3FHZEZrM0VOQ3pzVXJzSVZWMzJSL21DcUZLWlB6NDQ5?= =?utf-8?B?ZnluTmhOTnlYaWlSaGtOalh3ejhlQ3ViWGJjRm1jdDN4b21CdGVONDY4UGVa?= =?utf-8?B?MTNDcFhkd3V2VmJ5bzdCMlJWYWp1eGlrSU1ETW5iUDczQnZFMTdWemRwYVUr?= =?utf-8?B?WDlvREJkVWxyaHo2UGZmdENUTDZpTi9mT2I3SVBIYnFLR0R6UnZRWFk3K3FT?= =?utf-8?B?QmhsL29icXJyZzlsWVpjYkwyYWEyck8wb1VzVTJkMlk0WEUzV2pxZ0I2NExJ?= =?utf-8?B?dUR4TmtGUlZacGtiL2VOc3JCdVNUTnpORGVJNXdrbDRjZG5pYUdWU1p4SEtH?= =?utf-8?B?bU5NSDBBdXJTakl3OGtlcDU1N052Z1I2WjFaZ21lcXNwRXZVcVhWbVdjZnZF?= =?utf-8?B?L2JMbkw5TGNkd2gvMXFpNmZLMW1mQ2tBRFR6akdVTlQ4d09kUjA1NmVJMFZo?= =?utf-8?B?L3NTaUZzTnRETkRZcFo2TEV2UXd1cm9haVNGMGJXTmZWUVJ2WTdTRG40aGx5?= =?utf-8?B?NFFuTVBKTUxjV01Ja3hWSFU4LzE1RVhjZlRwNkg3K1VRUUhoWTdGclk4dElW?= =?utf-8?B?STFhMVZ2cFFGaTJHcVJtWXZmbmVwMEtMNlBwQ05udTFqYkhhamlWZTNkYUow?= =?utf-8?B?WUhQR1k1Ri9GaU5vTytuZkI4aTR1aWJySC94VTFsY1JtY2VIOHhodlM4YVdi?= =?utf-8?B?a2gwRU1IUUtyZ2I3UjlCSXpKSVNna3Y5aUdjWWQ0TUo1TVFhR255K0pETzBu?= =?utf-8?B?OW85T3ZqR25NWHIwOEpTOGNDaFVSTGNabXQ1WlQ2dWpJemJaRFNMRDJyZUlw?= =?utf-8?B?VzIyTlJSN3czTXZySnFpZ3kzMHJMMUhKUUpmZ1RtMXFFeGR0c2gzSUVIS3VP?= =?utf-8?B?NEdGY29XQkhsQTVvMjZQZVF0VTBTaHlmMDVsM01ZVzV3ZlBmTXZjYnNKTzdR?= =?utf-8?B?RzlmdkdNRGcrU2pQWTE4Ny9Xa2tVMkg3TDBkK2FBYjdWV1ZmTDRpSTRpQXl2?= =?utf-8?B?N09SYUhxdGVIMG9xNGpUcXdPREU4anpXekhzR1l1V3hTb0JjSkwvTXhtVE1D?= =?utf-8?B?dlVyY1lRS2lqVnZtR1hjRWNMc0REWERkSFBQdUF1emtCVUtqeWdqMWZxL2Z4?= =?utf-8?B?VUVZS1JxdzIvNjZYa28wK054eDhvZGdjS3I3SEs5WGNIM1FnMm5STU5EQTBw?= =?utf-8?B?SXhjNXArcHl4VC9rcENIVEtpaEFrRXFjRWF6M1B2aGtqVjU1S0tELzc2WTh5?= =?utf-8?B?N3lUTDZWNHhHdHZtYklxZ29qOVNXUEc1cmhkTkt5RUNHM2N1bDZaQTh3ZHFG?= =?utf-8?B?Zkdkbm1jYTJFN3RRcFVEMkZUeEZOMUIzc2ZqNFlhbVdwK2EzM1JjM1d0cENP?= =?utf-8?B?SVBQaHowYjB3a3k5VElSSUNFQVhtamZuMk04Y3dFM3dLQUV5YWhWdVZ0dXMr?= =?utf-8?B?OUdXK2lBRlVESFl2R0lwS1JqbXlHaWFMamNaeVI4NjdyMlVqMUhaL1lNNnpj?= =?utf-8?B?QitRSTl5THorRSsxcWxrL1ozZnJ0TnRhVk5HaklCMExVekhGREkvR2RNSXk4?= =?utf-8?B?SUE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH8PR11MB6856.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0b0570c-eac9-449b-aad9-08db26a38a19 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Mar 2023 04:53:24.1050 (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: AGXASGxU+AW9FIVtDbmomw67zskK61hiMnCLKYxP9kwCXJhkYuQ1Gm7ac9DBlaZ/AagypK0mLyvTlDxnvH4TO1OceAnToofAf3l/urWgPT4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB6028 Return-Path: andrei.warkentin@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgZm9sa3MsDQoNCkNhbiBJIGdldCBhIHJldmlldyBmb3IgdGhlIGNoYW5nZXMgdG8gTWRlUGtn LmRzYyB0byBpbmNsdWRlIHRoZSBuZXcgbGlicyBvbiBSSVNDLVY/IFRoYXQncyB0aGUgbWlub3Ig dGhpbmcgcHJldmVudGluZyB0aGlzIHBhdGNoIHNldCBmcm9tIGJlaW5nIG1lcmdlZCDwn5iKLg0K DQpBDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBXYXJrZW50aW4sIEFuZHJl aSA8YW5kcmVpLndhcmtlbnRpbkBpbnRlbC5jb20+IA0KU2VudDogRnJpZGF5LCBNYXJjaCAxMCwg MjAyMyAxMTowNSBBTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogV2Fya2VudGluLCBB bmRyZWkgPGFuZHJlaS53YXJrZW50aW5AaW50ZWwuY29tPjsgRGFuaWVsIFNjaGFlZmVyIDxnaXRA ZGFuaWVsc2NoYWVmZXIubWU+OyBTdW5pbCBWIEwgPHN1bmlsdmxAdmVudGFuYW1pY3JvLmNvbT47 IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEdhbywgTGlt aW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsIFpoaWd1YW5nIDx6aGlndWFuZy5s aXVAaW50ZWwuY29tPjsgR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+DQpTdWJqZWN0 OiBbUEFUQ0ggdjUgMi8zXSBNZGVQa2c6IGFkZCBTQkktYmFzZWQgU2VyaWFsUG9ydExpYiBmb3Ig UklTQy1WDQoNClRoZXNlIGFyZSBpbXBsZW1lbnRhdGlvbnMgb2YgU2VyaWFsUG9ydExpYiB1c2lu ZyBTQkkgY29uc29sZSBzZXJ2aWNlcy4NCi0gU2VjUGVpUmlzY1ZTZXJpYWxQb3J0TGliU2JpIGlz IGFwcHJvcHJpYXRlIGZvciBTRUMvUEVJIChYSVApIGVudmlyb25tZW50cw0KLSBQcmVQaUR4ZVJp c2NWU2VyaWFsUG9ydExpYlNiaSBpcyBhcHByb3ByaWF0ZSBmb3IgUHJlUEkvRFhFIGVudmlyb25t ZW50cw0KDQpUZXN0ZWQgd2l0aDoNCi0gUWVtdSBSaXNjVlZpcnQgKG5vbi1EQkNOIGNhc2UsIGJh Y2tlZCBieSBVQVJUKQ0KLSBUaW55RU1VICsgUmlzY1ZWaXJ0IChub24tREJDTiBjYXNlLCBIVElG KQ0KLSBUaW55RU1VICsgUmlzY1ZWaXJ0IChEQkNOIGNhc2UsIEhUSUYpDQoNCkNjOiBEYW5pZWwg U2NoYWVmZXIgPGdpdEBkYW5pZWxzY2hhZWZlci5tZT4NCkNjOiBTdW5pbCBWIEwgPHN1bmlsdmxA dmVudGFuYW1pY3JvLmNvbT4NCkNjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT4NCkNjOiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQpD YzogWmhpZ3VhbmcgTGl1IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KQWNrZWQtYnk6IEdlcmQg SG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPg0KU2lnbmVkLW9mZi1ieTogQW5kcmVpIFdhcmtl bnRpbiA8YW5kcmVpLndhcmtlbnRpbkBpbnRlbC5jb20+DQotLS0NCiBNZGVQa2cvTWRlUGtnLmRz YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKw0KIE1kZVBrZy9MaWJyYXJ5L1ByZVBpRHhlUmlzY1ZTZXJpYWxQb3J0TGli U2JpL1ByZVBpRHhlUmlzY1ZTZXJpYWxQb3J0TGliU2JpLmluZiB8ICAzNiArKysNCiBNZGVQa2cv TGlicmFyeS9TZWNQZWlSaXNjVlNlcmlhbFBvcnRMaWJTYmkvU2VjUGVpUmlzY1ZTZXJpYWxQb3J0 TGliU2JpLmluZiAgICAgfCAgMzkgKysrDQogTWRlUGtnL0xpYnJhcnkvUHJlUGlEeGVSaXNjVlNl cmlhbFBvcnRMaWJTYmkvUHJlUGlEeGVSaXNjVlNlcmlhbFBvcnRMaWJTYmkuYyAgIHwgMjg4ICsr KysrKysrKysrKysrKysrKysrDQogTWRlUGtnL0xpYnJhcnkvU2VjUGVpUmlzY1ZTZXJpYWxQb3J0 TGliU2JpL1NlY1BlaVJpc2NWU2VyaWFsUG9ydExpYlNiaS5jICAgICAgIHwgMjMzICsrKysrKysr KysrKysrKysNCiBNZGVQa2cvTGlicmFyeS9QcmVQaUR4ZVJpc2NWU2VyaWFsUG9ydExpYlNiaS9Q cmVQaUR4ZVJpc2NWU2VyaWFsUG9ydExpYlNiaS51bmkgfCAgMTYgKysNCiBNZGVQa2cvTGlicmFy eS9TZWNQZWlSaXNjVlNlcmlhbFBvcnRMaWJTYmkvU2VjUGVpUmlzY1ZTZXJpYWxQb3J0TGliU2Jp LnVuaSAgICAgfCAgMTYgKysNCiA3IGZpbGVzIGNoYW5nZWQsIDYzMCBpbnNlcnRpb25zKCspDQoN CmRpZmYgLS1naXQgYS9NZGVQa2cvTWRlUGtnLmRzYyBiL01kZVBrZy9NZGVQa2cuZHNjIGluZGV4 IDBhYzc2MThiNDYyMy4uZmIzMTM0OTA0MmZiIDEwMDY0NA0KLS0tIGEvTWRlUGtnL01kZVBrZy5k c2MNCisrKyBiL01kZVBrZy9NZGVQa2cuZHNjDQpAQCAtMTkyLDUgKzE5Miw3IEBAIFtDb21wb25l bnRzLkFSTSwgQ29tcG9uZW50cy5BQVJDSDY0XQ0KIA0KIFtDb21wb25lbnRzLlJJU0NWNjRdDQog ICBNZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGliLmluZg0KKyAg DQorIE1kZVBrZy9MaWJyYXJ5L1NlY1BlaVJpc2NWU2VyaWFsUG9ydExpYlNiaS9TZWNQZWlSaXNj VlNlcmlhbFBvcnRMaWJTYmkNCisgLmluZiAgDQorIE1kZVBrZy9MaWJyYXJ5L1ByZVBpRHhlUmlz Y1ZTZXJpYWxQb3J0TGliU2JpL1ByZVBpRHhlUmlzY1ZTZXJpYWxQb3J0TGkNCisgYlNiaS5pbmYN CiANCiBbQnVpbGRPcHRpb25zXQ0KZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1ByZVBpRHhl UmlzY1ZTZXJpYWxQb3J0TGliU2JpL1ByZVBpRHhlUmlzY1ZTZXJpYWxQb3J0TGliU2JpLmluZiBi L01kZVBrZy9MaWJyYXJ5L1ByZVBpRHhlUmlzY1ZTZXJpYWxQb3J0TGliU2JpL1ByZVBpRHhlUmlz Y1ZTZXJpYWxQb3J0TGliU2JpLmluZg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwMC4uMWQ4NTQ0NzU2YmI5DQotLS0gL2Rldi9udWxsDQorKysgYi9NZGVQa2cvTGlicmFy eS9QcmVQaUR4ZVJpc2NWU2VyaWFsUG9ydExpYlNiaS9QcmVQaUR4ZVJpc2NWU2VyaWFsUG8NCisr KyBydExpYlNiaS5pbmYNCkBAIC0wLDAgKzEsMzYgQEANCisjIyBAZmlsZQ0KKyMgIFNlcmlhbCBQ b3J0IExpYnJhcnkgYmFja2VkIGJ5IFNCSSBjb25zb2xlLg0KKyMNCisjICBNZWFudCBmb3IgUHJl UGkgYW5kIERYRSBlbnZpcm9ubWVudHMgKHdoZXJlIGdsb2JhbHMgYXJlIGFsbG93ZWQpLiANCitT ZWUgIyAgU2VjUGVpU2VyaWFsUG9ydExpYlJpc2NWU2JpIGZvciBhIHJlZHVjZWQgdmFyaWFudCBh cHByb3ByaWF0ZSANCitmb3IgU0VDICMgIGFuZCBQRUkgKFhJUCkgZW52aXJvbm1lbnRzLg0KKyMN CisjICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4gIyAjICANCitTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudCAjICMgIyMNCisNCitbRGVmaW5lc10NCisgIElORl9WRVJTSU9OICAgICAgICAgICAg ICAgICAgICA9IDB4MDAwMTAwMUINCisgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9 IFByZVBpRHhlUmlzY1ZTZXJpYWxQb3J0TGliU2JpDQorICBNT0RVTEVfVU5JX0ZJTEUgICAgICAg ICAgICAgICAgPSBQcmVQaUR4ZVJpc2NWU2VyaWFsUG9ydExpYlNiaS51bmkNCisgIEZJTEVfR1VJ RCAgICAgICAgICAgICAgICAgICAgICA9IDg3MmFmNzQzLWFiNTYtNDViNC1hMDY1LTYwMjU2N2Y0 ODIwYw0KKyAgTU9EVUxFX1RZUEUgICAgICAgICAgICAgICAgICAgID0gQkFTRQ0KKyAgVkVSU0lP Tl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQorICBMSUJSQVJZX0NMQVNTICAgICAgICAg ICAgICAgICAgPSBTZXJpYWxQb3J0TGliIHwgU0VDIERYRV9DT1JFIERYRV9EUklWRVIgRFhFX1JV TlRJTUVfRFJJVkVSIFVFRklfRFJJVkVSIFVFRklfQVBQTElDQVRJT04NCisNCisNCisjDQorIyAg VkFMSURfQVJDSElURUNUVVJFUyAgICAgICAgICAgPSBSSVNDVjY0DQorIw0KKw0KK1tTb3VyY2Vz XQ0KKyAgUHJlUGlEeGVSaXNjVlNlcmlhbFBvcnRMaWJTYmkuYw0KKw0KK1tQYWNrYWdlc10NCisg IE1kZVBrZy9NZGVQa2cuZGVjDQorDQorW0xpYnJhcnlDbGFzc2VzXQ0KKyAgUmlzY1ZTYmlMaWIN CmRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9TZWNQZWlSaXNjVlNlcmlhbFBvcnRMaWJTYmkv U2VjUGVpUmlzY1ZTZXJpYWxQb3J0TGliU2JpLmluZiBiL01kZVBrZy9MaWJyYXJ5L1NlY1BlaVJp c2NWU2VyaWFsUG9ydExpYlNiaS9TZWNQZWlSaXNjVlNlcmlhbFBvcnRMaWJTYmkuaW5mDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi43YmM3Y2Q0N2MxMWMNCi0tLSAv ZGV2L251bGwNCisrKyBiL01kZVBrZy9MaWJyYXJ5L1NlY1BlaVJpc2NWU2VyaWFsUG9ydExpYlNi aS9TZWNQZWlSaXNjVlNlcmlhbFBvcnRMaQ0KKysrIGJTYmkuaW5mDQpAQCAtMCwwICsxLDM5IEBA DQorIyMgQGZpbGUNCisjICBTZXJpYWwgUG9ydCBMaWJyYXJ5IGJhY2tlZCBieSBTQkkgY29uc29s ZS4NCisjDQorIyAgTWVhbnQgZm9yIFNFQyBhbmQgUEVJIChYSVApIGVudmlyb25tZW50cy4NCisj DQorIyAgRHVlIHRvIGxpbWl0YXRpb25zIG9mIFNCSSBjb25zb2xlIGludGVyZmFjZSBhbmQgWElQ IGVudmlyb25tZW50cyAjICANCisob24gdXNlIG9mIGdsb2JhbHMpLCB0aGlzIGxpYnJhcnkgaW5z dGFuY2UgZG9lcyBub3QgaW1wbGVtZW50IHJlYWRpbmcgIyAgDQorYW5kIHBvbGxpbmcgdGhlIHNl cmlhbCBwb3J0LiBTZWUgUHJlUGlEeGVTZXJpYWxQb3J0TGliUmlzY1ZTYmkgZm9yICMgIA0KK3Ro ZSBmdWxsLWZlYXR1cmVkIHZhcmlhbnQgbWVhbnQgZm9yIFByZVBpIGFuZCBEWEUgZW52aXJvbm1l bnRzLg0KKyMNCisjICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4gIyAjICANCitTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudCAjICMgIyMNCisNCitbRGVmaW5lc10NCisgIElORl9WRVJTSU9OICAg ICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMUINCisgIEJBU0VfTkFNRSAgICAgICAgICAgICAg ICAgICAgICA9IFNlY1BlaVJpc2NWU2VyaWFsUG9ydExpYlNiaQ0KKyAgTU9EVUxFX1VOSV9GSUxF ICAgICAgICAgICAgICAgID0gU2VjUGVpUmlzY1ZTZXJpYWxQb3J0TGliU2JpLnVuaQ0KKyAgRklM RV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gNjM5ZmFkMzgtNGJmZC00ZWI5LTlmMDktZTk3 Yzc5NDdkNDgwDQorICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNFDQorICBW RVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCisgIExJQlJBUllfQ0xBU1MgICAg ICAgICAgICAgICAgICA9IFNlcmlhbFBvcnRMaWIgfCBTRUMgUEVJX0NPUkUgUEVJTQ0KKw0KKw0K KyMNCisjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IFJJU0NWNjQNCisjDQorDQor W1NvdXJjZXNdDQorICBTZWNQZWlSaXNjVlNlcmlhbFBvcnRMaWJTYmkuYw0KKw0KK1tQYWNrYWdl c10NCisgIE1kZVBrZy9NZGVQa2cuZGVjDQorDQorW0xpYnJhcnlDbGFzc2VzXQ0KKyAgUmlzY1ZT YmlMaWINCmRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9QcmVQaUR4ZVJpc2NWU2VyaWFsUG9y dExpYlNiaS9QcmVQaUR4ZVJpc2NWU2VyaWFsUG9ydExpYlNiaS5jIGIvTWRlUGtnL0xpYnJhcnkv UHJlUGlEeGVSaXNjVlNlcmlhbFBvcnRMaWJTYmkvUHJlUGlEeGVSaXNjVlNlcmlhbFBvcnRMaWJT YmkuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uMDU4YTY1NzNl ZjJkDQotLS0gL2Rldi9udWxsDQorKysgYi9NZGVQa2cvTGlicmFyeS9QcmVQaUR4ZVJpc2NWU2Vy aWFsUG9ydExpYlNiaS9QcmVQaUR4ZVJpc2NWU2VyaWFsUG8NCisrKyBydExpYlNiaS5jDQpAQCAt MCwwICsxLDI4OCBAQA0KKy8qKiBAZmlsZQ0KKyAgU2VyaWFsIFBvcnQgTGlicmFyeSBiYWNrZWQg YnkgU0JJIGNvbnNvbGUuDQorDQorICBNZWFudCBmb3IgUHJlUGkgYW5kIERYRSBlbnZpcm9ubWVu dHMgKHdoZXJlIGdsb2JhbHMgYXJlIGFsbG93ZWQpLiBTZWUgIA0KKyBTZWNQZWlTZXJpYWxQb3J0 TGliUmlzY1ZTYmkgZm9yIGEgcmVkdWNlZCB2YXJpYW50IGFwcHJvcHJpYXRlIGZvciBTRUMgIA0K KyBhbmQgUEVJIChYSVApIGVudmlyb25tZW50cy4NCisNCisgIENvcHlyaWdodCAoYykgMjAyMywg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KKyAgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCisNCisqKi8NCisNCisjaW5jbHVk ZSA8QmFzZS5oPg0KKyNpbmNsdWRlIDxMaWJyYXJ5L1NlcmlhbFBvcnRMaWIuaD4NCisjaW5jbHVk ZSA8TGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIuaD4NCisNCitTVEFUSUMgQk9PTEVBTiAgbUhhdmVE YmNuICAgICAgICAgID0gRkFMU0U7DQorU1RBVElDIEJPT0xFQU4gIG1IYXZlTGVnYWN5UHV0Y2hh ciA9IEZBTFNFOyBTVEFUSUMgQk9PTEVBTiAgDQorbUhhdmVMZWdhY3lHZXRjaGFyID0gRkFMU0U7 DQorU1RBVElDIElOVDY0ICAgIG1MYXN0R2V0Q2hhciAgICAgICA9IC0xOw0KKw0KKy8qKg0KKyAg SW5pdGlhbGl6ZSB0aGUgc2VyaWFsIGRldmljZSBoYXJkd2FyZS4NCisNCisgIElmIG5vIGluaXRp YWxpemF0aW9uIGlzIHJlcXVpcmVkLCB0aGVuIHJldHVybiBSRVRVUk5fU1VDQ0VTUy4NCisgIElm IHRoZSBzZXJpYWwgZGV2aWNlIHdhcyBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQsIHRoZW4gcmV0 dXJuIFJFVFVSTl9TVUNDRVNTLg0KKyAgSWYgdGhlIHNlcmlhbCBkZXZpY2UgY291bGQgbm90IGJl IGluaXRpYWxpemVkLCB0aGVuIHJldHVybiBSRVRVUk5fREVWSUNFX0VSUk9SLg0KKw0KKyAgQHJl dHZhbCBSRVRVUk5fU1VDQ0VTUyAgICAgICAgVGhlIHNlcmlhbCBkZXZpY2Ugd2FzIGluaXRpYWxp emVkLg0KKyAgQHJldHZhbCBSRVRVUk5fREVWSUNFX0VSUk9SICAgVGhlIHNlcmlhbCBkZXZpY2Ug Y291bGQgbm90IGJlIGluaXRpYWxpemVkLg0KKw0KKyoqLw0KK1JFVFVSTl9TVEFUVVMNCitFRklB UEkNCitTZXJpYWxQb3J0SW5pdGlhbGl6ZSAoDQorICBWT0lEDQorICApDQorew0KKyAgU0JJX1JF VCAgUmV0Ow0KKw0KKyAgUmV0ID0gU2JpQ2FsbCAoU0JJX0VYVF9CQVNFLCBTQklfRVhUX0JBU0Vf UFJPQkVfRVhULCAxLCANCisgU0JJX0VYVF9EQkNOKTsgIGlmICgoVHJhbnNsYXRlRXJyb3IgKFJl dC5FcnJvcikgPT0gRUZJX1NVQ0NFU1MpICYmDQorICAgICAgKFJldC5WYWx1ZSAhPSAwKSkNCisg IHsNCisgICAgbUhhdmVEYmNuID0gVFJVRTsNCisgIH0gZWxzZSB7DQorICAgIFJldCA9IFNiaUNh bGwgKFNCSV9FWFRfQkFTRSwgU0JJX0VYVF9CQVNFX1BST0JFX0VYVCwgMSwgU0JJX0VYVF8wXzFf Q09OU09MRV9QVVRDSEFSKTsNCisgICAgaWYgKChUcmFuc2xhdGVFcnJvciAoUmV0LkVycm9yKSA9 PSBFRklfU1VDQ0VTUykgJiYNCisgICAgICAgIChSZXQuVmFsdWUgIT0gMCkpDQorICAgIHsNCisg ICAgICBtSGF2ZUxlZ2FjeVB1dGNoYXIgPSBUUlVFOw0KKyAgICB9DQorDQorICAgIFJldCA9IFNi aUNhbGwgKFNCSV9FWFRfQkFTRSwgU0JJX0VYVF9CQVNFX1BST0JFX0VYVCwgMSwgU0JJX0VYVF8w XzFfQ09OU09MRV9HRVRDSEFSKTsNCisgICAgaWYgKChUcmFuc2xhdGVFcnJvciAoUmV0LkVycm9y KSA9PSBFRklfU1VDQ0VTUykgJiYNCisgICAgICAgIChSZXQuVmFsdWUgIT0gMCkpDQorICAgIHsN CisgICAgICBtSGF2ZUxlZ2FjeUdldGNoYXIgPSBUUlVFOw0KKyAgICB9DQorICB9DQorDQorICBy ZXR1cm4gUkVUVVJOX1NVQ0NFU1M7DQorfQ0KKw0KKy8qKg0KKyAgV3JpdGUgZGF0YSBmcm9tIGJ1 ZmZlciB0byBzZXJpYWwgZGV2aWNlLg0KKw0KKyAgV3JpdGVzIE51bWJlck9mQnl0ZXMgZGF0YSBi eXRlcyBmcm9tIEJ1ZmZlciB0byB0aGUgc2VyaWFsIGRldmljZS4NCisgIFRoZSBudW1iZXIgb2Yg Ynl0ZXMgYWN0dWFsbHkgd3JpdHRlbiB0byB0aGUgc2VyaWFsIGRldmljZSBpcyByZXR1cm5lZC4N CisgIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgbGVzcyB0aGFuIE51bWJlck9mQnl0ZXMsIHRoZW4g dGhlIHdyaXRlIG9wZXJhdGlvbiBmYWlsZWQuDQorICBJZiBCdWZmZXIgaXMgTlVMTCwgdGhlbiBB U1NFUlQoKS4NCisgIElmIE51bWJlck9mQnl0ZXMgaXMgemVybywgdGhlbiByZXR1cm4gMC4NCisN CisgIEBwYXJhbSAgQnVmZmVyICAgICAgICAgICBUaGUgcG9pbnRlciB0byB0aGUgZGF0YSBidWZm ZXIgdG8gYmUgd3JpdHRlbi4NCisgIEBwYXJhbSAgTnVtYmVyT2ZCeXRlcyAgICBUaGUgbnVtYmVy IG9mIGJ5dGVzIHRvIHdyaXR0ZW4gdG8gdGhlIHNlcmlhbCBkZXZpY2UuDQorDQorICBAcmV0dmFs IDAgICAgICAgICAgICAgICAgTnVtYmVyT2ZCeXRlcyBpcyAwLg0KKyAgQHJldHZhbCA+MCAgICAg ICAgICAgICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byB0aGUgc2VyaWFsIGRldmlj ZS4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIGxlc3MgdGhh biBOdW1iZXJPZkJ5dGVzLCB0aGVuIHRoZSB3cml0ZSBvcGVyYXRpb24gZmFpbGVkLg0KKw0KKyoq Lw0KK1VJTlRODQorRUZJQVBJDQorU2VyaWFsUG9ydFdyaXRlICgNCisgIElOIFVJTlQ4ICAqQnVm ZmVyLA0KKyAgSU4gVUlOVE4gIE51bWJlck9mQnl0ZXMNCisgICkNCit7DQorICBVSU5UTiAgSW5k ZXg7DQorDQorICBpZiAobUhhdmVEYmNuKSB7DQorICAgIFNCSV9SRVQgIFJldDsNCisgICAgUmV0 ID0gU2JpQ2FsbCAoDQorICAgICAgICAgICAgU0JJX0VYVF9EQkNOLA0KKyAgICAgICAgICAgIFNC SV9FWFRfREJDTl9XUklURSwNCisgICAgICAgICAgICAzLA0KKyAgICAgICAgICAgIE51bWJlck9m Qnl0ZXMsDQorICAgICAgICAgICAgKChVSU5UTilCdWZmZXIpLA0KKyAgICAgICAgICAgIDANCisg ICAgICAgICAgICApOw0KKyAgICBpZiAoVHJhbnNsYXRlRXJyb3IgKFJldC5FcnJvcikgIT0gRUZJ X1NVQ0NFU1MpIHsNCisgICAgICByZXR1cm4gMDsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gUmV0 LlZhbHVlOw0KKyAgfSBlbHNlIGlmIChtSGF2ZUxlZ2FjeVB1dGNoYXIpIHsNCisgICAgZm9yIChJ bmRleCA9IDA7IEluZGV4IDwgTnVtYmVyT2ZCeXRlczsgSW5kZXgrKykgew0KKyAgICAgIFNiaUNh bGwgKFNCSV9FWFRfMF8xX0NPTlNPTEVfUFVUQ0hBUiwgMCwgMSwgQnVmZmVyW0luZGV4XSk7DQor ICAgIH0NCisNCisgICAgcmV0dXJuIEluZGV4Ow0KKyAgfQ0KKw0KKyAgLyoNCisgICAqIE5laXRo ZXIgREJDTiBvciBsZWdhY3kgZXh0ZW5zaW9uIHdlcmUgcHJlc2VudC4NCisgICAqLw0KKyAgcmV0 dXJuIE51bWJlck9mQnl0ZXM7DQorfQ0KKw0KKy8qKg0KKyAgUmVhZCBkYXRhIGZyb20gc2VyaWFs IGRldmljZSBhbmQgc2F2ZSB0aGUgZGF0YXMgaW4gYnVmZmVyLg0KKw0KKyAgUmVhZHMgTnVtYmVy T2ZCeXRlcyBkYXRhIGJ5dGVzIGZyb20gYSBzZXJpYWwgZGV2aWNlIGludG8gdGhlIGJ1ZmZlciAg DQorIHNwZWNpZmllZCBieSBCdWZmZXIuIFRoZSBudW1iZXIgb2YgYnl0ZXMgYWN0dWFsbHkgcmVh ZCBpcyByZXR1cm5lZC4NCisgIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgbGVzcyB0aGFuIE51bWJl ck9mQnl0ZXMsIHRoZW4gdGhlIHJlc3Qgb3BlcmF0aW9uIGZhaWxlZC4NCisgIElmIEJ1ZmZlciBp cyBOVUxMLCB0aGVuIEFTU0VSVCgpLg0KKyAgSWYgTnVtYmVyT2ZCeXRlcyBpcyB6ZXJvLCB0aGVu IHJldHVybiAwLg0KKw0KKyAgQHBhcmFtICBCdWZmZXIgICAgICAgICAgIFRoZSBwb2ludGVyIHRv IHRoZSBkYXRhIGJ1ZmZlciB0byBzdG9yZSB0aGUgZGF0YSByZWFkIGZyb20gdGhlIHNlcmlhbCBk ZXZpY2UuDQorICBAcGFyYW0gIE51bWJlck9mQnl0ZXMgICAgVGhlIG51bWJlciBvZiBieXRlcyB3 aGljaCB3aWxsIGJlIHJlYWQuDQorDQorICBAcmV0dmFsIDAgICAgICAgICAgICAgICAgUmVhZCBk YXRhIGZhaWxlZDsgTm8gZGF0YSBpcyB0byBiZSByZWFkLg0KKyAgQHJldHZhbCA+MCAgICAgICAg ICAgICAgIFRoZSBhY3R1YWwgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgZnJvbSBzZXJpYWwgZGV2aWNl Lg0KKw0KKyoqLw0KK1VJTlRODQorRUZJQVBJDQorU2VyaWFsUG9ydFJlYWQgKA0KKyAgT1VUIFVJ TlQ4ICAqQnVmZmVyLA0KKyAgSU4gIFVJTlROICBOdW1iZXJPZkJ5dGVzDQorICApDQorew0KKyAg VUlOVE4gIEluZGV4Ow0KKw0KKyAgSW5kZXggPSAwOw0KKyAgd2hpbGUgKChJbmRleCA8IE51bWJl ck9mQnl0ZXMpICYmIFNlcmlhbFBvcnRQb2xsICgpKSB7DQorICAgIEJ1ZmZlcltJbmRleCsrXSA9 IChVSU5UOCltTGFzdEdldENoYXI7DQorICAgIG1MYXN0R2V0Q2hhciAgICA9IC0xOw0KKyAgfQ0K Kw0KKyAgcmV0dXJuIEluZGV4Ow0KK30NCisNCisvKioNCisgIFBvbGxzIGEgc2VyaWFsIGRldmlj ZSB0byBzZWUgaWYgdGhlcmUgaXMgYW55IGRhdGEgd2FpdGluZyB0byBiZSByZWFkLg0KKw0KKyAg UG9sbHMgYSBzZXJpYWwgZGV2aWNlIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgZGF0YSB3YWl0aW5n IHRvIGJlIHJlYWQuDQorICBJZiB0aGVyZSBpcyBkYXRhIHdhaXRpbmcgdG8gYmUgcmVhZCBmcm9t IHRoZSBzZXJpYWwgZGV2aWNlLCB0aGVuIFRSVUUgaXMgcmV0dXJuZWQuDQorICBJZiB0aGVyZSBp cyBubyBkYXRhIHdhaXRpbmcgdG8gYmUgcmVhZCBmcm9tIHRoZSBzZXJpYWwgZGV2aWNlLCB0aGVu IEZBTFNFIGlzIHJldHVybmVkLg0KKw0KKyAgQHJldHZhbCBUUlVFICAgICAgICAgICAgIERhdGEg aXMgd2FpdGluZyB0byBiZSByZWFkIGZyb20gdGhlIHNlcmlhbCBkZXZpY2UuDQorICBAcmV0dmFs IEZBTFNFICAgICAgICAgICAgVGhlcmUgaXMgbm8gZGF0YSB3YWl0aW5nIHRvIGJlIHJlYWQgZnJv bSB0aGUgc2VyaWFsIGRldmljZS4NCisNCisqKi8NCitCT09MRUFODQorRUZJQVBJDQorU2VyaWFs UG9ydFBvbGwgKA0KKyAgVk9JRA0KKyAgKQ0KK3sNCisgIC8qDQorICAgKiBDYXJlZnVsLiBPcGVu U0JJIHdpdGggSFRJRiBjb25zb2xlIHdpbGwgcmV0dXJuIC0xIGZvbGxvd2VkIGJ5IC0yDQorICAg KiBpZiB0aGVyZSBpcyBubyBjaGFyYWN0ZXIgcmVjZWl2ZWQuIFNvIGp1c3QgY2hlY2sgZm9yIHZh bHVlcyA+PSAwLg0KKyAgICovDQorDQorICBpZiAobUxhc3RHZXRDaGFyID49IDApIHsNCisgICAg cmV0dXJuIFRSVUU7DQorICB9DQorDQorICBpZiAobUhhdmVEYmNuKSB7DQorICAgIFVJTlQ4ICAg IEJ1ZmZlcjsNCisgICAgU0JJX1JFVCAgUmV0Ow0KKw0KKyAgICBSZXQgPSBTYmlDYWxsICgNCisg ICAgICAgICAgICBTQklfRVhUX0RCQ04sDQorICAgICAgICAgICAgU0JJX0VYVF9EQkNOX1JFQUQs DQorICAgICAgICAgICAgMywNCisgICAgICAgICAgICAxLA0KKyAgICAgICAgICAgICgoVUlOVE4p JkJ1ZmZlciksDQorICAgICAgICAgICAgMA0KKyAgICAgICAgICAgICk7DQorICAgIGlmICgoVHJh bnNsYXRlRXJyb3IgKFJldC5FcnJvcikgPT0gRUZJX1NVQ0NFU1MpICYmDQorICAgICAgICAoUmV0 LlZhbHVlID09IDEpKQ0KKyAgICB7DQorICAgICAgbUxhc3RHZXRDaGFyID0gQnVmZmVyOw0KKyAg ICB9DQorICB9IGVsc2UgaWYgKG1IYXZlTGVnYWN5R2V0Y2hhcikgew0KKyAgICBtTGFzdEdldENo YXIgPSAoSU5UNjQpU2JpQ2FsbCAoU0JJX0VYVF8wXzFfQ09OU09MRV9HRVRDSEFSLCAwLCANCisg MCkuRXJyb3I7ICB9DQorDQorICByZXR1cm4gbUxhc3RHZXRDaGFyID49IDA7DQorfQ0KKw0KKy8q Kg0KKyAgU2V0cyB0aGUgY29udHJvbCBiaXRzIG9uIGEgc2VyaWFsIGRldmljZS4NCisNCisgIEBw YXJhbSBDb250cm9sICAgICAgICAgICAgICAgIFNldHMgdGhlIGJpdHMgb2YgQ29udHJvbCB0aGF0 IGFyZSBzZXR0YWJsZS4NCisNCisgIEByZXR2YWwgUkVUVVJOX1NVQ0NFU1MgICAgICAgIFRoZSBu ZXcgY29udHJvbCBiaXRzIHdlcmUgc2V0IG9uIHRoZSBzZXJpYWwgZGV2aWNlLg0KKyAgQHJldHZh bCBSRVRVUk5fVU5TVVBQT1JURUQgICAgVGhlIHNlcmlhbCBkZXZpY2UgZG9lcyBub3Qgc3VwcG9y dCB0aGlzIG9wZXJhdGlvbi4NCisgIEByZXR2YWwgUkVUVVJOX0RFVklDRV9FUlJPUiAgIFRoZSBz ZXJpYWwgZGV2aWNlIGlzIG5vdCBmdW5jdGlvbmluZyBjb3JyZWN0bHkuDQorDQorKiovDQorUkVU VVJOX1NUQVRVUw0KK0VGSUFQSQ0KK1NlcmlhbFBvcnRTZXRDb250cm9sICgNCisgIElOIFVJTlQz MiAgQ29udHJvbA0KKyAgKQ0KK3sNCisgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsNCit9DQorDQor LyoqDQorICBSZXRyaWV2ZSB0aGUgc3RhdHVzIG9mIHRoZSBjb250cm9sIGJpdHMgb24gYSBzZXJp YWwgZGV2aWNlLg0KKw0KKyAgQHBhcmFtIENvbnRyb2wgICAgICAgICAgICAgICAgQSBwb2ludGVy IHRvIHJldHVybiB0aGUgY3VycmVudCBjb250cm9sIHNpZ25hbHMgZnJvbSB0aGUgc2VyaWFsIGRl dmljZS4NCisNCisgIEByZXR2YWwgUkVUVVJOX1NVQ0NFU1MgICAgICAgIFRoZSBjb250cm9sIGJp dHMgd2VyZSByZWFkIGZyb20gdGhlIHNlcmlhbCBkZXZpY2UuDQorICBAcmV0dmFsIFJFVFVSTl9V TlNVUFBPUlRFRCAgICBUaGUgc2VyaWFsIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3Bl cmF0aW9uLg0KKyAgQHJldHZhbCBSRVRVUk5fREVWSUNFX0VSUk9SICAgVGhlIHNlcmlhbCBkZXZp Y2UgaXMgbm90IGZ1bmN0aW9uaW5nIGNvcnJlY3RseS4NCisNCisqKi8NCitSRVRVUk5fU1RBVFVT DQorRUZJQVBJDQorU2VyaWFsUG9ydEdldENvbnRyb2wgKA0KKyAgT1VUIFVJTlQzMiAgKkNvbnRy b2wNCisgICkNCit7DQorICAqQ29udHJvbCA9IDA7DQorICByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7 DQorfQ0KKw0KKy8qKg0KKyAgU2V0cyB0aGUgYmF1ZCByYXRlLCByZWNlaXZlIEZJRk8gZGVwdGgs IHRyYW5zbWl0L3JlY2VpY2UgdGltZSBvdXQsIA0KK3Bhcml0eSwNCisgIGRhdGEgYml0cywgYW5k IHN0b3AgYml0cyBvbiBhIHNlcmlhbCBkZXZpY2UuDQorDQorICBAcGFyYW0gQmF1ZFJhdGUgICAg ICAgICAgIFRoZSByZXF1ZXN0ZWQgYmF1ZCByYXRlLiBBIEJhdWRSYXRlIHZhbHVlIG9mIDAgd2ls bCB1c2UgdGhlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZSdzIGRlZmF1bHQg aW50ZXJmYWNlIHNwZWVkLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbiBvdXRwdXQs IHRoZSB2YWx1ZSBhY3R1YWxseSBzZXQuDQorICBAcGFyYW0gUmV2ZWl2ZUZpZm9EZXB0aCAgIFRo ZSByZXF1ZXN0ZWQgZGVwdGggb2YgdGhlIEZJRk8gb24gdGhlIHJlY2VpdmUgc2lkZSBvZiB0aGUN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsIGludGVyZmFjZS4gQSBSZWNlaXZl Rmlmb0RlcHRoIHZhbHVlIG9mIDAgd2lsbCB1c2UNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhlIGRldmljZSdzIGRlZmF1bHQgRklGTyBkZXB0aC4NCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT24gb3V0cHV0LCB0aGUgdmFsdWUgYWN0dWFsbHkgc2V0Lg0KKyAgQHBhcmFtIFRp bWVvdXQgICAgICAgICAgICBUaGUgcmVxdWVzdGVkIHRpbWUgb3V0IGZvciBhIHNpbmdsZSBjaGFy YWN0ZXIgaW4gbWljcm9zZWNvbmRzLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlz IHRpbWVvdXQgYXBwbGllcyB0byBib3RoIHRoZSB0cmFuc21pdCBhbmQgcmVjZWl2ZSBzaWRlIG9m IHRoZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UuIEEgVGltZW91dCB2 YWx1ZSBvZiAwIHdpbGwgdXNlIHRoZSBkZXZpY2UncyBkZWZhdWx0IHRpbWUNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb3V0IHZhbHVlLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPbiBvdXRwdXQsIHRoZSB2YWx1ZSBhY3R1YWxseSBzZXQuDQorICBAcGFyYW0gUGFyaXR5ICAg ICAgICAgICAgIFRoZSB0eXBlIG9mIHBhcml0eSB0byB1c2Ugb24gdGhpcyBzZXJpYWwgZGV2aWNl LiBBIFBhcml0eSB2YWx1ZSBvZg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0 UGFyaXR5IHdpbGwgdXNlIHRoZSBkZXZpY2UncyBkZWZhdWx0IHBhcml0eSB2YWx1ZS4NCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT24gb3V0cHV0LCB0aGUgdmFsdWUgYWN0dWFsbHkgc2V0 Lg0KKyAgQHBhcmFtIERhdGFCaXRzICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGRhdGEgYml0cyB0 byB1c2Ugb24gdGhlIHNlcmlhbCBkZXZpY2UuIEEgRGF0YUJpdHMNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmF1bGUgb2YgMCB3aWxsIHVzZSB0aGUgZGV2aWNlJ3MgZGVmYXVsdCBkYXRh IGJpdCBzZXR0aW5nLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbiBvdXRwdXQsIHRo ZSB2YWx1ZSBhY3R1YWxseSBzZXQuDQorICBAcGFyYW0gU3RvcEJpdHMgICAgICAgICAgIFRoZSBu dW1iZXIgb2Ygc3RvcCBiaXRzIHRvIHVzZSBvbiB0aGlzIHNlcmlhbCBkZXZpY2UuIEEgU3RvcEJp dHMNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgb2YgRGVmYXVsdFN0b3BCaXRz IHdpbGwgdXNlIHRoZSBkZXZpY2UncyBkZWZhdWx0IG51bWJlciBvZg0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdG9wIGJpdHMuDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9u IG91dHB1dCwgdGhlIHZhbHVlIGFjdHVhbGx5IHNldC4NCisNCisgIEByZXR2YWwgUkVUVVJOX1NV Q0NFU1MgICAgICAgICAgICBUaGUgbmV3IGF0dHJpYnV0ZXMgd2VyZSBzZXQgb24gdGhlIHNlcmlh bCBkZXZpY2UuDQorICBAcmV0dmFsIFJFVFVSTl9VTlNVUFBPUlRFRCAgICAgICAgVGhlIHNlcmlh bCBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wZXJhdGlvbi4NCisgIEByZXR2YWwgUkVU VVJOX0lOVkFMSURfUEFSQU1FVEVSICBPbmUgb3IgbW9yZSBvZiB0aGUgYXR0cmlidXRlcyBoYXMg YW4gdW5zdXBwb3J0ZWQgdmFsdWUuDQorICBAcmV0dmFsIFJFVFVSTl9ERVZJQ0VfRVJST1IgICAg ICAgVGhlIHNlcmlhbCBkZXZpY2UgaXMgbm90IGZ1bmN0aW9uaW5nIGNvcnJlY3RseS4NCisNCisq Ki8NCitSRVRVUk5fU1RBVFVTDQorRUZJQVBJDQorU2VyaWFsUG9ydFNldEF0dHJpYnV0ZXMgKA0K KyAgSU4gT1VUIFVJTlQ2NCAgICAgICAgICAgICAgKkJhdWRSYXRlLA0KKyAgSU4gT1VUIFVJTlQz MiAgICAgICAgICAgICAgKlJlY2VpdmVGaWZvRGVwdGgsDQorICBJTiBPVVQgVUlOVDMyICAgICAg ICAgICAgICAqVGltZW91dCwNCisgIElOIE9VVCBFRklfUEFSSVRZX1RZUEUgICAgICpQYXJpdHks DQorICBJTiBPVVQgVUlOVDggICAgICAgICAgICAgICAqRGF0YUJpdHMsDQorICBJTiBPVVQgRUZJ X1NUT1BfQklUU19UWVBFICAqU3RvcEJpdHMNCisgICkNCit7DQorICByZXR1cm4gUkVUVVJOX1NV Q0NFU1M7DQorfQ0KZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1NlY1BlaVJpc2NWU2VyaWFs UG9ydExpYlNiaS9TZWNQZWlSaXNjVlNlcmlhbFBvcnRMaWJTYmkuYyBiL01kZVBrZy9MaWJyYXJ5 L1NlY1BlaVJpc2NWU2VyaWFsUG9ydExpYlNiaS9TZWNQZWlSaXNjVlNlcmlhbFBvcnRMaWJTYmku Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uMGFkNTkzMWJlM2Fl DQotLS0gL2Rldi9udWxsDQorKysgYi9NZGVQa2cvTGlicmFyeS9TZWNQZWlSaXNjVlNlcmlhbFBv cnRMaWJTYmkvU2VjUGVpUmlzY1ZTZXJpYWxQb3J0TGkNCisrKyBiU2JpLmMNCkBAIC0wLDAgKzEs MjMzIEBADQorLyoqIEBmaWxlDQorICBTZXJpYWwgUG9ydCBMaWJyYXJ5IGJhY2tlZCBieSBTQkkg Y29uc29sZS4NCisNCisgIE1lYW50IGZvciBTRUMgYW5kIFBFSSAoWElQKSBlbnZpcm9ubWVudHMu DQorDQorICBEdWUgdG8gbGltaXRhdGlvbnMgb2YgU0JJIGNvbnNvbGUgaW50ZXJmYWNlIGFuZCBY SVAgZW52aXJvbm1lbnRzICAob24gDQorIHVzZSBvZiBnbG9iYWxzKSwgdGhpcyBsaWJyYXJ5IGlu c3RhbmNlIGRvZXMgbm90IGltcGxlbWVudCByZWFkaW5nICBhbmQgDQorIHBvbGxpbmcgdGhlIHNl cmlhbCBwb3J0LiBTZWUgUHJlUGlEeGVTZXJpYWxQb3J0TGliUmlzY1ZTYmkgZm9yICB0aGUgDQor IGZ1bGwtZmVhdHVyZWQgdmFyaWFudCBtZWFudCBmb3IgUHJlUGkgYW5kIERYRSBlbnZpcm9ubWVu dHMuDQorDQorICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCisgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQorDQorKiovDQorDQorI2luY2x1ZGUgPEJhc2UuaD4NCisjaW5jbHVkZSA8TGli cmFyeS9TZXJpYWxQb3J0TGliLmg+DQorI2luY2x1ZGUgPExpYnJhcnkvQmFzZVJpc2NWU2JpTGli Lmg+DQorDQorLyoqDQorICBJbml0aWFsaXplIHRoZSBzZXJpYWwgZGV2aWNlIGhhcmR3YXJlLg0K Kw0KKyAgSWYgbm8gaW5pdGlhbGl6YXRpb24gaXMgcmVxdWlyZWQsIHRoZW4gcmV0dXJuIFJFVFVS Tl9TVUNDRVNTLg0KKyAgSWYgdGhlIHNlcmlhbCBkZXZpY2Ugd2FzIHN1Y2Nlc3NmdWxseSBpbml0 aWFsaXplZCwgdGhlbiByZXR1cm4gUkVUVVJOX1NVQ0NFU1MuDQorICBJZiB0aGUgc2VyaWFsIGRl dmljZSBjb3VsZCBub3QgYmUgaW5pdGlhbGl6ZWQsIHRoZW4gcmV0dXJuIFJFVFVSTl9ERVZJQ0Vf RVJST1IuDQorDQorICBAcmV0dmFsIFJFVFVSTl9TVUNDRVNTICAgICAgICBUaGUgc2VyaWFsIGRl dmljZSB3YXMgaW5pdGlhbGl6ZWQuDQorICBAcmV0dmFsIFJFVFVSTl9ERVZJQ0VfRVJST1IgICBU aGUgc2VyaWFsIGRldmljZSBjb3VsZCBub3QgYmUgaW5pdGlhbGl6ZWQuDQorDQorKiovDQorUkVU VVJOX1NUQVRVUw0KK0VGSUFQSQ0KK1NlcmlhbFBvcnRJbml0aWFsaXplICgNCisgIFZPSUQNCisg ICkNCit7DQorICByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7DQorfQ0KKw0KKy8qKg0KKyAgV3JpdGUg ZGF0YSBmcm9tIGJ1ZmZlciB0byBzZXJpYWwgZGV2aWNlLg0KKw0KKyAgV3JpdGVzIE51bWJlck9m Qnl0ZXMgZGF0YSBieXRlcyBmcm9tIEJ1ZmZlciB0byB0aGUgc2VyaWFsIGRldmljZS4NCisgIFRo ZSBudW1iZXIgb2YgYnl0ZXMgYWN0dWFsbHkgd3JpdHRlbiB0byB0aGUgc2VyaWFsIGRldmljZSBp cyByZXR1cm5lZC4NCisgIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgbGVzcyB0aGFuIE51bWJlck9m Qnl0ZXMsIHRoZW4gdGhlIHdyaXRlIG9wZXJhdGlvbiBmYWlsZWQuDQorICBJZiBCdWZmZXIgaXMg TlVMTCwgdGhlbiBBU1NFUlQoKS4NCisgIElmIE51bWJlck9mQnl0ZXMgaXMgemVybywgdGhlbiBy ZXR1cm4gMC4NCisNCisgIEBwYXJhbSAgQnVmZmVyICAgICAgICAgICBUaGUgcG9pbnRlciB0byB0 aGUgZGF0YSBidWZmZXIgdG8gYmUgd3JpdHRlbi4NCisgIEBwYXJhbSAgTnVtYmVyT2ZCeXRlcyAg ICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXR0ZW4gdG8gdGhlIHNlcmlhbCBkZXZpY2UuDQor DQorICBAcmV0dmFsIDAgICAgICAgICAgICAgICAgTnVtYmVyT2ZCeXRlcyBpcyAwLg0KKyAgQHJl dHZhbCA+MCAgICAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byB0aGUg c2VyaWFsIGRldmljZS4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIHZhbHVl IGlzIGxlc3MgdGhhbiBOdW1iZXJPZkJ5dGVzLCB0aGVuIHRoZSB3cml0ZSBvcGVyYXRpb24gZmFp bGVkLg0KKw0KKyoqLw0KK1VJTlRODQorRUZJQVBJDQorU2VyaWFsUG9ydFdyaXRlICgNCisgIElO IFVJTlQ4ICAqQnVmZmVyLA0KKyAgSU4gVUlOVE4gIE51bWJlck9mQnl0ZXMNCisgICkNCit7DQor ICBTQklfUkVUICBSZXQ7DQorICBVSU5UTiAgICBJbmRleDsNCisNCisgIFJldCA9IFNiaUNhbGwg KFNCSV9FWFRfQkFTRSwgU0JJX0VYVF9CQVNFX1BST0JFX0VYVCwgMSwgDQorIFNCSV9FWFRfREJD Tik7ICBpZiAoKFRyYW5zbGF0ZUVycm9yIChSZXQuRXJyb3IpID09IEVGSV9TVUNDRVNTKSAmJg0K KyAgICAgIChSZXQuVmFsdWUgIT0gMCkpDQorICB7DQorICAgIFJldCA9IFNiaUNhbGwgKA0KKyAg ICAgICAgICAgIFNCSV9FWFRfREJDTiwNCisgICAgICAgICAgICBTQklfRVhUX0RCQ05fV1JJVEUs DQorICAgICAgICAgICAgMywNCisgICAgICAgICAgICBOdW1iZXJPZkJ5dGVzLA0KKyAgICAgICAg ICAgICgoVUlOVE4pQnVmZmVyKSwNCisgICAgICAgICAgICAwDQorICAgICAgICAgICAgKTsNCisg ICAgaWYgKFRyYW5zbGF0ZUVycm9yIChSZXQuRXJyb3IpICE9IEVGSV9TVUNDRVNTKSB7DQorICAg ICAgcmV0dXJuIDA7DQorICAgIH0NCisNCisgICAgcmV0dXJuIFJldC5WYWx1ZTsNCisgIH0NCisN CisgIFJldCA9IFNiaUNhbGwgKFNCSV9FWFRfQkFTRSwgU0JJX0VYVF9CQVNFX1BST0JFX0VYVCwg MSwgDQorIFNCSV9FWFRfMF8xX0NPTlNPTEVfUFVUQ0hBUik7ICBpZiAoKFRyYW5zbGF0ZUVycm9y IChSZXQuRXJyb3IpID09IEVGSV9TVUNDRVNTKSAmJg0KKyAgICAgIChSZXQuVmFsdWUgIT0gMCkp DQorICB7DQorICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE51bWJlck9mQnl0ZXM7IEluZGV4 KyspIHsNCisgICAgICBTYmlDYWxsIChTQklfRVhUXzBfMV9DT05TT0xFX1BVVENIQVIsIDAsIDEs IEJ1ZmZlcltJbmRleF0pOw0KKyAgICB9DQorDQorICAgIHJldHVybiBJbmRleDsNCisgIH0NCisN CisgIC8qDQorICAgKiBOZWl0aGVyIERCQ04gb3IgbGVnYWN5IGV4dGVuc2lvbiB3ZXJlIHByZXNl bnQuDQorICAgKi8NCisgIHJldHVybiBOdW1iZXJPZkJ5dGVzOw0KK30NCisNCisvKioNCisgIFJl YWQgZGF0YSBmcm9tIHNlcmlhbCBkZXZpY2UgYW5kIHNhdmUgdGhlIGRhdGFzIGluIGJ1ZmZlci4N CisNCisgIFJlYWRzIE51bWJlck9mQnl0ZXMgZGF0YSBieXRlcyBmcm9tIGEgc2VyaWFsIGRldmlj ZSBpbnRvIHRoZSBidWZmZXIgIA0KKyBzcGVjaWZpZWQgYnkgQnVmZmVyLiBUaGUgbnVtYmVyIG9m IGJ5dGVzIGFjdHVhbGx5IHJlYWQgaXMgcmV0dXJuZWQuDQorICBJZiB0aGUgcmV0dXJuIHZhbHVl IGlzIGxlc3MgdGhhbiBOdW1iZXJPZkJ5dGVzLCB0aGVuIHRoZSByZXN0IG9wZXJhdGlvbiBmYWls ZWQuDQorICBJZiBCdWZmZXIgaXMgTlVMTCwgdGhlbiBBU1NFUlQoKS4NCisgIElmIE51bWJlck9m Qnl0ZXMgaXMgemVybywgdGhlbiByZXR1cm4gMC4NCisNCisgIEBwYXJhbSAgQnVmZmVyICAgICAg ICAgICBUaGUgcG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgdG8gc3RvcmUgdGhlIGRhdGEgcmVh ZCBmcm9tIHRoZSBzZXJpYWwgZGV2aWNlLg0KKyAgQHBhcmFtICBOdW1iZXJPZkJ5dGVzICAgIFRo ZSBudW1iZXIgb2YgYnl0ZXMgd2hpY2ggd2lsbCBiZSByZWFkLg0KKw0KKyAgQHJldHZhbCAwICAg ICAgICAgICAgICAgIFJlYWQgZGF0YSBmYWlsZWQ7IE5vIGRhdGEgaXMgdG8gYmUgcmVhZC4NCisg IEByZXR2YWwgPjAgICAgICAgICAgICAgICBUaGUgYWN0dWFsIG51bWJlciBvZiBieXRlcyByZWFk IGZyb20gc2VyaWFsIGRldmljZS4NCisNCisqKi8NCitVSU5UTg0KK0VGSUFQSQ0KK1NlcmlhbFBv cnRSZWFkICgNCisgIE9VVCBVSU5UOCAgKkJ1ZmZlciwNCisgIElOICBVSU5UTiAgTnVtYmVyT2ZC eXRlcw0KKyAgKQ0KK3sNCisgIHJldHVybiAwOw0KK30NCisNCisvKioNCisgIFBvbGxzIGEgc2Vy aWFsIGRldmljZSB0byBzZWUgaWYgdGhlcmUgaXMgYW55IGRhdGEgd2FpdGluZyB0byBiZSByZWFk Lg0KKw0KKyAgUG9sbHMgYSBzZXJpYWwgZGV2aWNlIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgZGF0 YSB3YWl0aW5nIHRvIGJlIHJlYWQuDQorICBJZiB0aGVyZSBpcyBkYXRhIHdhaXRpbmcgdG8gYmUg cmVhZCBmcm9tIHRoZSBzZXJpYWwgZGV2aWNlLCB0aGVuIFRSVUUgaXMgcmV0dXJuZWQuDQorICBJ ZiB0aGVyZSBpcyBubyBkYXRhIHdhaXRpbmcgdG8gYmUgcmVhZCBmcm9tIHRoZSBzZXJpYWwgZGV2 aWNlLCB0aGVuIEZBTFNFIGlzIHJldHVybmVkLg0KKw0KKyAgQHJldHZhbCBUUlVFICAgICAgICAg ICAgIERhdGEgaXMgd2FpdGluZyB0byBiZSByZWFkIGZyb20gdGhlIHNlcmlhbCBkZXZpY2UuDQor ICBAcmV0dmFsIEZBTFNFICAgICAgICAgICAgVGhlcmUgaXMgbm8gZGF0YSB3YWl0aW5nIHRvIGJl IHJlYWQgZnJvbSB0aGUgc2VyaWFsIGRldmljZS4NCisNCisqKi8NCitCT09MRUFODQorRUZJQVBJ DQorU2VyaWFsUG9ydFBvbGwgKA0KKyAgVk9JRA0KKyAgKQ0KK3sNCisgIHJldHVybiBGQUxTRTsN Cit9DQorDQorLyoqDQorICBTZXRzIHRoZSBjb250cm9sIGJpdHMgb24gYSBzZXJpYWwgZGV2aWNl Lg0KKw0KKyAgQHBhcmFtIENvbnRyb2wgICAgICAgICAgICAgICAgU2V0cyB0aGUgYml0cyBvZiBD b250cm9sIHRoYXQgYXJlIHNldHRhYmxlLg0KKw0KKyAgQHJldHZhbCBSRVRVUk5fU1VDQ0VTUyAg ICAgICAgVGhlIG5ldyBjb250cm9sIGJpdHMgd2VyZSBzZXQgb24gdGhlIHNlcmlhbCBkZXZpY2Uu DQorICBAcmV0dmFsIFJFVFVSTl9VTlNVUFBPUlRFRCAgICBUaGUgc2VyaWFsIGRldmljZSBkb2Vz IG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uLg0KKyAgQHJldHZhbCBSRVRVUk5fREVWSUNFX0VS Uk9SICAgVGhlIHNlcmlhbCBkZXZpY2UgaXMgbm90IGZ1bmN0aW9uaW5nIGNvcnJlY3RseS4NCisN CisqKi8NCitSRVRVUk5fU1RBVFVTDQorRUZJQVBJDQorU2VyaWFsUG9ydFNldENvbnRyb2wgKA0K KyAgSU4gVUlOVDMyICBDb250cm9sDQorICApDQorew0KKyAgcmV0dXJuIFJFVFVSTl9TVUNDRVNT Ow0KK30NCisNCisvKioNCisgIFJldHJpZXZlIHRoZSBzdGF0dXMgb2YgdGhlIGNvbnRyb2wgYml0 cyBvbiBhIHNlcmlhbCBkZXZpY2UuDQorDQorICBAcGFyYW0gQ29udHJvbCAgICAgICAgICAgICAg ICBBIHBvaW50ZXIgdG8gcmV0dXJuIHRoZSBjdXJyZW50IGNvbnRyb2wgc2lnbmFscyBmcm9tIHRo ZSBzZXJpYWwgZGV2aWNlLg0KKw0KKyAgQHJldHZhbCBSRVRVUk5fU1VDQ0VTUyAgICAgICAgVGhl IGNvbnRyb2wgYml0cyB3ZXJlIHJlYWQgZnJvbSB0aGUgc2VyaWFsIGRldmljZS4NCisgIEByZXR2 YWwgUkVUVVJOX1VOU1VQUE9SVEVEICAgIFRoZSBzZXJpYWwgZGV2aWNlIGRvZXMgbm90IHN1cHBv cnQgdGhpcyBvcGVyYXRpb24uDQorICBAcmV0dmFsIFJFVFVSTl9ERVZJQ0VfRVJST1IgICBUaGUg c2VyaWFsIGRldmljZSBpcyBub3QgZnVuY3Rpb25pbmcgY29ycmVjdGx5Lg0KKw0KKyoqLw0KK1JF VFVSTl9TVEFUVVMNCitFRklBUEkNCitTZXJpYWxQb3J0R2V0Q29udHJvbCAoDQorICBPVVQgVUlO VDMyICAqQ29udHJvbA0KKyAgKQ0KK3sNCisgICpDb250cm9sID0gMDsNCisgIHJldHVybiBSRVRV Uk5fU1VDQ0VTUzsNCit9DQorDQorLyoqDQorICBTZXRzIHRoZSBiYXVkIHJhdGUsIHJlY2VpdmUg RklGTyBkZXB0aCwgdHJhbnNtaXQvcmVjZWljZSB0aW1lIG91dCwgDQorcGFyaXR5LA0KKyAgZGF0 YSBiaXRzLCBhbmQgc3RvcCBiaXRzIG9uIGEgc2VyaWFsIGRldmljZS4NCisNCisgIEBwYXJhbSBC YXVkUmF0ZSAgICAgICAgICAgVGhlIHJlcXVlc3RlZCBiYXVkIHJhdGUuIEEgQmF1ZFJhdGUgdmFs dWUgb2YgMCB3aWxsIHVzZSB0aGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNl J3MgZGVmYXVsdCBpbnRlcmZhY2Ugc3BlZWQuDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IE9uIG91dHB1dCwgdGhlIHZhbHVlIGFjdHVhbGx5IHNldC4NCisgIEBwYXJhbSBSZXZlaXZlRmlm b0RlcHRoICAgVGhlIHJlcXVlc3RlZCBkZXB0aCBvZiB0aGUgRklGTyBvbiB0aGUgcmVjZWl2ZSBz aWRlIG9mIHRoZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWwgaW50ZXJmYWNl LiBBIFJlY2VpdmVGaWZvRGVwdGggdmFsdWUgb2YgMCB3aWxsIHVzZQ0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aGUgZGV2aWNlJ3MgZGVmYXVsdCBGSUZPIGRlcHRoLg0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPbiBvdXRwdXQsIHRoZSB2YWx1ZSBhY3R1YWxseSBzZXQuDQor ICBAcGFyYW0gVGltZW91dCAgICAgICAgICAgIFRoZSByZXF1ZXN0ZWQgdGltZSBvdXQgZm9yIGEg c2luZ2xlIGNoYXJhY3RlciBpbiBtaWNyb3NlY29uZHMuDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRoaXMgdGltZW91dCBhcHBsaWVzIHRvIGJvdGggdGhlIHRyYW5zbWl0IGFuZCByZWNl aXZlIHNpZGUgb2YgdGhlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZS4g QSBUaW1lb3V0IHZhbHVlIG9mIDAgd2lsbCB1c2UgdGhlIGRldmljZSdzIGRlZmF1bHQgdGltZQ0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgdmFsdWUuDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9uIG91dHB1dCwgdGhlIHZhbHVlIGFjdHVhbGx5IHNldC4NCisgIEBwYXJh bSBQYXJpdHkgICAgICAgICAgICAgVGhlIHR5cGUgb2YgcGFyaXR5IHRvIHVzZSBvbiB0aGlzIHNl cmlhbCBkZXZpY2UuIEEgUGFyaXR5IHZhbHVlIG9mDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERlZmF1bHRQYXJpdHkgd2lsbCB1c2UgdGhlIGRldmljZSdzIGRlZmF1bHQgcGFyaXR5IHZh bHVlLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbiBvdXRwdXQsIHRoZSB2YWx1ZSBh Y3R1YWxseSBzZXQuDQorICBAcGFyYW0gRGF0YUJpdHMgICAgICAgICAgIFRoZSBudW1iZXIgb2Yg ZGF0YSBiaXRzIHRvIHVzZSBvbiB0aGUgc2VyaWFsIGRldmljZS4gQSBEYXRhQml0cw0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YXVsZSBvZiAwIHdpbGwgdXNlIHRoZSBkZXZpY2UncyBk ZWZhdWx0IGRhdGEgYml0IHNldHRpbmcuDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9u IG91dHB1dCwgdGhlIHZhbHVlIGFjdHVhbGx5IHNldC4NCisgIEBwYXJhbSBTdG9wQml0cyAgICAg ICAgICAgVGhlIG51bWJlciBvZiBzdG9wIGJpdHMgdG8gdXNlIG9uIHRoaXMgc2VyaWFsIGRldmlj ZS4gQSBTdG9wQml0cw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBvZiBEZWZh dWx0U3RvcEJpdHMgd2lsbCB1c2UgdGhlIGRldmljZSdzIGRlZmF1bHQgbnVtYmVyIG9mDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AgYml0cy4NCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT24gb3V0cHV0LCB0aGUgdmFsdWUgYWN0dWFsbHkgc2V0Lg0KKw0KKyAgQHJldHZh bCBSRVRVUk5fU1VDQ0VTUyAgICAgICAgICAgIFRoZSBuZXcgYXR0cmlidXRlcyB3ZXJlIHNldCBv biB0aGUgc2VyaWFsIGRldmljZS4NCisgIEByZXR2YWwgUkVUVVJOX1VOU1VQUE9SVEVEICAgICAg ICBUaGUgc2VyaWFsIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uLg0KKyAg QHJldHZhbCBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVIgIE9uZSBvciBtb3JlIG9mIHRoZSBhdHRy aWJ1dGVzIGhhcyBhbiB1bnN1cHBvcnRlZCB2YWx1ZS4NCisgIEByZXR2YWwgUkVUVVJOX0RFVklD RV9FUlJPUiAgICAgICBUaGUgc2VyaWFsIGRldmljZSBpcyBub3QgZnVuY3Rpb25pbmcgY29ycmVj dGx5Lg0KKw0KKyoqLw0KK1JFVFVSTl9TVEFUVVMNCitFRklBUEkNCitTZXJpYWxQb3J0U2V0QXR0 cmlidXRlcyAoDQorICBJTiBPVVQgVUlOVDY0ICAgICAgICAgICAgICAqQmF1ZFJhdGUsDQorICBJ TiBPVVQgVUlOVDMyICAgICAgICAgICAgICAqUmVjZWl2ZUZpZm9EZXB0aCwNCisgIElOIE9VVCBV SU5UMzIgICAgICAgICAgICAgICpUaW1lb3V0LA0KKyAgSU4gT1VUIEVGSV9QQVJJVFlfVFlQRSAg ICAgKlBhcml0eSwNCisgIElOIE9VVCBVSU5UOCAgICAgICAgICAgICAgICpEYXRhQml0cywNCisg IElOIE9VVCBFRklfU1RPUF9CSVRTX1RZUEUgICpTdG9wQml0cw0KKyAgKQ0KK3sNCisgIHJldHVy biBSRVRVUk5fU1VDQ0VTUzsNCit9DQpkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvUHJlUGlE eGVSaXNjVlNlcmlhbFBvcnRMaWJTYmkvUHJlUGlEeGVSaXNjVlNlcmlhbFBvcnRMaWJTYmkudW5p IGIvTWRlUGtnL0xpYnJhcnkvUHJlUGlEeGVSaXNjVlNlcmlhbFBvcnRMaWJTYmkvUHJlUGlEeGVS aXNjVlNlcmlhbFBvcnRMaWJTYmkudW5pDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAwLi43YjIyY2FhNWEwOTANCi0tLSAvZGV2L251bGwNCisrKyBiL01kZVBrZy9MaWJy YXJ5L1ByZVBpRHhlUmlzY1ZTZXJpYWxQb3J0TGliU2JpL1ByZVBpRHhlUmlzY1ZTZXJpYWxQbw0K KysrIHJ0TGliU2JpLnVuaQ0KQEAgLTAsMCArMSwxNiBAQA0KKy8vIC8qKiBAZmlsZQ0KKy8vIFNl cmlhbCBQb3J0IExpYnJhcnkgYmFja2VkIGJ5IFNCSSBjb25zb2xlLg0KKy8vDQorLy8gU2VyaWFs IFBvcnQgTGlicmFyeSBiYWNrZWQgYnkgU0JJIGNvbnNvbGUuDQorLy8NCisvLyBDb3B5cmlnaHQg KGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gLy8g DQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgLy8gLy8g KiovDQorDQorDQorI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAgICAgICAgICAgICNsYW5n dWFnZSBlbi1VUyAiU2VyaWFsIFBvcnQgTGlicmFyeSBiYWNrZWQgYnkgU0JJIGNvbnNvbGUiDQor DQorI3N0cmluZyBTVFJfTU9EVUxFX0RFU0NSSVBUSU9OICAgICAgICAgICNsYW5ndWFnZSBlbi1V UyAiU2VyaWFsIFBvcnQgTGlicmFyeSBiYWNrZWQgYnkgU0JJIGNvbnNvbGUuIg0KKw0KZGlmZiAt LWdpdCBhL01kZVBrZy9MaWJyYXJ5L1NlY1BlaVJpc2NWU2VyaWFsUG9ydExpYlNiaS9TZWNQZWlS aXNjVlNlcmlhbFBvcnRMaWJTYmkudW5pIGIvTWRlUGtnL0xpYnJhcnkvU2VjUGVpUmlzY1ZTZXJp YWxQb3J0TGliU2JpL1NlY1BlaVJpc2NWU2VyaWFsUG9ydExpYlNiaS51bmkNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjdiMjJjYWE1YTA5MA0KLS0tIC9kZXYvbnVs bA0KKysrIGIvTWRlUGtnL0xpYnJhcnkvU2VjUGVpUmlzY1ZTZXJpYWxQb3J0TGliU2JpL1NlY1Bl aVJpc2NWU2VyaWFsUG9ydExpYlNiaS51bmkNCkBAIC0wLDAgKzEsMTYgQEANCisvLyAvKiogQGZp bGUNCisvLyBTZXJpYWwgUG9ydCBMaWJyYXJ5IGJhY2tlZCBieSBTQkkgY29uc29sZS4NCisvLw0K Ky8vIFNlcmlhbCBQb3J0IExpYnJhcnkgYmFja2VkIGJ5IFNCSSBjb25zb2xlLg0KKy8vDQorLy8g Q29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQorLy8NCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KKy8vDQorLy8gKiovDQorDQorDQorI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAg ICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiU2VyaWFsIFBvcnQgTGlicmFyeSBiYWNrZWQgYnkg U0JJIGNvbnNvbGUiDQorDQorI3N0cmluZyBTVFJfTU9EVUxFX0RFU0NSSVBUSU9OICAgICAgICAg ICNsYW5ndWFnZSBlbi1VUyAiU2VyaWFsIFBvcnQgTGlicmFyeSBiYWNrZWQgYnkgU0JJIGNvbnNv bGUuIg0KKw0KLS0gDQoyLjI1LjENCg0K