From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.8679.1602827697568876027 for ; Thu, 15 Oct 2020 22:54:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=VkFaosD8; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: jiewen.yao@intel.com) IronPort-SDR: OfeWq+lo0MnBdclsft1Gmj84pzaMOXo+TzEv+ObCtDmP35VMBTRtYd4ZnuSo2GPBCfzOna7ht+ Ak0lpt5AqYOg== X-IronPort-AV: E=McAfee;i="6000,8403,9775"; a="230728933" X-IronPort-AV: E=Sophos;i="5.77,381,1596524400"; d="scan'208";a="230728933" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Oct 2020 22:54:56 -0700 IronPort-SDR: JdPUqhZEncgVYyqVb+uUVlQGgrUZtktdLZAxXfIvw4fm4roeMnexxEtulrnaFW9yQvuqIzz9Ng 3aIjm6+nI1KQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,381,1596524400"; d="scan'208";a="357261322" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by FMSMGA003.fm.intel.com with ESMTP; 15 Oct 2020 22:54:56 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) 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.1713.5; Thu, 15 Oct 2020 22:54:56 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.1713.5 via Frontend Transport; Thu, 15 Oct 2020 22:54:56 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.172) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 15 Oct 2020 22:54:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BJ8nEiCvj/bg32X5osv7hItOehTC3W2B+jql4SzkKophjSTmnK3mq/T5lZgwxmYarzX2LM0BzRVRzSEXYRooDGhV5VaIhNGszpoMQ2j9M0wvpKlc886obTk9yH5BxwPLk5lgv/GmloAJ9wxpJfIG6iI9CgXf2duLJog1WV7Zlq4L0wpVJgunCY1WdI6o3hOw52LPN9HokHZXZQK5vDrbFck0fAyQL5+kHgGzCq/53MCiaOPKMN0rJohWNbkJD0zYKJ+JkOStTsVrMITwtJZMYTDGHwbpSx/X0JUA4ZQyVijPKPhJGENbZyB63VFweuBqtBaFkCw1lW0K2hND/rX1zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TbfTC+Odx+kU8mo2CfvI9ht4FvAC9QGeC+ZaGz3UsqU=; b=Hy7yuiQaxGLEclEjMb0Lm21EIvq76y99PM2eSS0KsURb0GYiiGMr5c4Lyvp+gVicDgDBF2Us+DARLMctnkpiAPfG/cwpZFKz9GYfmuDP1kfZ9kgrG922BSs6SLj2f6RNydkMwkfmbojeY4LhLItaR/DhFfD/pqP5rV66rkjg1AQ5q5c8r4/xeByG/SZ44LAIxpmzRmTIUOb74Gf0nSznaJhqPIgM8jCK1BpvZrNlPjFaSeX6EBph3zkix7gWJh+GsJA0GD3DpGB3zYCkdwxY9e+AnoS5yrOaRFjt8NgLkC+BxsR/GXscBRmc8qEPqJtbGsUDEBTvinPZ/zmZCL+ndA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TbfTC+Odx+kU8mo2CfvI9ht4FvAC9QGeC+ZaGz3UsqU=; b=VkFaosD8QQLqISnZCLxhsYlZbD8a92QqAXrqTqhiUYOuXaLyMz5/zQGgZLFe14OozGuKiLPA1UnYkxEdNNhBtjKgYB9MyprBt9xqKAro4It4SjaqJB0A8dBIt9ZrSYhxsvdLaxQ7VgTyBo7AiXK37V5d6oIIys6xUENM4njsfqE= Received: from CY4PR11MB1288.namprd11.prod.outlook.com (2603:10b6:903:23::8) by CY4PR11MB1509.namprd11.prod.outlook.com (2603:10b6:910:11::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 05:54:52 +0000 Received: from CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::8948:caa4:ca1a:23ac]) by CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::8948:caa4:ca1a:23ac%10]) with mapi id 15.20.3477.020; Fri, 16 Oct 2020 05:54:52 +0000 From: "Yao, Jiewen" To: "Lee, Terry" , "devel@edk2.groups.io" , "stefanb@linux.ibm.com" , "lersek@redhat.com" , "Gao, Zhichao" CC: "Wang, Jian J" , "Zhang, Chao B" , =?utf-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= Subject: Re: [edk2-devel] [PATCH] SecurityPkg/Tcg2PhysicalPresenceLib: Fix incorrect TCG VER comparision Thread-Topic: [edk2-devel] [PATCH] SecurityPkg/Tcg2PhysicalPresenceLib: Fix incorrect TCG VER comparision Thread-Index: AQHWVZtB1WiaOW7xZkeX1UsjG9Ewyaj/BMIAgAD2pQCAAFN4gIAAkmXAgJicICCAAIkyYIAAFRPQgAAAtyCAADOBwIAABksw Date: Fri, 16 Oct 2020 05:54:52 +0000 Message-ID: References: <20200709024647.31672-1-zhichao.gao@intel.com> <280267d2-3d61-04a6-26da-96fd46ad5439@redhat.com> <1620688EE0DC3449.7755@groups.io> <6db37279-ddd0-4adf-6439-403ac90dd1e9@linux.ibm.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: hpe.com; dkim=none (message not signed) header.d=none;hpe.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [101.80.124.211] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 095e48d6-8e8b-461f-6279-08d871980057 x-ms-traffictypediagnostic: CY4PR11MB1509: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2089; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UyHZpBzjPPcRILI3pjufdf7nZKAZA4abx81ESa2f2bfMDDGLeusdiIvVB6MyeyDANvRrZmLBAR/gnB2ChPLiMjJpTwz9vH32dvjBZtieoWhDyvHSarRk45GXykg1ju162Sb4GAiJaW6JCX1ILMD6otbdAFsenTVqcZqmlWd7UfvTcq0cyGF2OrFk+drk2d++bNu52zzd+1dBKvW6MjE+k37wL0sOVhm6wf8WH+SqTgIAnTUBnEPZECruKH8yEQNR1eGoIKOJC+642gWBOvh9zmRDW8FgqUpfxg6ke+PkrrCNbjMWNzA1xe8ea2x32fIHMEcdo46PRRCrLQtXb+CIBu9/aYN1X0i9rG7XvnkjezbD3+knZtlRxSOGrjzH8xcH56iim3K05Itr/ZH7nHglbA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1288.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(396003)(376002)(136003)(366004)(346002)(19627235002)(66556008)(66476007)(5660300002)(76116006)(478600001)(15650500001)(66446008)(66946007)(8676002)(64756008)(7696005)(966005)(83380400001)(8936002)(33656002)(55016002)(86362001)(26005)(52536014)(110136005)(316002)(6506007)(6636002)(2906002)(4326008)(53546011)(296002)(9686003)(71200400001)(186003)(54906003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: 0wjdpQYughIRwom8QPM5ZM+IMMuyB1ibaZNAcy+AYHNGlXDEc8k/892r8XdOTqXCEsV/Pu79ZpiMH0RCOIg3SDGWO8U2l1PcgsDjrhm5QvcUMRvg0WyqzwzLYbSSJbGYeJ6tg+9jKynDv7vqGGh+cdaEWpFhkJ0CwiXuK8i5EkjGykRIrRBW70fhN2Vs57QNPa7Z2HmeqyMISIt5b5wEKSExxYJmL+/aBqkDiG+Rf7GvK4jrKjZoclllVAevnkSNanehZ7mJYYQXrATNwO0YTUpBHgcCC2ZIHfKNgEZxCTPFYy+SFajDU1ClItqQNC2RqrSsh9l5G5EvsU6cMqFMGh9lfPCTqO4c2vGGGvDixJKKLUVrWRsOtvlkDrKdKq7ABj3wjQEvvADs56w5x8unUmd2dZ94K5CxeHjQuFk5WZ84KvSoM3pyfmrC0L8XcPIMpfeMuiApXIYL4kfUh0iG3/D7eA5LdIaKxTaCXCKdqN7TXOmlDcp2rpO8S9L4r1NHVjmat5qwXBZO3H3UcQe/e+9L+9qJi8wzecvRxOTrhgPLCE5IOrOXfqmvVib0rLQ2rJan1nl8lp7Fcx1QTvbl81SCHGiZ4WOvS10HfIqwGDRNMIODX0dNwf+hlTR/W58QcHMBhikoY9JUSa45DEVt3g== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1288.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 095e48d6-8e8b-461f-6279-08d871980057 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2020 05:54:52.5410 (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: wM3BLNtK3+U/KmDm2kCa6rfC94CYU1xpxZpOkHMLDIOuAegOoJAiiEyxgZbtFWT80c+yzdKTGznxLqwj39j+8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1509 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RmFpciBlbm91Z2guDQoNClJldmlld2VkLWJ5OiBKaWV3ZW4gWWFvIDxKaWV3ZW4ueWFvQGludGVs LmNvbT4NCg0KSSB3aWxsIHdhaXQgZm9yIGEgZmV3IG1vcmUgZGF5cyB0byBzZWUgaWYgdGhlcmUg aXMgYW55IGZlZWRiYWNrIGZyb20gTGFzemxvIG9yIE1hcmMtQW5kcmUuDQoNCg0KDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGVlLCBUZXJyeSA8dGVycnkubGVlQGhw ZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciAxNiwgMjAyMCAxOjMyIFBNDQo+IFRvOiBZ YW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsN Cj4gc3RlZmFuYkBsaW51eC5pYm0uY29tOyBsZXJzZWtAcmVkaGF0LmNvbTsgR2FvLCBaaGljaGFv DQo+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53 YW5nQGludGVsLmNvbT47IFpoYW5nLCBDaGFvIEINCj4gPGNoYW8uYi56aGFuZ0BpbnRlbC5jb20+ OyBNYXJjLUFuZHLDqSBMdXJlYXUNCj4gPG1hcmNhbmRyZS5sdXJlYXVAcmVkaGF0LmNvbT4NCj4g U3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIFNlY3VyaXR5UGtnL1RjZzJQaHlzaWNh bFByZXNlbmNlTGliOiBGaXgNCj4gaW5jb3JyZWN0IFRDRyBWRVIgY29tcGFyaXNpb24NCj4gDQo+ IEppZXdlbiwNCj4gDQo+IEkgaGF2ZSBvbmx5IFBQMS4zIGNvbmZpZ3VyYXRpb24uICBUaGUgb25s eSBXSENLIHRlc3QgZmFpbHVyZSBpcyBhIGtub3duDQo+IFdpbmRvd3MgaXNzdWUgdGhhdCBJIGJl bGlldmUgaXMgdW5yZWxhdGVkIHRvIFBQLg0KPiANCj4gVGVycnkNCj4gDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlhbywgSmlld2VuIFttYWlsdG86amlld2VuLnlhb0Bp bnRlbC5jb21dDQo+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDE1LCAyMDIwIDc6MzEgUE0NCj4g VG86IExlZSwgVGVycnkgPHRlcnJ5LmxlZUBocGUuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87 DQo+IHN0ZWZhbmJAbGludXguaWJtLmNvbTsgbGVyc2VrQHJlZGhhdC5jb207IEdhbywgWmhpY2hh bw0KPiA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+OyBaaGFuZywgQ2hhbyBCDQo+IDxjaGFvLmIuemhhbmdAaW50ZWwuY29t PjsgTWFyYy1BbmRyw6kgTHVyZWF1DQo+IDxtYXJjYW5kcmUubHVyZWF1QHJlZGhhdC5jb20+DQo+ IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBTZWN1cml0eVBrZy9UY2cyUGh5c2lj YWxQcmVzZW5jZUxpYjogRml4DQo+IGluY29ycmVjdCBUQ0cgVkVSIGNvbXBhcmlzaW9uDQo+IA0K PiBUaGFua3MgVGVycnkuDQo+IEkgdGVuZCB0byBnaXZlIFItQi4gSSByZWFkIHRoZSBjb2RlIGl0 IHNlZW1zIG5vIGltcGFjdC4NCj4gDQo+IFdvdWxkIHlvdSBwbGVhc2UgY29uZmlybSB5b3UgaGF2 ZSB0ZXN0ZWQgYm90aCBQUDEuMiBhbmQgUFAxLjMNCj4gY29uZmlndXJhdGlvbiwgd2l0aCB3aW5k b3dzIFdIQ0sgdGVzdCBwYXNzPw0KPiANCj4gVGhhbmsgeW91DQo+IFlhbyBKaWV3ZW4NCj4gDQo+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBMZWUsIFRlcnJ5IDx0ZXJy eS5sZWVAaHBlLmNvbT4NCj4gPiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMTYsIDIwMjAgMTA6MjUg QU0NCj4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRr Mi5ncm91cHMuaW87DQo+ID4gc3RlZmFuYkBsaW51eC5pYm0uY29tOyBsZXJzZWtAcmVkaGF0LmNv bTsgR2FvLCBaaGljaGFvDQo+ID4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPiBDYzogV2Fu ZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBaaGFuZywgQ2hhbyBCDQo+ID4gPGNo YW8uYi56aGFuZ0BpbnRlbC5jb20+OyBNYXJjLUFuZHLDqSBMdXJlYXUNCj4gPiA8bWFyY2FuZHJl Lmx1cmVhdUByZWRoYXQuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENI XSBTZWN1cml0eVBrZy9UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYjoNCj4gPiBGaXggaW5jb3JyZWN0 IFRDRyBWRVIgY29tcGFyaXNpb24NCj4gPg0KPiA+IEppZXdlbiwNCj4gPg0KPiA+IEkgdGVzdGVk IHRoaXMgcGF0Y2ggb24gSFBFIFN1cGVyZG9tZSBGbGV4IHdpdGggYm90aCBMaW51eCBhbmQgV2lu ZG93cy4NCj4gPg0KPiA+IFRlcnJ5DQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+IEZyb206IFlhbywgSmlld2VuIFttYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb21dDQo+ ID4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMTUsIDIwMjAgNjowOSBQTQ0KPiA+IFRvOiBMZWUs IFRlcnJ5IDx0ZXJyeS5sZWVAaHBlLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOw0KPiA+IHN0 ZWZhbmJAbGludXguaWJtLmNvbTsgbGVyc2VrQHJlZGhhdC5jb207IEdhbywgWmhpY2hhbw0KPiA+ IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ID4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndh bmdAaW50ZWwuY29tPjsgWmhhbmcsIENoYW8gQg0KPiA+IDxjaGFvLmIuemhhbmdAaW50ZWwuY29t PjsgTWFyYy1BbmRyw6kgTHVyZWF1DQo+ID4gPG1hcmNhbmRyZS5sdXJlYXVAcmVkaGF0LmNvbT4N Cj4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gU2VjdXJpdHlQa2cvVGNnMlBo eXNpY2FsUHJlc2VuY2VMaWI6DQo+ID4gRml4IGluY29ycmVjdCBUQ0cgVkVSIGNvbXBhcmlzaW9u DQo+ID4NCj4gPiBIZWxsbw0KPiA+IElzIHRoZXJlIGFueSBvbmUgY2FuIHNoYXJlIHRoZSBpbmZv cm1hdGlvbiBvbiB3aGF0IHRlc3QgaGFzIGJlZW4gZG9uZQ0KPiA+IGZvciB0aGlzID8NCj4gPg0K PiA+IFRoYW5rIHlvdQ0KPiA+IFlhbyBKaWV3ZW4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IExlZSwgVGVycnkgPHRlcnJ5LmxlZUBocGUuY29tPg0K PiA+ID4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDE2LCAyMDIwIDEyOjU5IEFNDQo+ID4gPiBUbzog ZGV2ZWxAZWRrMi5ncm91cHMuaW87IHN0ZWZhbmJAbGludXguaWJtLmNvbTsgbGVyc2VrQHJlZGhh dC5jb207DQo+ID4gPiBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPiA+ IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEoNCj4g PiA+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBaaGFuZywgQ2hhbyBCIDxjaGFvLmIuemhhbmdA aW50ZWwuY29tPjsNCj4gPiA+IE1hcmMtIEFuZHLDqSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVA cmVkaGF0LmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBTZWN1 cml0eVBrZy9UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYjoNCj4gPiA+IEZpeCBpbmNvcnJlY3QgVENH IFZFUiBjb21wYXJpc2lvbg0KPiA+ID4NCj4gPiA+IENvdWxkIHRoZSBwYWNrYWdlIG1haW50YWlu ZXIgbWVyZ2UgdGhpcyBwYXRjaD8gIFRoYW5rcy4NCj4gPiA+DQo+ID4gPiBUZXJyeQ0KPiA+ID4N Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBTdGVmYW4gQmVy Z2VyIFttYWlsdG86c3RlZmFuYkBsaW51eC5pYm0uY29tXQ0KPiA+ID4gU2VudDogRnJpZGF5LCBK dWx5IDEwLCAyMDIwIDc6MjcgQU0NCj4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgbGVy c2VrQHJlZGhhdC5jb207IEdhbywgWmhpY2hhbw0KPiA+ID4gPHpoaWNoYW8uZ2FvQGludGVsLmNv bT4NCj4gPiA+IENjOiBMZWUsIFRlcnJ5IDx0ZXJyeS5sZWVAaHBlLmNvbT47IFlhbywgSmlld2Vu DQo+ID4gPiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5n QGludGVsLmNvbT47IFpoYW5nLA0KPiA+ID4gQ2hhbyBCIDxjaGFvLmIuemhhbmdAaW50ZWwuY29t PjsgTWFyYy1BbmRyw6kgTHVyZWF1DQo+ID4gPiA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQuY29t Pg0KPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIFNlY3VyaXR5UGtnL1Rj ZzJQaHlzaWNhbFByZXNlbmNlTGliOg0KPiA+ID4gRml4IGluY29ycmVjdCBUQ0cgVkVSIGNvbXBh cmlzaW9uDQo+ID4gPg0KPiA+ID4gT24gNy8xMC8yMCA5OjUzIEFNLCBTdGVmYW4gQmVyZ2VyIHdy b3RlOg0KPiA+ID4gPiBPbiA3LzEwLzIwIDE6NDMgQU0sIExhc3psbyBFcnNlayB3cm90ZToNCj4g PiA+ID4+ICgrTWFyYy1BbmRyw6ksIFN0ZWZhbikNCj4gPiA+ID4+DQo+ID4gPiA+PiBPbiAwNy8x MC8yMCAwMjo0NCwgR2FvLCBaaGljaGFvIHdyb3RlOg0KPiA+ID4gPj4+IFRoaXMgYnVnIGlzIG5v dCBvYmVzZXJ2ZWQgYnkgbWUuIEJ1dCBJIHZpZXcgdGhlIGNvZGUuIFRoZQ0KPiA+ID4gPj4+IGNv bmRpdGlvbiBpcyBpbmNvcnJlY3QgYW5kIGl0IHdvdWxkIGFmZmVjdCB0aGUgVENHIG9wZXJhdGlv bjoNCj4gPiA+ID4+PiAgICAgIGlmICghbUlzVGNnMlBQVmVyTG93ZXJUaGFuXzFfMykgew0KPiA+ ID4gPj4+ICAgICAgICAgIGlmIChPcGVyYXRpb25SZXF1ZXN0IDwNCj4gPiA+ID4+PiBUQ0cyX1BI WVNJQ0FMX1BSRVNFTkNFX1ZFTkRPUl9TUEVDSUZJQ19PUEVSQVRJT04pIHsNCj4gPiA+ID4+PiAg ICAgICAgICAgIC8vDQo+ID4gPiA+Pj4gICAgICAgICAgICAvLyBUQ0cyIFBQMS4zIHNwZWMgZGVm aW5lZCBvcGVyYXRpb25zIHRoYXQgYXJlDQo+ID4gPiA+Pj4gcmVzZXJ2ZWQgb3IgdW4taW1wbGVt ZW50ZWQNCj4gPiA+ID4+PiAgICAgICAgICAgIC8vDQo+ID4gPiA+Pj4gICAgICAgICAgICByZXR1 cm4NCj4gVENHX1BQX0dFVF9VU0VSX0NPTkZJUk1BVElPTl9OT1RfSU1QTEVNRU5URUQ7DQo+ID4g PiA+Pj4gICAgICAgICAgfQ0KPiA+ID4gPj4+ICAgICAgICB9IGVsc2Ugew0KPiA+ID4gPj4+ICAg ICAgICAgLy8NCj4gPiA+ID4+PiAgICAgICAgIC8vIFRDRyBQUCBsb3dlciB0aGFuIDEuMy4gKDEu MCwgMS4xLCAxLjIpDQo+ID4gPiA+Pj4gICAgICAgICAvLw0KPiA+ID4gPj4+ICAgICAgICAgaWYg KE9wZXJhdGlvblJlcXVlc3QgPD0NCj4gPiA+ID4+PiBUQ0cyX1BIWVNJQ0FMX1BSRVNFTkNFX05P X0FDVElPTl9NQVgpIHsNCj4gPiA+ID4+PiAgICAgICAgICAgUmVxdWVzdENvbmZpcm1lZCA9IFRS VUU7DQo+ID4gPiA+Pj4gICAgICAgICB9IGVsc2UgaWYgKE9wZXJhdGlvblJlcXVlc3QgPA0KPiA+ ID4gPj4+IFRDRzJfUEhZU0lDQUxfUFJFU0VOQ0VfVkVORE9SX1NQRUNJRklDX09QRVJBVElPTikg ew0KPiA+ID4gPj4+ICAgICAgICAgICByZXR1cm4NCj4gVENHX1BQX0dFVF9VU0VSX0NPTkZJUk1B VElPTl9OT1RfSU1QTEVNRU5URUQ7DQo+ID4gPiA+Pj4gICAgICAgICB9DQo+ID4gPiA+Pj4gICAg ICAgIH0NCj4gPiA+ID4+Pg0KPiA+ID4gPj4gSSd2ZSBmb3VuZCB0aGF0IGNvZGUgbXlzZWxmLCBi dXQgSSdtIG5vdCBmYW1pbGlhciBlbm91Z2ggd2l0aCBUUE0NCj4gPiA+ID4+IFBQSSBzdHVmZiB0 byB1bmRlcnN0YW5kIGltbWVkaWF0ZWx5IHRoZSBlZmZlY3RzIG9mIHRoaXMgY2hhbmdlLiBJDQo+ ID4gPiA+PiBjYW4gc2VlIHRoYXQgd2hlcmUgd2UgdXNlZCB0byByZXR1cm4NCj4gPiA+ID4+IFRD R19QUF9HRVRfVVNFUl9DT05GSVJNQVRJT05fTk9UX0lNUExFTUVOVEVEIGJlZm9yZSwgd2UNCj4g PiA+IGNvdWxkIG5vdw0KPiA+ID4gPj4gYXNzaWduICJSZXF1ZXN0Q29uZmlybWVkID0gVFJVRSIs IGFuZCB2aWNlIHZlcnNhLCBkdWUgdG8NCj4gPiA+ID4+ICJtSXNUY2cyUFBWZXJMb3dlclRoYW5f MV8zIiBiZWluZyBwb3RlbnRpYWxseSBpbnZlcnRlZC4NCj4gPiA+ID4+DQo+ID4gPiA+PiBCdXQg d2hhdCBkb2VzIHRoYXQgKm1lYW4qPyBXaGF0IGlzIHRoZSBiZWhhdmlvcmFsIGNoYW5nZSB0aGF0 DQo+ID4gPiA+PiBodW1hbiBlbmQtdXNlcnMsIG9yIHNvZnR3YXJlIGNvbXBvbmVudHMsIHdpbGwg ZXhwZXJpZW5jZT8NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIGFib3ZlIGNvZGUgc25p cHBlZCBpcyBsb2NhdGVkIGluIGEgZGVmYXVsdCBicmFuY2ggb2YgYSBsYXJnZQ0KPiA+ID4gPiBz d2l0Y2ggc3RhdGVtZW50IHRoYXQgaGFuZGxlcyBtb3N0IG9mIHRoZSBjb21tb24gUFBJIG9wZXJh dGlvbnMNCj4gPiA+ID4gaW5kZXBlbmRlbnQgb2YgdGhpcyBjaGFuZ2UsIHNvIHRoYXQgYXQgbGVh c3QgaXMgZ29vZC4NCj4gPiA+ID4NCj4gPiA+ID4gSSB3b3VsZCBzYXkgdGhhdCBpbiB0aGUgd29y c3QgY2FzZSBzb21lIG9mIHRoZSBvcGVyYXRpb25zIG5vdA0KPiA+ID4gPiBvdGhlcndpc2UgaGFu ZGxlZCBtYXkgaGF2ZSBtaXN0YWtlbmx5IGZhaWxlZCBvciBjb3VsZCBoYXZlIGJlZW4NCj4gPiA+ ID4gZXhlY3V0ZWQgd2l0aG91dCB1c2VyIGNvbmZpcm1hdGlvbi9pbnRlcmFjdGlvbi4gT24gTGlu dXggYXQgbGVhc3QNCj4gPiA+ID4gUFBJIHJlcXVlc3RzIGNhbiBvbmx5IGJlIHNlbnQgYnkgcm9v dC4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gSSBhbSBydW5uaW5nIGEgc29tZXdoYXQgZGF0ZWQgdmVy c2lvbiBvZiBlZGsyIChGZWRvcmEgMzEpLiBUaGUNCj4gPiA+IG9wZXJhdGlvbnMgYWR2ZXJ0aXNl ZCBhcmU6IDAsNSwxNCwyMSwyMiwyMywyNCwzMyw5Niw5Ny4gQWxsIG9mIHRoZXNlDQo+ID4gPiBh cmUgaW5kaXZpZHVhbGx5IGhhbmRsZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQsIHNvIHRoZXJl IHNob3VsZCBubw0KPiA+ID4gYmUgYW55IGltcGFjdC4gSSBhbSBjdXJyZW50bHkgbm90IGF3YXJl IG9mIHdoZXRoZXIgdGhpcyBsaXN0IGNhbiBiZQ0KPiA+ID4gZXh0ZW5kZWQgd2l0aCBzb21lIHNv cnQgb2YgbW9kdWxlLg0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+Pg0K PiA+ID4gPj4gVGhhbmtzDQo+ID4gPiA+PiBMYXN6bG8NCj4gPiA+ID4+DQo+ID4gPiA+Pj4gU28g SSB0aGluayBpdCBzaG91bGQgYmUgZml4ZWQuDQo+ID4gPiA+Pj4NCj4gPiA+ID4+PiBUaGFua3Ms DQo+ID4gPiA+Pj4gWmhpY2hhbw0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiA+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZl bEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+ID4gPiA+Pj4+IExhc3psbyBFcnNlaw0K PiA+ID4gPj4+PiBTZW50OiBUaHVyc2RheSwgSnVseSA5LCAyMDIwIDY6MDIgUE0NCj4gPiA+ID4+ Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGlu dGVsLmNvbT4NCj4gPiA+ID4+Pj4gQ2M6IFRlcnJ5IExlZSA8dGVycnkubGVlQGhwZS5jb20+OyBZ YW8sIEppZXdlbg0KPiA+ID4gPj4+PiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBXYW5nLCBKaWFu IEogPGppYW4uai53YW5nQGludGVsLmNvbT47DQo+ID4gPiA+Pj4+IFpoYW5nLCBDaGFvIEIgPGNo YW8uYi56aGFuZ0BpbnRlbC5jb20+DQo+ID4gPiA+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZl bF0gW1BBVENIXQ0KPiA+ID4gPj4+PiBTZWN1cml0eVBrZy9UY2cyUGh5c2ljYWxQcmVzZW5jZUxp YjogRml4IGluY29ycmVjdCBUQ0cgVkVSDQo+ID4gPiA+Pj4+IGNvbXBhcmlzaW9uDQo+ID4gPiA+ Pj4+DQo+ID4gPiA+Pj4+IE9uIDA3LzA5LzIwIDA0OjQ2LCBHYW8sIFpoaWNoYW8gd3JvdGU6DQo+ ID4gPiA+Pj4+PiBGcm9tOiBUZXJyeSBMZWUgPHRlcnJ5LmxlZUBocGUuY29tPg0KPiA+ID4gPj4+ Pj4NCj4gPiA+ID4+Pj4+IFJFRjoNCj4gPiA+ID4+Pj4+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9v ZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9fYnVnemlsbGEuDQo+ID4gPiA+Pj4+PiB0aQ0K PiA+ID4gPj4+Pj4gYW4NCj4gPiA+ID4+Pj4+IG9jb3JlLm9yZ19zaG93LTVGYnVnLmNnaS0zRmlk LQ0KPiA+ID4gM0QyNjk3JmQ9RHdJRGFRJmM9QzViOHpSUU8xbWlHbUJlVloyDQo+ID4gPiA+Pj4+ PiBMRldnJnI9SmxjMEp4cjYyMEVaLQ0KPiA+ID4gQ3BweXJqR290bnhIOURyVDBLdndjTGpla1o5 RG93Jm09V1B2M3ZuNVZFZWxSQw0KPiA+ID4gPj4+Pj4gcy0NCj4gPiA+DQo+ID4NCj4gVzhwZk5N MDB3TU9mcEtCZXNYbkFoUmZ5bEY3ZyZzPWlGVVl0aFVDZkhMZWVRQXZyX09oVFBIVGlBOWhadncN Cj4gPiA+IDQ4DQo+ID4gPiA+Pj4+PiBCajhZaFhoUUFJJmU9DQo+ID4gPiA+Pj4+Pg0KPiA+ID4g Pj4+Pj4gVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJDb25zdHJ1Y3RvciBzZXQgdGhlIG1vZHVsZSB2 YXJpYWJsZQ0KPiA+ID4gPj4+Pj4gbUlzVGNnMlBQVmVyTG93ZXJUaGFuXzFfMyB3aXRoIGluY29y cmVjdCBUQ0cgdmVyc2lvbg0KPiA+IGNvbXBhcmlzaW9uLg0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+ Pj4+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiA+ID4+Pj4+IENj OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPj4+Pj4gQ2M6IENo YW8gWmhhbmcgPGNoYW8uYi56aGFuZ0BpbnRlbC5jb20+DQo+ID4gPiA+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBaaGljaGFvIEdhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiA+ID4gPj4+Pj4gLS0t DQo+ID4gPiA+Pj4+PiAuLi4vU21tVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIvU21tVGNnMlBoeXNp Y2FsUHJlc2VuY2VMaWIuYyB8DQo+ID4gPiA+Pj4+PiAyDQo+ID4gKy0NCj4gPiA+ID4+Pj4+ICAg MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gPiA+Pj4+ Pg0KPiA+ID4gPj4+Pj4gZGlmZiAtLWdpdA0KPiA+ID4gPj4+Pj4NCj4gPiA+IGEvU2VjdXJpdHlQ a2cvTGlicmFyeS9TbW1UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYi9TbW1UY2cyUGh5c2ljYWxQcg0K PiA+ID4gPj4+Pj4gZXNlbg0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+IGNlTGliLmMNCj4gPiA+ ID4+Pj4+DQo+ID4gPiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvU21tVGNnMlBoeXNpY2FsUHJlc2Vu Y2VMaWIvU21tVGNnMlBoeXNpY2FsUHINCj4gPiA+ID4+Pj4+IGVzZW4NCj4gPiA+ID4+Pj4+DQo+ ID4gPiA+Pj4+PiBjZUxpYi5jDQo+ID4gPiA+Pj4+PiBpbmRleCAxYzQ2ZDVlNjlkLi44YWZhYTBh Nzg1IDEwMDY0NA0KPiA+ID4gPj4+Pj4gLS0tDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gYS9TZWN1cml0 eVBrZy9MaWJyYXJ5L1NtbVRjZzJQaHlzaWNhbFByZXNlbmNlTGliL1NtbVRjZzJQaHlzaWNhbFBy DQo+ID4gPiA+Pj4+PiBlc2VuDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gY2VMaWIuYw0KPiA+ ID4gPj4+Pj4gKysrDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L1Nt bVRjZzJQaHlzaWNhbFByZXNlbmNlTGliL1NtbVRjZzJQaHlzaWNhbFByDQo+ID4gPiA+Pj4+PiAr KysgZXNlbmNlTGliLmMNCj4gPiA+ID4+Pj4+IEBAIC0zODcsNyArMzg3LDcgQEAgVGNnMlBoeXNp Y2FsUHJlc2VuY2VMaWJDb25zdHJ1Y3RvciAoIHsNCj4gPiA+ID4+Pj4+ICAgICBFRklfU1RBVFVT ICBTdGF0dXM7DQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gLSAgaWYgKEFzY2lpU3RybkNtcChQ UF9JTkZfVkVSU0lPTl8xXzIsIChDSEFSOA0KPiA+ID4gPj4+Pj4gKilQY2RHZXRQdHIoUGNkVGNn UGh5c2ljYWxQcmVzZW5jZUludGVyZmFjZVZlciksDQo+ID4gPiA+Pj4+PiBzaXplb2YoUFBfSU5G X1ZFUlNJT05fMV8yKSAtIDEpIDw9IDApIHsNCj4gPiA+ID4+Pj4+ICsgIGlmIChBc2NpaVN0cm5D bXAoUFBfSU5GX1ZFUlNJT05fMV8yLCAoQ0hBUjgNCj4gPiA+ID4+Pj4+ICsqKVBjZEdldFB0cihQ Y2RUY2dQaHlzaWNhbFByZXNlbmNlSW50ZXJmYWNlVmVyKSwNCj4gPiA+ID4+Pj4+ICsgc2l6ZW9m KFBQX0lORl9WRVJTSU9OXzFfMikgLSAxKSA+PSAwKSB7DQo+ID4gPiA+Pj4+PiAgICAgICBtSXNU Y2cyUFBWZXJMb3dlclRoYW5fMV8zID0gVFJVRTsNCj4gPiA+ID4+Pj4+ICAgICB9DQo+ID4gPiA+ Pj4+Pg0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4gV2hhdCBpcyB0aGUgcHJhY3RpY2FsIGltcGFj dCBvZiB0aGlzIGJ1ZyAvIGZpeD8NCj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pj4gVGhhbmtzDQo+ID4g PiA+Pj4+IExhc3psbw0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+Pg0KPiA+ID4g Pj4NCj4gPiA+ID4+DQo+ID4gPiA+Pg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiANCj4gPiA+ ID4NCj4gPiA+DQo+ID4NCj4gDQoNCg==