From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web10.32831.1654897737032548236 for ; Fri, 10 Jun 2022 14:48:57 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=RwpS2sn/; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: nathaniel.l.desimone@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654897736; x=1686433736; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=x761L7hufgfu480jmjzuhqit4aq+meVSlK1gOHgF3ug=; b=RwpS2sn/rHb4+sngq6v2gDbDCiIefG4Fjm77b99l2Vne/qyVKDVud6nn lQOzmiBbMKj81sCAbVt0yGI2+iJC+U/m1I518OR4Rmk8X9ErzV0PZApTC 1YZI+OGJZ/qTnNHDb+ByNNMx8+WN56iqATQkKuI1S0QvGdYx5LZ8YD3ld LPlcj3qiYbYZnpVKCvwjLqckFTGjQWSahlv4YHcCnhGI01svXOAb7Ub7T Sx9Z3cve26J9UJCsTjoddVxZGnxDwOZZ63IKreCWTe0JoJBZqLzLVulLB o5W5QuXzmgxoZOgJpiCYgPtuP8RZdNPYdwwix79T5APjpqaqpCjZhJ3m5 A==; X-IronPort-AV: E=McAfee;i="6400,9594,10374"; a="277794398" X-IronPort-AV: E=Sophos;i="5.91,291,1647327600"; d="scan'208";a="277794398" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2022 14:48:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,291,1647327600"; d="scan'208";a="638337192" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga008.fm.intel.com with ESMTP; 10 Jun 2022 14:48:56 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Fri, 10 Jun 2022 14:48:55 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Fri, 10 Jun 2022 14:48:55 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.109) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Fri, 10 Jun 2022 14:48:51 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JeYeLHZXLyEQqi1P2JpZ1My1bOy0KZskJhj3zQ/8CwjYh2K2XOERzGMa50SnW6azRhFqazaQ+HUvFjybJZT0tPSyKf8c1VIj/3/TpkZX49Hr74mEaMIJAIn2MC+yIG5nkfaSa32Eem2exr/lw6Vl36aApYEmCutmVfl1/INZQfr5BKqCq9DJoV2gi5qs5jJfW9sk3nkenWv0/bqzyvkhGy2b+e6IJWdz0dJotOuX2g5M+gUyjn4uVAeLhX+eMhg8hQDLXVZstb9+TVUL+hZ3BmbIrmEWfVHSAiWUsv4vQa+7BvOy5YBOTSh/arwJ/PqSvS5oQp/Z/sWNr5RmEI71mw== 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=x761L7hufgfu480jmjzuhqit4aq+meVSlK1gOHgF3ug=; b=dPYRSfpnHOEhk4FMpCrKMJqRpgWYaTH3PQBIKPdI7dE/sYcP0lGDIJ927P6f1n0ETJQ8NEPEsSUWruBKHOpTgN7TTh1poKqcKh9AoYLQyY4Ey5vOX1imT4hWwe1rPkzBKHxmUJ+OfTYi4IlUKUD4v4ugUSh1ArBT3yEqVZy1QuWmTNBYkkmb5VkDgDY3XDVqjaFyBFPsUx03Foq/SFLQySzYzjooOAVwpzgSdi9F7u6wFL5kuR6aTj0OtiWyN+BgqtLrQbQd9eGDMutk5ZTrrrkwnqRC2WCKEMVFaqGHnPaqbSXZyqgiV8sx4j/NG+gQpb1nRv7STkClSX/JyswsDw== 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 MW4PR11MB5821.namprd11.prod.outlook.com (2603:10b6:303:184::5) by PH7PR11MB5916.namprd11.prod.outlook.com (2603:10b6:510:13d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.19; Fri, 10 Jun 2022 21:48:48 +0000 Received: from MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::190c:c119:21b7:7589]) by MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::190c:c119:21b7:7589%5]) with mapi id 15.20.5293.019; Fri, 10 Jun 2022 21:48:48 +0000 From: "Nate DeSimone" To: "Yao, Jiewen" , "devel@edk2.groups.io" , "michael.kubacki@outlook.com" CC: "Wang, Jian J" , "Gao, Liming" , "Kinney, Michael D" , "Oram, Isaac W" , "Chiu, Chasel" , "Cheng, Gao" , "Zhang, Di" , "Bu, Daocheng" , "Kubacki, Michael" Subject: Re: [edk2-devel] [PATCH V1 1/1] MdeModulePkg: Add Definition of EDKII_PEI_VARIABLE_PPI Thread-Topic: [edk2-devel] [PATCH V1 1/1] MdeModulePkg: Add Definition of EDKII_PEI_VARIABLE_PPI Thread-Index: AQHYfG3G6oH9WSus0UyI18wws9EkS61I3RcAgABKC0A= Date: Fri, 10 Jun 2022 21:48:48 +0000 Message-ID: References: <20220610011705.5148-1-nathaniel.l.desimone@intel.com> <20220610011705.5148-2-nathaniel.l.desimone@intel.com> In-Reply-To: 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-office365-filtering-correlation-id: 64636745-8826-4b89-3dc7-08da4b2b0013 x-ms-traffictypediagnostic: PH7PR11MB5916:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RXslNwQWgCbddssTnZjn/JLp3m3laOFwPDftfcUNpoaLF3SdrxQ/rHLJ2T8NDDOHpCujJh8V3E0eIeTd0my9D5/EdnBbiKDFyu5chy/ua3Z+c0WTEwb70Z2esoLZtPWqMGof56h2xSXRig77/hSM1LeyWBugF1yAmlJDgD+TFFGMxNe+F356GQNvRLU/xWTIw4tIoOY3Jg8jOMgZTZ4lCAzaSvEFdlMMXV+dTnWNpj0mFxb+aOMcvbykPKKjKXD4KyUfqvE5b9dCOoSTluOkrjDZBS4E2wkMI5kB6IbY/N8OVzv0WusglW2lB7IygWThN6YV2nVBygRFR3j6z1FhtWNWFO0vBB59z5MKVE+Bh2hMMIsQLt5sZuzCRcaqOYR36K4GmxPNk8Gvsun2nxy4nhK7UB7fDYoaj5pBwZblSkWmlEdnfVjG27RX8oyILi7N5DAtBvjUuP4yvdxb/LrzhDGZl6l66/G7XAi9YH3GPzsLdqIwg48KSA+YYfZejQXL+5/g8eDgX0EcQkKZ6iGcjwYqYEBO7NEldILD6EweSzWU+JNUobCE1pEQh2VMoBlZiS/q8ZGQ/twk66iQLsWaDzGWJ+QBAYIlfTJPQjTlPJF4eKaOsUHKad9bWaGo87ZWp6vrn4ujhVeQ6vf5uGVzcyfmiQm3JwAYtHeIY7Lwv7tyWaKRVgbJoul/MPVoal34n/VyRUt9Aj3X3+qPqUNHzDlvTk620+RSDlF+i9LoPuicRfy/7a1ZKe4Y8SeAGqHQ4t2unwmSfIdk2X/mtlSPNX2ndVETTf8Xpebk6USFyfW+/02RQFww7i0H99CuzfMrTLMXFRo7BJtPjYpt7rCSqQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5821.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(86362001)(5660300002)(4326008)(76116006)(52536014)(30864003)(66446008)(8676002)(64756008)(66946007)(66556008)(186003)(2906002)(9686003)(45080400002)(66476007)(53546011)(7696005)(110136005)(54906003)(19627235002)(26005)(55016003)(316002)(508600001)(966005)(83380400001)(82960400001)(6506007)(38070700005)(71200400001)(38100700002)(33656002)(8936002)(122000001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Tlo1RTN4YmJqQmVCK0YvSWsveU5XWi83U3hEZXE0Yy9lVEhTeCtZNVRteVlp?= =?utf-8?B?ZjhmZFZUV3liS3lrWnM0RFVNalN4Q1dHUHk4Wm51ZEtHVmFrTnZuWUk0Y1dB?= =?utf-8?B?OSszSzdrTWtOTlYzT1VReERtUmpITCtmTElPTzFuOHBFK1RDeDBWWnZibzUz?= =?utf-8?B?L1M4YXluSzZzSzM4WDdkc3BWWXhiRmlWWWFVSUxTcVJIWVJMTlQvTUJKVHRZ?= =?utf-8?B?MEFPK2E4WmdLZEo1bzNMWnc2ajJVeVYrZVBUWWJlQmcybUJRYXYybDhCOHdH?= =?utf-8?B?NGZOTUZZUWVnb09wOEgyam5LQXU4dUJiWGpOU0t1eWxEZ1I5dTU0cWFXclVM?= =?utf-8?B?UElwa2dvZGhTZGlrdVpTNENicjlwSk9uekd3RVBJQitwbWxJRHVDTHIzb1k1?= =?utf-8?B?eHB1TUpOMUszRnVEZWE5SlhiL00wQWJDKzk5YUZiMG1tZHZhUENHSlU0Ly9o?= =?utf-8?B?RHR2QzJFdE43UVkxWmJXb215T3FBK2M2d2tudE9NZ1d0TVVtbnhUZUNuWlRQ?= =?utf-8?B?aXM4cmtCcGwwRkxuR1RxaGN4QUF4NEMwS1JSTUo5d01pMjlnYzFiNWNmWWNP?= =?utf-8?B?SWw1SU4yNENFTG1Pcm5sbE9oWTJ0dUYwMzVRSUt6SmE1OUgxMG1sSmV3cVF6?= =?utf-8?B?Y0hSaWl6UzFBY3lpb1pWSDdkZ2JSeFZhUVdSTjdUVk42RXFBU29aaGxDSjd3?= =?utf-8?B?RXVNczBQZEVGdWYyS2U2VkREWk50RFVmYWRpaVh2RUFJQTFxT1ppS0Fzbm1p?= =?utf-8?B?QUJCSytwQTRpd01jVXVIUXNPbE51YS9qZ05tdU1sMjlBclZ3NzFjOExjVzhF?= =?utf-8?B?WmVGaXBDZmJNdG5VTEFGeWZMNGtjK3RRNVlLSGlTcVVZdW9zMTFFRitNRGtz?= =?utf-8?B?TG53Q0pRNzVZWU40T2RnWWtQYzJZMVJlVDV3TndSZGk3VUh5OUtYWng2THcv?= =?utf-8?B?enJlY0ZremFRQTRXWHNmbzVxSGNGdmtWeWVncTNVWXUvQWRNajZQTUcvV3Jt?= =?utf-8?B?R3d2L0oyeWNseHo2Z3BvanU3K3BYZmJoSGYxdFJ2RVBsNjJaNkgySzc4bDQ2?= =?utf-8?B?bEdlQ0p3YVdwNVQyc3VCWHUvcGFwaTBUb1hoTXFaR25ia0ttcFFKdjRJTEFQ?= =?utf-8?B?aDNGNEVOZWIzWSsvUnFkMUIxZ0krT2hpc2dQK2VxazltSlZJMW9qcDZVbGpX?= =?utf-8?B?Tm13N0cwMld1OTZEMXMrZG5rWFpYWm45ZjFHZW02RmpNejJJMEVuTHlyQ2Qy?= =?utf-8?B?UHJmN1V4S3lpYWdrWVRHUVMvME85MHBkVVlrSko4VGZSb3FjckxCMlJKYnps?= =?utf-8?B?UDlsQ25NRE0xd1dua2ovaGtwNmlzK3dHVXNxbVVMOTBXdkFQRzR3L1RFVFdp?= =?utf-8?B?S3N0UTdrVjJsTkdjV2p4RUJybmlZQjVMdGxvQWVVQzVVQUliNEZsNWRFa0Vj?= =?utf-8?B?aXE3NzNNRFdtRHVtRjZQaWxaVDdGdGlHZmJkTElZRXR2VWhQM3N0NXZOeUlQ?= =?utf-8?B?bVRoSnhSb0U1VFZGb29uV0R3WTE0eUlkaWZEQWV2WjRiQjR2a2JZdjRGc2Zj?= =?utf-8?B?VEIyNk40Y2dNMHhGVUVFUGVZV0ExN1ZCZVMyZFl0UG9nczIrdWxMRnMzNkhP?= =?utf-8?B?QW1ITzQ0aUtSdzN4SkhCOEFSMzJ4V0YxWlg2SDhaanV3WjF0OTc1dm1SdExG?= =?utf-8?B?VGpFVkNGTWx1bDgzcE8rWHg1eDd4cjZ1eDRMd1dpNHczMURMMDhWYzZwbHQv?= =?utf-8?B?S25tOXMxNmVhUzNCTk5HOEUrMzFnRjh1dVRueTZKRGhkRzVxVHpJUlI3Vlkx?= =?utf-8?B?U2xna2pNUFdtWFd1RSt4ajBjbW9CYTBMTm9Ob1ZWTURlMFdMaUQ5MzQrRlhF?= =?utf-8?B?bE5tSnJack5hbmN3MEdHeXN6ZkZPNWZzdjhxem90RTRwSGNVeC84R1ZseWJL?= =?utf-8?B?Zkk0bFdUN0piZ1d4VGU3cTBmQyszN0tkaEtMNk84YkhOWnBTa2VqMmp5dWd2?= =?utf-8?B?QnBYcnZUN1Z1WkplTjQ3dSs4NjZZMFc1dkV5T2dOZVFid1dKdExJUFhHcVpL?= =?utf-8?B?cHZjRW83YXdscHlFVXF4TUwzWG40amE0M1A4TjUwVkgwdzFLNXk4UStwaWxt?= =?utf-8?B?Y1U3L1BvZUF4R0RzdHozTHFwaTBFSThOVzVYNlpNTkpSVVFQNzdETitKekxH?= =?utf-8?B?S1pQNHdnU1o2UWtJZ2hwU2UwYmRSRFhvZUM3cUNqMXMrUkhhUThDejVDa2w2?= =?utf-8?B?VFoySkhDSzJDK1lhZzFHT3hNWkJWdzhaL0hnckhLTDBQcnpzVFBGczNkY2lo?= =?utf-8?B?Zzk3Tm5FdFFaOVhVNWlwWjA4SVJYN0V1MlVSNHZac3ZkK0FJZlFxcDVBRmg5?= =?utf-8?Q?X+iikvkgnCBGIYvA=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5821.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64636745-8826-4b89-3dc7-08da4b2b0013 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2022 21:48:48.2971 (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: 8wzy+8KKC4YkZSQLDRwU+EN5a0tlsr5Ckdta9PrECxnbdEDd96PmVWIK3l6RqED83YoVbv/fLa63dlU2uhTHL9w/IWrLAbW/febgRJzk5jg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5916 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgSmlld2VuLA0KDQpUaGFua3MgZm9yIHRoZSBmZWVkYmFjaywgcGVyIHlvdXIgcXVlc3Rpb25z Og0KDQoxLiBUaGUgcHJpbWFyeSB1c2UgY2FzZSBmb3IgdGhpcyBpcyB0byBlbmFibGUgVUVGSSB2 YXJpYWJsZSB3cml0ZXMgYmVmb3JlIHBlcm1hbmVudCBtZW1vcnkgaXMgYXZhaWxhYmxlLg0KMi4g VGhlIGltcGxlbWVudGF0aW9uIGlzIGEgd29yayBpbiBwcm9ncmVzcy4gV2Ugd2lsbCBwcm92aWRl IGl0IHNob3J0bHkuIEFzIHRoaXMgd2lsbCBiZSBhIHJhdGhlciBsYXJnZSBwYXRjaCBzZXQsIEkg d291bGQgbGlrZSB0byBnZXQgdGhpcyBwaWVjZSBpbiBwbGFjZSBiZWZvcmVoYW5kIHNvIHRoYXQg dGhlIHJldmlld2VycyBjYW4gZm9jdXMgb24gdGhlIGltcGxlbWVudGF0aW9uIHNlcGFyYXRlIGZy b20gdGhlIEFQSSBkZWZpbml0aW9uLg0KMy4gTm8gaW1wYWN0IHRvIHNlY3VyZSBib290LiBXZSBh cmUgbm90IGdvaW5nIHRvIHN1cHBvcnQgd3JpdGluZyB0byBhdXRoZW50aWNhdGVkIHZhcmlhYmxl cyBpbiBQRUkuIEFzIG1lbnRpb25lZCBpbiB0aGUgY29tbWVudHMsIGlmIGEgUEVJTSB3aXNoZXMg dG8gdXBkYXRlIGFueSBvZiB0aGUgYXV0aGVudGljYXRlZCB2YXJpYWJsZXMgaXQgbXVzdCB1c2Ug dGhlIGV4aXN0aW5nIEhPQiBtZWNoYW5pc20gdG8gaGF2ZSBhIGxhdGVyIERYRSBwaGFzZSBwZXJm b3JtIHRoZSB1cGRhdGUuDQo0LiBXaXRoIHJlZ2FyZCB0byBhdG9taWNpdHksIHdlIGhhdmUgYSBj b21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZmF1bHQgdG9sZXJhbnQgd3JpdGUgc2Vydmlj ZXMgb3BlcmF0aW9uYWwgaW4gUHJlLU1lbW9yeSBQRUkuDQo1LiBHb29kIHBvaW50IG9uIHRoZSBT MyByZXN1bWUsIHdlIHdpbGwgbmVlZCB0byBhZGQgYW4gU01JIHRvIGhhdmUgdGhlIHZhcmlhYmxl IHNlcnZpY2VzIHJlLWluaXRpYWxpemUgdGhlIG1OdlZhcmlhYmxlQ2FjaGUuDQoNCkhvcGUgdGhh dCBoZWxwcywNCk5hdGUNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFlhbywg Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4gDQpTZW50OiBGcmlkYXksIEp1bmUgMTAsIDIw MjIgOTo1NiBBTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBtaWNoYWVsLmt1YmFja2lAb3V0 bG9vay5jb207IERlc2ltb25lLCBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50 ZWwuY29tPg0KQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBM aW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IE9yYW0sIElzYWFjIFcgPGlzYWFjLncub3JhbUBpbnRl bC5jb20+OyBDaGl1LCBDaGFzZWwgPGNoYXNlbC5jaGl1QGludGVsLmNvbT47IENoZW5nLCBHYW8g PGdhby5jaGVuZ0BpbnRlbC5jb20+OyBaaGFuZywgRGkgPGRpLnpoYW5nQGludGVsLmNvbT47IEJ1 LCBEYW9jaGVuZyA8ZGFvY2hlbmcuYnVAaW50ZWwuY29tPjsgS3ViYWNraSwgTWljaGFlbCA8bWlj aGFlbC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQpTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQ QVRDSCBWMSAxLzFdIE1kZU1vZHVsZVBrZzogQWRkIERlZmluaXRpb24gb2YgRURLSUlfUEVJX1ZB UklBQkxFX1BQSQ0KDQpIaQ0KDQpJIGFtIGN1cmlvdXMgd2h5IHdlIG5lZWQgdGhpcyBpbnRlcmZh Y2UuIFdoeSB3ZSBuZWVkIHdyaXRlIHZhcmlhYmxlIGNhcGFiaWxpdHkgaW4gUEVJIHBoYXNlPw0K DQpXaGVyZSBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcz8gSSBwcmVmZXIgdG8gc2VlIGFu IGltcGxlbWVudGF0aW9uIHN1Ym1pdHRlZCB0b2dldGhlciB3aXRoIGhlYWRlciBmaWxlLg0KRm9y IGV4YW1wbGUsIHdoYXQgaXMgdGhlIGltcGFjdCB0byBzZWN1cmUgYm9vdCByZWxhdGVkIGZlYXR1 cmUsIGhvdyB0byB3cml0ZSBhdXRoIHZhcmlhYmxlIGluIFBFSSwgaG93IFBFSSB3cml0ZSB2YXJp YWJsZSBjb3dvcmsgd2l0aCBTTU0gdmVyc2lvbiBpbiBTMyByZXN1bWUgcGhhc2UsIGhvdyB0byBz dXBwb3J0IHZhcmlhYmxlIGF0b21pY2l0eSwgZXRjLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4N Cg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3Jv dXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIE1pY2hhZWwgDQo+IEt1 YmFja2kNCj4gU2VudDogRnJpZGF5LCBKdW5lIDEwLCAyMDIyIDEwOjAwIEFNDQo+IFRvOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgRGVzaW1vbmUsIE5hdGhhbmllbCBMIA0KPiA8bmF0aGFuaWVsLmwu ZGVzaW1vbmVAaW50ZWwuY29tPg0KPiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRl bC5jb20+OyBHYW8sIExpbWluZyANCj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEtpbm5l eSwgTWljaGFlbCBEIA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBPcmFtLCBJc2Fh YyBXIDxpc2FhYy53Lm9yYW1AaW50ZWwuY29tPjsgDQo+IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNo aXVAaW50ZWwuY29tPjsgQ2hlbmcsIEdhbyANCj4gPGdhby5jaGVuZ0BpbnRlbC5jb20+OyBaaGFu ZywgRGkgPGRpLnpoYW5nQGludGVsLmNvbT47IEJ1LCBEYW9jaGVuZyANCj4gPGRhb2NoZW5nLmJ1 QGludGVsLmNvbT47IEt1YmFja2ksIE1pY2hhZWwgDQo+IDxtaWNoYWVsLmt1YmFja2lAbWljcm9z b2Z0LmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjEgMS8xXSBNZGVN b2R1bGVQa2c6IEFkZCBEZWZpbml0aW9uIA0KPiBvZiBFREtJSV9QRUlfVkFSSUFCTEVfUFBJDQo+ IA0KPiBJcyB0aGlzIGNoYW5nZSBqdXN0IGFkZGluZyB0aGUgaW50ZXJmYWNlIHRvIFRpYW5vY29y ZSBvciBpcyB0aGVyZSANCj4gYWRkaXRpb25hbCBpbXBsZW1lbnRhdGlvbiBwbGFubmVkIGFzIHdl bGw/DQo+IA0KPiAtLS0NCj4gDQo+IEkgdGhvdWdodCB3ZSB3ZXJlIGZvbGxvd2luZyB0aGlzIGNv bnZlbnRpb24gbm93Og0KPiANCj4gIiNpZm5kZWYgX19QRUlfVkFSSUFCTEVfUFBJX0hfIiAtPiAi I2lmbmRlZiBQRUlfVkFSSUFCTEVfUFBJX0hfIg0KPiANCj4gU29tZSBvdGhlciBjb21tZW50cyBh cmUgaW5saW5lLg0KPiANCj4gUmVnYXJkcywNCj4gTWljaGFlbA0KPiANCj4gT24gNi85LzIwMjIg OToxNyBQTSwgTmF0ZSBEZVNpbW9uZSB3cm90ZToNCj4gPiBBZGRzIGRlZmluaXRpb24gb2YgRURL SUlfUEVJX1ZBUklBQkxFX1BQSSwgYSBwcmUtY3Vyc29yIHRvIGVuYWJsaW5nIA0KPiA+IHZhcmlh YmxlIHdyaXRlcyBpbiB0aGUgUEVJIGVudmlyb25tZW50Lg0KPiA+DQo+ID4gQ2M6IEppYW4gSiBX YW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWlu Z0BieW9zb2Z0LmNvbS5jbj4NCj4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQo+ID4gQ2M6IElzYWFjIE9yYW0gPGlzYWFjLncub3JhbUBpbnRlbC5j b20+DQo+ID4gQ2M6IENoYXNlbCBDaGl1IDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+DQo+ID4gQ2M6 IEdhbyBDaGVuZyA8Z2FvLmNoZW5nQGludGVsLmNvbT4NCj4gPiBDYzogRGkgWmhhbmcgPGRpLnpo YW5nQGludGVsLmNvbT4NCj4gPiBDYzogRGFvY2hlbmcgQnUgPGRhb2NoZW5nLmJ1QGludGVsLmNv bT4NCj4gPiBDYzogTWljaGFlbCBLdWJhY2tpIDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNv bT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBOYXRlIERlU2ltb25lIDxuYXRoYW5pZWwubC5kZXNpbW9u ZUBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gICBNZGVNb2R1bGVQa2cvSW5jbHVkZS9QcGkvVmFy aWFibGUuaCB8IDE4OQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gICBNZGVN b2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYyAgICAgICB8ICAgMyArDQo+ID4gICAyIGZpbGVzIGNo YW5nZWQsIDE5MiBpbnNlcnRpb25zKCspDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlTW9k dWxlUGtnL0luY2x1ZGUvUHBpL1ZhcmlhYmxlLmgNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9NZGVN b2R1bGVQa2cvSW5jbHVkZS9QcGkvVmFyaWFibGUuaA0KPiBiL01kZU1vZHVsZVBrZy9JbmNsdWRl L1BwaS9WYXJpYWJsZS5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAw MDAwMDAwLi45N2RjN2NlZWZhDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL01kZU1vZHVs ZVBrZy9JbmNsdWRlL1BwaS9WYXJpYWJsZS5oDQo+ID4gQEAgLTAsMCArMSwxODkgQEANCj4gPiAr LyoqIEBmaWxlDQo+ID4gKyAgRURLSUkgUEVJIFZhcmlhYmxlIFByb3RvY29sIHByb3ZpZGVzIGFu IGltcGxlbWVudGF0aW9uIG9mIA0KPiA+ICt2YXJpYWJsZXMNCj4gDQo+IFtNS10gV2FzICJFREtJ SSBQRUkgVmFyaWFibGUgUFBJIiBpbnRlbmRlZD8NCj4gDQo+ID4gKyAgaW50ZW5kZWQgZm9yIHVz ZSBhcyBhIG1lYW5zIHRvIHN0b3JlIGRhdGEgaW4gdGhlIFBFSSBlbnZpcm9ubWVudC4NCj4gPiAr DQo+ID4gKyAgQ29weXJpZ2h0IChjKSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ID4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gPiArDQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBfX1BFSV9W QVJJQUJMRV9QUElfSF8NCj4gPiArI2RlZmluZSBfX1BFSV9WQVJJQUJMRV9QUElfSF8NCj4gPiAr DQo+ID4gKyNkZWZpbmUgRURLSUlfUEVJX1ZBUklBQkxFX1BQSV9HVUlEIFwNCj4gPiArICB7IFwN Cj4gPiArICAgIDB4ZTdiMmNkMDQsIDB4NGIxNCwgMHg0NGMyLCB7IDB4YjcsIDB4NDgsIDB4Y2Us IDB4YWYsIDB4MmIsIA0KPiA+ICsweDY2LCAweDRhLA0KPiAweGIwIH0gXA0KPiA+ICsgIH0NCj4g PiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IF9FREtJSV9QRUlfVkFSSUFCTEVfUFBJIEVES0lJX1BF SV9WQVJJQUJMRV9QUEk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBUaGlzIHNlcnZpY2UgcmV0 cmlldmVzIGEgdmFyaWFibGUncyB2YWx1ZSB1c2luZyBpdHMgbmFtZSBhbmQgR1VJRC4NCj4gPiAr DQo+ID4gKyAgUmVhZCB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlIGZyb20gdGhlIFVFRkkgdmFyaWFi bGUgc3RvcmUuIElmIHRoZSANCj4gPiArIERhdGEgIGJ1ZmZlciBpcyB0b28gc21hbGwgdG8gaG9s ZCB0aGUgY29udGVudHMgb2YgdGhlIHZhcmlhYmxlLCAgDQo+ID4gKyB0aGUgZXJyb3IgRUZJX0JV RkZFUl9UT09fU01BTEwgaXMgcmV0dXJuZWQgYW5kIERhdGFTaXplIGlzIHNldCB0byANCj4gPiAr IHRoZSAgcmVxdWlyZWQgYnVmZmVyIHNpemUgdG8gb2J0YWluIHRoZSBkYXRhLg0KPiA+ICsNCj4g PiArICBAcGFyYW1baW5dICAgICAgICBUaGlzICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhp cyBpbnN0YW5jZSBvZiB0aGUNCj4gRURLSUlfUEVJX1ZBUklBQkxFX1BQSS4NCj4gPiArICBAcGFy YW1baW5dICAgICAgICBWYXJpYWJsZU5hbWUgICAgICBBIHBvaW50ZXIgdG8gYSBudWxsLXRlcm1p bmF0ZWQgc3RyaW5nIHRoYXQNCj4gaXMgdGhlIHZhcmlhYmxlJ3MgbmFtZS4NCj4gPiArICBAcGFy YW1baW5dICAgICAgICBWYXJpYWJsZUd1aWQgICAgICBBIHBvaW50ZXIgdG8gYW4gRUZJX0dVSUQg dGhhdCBpcyB0aGUNCj4gdmFyaWFibGUncyBHVUlELiBUaGUgY29tYmluYXRpb24gb2YNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZUd1aWQgYW5kIFZh cmlhYmxlTmFtZSBtdXN0IGJlIHVuaXF1ZS4NCj4gPiArICBAcGFyYW1bb3V0XSAgICAgICBBdHRy aWJ1dGVzICAgICAgICBJZiBub24tTlVMTCwgb24gcmV0dXJuLCBwb2ludHMgdG8gdGhlDQo+IHZh cmlhYmxlJ3MgYXR0cmlidXRlcy4NCj4gPiArICBAcGFyYW1baW4sIG91dF0gICBEYXRhU2l6ZSAg ICAgICAgICBPbiBlbnRyeSwgcG9pbnRzIHRvIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZQ0KPiBE YXRhIGJ1ZmZlci4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP biByZXR1cm4sIHBvaW50cyB0byB0aGUgc2l6ZSBvZiB0aGUgZGF0YSByZXR1cm5lZCBpbiBEYXRh Lg0KPiA+ICsgIEBwYXJhbVtvdXRdICAgICAgIERhdGEgICAgICAgICAgICAgIFBvaW50cyB0byB0 aGUgYnVmZmVyIHdoaWNoIHdpbGwgaG9sZCB0aGUNCj4gcmV0dXJuZWQgdmFyaWFibGUgdmFsdWUu DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF5IGJlIE5VTEwg d2l0aCBhIHplcm8gDQo+ID4gKyBEYXRhU2l6ZSBpbiBvcmRlciB0byBkZXRlcm1pbmUNCj4gdGhl IHNpemUgb2YgdGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnVmZmVyIG5lZWRlZC4NCj4gPiArDQo+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAg ICAgICAgICAgVGhlIHZhcmlhYmxlIHdhcyByZWFkIHN1Y2Nlc3NmdWxseS4NCj4gPiArICBAcmV0 dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICAgICAgICBUaGUgdmFyaWFibGUgd2FzIG5vdCBmb3Vu ZC4NCj4gPiArICBAcmV0dmFsIEVGSV9CVUZGRVJfVE9PX1NNQUxMICAgICAgICBUaGUgRGF0YVNp emUgaXMgdG9vIHNtYWxsIGZvciB0aGUNCj4gcmVzdWx0aW5nIGRhdGEuDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVNpemUgaXMgdXBkYXRlZCB3aXRoIHRo ZSBzaXplIHJlcXVpcmVkIGZvcg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuDQo+ID4gKyAgQHJldHZhbCBFRklfSU5WQUxJ RF9QQVJBTUVURVIgICAgICAgVmFyaWFibGVOYW1lLCBWYXJpYWJsZUd1aWQsDQo+IERhdGFTaXpl IG9yIERhdGEgaXMgTlVMTC4NCj4gPiArICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICAg ICAgICBUaGUgdmFyaWFibGUgY291bGQgbm90IGJlIHJldHJpZXZlZA0KPiBiZWNhdXNlIG9mIGEg ZGV2aWNlIGVycm9yLg0KPiA+ICsNCj4gPiArKiovDQo+ID4gK3R5cGVkZWYNCj4gPiArRUZJX1NU QVRVUw0KPiA+ICsoRUZJQVBJICpFREtJSV9QRUlfR0VUX1ZBUklBQkxFKSgNCj4gPiArICBJTiBD T05TVCAgRURLSUlfUEVJX1ZBUklBQkxFX1BQSSAgICAqVGhpcywNCj4gPiArICBJTiBDT05TVCAg Q0hBUjE2ICAgICAgICAgICAgICAgICAgICAqVmFyaWFibGVOYW1lLA0KPiA+ICsgIElOIENPTlNU ICBFRklfR1VJRCAgICAgICAgICAgICAgICAgICpWYXJpYWJsZUd1aWQsDQo+ID4gKyAgT1VUICAg ICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgKkF0dHJpYnV0ZXMsDQo+IA0KPiBbTUtdIEJh c2VkIG9uIHRoZSBkZXNjcmlwdGlvbiwgQXR0cmlidXRlcyBzaG91bGQgYmUgbWFya2VkICJPUFRJ T05BTCIuDQo+IA0KPiA+ICsgIElOIE9VVCAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICpE YXRhU2l6ZSwNCj4gPiArICBPVVQgICAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAqRGF0 YSBPUFRJT05BTA0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBSZXR1cm4gdGhl IG5leHQgdmFyaWFibGUgbmFtZSBhbmQgR1VJRC4NCj4gPiArDQo+ID4gKyAgVGhpcyBmdW5jdGlv biBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gcmV0cmlldmUgdGhlIA0KPiA+ICsgVmFyaWFi bGVOYW1lICBhbmQgVmFyaWFibGVHdWlkIG9mIGFsbCB2YXJpYWJsZXMgY3VycmVudGx5IGF2YWls YWJsZSBpbiB0aGUgc3lzdGVtLg0KPiA+ICsgIE9uIGVhY2ggY2FsbCwgdGhlIHByZXZpb3VzIHJl c3VsdHMgYXJlIHBhc3NlZCBpbnRvIHRoZSBpbnRlcmZhY2UsICANCj4gPiArIGFuZCwgb24gcmV0 dXJuLCB0aGUgaW50ZXJmYWNlIHJldHVybnMgdGhlIGRhdGEgZm9yIHRoZSBuZXh0ICANCj4gPiAr IGludGVyZmFjZS4gV2hlbiB0aGUgZW50aXJlIHZhcmlhYmxlIGxpc3QgaGFzIGJlZW4gcmV0dXJu ZWQsICANCj4gPiArIEVGSV9OT1RfRk9VTkQgaXMgcmV0dXJuZWQuDQo+ID4gKw0KPiANCj4gW01L XSBJIGtub3cgb3RoZXIgZGVzY3JpcHRpb25zIGRvbid0IHVzdWFsbHkgaGF2ZSBpdCBidXQgaXQg d291bGQgYmUgDQo+IG5pY2UgdG8gZGVzY3JpYmUgdGhlIGluaXRpYWwgY2FsbGluZyB2YWx1ZXMg ZXhwZWN0ZWQuDQo+IA0KPiA+ICsgIEBwYXJhbVtpbl0gICAgICAgIFRoaXMgICAgICAgICAgICAg IEEgcG9pbnRlciB0byB0aGlzIGluc3RhbmNlIG9mIHRoZQ0KPiBFREtJSV9QRUlfVkFSSUFCTEVf UFBJLg0KPiA+ICsgIEBwYXJhbVtpbiwgb3V0XSAgIFZhcmlhYmxlTmFtZVNpemUgIE9uIGVudHJ5 LCBwb2ludHMgdG8gdGhlIHNpemUgb2YgdGhlDQo+IGJ1ZmZlciBwb2ludGVkIHRvIGJ5IFZhcmlh YmxlTmFtZS4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbiBy ZXR1cm4sIHRoZSBzaXplIG9mIHRoZSB2YXJpYWJsZSBuYW1lIGJ1ZmZlci4NCj4gPiArICBAcGFy YW1baW4sIG91dF0gICBWYXJpYWJsZU5hbWUgICAgICBPbiBlbnRyeSwgYSBwb2ludGVyIHRvIGEg bnVsbC10ZXJtaW5hdGVkDQo+IHN0cmluZyB0aGF0IGlzIHRoZSB2YXJpYWJsZSdzIG5hbWUuDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT24gcmV0dXJuLCBwb2lu dHMgdG8gdGhlIG5leHQgDQo+ID4gKyB2YXJpYWJsZSdzIG51bGwtdGVybWluYXRlZA0KPiBuYW1l IHN0cmluZy4NCj4gPiArICBAcGFyYW1baW4sIG91dF0gICBWYXJpYWJsZUd1aWQgICAgICBPbiBl bnRyeSwgYSBwb2ludGVyIHRvIGFuIEVGSV9HVUlEIHRoYXQgaXMNCj4gdGhlIHZhcmlhYmxlJ3Mg R1VJRC4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbiByZXR1 cm4sIGEgcG9pbnRlciB0byB0aGUgbmV4dCB2YXJpYWJsZSdzIEdVSUQuDQo+ID4gKw0KPiA+ICsg IEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgICAgIFRoZSB2YXJpYWJsZSB3YXMgcmVh ZCBzdWNjZXNzZnVsbHkuDQo+ID4gKyAgQHJldHZhbCBFRklfTk9UX0ZPVU5EICAgICAgICAgICAg ICAgVGhlIHZhcmlhYmxlIGNvdWxkIG5vdCBiZSBmb3VuZC4NCj4gPiArICBAcmV0dmFsIEVGSV9C VUZGRVJfVE9PX1NNQUxMICAgICAgICBUaGUgVmFyaWFibGVOYW1lU2l6ZSBpcyB0b28gc21hbGwg Zm9yDQo+IHRoZSByZXN1bHRpbmcNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhLiBWYXJpYWJsZU5hbWVTaXplIGlzIHVwZGF0ZWQgd2l0aCB0aGUgc2l6ZQ0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIGZvciB0 aGUgc3BlY2lmaWVkIHZhcmlhYmxlLg0KPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1F VEVSICAgICAgIFZhcmlhYmxlTmFtZSwgVmFyaWFibGVHdWlkIG9yDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVOYW1lU2l6ZSBpcyBOVUxMLg0KPiA+ ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgICAgICAgIFRoZSB2YXJpYWJsZSBjb3Vs ZCBub3QgYmUgcmV0cmlldmVkDQo+IGJlY2F1c2Ugb2YgYSBkZXZpY2UgZXJyb3IuDQo+ID4gKw0K PiA+ICsqKi8NCj4gPiArdHlwZWRlZg0KPiA+ICtFRklfU1RBVFVTDQo+ID4gKyhFRklBUEkgKkVE S0lJX1BFSV9HRVRfTkVYVF9WQVJJQUJMRV9OQU1FKSgNCj4gPiArICBJTiBDT05TVCAgRURLSUlf UEVJX1ZBUklBQkxFX1BQSSAgICAqVGhpcywNCj4gPiArICBJTiBPVVQgICAgVUlOVE4gICAgICAg ICAgICAgICAgICAgICAqVmFyaWFibGVOYW1lU2l6ZSwNCj4gPiArICBJTiBPVVQgICAgQ0hBUjE2 ICAgICAgICAgICAgICAgICAgICAqVmFyaWFibGVOYW1lLA0KPiA+ICsgIElOIE9VVCAgICBFRklf R1VJRCAgICAgICAgICAgICAgICAgICpWYXJpYWJsZUd1aWQNCj4gPiArICApOw0KPiA+ICsNCj4g PiArLyoqDQo+ID4gKyAgU2V0cyB0aGUgdmFsdWUgb2YgYSB2YXJpYWJsZS4NCj4gPiArDQo+ID4g KyAgQHBhcmFtW2luXSAgICAgICAgVGhpcyAgICAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoaXMg aW5zdGFuY2Ugb2YgdGhlDQo+IEVES0lJX1BFSV9WQVJJQUJMRV9QUEkuDQo+ID4gKyAgQHBhcmFt W2luXSAgICAgICAgVmFyaWFibGVOYW1lICAgICAgQSBOdWxsLXRlcm1pbmF0ZWQgc3RyaW5nIHRo YXQgaXMgdGhlIG5hbWUNCj4gb2YgdGhlIHZlbmRvcidzIHZhcmlhYmxlLg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVhY2ggVmFyaWFibGVOYW1lIGlzIHVuaXF1 ZSBmb3IgZWFjaCBWZW5kb3JHdWlkLg0KPiBWYXJpYWJsZU5hbWUgbXVzdA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW4gMSBvciBtb3JlIGNoYXJhY3Rl cnMuIA0KPiA+ICsgSWYgVmFyaWFibGVOYW1lIGlzIGFuDQo+IGVtcHR5IHN0cmluZywNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIEVGSV9JTlZBTElEX1BB UkFNRVRFUiBpcyByZXR1cm5lZC4NCj4gPiArICBAcGFyYW1baW5dICAgICAgICBWZW5kb3JHdWlk ICAgICAgICBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdmVuZG9yLg0KPiA+ICsgIEBwYXJh bVtpbl0gICAgICAgIEF0dHJpYnV0ZXMgICAgICAgIEF0dHJpYnV0ZXMgYml0bWFzayB0byBzZXQg Zm9yIHRoZSB2YXJpYWJsZS4NCj4gPiArICBAcGFyYW1baW5dICAgICAgICBEYXRhU2l6ZSAgICAg ICAgICBUaGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgRGF0YSBidWZmZXIuIFVubGVzcw0KPiB0aGUg RUZJX1ZBUklBQkxFX0FQUEVORF9XUklURQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyBzZXQsIGEgc2l6ZSBvZiANCj4gPiArIHplcm8gY2F1 c2VzIHRoZSB2YXJpYWJsZSB0byBiZQ0KPiBkZWxldGVkLiBXaGVuIHRoZQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9WQVJJQUJMRV9BUFBFTkRfV1JJVEUg DQo+ID4gKyBhdHRyaWJ1dGUgaXMgc2V0LCB0aGVuIGENCj4gU2V0VmFyaWFibGUoKSBjYWxsIHdp dGggYQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTaXpl IG9mIHplcm8gd2lsbCBub3QgDQo+ID4gKyBjYXVzZSBhbnkgY2hhbmdlIHRvIHRoZQ0KPiB2YXJp YWJsZSB2YWx1ZS4NCj4gPiArICBAcGFyYW1baW5dICAgICAgICBEYXRhICAgICAgICAgICAgICBU aGUgY29udGVudHMgZm9yIHRoZSB2YXJpYWJsZS4NCj4gPiArDQo+ID4gKyAgQHJldHZhbCBFRklf U1VDQ0VTUyAgICAgICAgICAgICAgICAgVGhlIGZpcm13YXJlIGhhcyBzdWNjZXNzZnVsbHkgc3Rv cmVkIHRoZQ0KPiB2YXJpYWJsZSBhbmQgaXRzIGRhdGEgYXMNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkIGJ5IHRoZSBBdHRyaWJ1dGVzLg0KPiA+ICsg IEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgICAgIEFuIGludmFsaWQgY29tYmluYXRp b24gb2YgYXR0cmlidXRlDQo+IGJpdHMsIG5hbWUsIGFuZCBHVUlEIHdhcyBzdXBwbGllZCwgb3Ig dGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVNpemUg ZXhjZWVkcyB0aGUgbWF4aW11bSBhbGxvd2VkLg0KPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURf UEFSQU1FVEVSICAgICAgIFZhcmlhYmxlTmFtZSBpcyBhbiBlbXB0eSBzdHJpbmcuDQo+ID4gKyAg QHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgICAgICAgTm90IGVub3VnaCBzdG9yYWdlIGlz IGF2YWlsYWJsZSB0bw0KPiBob2xkIHRoZSB2YXJpYWJsZSBhbmQgaXRzIGRhdGEuDQo+ID4gKyAg QHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgICAgICAgVGhlIHZhcmlhYmxlIGNvdWxkIG5v dCBiZSByZXRyaWV2ZWQgZHVlDQo+IHRvIGEgaGFyZHdhcmUgZXJyb3IuDQo+ID4gKyAgQHJldHZh bCBFRklfV1JJVEVfUFJPVEVDVEVEICAgICAgICAgVGhlIHZhcmlhYmxlIGluIHF1ZXN0aW9uIGlz IHJlYWQtb25seS4NCj4gPiArICBAcmV0dmFsIEVGSV9XUklURV9QUk9URUNURUQgICAgICAgICBU aGUgdmFyaWFibGUgaW4gcXVlc3Rpb24gY2Fubm90IGJlDQo+IGRlbGV0ZWQuDQo+ID4gKyAgQHJl dHZhbCBFRklfU0VDVVJJVFlfVklPTEFUSU9OICAgICAgVGhlIHZhcmlhYmxlIGNvdWxkIG5vdCBi ZSB3cml0dGVuIGR1ZQ0KPiB0byBFRklfVkFSSUFCTEVfQVVUSEVOVElDQVRFRF9XUklURV9BQ0NF U1MsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3INCj4gRUZJ X1ZBUklBQkxFX1RJTUVfQkFTRURfQVVUSEVOVElDQVRFRF9XUklURV9BQ0NFU1MsIG9yDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gKyBFRklfVkFSSUFC TEVfRU5IQU5DRURfQVVUSEVOVElDQVRFRF9BQ0NFU1MNCj4gYmVpbmcgc2V0LiBXcml0aW5nIHRv IGF1dGhlbnRpY2F0ZWQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2YXJpYWJsZXMgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgUEVJIGVudmlyb25tZW50Lg0KPiBV cGRhdGVzIHRvIGF1dGhlbnRpY2F0ZWQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2YXJpYWJsZXMgY2FuIGJlIHJlcXVlc3RlZCANCj4gPiArIGR1cmluZyBQRUkg dmlhIHRoZQ0KPiBFRklfQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IT0IsIGJ1dA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZXNlIHVwZGF0ZXMgd29uJ3QgYmUg DQo+ID4gKyB3cml0dGVuIHRvIG5vbi12b2xhdGlsZSBzdG9yYWdlDQo+IHVudGlsIGxhdGVyIGlu IERYRS4gU2VlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ ID4gKyBNZGVNb2R1bGVQa2cvSW5jbHVkZS9HdWlkL1ZhcmlhYmxlRm9ybWF0LmggZm9yDQo+IG1v cmUgZGV0YWlscyBvbg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVGSV9BVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hPQi4NCj4gDQo+IFtNS10gSSBkaWRuJ3Qgc2Vl ICJFRklfQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IT0IiIG1lbnRpb25lZCBpbiANCj4gVmFyaWFi bGVGb3JtYXQuaC4NCj4gDQo+IFtNS10gSXQgc2VlbXMgdGhhdCBpZiBhIGNvbnRyYWN0IGZvciBw cm9kdWNpbmcgYW5kIHRoZW4gY29uc3VtaW5nIHRoaXMgDQo+IEhPQiBpcyBnb2luZyB0byBiZSBk ZWZpbmVkIGJldHdlZW4gdGhlIEhPQiBwcm9kdWNlciBhbmQgY29uc3VtZXIgDQo+IHBoYXNlLCBp dCBzaG91bGQgYmUgZGVzY3JpYmVkIGluIHNvbWV0aGluZyBsaWtlIHRoZSBQSSBTcGVjLg0KPiAN Cj4gPiArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICAgICAgICBUaGUgdmFyaWFibGUg dHJ5aW5nIHRvIGJlIHVwZGF0ZWQgb3INCj4gZGVsZXRlZCB3YXMgbm90IGZvdW5kLg0KPiA+ICsN Cj4gPiArKiovDQo+ID4gK3R5cGVkZWYNCj4gPiArRUZJX1NUQVRVUw0KPiA+ICsoRUZJQVBJICpF REtJSV9QRUlfU0VUX1ZBUklBQkxFKSgNCj4gPiArICBJTiBDT05TVCAgRURLSUlfUEVJX1ZBUklB QkxFX1BQSSAgICAqVGhpcywNCj4gPiArICBJTiAgICAgICAgQ0hBUjE2ICAgICAgICAgICAgICAg ICAgICAqVmFyaWFibGVOYW1lLA0KPiA+ICsgIElOICAgICAgICBFRklfR1VJRCAgICAgICAgICAg ICAgICAgICpWZW5kb3JHdWlkLA0KPiA+ICsgIElOICAgICAgICBVSU5UMzIgICAgICAgICAgICAg ICAgICAgIEF0dHJpYnV0ZXMsDQo+ID4gKyAgSU4gICAgICAgIFVJTlROICAgICAgICAgICAgICAg ICAgICAgRGF0YVNpemUsDQo+ID4gKyAgSU4gICAgICAgIFZPSUQgICAgICAgICAgICAgICAgICAg ICAgKkRhdGENCj4gPiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgUmV0dXJucyBpbmZv cm1hdGlvbiBhYm91dCB0aGUgVUVGSSB2YXJpYWJsZXMuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtp bl0gICAgICAgIFRoaXMgICAgICAgICAgICAgICAgICAgICAgICAgIEEgcG9pbnRlciB0byB0aGlz IGluc3RhbmNlIG9mIHRoZQ0KPiBFREtJSV9QRUlfVkFSSUFCTEVfUFBJLg0KPiA+ICsgIEBwYXJh bVtpbl0gICAgICAgIEF0dHJpYnV0ZXMgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXMgYml0 bWFzayB0byBzcGVjaWZ5IHRoZSB0eXBlDQo+IG9mIHZhcmlhYmxlcyBvbg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIHRvIHJldHVy biBpbmZvcm1hdGlvbi4NCj4gPiArICBAcGFyYW1bb3V0XSAgICAgICBNYXhpbXVtVmFyaWFibGVT dG9yYWdlU2l6ZSAgICBPbiBvdXRwdXQgdGhlIG1heGltdW0NCj4gc2l6ZSBvZiB0aGUgc3RvcmFn ZSBzcGFjZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGF2YWlsYWJsZSBmb3IgdGhlIEVGSSB2YXJpYWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRo ZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGF0dHJpYnV0ZXMgc3BlY2lmaWVkLg0KPiA+ICsgIEBwYXJhbVtvdXRdICAgICAgIFJlbWFpbmlu Z1ZhcmlhYmxlU3RvcmFnZVNpemUgIFJldHVybnMgdGhlIHJlbWFpbmluZyBzaXplDQo+IG9mIHRo ZSBzdG9yYWdlIHNwYWNlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXZhaWxhYmxlIGZvciB0aGUgRUZJIHZhcmlhYmxlcyBhc3NvY2lhdGVk IHdpdGggdGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXR0cmlidXRlcyBzcGVjaWZpZWQuDQo+ID4gKyAgQHBhcmFtW291dF0gICAgICAg TWF4aW11bVZhcmlhYmxlU2l6ZSAgICAgICAgICAgUmV0dXJucyB0aGUgbWF4aW11bSBzaXplIG9m DQo+IHRoZSBpbmRpdmlkdWFsIEVGSQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGF0dHJp YnV0ZXMgc3BlY2lmaWVkLg0KPiA+ICsNCj4gPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWYWxpZCBhbnN3ZXIgcmV0dXJuZWQuDQo+ID4gKyAgQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgICAgICAgICAgICAgICAgQW4gaW52YWxpZCBj b21iaW5hdGlvbiBvZg0KPiBhdHRyaWJ1dGUgYml0cyB3YXMgc3VwcGxpZWQNCj4gPiArICBAcmV0 dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRl IGlzIG5vdCBzdXBwb3J0ZWQgb24NCj4gdGhpcyBwbGF0Zm9ybSwgYW5kIHRoZQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heGltdW1WYXJp YWJsZVN0b3JhZ2VTaXplLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIA0KPiA+ICsgUmVtYWluaW5nVmFyaWFibGVTdG9yYWdlU2l6ZSwNCj4g TWF4aW11bVZhcmlhYmxlU2l6ZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFyZSB1bmRlZmluZWQuDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiAr dHlwZWRlZg0KPiA+ICtFRklfU1RBVFVTDQo+ID4gKyhFRklBUEkgKkVES0lJX1BFSV9RVUVSWV9W QVJJQUJMRV9JTkZPKSgNCj4gPiArICBJTiBDT05TVCAgRURLSUlfUEVJX1ZBUklBQkxFX1BQSSAg ICAqVGhpcywNCj4gPiArICBJTiAgICAgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICBBdHRy aWJ1dGVzLA0KPiA+ICsgIE9VVCAgICAgICBVSU5UNjQgICAgICAgICAgICAgICAgICAgICpNYXhp bXVtVmFyaWFibGVTdG9yYWdlU2l6ZSwNCj4gPiArICBPVVQgICAgICAgVUlOVDY0ICAgICAgICAg ICAgICAgICAgICAqUmVtYWluaW5nVmFyaWFibGVTdG9yYWdlU2l6ZSwNCj4gPiArICBPVVQgICAg ICAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAqTWF4aW11bVZhcmlhYmxlU2l6ZQ0KPiA+ICsg ICk7DQo+ID4gKw0KPiA+ICsvLy8NCj4gPiArLy8vIFBFSSBWYXJpYWJsZSBQcm90b2NvbCBpcyBp bnRlbmRlZCBmb3IgdXNlIGFzIGEgbWVhbnMNCj4gDQo+IFtNS10gV2FzICJQRUkgVmFyaWFibGUg UFBJIiBpbnRlbmRlZD8NCj4gDQo+ID4gKy8vLyB0byBzdG9yZSBkYXRhIGluIHRoZSBQRUkgZW52 aXJvbm1lbnQuDQo+ID4gKy8vLw0KPiA+ICtzdHJ1Y3QgX0VES0lJX1BFSV9WQVJJQUJMRV9QUEkg ew0KPiA+ICsgIEVES0lJX1BFSV9HRVRfVkFSSUFCTEUgICAgICAgICAgICBHZXRWYXJpYWJsZTsN Cj4gPiArICBFREtJSV9QRUlfR0VUX05FWFRfVkFSSUFCTEVfTkFNRSAgR2V0TmV4dFZhcmlhYmxl TmFtZTsNCj4gPiArICBFREtJSV9QRUlfU0VUX1ZBUklBQkxFICAgICAgICAgICAgU2V0VmFyaWFi bGU7DQo+ID4gKyAgRURLSUlfUEVJX1FVRVJZX1ZBUklBQkxFX0lORk8gICAgIFF1ZXJ5VmFyaWFi bGVJbmZvOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZXh0ZXJuIEVGSV9HVUlEICBnRWRraWlQZWlW YXJpYWJsZVBwaUd1aWQ7DQo+ID4gKw0KPiA+ICsjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvTWRl TW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gYi9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtn LmRlYw0KPiA+IGluZGV4IDJiY2I5Zjk0NTMuLjRmNGM0OGI4MWYgMTAwNjQ0DQo+ID4gLS0tIGEv TWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gPiArKysgYi9NZGVNb2R1bGVQa2cvTWRl TW9kdWxlUGtnLmRlYw0KPiA+IEBAIC01MTMsNiArNTEzLDkgQEANCj4gPiAgICAgZ0Vka2lpUGVp Q2Fwc3VsZU9uRGlza1BwaUd1aWQgICAgICAgICAgICAgPSB7IDB4NzFhOWVhNjEsIDB4NWEzNSwg MHg0YTVkLA0KPiB7IDB4YWMsIDB4ZWYsIDB4OWMsIDB4ZjgsIDB4NmQsIDB4NmQsIDB4NjcsIDB4 ZTAgfSB9DQo+ID4gICAgIGdFZGtpaVBlaUJvb3RJbkNhcHN1bGVPbkRpc2tNb2RlUHBpR3VpZCAg ID0geyAweGIwOGExMWU0LCAweGUyYjcsDQo+IDB4NGI3NSwgeyAweGI1LCAweDE1LCAweGFmLCAw eDYxLCAweDYsIDB4NjgsIDB4YmYsIDB4ZDEgIH0gfQ0KPiA+DQo+ID4gKyAgIyMgSW5jbHVkZS9Q cGkvVmFyaWFibGUuaA0KPiA+ICsgIGdFZGtpaVBlaVZhcmlhYmxlUHBpR3VpZCAgICAgICAgICAg ICAgICAgID0geyAweGU3YjJjZDA0LCAweDRiMTQsIDB4NDRjMiwgeyAweGI3LA0KPiAweDQ4LCAw eGNlLCAweGFmLCAweDJiLCAweDY2LCAweDRhLCAweGIwIH0gfQ0KPiA+ICsNCj4gPiAgIFtQcm90 b2NvbHNdDQo+ID4gICAgICMjIExvYWQgRmlsZSBwcm90b2NvbCBwcm92aWRlcyBjYXBhYmlsaXR5 IHRvIGxvYWQgYW5kIHVubG9hZCBFRkkgDQo+ID4gaW1hZ2UgaW50bw0KPiBtZW1vcnkgYW5kIGV4 ZWN1dGUgaXQuDQo+ID4gICAgICMgIEluY2x1ZGUvUHJvdG9jb2wvTG9hZFBlMzJJbWFnZS5oDQo+ IA0KPiANCj4gDQo+IA0KDQo=