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.web11.187262.1673921849127032730 for ; Mon, 16 Jan 2023 18:17:29 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=AKZVsen4; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: jiewen.yao@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673921849; x=1705457849; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=TGF8tsGkx5OOTbAPs+0jf0jmfFrZS0Xb/kai9EOxa6Q=; b=AKZVsen4kdcwHoETlJc3hjYWAc81zYbxKjIt/XdJVhaGPZh47lH6cVVE CEAd+cRrbQGXmy/oytaGDOQLOLATkuQIRRdDQAq++kuDF1nJqA7D5hko9 9bNURb5xqPYks0zo/ktrwmJjkVDjDtI4KOO5Zo/svDrly7uJjbyuhCqc8 OD8GycRetHE9ksuEtCFeErXzSdskT4lAbEv0DCieZaPV73V2zL2BmzycF rw2CLjejX7n5NkZjwsGXFjy5VvopTOjhy20FbASjN0W0w+yNrIlIiTsaT OlELwPdCLwJrtyx7JjtZAqoqZ1YOPqCwZA7T/Onhu+ZbKf7JZX7CJ+9dS A==; X-IronPort-AV: E=McAfee;i="6500,9779,10592"; a="322281832" X-IronPort-AV: E=Sophos;i="5.97,222,1669104000"; d="scan'208";a="322281832" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jan 2023 18:17:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10592"; a="661139739" X-IronPort-AV: E=Sophos;i="5.97,222,1669104000"; d="scan'208";a="661139739" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga007.fm.intel.com with ESMTP; 16 Jan 2023 18:17:25 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.2507.16; Mon, 16 Jan 2023 18:17:24 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Mon, 16 Jan 2023 18:17:24 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Mon, 16 Jan 2023 18:17:24 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.175) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Mon, 16 Jan 2023 18:17:24 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XKLiGtRflM+47P0W2KmkhoAmQV1go3y/YbG+OCqZPiKcbnD9bLclWkU+xejlv0GD/OCpNolLBOSGqQSd6lFETgpfjx/VjOmigV/9VAfCGqPf37pQXwfJv9kTxqaT95H9dezelYPq1e9G761riYAqXd2xiD/oG+e29rjGFEep/hWUdKxWzHe5Ew9eHQn1HvqP4q5HhkRJFzOvsSz4C+FRE0nnyfdDieEr5cYtHZHl1LWiWMpLduw2AbBZijncUMKvW7aHE5yP1UNs57wj1LNbQ2rtT8NkyQElfsQxsogwCsSt7wtKhhYGXeymh+33yH52+leaQkBof/QeDX7wAoWsOw== 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=TGF8tsGkx5OOTbAPs+0jf0jmfFrZS0Xb/kai9EOxa6Q=; b=hY8pjDDY4ihH9M0o/uGPH48uxzKXZgeggqew3Ns/Y0hlVBRhbn9I+ljjyW5yGE7G+k/es5Q3kzJHcJWXeqP78RrkhwP5Lr5lBOPnbk3vhmVlA9ckS7xzgNR5HmRRnW+KhIJO5ZtKg83EsXRN4hh5ikVZdxGEm5LMtPwMf7/QBCkFMQIrJQT5jmNoRl1xa5K93IYUhRZ8ZNzW2rnUi7Bf7ebPREdollEcjL/Df72UAYjhfCAYIUEjHR0VuB6yFMo3g9Ln5hCamtzVoWUkwk/L5bxCcEHFJpA6W6yHny1ycI1RvoX7kHAuAwHdiP9mOn9FRTLeO4s86l//cvMhTS8f6A== 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 MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by DS0PR11MB7580.namprd11.prod.outlook.com (2603:10b6:8:148::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.23; Tue, 17 Jan 2023 02:17:15 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::5f56:1bdc:2eae:c041]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::5f56:1bdc:2eae:c041%7]) with mapi id 15.20.6002.013; Tue, 17 Jan 2023 02:17:15 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "Yao, Jiewen" , "Xu, Min M" , "ardb@kernel.org" CC: "Aktas, Erdem" , James Bottomley , Gerd Hoffmann , Tom Lendacky , Michael Roth Subject: Re: [edk2-devel] [PATCH V1 1/1] OvmfPkg/AcpiPlatformDxe: Measure ACPI table from QEMU in TDVF Thread-Topic: [edk2-devel] [PATCH V1 1/1] OvmfPkg/AcpiPlatformDxe: Measure ACPI table from QEMU in TDVF Thread-Index: AQHZKU3eGyGpegw6rEOjkv3NNLPyJ66gVKNAgACGAACAADapUIAABdOAgAABw7CAAKlHgIAAAn8AgAAaF2CAAAHlgA== Date: Tue, 17 Jan 2023 02:17:15 +0000 Message-ID: References: <20230116015658.194-1-min.m.xu@intel.com> <173AD0557CFDE0A2.23170@groups.io> <173AF6CD0E3DD24A.23170@groups.io> In-Reply-To: <173AF6CD0E3DD24A.23170@groups.io> 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: MW4PR11MB5872:EE_|DS0PR11MB7580:EE_ x-ms-office365-filtering-correlation-id: 7bd79285-3d31-4066-64c7-08daf830f3af 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: 8KlvRdkhW1ioRHQmkf0cP/vu6aN8DXn1nGyyzkjfDiARh4AH86gpuaU1CB4H3g02gHQIAyfj8JC7Qt9kVmastPZPC8RpHyLYKO1zi18U8WlwYzDb7mLUx1pCg8/oXR5JaUU8y5WetplhVCs+tZe8j5Q+6XMynV0TNB9BPLkjWZ/GWsT75yVqDB/gNRegPQD0wwWXOqy1Q4FslvFERIA4AWhh/B8Cg13C+8EBuaUEMiOJF0ScwRDO9U7/lztIs1bQdl5kMiGJBE++7dvFuAhxQcbBVnbbok22HvuVuiVAMwTvBtVtb8D1aLf3+HBsqtw9L5t33/VSzr37UojKsW+syVGnPRsOp+vNqEfx78uLPriV2d9TNSsWIJlSWvvy/q3oxSXMHEKrJjBDb1rqKVdsLwZ9FOeWf/CLXxP+cDEcUL4xEecNZabuqttr2dmQVACo6ducqznR8EN/vQ2sBi4PmGkVDLF71fq7KXMsbyoiuXKd5EjhCwm1XGUtrku4NvbP6q0mLzbfsZEOscmcl1l2h4FQ3FuKGyztOgrteKbV9sxtpXIJjX2m5XPIxRfV/pitinpyGItzeIQv4kyYFtlU9LwK6YKLGv8QfSvHHvTB/DBvl5zz5BzQxSiwZRA3+gnuQrLOOUE0XprBepM/IPF4zSWKXlZS2MM4aUNyJIWrRAe5VqLM3IYDPnzMgBKBEZ+XW9Dc738rOAltoVTUU4Z360d5tW2Cr9xOeb1qq0i0R7OLSliNQ5zZnglnsBBpc+lIAT8CD3BtpvPyXLZNKjW9hQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5872.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(39860400002)(136003)(346002)(376002)(451199015)(66899015)(38100700002)(86362001)(38070700005)(8936002)(8676002)(66556008)(66446008)(66476007)(76116006)(52536014)(64756008)(66946007)(30864003)(2906002)(5660300002)(4326008)(55016003)(82960400001)(83380400001)(122000001)(33656002)(478600001)(71200400001)(54906003)(316002)(110136005)(7696005)(966005)(41300700001)(53546011)(9686003)(26005)(6506007)(186003)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dUJrTnVMVGFoTWZqNzdMVTJyNlJ0T0pVdG1qMkVsK0lMUEk3REVVRUNDRXda?= =?utf-8?B?UzFRdE5SdWpDYmkvU0RqS0pDSUdsRTF3NXlYbGhuTDFWYkNKbmFpUm9uWGZ6?= =?utf-8?B?WFlDakxIUWlqdFVxQVQrQlFrVzRWbWFIdjM3cUVNY0Nld29lbmJCVW11K3k4?= =?utf-8?B?cEtOYmFlbXFrUG9XTUQvSVNTdTQzZzRZQ2xDMkVzL3BFUkpvaU1oRXNub2U3?= =?utf-8?B?OEhKVk9VSHFzWEx3RVZadWQ3Z0dEZ3BHTmhOWG5QT3NDWVJPNHE3THV6MDVQ?= =?utf-8?B?K00yRk10RlZjak11K2V3c0M5SWRxVXJlME5qYXl3aXkvN20xbTdjbzZaYUVX?= =?utf-8?B?QXVjVmNqUyt3T1hCcWluUWhPc1FISHc1Z3ZIalRUQlpTN1lMSEpyVVFFVDMx?= =?utf-8?B?akR6c09BbEcrdkNRcXhMaFI0ei94b3E5amlZUkdJdCtuMFNTQWhLQzRsRlFt?= =?utf-8?B?bkpReVgvSnVFTE5FLzc4S1pxdEorWUo0d0NiZGRBWGZkdSt6dzZrZEJDT0gy?= =?utf-8?B?TE5iOTFldFd0L2V6MlRtQndiV24rS3BTV29INkNQbk5OcXhGL3Excm5sK2gx?= =?utf-8?B?REZNeERoaFFncmdjUVphZ3dlSVg0bDc2OGhIT2grK2lNZkliU0dKeEJRWGk0?= =?utf-8?B?aGp1MUUxYXNjR0JZUkQxKyszNGg0OFlWQ3lKc0wyNUxNanhFc3MreFNKaFRR?= =?utf-8?B?YjlIaGd3SWlwZTFIeHFZUFJwOVJGSko4YUhyeCtYdGNBeUN0elpUdmlYbkVk?= =?utf-8?B?bEF4TEVFMU4weXhaYlI5dFl2M1RhNzVWM2ZrL29CR1IwbFpLVDk3ZzVXckdo?= =?utf-8?B?QkhoVDBuQ3YzdXFVQ2o0RHM2K0NQQTR0UlJpUHUxbUltbnJtQTdqOGFpVjdh?= =?utf-8?B?ZlkveERaODV5T1pxUEUyUVFVbWplbHJTZGVxSUxsRzNPaDg1TVBOQ1Q3R091?= =?utf-8?B?OWJDcWVlbk43VGdHWGxMRGpXL0ZkYXgxbnBXNjhpVXoyaEVGWC9EMzBNYWRO?= =?utf-8?B?WGcwKzBDOXZXNUtGdW1mSDZydG4yeElxVVRGZURGMzVPL3pidUVQUm5DWUZz?= =?utf-8?B?WmJhajc3VzkxVnlhMUFOeUViMUI0VWVYQ29CQW40Z3ZkVkRGNDhoU0tEd2tC?= =?utf-8?B?V0xBNExsQzhFM0R5Wk5XWEV6RWdpNytzRVBZWDh5anlQUnMxd0labHRrRUFn?= =?utf-8?B?a3J3SXRXUUFsMFlnalBXbUloOU9nTzFZNmRTaHNSeXlpRXpMMXh4Qm1EYUtK?= =?utf-8?B?dWZMamRXb1ZuaUlOcXFEeEFPUFIvWDRsc1ZTY0JuRTAxd1A5SHUyMDZyUjZk?= =?utf-8?B?UGRNcXA4ZHhHTWgxK3N0ekJBeHBseDRJaEdLTTFmZ3libGlnSnFWYkxOQkNL?= =?utf-8?B?Q2ZURjJiVWNGVWIrcXBHVWRnanI1NHljWTZnZWJTSFVORlEvOUxUSkNMT1dV?= =?utf-8?B?eUp5K1dKQTM4VmdwaHV3c1lCVGNqTWh6ZFNTanYvQWZsVXNBdWRidWxRSzVa?= =?utf-8?B?MVpEcXpBZCtYdlMrUmxGZnhOMENIYnk4SlFKKzJ4cTZ2VFZsQUthYjNhTzlq?= =?utf-8?B?TTUvYVBQemdvMEVPSnV6NzVYSVZtZkpqbVRCNHA3cGxkVnlOVUk2VVFYUnM0?= =?utf-8?B?bEp1WnR1OVQrZEtQZjlwcEYzTjJLSTJoQ3hvMFNhamxpTHFNMlB5bSs0aGt5?= =?utf-8?B?ODZFMldWZWdDdmlTTXJDeEt3REFoL2pmUU94OThLTXk3MnpHNmJBVEY5cDFQ?= =?utf-8?B?aW40aTBiRGk0Y3NpNXNRODFGN0RUSG5XdWlGL2JmdmtqRnNIVkM4YjRocHNE?= =?utf-8?B?dS9PZStRMDR0RW9TajNyZnZaWHhYcUoydC9vN3VBQVVLQmYveTcvYlZYd0Q0?= =?utf-8?B?VmVma0plekE0WGxyaUpFRDhnRmhpRmdEQnZpRFhpMHBIUTRRc1ZoblF2SDRO?= =?utf-8?B?eWhhNjVDdm1vU3V4RlRzWWI0KzhRbEhlZ2FuMzlMUmFrdHIwU2puZldPRmpl?= =?utf-8?B?V001ZFR5US9zQU1neGUyQTdjWEpucTNFZ2pJYXV3aVFSUmZWdTZWSUN0Wks1?= =?utf-8?B?U2RVRlpnLzRCbVAwRC9QaXlEMU1STExVYVF2eVVqeUcrdTJXWjF2TkIrTXBB?= =?utf-8?Q?taw9Rzz4qIli0nHF8Da0WcFRh?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7bd79285-3d31-4066-64c7-08daf830f3af X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:17:15.6198 (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: QT4F8beBZOeOUZ6xEw5JtM+iSEq8oOBdGi5NgNm3mO+Izz9o6AzgoIIkQM2gAWwaq5FY19K6q9MBburyQEXeow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7580 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 QW5kIHdlIHNob3VsZCBzdGlsbCBmb2xsb3cgdGhlIHJ1bGUgdG8gbWVhc3VyZSB0aGUgKmV4YWN0 KiBpbnB1dCBkYXRhIGZyb20gVk1NLiBUaGF0IGlzIHRoZSB0YWJsZSAqYmVmb3JlKiBtb2RpZmlj YXRpb24gYW5kIGluc3RhbGxhdGlvbi4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJl aGFsZiBPZiBZYW8sDQo+IEppZXdlbg0KPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDE3LCAyMDIz IDEwOjEzIEFNDQo+IFRvOiBYdSwgTWluIE0gPG1pbi5tLnh1QGludGVsLmNvbT47IGRldmVsQGVk azIuZ3JvdXBzLmlvOw0KPiBhcmRiQGtlcm5lbC5vcmcNCj4gQ2M6IEFrdGFzLCBFcmRlbSA8ZXJk ZW1ha3Rhc0Bnb29nbGUuY29tPjsgSmFtZXMgQm90dG9tbGV5DQo+IDxqZWpiQGxpbnV4LmlibS5j b20+OyBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT47IFRvbQ0KPiBMZW5kYWNreSA8 dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+OyBNaWNoYWVsIFJvdGgNCj4gPG1pY2hhZWwucm90aEBh bWQuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBWMSAxLzFdIE92bWZQ a2cvQWNwaVBsYXRmb3JtRHhlOg0KPiBNZWFzdXJlIEFDUEkgdGFibGUgZnJvbSBRRU1VIGluIFRE VkYNCj4gDQo+IFNvcnJ5LCBJIHdvdWxkIGxpa2UgdG8gd2l0aGRyYXcgbXkgY29tbWVudCBvbiBB Q1BJIHRhYmxlIGV2ZW50IGFuZCBldmVudA0KPiB0eXBlLg0KPiANCj4gUEZQIHNwZWMgZGVmaW5l cyB0aGUgQUNQSSB0YWJsZSBvbiBmbGFzaCBiZSBtZWFzdXJlZCB0byBQQ1JbMF0gYXMgcGFydCBv Zg0KPiBQT1NUX0NPREUuDQo+IA0KPiBCdXQgaGVyZSBBQ1BJIHRhYmxlIGlzIGNvbmZpZ3VyYXRp b24gZnJvbSBWTU0uIEkgZmVlbCBpdCBpcyBtb3JlIHN1aXRhYmxlIHRvDQo+IGV4dGVuZCB0byBQ Q1JbMV0gYXMgcGFydCBvZiBjb25maWd1cmF0aW9uIGRhdGEuDQo+IA0KPiBJIGFwb2xvZ2l6ZSBm b3IgdGhlIGNvbmZ1c2luZy4NCj4gDQo+IFRoYW5rIHlvdQ0KPiBZYW8sIEppZXdlbg0KPiANCj4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFh1LCBNaW4gTSA8bWluLm0u eHVAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMTcsIDIwMjMgODozNiBB TQ0KPiA+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsNCj4gPiBhcmRiQGtlcm5lbC5vcmcNCj4gPiBDYzogQWt0YXMsIEVyZGVtIDxl cmRlbWFrdGFzQGdvb2dsZS5jb20+OyBKYW1lcyBCb3R0b21sZXkNCj4gPiA8amVqYkBsaW51eC5p Ym0uY29tPjsgR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBUb20NCj4gPiBMZW5k YWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+OyBNaWNoYWVsIFJvdGgNCj4gPiA8bWljaGFl bC5yb3RoQGFtZC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjEg MS8xXSBPdm1mUGtnL0FjcGlQbGF0Zm9ybUR4ZToNCj4gPiBNZWFzdXJlIEFDUEkgdGFibGUgZnJv bSBRRU1VIGluIFREVkYNCj4gPg0KPiA+IFRoYW5rcyBKaWV3ZW4uIEl0IHdpbGwgYmUgdXBkYXRl ZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4gRnJvbTogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+ ID4gU2VudDogVHVlc2RheSwgSmFudWFyeSAxNywgMjAyMyA4OjMwIEFNDQo+ID4gPiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47DQo+ ID4gPiBhcmRiQGtlcm5lbC5vcmcNCj4gPiA+IENjOiBYdSwgTWluIE0gPG1pbi5tLnh1QGludGVs LmNvbT47IEFrdGFzLCBFcmRlbQ0KPiA+ID4gPGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47IEphbWVz IEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsNCj4gR2VyZA0KPiA+ID4gSG9mZm1hbm4g PGtyYXhlbEByZWRoYXQuY29tPjsgVG9tIExlbmRhY2t5DQo+ID4gPiA8dGhvbWFzLmxlbmRhY2t5 QGFtZC5jb20+OyBNaWNoYWVsIFJvdGggPG1pY2hhZWwucm90aEBhbWQuY29tPg0KPiA+ID4gU3Vi amVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjEgMS8xXSBPdm1mUGtnL0FjcGlQbGF0Zm9y bUR4ZToNCj4gPiBNZWFzdXJlDQo+ID4gPiBBQ1BJIHRhYmxlIGZyb20gUUVNVSBpbiBURFZGDQo+ ID4gPg0KPiA+ID4gSGkgTWluDQo+ID4gPiBPbmUgbW9yZSB0aGluZzogVGhpcyBpcyB0byBtZWFz dXJlIEFDUEkgdGFibGUuDQo+ID4gPg0KPiA+ID4gQWNjb3JkaW5nIHRvIGh0dHBzOi8vdHJ1c3Rl ZGNvbXB1dGluZ2dyb3VwLm9yZy9yZXNvdXJjZS9wYy1jbGllbnQtDQo+ID4gc3BlY2lmaWMtDQo+ ID4gPiBwbGF0Zm9ybS1maXJtd2FyZS1wcm9maWxlLXNwZWNpZmljYXRpb24vLCB0aGUgZXZlbnQg dHlwZSBzaG91bGQgYmUNCj4gPiA+IEVWX1BPU1RfQ09ERSwgYW5kIGV2ZW50IGRhdGEgc2hvdWxk IGJlICJBQ1BJIERBVEEiIGluIGFsbCBjYXBzLiBZb3UNCj4gY2FuDQo+ID4gPiB1c2UgYmVsb3cg cGF0dGVybjoNCj4gPiA+ID09PT09PT09PT09PT09PT09DQo+ID4gPiAgIFRwbU1lYXN1cmVBbmRM b2dEYXRhICgNCj4gPiA+ICAgICAwLA0KPiA+ID4gICAgIEVWX1BPU1RfQ09ERSwNCj4gPiA+ICAg ICBFVl9QT1NUQ09ERV9JTkZPX0FDUElfREFUQSwNCj4gPiA+ICAgICBBQ1BJX0RBVEFfTEVOLA0K PiA+ID4gICAgIFRhYmxlLA0KPiA+ID4gICAgIFRhYmxlU2l6ZQ0KPiA+ID4gICAgICk7DQo+ID4g PiA9PT09PT09PT09PT09PT09PQ0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3Jv dXBzLmlvPiBPbiBCZWhhbGYgT2YgWWFvLA0KPiA+ID4gPiBKaWV3ZW4NCj4gPiA+ID4gU2VudDog TW9uZGF5LCBKYW51YXJ5IDE2LCAyMDIzIDEwOjI4IFBNDQo+ID4gPiA+IFRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgYXJkYkBrZXJuZWwub3JnDQo+ID4gPiA+IENjOiBYdSwgTWluIE0gPG1pbi5t Lnh1QGludGVsLmNvbT47IEFrdGFzLCBFcmRlbQ0KPiA+ID4gPiA8ZXJkZW1ha3Rhc0Bnb29nbGUu Y29tPjsgSmFtZXMgQm90dG9tbGV5IDxqZWpiQGxpbnV4LmlibS5jb20+Ow0KPiA+IEdlcmQNCj4g PiA+ID4gSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPjsgVG9tIExlbmRhY2t5DQo+ID4gPiA8 dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+Ow0KPiA+ID4gPiBNaWNoYWVsIFJvdGggPG1pY2hhZWwu cm90aEBhbWQuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBW MSAxLzFdIE92bWZQa2cvQWNwaVBsYXRmb3JtRHhlOg0KPiA+ID4gPiBNZWFzdXJlIEFDUEkgdGFi bGUgZnJvbSBRRU1VIGluIFREVkYNCj4gPiA+ID4NCj4gPiA+ID4gRWFjaCBtb2R1bGUsIHdoaWNo IHdhbnRzIHRvIGxvYWQgQUNQSSB0YWJsZS4NCj4gPiA+ID4NCj4gPiA+ID4gTW9zdCBjb2RlcyBh cmUgZnJvbSBjbG9zZSBzb3VyY2UgcGxhdGZvcm0uDQo+ID4gPiA+DQo+ID4gPiA+IE9uZSBleGFt cGxlIGluIEVES0lJIFNlY3VyaXR5UGtnIGlzIFRQTTIuDQo+ID4gPiA+DQo+ID4gaHR0cHM6Ly9n aXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvbWFzdGVyL1NlY3VyaXR5UGtnL1RjZy9UY2cy QWNwaQ0KPiA+ID4gPiAvDQo+ID4gPiA+IFRjZzJBY3BpLmMjTDY5MA0KPiA+ID4gPg0KPiA+ID4g Pg0KPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iL21hc3Rlci9TZWN1 cml0eVBrZy9UY2cvVGNnMkFjcGkNCj4gPiA+ID4gLw0KPiA+ID4gPiBUY2cyQWNwaS5jI0w3OTQN Cj4gPiA+ID4NCj4gPiA+ID4gSnVzdCBzZWFyY2ggIlRwbU1lYXN1cmVBbmRMb2dEYXRhIiAuLi4N Cj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+ID4gPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5p bz4gT24gQmVoYWxmIE9mDQo+IEFyZA0KPiA+ID4gPiA+IEJpZXNoZXV2ZWwNCj4gPiA+ID4gPiBT ZW50OiBNb25kYXksIEphbnVhcnkgMTYsIDIwMjMgMTA6MTUgUE0NCj4gPiA+ID4gPiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4g PiA+ID4gPiBDYzogWHUsIE1pbiBNIDxtaW4ubS54dUBpbnRlbC5jb20+OyBBa3RhcywgRXJkZW0N Cj4gPiA+ID4gPiA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPjsgSmFtZXMgQm90dG9tbGV5IDxqZWpi QGxpbnV4LmlibS5jb20+Ow0KPiA+ID4gR2VyZA0KPiA+ID4gPiA+IEhvZmZtYW5uIDxrcmF4ZWxA cmVkaGF0LmNvbT47IFRvbSBMZW5kYWNreQ0KPiA+ID4gPiA+IDx0aG9tYXMubGVuZGFja3lAYW1k LmNvbT47IE1pY2hhZWwgUm90aA0KPiA8bWljaGFlbC5yb3RoQGFtZC5jb20+DQo+ID4gPiA+ID4g U3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjEgMS8xXSBPdm1mUGtnL0FjcGlQbGF0 Zm9ybUR4ZToNCj4gPiA+ID4gPiBNZWFzdXJlIEFDUEkgdGFibGUgZnJvbSBRRU1VIGluIFREVkYN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9uIE1vbiwgMTYgSmFuIDIwMjMgYXQgMTQ6NTcsIFlhbywg Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiA+IHdyb3RlOg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IERvIHlvdSBtZWFuIHJlYWwgcGxhdGZvcm0gQklPUz8NCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBZZXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlIHJ1 bGVzIGFyZToNCj4gPiA+ID4gPiA+IDEpIFRoZSBBQ1BJIHRhYmxlIG9uIHRoZSBmbGFzaCBsb2Fk ZWQgYnkgdGhlIEJJT1MgaXMgbWVhc3VyZWQNCj4gPiA+ID4gPiA+ICpiZWZvcmUqDQo+ID4gPiA+ IGFueQ0KPiA+ID4gPiA+IG1vZGlmaWNhdGlvbiBhbmQgKmJlZm9yZSogaW5zdGFsbGF0aW9uLiBG b3IgZXhhbXBsZSwgRFNEVCwgU1NEVC4NCj4gPiA+ID4gPiA+IDIpIFRoZSBBQ1BJIHRhYmxlIGNv bnN0cnVjdGVkIGJ5IHRoZSBCSU9TIGR5bmFtaWNhbGx5IGRvZXMgbm90DQo+ID4gPiA+ID4gPiBu ZWVkIHRvDQo+ID4gPiA+IGJlDQo+ID4gPiA+ID4gbWVhc3VyZWQuIEZvciBleGFtcGxlIE1BRFQu DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT0sgc28gd2hpY2ggRURLMiBjb21w b25lbnQgaXMgbm9ybWFsbHkgaW4gY2hhcmdlIG9mIHRoaXM/DQo+ID4gPiA+ID4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiA+ID4gPiA+IEZyb206IEFyZCBCaWVzaGV1dmVsIDxhcmRiQGtlcm5lbC5vcmc+DQo+ID4g PiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgSmFudWFyeSAxNiwgMjAyMyA2OjM4IFBNDQo+ID4gPiA+ ID4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9A aW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiBDYzogWHUsIE1pbiBNIDxtaW4ubS54dUBpbnRlbC5j b20+OyBBa3RhcywgRXJkZW0NCj4gPiA+ID4gPiA+ID4gPGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47 IEphbWVzIEJvdHRvbWxleQ0KPiA+IDxqZWpiQGxpbnV4LmlibS5jb20+Ow0KPiA+ID4gPiA+IEdl cmQNCj4gPiA+ID4gPiA+ID4gSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPjsgVG9tIExlbmRh Y2t5DQo+ID4gPiA+ID4gPiA+IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT47IE1pY2hhZWwgUm90 aA0KPiA+ID4gPG1pY2hhZWwucm90aEBhbWQuY29tPg0KPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBS ZTogW2VkazItZGV2ZWxdIFtQQVRDSCBWMSAxLzFdDQo+IE92bWZQa2cvQWNwaVBsYXRmb3JtRHhl Og0KPiA+ID4gPiA+ID4gPiBNZWFzdXJlIEFDUEkgdGFibGUgZnJvbSBRRU1VIGluIFREVkYNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQW5vdGhlciBxdWVzdGlvbjogaG93IGRvZXMgdGhp cyBkZXZpYXRlIGZyb20gb3JkaW5hcnkgbWVhc3VyZWQNCj4gPiBib290Pw0KPiA+ID4gPiA+ID4g PiBIb3cgYW5kIHdoZW4gYXJlIEFDUEkgdGFibGVzIG1lYXN1cmVkIG9uIHN1Y2ggc3lzdGVtcz8N Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gT24gTW9uLCAxNiBK YW4gMjAyMyBhdCAwMzo0MiwgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+ ID4gPiA+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSGkNCj4gPiA+ ID4gPiA+ID4gPiBJIGhhdmUgdHdvIGZlZWRiYWNrOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4gMSkgV2hhdCB3ZSBuZWVkIG1lYXN1cmUgaXMgdGhlIGlucHV0IGZyb20gVk1NICpi ZWZvcmUqIGFueQ0KPiA+ID4gPiA+ID4gPiBtb2RpZmljYXRpb24gYW5kICpiZWZvcmUqIGluc3Rh bGxhdGlvbi4NCj4gPiA+ID4gPiA+ID4gPiBQbGVhc2UgZG9uJ3QgdXNlIEFDUEkgU0RUIHByb3Rv Y29sIHRvIGdldCB0aGUgdGFibGUgKmFmdGVyKg0KPiA+ID4gPiBtb2RpZmljYXRpb24uDQo+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAyKSBXaHkgbm90IHVzZSBUcG1NZWFzdXJlQW5k TG9nRGF0YSgpIGluDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ ID4NCj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvbWFzdGVyL01kZU1v ZHVsZVBrZy9JbmNsdWRlL0xpDQo+ID4gPiA+ID4gPiA+IGJyYXJ5L1RwbU1lYXN1cmVtZW50TGli LmggPw0KPiA+ID4gPiA+ID4gPiA+IFBsZWFzZSBkb24ndCB1c2UgbG9jYXRlIHByb3RvY29sLg0K PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gVGhhbmsgeW91DQo+ID4gPiA+ID4gPiA+ ID4gWWFvLCBKaWV3ZW4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+IEZyb206IFh1LCBNaW4gTSA8 bWluLm0ueHVAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gU2VudDogTW9uZGF5LCBKYW51 YXJ5IDE2LCAyMDIzIDk6NTcgQU0NCj4gPiA+ID4gPiA+ID4gPiA+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbw0KPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IFh1LCBNaW4gTSA8bWluLm0ueHVAaW50ZWwu Y29tPjsgQWt0YXMsIEVyZGVtDQo+ID4gPiA+ID4gPiA+ID4gPiA8ZXJkZW1ha3Rhc0Bnb29nbGUu Y29tPjsgSmFtZXMgQm90dG9tbGV5DQo+ID4gPiA+IDxqZWpiQGxpbnV4LmlibS5jb20+Ow0KPiA+ ID4gPiA+ID4gPiBZYW8sDQo+ID4gPiA+ID4gPiA+ID4gPiBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPjsgR2VyZCBIb2ZmbWFubg0KPiA+ID4gPiA+IDxrcmF4ZWxAcmVkaGF0LmNvbT47DQo+ ID4gPiA+ID4gPiA+ID4gPiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPjsg TWljaGFlbCBSb3RoDQo+ID4gPiA+ID4gPiA+ID4gPiA8bWljaGFlbC5yb3RoQGFtZC5jb20+DQo+ ID4gPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggVjEgMS8xXSBPdm1mUGtnL0FjcGlQbGF0 Zm9ybUR4ZTogTWVhc3VyZQ0KPiA+ID4gPiA+ID4gPiA+ID4gQUNQSQ0KPiA+ID4gPiA+IHRhYmxl DQo+ID4gPiA+ID4gPiA+IGZyb20NCj4gPiA+ID4gPiA+ID4gPiA+IFFFTVUgaW4gVERWRg0KPiA+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEZyb206IE1pbiBNIFh1IDxtaW4ubS54 dUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gaHR0cHM6 Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQ1DQo+ID4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gVGhlIEFDUEkgdGFibGVzIGFyZSBkb3dubG9hZGVk IGZyb20gUUVNVS4gUUVNVS9WTU0gaXMNCj4gPiA+ID4gdHJlYXRlZA0KPiA+ID4gPiA+IGFzDQo+ ID4gPiA+ID4gPiA+ID4gPiB1bi10cnVzdGVkIGluIGEgdGQtZ3Vlc3QuIEZyb20gdGhlIHNlY3Vy aXR5IHBlcnNwZWN0aXZlIHRoZXkNCj4gPiA+ID4gPiA+ID4gPiA+IHNob3VsZCBiZSBtZWFzdXJl ZCBhbmQgZXh0ZW5kZWQgaWYgcG9zc2libGUuIFNvIHRoYXQgdGhleQ0KPiA+ID4gPiA+ID4gPiA+ ID4gY2FuIGJlIGF1ZGl0ZWQgbGF0ZXIuIFRoZSBtZWFzdXJlbWVudCBwcm90b2NvbCBtYXkgYmUg bm90DQo+ID4gPiA+ID4gPiA+ID4gPiBpbnN0YWxsZWQuIEluIHRoaXMgY2FzZSBpdCBzdGlsbCBy ZXR1cm5zIEVGSV9TVUNDRVNTLg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ IENjOiBFcmRlbSBBa3RhcyA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPg0KPiA+ID4gPiA+ID4gPiA+ ID4gQ2M6IEphbWVzIEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPg0KPiA+ID4gPiA+ID4g PiA+ID4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4g PiA+ID4gQ2M6IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPg0KPiA+ID4gPiA+ID4g PiA+ID4gQ2M6IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+ID4gPiA+ ID4gPiA+ID4gPiBDYzogTWljaGFlbCBSb3RoIDxtaWNoYWVsLnJvdGhAYW1kLmNvbT4NCj4gPiA+ ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1pbiBYdSA8bWluLm0ueHVAaW50ZWwuY29tPg0K PiA+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ID4gPiAgT3ZtZlBrZy9BY3BpUGxh dGZvcm1EeGUvQWNwaVBsYXRmb3JtRHhlLmluZiB8ICAgMiArDQo+ID4gPiA+ID4gPiA+ID4gPiAg T3ZtZlBrZy9BY3BpUGxhdGZvcm1EeGUvUWVtdUZ3Q2ZnQWNwaS5jICAgICB8IDE2OA0KPiA+ID4g PiA+ID4gPiA+ID4gKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ID4gPiA+ID4gPiA+ICAyIGZp bGVzIGNoYW5nZWQsIDE3MCBpbnNlcnRpb25zKCspDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL092bWZQa2cvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0 Zm9ybUR4ZS5pbmYNCj4gPiA+ID4gPiA+ID4gPiA+IGIvT3ZtZlBrZy9BY3BpUGxhdGZvcm1EeGUv QWNwaVBsYXRmb3JtRHhlLmluZg0KPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggODkzOWRkZTQyNTQ5 Li5hZTIyYmFiMzhjZjkgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9Pdm1mUGtnL0Fj cGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm1EeGUuaW5mDQo+ID4gPiA+ID4gPiA+ID4gPiArKysg Yi9Pdm1mUGtnL0FjcGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm1EeGUuaW5mDQo+ID4gPiA+ID4g PiA+ID4gPiBAQCAtNTEsNiArNTEsOCBAQA0KPiA+ID4gPiA+ID4gPiA+ID4gICAgZ0VmaUFjcGlU YWJsZVByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICAgICMgUFJPVE9DT0wNCj4gPiA+ID4g PiA+ID4gQUxXQVlTX0NPTlNVTUVEDQo+ID4gPiA+ID4gPiA+ID4gPiAgICBnRWZpUGNpSW9Qcm90 b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICAgICAgIyBQUk9UT0NPTA0KPiA+ID4gPiA+ID4g PiBTT01FVElNRVNfQ09OU1VNRUQNCj4gPiA+ID4gPiA+ID4gPiA+ICAgIGdRZW11QWNwaVRhYmxl Tm90aWZ5UHJvdG9jb2xHdWlkICAgICAgICAgICAgICAjIFBST1RPQ09MDQo+ID4gPiA+IFBST0RV Q0VTDQo+ID4gPiA+ID4gPiA+ID4gPiArICBnRWZpQ2NNZWFzdXJlbWVudFByb3RvY29sR3VpZCAg ICAgICAgICAgICAgICAgIyBQUk9UT0NPTA0KPiA+ID4gPiA+ID4gPiA+ID4gU09NRVRJTUVTX0NP TlNVTUVEDQo+ID4gPiA+ID4gPiA+ID4gPiArICBnRWZpQWNwaVNkdFByb3RvY29sR3VpZCAgICAg ICAgICAgICAgICAgICAgICAgIyBQUk9UT0NPTA0KPiA+ID4gPiA+ID4gPiA+ID4gU09NRVRJTUVT X0NPTlNVTUVEDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gIFtHdWlkc10N Cj4gPiA+ID4gPiA+ID4gPiA+ICAgIGdSb290QnJpZGdlc0Nvbm5lY3RlZEV2ZW50R3JvdXBHdWlk DQo+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9BY3BpUGxhdGZvcm1EeGUv UWVtdUZ3Q2ZnQWNwaS5jDQo+ID4gPiA+ID4gPiA+ID4gPiBiL092bWZQa2cvQWNwaVBsYXRmb3Jt RHhlL1FlbXVGd0NmZ0FjcGkuYw0KPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggZjBkODFkNmZkNzNk Li5mNDQyODUwYzJlMDAgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9Pdm1mUGtnL0Fj cGlQbGF0Zm9ybUR4ZS9RZW11RndDZmdBY3BpLmMNCj4gPiA+ID4gPiA+ID4gPiA+ICsrKyBiL092 bWZQa2cvQWNwaVBsYXRmb3JtRHhlL1FlbXVGd0NmZ0FjcGkuYw0KPiA+ID4gPiA+ID4gPiA+ID4g QEAgLTE4LDYgKzE4LDggQEANCj4gPiA+ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9R ZW11RndDZmdMaWIuaD4gICAgICAgICAgICAgLy8NCj4gPiBRZW11RndDZmdGaW5kRmlsZSgpDQo+ ID4gPiA+ID4gPiA+ID4gPiAgI2luY2x1ZGUgPExpYnJhcnkvUWVtdUZ3Q2ZnUzNMaWIuaD4gICAg ICAgICAgIC8vDQo+ID4gPiA+ID4gUWVtdUZ3Q2ZnUzNFbmFibGVkKCkNCj4gPiA+ID4gPiA+ID4g PiA+ICAjaW5jbHVkZSA8TGlicmFyeS9VZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIuaD4gLy8gZ0JT DQo+ID4gPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgPFByb3RvY29sL0FjcGlTeXN0ZW1EZXNjcmlw dGlvblRhYmxlLmg+DQo+ID4gPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgPFByb3RvY29sL0NjTWVh c3VyZW1lbnQuaD4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAgI2luY2x1 ZGUgIkFjcGlQbGF0Zm9ybS5oIg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ IEBAIC04MTIsMTIgKzgxNCwxNjggQEAgVW5kb0NtZFdyaXRlUG9pbnRlciAoDQo+ID4gPiA+ID4g PiA+ID4gPiAgICAgICkpOw0KPiA+ID4gPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gPiArLyoqDQo+ID4gPiA+ID4gPiA+ID4gPiArICBNZXN1cmUgZmly bXdhcmUgQUNQSSB0YWJsZSB3aXRoIENjTWVhc3VyZW1lbnQgUHJvdG9jb2wNCj4gPiA+ID4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIEBwYXJhbVtpbl0gQ2NQcm90b2NvbCAgIFBv aW50ZXIgdG8gdGhlIENjTWVhc3VybWVudA0KPiA+IFByb3RvY29sDQo+ID4gPiA+ID4gPiA+ID4g PiArICBAcGFyYW1baW5dIEV2ZW50RGF0YSAgICBQb2ludGVyIHRvIHRoZSBldmVudCBkYXRhLg0K PiA+ID4gPiA+ID4gPiA+ID4gKyAgQHBhcmFtW2luXSBFdmVudFNpemUgICAgU2l6ZSBvZiBldmVu dCBkYXRhLg0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgQHBhcmFtW2luXSBDZmdEYXRhQmFzZSAgQ29u ZmlndXJhdGlvbiBkYXRhIGJhc2UgYWRkcmVzcy4NCj4gPiA+ID4gPiA+ID4gPiA+ICsgIEBwYXJh bVtpbl0gRXZlbnRTaXplICAgIFNpemUgb2YgY29uZmlndXJhdGlvbiBkYXRhIC4NCj4gPiA+ID4g PiA+ID4gPiA+ICsgIEByZXR2YWwgIEVGSV9OT1RfRk9VTkQgICAgICAgICAgIENhbm5vdCBsb2Nh dGUgcHJvdG9jb2wuDQo+ID4gPiA+ID4gPiA+ID4gPiArICBAcmV0dmFsICBFRklfT1VUX09GX1JF U09VUkNFUyAgICBBbGxvY2F0ZSB6ZXJvIHBvb2wNCj4gZmFpbHVyZS4NCj4gPiA+ID4gPiA+ID4g PiA+ICsgIEByZXR1cm4gICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cyBjb2RlcyByZXR1 cm5lZCBieQ0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbVRjZzJQcm90b2NvbC0+SGFzaExvZ0V4dGVuZEV2ZW50Lg0KPiA+ID4gPiA+ID4gPiA+ ID4gKyoqLw0KPiA+ID4gPiA+ID4gPiA+ID4gK1NUQVRJQw0KPiA+ID4gPiA+ID4gPiA+ID4gK0VG SV9TVEFUVVMNCj4gPiA+ID4gPiA+ID4gPiA+ICtFRklBUEkNCj4gPiA+ID4gPiA+ID4gPiA+ICtD Y01lYXN1cmVBY3BpVGFibGUgKA0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgSU4gRUZJX0NDX01FQVNV UkVNRU5UX1BST1RPQ09MICAqQ2NQcm90b2NvbCwNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIElOIENI QVI4ICAgICAgICAgICAgICAgICAgICAgICAgKkV2ZW50RGF0YSwNCj4gPiA+ID4gPiA+ID4gPiA+ ICsgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRTaXplLA0KPiA+ID4gPiA+ ID4gPiA+ID4gKyAgSU4gRUZJX1BIWVNJQ0FMX0FERFJFU1MgICAgICAgICBDZmdEYXRhQmFzZSwN Cj4gPiA+ID4gPiA+ID4gPiA+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgQ2Zn RGF0YUxlbmd0aA0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgKQ0KPiA+ID4gPiA+ID4gPiA+ID4gK3sN Cj4gPiA+ID4gPiA+ID4gPiA+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOw0KPiA+ID4gPiA+ID4g PiA+ID4gKyAgRUZJX0NDX0VWRU5UICAqQ2NFdmVudDsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIFVJ TlQzMiAgICAgICAgTXJJbmRleDsNCj4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4g PiA+ICsgIGlmIChDY1Byb3RvY29sID09IE5VTEwpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAg cmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsgIH0NCj4gPiA+ID4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ID4gPiA+ICsgIFN0YXR1cyA9IENjUHJvdG9jb2wtPk1hcFBjclRvTXJJbmRleCAo Q2NQcm90b2NvbCwgMSwNCj4gPiA+ID4gJk1ySW5kZXgpOw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAg aWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICByZXR1cm4g RUZJX0lOVkFMSURfUEFSQU1FVEVSOyAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gPiA+ID4gKyAgQ2NFdmVudCA9IEFsbG9jYXRlWmVyb1Bvb2wgKEV2ZW50U2l6ZSArIHNpemVv Zg0KPiA+ID4gPiA+ID4gPiA+ID4gKyAoRUZJX0NDX0VWRU5UKSAtDQo+ID4gPiA+ID4gc2l6ZW9m DQo+ID4gPiA+ID4gPiA+ID4gPiAoQ2NFdmVudC0+RXZlbnQpKTsNCj4gPiA+ID4gPiA+ID4gPiA+ ICsgIGlmIChDY0V2ZW50ID09IE5VTEwpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJu IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOyAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gPiA+ID4gKyAgQ2NFdmVudC0+U2l6ZSAgICAgICAgICAgICAgICAgPSBFdmVudFNpemUgKyBz aXplb2YgKEVGSV9DQ19FVkVOVCkgLQ0KPiA+ID4gPiBzaXplb2YNCj4gPiA+ID4gPiA+ID4gPiA+ IChDY0V2ZW50LT5FdmVudCk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBDY0V2ZW50LT5IZWFkZXIu RXZlbnRUeXBlICAgICA9DQo+ID4gRVZfUExBVEZPUk1fQ09ORklHX0ZMQUdTOw0KPiA+ID4gPiA+ ID4gPiA+ID4gKyAgQ2NFdmVudC0+SGVhZGVyLk1ySW5kZXggICAgICAgPSBNckluZGV4Ow0KPiA+ ID4gPiA+ID4gPiA+ID4gKyAgQ2NFdmVudC0+SGVhZGVyLkhlYWRlclNpemUgICAgPSBzaXplb2YN Cj4gPiAoRUZJX0NDX0VWRU5UX0hFQURFUik7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBDY0V2ZW50 LT5IZWFkZXIuSGVhZGVyVmVyc2lvbiA9DQo+ID4gPiA+ID4gRUZJX0NDX0VWRU5UX0hFQURFUl9W RVJTSU9OOw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgQ29weU1lbSAoJkNjRXZlbnQtPkV2ZW50WzBd LCBFdmVudERhdGEsIEV2ZW50U2l6ZSk7DQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiA+ID4gPiArICBTdGF0dXMgPSBDY1Byb3RvY29sLT5IYXNoTG9nRXh0ZW5kRXZlbnQgKA0KPiA+ ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBDY1Byb3RvY29sLA0KPiA+ ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAwLA0KPiA+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBDZmdEYXRhQmFzZSwNCj4gPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgQ2ZnRGF0YUxlbmd0aCwNCj4gPiA+ID4g PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgQ2NFdmVudA0KPiA+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiA+ID4gKyAgRnJlZVBvb2wgKENjRXZlbnQpOw0KPiA+ID4gPiA+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ID4gPiA+ID4g PiA+ICt9DQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiAgLy8NCj4gPiA+ ID4gPiA+ID4gPiA+ICAvLyBXZSdsbCBiZSBzYXZpbmcgdGhlIGtleXMgb2YgaW5zdGFsbGVkIHRh YmxlcyBzbyB0aGF0IHdlDQo+ID4gPiA+ID4gPiA+ID4gPiBjYW4gcm9sbA0KPiA+ID4gPiB0aGVt DQo+ID4gPiA+ID4gPiA+IGJhY2sNCj4gPiA+ID4gPiA+ID4gPiA+ICAvLyBpbiBjYXNlIG9mIGZh aWx1cmUuIDEyOCB0YWJsZXMgc2hvdWxkIGJlIGVub3VnaCBmb3IgYW55b25lDQo+ID4gKFRNKS4N Cj4gPiA+ID4gPiA+ID4gPiA+ICAvLw0KPiA+ID4gPiA+ID4gPiA+ID4gICNkZWZpbmUgSU5TVEFM TEVEX1RBQkxFU19NQVggIDEyOA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ICsvKioNCj4gPiA+ID4gPiA+ID4gPiA+ICsgKiBUaGUgQUNQSSB0YWJsZXMgYXJlIGRvd25sb2Fk ZWQgZnJvbSBRRU1VLiBGcm9tIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gK3NlY3VyaXR5DQo+ID4g PiA+ID4gPiA+ID4gPiBwZXJzcGVjdGl2ZSB0aGVzZSBhcmUNCj4gPiA+ID4gPiA+ID4gPiA+ICsg KiBleHRlcm5hbCBpbnB1dHMgYW5kIHNob3VsZCBiZSBtZWFzdXJlZCBhbmQgZXh0ZW5kZWQgaWYN Cj4gPiA+ID4gcG9zc2libGUuDQo+ID4gPiA+ID4gU28NCj4gPiA+ID4gPiA+ID4gdGhhdA0KPiA+ ID4gPiA+ID4gPiA+ID4gdGhleSBjYW4NCj4gPiA+ID4gPiA+ID4gPiA+ICsgKiBiZSBhdWRpdGVk IGxhdGVyLiBUaGUgbWVhc3VyZW1lbnQgcHJvdG9jb2wgbWF5IGJlIG5vdA0KPiA+ID4gPiBpbnN0 YWxsZWQuDQo+ID4gPiA+ID4gSW4NCj4gPiA+ID4gPiA+ID4gdGhpcw0KPiA+ID4gPiA+ID4gPiA+ ID4gY2FzZSBpdA0KPiA+ID4gPiA+ID4gPiA+ID4gKyAqIHN0aWxsIHJldHVybnMgRUZJX1NVQ0NF U1MuDQo+ID4gPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ID4gPiA+ICsgKiBAcGFyYW0g SW5zdGFsbGVkS2V5IFBvaW50ZXIgdG8gYW4gYXJyYXkgd2hpY2ggY29udGFpbnMNCj4gPiA+ID4g PiA+ID4gPiA+ICsgdGhlIGtleXMNCj4gPiA+ID4gPiBvZg0KPiA+ID4gPiA+ID4gPiB0aGUNCj4g PiA+ID4gPiA+ID4gPiA+IGluc3RhbGxlZCBBQ1BJIHRhYmxlcw0KPiA+ID4gPiA+ID4gPiA+ID4g KyAqIEBwYXJhbSBMZW5ndGggICAgICAgTGVuZ3RoIG9mIHRoZSBhcnJheQ0KPiA+ID4gPiA+ID4g PiA+ID4gKyAqIEByZXR2YWwgRUZJX1NVQ0NFU1MgU3VjY2Vzc2Z1bGx5IG1lYXN1cmUgdGhlIEFD UEkgdGFibGVzDQo+ID4gPiA+ID4gPiA+ID4gPiArICogQHJldHZhbCBPdGhlcnMgICAgICBPdGhl ciBlcnJvcnMgYXMgaW5kaWNhdGVkDQo+ID4gPiA+ID4gPiA+ID4gPiArICovDQo+ID4gPiA+ID4g PiA+ID4gPiArU1RBVElDDQo+ID4gPiA+ID4gPiA+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gPiA+ ID4gPiA+ID4gK01lYXN1cmVJbnN0YWxsZWRUYWJsZXNGcm9tUWVtdSAoDQo+ID4gPiA+ID4gPiA+ ID4gPiArICBJTiBVSU5UTiAgKkluc3RhbGxlZEtleSwNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIElO IElOVDMyICBMZW5ndGgNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICkNCj4gPiA+ID4gPiA+ID4gPiA+ ICt7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgIFN0 YXR1czsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAg SW5kZXgxOw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgSU5UMzIgICAgICAgICAgICAgICAgICAgICAg ICBJbmRleDI7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBFRklfQUNQSV9TRFRfSEVBREVSICAgICAg ICAgICpUYWJsZTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIEVGSV9BQ1BJX1RBQkxFX1ZFUlNJT04g ICAgICAgVmVyc2lvbjsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAg ICAgICAgICAgVGFibGVLZXk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBFRklfQUNQSV9TRFRfUFJP VE9DT0wgICAgICAgICpBY3BpU2R0UHJvdG9jb2w7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBFRklf Q0NfTUVBU1VSRU1FTlRfUFJPVE9DT0wgICpDY1Byb3RvY29sID0gTlVMTDsNCj4gPiA+ID4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9j b2wNCj4gPiA+ID4gPiA+ID4gPiA+ICsgKCZnRWZpQ2NNZWFzdXJlbWVudFByb3RvY29sR3VpZCwN Cj4gPiA+ID4gPiBOVUxMLA0KPiA+ID4gPiA+ID4gPiA+ID4gKFZPSUQgKiopJkNjUHJvdG9jb2wp Ow0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4g PiA+ID4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAvLyBDY01lYXN1cmVt ZW50IHByb3RvY29sIGlzIG5vdCBpbnN0YWxsZWQuDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIC8v DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPiA+ID4gPiA+ ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIFN0 YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKCZnRWZpQWNwaVNkdFByb3RvY29sR3VpZCwNCj4g PiA+ID4gPiA+ID4gPiA+ICsgTlVMTCwNCj4gPiA+ID4gPiAodm9pZA0KPiA+ID4gPiA+ID4gPiA+ ID4gKiopJkFjcGlTZHRQcm90b2NvbCk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfRVJS T1IsICJVbmFibGUgdG8gbG9jYXRlIEFDUEkgU0RUDQo+ID4gPiA+IHByb3RvY29sLlxuIikpOw0K PiA+ID4gPiA+ID4gPiA+ID4gKyAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiA+ID4gPiA+ID4g KyAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgSW5kZXgxID0g MDsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgIGRvIHsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgU3Rh dHVzID0gQWNwaVNkdFByb3RvY29sLT5HZXRBY3BpVGFibGUgKEluZGV4MSwgJlRhYmxlLA0KPiA+ ID4gPiAmVmVyc2lvbiwNCj4gPiA+ID4gPiA+ID4gPiA+ICZUYWJsZUtleSk7DQo+ID4gPiA+ID4g PiA+ID4gPiArICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgICBpZiAoU3RhdHVzID09IEVGSV9OT1RfRk9VTkQpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgICAgIC8vDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAvLyBUaGVyZSBpcyBubyBt b3JlIEFDUEkgdGFibGVzIGZvdW5kLiBTbyB3ZSByZXR1cm4NCj4gPiA+ID4gPiA+ID4gPiA+ICsg d2l0aA0KPiA+ID4gPiA+ID4gPiBFRklfU1VDQ0VTUy4NCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgIC8vDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICBTdGF0dXMgPSBFRklfU1VDQ0VTUzsN Cj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICB9DQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gPiA+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIH0NCj4gPiA+ ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgZm9yIChJbmRleDIgPSAwOyBJ bmRleDIgPCBMZW5ndGg7IEluZGV4MisrKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgaWYg KFRhYmxlS2V5ID09IEluc3RhbGxlZEtleVtJbmRleDJdKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiAr ICAgICAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICB9DQo+ID4gPiA+ID4gPiA+ ID4gPiArICAgIH0NCj4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAg aWYgKEluZGV4MiA8IExlbmd0aCkgew0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgIFN0YXR1cyA9 IENjTWVhc3VyZUFjcGlUYWJsZSAoDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAg ICBDY1Byb3RvY29sLA0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgKENIQVI4 ICopJlRhYmxlLT5TaWduYXR1cmUsDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAg ICBzaXplb2YgKFRhYmxlLT5TaWduYXR1cmUpLA0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgKEVGSV9QSFlTSUNBTF9BRERSRVNTKShVSU5UTilUYWJsZSwNCj4gPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgIFRhYmxlLT5MZW5ndGgNCj4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgaWYgKEVGSV9F UlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgREVCVUcgKCgNCj4g PiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgREVCVUdfRVJST1IsDQo+ID4gPiA+ID4gPiA+ID4g PiArICAgICAgICAgICJNZWFzdXJlIEFDUEkgdGFibGUgWyUtNC40YV0gd2l0aCBTaXplID0gMHgl eA0KPiA+ID4gPiA+ID4gPiA+ID4gKyBmYWlsZWQhIFN0YXR1cw0KPiA+ID4gPiA+ID4gPiA9ICVy XG4iLA0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAoQ09OU1QgQ0hBUjggKikmVGFibGUt PlNpZ25hdHVyZSwNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgVGFibGUtPkxlbmd0aCwN Cj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgU3RhdHVzDQo+ID4gPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICkpOw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgYnJlYWs7DQo+ID4gPiA+ ID4gPiA+ID4gPiArICAgICAgfSBlbHNlIHsNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgIERF QlVHICgoDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgIERFQlVHX0lORk8sDQo+ID4gPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICJNZWFzdXJlIEFDUEkgdGFibGUgWyUtNC40YV0gd2l0aCBT aXplID0gMHgleFxuIiwNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgKENPTlNUIENIQVI4 ICopJlRhYmxlLT5TaWduYXR1cmUsDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgIFRhYmxl LT5MZW5ndGgNCj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgKSk7DQo+ID4gPiA+ID4gPiA+ ID4gPiArICAgICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIEluZGV4MSsrOw0KPiA+ID4gPiA+ID4gPiA+ID4g KyAgfSB3aGlsZSAoVFJVRSk7DQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4g PiArICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICAvKioNCj4gPiA+ID4gPiA+ID4gPiA+ICAgIFByb2Nl c3MgYSBRRU1VX0xPQURFUl9BRERfUE9JTlRFUiBjb21tYW5kIGluIG9yZGVyDQo+IHRvDQo+ID4g PiA+IHNlZQ0KPiA+ID4gPiA+IGlmIGl0cw0KPiA+ID4gPiA+ID4gPiA+ID4gdGFyZ2V0IGJ5dGUN Cj4gPiA+ID4gPiA+ID4gPiA+ICAgIGFycmF5IGlzIGFuIEFDUEkgdGFibGUsIGFuZCBpZiBzbywg aW5zdGFsbCBpdC4NCj4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xMjQ3LDYgKzE0MDUsMTYgQEAgSW5z dGFsbFFlbXVGd0NmZ1RhYmxlcyAoDQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgIH0NCj4gPiA+ID4g PiA+ID4gPiA+ICAgIH0NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiArICAv Lw0KPiA+ID4gPiA+ID4gPiA+ID4gKyAgLy8gTWVhc3VyZSB0aGUgQUNQSSB0YWJsZXMgd2hpY2gg YXJlIGRvd25sb2FkZWQgZnJvbQ0KPiA+IFFFTVUNCj4gPiA+ID4gPiA+ID4gPiA+ICsgLy8gIGlm IChJbnN0YWxsZWQgPiAwKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIFN0YXR1cyA9IE1lYXN1 cmVJbnN0YWxsZWRUYWJsZXNGcm9tUWVtdSAoSW5zdGFsbGVkS2V5LA0KPiA+ID4gPiA+IEluc3Rh bGxlZCk7DQo+ID4gPiA+ID4gPiA+ID4gPiArICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsN Cj4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICBnb3RvIFVuaW5zdGFsbEFjcGlUYWJsZXM7DQo+ID4g PiA+ID4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiA+ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ICAgIC8vDQo+ID4gPiA+ID4gPiA+ID4gPiAgICAv LyBJbnN0YWxsIGEgcHJvdG9jb2wgdG8gbm90aWZ5IHRoYXQgdGhlIEFDUEkgdGFibGUNCj4gPiA+ ID4gPiA+ID4gPiA+IHByb3ZpZGVkIGJ5IFFlbXUNCj4gPiA+ID4gPiBpcw0KPiA+ID4gPiA+ID4g PiA+ID4gICAgLy8gcmVhZHkuDQo+ID4gPiA+ID4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+ID4gPiA+ ID4gMi4yOS4yLndpbmRvd3MuMg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gDQo+IA0K PiANCj4gDQo+IA0KDQo=