From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web08.18401.1642990443249319196 for ; Sun, 23 Jan 2022 18:14:04 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=DPYmKz8V; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: di.zhang@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642990443; x=1674526443; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/XEomC3oGRmmOGKrINEvyn+cDCeqCpoyxrVrnkcR9Y8=; b=DPYmKz8VaAUhVHvQfGbXfgAb/TanMHlkb45/3jbDBULMcJSO68kHNLVQ d1Sk5XxV4xaFOQllOOHEGUbdcLnlLNA6UKPzFBNPlxPZmH+RCPur7I7SL i7QLoxyyuoctJE1uzGiFxZMO6z/Kd1v44MPuZ2ziWmIeokE1yQFYykGg2 zECUBdsbrni+gaTMZVDTtqTmAGW3TxSY/xT0BS8zpk1j1X3FSsT/wVQle ClW3sZgRCQXaME/v6YKhvL8fOuH65YSp4kuDOcpar7eXSJ1AZrCIA6FBF vcHzeJNgLpFFPhjnOakFEP5oVz2w7IhdF1fxJKCmYjpwEFBmUFfBJNTAW g==; X-IronPort-AV: E=McAfee;i="6200,9189,10236"; a="245890482" X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="245890482" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 18:14:02 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,311,1635231600"; d="scan'208";a="562491440" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga001.jf.intel.com with ESMTP; 23 Jan 2022 18:14:02 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 23 Jan 2022 18:14:01 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 23 Jan 2022 18:14:01 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Sun, 23 Jan 2022 18:14:01 -0800 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.42) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Sun, 23 Jan 2022 18:14:00 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SfCaXNifJaqu7Wd6xjWfNXtEJd0hFSaeJ6OcuMNCkWaesRYFWWQJ3hcTUtc39YSm0PHwxlZL2Jk7IgMr4BPKtnYCGOEsFWDOsRWuCJDHI16qFpzbE38CSAchSR1eF4yM984c5nSUcLGLeO0GvquXYZYrX9Fkgn2a1wWQhchbZDuNs5kl9+fzXHg6MygeZ8K3X8wY3kBAq7jCcGKotbA9OMlOrNKP6KgJMCCOBrUtHXldONbBpVjTUyUlF+apJD+xM3eymYsu7YQZnE0c23Idybd8GHlxD64UllHewXg+xpVZegJ56tGPUrOvbEpf5eowD2ouF8eCwtIwvdG09b6S5Q== 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=/XEomC3oGRmmOGKrINEvyn+cDCeqCpoyxrVrnkcR9Y8=; b=nd1y62e6YOwBbMKaOZ/XcBh1/+umU3tBV5qsVT2h3JJXNc+Fc5NlZjintxZEtnwVockcNyQxP8c/LQ0tKeBFEJKVu0cNpDMIel6mhKYsxNyjC/LDYVgzahqbPt9yYwTXMUjPeNGrie5qGSthCaHd0pEDYM8NB5bgBmywnqoPegdhlKe+mzjbT4tnin7UG8zd98QuLwI9ATb99OhPPrKqUCJzMOfyjeOPo76tGUCQmmm6tGrWAGnU5lg7LTiXVQlVyU1dEO0DLYfDFpT5XXPQrHVN/foRyJD8gcBHWJxmlNztpcwOROHmvsyQ+SM+9YDC0PN9Gw7fYTPNaq3Ga1/smQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from CO1PR11MB4964.namprd11.prod.outlook.com (2603:10b6:303:9e::24) by BN0PR11MB5759.namprd11.prod.outlook.com (2603:10b6:408:168::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.10; Mon, 24 Jan 2022 02:13:59 +0000 Received: from CO1PR11MB4964.namprd11.prod.outlook.com ([fe80::f8a6:ed03:93b9:b018]) by CO1PR11MB4964.namprd11.prod.outlook.com ([fe80::f8a6:ed03:93b9:b018%3]) with mapi id 15.20.4909.017; Mon, 24 Jan 2022 02:13:58 +0000 From: "Zhang, Di" To: "Gao, Liming" , "Chen, Lin Z" , "devel@edk2.groups.io" , "Huang, Long1" , "Kinney, Michael D" CC: "Bi, Dandan" , "Feng, Bob C" , "Li, Zhuangzhi" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/HiiDatabaseDxe: Add Support for authenticated variable Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/HiiDatabaseDxe: Add Support for authenticated variable Thread-Index: AQHYBgAkWD0utY1K8Uq6mu7hIOGU7qxnFZMAgADhqXCAAb0qAIABxGQAgAGHKYCABILQQA== Date: Mon, 24 Jan 2022 02:13:58 +0000 Message-ID: References: <035601d80b90$cab5fc30$6021f490$@byosoft.com.cn> <011701d80ce0$33d786c0$9b869440$@byosoft.com.cn> <00a601d80e85$fa06f9b0$ee14ed10$@byosoft.com.cn> In-Reply-To: <00a601d80e85$fa06f9b0$ee14ed10$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.200.16 dlp-product: dlpe-windows dlp-reaction: no-action 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: 4b444d4a-17eb-4ac2-5755-08d9dedf2e91 x-ms-traffictypediagnostic: BN0PR11MB5759:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rhIed47ewLQf/sGu05+LleTNQb5+T+Dy+B+DvtnqXSoKZQHddzKeSM3j/Q4BKPak3duQE1LnfBlC3yQYQVBxmRRTx2bzj/oDimGbxxwYaUe7NkOsyVEDheVzH8ewxEvLn2OdZli5CX3rjcLz5yKiU9vaZK8dkD/GOMtnNh3Ut7pWgUiN7+wyA6jMJm2CCo+COSQWpYNMcXWnGxurFfWCTO3Ok/R2Y9hVtUZx3BlWDE43rfa8oV9t7UHm9B3D/ei726tIqpDYxo2uvN5jB7RAAHrDo1sOJLwuMPFZXc/wRLA1D8rOsi99Dp+2PSzrayLaCIWkuVLpGprtGj7ZXrxiKAIs7fppKxvDao5B3gVigfHOqiujBkKNUiUGB+rN+VSMmIpn3iLHhhogRshv/wBDnars2Dl3tdXqvJhmQyk0/9/+xw78am9B8Cv3Pk+PeHQIMr1+JTQzFCmjC3oOFWwDoZp+xgo0g8idGeFvO8n1zT1Mqy//cn80nC1bNwDQXKo2T2n3+KKKeEuYUOfXssqufXGzq4uJQR0UuonJz78MtckzaD+s9ruh1QeaC/H2KAdRxESgwP8lg4/7I3DQxVpkwXS20YlrodA5wnzC6rMZiIcQ8N7Al5hnGIHSic98infsodHzSu7OVX8CdT9H8iBZ+gWgE2wjM18GFl+/pvd3Eixr7DBcnyigkxX0hrpb5DGQYDVr22vwYDm14RdVgnzmIEnuxr9ynrzmv5wb3upMVODMb3KftexYLRMMjHsJNUdegSakZY0Bk8o0f5jKV8pbHzspv1+Qgpc3/wSQoVdeuK58qe974aNsktTiXgCv3gE5G6IodyMvZm3Rhg0nhrg51g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4964.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(38100700002)(5660300002)(9686003)(2906002)(316002)(107886003)(26005)(8936002)(86362001)(55016003)(6636002)(83380400001)(66476007)(122000001)(38070700005)(76116006)(110136005)(30864003)(52536014)(4326008)(64756008)(8676002)(7696005)(186003)(66556008)(71200400001)(508600001)(53546011)(6506007)(33656002)(82960400001)(966005)(19627235002)(66446008)(66946007)(54906003)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dXVMWmtrRG9DR1M0OWFZU0ZWMys2ZXE0YmhIMXIwV3B3cDRGNVl5Q0NJNXU2?= =?utf-8?B?ejhVQm91dUFRRUtSS2xFY3ZLU3NtemhMTm8xNXpCdURmV0YzMm5Qa2tleWZy?= =?utf-8?B?VW5QeTBXeGIrQ3B2UlhGWnlzcytYNDVmMXdnb2c1bTVXSWNwdnpLb3c4NkRl?= =?utf-8?B?bDNQQ0d0TUlHZzgvNE1FZ0lVNk1sY1Z6R2txbTFCR2JFMHR4cWNMcVNPc2FN?= =?utf-8?B?cXZZYkd6bTN1cnRkcGJtUjNxb3VHbW1yL3V1UGJuVlE1WHlIbmhialNYWG43?= =?utf-8?B?c2hJUUY3NHhid3NqS0crZDE1aHFnVU9OZVNUWlpMZ2kwYmUrS1lPaEswVnBx?= =?utf-8?B?Z0pLN1BJeXNOaStjSUMwYkgzZjNCeHFaRG1oTldEVk1ZYnVxc01KYUpXYjRH?= =?utf-8?B?NTZnTGxsS3g4MlllVUxvNHBhWS9mM2dGUk0wbjliSmxSTjEraUErYUhuWW1h?= =?utf-8?B?WmdUQmFENjQyd3J5WTd2ZU1jR3lFZnA3ZVc3MDhzRWJLZDFjZlJmQ1VDQUFr?= =?utf-8?B?MlgrdnZXUDdhbGc0ZEM2a3Y2d2hueXBWWnoyd3BXenk0ZUtBMjRlZkdBYTB1?= =?utf-8?B?RlA0NVpxRW0vSVBVN2krRkFFN3VvVk1DeVQwSmJnVXY4b2gxZlhQZ3dmb3hj?= =?utf-8?B?NkFuNTBGY003QmZrZ1VNNVdwb2t3Ry9mL1J3OGJTNXF4K0dKRWpTQ0drMDBw?= =?utf-8?B?K2ZtVzQ1UCtYVHlIcVR5MTg5cGR0eThLd1BjQ0o3NC9QV2dUOVVkb0lmQTNL?= =?utf-8?B?Sy8zbkx3VXhjSGNISFIveEhEV3JLUlRKTjEvaE1EVHUxK2wreUtqd3p0ZHJU?= =?utf-8?B?TmJ0aENkak1uMm1NNEJlQ3hUdHMxakRUbWk5c2QrYk04NmpiUGVVRHN3Tkpx?= =?utf-8?B?TFVUOHFGc09rZ1VrZG16aDFpOWpaSWE1cmlMY3ZXMnRhckhpaE1EcVRzeVBR?= =?utf-8?B?TlF5TmxxK1hYZ0QyeVZsZUxwUnd0NnVhUE5hVndwYWZUbHI1dzFucXhaYTBl?= =?utf-8?B?ekN3bllKL1RBRk15Y2FsN3ZPcGU4SVdtc3Fsbm56enREemZVU040NFRJKzVK?= =?utf-8?B?UTA5ZllpaDJOcE1iMkNHc29GUjEvdGtkU29tMk9pZWRldXEyMEEyRkZtTStL?= =?utf-8?B?TitkNG9ocFF5USt2emFGS1RPbmxzZS9EN1NqaGpiVXY4VkpybWh5cjN4cFI0?= =?utf-8?B?UFR4SzVRZ09TTVJvNjJ4Y211VWovQUVlc045dHhCMVpiTE5LZTRvSzVhZ21H?= =?utf-8?B?ZTFEdVg2UlllU2VyS040Mk1wV2h5QlB4QmFKUGlyV1haVUtqbXpQd2F2L3dw?= =?utf-8?B?cEVqZmZBbllMbloxYnhSbUlHYzRzYzlsclZvWEIraktYaUR3OGJPb2dQREtu?= =?utf-8?B?VTBNMlNNRlJYY3gzVHBlWVZhQysrTnZJZDlSZXZ6cmgyVklqVWEyRnZHY1ZI?= =?utf-8?B?UFdTRkJoN0RBa05IZWxxcEV3R0Q0K3dQZVF1cmZXdWIvRFFDbDdmb0RpSExp?= =?utf-8?B?NnFvYjNFYmJjeHByOG04TW9paTBGYnNGMUx4UElLYlU4MjFoNUZyZDNSeDFU?= =?utf-8?B?WUZvS3l3T0t0a1F4WjlkdG8wRXpidWFoQ2xGZnlCdXlGRXFPZ3FqeSs0SlQx?= =?utf-8?B?M0hBS2JaZGx1VENXR3NhMDEzeU1mNVg4Z2wxcG8wSnBDeHJ2bC9uTXBXazNr?= =?utf-8?B?TmpKcTRJeDNtMHdBVEY0bW0zTXo5Q2tPVnZYbk5EcExyb2k0bS95cjFsckVJ?= =?utf-8?B?ZmhubnFUK21LNjFBOTc5TW1ieFB5Uy9IYk5hSnZjZG5Wa0tDaWZOMXFrTG8x?= =?utf-8?B?bTJDRURleWYzSWt2WFNiMmFXRjZUZDN6cGlxZk44SE5HOWxVNm5hdGZDbE9h?= =?utf-8?B?S3FsSU1tTDduWXNYRUExdlJSKzBBdVVnTEFRdnJRN3ozZnN3VHMybzhCZWla?= =?utf-8?B?OWU5WFZvRHRYWFljb054WDBpanpaUXIwRzV4OXdXVzRVRUI5aWJaUmx6eXN5?= =?utf-8?B?VWtLR1A4cDl5ZHU2OHYzOWNiYWNIRGdPbk1WRmppWU5abmhENWk2SmpRZXdn?= =?utf-8?B?bGdFOEhTK1RnRms3ZklRYXJTVUcrU1FjQWtNenBqQTUrdGJLSVJIc0tqb09B?= =?utf-8?B?dWEvSHdQTlhKVm1pYWxyYmJzMUVIemlIdThtZHNUOENaZkh3eGlvVlhVNy9Z?= =?utf-8?Q?CI2PHqb9qK0mMT4SQbpySfM=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4964.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b444d4a-17eb-4ac2-5755-08d9dedf2e91 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jan 2022 02:13:58.9049 (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: K4kj+xkfToUqHoRsAaqhMj8i9tMPwUCggSozAXxqEEjpvGvP7jhcyf6bnwlYV5wxEXwieHf7VoTBonDiZoreYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR11MB5759 Return-Path: di.zhang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpMaW1pbmc6DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZ2FvbGlt aW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+IFNlbnQ6IEZyaWRheSwgSmFudWFyeSAy MSwgMjAyMiAxOjE2IFBNDQo+IFRvOiBaaGFuZywgRGkgPGRpLnpoYW5nQGludGVsLmNvbT47IENo ZW4sIExpbiBaIDxsaW4uei5jaGVuQGludGVsLmNvbT47DQo+IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBIdWFuZywgTG9uZzEgPGxvbmcxLmh1YW5nQGludGVsLmNvbT47IEtpbm5leSwNCj4gTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IEJpLCBEYW5kYW4gPGRhbmRh bi5iaUBpbnRlbC5jb20+OyBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+Ow0KPiBM aSwgWmh1YW5nemhpIDx6aHVhbmd6aGkubGlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiDlm57lpI06 IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9IaWlEYXRhYmFzZUR4ZTogQWRkDQo+ IFN1cHBvcnQgZm9yIGF1dGhlbnRpY2F0ZWQgdmFyaWFibGUNCj4gDQo+IERpOg0KPiANCj4gPiAt LS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R5Lu25Lq6OiBaaGFuZywgRGkgPGRpLnpoYW5n QGludGVsLmNvbT4NCj4gPiDlj5HpgIHml7bpl7Q6IDIwMjLlubQx5pyIMjDml6UgMTQ6MDUNCj4g PiDmlLbku7bkuro6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBDaGVu LCBMaW4gWg0KPiA+IDxsaW4uei5jaGVuQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBIdWFuZywgTG9uZzENCj4gPiA8bG9uZzEuaHVhbmdAaW50ZWwuY29tPg0KPiA+IOaKhOmAgTog QmksIERhbmRhbiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IEZlbmcsIEJvYiBDDQo+ID4gPGJvYi5j LmZlbmdAaW50ZWwuY29tPjsgTGksIFpodWFuZ3poaSA8emh1YW5nemhpLmxpQGludGVsLmNvbT4N Cj4gPiDkuLvpopg6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQa2cvSGlpRGF0 YWJhc2VEeGU6IEFkZA0KPiA+IFN1cHBvcnQgZm9yIGF1dGhlbnRpY2F0ZWQgdmFyaWFibGUNCj4g Pg0KPiA+DQo+ID4gTGltaW5nOg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4gRnJvbTogZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4g PiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMTksIDIwMjIgMTA6NTcgQU0NCj4gPiA+IFRvOiBD aGVuLCBMaW4gWiA8bGluLnouY2hlbkBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg SHVhbmcsDQo+ID4gTG9uZzENCj4gPiA+IDxsb25nMS5odWFuZ0BpbnRlbC5jb20+DQo+ID4gPiBD YzogQmksIERhbmRhbiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IEZlbmcsIEJvYiBDDQo+ID4gPGJv Yi5jLmZlbmdAaW50ZWwuY29tPjsNCj4gPiA+IFpoYW5nLCBEaSA8ZGkuemhhbmdAaW50ZWwuY29t PjsgTGksIFpodWFuZ3poaSA8emh1YW5nemhpLmxpQGludGVsLmNvbT4NCj4gPiA+IFN1YmplY3Q6 IOWbnuWkjTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlTW9kdWxlUGtnL0hpaURhdGFiYXNlRHhl OiBBZGQNCj4gPiA+IFN1cHBvcnQgZm9yIGF1dGhlbnRpY2F0ZWQgdmFyaWFibGUNCj4gPiA+DQo+ ID4gPiBMaW46DQo+ID4gPg0KPiA+ID4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4gPiA+ IOWPkeS7tuS6ujogQ2hlbiwgTGluIFogPGxpbi56LmNoZW5AaW50ZWwuY29tPg0KPiA+ID4gPiDl j5HpgIHml7bpl7Q6IDIwMjLlubQx5pyIMTjml6UgODo0Mg0KPiA+ID4gPiDmlLbku7bkuro6IEdh bywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Ow0KPiA+IGRldmVsQGVkazIuZ3Jv dXBzLmlvOw0KPiA+ID4gPiBIdWFuZywgTG9uZzEgPGxvbmcxLmh1YW5nQGludGVsLmNvbT4NCj4g PiA+ID4g5oqE6YCBOiBCaSwgRGFuZGFuIDxkYW5kYW4uYmlAaW50ZWwuY29tPjsgRmVuZywgQm9i IEMNCj4gPiA+ID4gPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgWmhhbmcsIERpIDxkaS56aGFuZ0Bp bnRlbC5jb20+OyBMaSwNCj4gWmh1YW5nemhpDQo+ID4gPiA+IDx6aHVhbmd6aGkubGlAaW50ZWwu Y29tPg0KPiA+ID4gPiDkuLvpopg6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQ a2cvSGlpRGF0YWJhc2VEeGU6IEFkZA0KPiA+ID4gPiBTdXBwb3J0IGZvciBhdXRoZW50aWNhdGVk IHZhcmlhYmxlDQo+ID4gPiA+DQo+ID4gPiA+IEhpIExpbWluZywNCj4gPiA+ID4NCj4gPiA+ID4g ICAgUGxzIHNlZSBteSBjb21tZW50cyBiZWxvdy4NCj4gPiA+ID4NCj4gPiA+ID4gMS4NCj4gPiA+ ID4gUGNkTnZTdG9yZURlZmF1bHRWYWx1ZUJ1ZmZlciB0eXBlIGlzIER5bmFtaWNFeC4gSXRzIFBj ZEdldFB0ciBpcw0KPiBzYW1lDQo+ID4gdG8NCj4gPiA+ID4gUGNkR2V0RXhQdHIuIFRoaXMgY2hh bmdlIGlzIG5vdCByZXF1aXJlZC4NCj4gPiA+ID4NCj4gPiA+ID4gW0xpbl0gSXQnbGwgZ2V0IGFs aWdubWVudCB3aXRoIFBFSSBwaGFzZSByZWZlcmVuY2UgSWYgdXNpbmcNCj4gUGNkR2V0RXhQdHIN Cj4gPiA+IHZlcnNpb24uDQo+ID4gPiA+IEVkazIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9QQ0Qv UGVpL1BjZC5jIzE2Ng0KPiA+ID4gPiBEYXRhQnVmZmVyID0gKFVJTlQ4ICopUGVpUGNkR2V0UHRy RXgNCj4gPiAoJmdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZCwNCj4gPiA+ID4gUGNkVG9r ZW4gKFBjZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXIpKTsNCj4gPiA+ID4NCj4gPiA+IFBjZFBl aSBpcyBkaWZmZXJlbnQuIEl0IGlzIFBjZCBkcml2ZXIuIEl0IGNhbid0IGNvbnN1bWUgdGhlIHJl YWwNCj4gUGNkTGliLg0KPiA+ID4gU28sIGl0IGRvZXNuJ3QgdXNlIFBjZExpYiBQY2RHZXRQdHIo KSBBUEkuDQo+ID4gPiBJdCB1c2VzIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBQZWlQY2RHZXRQdHJF eCgpIHRvIGdldCBQQ0QgdmFsdWUgYW5kDQo+IHNpemUuDQo+ID4gPg0KPiA+ID4gSGlpRGF0YUJh c2UgaXMgbm9ybWFsIERYRSBkcml2ZXIuIEl0IGNhbiBkZXBlbmQgb24gdGhlIHJlYWwgUGNkTGli LiBTbywNCj4gaXQNCj4gPiA+IHVzZXMgUGNkTGliIFBjZEdldFB0cigpIEFQSS4NCj4gPiA+IFNl ZW1seSwgY3VycmVudCBjb2RlIGJyaW5ncyBjb25mdXNlLiBJZiBzbywgSSBhbSBPSyB0byBtYWtl IHRoaXMNCj4gY2hhbmdlLg0KPiA+ID4gQW5kLCBwbGVhc2UgYWxzbyB1cGRhdGUgUGNkR2V0U2l6 ZSAoUGNkTnZTdG9yZURlZmF1bHRWYWx1ZUJ1ZmZlcikgd2l0aA0KPiA+ID4gTGliUGNkR2V0RXhT aXplKCkNCj4gPiA+DQo+ID4gPiA+IDIuDQo+ID4gPiA+IFZhcmlhYmxlU3RvcmFnZSBkYXRhIGJ1 ZmZlciBpcyBmcm9tIFBjZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXIuDQo+ID4gPiA+IFBjZE52 U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXIgaXMgYXV0byBnZW5lcmF0ZWQgYnkgQmFzZVRvb2xzLg0K PiA+ID4gPiBCeSBkZXNpZ24sIGl0cyBkYXRhIGZvcm1hdCBpcyBhbHdheXMgbm9ybWFsIHZhcmlh YmxlIHN0b3JhZ2UgZm9ybWF0Lg0KPiA+ID4gPiBTbywgaXRzIHZhbHVlIGNhbid0IGJlIGF1dGgg dmFyaWFibGUgZm9ybWF0Lg0KPiA+ID4gPg0KPiA+ID4gPiBbTGluXSBCYXNlVG9vbHMgY2FuIGdl bmVyYXRlIGF1dGhlbnRpY2F0ZWQgdmFyaWFibGUgc3RvcmFnZSBmb3JtYXQNCj4gbm93DQo+ID4g PiAoc2VlDQo+ID4gPiA+IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzgz MzI5KSwNCj4gPiA+ID4gIHNpbmNlIHByZXZpb3VzIEZDRSB0b29sIGdlbmVyYXRlcyBhdXRoZW50 aWNhdGVkIGZvcm1hdCwgd2Ugd2FudCB0bw0KPiA+IGtlZXANCj4gPiA+ID4gdmFyaWFibGUgc3Rv cmFnZSBmb3JtYXQgbm8gY2hhbmdlcyBhZnRlciBzd2l0Y2hpbmcgdG8gU3RydWN0dXJlUGNkLg0K PiA+ID4gPg0KPiA+ID4gU29ycnksIEkgbWlzcyB0aGUgcHJldmlvdXMgY2hhbmdlIGluIEJhc2VU b29scy4gTm9ybWFsIHZhcmlhYmxlDQo+IHN0b3JhZ2UgaXMNCj4gPiA+IGVub3VnaCBmb3IgVG9v bHMgYW5kIENvZGUuDQo+ID4gPiBUaGUgZGVmYXVsdCBzZXR0aW5nIGZvcm1hdCBjYW4gYmUgYWx3 YXlzIG5vcm1hbCB2YXJpYWJsZSBzdG9yYWdlLiBUaGUNCj4gPiA+IGNvbnN1bWVyIGNvZGUgbG9n aWMgY2FuIGJlIHNpbXBsZS4NCj4gPiA+IEkgZG9uJ3Qga25vdyB3aGF0IHB1cnBvc2UgdG8ga2Vl cCB0aGUgYWxpZ25tZW50IHdpdGggRkNFIHRvb2wgYmVoYXZpb3IuDQo+IElzDQo+ID4gPiB0aGVy ZSBvdGhlciB0b29sIG9yIGNvZGUgdG8gdXNlDQo+ID4gPiB0aGUgZ2VuZXJhdGVkIFBjZE52U3Rv cmVEZWZhdWx0VmFsdWVCdWZmZXI/DQo+ID4gPg0KPiA+DQo+ID4gV2UgaGF2ZSB0aGUgdXNhZ2Ug dGhhdCB3cml0aW5nIHRoZSBlbnRpcmUgVlBEICh3aGljaCBoYXMgZGVmYXVsdCBzZXR1cA0KPiB2 YWx1ZSkNCj4gPiB0byB2YXJpYWJsZSByZWdpb24gdXBvbiBmaXJzdCBib290LiBBbmQgdGhlIHZh cmlhYmxlIHJlZ2lvbiBuZWVkcyB0byBiZQ0KPiBpbg0KPiA+IGF1dGhlbnRpY2F0ZWQgZm9ybWF0 IHdoZW4gc2VjdXJlIGJvb3QgaXMgZW5hYmxlZCwgc28gd2UgYWxzbyBuZWVkIHRoZQ0KPiBWUEQN Cj4gPiBpbg0KPiA+IGF1dGhlbnRpY2F0ZWQgZm9ybWF0LiBIb3BlIGl0IGNsYXJpZmllcyB5b3Vy IHF1ZXN0aW9uLg0KPiA+DQo+IEN1cnJlbnQgdXNhZ2UgaXMgdG8gYnVpbGQgVmFyaWFibGVIb2Ig YmFzZWQgb24NCj4gUGNkTnZTdG9yZURlZmF1bHRWYWx1ZUJ1ZmZlciBkYXRhIGluIFBFSSwNCj4g YW5kIHdyaXRlIFZhcmlhYmxlSG9iIGludG8gTlYgc3BhY2UgaW4gRFhFLiBWYXJpYWJsZSBkcml2 ZXIgaXMgcmVzcG9uc2libGUNCj4gdG8gY29udmVydA0KPiBub3JtYWwgdmFyaWFibGUgZm9ybWF0 IHRvIHRoZSBhdXRoIHZhcmlhYmxlIGZvcm1hdC4NCj4gDQo+IEhhdmUgeW91IGFub3RoZXIgdXNh Z2UgbW9kZWwgdG8gd3JpdGUgZW50aXJlIFZQRCBkYXRhIHRvIHZhcmlhYmxlIHJlZ2lvbj8NCj4g SG93IGlzDQo+IFZQRCBkYXRhIHBsYWNlZCBpbnRvIHZhcmlhYmxlIHJlZ2lvbj8gSXMgVlBEIGRh dGEgd3JhcHBlZCBhcyB0aGUgdmFyaWFibGUNCj4gZm9ybWF0Pw0KPiBJZiBzbywgVlBEIGRhdGEg aXMgYWxzbyB2YXJpYWJsZSBkYXRhLiBJIHRoaW5rIFZhcmlhYmxlIGRyaXZlciBzaG91bGQNCj4g Y2hlY2sgTlYgcmVnaW9uDQo+IHRvIGRlY2lkZSB0aGUgdmFyaWFibGUgZm9ybWF0IGluc3RlYWQg b2YgVlBEIGRhdGEuDQo+IA0KPiBDYW4geW91IGFkZCB0aGUgYmFja2dyb3VuZCBhYm91dCBuZXcg dXNhZ2UgbW9kZWwgaW50bw0KPiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTM3OTY/DQo+IA0KDQpUaGFua3MgZm9yIHBvaW50aW5nIGl0IG91dCwgd2UgZGlk bid0IG5vdGljZSBEWEUgVmFyaWFibGUgZHJpdmVyIGhhcyBkb25lDQp0aGlzIGNvbnZlcnRpbmcg am9iIGFscmVhZHkgc2luY2UgRkNFIHdhcyB1c2luZyBhdXRoIGZvcm1hdC4NCldlIGhhdmUgdmVy aWZpZWQgdGhlIG5vcm1hbCBWUEQgKyBhdXRoIHZhcmlhYmxlIHN0b3JlIGFuZCBpdCB3b3Jrcy4N CldlIHdpbGwgZHJvcCB0aGlzIHBhdGNoIChhbHNvIHJldmVydGluZyB0aGUgYmFzZXRvb2xzIGNo YW5nZSkgc2luY2Ugbm9ybWFsDQpWUEQgc2hvdWxkIGFscmVhZHkgbWVldCBvdXIgY3VycmVudCB1 c2FnZSBtb2RlbC4gDQoNCj4gVGhhbmtzDQo+IExpbWluZw0KPiA+ID4gVGhhbmtzDQo+ID4gPiBM aW1pbmcNCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBMaW4NCj4gPiA+ID4NCj4gPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZ2FvbGltaW5nIDxnYW9saW1p bmdAYnlvc29mdC5jb20uY24+DQo+ID4gPiA+IFNlbnQ6IE1vbmRheSwgSmFudWFyeSAxNywgMjAy MiA2OjU2IFBNDQo+ID4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgSHVhbmcsIExvbmcx IDxsb25nMS5odWFuZ0BpbnRlbC5jb20+DQo+ID4gPiA+IENjOiBDaGVuLCBMaW4gWiA8bGluLnou Y2hlbkBpbnRlbC5jb20+OyBCaSwgRGFuZGFuDQo+ID4gPGRhbmRhbi5iaUBpbnRlbC5jb20+Ow0K PiA+ID4gPiBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+DQo+ID4gPiA+IFN1Ympl Y3Q6IOWbnuWkjTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlTW9kdWxlUGtnL0hpaURhdGFiYXNl RHhlOg0KPiA+IEFkZA0KPiA+ID4gPiBTdXBwb3J0IGZvciBhdXRoZW50aWNhdGVkIHZhcmlhYmxl DQo+ID4gPiA+DQo+ID4gPiA+IExvbmc6DQo+ID4gPiA+ICAgSSBhZGQgbXkgY29tbWVudHMgYmVs b3cuDQo+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiA+ID4gPiA+ IOWPkeS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiDk u6PooaggTG9uZzENCj4gPiA+ID4gSHVhbmcNCj4gPiA+ID4gPiDlj5HpgIHml7bpl7Q6IDIwMjLl ubQx5pyIMTHml6UgMTowMw0KPiA+ID4gPiA+IOaUtuS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gPiA+ID4gPiDmioTpgIE6IEh1YW5nIExvbmcgPGxvbmcxLmh1YW5nQGludGVsLmNvbT47 IExpbWluZyBHYW8NCj4gPiA+ID4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgQ2hlbiBM aW4gWiA8bGluLnouY2hlbkBpbnRlbC5jb20+Ow0KPiA+IERhbmRhbg0KPiA+ID4gPiA+IEJpIDxk YW5kYW4uYmlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IOS4u+mimDogW2VkazItZGV2ZWxdIFtQQVRD SF0gTWRlTW9kdWxlUGtnL0hpaURhdGFiYXNlRHhlOiBBZGQNCj4gPiBTdXBwb3J0DQo+ID4gPiA+ IGZvcg0KPiA+ID4gPiA+IGF1dGhlbnRpY2F0ZWQgdmFyaWFibGUNCj4gPiA+ID4gPg0KPiA+ID4g PiA+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM3 OTYNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IERhdGFiYXNlLmM6DQo+ID4gPiA+ID4gCTEuIFJlcGxh Y2UgUGNkR2V0RXhQdHIgd2l0aCBQY2RHZXRFeFB0ci4NCj4gPiA+ID4gPiAJMi4gQWRkIEZpbmRB dXRoVmFyaWFibGVEYXRhIGZ1bmN0aW9uIHRvIHBhcnNlIGF1dGhlbnRpY2F0ZWQNCj4gPiB2YXJp YWJsZQ0KPiA+ID4gPiA+IHR5cGUgZm9yIGdldHRpbmcgYSBjb3JyZWN0IGRlZmF1bHQgdmFsdWUg aW4NCj4gPiA+IFBjZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXIuDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+ID4gPiA+ IENjOiBDaGVuIExpbiBaIDxsaW4uei5jaGVuQGludGVsLmNvbT4NCj4gPiA+ID4gPiBDYzogRGFu ZGFuIEJpIDxkYW5kYW4uYmlAaW50ZWwuY29tPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gU2lnbmVk LW9mZi1ieTogSHVhbmcgTG9uZyA8bG9uZzEuaHVhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+IC0t LQ0KPiA+ID4gPiA+ICAuLi4vVW5pdmVyc2FsL0hpaURhdGFiYXNlRHhlL0RhdGFiYXNlLmMgICAg ICAgfCAxNDcNCj4gPiA+ID4gKysrKysrKysrKysrKy0tLS0tDQo+ID4gPiA+ID4gIC4uLi9IaWlE YXRhYmFzZUR4ZS9IaWlEYXRhYmFzZUR4ZS5pbmYgICAgICAgICB8ICAgMyArDQo+ID4gPiA+ID4g IDIgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQ0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlp RGF0YWJhc2VEeGUvRGF0YWJhc2UuYw0KPiA+ID4gPiA+IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9IaWlEYXRhYmFzZUR4ZS9EYXRhYmFzZS5jDQo+ID4gPiA+ID4gaW5kZXggMGIwOWMyNGQ1Mi4u YzA1NWZhMGYyOSAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L0hpaURhdGFiYXNlRHhlL0RhdGFiYXNlLmMNCj4gPiA+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL0hpaURhdGFiYXNlRHhlL0RhdGFiYXNlLmMNCj4gPiA+ID4gPiBAQCAtNjAzLDYg KzYwMyw0NSBAQCBGaW5kVmFyaWFibGVEYXRhICgNCj4gPiA+ID4gPiAgICByZXR1cm4gTlVMTDsN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gKy8qKg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgRmluZCB0aGUgbWF0Y2hl ZCBhdXRoZW50aWNhdGVkIHZhcmlhYmxlIGZyb20gdGhlIGlucHV0IHZhcmlhYmxlDQo+ID4gPiA+ IHN0b3JhZ2UuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAr ICBAcGFyYW1baW5dIFZhcmlhYmxlU3RvcmFnZSBQb2ludCB0byB0aGUgdmFyaWFibGUgc3RvcmFn ZSBoZWFkZXIuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICBAcGFyYW1baW5dIFZhckd1aWQgICAg ICAgICBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdmFyaWFibGUuDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiArICBAcGFyYW1baW5dIFZhckF0dHJpYnV0ZSAgICBUaGUgYXR0cmlidXRlcyBiaXRt YXNrIGZvciB0aGUNCj4gPiB2YXJpYWJsZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgIEBwYXJh bVtpbl0gVmFyTmFtZSAgICAgICAgIEEgTnVsbC10ZXJtaW5hdGVkIGFzY2lpIHN0cmluZyB0aGF0 DQo+ID4gaXMNCj4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gbmFtZSBvZiB0aGUgdmFyaWFibGUuDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICBAcmV0dXJuIFBv aW50ZXIgdG8gdGhlIG1hdGNoZWQgdmFyaWFibGUgaGVhZGVyIG9yIE5VTEwgaWYgbm90DQo+ID4g Zm91bmQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArKiovDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAr QVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVIgKg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gK0Zp bmRBdXRoVmFyaWFibGVEYXRhICgNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgIElOICBWQVJJQUJM RV9TVE9SRV9IRUFERVIgICpWYXJpYWJsZVN0b3JhZ2UsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAr ICBJTiAgRUZJX0dVSUQgICAgICAgICAgICAgICAqVmFyR3VpZCwNCj4gPiA+ID4gPg0KPiA+ID4g PiA+ICsgIElOICBVSU5UMzIgICAgICAgICAgICAgICAgIFZhckF0dHJpYnV0ZSwNCj4gPiA+ID4g Pg0KPiA+ID4gPiA+ICsgIElOICBDSEFSMTYgICAgICAgICAgICAgICAgICpWYXJOYW1lDQo+ID4g PiA+ID4NCj4gPiA+ID4gPiArICApDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArew0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gKyAgQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVIgICpBdXRoVmFyaWFi bGVIZWFkZXI7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICBBVVRIRU5USUNBVEVEX1ZBUklBQkxF X0hFQURFUiAgKkF1dGhWYXJpYWJsZUVuZDsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPg0KPiA+ID4gPiA+ICsgIEF1dGhWYXJpYWJsZUVuZCAgICA9IChBVVRIRU5USUNBVEVEX1ZB UklBQkxFX0hFQURFUg0KPiA+ID4gPiAqKSgoVUlOVDgNCj4gPiA+ID4gPiAqKVZhcmlhYmxlU3Rv cmFnZSArIFZhcmlhYmxlU3RvcmFnZS0+U2l6ZSk7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICBB dXRoVmFyaWFibGVIZWFkZXIgPSAoQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVINCj4gPiA+ ID4gPiAqKShWYXJpYWJsZVN0b3JhZ2UgKyAxKTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgIEF1 dGhWYXJpYWJsZUhlYWRlciA9IChBVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hFQURFUg0KPiA+ID4g PiA+ICopSEVBREVSX0FMSUdOIChBdXRoVmFyaWFibGVIZWFkZXIpOw0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gKyAgd2hpbGUgKEF1dGhWYXJpYWJsZUhlYWRlciA8IEF1dGhWYXJpYWJsZUVuZCkgew0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICBpZiAoQ29tcGFyZUd1aWQgKCZBdXRoVmFyaWFibGVI ZWFkZXItPlZlbmRvckd1aWQsIFZhckd1aWQpDQo+ID4gJiYNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ ICsgICAgICAgIChBdXRoVmFyaWFibGVIZWFkZXItPkF0dHJpYnV0ZXMgPT0gVmFyQXR0cmlidXRl KSAmJg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICAgICAgKFN0ckNtcCAoVmFyTmFtZSwgKENI QVIxNiAqKShBdXRoVmFyaWFibGVIZWFkZXIgKyAxKSkgPT0NCj4gPiAwKSkNCj4gPiA+ID4gPg0K PiA+ID4gPiA+ICsgICAgew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICAgIHJldHVybiBBdXRo VmFyaWFibGVIZWFkZXI7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPg0K PiA+ID4gPiA+ICsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgQXV0aFZhcmlhYmxlSGVhZGVy ID0gKEFVVEhFTlRJQ0FURURfVkFSSUFCTEVfSEVBREVSDQo+ID4gPiA+ID4gKikoKFVJTlQ4ICop QXV0aFZhcmlhYmxlSGVhZGVyICsgc2l6ZW9mDQo+ID4gPiA+ID4gKEFVVEhFTlRJQ0FURURfVkFS SUFCTEVfSEVBREVSKSArDQo+ID4gQXV0aFZhcmlhYmxlSGVhZGVyLT5OYW1lU2l6ZSArDQo+ID4g PiA+ID4gQXV0aFZhcmlhYmxlSGVhZGVyLT5EYXRhU2l6ZSk7DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiArICAgIEF1dGhWYXJpYWJsZUhlYWRlciA9IChBVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hFQURF Ug0KPiA+ID4gPiA+ICopSEVBREVSX0FMSUdOIChBdXRoVmFyaWFibGVIZWFkZXIpOw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gKyAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gKyAgcmV0dXJuIE5VTEw7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArfQ0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gIC8qKg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gICAgRmluZCBxdWVzdGlvbiBkZWZhdWx0IHZhbHVlIGZyb20gUGNkTnZTdG9yZURl ZmF1bHRWYWx1ZUJ1ZmZlcg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IEBAIC02MjYsMjUgKzY2NSwyNyBAQCBGaW5kUXVlc3Rpb25EZWZhdWx0U2V0dGluZyAoDQo+ ID4gPiA+ID4gICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgICBCaXRGaWVsZFF1ZXN0aW9u DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICApDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgew0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gLSAgVkFSSUFCTEVfSEVBREVSICAgICAgICAgICpWYXJpYWJsZUhl YWRlcjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gIFZBUklBQkxFX1NUT1JFX0hFQURFUiAgICAq VmFyaWFibGVTdG9yYWdlOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAgTElTVF9FTlRSWSAgICAg ICAgICAgICAgICpMaW5rOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAgVkFSU1RPUkFHRV9ERUZB VUxUX0RBVEEgICpFbnRyeTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gIFZBUklBQkxFX1NUT1JF X0hFQURFUiAgICAqTnZTdG9yZUJ1ZmZlcjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gIFVJTlQ4 ICAgICAgICAgICAgICAgICAgICAqRGF0YUJ1ZmZlcjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0g IFVJTlQ4ICAgICAgICAgICAgICAgICAgICAqQnVmZmVyRW5kOw0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gLSAgQk9PTEVBTiAgICAgICAgICAgICAgICAgIElzRm91bmQ7DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiAtICBVSU5UMzIgICAgICAgICAgICAgICAgICAgQnVmZmVyVmFsdWU7DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiAtICBVSU5UMzIgICAgICAgICAgICAgICAgICAgQml0RmllbGRWYWw7DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgQml0T2Zmc2V0Ow0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAgVUlOVE4gICAgICAgICAgICAgICAgICAgIEJ5dGVPZmZz ZXQ7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgQml0 V2lkdGg7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAg U3RhcnRCaXQ7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgRW5kQml0Ow0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAgUENEX0RFRkFVTFRfREFUQSAgICAg ICAgICpEYXRhSGVhZGVyOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAgUENEX0RFRkFVTFRfSU5G TyAgICAgICAgICpEZWZhdWx0SW5mbzsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gIFBDRF9EQVRB X0RFTFRBICAgICAgICAgICAqRGVsdGFEYXRhOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgVkFS SUFCTEVfSEVBREVSICAgICAgICAgICAgICAgICAgICpWYXJpYWJsZUhlYWRlcjsNCj4gPiA+ID4g Pg0KPiA+ID4gPiA+ICsgIEFVVEhFTlRJQ0FURURfVkFSSUFCTEVfSEVBREVSICAgICAqQXV0aFZh cmlhYmxlSGVhZGVyOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgVkFSSUFCTEVfU1RPUkVfSEVB REVSICAgICAgICAgICAgICpWYXJpYWJsZVN0b3JhZ2U7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAr ICBMSVNUX0VOVFJZICAgICAgICAgICAgICAgICAgICAgICAgKkxpbms7DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiArICBWQVJTVE9SQUdFX0RFRkFVTFRfREFUQSAgICAgICAgICAgKkVudHJ5Ow0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gKyAgVkFSSUFCTEVfU1RPUkVfSEVBREVSICAgICAgICAgICAgICpO dlN0b3JlQnVmZmVyOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgVUlOVDggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICpEYXRhQnVmZmVyOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgVUlO VDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICpCdWZmZXJFbmQ7DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiArICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aEZvcm1hdDsN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICBJc0ZvdW5kOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEluZGV4Ow0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgVUlOVDMyICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclZhbHVlOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g KyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpdEZpZWxkVmFsOw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpdE9m ZnNldDsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCeXRlT2Zmc2V0Ow0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgVUlOVE4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJpdFdpZHRoOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAg VUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0Qml0Ow0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZEJpdDsNCj4g PiA+ID4gPg0KPiA+ID4gPiA+ICsgIFBDRF9ERUZBVUxUX0RBVEEgICAgICAgICAgICAgICAgICAq RGF0YUhlYWRlcjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgIFBDRF9ERUZBVUxUX0lORk8gICAg ICAgICAgICAgICAgICAqRGVmYXVsdEluZm87DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICBQQ0Rf REFUQV9ERUxUQSAgICAgICAgICAgICAgICAgICAgKkRlbHRhRGF0YTsNCj4gPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICBpZiAoZ1NrdUlkID09IDB4RkZGRkZGRkZG RkZGRkZGRikgew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICBnU2t1SWQgPSBMaWJQY2RHZXRT a3UgKCk7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBAQCAtNjY2LDcgKzcwNyw3IEBAIEZpbmRRdWVz dGlvbkRlZmF1bHRTZXR0aW5nICgNCj4gPiA+ID4gPiAgICB9DQo+ID4gPiA+ID4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgaWYgKExpbmsgPT0gJmdWYXJTdG9yYWdlTGlzdCkg ew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAgICBEYXRhQnVmZmVyICAgICAgICAgID0gKFVJTlQ4 ICopUGNkR2V0UHRyDQo+ID4gPiA+ID4gKFBjZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXIpOw0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICBEYXRhQnVmZmVyICAgICAgICAgID0gKFVJTlQ4ICop UGNkR2V0RXhQdHINCj4gPiA+ID4gPiAoJmdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZCwg UGNkTnZTdG9yZURlZmF1bHRWYWx1ZUJ1ZmZlcik7DQo+ID4gPiA+ID4NCj4gPiA+ID4gUGNkTnZT dG9yZURlZmF1bHRWYWx1ZUJ1ZmZlciB0eXBlIGlzIER5bmFtaWNFeC4gSXRzIFBjZEdldFB0ciBp cw0KPiBzYW1lDQo+ID4gdG8NCj4gPiA+ID4gUGNkR2V0RXhQdHIuIFRoaXMgY2hhbmdlIGlzIG5v dCByZXF1aXJlZC4NCj4gPiA+ID4NCj4gPiA+ID4gPiAgICAgIGdOdkRlZmF1bHRTdG9yZVNpemUg PQ0KPiA+ID4gPiAoKFBDRF9OVl9TVE9SRV9ERUZBVUxUX0JVRkZFUl9IRUFERVINCj4gPiA+ID4g PiAqKURhdGFCdWZmZXIpLT5MZW5ndGg7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgIC8vDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgIC8vIFRoZSBmaXJzdCBzZWN0aW9uIGRhdGEgaW5jbHVk ZXMgTlYgc3RvcmFnZSBkZWZhdWx0IHNldHRpbmcuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBAQCAt NzUwLDEyICs3OTEsMjcgQEAgRmluZFF1ZXN0aW9uRGVmYXVsdFNldHRpbmcgKA0KPiA+ID4gPiA+ ICAgICAgcmV0dXJuIEVGSV9OT1RfRk9VTkQ7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICB9DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgLy8NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+ICsgIC8vIEp1ZGdlIGlmIHRoZSB2YXJpYWJsZSB0eXBlIGlzIGF1dGhlbnRp Y2F0ZWQsIGRlZmF1bHQgaXMNCj4gZmFsc2UNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgIC8vDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiArICBBdXRoRm9ybWF0ID0gRkFMU0U7DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiArICBpZiAoQ29tcGFyZUd1aWQgKCZWYXJpYWJsZVN0b3JhZ2UtPlNpZ25hdHVyZSwN Cj4gPiA+ID4gPiAmZ0VmaUF1dGhlbnRpY2F0ZWRWYXJpYWJsZUd1aWQpKSB7DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiArICAgIEF1dGhGb3JtYXQgPSBUUlVFOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g KyAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+ID4gICAgLy8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIC8vIEZpbmQgdGhlIHF1 ZXN0aW9uIGRlZmF1bHQgdmFsdWUgZnJvbSB0aGUgdmFyaWFibGUgc3RvcmFnZQ0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gICAgLy8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gIFZhcmlhYmxlSGVhZGVy ID0gRmluZFZhcmlhYmxlRGF0YSAoVmFyaWFibGVTdG9yYWdlLA0KPiA+ID4gPiA+ICZFZmlWYXJT dG9yZS0+R3VpZCwNCj4gPiA+ID4gPiBFZmlWYXJTdG9yZS0+QXR0cmlidXRlcywgKENIQVIxNiAq KUVmaVZhclN0b3JlLT5OYW1lKTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gIGlmIChWYXJpYWJs ZUhlYWRlciA9PSBOVUxMKSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICAgIHJldHVybiBFRklf Tk9UX0ZPVU5EOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgaWYoQXV0aEZvcm1hdCkgew0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gKyAgICBBdXRoVmFyaWFibGVIZWFkZXIgPSBGaW5kQXV0aFZhcmlh YmxlRGF0YSAoVmFyaWFibGVTdG9yYWdlLA0KPiA+ID4gPiA+ICZFZmlWYXJTdG9yZS0+R3VpZCwg RWZpVmFyU3RvcmUtPkF0dHJpYnV0ZXMsIChDSEFSMTYNCj4gPiA+ID4gPiAqKUVmaVZhclN0b3Jl LT5OYW1lKTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgaWYgKEF1dGhWYXJpYWJsZUhlYWRl ciA9PSBOVUxMKSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgICAgcmV0dXJuIEVGSV9OT1Rf Rk9VTkQ7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ ICsgIH0gZWxzZSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgIFZhcmlhYmxlSGVhZGVyID0g RmluZFZhcmlhYmxlRGF0YSAoVmFyaWFibGVTdG9yYWdlLA0KPiA+ID4gPiA+ICZFZmlWYXJTdG9y ZS0+R3VpZCwgRWZpVmFyU3RvcmUtPkF0dHJpYnV0ZXMsIChDSEFSMTYNCj4gPiA+ID4gPiAqKUVm aVZhclN0b3JlLT5OYW1lKTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgaWYgKFZhcmlhYmxl SGVhZGVyID09IE5VTEwpIHsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgICByZXR1cm4gRUZJ X05PVF9GT1VORDsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+IFZhcmlhYmxlU3RvcmFnZSBkYXRhIGJ1ZmZl ciBpcyBmcm9tIFBjZE52U3RvcmVEZWZhdWx0VmFsdWVCdWZmZXIuDQo+ID4gPiA+IFBjZE52U3Rv cmVEZWZhdWx0VmFsdWVCdWZmZXIgaXMgYXV0byBnZW5lcmF0ZWQgYnkgQmFzZVRvb2xzLg0KPiA+ ID4gPiBCeSBkZXNpZ24sIGl0cyBkYXRhIGZvcm1hdCBpcyBhbHdheXMgbm9ybWFsIHZhcmlhYmxl IHN0b3JhZ2UgZm9ybWF0Lg0KPiA+ID4gPiBTbywgaXRzIHZhbHVlIGNhbid0IGJlIGF1dGggdmFy aWFibGUgZm9ybWF0Lg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MNCj4gPiA+ID4gTGltaW5nDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIFN0YXJ0Qml0ICAgPSAwOw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gQEAgLTc3MCwyMCArODI2LDM5IEBAIEZpbmRRdWVzdGlvbkRlZmF1bHRT ZXR0aW5nICgNCj4gPiA+ID4gPiAgICAgIFdpZHRoICAgICAgPSBFbmRCaXQgLyA4ICsgMTsNCj4g PiA+ID4gPg0KPiA+ID4gPiA+ICAgIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiAtICBpZiAoVmFyaWFibGVIZWFkZXItPkRhdGFTaXplIDwgQnl0ZU9mZnNldCAr IFdpZHRoKSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICAgIHJldHVybiBFRklfSU5WQUxJRF9Q QVJBTUVURVI7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICB9DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiArICBpZihBdXRoRm9ybWF0KSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgIGlmIChBdXRo VmFyaWFibGVIZWFkZXItPkRhdGFTaXplIDwgQnl0ZU9mZnNldCArIFdpZHRoKSB7DQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiArICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPiA+ ID4gPg0KPiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IC0gIC8vDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICAvLyBDb3B5IHRoZSBxdWVz dGlvbiB2YWx1ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAgLy8NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IC0gIGlmIChWYWx1ZUJ1ZmZlciAhPSBOVUxMKSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAt ICAgIGlmIChCaXRGaWVsZFF1ZXN0aW9uKSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICAgICAg Q29weU1lbSAoJkJ1ZmZlclZhbHVlLCAoVUlOVDggKilWYXJpYWJsZUhlYWRlciArIHNpemVvZg0K PiA+ID4gPiA+IChWQVJJQUJMRV9IRUFERVIpICsgVmFyaWFibGVIZWFkZXItPk5hbWVTaXplICsg Qnl0ZU9mZnNldCwgV2lkdGgpOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSAgICAgIEJpdEZpZWxk VmFsID0gQml0RmllbGRSZWFkMzIgKEJ1ZmZlclZhbHVlLCBTdGFydEJpdCwNCj4gRW5kQml0KTsN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gICAgICBDb3B5TWVtIChWYWx1ZUJ1ZmZlciwgJkJpdEZp ZWxkVmFsLCBXaWR0aCk7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtICAgIH0gZWxzZSB7DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiAtICAgICAgQ29weU1lbSAoVmFsdWVCdWZmZXIsIChVSU5UOCAqKVZh cmlhYmxlSGVhZGVyICsgc2l6ZW9mDQo+ID4gPiA+ID4gKFZBUklBQkxFX0hFQURFUikgKyBWYXJp YWJsZUhlYWRlci0+TmFtZVNpemUgKw0KPiA+ID4gPiA+IElmclF1ZXN0aW9uSGRyLT5WYXJTdG9y ZUluZm8uVmFyT2Zmc2V0LCBXaWR0aCk7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgIC8vDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgIC8vIENvcHkgdGhlIHF1ZXN0aW9uIHZhbHVlDQo+ID4g PiA+ID4NCj4gPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgIGlmIChW YWx1ZUJ1ZmZlciAhPSBOVUxMKSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgICAgaWYgKEJp dEZpZWxkUXVlc3Rpb24pIHsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgICAgIENvcHlNZW0g KCZCdWZmZXJWYWx1ZSwgKFVJTlQ4ICopQXV0aFZhcmlhYmxlSGVhZGVyICsNCj4gPiBzaXplb2YN Cj4gPiA+ID4gPiAoQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IRUFERVIpICsNCj4gPiBBdXRoVmFy aWFibGVIZWFkZXItPk5hbWVTaXplICsNCj4gPiA+ID4gPiBCeXRlT2Zmc2V0LCBXaWR0aCk7DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgICAgICBCaXRGaWVsZFZhbCA9IEJpdEZpZWxkUmVhZDMy IChCdWZmZXJWYWx1ZSwgU3RhcnRCaXQsDQo+IEVuZEJpdCk7DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiArICAgICAgICBDb3B5TWVtIChWYWx1ZUJ1ZmZlciwgJkJpdEZpZWxkVmFsLCBXaWR0aCk7DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgICAgfSBlbHNlIHsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ ICsgICAgICAgIENvcHlNZW0gKFZhbHVlQnVmZmVyLCAoVUlOVDggKilBdXRoVmFyaWFibGVIZWFk ZXIgKw0KPiA+IHNpemVvZg0KPiA+ID4gPiA+IChBVVRIRU5USUNBVEVEX1ZBUklBQkxFX0hFQURF UikgKw0KPiA+IEF1dGhWYXJpYWJsZUhlYWRlci0+TmFtZVNpemUgKw0KPiA+ID4gPiA+IElmclF1 ZXN0aW9uSGRyLT5WYXJTdG9yZUluZm8uVmFyT2Zmc2V0LCBXaWR0aCk7DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiArICAgICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiArICB9IGVsc2Ugew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICBpZiAoVmFy aWFibGVIZWFkZXItPkRhdGFTaXplIDwgQnl0ZU9mZnNldCArIFdpZHRoKSB7DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiArICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPiA+ID4g Pg0KPiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICAvLyBDb3B5IHRoZSBx dWVzdGlvbiB2YWx1ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gKyAgICBpZiAoVmFsdWVCdWZmZXIgIT0gTlVMTCkgew0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gKyAgICAgIGlmIChCaXRGaWVsZFF1ZXN0aW9uKSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiArICAgICAgICBDb3B5TWVtICgmQnVmZmVyVmFsdWUsIChVSU5UOCAqKVZhcmlhYmxlSGVhZGVy ICsgc2l6ZW9mDQo+ID4gPiA+ID4gKFZBUklBQkxFX0hFQURFUikgKyBWYXJpYWJsZUhlYWRlci0+ TmFtZVNpemUgKyBCeXRlT2Zmc2V0LCBXaWR0aCk7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAg ICAgICBCaXRGaWVsZFZhbCA9IEJpdEZpZWxkUmVhZDMyIChCdWZmZXJWYWx1ZSwgU3RhcnRCaXQs DQo+IEVuZEJpdCk7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAgICAgICBDb3B5TWVtIChWYWx1 ZUJ1ZmZlciwgJkJpdEZpZWxkVmFsLCBXaWR0aCk7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArICAg ICAgfSBlbHNlIHsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICAgICAgIENvcHlNZW0gKFZhbHVl QnVmZmVyLCAoVUlOVDggKilWYXJpYWJsZUhlYWRlciArIHNpemVvZg0KPiA+ID4gPiA+IChWQVJJ QUJMRV9IRUFERVIpICsgVmFyaWFibGVIZWFkZXItPk5hbWVTaXplICsNCj4gPiA+ID4gPiBJZnJR dWVzdGlvbkhkci0+VmFyU3RvcmVJbmZvLlZhck9mZnNldCwgV2lkdGgpOw0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gKyAgICAgIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAgfQ0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IGRpZmYgLS1naXQNCj4gPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvSGlpRGF0YWJhc2VE eGUvSGlpRGF0YWJhc2VEeGUuaW5mDQo+ID4gPiA+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L0hpaURhdGFiYXNlRHhlL0hpaURhdGFiYXNlRHhlLmluZg0KPiA+ID4gPiA+IGluZGV4IDAxMTZm YjZlY2IuLmRhYzRkNjE0YTggMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL1Vu aXZlcnNhbC9IaWlEYXRhYmFzZUR4ZS9IaWlEYXRhYmFzZUR4ZS5pbmYNCj4gPiA+ID4gPiArKysg Yi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0hpaURhdGFiYXNlRHhlL0hpaURhdGFiYXNlRHhlLmlu Zg0KPiA+ID4gPiA+IEBAIC04Niw2ICs4Niw5IEBADQo+ID4gPiA+ID4gICAgZ0VmaUhpaUltYWdl RGVjb2Rlck5hbWVKcGVnR3VpZA0KPiA+ID4gPiA+IHxnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkU3VwcG9ydEhpaUltYWdlUHJvdG9jb2wgICMjDQo+ID4gPiA+ID4gU09NRVRJTUVT X0NPTlNVTUVTICMjIEdVSUQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIGdFZmlIaWlJbWFnZURl Y29kZXJOYW1lUG5nR3VpZA0KPiA+ID4gPiA+IHxnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1 aWQuUGNkU3VwcG9ydEhpaUltYWdlUHJvdG9jb2wgICMjDQo+ID4gPiA+ID4gU09NRVRJTUVTX0NP TlNVTUVTICMjIEdVSUQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIGdFZGtpaUlmckJpdFZhcnN0 b3JlR3VpZA0KPiA+ID4gPiA+ICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBHVUlEDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiArICBnRWZpQXV0aGVudGljYXRlZFZhcmlhYmxlR3VpZA0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gKyAgZ0VmaVZhcmlhYmxlR3VpZA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKyAg Z0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gIFtEZXBleF0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIFRSVUUN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gMi4yNS4xDQo+ID4gPiA+ID4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLT0tPS09LT0tPS09DQo+ID4gPiA+ID4gR3Jv dXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2VudCB0byB0aGlzIGdyb3Vw Lg0KPiA+ID4gPiA+IFZpZXcvUmVwbHkgT25saW5lICgjODU0NDcpOg0KPiA+ID4gPiA+IGh0dHBz Oi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzg1NDQ3DQo+ID4gPiA+ID4gTXV0ZSBU aGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC84ODMxOTQ0OC80OTA1OTUzDQo+ID4gPiA+ ID4gR3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ID4gVW5z dWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1Yg0KPiA+ID4gPiA+ IFtnYW9saW1pbmdAYnlvc29mdC5jb20uY25dDQo+ID4gPiA+ID4gLT0tPS09LT0tPS09DQo+ID4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiANCj4gDQoNCg==