From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web12.1595.1589218066048493851 for ; Mon, 11 May 2020 10:27:46 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=NkvyLtOA; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: iw9dirbjdeJL3E2Wux4SA1kcAp/xFSogAYAob84Cp5fvRCa75UVVkSFQz0Yoq9WcsyEgivp8Oy LJt5jFEuDmPg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2020 10:27:45 -0700 IronPort-SDR: 9E0PLsFNDa54RXbtbqxdnBmSY2+gewgle19ZDuKA6pNjcM63oNnpFm8Phjoi26DpbGlGsGmgLm NfIcflH9iaqA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,380,1583222400"; d="scan'208";a="250618156" Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by orsmga007.jf.intel.com with ESMTP; 11 May 2020 10:27:44 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX110.amr.corp.intel.com (10.22.240.8) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 11 May 2020 10:27:44 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 11 May 2020 10:27:44 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 11 May 2020 10:27:44 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 11 May 2020 10:27:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PpmzbrXISr8hQVaD3T36EniM1In2pYQkZld2/XICnqKDpp+c1m+WEuKlI0uot3GPrt2L+V6ncwvefZtmERgzs6BI7rYTvJzmaIA6NQpbgJpwfeLOMMDA/fipLUpSXcOHx/eL3zrZvm4G/siXdwyGPSnWJef/yM3b8rZnlb1GV2SX4bA0/ZpVqivUMp5xcBA0ADcLS5YcR+vcq+b9uFIQjxNP5PFU65DM0mVxoExxKdezKf1KWc0CMnyEWt9Cw5TXEDtsPbDT05fHfhCwnkqIjv+KCK1kgwSaPcd2Ru/NjNEYU8g6iJAWXy+sj/xGu+lXTbugmdvx6TN3j7MUMEgYDg== 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=zNSanKC/9LzC54ywXBNHmLTJCpyLCOh+JNpYo/aAtxs=; b=GDUa3ehHZujyIPdCwsmUi3hIylWHZF9HThGJksAuFkoQr3P3ovXcZLNFoSpkpoLwut+A6huQFXIAdObYH9VDDXwSo+auasnYNpk9mjriH7mIFSrobQX+u8/LEkdcuNOGoOi0SirNVX8cEvXmvq8i8BhS+96Sw5tFxorQxEaymjeX1I9S9fK6CV3ESuRqL/nRcKAKLO4po8PulTZ+Z5OLQ+VERYRYECOlNRnItfseHt0VqfBB84FoSJGPh808Cls5n4wrPbSMr9RYSFLOAyhCCCU/ouloKjVGXX4i/H692g0/kWtPgdjU1FA4GNNFSPnGW+yegdHG8hvYqsUyTDQbnA== 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=zNSanKC/9LzC54ywXBNHmLTJCpyLCOh+JNpYo/aAtxs=; b=NkvyLtOAm7eIxTLfI3JSS6FSnqRn9CB/mLk4Q+fLai/W25vEfrHDzo5cUnUAQn0yzY/jy82RFsKMdiXXhMPi/BWgb9Rzp/WNbhz7iEwbAXhGdVfNoPMWHxcxcRMB1OiHX29367n2ptCFVNMQKw+tcN47NyOX6Lf1YWHlH+bPdAQ= Received: from MN2PR11MB4461.namprd11.prod.outlook.com (2603:10b6:208:192::29) by MN2PR11MB3983.namprd11.prod.outlook.com (2603:10b6:208:137::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.34; Mon, 11 May 2020 17:27:35 +0000 Received: from MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1]) by MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1%3]) with mapi id 15.20.2979.033; Mon, 11 May 2020 17:27:35 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "rfc@edk2.groups.io" , "Kinney, Michael D" CC: "Zhang, Chao B" , Julien Grall , "marcandre.lureau@redhat.com" , "stefanb@linux.ibm.com" , "liran.alon@oracle.com" , "nikita.leshchenko@oracle.com" Subject: Re: [edk2-rfc] GitHub Pull Request based Code Review Process Thread-Topic: [edk2-rfc] GitHub Pull Request based Code Review Process Thread-Index: AdYlrbT8bFM60bvPQMeeqo8QbNJ7HwCBeygA Date: Mon, 11 May 2020 17:27:35 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [24.19.191.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c60c53d0-e8de-4dc6-3d82-08d7f5d0987d x-ms-traffictypediagnostic: MN2PR11MB3983: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 04004D94E2 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2kTNZQ1mjhmzo3PE51dm8Jd6Cr6MuFBUt3KGM7RygRI8m/TakWYdJZHSOIadsvUPHl10muNVuqlEzP+i1O0ozIMHQGCCW8qM2oNZJ2hqJSmBxpVXVLyc0KO/C64O2LpRaitrDF3XYFONTpQjTrfYH6IvZ1yepY/HKxwN4Ocdpp+F5VPUlE+hThEM6LBsJlEu50uOhpRMvbEbuWGAlZCwPoTURGmdEfbhNNasEtG4ncwVjs2R2IW4OidPJoF/0mXu1pijurcKcx0KheNhhnoVs9EcgEWAYvSc9WqlHFyXRNURj2pGYc4ipUPednCSxG9P+3BcZZmECa+MF6mN4zxFX/ZHs4OSWO67nxh0m6YyFuctsXoOSRPINayhSgkUWFLL6fB5V6jqgRVG3vC/awK1Y5f0JKNbgceBnmQkEMe7NHCisRFAMfFCTljOwlWbYLDUxWHCnmerytp0R4lexxyC1IKT6oL5OEssbGn+vLQRfV8PtnkQM6N2CNvIciN95kH4nlpPDbfzoi2/bZwKGK16H/kSbODf9/Ie5QAwBGTE54Jr7RStRcFWo4EsQprfiabn3HulK4TNEGIITVSqn50h1JQ4OAwls1faJnbQpq8lGSE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4461.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(136003)(39860400002)(366004)(376002)(346002)(396003)(33430700001)(33440700001)(5660300002)(66446008)(66556008)(478600001)(64756008)(66946007)(76116006)(4326008)(8676002)(66476007)(33656002)(26005)(2906002)(186003)(86362001)(7696005)(53546011)(54906003)(9686003)(71200400001)(966005)(6506007)(55016002)(316002)(30864003)(8936002)(52536014)(110136005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: rXBMrYVTgV0BTtmjCOVFBiQUcqVC4U0EDZShN/urQKXXQLKVyt8HycOAp9Gq/aNKf637dSfp5lnOknmBW/V9yZz8/pTt4ngrHKsRYn5f7O0SNv2nDqTAeQxZVPM79GTbW5u/wrQPM/W//MrJL1MBRR4F1NSeixUB+IEBohql06nydDqYwt4/OnbZPIAyjlBREo7Sxj3mEcgSTsiNbW+7CH3+N6Wq3XrAf+ftijg3iyYMPp3739602p4rMQsjgCq18rcCqRSwrfbXZwOldF60gyA1kLfNToX8Uvy0uIkuStErNe8wL4QfPdtS+2CuFKU+hLEASEXNJ0EF9cAjNjjiOtgxXAgOEBN1QXv/WFLwQ7HBtMQ6CpEjx9gdsTB67fMIzKD+qXJGsZu7PF/3XRrONp5oxDrrqSirGvx15Wwx55YlVIqjRirTffdfV6kCLCj/4zhZHK0sLPMaea/HmJYfp/LNtYcGVAkAwBIwG8vKAV0= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: c60c53d0-e8de-4dc6-3d82-08d7f5d0987d X-MS-Exchange-CrossTenant-originalarrivaltime: 11 May 2020 17:27:35.4702 (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: xeNm2wgAlJIyymYiu2q4Zp8YyTabAg2Skg4EeDECUuut0dJ6ayj6P/HqrrbFpH/ktezdMXPElild1xmEu4xWIy9JxQcVGpFDWqi/wHQGf+0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3983 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVsbG8sDQoNCkkgaGF2ZSBhZGRlZCB0aGUgZm9sbG93aW5nIHJlcG9zaXRvcnkgdG8gVGlhbm9D b3JlIHRvDQpzdXBwb3J0IHRoZSBldmFsdWF0aW9uIG9mIHRoZSBHaXRIdWIgcHVsbCByZXF1ZXN0 IGJhc2VkDQpjb2RlIHJldmlldyBwcm9jZXNzIGFuZCB0aGUgZW1haWwgYXJjaGl2ZSB3ZWJib29r LiAgVGhpcw0KaXMgYSBjb3B5IG9mIHRpYW5vY29yZS9lZGsyIHJlcG8gYXMgb2YgTWF5IDEwLCAy MDIwLiANCg0KCWh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1jb2RlcmV2aWV3DQoN CkkgaGF2ZSB1cGRhdGVkIE1haW50YWluZXJzLnR4dCBpbiB0aGlzIHJlcG8gdG8gYWRkDQpHaXRI dWIgSURzIGZvciB0aGUgbWFpbnRhaW5lcnMgYW5kIHJldmlld2Vycy4gIFBsZWFzZQ0KcmV2aWV3 IHRoZXNlIHVwZGF0ZXMgdG8gbWFrZSBzdXJlIHRoZXkgYXJlIGNvcnJlY3QuDQoNCiAgICBodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItY29kZXJldmlldy9ibG9iL21hc3Rlci9NYWlu dGFpbmVycy50eHQNCg0KVGhlcmUgYXJlIGEgZmV3IG1haW50YWluZXJzIGFuZCByZXZpZXdlcnMg dGhhdCBJIG5lZWQNCkdpdEh1YiBJRHMuICBQbGVhc2Ugc2VuZCBtZSB5b3VyIEdpdEh1YiBJRHMg YW5kIEkgd2lsbA0KY29tcGxldGUgdGhlIHVwZGF0ZSBvZiBNYWludGFpbmVycy50eHQuDQoNCiAg ICBNOiBDaGFvIFpoYW5nIDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPg0KICAgIFI6IEp1bGllbiBH cmFsbCA8anVsaWVuQHhlbi5vcmc+DQogICAgUjogTWFyYy1BbmRy4pSc4oyQIEx1cmVhdSA8bWFy Y2FuZHJlLmx1cmVhdUByZWRoYXQuY29tPg0KICAgIFI6IFN0ZWZhbiBCZXJnZXIgPHN0ZWZhbmJA bGludXguaWJtLmNvbT4NCiAgICBSOiBMaXJhbiBBbG9uIDxsaXJhbi5hbG9uQG9yYWNsZS5jb20+ DQogICAgUjogTmlraXRhIExlc2hlbmtvIDxuaWtpdGEubGVzaGNoZW5rb0BvcmFjbGUuY29tPg0K DQpUaGFua3MsDQoNCk1pa2UNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gU2Vu dDogRnJpZGF5LCBNYXkgOCwgMjAyMCA4OjAwIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bzsgcmZjQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksDQo+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtlZGsyLXJmY10gR2l0SHViIFB1bGwgUmVxdWVz dCBiYXNlZCBDb2RlDQo+IFJldmlldyBQcm9jZXNzDQo+IA0KPiBIZWxsbywNCj4gDQo+IFRoaXMg aXMgYSBwcm9wb3NhbCB0byBjaGFuZ2UgZnJvbSB0aGUgY3VycmVudCBlbWFpbC0NCj4gYmFzZWQg Y29kZSByZXZpZXcgcHJvY2VzcyB0bw0KPiBhIEdpdEh1YiBwdWxsIHJlcXVlc3QtYmFzZWQgY29k ZSByZXZpZXcgcHJvY2VzcyBmb3IgYWxsDQo+IHJlcG9zaXRvcmllcyBtYWludGFpbmVkDQo+IGlu IFRpYW5vQ29yZS4gIFRoZSBjdXJyZW50IGVtYWlsLWJhc2VkIGNvZGUgcmV2aWV3DQo+IHByb2Nl c3MgYW5kIGNvbW1pdCBtZXNzYWdlDQo+IHJlcXVpcmVtZW50cyBhcmUgZG9jdW1lbnRlZCBpbiBS ZWFkbWUubWQgb3IgUmVhZG1lLnJzdA0KPiBhdCB0aGUgcm9vdCBvZg0KPiByZXBvc2l0b3JpZXMg YWxvbmcgd2l0aCBhIGZldyBXaWtpIHBhZ2VzOg0KPiANCj4gKg0KPiBodHRwczovL2dpdGh1Yi5j b20vdGlhbm9jb3JlL2VkazIvYmxvYi9tYXN0ZXIvUmVhZE1lLnJzDQo+IHQNCj4gKg0KPiBodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL3RpYW5vY29yZS5naXRodWIuaW8vd2lraS9FDQo+IERL LUlJLURldmVsb3BtZW50LVByb2Nlc3MNCj4gKg0KPiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9j b3JlL3RpYW5vY29yZS5naXRodWIuaW8vd2lraS9MDQo+IGFzemxvJ3MtdW5rZW1wdC1naXQtZ3Vp ZGUtZm9yLWVkazItY29udHJpYnV0b3JzLWFuZC0NCj4gbWFpbnRhaW5lcnMNCj4gKg0KPiBodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL3RpYW5vY29yZS5naXRodWIuaW8vd2lraS9DDQo+IG9t bWl0LU1lc3NhZ2UtRm9ybWF0DQo+ICoNCj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS90 aWFub2NvcmUuZ2l0aHViLmlvL3dpa2kvQw0KPiBvbW1pdC1TaWduYXR1cmUtRm9ybWF0DQo+IA0K PiBUaGUgZ29hbCBpcyB0byBwb3N0IGNoYW5nZXMgYnkgb3BlbmluZyBhIEdpdEh1YiBwdWxsDQo+ IHJlcXVlc3QgYW5kIHBlcmZvcm0gYWxsDQo+IGNvZGUgcmV2aWV3IGFjdGl2aXR5IHVzaW5nIHRo ZSBHaXRIdWIgd2ViIGludGVyZmFjZS4NCj4gVGhpcyBwcm9wb3NhbCBkb2VzIG5vdA0KPiBjaGFu Z2UgYW55IGxpY2Vuc2VzIG9yIGNvbW1pdCBtZXNzYWdlIHJlcXVpcmVtZW50cy4gIEl0DQo+IGRv ZXMgcmVxdWlyZSBhbGwNCj4gZGV2ZWxvcGVycywgbWFpbnRhaW5lcnMsIGFuZCByZXZpZXdlcnMg dG8gaGF2ZSBHaXRIdWINCj4gYWNjb3VudHMuDQo+IA0KPiBPbmUgcmVxdWlyZW1lbnQgdGhhdCB3 YXMgY29sbGVjdGVkIGZyb20gcHJldmlvdXMNCj4gZGlzY3Vzc2lvbnMgb24gdGhpcyB0b3BpYyBp cw0KPiB0aGUgbmVlZCBmb3IgYW4gZW1haWwgYXJjaGl2ZSBvZiBhbGwgcGF0Y2hlcyBhbmQgY29k ZQ0KPiByZXZpZXcgYWN0aXZpdGllcy4gIFRoZQ0KPiBleGlzdGluZyBHaXRIdWIgZmVhdHVyZXMg dG8gcHJvZHVjZSBhbiBlbWFpbCBhcmNoaXZlDQo+IHdlcmUgZGVlbWVkIGluc3VmZmljaWVudC4N Cj4gQSBwcm9vZiBvZiBjb25jZXB0IG9mIGEgR2l0SHViIHdlYmhvb2sgaGFzIGJlZW4NCj4gaW1w bGVtZW50ZWQgdG8gcHJvdmlkZSB0aGUgZW1haWwNCj4gYXJjaGl2ZSBzZXJ2aWNlLiAgVGhpcyBl bWFpbCBhcmNoaXZlIGlzIHJlYWQtb25seS4gIFlvdQ0KPiB3aWxsIG5vdCBiZSBhYmxlIHRvIHNl bmQNCj4gZW1haWxzIHRvIHRoaXMgYXJjaGl2ZSBvciByZXBseSB0byBlbWFpbHMgaW4gdGhlDQo+ IGFyY2hpdmUuDQo+IA0KPiBUaGUgc2VjdGlvbnMgYmVsb3cgcHJvdmlkZSBtb3JlIGRldGFpbHMg b24gdGhlIHByb3Bvc2VkDQo+IEdpdEh1YiBwdWxsIHJlcXVlc3QNCj4gYmFzZWQgY29kZSByZXZp ZXcgcHJvY2VzcywgZGV0YWlscyBvbiB0aGUgZW1haWwgYXJjaGl2ZQ0KPiBzZXJ2aWNlLCBhbmQg YSBzZXQgb2YNCj4gcmVtYWluaW5nIHRhc2tzIG1ha2UgdGhlIGVtYWlsIGFyY2hpdmUgc2Vydmlj ZQ0KPiBwcm9kdWN0aW9uIHF1YWxpdHkuICBJdCBkb2VzIG5vdA0KPiBtYWtlIHNlbnNlIHRvIHN1 cHBvcnQgYm90aCB0aGUgZXhpc3RpbmcgZW1haWwtYmFzZWQNCj4gY29kZSByZXZpZXcgYW5kIHRo ZSBHaXRIdWINCj4gcHVsbCByZXF1ZXN0LWJhc2VkIGNvZGUgcmV2aWV3IGF0IHRoZSBzYW1lIHRp bWUuDQo+IEluc3RlYWQsIHRoaXMgcHJvcG9zYWwgaXMgdG8NCj4gc3dpdGNoIHRvIHRoZSBHaXRI dWIgcHVsbCByZXF1ZXN0LWJhc2VkIGNvZGUgcmV2aWV3IGFuZA0KPiByZXRpcmUgdGhlIGVtYWls IGJhc2VkDQo+IGNvZGUgcmV2aWV3IHByb2Nlc3Mgb24gdGhlIHNhbWUgZGF0ZS4NCj4gDQo+IFRo ZSBlZGsyIHJlcG9zaXRvcnkgaXMgdXNpbmcgR2l0SHViIHB1bGwgcmVxdWVzdHMgdG9kYXkNCj4g dG8gcnVuIGF1dG9tYXRlZA0KPiBDSSBjaGVja3Mgb24gdGhlIGNvZGUgY2hhbmdlcyBhbmQgYWxs b3dzIGEgbWFpbnRhaW5lcg0KPiB0byBzZXQgdGhlIGBwdXNoYCBsYWJlbCB0bw0KPiByZXF1ZXN0 IHRoZSBjaGFuZ2VzIHRvIGJlIG1lcmdlZCBpZiBhbGwgQ0kgY2hlY2tzIHBhc3MuDQo+IFdpdGgg dGhpcyBwcm9wb3NhbCwNCj4gb25jZSB0aGUgY29kZSByZXZpZXcgaXMgY29tcGxldGUgYW5kIHRo ZSBjb21taXQNCj4gbWVzc2FnZXMgaGF2ZSBiZWVuIHVwZGF0ZWQsIHRoZQ0KPiBzYW1lIHB1bGwg cmVxdWVzdCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIGEgZmluYWwgc2V0IG9mDQo+IENJIGNoZWNr cyBhbmQgbWVyZ2UgdGhlDQo+IGNoYW5nZXMgaW50byB0aGUgbWFzdGVyIGJyYW5jaC4NCj4gDQo+ IEkgd291bGQgbGlrZSB0byBjb2xsZWN0IGZlZWRiYWNrIG9uIHRoaXMgcHJvcG9zYWwgYW5kDQo+ IHRoZSBlbWFpbCBhcmNoaXZlIHNlcnZpY2UNCj4gb3ZlciB0aGUgbmV4dCB0d28gd2Vla3Mgd2l0 aCBjbG9zZSBvZiBjb21tZW50cyBvbg0KPiBGcmlkYXkgTWF5IDIyLCAyMDIwLiAgSWYgYWxsDQo+ IGlzc3VlcyBhbmQgY29uY2VybnMgY2FuIGJlIGFkZHJlc3NlZCwgdGhlbiBJIHdvdWxkIGxpa2UN Cj4gdG8gc2VlIHRoZSBjb21tdW5pdHkNCj4gYWdyZWUgdG8gbWFrZSB0aGlzIGNoYW5nZSBhcyBz b29uIGFzIGFsbCByZW1haW5pbmcNCj4gdGFza3MgYXJlIGNvbXBsZXRlZC4NCj4gDQo+ICMgVGlh bm9Db3JlIFJlcG9zaXRvcmllcyB0byBlbmFibGUNCj4gDQo+ICogW2VkazJdKGh0dHBzOi8vZ2l0 aHViLmNvbS90aWFub2NvcmUvZWRrMikNCj4gKiBbZWRrMi1wbGF0Zm9ybXNdKGh0dHBzOi8vZ2l0 aHViLmNvbS90aWFub2NvcmUvZWRrMi0NCj4gcGxhdGZvcm1zKQ0KPiAqIFtlZGsyLW5vbi1vc2ld KGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1ub24tDQo+IG9zaSkNCj4gKiBbZWRr Mi10ZXN0XShodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItdGVzdCkNCj4gKiBbZWRr Mi1saWJjXShodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItbGliYykNCj4gKiBbZWRr Mi1zdGFnaW5nXShodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItDQo+IHN0YWdpbmcp DQo+IA0KPiAjIEdpdEh1YiBQdWxsIFJlcXVlc3QgQ29kZSBSZXZpZXcgUHJvY2Vzcw0KPiANCj4g KipOT1RFKio6IEFsbCBzdGVwcyBiZWxvdyB1c2UNCj4gW2VkazJdKGh0dHBzOi8vZ2l0aHViLmNv bS90aWFub2NvcmUvZWRrMikgYXMgYW4NCj4gZXhhbXBsZS4gIFNldmVyYWwgcmVwb3NpdG9yaWVz IGFyZSBzdXBwb3J0ZWQuDQo+IA0KPiAjIyBBdXRob3IvRGV2ZWxvcGVyIFN0ZXBzDQo+ICAgKiBD cmVhdGUgYSBwZXJzb25hbCBmb3JrIG9mDQo+IFtlZGsyXShodHRwczovL2dpdGh1Yi5jb20vdGlh bm9jb3JlL2VkazIpDQo+IA0KPiAgICAgaHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20vZW4vZ2l0aHVi L2dldHRpbmctc3RhcnRlZC0NCj4gd2l0aC1naXRodWIvZm9yay1hLXJlcG8NCj4gDQo+ICAgKiBD cmVhdGUgYSBuZXcgYnJhbmNoIGZyb20gZWRrMi9tYXN0ZXIgaW4gcGVyc29uYWwNCj4gZm9yayBv ZiBlZGsyIHJlcG9zaXRvcnkuDQo+IA0KPiAgICogQWRkIHNldCBvZiBjb21taXRzIGZvciBuZXcg ZmVhdHVyZSBvciBidWcgZml4IHRvDQo+IG5ldyBicmFuY2guICBNYWtlIHN1cmUgdG8NCj4gICAg IGZvbGxvdyB0aGUgY29tbWl0IG1lc3NhZ2UgZm9ybWF0IHJlcXVpcmVtZW50cy4gIFRoZQ0KPiBv bmx5IGNoYW5nZSB3aXRoIHRoaXMNCj4gICAgIFJGQyBpcyB0aGF0IHRoZSBDYzogbGluZXMgdG8g bWFpbnRhaW5lcnMvcmV2aWV3ZXJzDQo+IHNob3VsZCAqKm5vdCoqIGJlIGFkZGVkLg0KPiAgICAg VGhlIENjOiBsaW5lcyBhcmUgc3RpbGwgc3VwcG9ydGVkLCBidXQgdGhleSBzaG91bGQNCj4gb25s eSBiZSB1c2VkIHRvIGFkZA0KPiAgICAgcmV2aWV3ZXJzIHRoYXQgZG8gbm90IGhhdmUgR2l0SHVi IElEcyBvciBhcmUgbm90DQo+IG1lbWJlcnMgb2YgVGlhbm9Db3JlLg0KPiANCj4gICAqIFB1c2gg YnJhbmNoIHdpdGggbmV3IGNvbW1pdHMgdG8gcGVyc29uYWwgZm9yaw0KPiAgICogQ3JlYXRlIGEg cHVsbCByZXF1ZXN0IGFnYWluc3QgVGlhbm9Db3JlIGVkazIvbWFzdGVyDQo+IA0KPiAgICAgaHR0 cHM6Ly9oZWxwLmdpdGh1Yi5jb20vZW4vZ2l0aHViL2NvbGxhYm9yYXRpbmctDQo+IHdpdGgtaXNz dWVzLWFuZC1wdWxsLXJlcXVlc3RzL2NyZWF0aW5nLWEtcHVsbC1yZXF1ZXN0DQo+IA0KPiAgICog SWYgcHVsbCByZXF1ZXN0IGhhcyBtb3JlIHRoYW4gMSBjb21taXQsIHRoZW4gZmlsbA0KPiBpbiB0 aGUgcHVsbCByZXF1ZXN0IHRpdGxlDQo+ICAgICBhbmQgZGVjcnlwdGlvbiBpbmZvcm1hdGlvbiBm b3IgUGF0Y2ggIzAuICBEbyBub3QNCj4gbGVhdmUgZGVmYXVsdHMuDQo+IA0KPiAgICogRG8gbm90 IGFzc2lnbiByZXZpZXdlcnMuICBUaGUgd2ViaG9vayBhc3NpZ25zDQo+IG1haW50YWluZXJzIGFu ZCByZXZpZXdlcnMgdG8NCj4gICAgIHRoZSBwdWxsIHJlcXVlc3QgYW5kIGVhY2ggY29tbWl0IGlu IHRoZSBwdWxsDQo+IHJlcXVlc3QuDQo+IA0KPiAgICogSWYgbWFpbnRhaW5lcnMvcmV2aWV3ZXJz IHByb3ZpZGUgZmVlZGJhY2sgdGhhdA0KPiByZXF1aXJlcyBjaGFuZ2VzLCB0aGVuIG1ha2UNCj4g ICAgIGFkZCBjb21taXRzIHRvIHRoZSBjdXJyZW50IGJyYW5jaCB3aXRoIHRoZQ0KPiByZXF1ZXN0 ZWQgY2hhbmdlcy4gIE9uY2UgYWxsDQo+ICAgICBjaGFuZ2VzIGFyZSBhY2NlcHRlZCBvbiB0aGUg Y3VycmVudCBicmFuY2gsDQo+IHJlZm9ybXVsYXRlIHRoZSBwYXRjaCBzZXJpZXMgYW5kDQo+ICAg ICBjb21taXQgY29tbWVudHMgYXMgbmVlZGVkIGZvciBwZXJmb3JtIGEgZm9yY2VkIHB1c2gNCj4g dG8gdGhlIGJyYW5jaCBpbiB0aGUNCj4gICAgIHBlcnNvbmFsIGZvcmsgb2YgdGhlIGVkazIgcmVw b3NpdG9yeS4gIFRoaXMgc3RlcA0KPiBtYXkgYmUgcmVwZWF0ZWQgaWYgbXVsdGlwbGUNCj4gICAg IHZlcnNpb25zIG9mIHRoZSBwYXRjaCBzZXJpZXMgYXJlIHJlcXVpcmVkIHRvDQo+IGFkZHJlc3Mg YWxsIGNvZGUgcmV2aWV3DQo+ICAgICBmZWVkYmFjay4NCj4gDQo+ICAgKipPUEVOKio6IEhvdyBz aG91bGQgbWluaW11bSByZXZpZXcgcGVyaW9kIGJlIHNldD8NCj4gTGFiZWxzPw0KPiANCj4gIyMg VGlhbm9Db3JlIEdpdEh1YiBFbWFpbCBBcmNoaXZlIFdlYmhvb2sgU2VydmljZSBTdGVwcw0KPiAg ICogUmVjZWl2ZSBhbiBldmVudCB0aGF0IGEgbmV3IHB1bGwgcmVxdWVzdCB3YXMgb3BlbmVkDQo+ ICAgKiBFdmFsdWF0ZSB0aGUgZmlsZXMgbW9kaWZpZWQgYnkgdGhlIGVudGlyZSBwdWxsDQo+IHJl cXVlc3QgYW5kIGVhY2ggY29tbWl0IGluDQo+ICAgICB0aGUgcHVsbCByZXF1ZXN0IGFuZCBjcm9z cyByZWZlcmVuY2VzIGFnYWluc3QNCj4gYE1haW50YWludGVycy50eHRgIGluIHRoZSByb290DQo+ ICAgICBvZiB0aGUgcmVwb3NpdG9yeSB0byBhc3NpZ24gbWFpbnRhaW5lcnMvcmV2aWV3ZXJzDQo+ IHRvIHRoZSBwdWxsIHJlcXVlc3QgYW5kDQo+ICAgICBlYWNoIGNvbW1pdCBpbiB0aGUgcHVsbCBy ZXF1ZXN0LiBJbmRpdmlkdWFsIGNvbW1pdA0KPiBhc3NpZ25tZW50cyBhcmUgcGVyZm9ybWVkDQo+ ICAgICBieSBhZGRpbmcgYSBjb21taXQgY29tbWVudCBvZiB0aGUgZm9sbG93aW5nIGZvcm06DQo+ IA0KPiAgICAgW0NvZGVSZXZpZXddIFJldmlldy1yZXF1ZXN0IEBtZGtpbm5leQ0KPiANCj4gICAq IEdlbmVyYXRlIGFuZCBzZW5kcyBnaXQgcGF0Y2ggcmV2aWV3IGVtYWlscyB0byB0aGUNCj4gZW1h aWwgYXJjaGl2ZS4gIEVtYWlscw0KPiAgICAgYXJlIGFsc28gc2VudCB0byBhbnkgQ2M6IHRhZ3Mg aW4gdGhlIGNvbW1pdA0KPiBtZXNzYWdlcy4NCj4gDQo+ICAgKiBJZiB0aGUgYXV0aG9yL2RldmVs b3BlciBwZXJmb3JtcyBhIGZvcmNlZCBwdXNoIHRvDQo+IHRoZSBicmFuY2ggaW4gdGhlaXINCj4g ICAgIHBlcnNvbmFsIGZvcmsgb2YgdGhlIGVkazIgcmVwb3NpdG9yeSwgdGhlbiBhIG5ldw0KPiBz ZXQgb2YgcGF0Y2ggcmV2aWV3IGVtYWlscw0KPiAgICAgd2l0aCBwYXRjaCBzZXJpZXMgVnggaXMg c2VudCB0byB0aGUgZW1haWwgYXJjaGl2ZQ0KPiBhbmQgYW55IENjOiB0YWdzIGluIGNvbW1pdA0K PiAgICAgbWVzc2FnZXMuDQo+IA0KPiAgICogUmVjZWl2ZSBldmVudHMgYXNzb2NpYXRlZCB3aXRo IGFsbCBjb2RlIHJldmlldw0KPiBhY3Rpdml0aWVzIGFuZCBnZW5lcmF0ZQ0KPiAgICAgYW5kIHNl bmQgZW1haWxzIHRvIHRoZSBlbWFpbCBhcmNoaXZlIHRoYXQgc2hvd3MgYWxsDQo+IHJldmlldyBj b21tZW50cyBhbmQNCj4gICAgIGFsbCByZXNwb25zZXMgY2xvc2VseSBtYXRjaGluZyB0aGUgZW1h aWwgY29udGVudHMNCj4gc2VlbiBpbiB0aGUgY3VycmVudCBlbWFpbA0KPiAgICAgYmFzZWQgY29k ZSByZXZpZXcgcHJvY2Vzcy4NCj4gDQo+ICAgKiBHZW5lcmF0ZSBhbmQgc2VuZCBlbWFpbCB3aGVu IHB1bGwgcmVxdWVzdCBpcyBtZXJnZWQNCj4gb3IgY2xvc2VkLg0KPiANCj4gIyMgTWFpbnRhaW5l ci9SZXZpZXdlciBTdGVwcw0KPiANCj4gICAqIE1ha2Ugc3VyZSBHaXRIdWIgY29uZmlndXJhdGlv biBpcyBzZXR1cCB0byAnV2F0Y2gnDQo+IHRoZSByZXBvc2l0b3JpZXMgdGhhdA0KPiAgICAgeW91 IGhhdmUgbWFpbnRhaW5lciBzaGlwIG9yIHJldmlldyByZXNwb25zaWJpbGl0aWVzDQo+IGFuZCB0 aGF0IGVtYWlsDQo+ICAgICBub3RpZmljYXRpb25zIGZyb20gR2l0SHViIGFyZSBlbmFibGVkLiAg VGhpcw0KPiBlbmFibGVzIGVtYWlsIG5vdGlmaWNhdGlvbnMNCj4gICAgIHdoZW4gYSBtYWludGFp bmVyL3Jldmlld2VyIGlzIGFzc2lnbmVkIHRvIGEgcHVsbA0KPiByZXF1ZXN0IGFuZCBpbmRpdmlk dWFsDQo+ICAgICBjb21taXRzLg0KPiANCj4gICAgIGh0dHBzOi8vaGVscC5naXRodWIuY29tL2Vu L2dpdGh1Yi9tYW5hZ2luZy0NCj4gc3Vic2NyaXB0aW9ucy1hbmQtbm90aWZpY2F0aW9ucy1vbi1n aXRodWIvY29uZmlndXJpbmctDQo+IG5vdGlmaWNhdGlvbnMNCj4gDQo+ICAgKiBTdWJzY3JpYmUg dG8gdGhlIGVtYWlsIGFyY2hpdmUgYXNzb2NpYXRlZCB3aXRoIHRoZQ0KPiBUaWFub0NvcmUgR2l0 SHViIEVtYWlsDQo+ICAgICBBcmNoaXZlIFdlYmhvb2sgU2VydmljZS4NCj4gDQo+ICAgICBodHRw czovL3d3dy5yZWRoYXQuY29tL21haWxtYW4vbGlzdGluZm8vdGlhbm9jb3JlLQ0KPiBjb2RlLXJl dmlldy1wb2MNCj4gDQo+ICAgKiBSZXZpZXcgcHVsbCByZXF1ZXN0cyBhbmQgY29tbWl0cyBhc3Np Z25lZCBieSB0aGUNCj4gVGlhbm9Db3JlIEdpdEh1YiBFbWFpbA0KPiAgICAgQXJjaGl2ZSBXZWJo b29rIFNlcnZpY2UgYW5kIHVzZSB0aGUgR2l0SHViIHdlYiBVSQ0KPiB0byBwcm92aWRlIGFsbCBy ZXZpZXcNCj4gICAgIGZlZWRiYWNrLg0KPiANCj4gICAgIGh0dHBzOi8vaGVscC5naXRodWIuY29t L2VuL2dpdGh1Yi9jb2xsYWJvcmF0aW5nLQ0KPiB3aXRoLWlzc3Vlcy1hbmQtcHVsbC1yZXF1ZXN0 cy9yZXZpZXdpbmctY2hhbmdlcy1pbi0NCj4gcHVsbC1yZXF1ZXN0cw0KPiANCj4gICAqIFdhaXQg Zm9yIEF1dGhvci9EZXZlbG9wZXIgdG8gcmVzcG9uZCB0byBhbGwNCj4gZmVlZGJhY2sgYW5kIGFk ZCBjb21taXRzIHdpdGgNCj4gICAgIGNvZGUgY2hhbmdlcyBhcyBuZWVkZWQgdG8gcmVzb2x2ZSBh bGwgZmVlZGJhY2suDQo+IFRoaXMgc3RlcCBtYXkgYmUgcmVwZWF0ZWQNCj4gICAgIGlmIHRoZSBk ZXZlbG9wZXIvYXV0aG9yIG5lZWQgdG8gcHJvZHVjZSBtdWx0aXBsZQ0KPiB2ZXJzaW9ucyBvZiB0 aGUgcGF0Y2gNCj4gICAgIHNlcmllcyB0byBhZGRyZXNzIGFsbCBmZWVkYmFjay4NCj4gDQo+ICAg KiBPbmNlIGFsbCBmZWVkYmFjayBpcyBhZGRyZXNzZWQsIGFkZCBSZXZpZXdlZC1ieSwNCj4gQWNr ZWQtYnksIGFuZCBUZXN0ZWQtYnkNCj4gICAgIHJlc3BvbnNlcyBvbiBpbmRpdmlkdWFsIGNvbW1p dHMuICBPciBhZGQgU2VyaWVzLQ0KPiByZXZpZXdlZC1ieSwgU2VyaWVzLWFja2VkLWJ5LA0KPiAg ICAgb3IgU2VyaWVzLVRlc3RlZC1ieSByZXNwb25zZXMgdG8gdGhlIGVudGlyZSBwdWxsDQo+IHJl cXVlc3QuDQo+IA0KPiAgICogV2FpdCBmb3IgRGV2ZWxvcGVyL0F1dGhvciB0byBhZGQgdGFncyB0 byBjb21taXQNCj4gbWVzc2FnZXMgaW4gdGhlIHB1bGwgcmVxdWVzdC4NCj4gDQo+ICAgKiBQZXJm b3JtIGZpbmFsIHJldmlldyBvZiBwYXRjaGVzIGFuZCBjb21taXQgbWVzc2FnZQ0KPiB0YWdzLiAg SWYgdGhlcmUgYXJlIG5vdA0KPiAgICAgaXNzdWVzLCBzZXQgdGhlIGBwdXNoYCBsYWJlbCB0byBy dW4gZmluYWwgc2V0IG9mIENJDQo+IGNoZWNrcyBhbmQgYXV0byBtZXJnZQ0KPiAgICAgdGhlIHB1 bGwgcmVxdWVzdCBpbnRvIG1hc3Rlci4NCj4gDQo+ICMgTWFpbnRhaW5lcnMudHh0IEZvcm1hdCBD aGFuZ2VzDQo+IA0KPiBBZGQgR2l0SHViIElEcyBvZiBhbGwgbWFpbnRhaW5lcnMgYW5kIHJldmll d2VycyBhdCB0aGUNCj4gZW5kIG9mIE06IGFuZCBSOiBsaW5lcw0KPiBpbiBbXS4gIEZvciBleGFt cGxlOg0KPiANCj4gICAgIE06IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPg0KPiBbbWRraW5uZXldDQo+IA0KPiAjIFRpYW5vQ29yZSBHaXRIdWIgRW1haWwgQXJj aGl2ZSBXZWJob29rIFNlcnZpY2UNCj4gDQo+IEFzc2lnbiByZXZpZXdlcnMgdG8gY29tbWl0cyBp biBhIEdpdEh1YiBwdWxsIHJlcXVlc3QNCj4gYmFzZWQgb24gYXNzaWdubWVudHMNCj4gZG9jdW1l bnRlZCBpbiBNYWludGFpbmVycy50eHQgYW5kIGdlbmVyYXRlcyBhbiBlbWFpbA0KPiBhcmNoaXZl IG9mIGFsbCBwdWxsIHJlcXVlc3QNCj4gYW5kIGNvZGUgcmV2aWV3IGFjdGl2aXRpZXMuDQo+IA0K PiBodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRrMi1lbWFpbC1hcmNoaXZlLXdlYmhvb2sN Cj4gDQo+ICMgRW1haWwgQXJjaGl2ZSBTdWJzY3JpcHRpb24gU2VydmljZQ0KPiANCj4gVGhlIGVt YWlscyBhcmUgYmVpbmcgZGVsaXZlcmVkIHRvIHRoZSBmb2xsb3dpbmcgUmVkSGF0DQo+IGVtYWls IHN1YnNjcmlwdGlvbg0KPiBzZXJ2aWNlLiAgUGxlYXNlIHN1YnNjcmliZSB0byByZWNlaXZlIHRo ZSBlbWFpbHMgYW5kIHRvDQo+IGJlIGFibGUgdG8gdmlldyB0aGUNCj4gZW1haWwgYXJjaGl2ZXMu DQo+IA0KPiBodHRwczovL3d3dy5yZWRoYXQuY29tL21haWxtYW4vbGlzdGluZm8vdGlhbm9jb3Jl LWNvZGUtDQo+IHJldmlldy1wb2MNCj4gDQo+IFRoZSBlbWFpbCBhcmNoaXZlcyBhcmUgYXQgdGhp cyBsaW5rOg0KPiANCj4gaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL3ByaXZhdGUvdGlh bm9jb3JlLWNvZGUtDQo+IHJldmlldy1wb2MvaW5kZXguaHRtbA0KPiANCj4gVGhlIGZvbGxvd2lu ZyBzZWN0aW9ucyBzaG93IHNvbWUgZXhhbXBsZSBwdWxsIHJlcXVlc3RzDQo+IGFuZCBjb2RlIHJl dmlld3MgdG8NCj4gaGVscCByZXZpZXcgdGhlIGdlbmVyYXRlZCBlbWFpbHMsIHRoZWlyIGNvbnRl bnRzLCBhbmQNCj4gdGhyZWFkaW5nLg0KPiANCj4gIyMgRW1haWwgQWNoaWV2ZSBUaHJlYWQgVmll dw0KPiANCj4gaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9tYWlsbWFuL3ByaXZhdGUvdGlhbm9jb3Jl LWNvZGUtDQo+IHJldmlldy1wb2MvMjAyMC1NYXkvdGhyZWFkLmh0bWwjMDAyODkNCj4gDQo+ICMj IEV4YW1wbGUgcGF0Y2ggc2VyaWVzIHdpdGggMSBwYXRjaA0KPiANCj4gaHR0cHM6Ly93d3cucmVk aGF0LmNvbS9tYWlsbWFuL3ByaXZhdGUvdGlhbm9jb3JlLWNvZGUtDQo+IHJldmlldy1wb2MvMjAy MC1NYXkvdGhyZWFkLmh0bWwjMDAzNDANCj4gDQo+ICMjIEV4YW1wbGUgcGF0Y2ggc2VyaWVzIHdp dGggPCAxMCBwYXRjaGVzDQo+IA0KPiAqIGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9w cml2YXRlL3RpYW5vY29yZS0NCj4gY29kZS1yZXZpZXctcG9jLzIwMjAtTWF5L21zZzAwMjg5Lmh0 bWwNCj4gKiBodHRwczovL3d3dy5yZWRoYXQuY29tL21haWxtYW4vcHJpdmF0ZS90aWFub2NvcmUt DQo+IGNvZGUtcmV2aWV3LXBvYy8yMDIwLU1heS9tc2cwMDAzMC5odG1sDQo+ICogaHR0cHM6Ly93 d3cucmVkaGF0LmNvbS9tYWlsbWFuL3ByaXZhdGUvdGlhbm9jb3JlLQ0KPiBjb2RlLXJldmlldy1w b2MvMjAyMC1NYXkvbXNnMDAwMTguaHRtbA0KPiAqIGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFp bG1hbi9wcml2YXRlL3RpYW5vY29yZS0NCj4gY29kZS1yZXZpZXctcG9jLzIwMjAtTWF5L21zZzAw MDA4Lmh0bWwNCj4gDQo+ICMjIEV4YW1wbGUgcGF0Y2ggc2VyaWVzIHdpdGggPiA4MCBwYXRjaGVz DQo+IA0KPiAqIGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9wcml2YXRlL3RpYW5vY29y ZS0NCj4gY29kZS1yZXZpZXctcG9jLzIwMjAtTWF5L21zZzAwMTk4Lmh0bWwNCj4gKiBodHRwczov L3d3dy5yZWRoYXQuY29tL21haWxtYW4vcHJpdmF0ZS90aWFub2NvcmUtDQo+IGNvZGUtcmV2aWV3 LXBvYy8yMDIwLU1heS9tc2cwMDExNi5odG1sDQo+ICogaHR0cHM6Ly93d3cucmVkaGF0LmNvbS9t YWlsbWFuL3ByaXZhdGUvdGlhbm9jb3JlLQ0KPiBjb2RlLXJldmlldy1wb2MvMjAyMC1NYXkvbXNn MDAwMzUuaHRtbA0KPiANCj4gIyBUYXNrcyB0byBDb21wbGV0ZQ0KPiANCj4gKiBDcmVhdGUgZWRr Mi1jb2RlcmV2aWV3IHJlcG9zaXRvcnkgZm9yIGV2YWx1YXRpb24gb2YNCj4gbmV3IGNvZGUgcmV2 aWV3IHByb2Nlc3MuDQo+ICogQWRkIEdpdEh1YiBJRHMgdG8gTWFpbnRhaW5lcnMudHh0IGluIGVk azItY29kZXJldmlldw0KPiByZXBvc2l0b3J5DQo+ICogVXBkYXRlIEJhc2VUb29scy9TY3JpcHRz L0dldE1haW50YWluZXIucHkgdG8gYmUNCj4gY29tcGF0aWJsZSB3aXRoIEdpdEh1YiBJRHMgYXQN Cj4gICB0aGUgZW5kIG9mIE06IGFuZCBSOiBzdGF0ZW1lbnRzDQo+ICogVXBkYXRlIHdlYmhvb2sg dG8gdXNlIFJhYmJpdCBNUSB0byBtYW5hZ2UgcmVxdWVzdHMNCj4gYW5kIGVtYWlscw0KPiAqIERl dGVybWluZSBpZiB3ZWJob29rIHJlcXVlc3RzIG11c3QgYmUgc2VyaWFsaXplZD8NCj4gQ3VycmVu dCBQT0MgaXMgc2VyaWFsaXplZC4NCj4gKiBNYWtlIHN1cmUgd2ViaG9vayBoYXMgZXJyb3IgaGFu ZGxpbmcgZm9yIGFsbA0KPiB1bmV4cGVjdGVkIGV2ZW50cy9zdGF0ZXMuDQo+ICogQWRkIGxvZ2dp bmcgb2YgYWxsIGV2ZW50cyBhbmQgZW1haWxzIHRvIHdlYmhvb2sNCj4gKiBBZGQgYWRtaW4gaW50 ZXJmYWNlIHRvIHdlYmhvb2sNCj4gKiBEZXBsb3kgd2ViaG9vayBvbiBhIHByb2R1Y3Rpb24gc2Vy dmVyIHdpdGggMjQvNw0KPiBzdXBwb3J0DQo+IA0KPiAjIElkZWFzIGZvciBGdXR1cmUgRW5oYW5j ZW1lbnRzDQo+IA0KPiAqIFJ1biBQYXRjaENoZWNrLnB5IGJlZm9yZSBhc3NpZ25pbmcNCj4gbWFp bnRhaW5lcnMvcmV2aWV3ZXJzLg0KPiAqIEFkZCBhIHNpbXBsZSBjaGVjayB0aGF0IGZhaWxzIGlm IGEgc2luZ2xlIHBhdGNoIHNwYW5zDQo+IG1vcmUgdGhhbiBvbmUgcGFja2FnZS4NCj4gKiBNb25p dG9yIGNvbW1lbnRzIGZvciBSZXZpZXdlZC1ieSwgQWNrZWQtYnksIFRlc3RlZC0NCj4gYnksIFNl cmllcy1SZXZpZXdlZC1ieSwNCj4gICBTZXJpZXMtQWNrZWQtYnksIFNlcmllcy1UZXN0ZWQtYnkg bWFkZSBieSBhc3NpZ25lZA0KPiBtYWludGFpbmVycy9yZXZpZXdlcnMuDQo+ICAgT25jZSBhbGwg Y29tbWl0cyBoYXZlIHJlcXVpcmVkIHRhZ3MsIGF1dG8gdXBkYXRlDQo+IGNvbW1pdCBtZXNzYWdl cyBpbiB0aGUNCj4gICBicmFuY2ggYW5kIHdhaXQgZm9yIG1haW50YWluZXIgdG8gc2V0IHRoZSBg UHVzaGANCj4gbGFiZWwgdG8gcnVuIENJIGFuZCBhdXRvDQo+ICAgbWVyZ2UgaWYgYWxsIENJIGNo ZWNrcyBwYXNzLg0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiANCj4gTWlrZQ0KPiANCg0K