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.web11.61799.1679533115151570794 for ; Wed, 22 Mar 2023 17:58:35 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=B5OvxSti; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679533115; x=1711069115; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=6DBb9LGQSdbj51U86qGvT96MtIUV2QPS8Bm340xgWMw=; b=B5OvxStiJXJa4zxs4xPokGyV8ZA0TA7927V4y2ki3RSCT9o7vCOrH3w/ Fi5D5G+SGDNJWaStfRfB/E5Lli050+6G+kVo795Rfumt+lBwr7l0TlULd BNUWsY3TBSStyLZb8Nl8VLC+DXNg/HAepQ2m4DCutSvcj5AGwfwBTxFdV f6xJn236NkgbDjZj9xGS3DxPe7Lbw3+shxXCSIT8HQww88sCdbdeS5aTt vprdpshsfgDH8vLNHzlG2Op+DzcFaZh4JhYIGfhlTIkCDl69zD+pJA/3a 2Bw0tvbnydmQngVqlA5TX6I0HbsWey/nqsgxOh2DowSV9H2ry5KvbEu2/ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10657"; a="341728309" X-IronPort-AV: E=Sophos;i="5.98,283,1673942400"; d="scan'208";a="341728309" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Mar 2023 17:58:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10657"; a="659384021" X-IronPort-AV: E=Sophos;i="5.98,283,1673942400"; d="scan'208";a="659384021" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga006.jf.intel.com with ESMTP; 22 Mar 2023 17:58:33 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 22 Mar 2023 17:58:32 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.21; Wed, 22 Mar 2023 17:58:32 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.21 via Frontend Transport; Wed, 22 Mar 2023 17:58:32 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.45) 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.2507.21; Wed, 22 Mar 2023 17:58:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P9GxbJgxGaxqhGEjfoqDpwMli6luEv0ajARIAzbiV0M4Zjck1IAUTlcl2Ug+aNw7ITDo4uZHPCbazdKp8o6aycfw1pbmipsGtez/j1Ceiqbi8TkfBUoG+HqurSU0QFDZ0E4lAva80UoyJ3TGlOZSSghsYIdvdC3XDxQDnZm+DBFaESLxHEEn6RR8NOvxCKKwyxd42qN6z9DkXyAzdFaUS94kWNfii8vQMUL1NuqPgCfXBpU3IX0CYESejHu0884RlDOyJqPRzCRue3F5FVlTsHB73N3cY+2kICaUUNySLZAOR0YfDB2jp8BJ41XsdlKwN77s2BYkPgwZXRbwfRBPLQ== 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=6DBb9LGQSdbj51U86qGvT96MtIUV2QPS8Bm340xgWMw=; b=R72Tu3a2www2Bfu6lOyQlNNqWVVz5Jv3NBZ0pFyhGjJX2hVmM5pBx78/MuYwocETegZprj/m/XQEOALsbzNcq0DUTp8Kadjqqby8mkJzoUU0McCwm9LjEn0YumMynOd+j0Lr9MsVvbiLoJTJMHGcusjFGMf48vGJDk1BRIJ1UOn0fFVtkd0nBbgOB4PKY0PQuDN2yycip/T7azRm/f6+V2b5mRTtzUWzhWnyIE1adji7smhwsvDi3X/IQ+ZngwTS8rxrhXFIj7OnpkZVv2OZox60lHFKH1S2JfKQDJIqvCMmg/VsGMoTQVIo3Vv+l/UpAx3kIRZri1uxvwLB2dScHg== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CH0PR11MB5281.namprd11.prod.outlook.com (2603:10b6:610:bc::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Thu, 23 Mar 2023 00:58:23 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5%7]) with mapi id 15.20.6178.038; Thu, 23 Mar 2023 00:58:23 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "rebecca@bsdio.com" , "Gao, Liming" , "Liu, Zhiguang" , Michael Kubacki , Sean Brogan CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Thread-Topic: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Thread-Index: AQHZPJ2VNe8UI+BAikOp0dPp3MMgFq7HWhmAgDJjlgCAATNkQIAEP1cAgAAchKCAB/ihAIAADXeAgABJt2A= Date: Thu, 23 Mar 2023 00:58:23 +0000 Message-ID: References: <20230209154507.81877-1-rebecca@quicinc.com> <20230209154507.81877-2-rebecca@quicinc.com> <86eae547-ffc8-de80-09d1-4b105f12a20a@bsdio.com> In-Reply-To: <86eae547-ffc8-de80-09d1-4b105f12a20a@bsdio.com> 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: CO1PR11MB4929:EE_|CH0PR11MB5281:EE_ x-ms-office365-filtering-correlation-id: e793a475-e1e2-4eb6-ebf8-08db2b39b3e1 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: Fy+g8FwO477+xpMhWJbmJXgD8oBPYP5RkAd/7GBZr4hiwUpvk/fBz0pI3YkaU3HBZVoAquFMCFH3wnhxVUnJzvQN/dVx29V9CmTsygAmZJuPI6fdrJ4ufw5oZ3IXndKsXjplqH2OLSwg5gHZReSF7/pTSlx7KHAM379ALYIkqFZm7trHHqDUdGvsdryvHsVu4CtkqMiH+vVU5dWnRupXXYWGOuNdVeH/X3z6bF/GqgdO+HsbQwMJxO1+Oe0BWZRJYxpvECOFXeMbGSYSk3ufjDeyChivjSfr+jvHChlm28yK+D8UMrVlqW+j6LzOoQ/tQfYFlNVNv1KaXbnTWd4A/wbcmGDzlFFzWHig6o5X7z+5wCwVLRKuFjr4gAXFXQeSmBVO3eEdEeby57hP+EWDGgncEBiuC0fCwYRKiSlbeWSkH/Xoum8F5efaRm87d8c7qte/grMKT9epbkVlCyhGtFw+bf1DiypJ/RtsxiOCGbErvyyDCV5MoDhLeO063FM3NyGz4cfmXcVs3csmyCQCmbOt0RsMQMo1wsBZ1FyKPxQtT8xVP7S2BrOv2ezTzomIwoVPss94XbjV9G+VjGq1oBCUDs8V7NEumyj+6oEgdX32yv3JsgOuLaPPXGRynJzyvwbQBVqXhaZBznrJ7T/Sja55/SxikyjXXyux8sYbehxLRlCr3QMnRiMCrITG2KN5b6VB95W+BU8Yok2W8QDAZkE3XVZTBIXLX9st20IMRl4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(39860400002)(396003)(376002)(346002)(366004)(136003)(451199018)(83380400001)(38100700002)(38070700005)(2906002)(86362001)(52536014)(30864003)(8676002)(122000001)(55016003)(15650500001)(41300700001)(66446008)(66556008)(64756008)(76116006)(82960400001)(66476007)(66946007)(4326008)(5660300002)(53546011)(19627235002)(71200400001)(9686003)(966005)(316002)(33656002)(7696005)(6506007)(110136005)(26005)(186003)(107886003)(478600001)(8936002)(66899018)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bitJTC9kZVRPcWJFcmdoZ045cDVQaDV2Q1dYSDZFeVBoUHFiU0Q4YmhFeUcy?= =?utf-8?B?eGJsS3JoWVF1T0FLR0pTMFVBaUZ0UXJFZHhVa0ZEb0FZQk0vQUxBUVdvQS9o?= =?utf-8?B?OC83MFVFM2ZnWnZQTGI4TnhhYnYzZS83bkVOOEsxK2pnaU1MY01PbzdEZy8x?= =?utf-8?B?eGU2RlRlYUJMR1lnQVlpUnh3SjQ4UktVYk9yY21OWTd1UWRoR1ZvenVML0E3?= =?utf-8?B?WXg1UlljOHl5WWlrVkN5ZzRPVEowL1ZvS2liSWpnMHZwcnlBSjQvMEpmbUZY?= =?utf-8?B?RnBYNHp6RFUzdG42NEJrOFN2RGsvSW41aytsK2VxZG9rTllLYzlUWVJWdTYy?= =?utf-8?B?UDh6MnJFNm9OeTdjZHZEQm45UTFJeFo5QWtUTE4xV0VFTjFwSnJUUkd6MUZX?= =?utf-8?B?WUd5Kzg4RE9MVmU0UkdnTVhkUGNOb2o0SFBEYytuZmZBMFYzNGlyZU5RN0s0?= =?utf-8?B?MDcxSmlNYVFYKzc2Sk03cmNSVTJPcWJHWkRrMmdpOGtoWk1sL1lqa21sN29p?= =?utf-8?B?Qmx5c05YY0ZiazFZQ3lLbVVQYjBJaytQZGt1bjZDNWFHK21RQ1U2N1loUk5n?= =?utf-8?B?eHUrY01BQ0JLODlSNU9Hcld5cEkrd0diUEoxVEpoOEdSRnQ5cWUzd3FiM0FO?= =?utf-8?B?MkhhbFVhU2JPamZzN2Q0OG53eDR6bFVkUURnMXdzZ2hmdElwZndCVkM3MmVE?= =?utf-8?B?a3hOUWNuOFF0WEpDQ0tsUGhXUENLeHlDMTFnWHpFUVR2d096SURmQ21FNkVq?= =?utf-8?B?cFdRdUlWWjJvU3dpRXo1YjFzcm4zRi9sUTV4b0NQYnNSWW9hUUMyYThkR25p?= =?utf-8?B?V1BhamMwSVV1OXFKNktlOW9UM3JKd3pPSXZUSTM2T3FySWZ0dE9iRVdQbysy?= =?utf-8?B?RERBeFIrdE5sTXRzMURjSFNXdTc0QWhOTjQ2Q3B2MkgwQ2NGTUFpTGlwRDB2?= =?utf-8?B?ZThDU1VWcWh3MHlWMWdSNDdZR2RhNkZQSC9jdlJXelZyYzdEQ0l6U0MwNTlq?= =?utf-8?B?em82YTFvam1XSEVyRWNYWnEwaGZmWXVOS01GOVpFL2ZWR3N1ZVlGcUk3VWo0?= =?utf-8?B?SDV2VWFxckU3czQ2VXFvRlBFNGZ4d1FOWDJnS1NBcFhaTEphZ1MrQ29aVnU0?= =?utf-8?B?ZlVEOEgyeDRzZEJoT2N1VHRoZU9PblF3YVpBbWpISlgxWGRhdHFDQ2dYOHVq?= =?utf-8?B?WEpGZHZvUXY4ZWY0ekk1YkFuRzc2UWVmQ0N3RFdHblNtYnNJck5hUmRPeXBv?= =?utf-8?B?SVlSbWNad0Z1MUk5Ti9NNFR0TzhYdTdXalk1RU41bjZ5WVQ1K2FNelpHc01n?= =?utf-8?B?THllOFNNVWY4aTZ3MFViOElwRldBVERCam5idXl3Szd1TGZGV3pnbXhkaXdn?= =?utf-8?B?Y1ZlN2V0R1FoMUdHNFVmNW8ranNGR1NlWDRUUnBXZmRvNThLbHM3ajhRTGF2?= =?utf-8?B?eHNvbk4ybEwwMzFSeUNDY2YvVWFhMi9NVy94eUZIcEk3bDNmVGhUT3BKbFJG?= =?utf-8?B?bnNnMEdQY2NWVkxHT3c5R0psdTFKWkVvU0prV3JHL2FqekwwUW1ZWG1kdFhE?= =?utf-8?B?WlBOc093MEY2T3UxMk81UXNMRURUTXBJUms4Rk8wQVFFNDZCcW9FdTJYazdF?= =?utf-8?B?TURnc0s4ZXkxdEdTTVJvWGxlV1BNYm0zUjluVnBXNXQ4ZG1lZ0prN3dPUDFi?= =?utf-8?B?dEtyN0lod1p2R0tWOUZYZFpWdVVOVjY0Z2xUVjgvbkVhMGJkNzF1Ukp0blhm?= =?utf-8?B?L0xKQkVSVWE0MU52cE8xbnIxMFNYTzdrYmxEaGNrRTlUeXRqZzZ2dUdkWDZH?= =?utf-8?B?SEFETytsaUhrK1ZRNWFIcUlqcG5DNTJaTUZ3YkZYK1pLM285MEV0UnJVRHRB?= =?utf-8?B?VmwxM0lmamwreWZkVUxWUUluTlhkUDEraUlEbE1PS2V2SzdkeFo2VFhpb2Ro?= =?utf-8?B?SysvZmJ5K3F6Zkw4R2ZQUGpBc0VXNjU4MS9hNHJBWmVISVhWbmhPM1krdllM?= =?utf-8?B?cE9heUE4RUNZSXN1ajRxZFhIb2ZreGNBY3hoTTdjNFU4ZVg2YkZaWFluM3Ey?= =?utf-8?B?VEZaaTFvdysxMFVCb1p0Vll4Zk9RS3VPZGo4TXk2WE92VjFDU210NUhVZzFS?= =?utf-8?B?WVdUc2lESFdpNkRKSUlKaE40U2k5aTdmUDFRNVhuNlRwblRKd2Q1R3p5V3VD?= =?utf-8?B?S2c9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e793a475-e1e2-4eb6-ebf8-08db2b39b3e1 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2023 00:58:23.3958 (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: OCb28C5Ov9YHvU9AUOUuSQqyGDmYVtBdPzpNPOcp79pLj4jRNQ7AwGRhDWmghQOs2ln59QEBtqByRQmMVTXPEvNXJlkwBUjf98jlP8QmuMU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5281 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUmViZWNjYSwNCg0KVXNpbmcgbGF0ZXN0IHJlbGVhc2Ugd291bGQgYmUgbXkgcHJlZmVyZW5j ZSBhcyB3ZWxsIGFuZCB3aGF0IEVESyBJSSBzaG91bGQgcmVjb21tZW5kLg0KDQpXZSBzaG91bGQg ZG9jdW1lbnQgdGhhdCB0aGUgbWluIHN1cHBvcnRlZCB2ZXJzaW9uIG9mIFZTMjAxNSBVcGRhdGUg My4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFJlYmVj Y2EgQ3Jhbg0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDIyLCAyMDIzIDEwOjQ2IEFNDQo+IFRv OiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExp dSwgWmhpZ3VhbmcNCj4gPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBNaWNoYWVsIEt1YmFja2kg PG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+OyBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5A bWljcm9zb2Z0LmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBN ZGVQa2c6IFVwZGF0ZSBjb2RlIHRvIGJlIG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1 bmNfXw0KPiANCj4gQ2FuIHdlIG5vdCByZXF1aXJlIHRoYXQgVlMyMDE1IFVwZGF0ZSAzIGlzIGlu c3RhbGxlZD8NCj4gDQo+IERvIHBlb3BsZSBoYXZlIHJlYXNvbnMgdG8gYmUgcnVubmluZyBvbGRl ciBidWlsZHMsIG9yIGlzIGl0IGp1c3QgdGhhdA0KPiB0aGV5IGZvcmdldCB0byBpbnN0YWxsIHRo ZSB1cGRhdGVzPw0KPiANCj4gDQo+IC0tDQo+IFJlYmVjY2EgQ3Jhbg0KPiANCj4gDQo+IE9uIDMv MjIvMjMgMTA6NTggQU0sIEtpbm5leSwgTWljaGFlbCBEIHdyb3RlOg0KPiA+IEhpIFJlYmVjY2Es DQo+ID4NCj4gPiBJdCBhcHBlYXJzIHRoYXQgc29tZSBvZiB0aGUgb2xkZXIgcmVsZWFzZSBvZiBW UzIwMTUgZG8gbm90IHN1cHBvcnQNCj4gPiBfX2Z1bmNfXy4NCj4gPg0KPiA+IENhbiB5b3UgcGxl YXNlIHdvcmsgb24gYSBwYXRjaCB0aGF0IGltcGxlbWVudHMgdGhlIHdvcmthcm91bmQ/DQo+ID4N Cj4gPiBUaGFua3MsDQo+ID4NCj4gPiBNaWtlDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPg0KPiA+PiBTZW50OiBGcmlkYXksIE1hcmNoIDE3LCAyMDIzIDg6MTYgQU0NCj4g Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyByZWJlY2NhQGJzZGlvLmNvbTsgR2FvLCBMaW1p bmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxp dUBpbnRlbC5jb20+Ow0KPiA+PiBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jv c29mdC5jb20+OyBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gPj4g Q2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPj4g U3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6IFVwZGF0ZSBjb2Rl IHRvIGJlIG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0KPiA+Pg0KPiA+PiBI aSBSZWJlY2NhLA0KPiA+Pg0KPiA+PiBGb3Igb2xkZXIgY29tcGlsZXJzIHRoYXQgZG8gbm90IHN1 cHBvcnQgX19mdW5jX18sIEkgYmVsaWV2ZSBhIHdvcmthcm91bmQNCj4gPj4gY291bGQgYmUgYWRk ZWQgdG8gZGVmaW5lIF9fZnVuY19fIHRvIF9fRlVOQ1RJT05fXy4gIFdlIGRvIG5vdCBuZWVkIHRv IGRvDQo+ID4+IHRoaXMgZm9yIGFueSBvZiB0aGVzZSBwYXRjaGVzLiAgSXQgY2FuIGJlIHNvbWV0 aGluZyBjb25zdW1lcnMgY2FuIGRvIGlmDQo+ID4+IHRoZXkgcmVhbGx5IHdhbnQgdG8gdXNlIGFu IG9sZGVyIGNvbXBpbGVyLg0KPiA+Pg0KPiA+PiBZb3UgY2FuIHRyeSBpdCBvdXQgb24gVlMyMDEy IGxvY2FsbHkuICBJZiBpdCB3b3JrcywgdGhlbiB5b3UgY2FuIG1lbnRpb24NCj4gPj4gdGhhdCB3 b3JrYXJvdW5kIGluIHRoZSBjb21taXQgbWVzc2FnZS4NCj4gPj4NCj4gPj4gRG8gd2UgaGF2ZSBh bnkgaW5mb3JtYXRpb24gb24gR0NDL0NMQU5HIGNvbXBhdGliaWxpdHkgZm9yIHRoaXMgZmVhdHVy ZT8NCj4gPj4NCj4gPj4gTWlrZQ0KPiA+Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5p bz4gT24gQmVoYWxmIE9mIFJlYmVjY2EgQ3Jhbg0KPiA+Pj4gU2VudDogRnJpZGF5LCBNYXJjaCAx NywgMjAyMyA2OjMyIEFNDQo+ID4+PiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgTGltaW5nIDxnYW9s aW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsDQo+IFpoaWd1YW5nDQo+ID4+PiA8emhpZ3Vhbmcu bGl1QGludGVsLmNvbT47IE1pY2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0 LmNvbT47IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+Pj4gU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6IFVwZGF0ZSBjb2RlIHRv IGJlIG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0KPiA+Pj4NCj4gPj4+ICgr TWljaGFlbCBLdWJhY2tpLCBTZWFuIEJyb2dhbikNCj4gPj4+DQo+ID4+PiBNaWtlLCBNaWNoYWVs LCBTZWFuOg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBUaGlzIGNoYW5nZSBpcyBnb2luZyB0byBicmVh ayBidWlsZGluZyBlZGsyIHdpdGggYW55dGhpbmcgb2xkZXIgdGhhbg0KPiA+Pj4gVmlzdWFsIFN0 dWRpbyAyMDE1LCB3aGljaCBpcyB3aGVyZSBzdXBwb3J0IGZvciBfX2Z1bmNfXyB3YXMgYWRkZWQu DQo+ID4+Pg0KPiA+Pj4gSSBjaGVja2VkIGFuZCBjdXJyZW50bHkgaXQgYXBwZWFycyB0aGF0IFZT MjAxMyBidWlsZHMgZWRrMiBidXQgVlMyMDEyDQo+ID4+PiBoYXMgZXJyb3JzLiBHaXZlbiB0aGF0 IHRoZSBzdHVhcnQgdG9vbHMgZG9uJ3Qgc3VwcG9ydCBhbnl0aGluZyBvbGRlcg0KPiA+Pj4gdGhh biBWUzIwMTcgSSdtIHRoaW5raW5nIHRoaXMgaXMgb2theSwgYnV0IEkgd2FudCB0byBkb3VibGUg Y2hlY2sgYmVmb3JlDQo+ID4+PiBwdXNoaW5nIHRoaXMgY2hhbmdlLg0KPiA+Pj4NCj4gPj4+DQo+ ID4+PiAtLQ0KPiA+Pj4NCj4gPj4+IFJlYmVjY2EgQ3Jhbg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBP biAzLzE0LzIzIDI6NDAgUE0sIEtpbm5leSwgTWljaGFlbCBEIHdyb3RlOg0KPiA+Pj4+IFJldmll d2VkLWJ5OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+ IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVo YWxmIE9mIFJlYmVjY2EgQ3Jhbg0KPiA+Pj4+PiBTZW50OiBNb25kYXksIE1hcmNoIDEzLCAyMDIz IDc6MjAgUE0NCj4gPj4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8Z2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuPjsNCj4gPj4+Pj4gTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGlu dGVsLmNvbT4NCj4gPj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBN ZGVQa2c6IFVwZGF0ZSBjb2RlIHRvIGJlIG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1 bmNfXw0KPiA+Pj4+Pg0KPiA+Pj4+PiBNaWtlLA0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJ IHRoaW5rIHlvdXIgY29uY2VybnMgd2l0aCB0aGlzIHBhdGNoIHdlcmUgYWRkcmVzc2VkPw0KPiA+ Pj4+Pg0KPiA+Pj4+PiBDb3VsZCB5b3UgYWRkIGEgUmV2aWV3ZWQtYnkgcGxlYXNlPw0KPiA+Pj4+ Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGFua3MuDQo+ID4+Pj4+IFJlYmVjY2ENCj4gPj4+Pj4NCj4g Pj4+Pj4NCj4gPj4+Pj4gT24gMi85LzIzIDY6MDEgUE0sIE1pY2hhZWwgRCBLaW5uZXkgd3JvdGU6 DQo+ID4+Pj4+PiBIaSBSZWJlY2NhLA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IERpZCB0aGlzIHBhc3Mg RURLIElJIENJPw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoaXMgY2hhbmdlIGRvZXMgYnJlYWsgRUJD IGNvbXBpbGVyIGJ1aWxkcy4gIFRoZSBmb2xsb3dpbmcgaGFzIHRvIGJlIGFkZGVkIHRvDQo+ID4+ Pj4+PiBNZGVQa2cvSW5jbHVkZS9FYmMvUHJvY2Vzc29yQmluZC5oIGluIG9yZGVyIHRvIHVzZSBf X2Z1bmNfXyBldmVyeXdoZXJlLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICAgICAgICAjZGVmaW5lIF9f ZnVuY19fIF9fRlVOQ1RJT05fXw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgYWxzbyBzZWUgX19GVU5D VElPTl9fIHVzZWQgaW4gbWFueSBwYWNrYWdlcy4gIEkgYW0gd29uZGVyaW5nIGlmIHdlIHdhbnQN Cj4gPj4+Pj4+IHRvIGRvIHRoaXMgY2xlYW4gdXAgaWYgaXQgc2hvdWxkIGJlIGl0cyBvd24gcGF0 Y2ggc2VyaWVzIGFuZCB1cGRhdGUgYWxsDQo+ID4+Pj4+PiBwYWNrYWdlcyBpbiBvbmNlIHNlcmll cy4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBNaWtlDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8g PGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgUmViZWNjYSBDcmFuDQo+ID4+Pj4+ Pj4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDksIDIwMjMgNzo0NSBBTQ0KPiA+Pj4+Pj4+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47DQo+ ID4+Pj4+IExpdSwgWmhpZ3VhbmcNCj4gPj4+Pj4+PiA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4N Cj4gPj4+Pj4+PiBDYzogUmViZWNjYSBDcmFuIDxyZWJlY2NhQHF1aWNpbmMuY29tPg0KPiA+Pj4+ Pj4+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6IFVwZGF0ZSBjb2Rl IHRvIGJlIG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0KPiA+Pj4+Pj4+DQo+ ID4+Pj4+Pj4gX19GVU5DVElPTl9fIGlzIGEgcHJlLXN0YW5kYXJkIGV4dGVuc2lvbiB0aGF0IGdj YyBhbmQgVmlzdWFsIEMrKyBhbW9uZw0KPiA+Pj4+Pj4+IG90aGVycyBzdXBwb3J0LCB3aGlsZSBf X2Z1bmNfXyB3YXMgc3RhbmRhcmRpemVkIGluIEM5OS4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNp bmNlIGl0J3MgbW9yZSBzdGFuZGFyZCwgcmVwbGFjZSBfX0ZVTkNUSU9OX18gd2l0aCBfX2Z1bmNf XyB0aHJvdWdob3V0DQo+ID4+Pj4+Pj4gTWRlUGtnLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gU2ln bmVkLW9mZi1ieTogUmViZWNjYSBDcmFuIDxyZWJlY2NhQHF1aWNpbmMuY29tPg0KPiA+Pj4+Pj4+ IC0tLQ0KPiA+Pj4+Pj4+ICAgICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1BlcmZvcm1hbmNlTGli LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx MiArKysrKystLS0tLS0NCj4gPj4+Pj4+PiAgICAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9Vbml0 VGVzdExpYi5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTggKysrKysrKysrLS0tLS0tDQo+ID4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+ICAgICBN ZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0NCj4gPj4+Pj4+PiAg ICAgTWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tDQo+ ID4+Pj4+Pj4gICAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstDQo+ ID4+Pj4+Pj4gICAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNr VHJlZUxpYi9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIuYyB8ICA0ICsrLS0N Cj4gPj4+Pj4+PiAgICAgTWRlUGtnL0xpYnJhcnkvRHhlUm5nTGliL0R4ZVJuZ0xpYi5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysr KysrKy0tLS0tLS0NCj4gPj4+Pj4+PiAgICAgNyBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25z KCspLCAzNCBkZWxldGlvbnMoLSkNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9N ZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1BlcmZvcm1hbmNlTGliLmggYi9NZGVQa2cvSW5jbHVkZS9M aWJyYXJ5L1BlcmZvcm1hbmNlTGliLmgNCj4gPj4+Pj4+PiBpbmRleCAzNGVjOTU2YjljMGUuLmQw ZjJkZmIwNzBkNSAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5 L1BlcmZvcm1hbmNlTGliLmgNCj4gPj4+Pj4+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5 L1BlcmZvcm1hbmNlTGliLmgNCj4gPj4+Pj4+PiBAQCAtNTI2LDcgKzUyNiw3IEBAIExvZ1BlcmZv cm1hbmNlTWVhc3VyZW1lbnQgKA0KPiA+Pj4+Pj4+ICAgICAjZGVmaW5lIFBFUkZfRVZFTlRfU0lH TkFMX0JFR0lOKEV2ZW50R3VpZCkgXA0KPiA+Pj4+Pj4+ICAgICAgIGRvIHsgXA0KPiA+Pj4+Pj4+ ICAgICAgICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJGX0dFTkVS QUxfVFlQRSkpIHsgXA0KPiA+Pj4+Pj4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50 ICgmZ0VmaUNhbGxlcklkR3VpZCwgRXZlbnRHdWlkLCBfX0ZVTkNUSU9OX18gLCAwLCBQRVJGX0VW RU5UU0lHTkFMX1NUQVJUX0lEKTsgXA0KPiA+Pj4+Pj4+ICsgICAgICBMb2dQZXJmb3JtYW5jZU1l YXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgRXZlbnRHdWlkLCBfX2Z1bmNfXyAsIDAsIFBF UkZfRVZFTlRTSUdOQUxfU1RBUlRfSUQpOyBcDQo+ID4+Pj4+Pj4gICAgICAgICB9IFwNCj4gPj4+ Pj4+PiAgICAgICB9IHdoaWxlIChGQUxTRSkNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEBAIC01NDIs NyArNTQyLDcgQEAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoDQo+ID4+Pj4+Pj4gICAgICNk ZWZpbmUgUEVSRl9FVkVOVF9TSUdOQUxfRU5EKEV2ZW50R3VpZCkgXA0KPiA+Pj4+Pj4+ICAgICAg IGRvIHsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRF bmFibGVkIChQRVJGX0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+Pj4+Pj4+IC0gICAgICBMb2dQZXJm b3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgRXZlbnRHdWlkLCBfX0ZVTkNU SU9OX18gLCAwLCBQRVJGX0VWRU5UU0lHTkFMX0VORF9JRCk7IFwNCj4gPj4+Pj4+PiArICAgICAg TG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdFZmlDYWxsZXJJZEd1aWQsIEV2ZW50R3VpZCwg X19mdW5jX18gLCAwLCBQRVJGX0VWRU5UU0lHTkFMX0VORF9JRCk7IFwNCj4gPj4+Pj4+PiAgICAg ICAgIH0gXA0KPiA+Pj4+Pj4+ICAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+Pj4+Pj4+DQo+ID4+ Pj4+Pj4gQEAgLTU1OCw3ICs1NTgsNyBAQCBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgNCj4g Pj4+Pj4+PiAgICAgI2RlZmluZSBQRVJGX0NBTExCQUNLX0JFR0lOKFRyaWdnZXJHdWlkKSBcDQo+ ID4+Pj4+Pj4gICAgICAgZG8geyBcDQo+ID4+Pj4+Pj4gICAgICAgICBpZiAoTG9nUGVyZm9ybWFu Y2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZfR0VORVJBTF9UWVBFKSkgeyBcDQo+ID4+Pj4+Pj4g LSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBUcmln Z2VyR3VpZCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9DQUxMQkFDS19TVEFSVF9JRCk7IFwNCj4g Pj4+Pj4+PiArICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdFZmlDYWxsZXJJZEd1 aWQsIFRyaWdnZXJHdWlkLCBfX2Z1bmNfXyAsIDAsIFBFUkZfQ0FMTEJBQ0tfU1RBUlRfSUQpOyBc DQo+ID4+Pj4+Pj4gICAgICAgICB9IFwNCj4gPj4+Pj4+PiAgICAgICB9IHdoaWxlIChGQUxTRSkN Cj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEBAIC01NzQsNyArNTc0LDcgQEAgTG9nUGVyZm9ybWFuY2VN ZWFzdXJlbWVudCAoDQo+ID4+Pj4+Pj4gICAgICNkZWZpbmUgUEVSRl9DQUxMQkFDS19FTkQoVHJp Z2dlckd1aWQpIFwNCj4gPj4+Pj4+PiAgICAgICBkbyB7IFwNCj4gPj4+Pj4+PiAgICAgICAgIGlm IChMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50RW5hYmxlZCAoUEVSRl9HRU5FUkFMX1RZUEUpKSB7 IFwNCj4gPj4+Pj4+PiAtICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdFZmlDYWxs ZXJJZEd1aWQsIFRyaWdnZXJHdWlkLCBfX0ZVTkNUSU9OX18gLCAwLCBQRVJGX0NBTExCQUNLX0VO RF9JRCk7IFwNCj4gPj4+Pj4+PiArICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdF ZmlDYWxsZXJJZEd1aWQsIFRyaWdnZXJHdWlkLCBfX2Z1bmNfXyAsIDAsIFBFUkZfQ0FMTEJBQ0tf RU5EX0lEKTsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgfSBcDQo+ID4+Pj4+Pj4gICAgICAgfSB3aGls ZSAoRkFMU0UpDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtNTg5LDcgKzU4OSw3IEBAIExvZ1Bl cmZvcm1hbmNlTWVhc3VyZW1lbnQgKA0KPiA+Pj4+Pj4+ICAgICAjZGVmaW5lIFBFUkZfRlVOQ1RJ T05fQkVHSU4oKSBcDQo+ID4+Pj4+Pj4gICAgICAgZG8geyBcDQo+ID4+Pj4+Pj4gICAgICAgICBp ZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZfR0VORVJBTF9UWVBFKSkg eyBcDQo+ID4+Pj4+Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2Fs bGVySWRHdWlkLCBOVUxMLCBfX0ZVTkNUSU9OX18gLCAwLCBQRVJGX0ZVTkNUSU9OX1NUQVJUX0lE KTsgXA0KPiA+Pj4+Pj4+ICsgICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNh bGxlcklkR3VpZCwgTlVMTCwgX19mdW5jX18gLCAwLCBQRVJGX0ZVTkNUSU9OX1NUQVJUX0lEKTsg XA0KPiA+Pj4+Pj4+ICAgICAgICAgfSBcDQo+ID4+Pj4+Pj4gICAgICAgfSB3aGlsZSAoRkFMU0Up DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtNjA0LDcgKzYwNCw3IEBAIExvZ1BlcmZvcm1hbmNl TWVhc3VyZW1lbnQgKA0KPiA+Pj4+Pj4+ICAgICAjZGVmaW5lIFBFUkZfRlVOQ1RJT05fRU5EKCkg XA0KPiA+Pj4+Pj4+ICAgICAgIGRvIHsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgaWYgKExvZ1BlcmZv cm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJGX0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+Pj4+ Pj4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwg TlVMTCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9GVU5DVElPTl9FTkRfSUQpOyBcDQo+ID4+Pj4+ Pj4gKyAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBO VUxMLCBfX2Z1bmNfXyAsIDAsIFBFUkZfRlVOQ1RJT05fRU5EX0lEKTsgXA0KPiA+Pj4+Pj4+ICAg ICAgICAgfSBcDQo+ID4+Pj4+Pj4gICAgICAgfSB3aGlsZSAoRkFMU0UpDQo+ID4+Pj4+Pj4NCj4g Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9Vbml0VGVzdExpYi5o IGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9Vbml0VGVzdExpYi5oDQo+ID4+Pj4+Pj4gaW5kZXgg NzFjMjA1YjFiMTQzLi4zMjFhMzEwNjAyZDcgMTAwNjQ0DQo+ID4+Pj4+Pj4gLS0tIGEvTWRlUGtn L0luY2x1ZGUvTGlicmFyeS9Vbml0VGVzdExpYi5oDQo+ID4+Pj4+Pj4gKysrIGIvTWRlUGtnL0lu Y2x1ZGUvTGlicmFyeS9Vbml0VGVzdExpYi5oDQo+ID4+Pj4+Pj4gQEAgLTM0OCw3ICszNDgsNyBA QCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIEBwYXJhbVtpbl0gIEV4cHJl c3Npb24gIEV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkIGZvciBUUlVFLg0KPiA+Pj4+Pj4+ICAg ICAqKi8NCj4gPj4+Pj4+PiAgICAgI2RlZmluZSBVVF9BU1NFUlRfVFJVRShFeHByZXNzaW9uKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KPiA+Pj4+Pj4+IC0gIGlmKCFVbml0VGVzdEFzc2VydFRydWUgKChFeHByZXNzaW9u KSwgX19GVU5DVElPTl9fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNFeHByZXNzaW9u KSkgeyBcDQo+ID4+Pj4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0VHJ1ZSAoKEV4cHJlc3Npb24p LCBfX2Z1bmNfXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjRXhwcmVzc2lvbikpIHsg XA0KPiA+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQo+ID4+Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTM2MCw3ICsz NjAsNyBAQCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIEBwYXJhbVtpbl0g IEV4cHJlc3Npb24gIEV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkIGZvciBGQUxTRS4NCj4gPj4+ Pj4+PiAgICAgKiovDQo+ID4+Pj4+Pj4gICAgICNkZWZpbmUgVVRfQVNTRVJUX0ZBTFNFKEV4cHJl c3Npb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4+Pj4+Pj4gLSAgaWYoIVVuaXRUZXN0QXNzZXJ0RmFsc2UgKChF eHByZXNzaW9uKSwgX19GVU5DVElPTl9fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNF eHByZXNzaW9uKSkgeyBcDQo+ID4+Pj4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0RmFsc2UgKChF eHByZXNzaW9uKSwgX19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI0V4cHJl c3Npb24pKSB7IFwNCj4gPj4+Pj4+PiAgICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVT VF9GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBA QCAtMzczLDcgKzM3Myw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4+Pj4+Pj4gICAgICAg QHBhcmFtW2luXSAgVmFsdWVCICBWYWx1ZSB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkgKDY0 LWJpdCBjb21wYXJpc29uKS4NCj4gPj4+Pj4+PiAgICAgKiovDQo+ID4+Pj4+Pj4gICAgICNkZWZp bmUgVVRfQVNTRVJUX0VRVUFMKFZhbHVlQSwgVmFsdWVCKQ0KPiA+Pj4+PiBcDQo+ID4+Pj4+Pj4g LSAgaWYoIVVuaXRUZXN0QXNzZXJ0RXF1YWwgKChVSU5UNjQpKFZhbHVlQSksIChVSU5UNjQpKFZh bHVlQiksIF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLA0KPiA+Pj4+ PiAjVmFsdWVBLCAjVmFsdWVCKSkgeyBcDQo+ID4+Pj4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0 RXF1YWwgKChVSU5UNjQpKFZhbHVlQSksIChVSU5UNjQpKFZhbHVlQiksIF9fZnVuY19fLCBERUJV R19MSU5FX05VTUJFUiwgX19GSUxFX18sICNWYWx1ZUEsDQo+ID4+Pj4+ICNWYWx1ZUIpKSB7IFwN Cj4gPj4+Pj4+PiAgICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlMRUQ7DQo+ ID4+Pj4+IFwNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtMzg3 LDcgKzM4Nyw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4+Pj4+Pj4gICAgICAgQHBhcmFt W2luXSAgTGVuZ3RoICAgTnVtYmVyIG9mIGJ5dGVzIHRvIGNvbXBhcmUgaW4gQnVmZmVyQSBhbmQg QnVmZmVyQi4NCj4gPj4+Pj4+PiAgICAgKiovDQo+ID4+Pj4+Pj4gICAgICNkZWZpbmUgVVRfQVNT RVJUX01FTV9FUVVBTChCdWZmZXJBLCBCdWZmZXJCLCBMZW5ndGgpDQo+ID4+Pj4+Pj4gXA0KPiA+ Pj4+Pj4+IC0gIGlmKCFVbml0VGVzdEFzc2VydE1lbUVxdWFsICgoVk9JRCAqKShVSU5UTikoQnVm ZmVyQSksIChWT0lEICopKFVJTlROKShCdWZmZXJCKSwgKFVJTlROKUxlbmd0aCwgX19GVU5DVElP Tl9fLA0KPiA+Pj4+PiBERUJVR19MSU5FX05VTUJFUiwNCj4gPj4+Pj4+PiBfX0ZJTEVfXywgI0J1 ZmZlckEsICNCdWZmZXJCKSkgeyBcDQo+ID4+Pj4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0TWVt RXF1YWwgKChWT0lEICopKFVJTlROKShCdWZmZXJBKSwgKFZPSUQgKikoVUlOVE4pKEJ1ZmZlckIp LCAoVUlOVE4pTGVuZ3RoLCBfX2Z1bmNfXywNCj4gPj4+Pj4gREVCVUdfTElORV9OVU1CRVIsDQo+ ID4+Pj4+Pj4gX19GSUxFX18sICNCdWZmZXJBLCAjQnVmZmVyQikpIHsgXA0KPiA+Pj4+Pj4+ICAg ICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsNCj4gPj4+Pj4+PiBcDQo+ ID4+Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTQwMCw3ICs0MDAsNyBA QCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIEBwYXJhbVtpbl0gIFZhbHVl QiAgVmFsdWUgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkgKDY0LWJpdCBjb21wYXJpc29u KS4NCj4gPj4+Pj4+PiAgICAgKiovDQo+ID4+Pj4+Pj4gICAgICNkZWZpbmUgVVRfQVNTRVJUX05P VF9FUVVBTChWYWx1ZUEsIFZhbHVlQikNCj4gPj4+Pj4gXA0KPiA+Pj4+Pj4+IC0gIGlmKCFVbml0 VGVzdEFzc2VydE5vdEVxdWFsICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlOVDY0KShWYWx1ZUIpLCBf X0ZVTkNUSU9OX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywNCj4gPj4+Pj4gI1ZhbHVl QSwgI1ZhbHVlQikpIHsgXA0KPiA+Pj4+Pj4+ICsgIGlmKCFVbml0VGVzdEFzc2VydE5vdEVxdWFs ICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlOVDY0KShWYWx1ZUIpLCBfX2Z1bmNfXywgREVCVUdfTElO RV9OVU1CRVIsIF9fRklMRV9fLA0KPiA+Pj4+PiAjVmFsdWVBLCAjVmFsdWVCKSkgeyBcDQo+ID4+ Pj4+Pj4gICAgICAgICByZXR1cm4gVU5JVF9URVNUX0VSUk9SX1RFU1RfRkFJTEVEOw0KPiA+Pj4+ PiBcDQo+ID4+Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTQxMiw3ICs0 MTIsNyBAQCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIEBwYXJhbVtpbl0g IFN0YXR1cyAgRUZJX1NUQVRVUyB2YWx1ZSB0byBjaGVjay4NCj4gPj4+Pj4+PiAgICAgKiovDQo+ ID4+Pj4+Pj4gICAgICNkZWZpbmUgVVRfQVNTRVJUX05PVF9FRklfRVJST1IoU3RhdHVzKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K PiA+Pj4+Pj4+IC0gIGlmKCFVbml0VGVzdEFzc2VydE5vdEVmaUVycm9yICgoU3RhdHVzKSwgX19G VU5DVElPTl9fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNTdGF0dXMpKSB7IFwNCj4g Pj4+Pj4+PiArICBpZighVW5pdFRlc3RBc3NlcnROb3RFZmlFcnJvciAoKFN0YXR1cyksIF9fZnVu Y19fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNTdGF0dXMpKSB7IFwNCj4gPj4+Pj4+ PiAgICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlMRUQ7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4+ Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTQyNSw3ICs0MjUsNyBAQCBTYXZl RnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIEBwYXJhbVtpbl0gIEV4cGVjdGVkICBF RklfU1RBVFVTIHZhbHVlcyB0byBjb21wYXJlIGZvciBlcXVhbGl0eS4NCj4gPj4+Pj4+PiAgICAg KiovDQo+ID4+Pj4+Pj4gICAgICNkZWZpbmUgVVRfQVNTRVJUX1NUQVRVU19FUVVBTChTdGF0dXMs IEV4cGVjdGVkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KPiA+Pj4+Pj4+IC0gIGlmKCFVbml0VGVzdEFzc2VydFN0YXR1c0Vx dWFsICgoU3RhdHVzKSwgKEV4cGVjdGVkKSwgX19GVU5DVElPTl9fLCBERUJVR19MSU5FX05VTUJF UiwgX19GSUxFX18sICNTdGF0dXMpKSB7IFwNCj4gPj4+Pj4+PiArICBpZighVW5pdFRlc3RBc3Nl cnRTdGF0dXNFcXVhbCAoKFN0YXR1cyksIChFeHBlY3RlZCksIF9fZnVuY19fLCBERUJVR19MSU5F X05VTUJFUiwgX19GSUxFX18sICNTdGF0dXMpKSB7IFwNCj4gPj4+Pj4+PiAgICAgICAgIHJldHVy biBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4+Pj4g ICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTQzNyw3ICs0MzcsNyBAQCBTYXZlRnJh bWV3b3JrU3RhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIEBwYXJhbVtpbl0gIFBvaW50ZXIgIFBvaW50 ZXIgdG8gYmUgY2hlY2tlZCBhZ2FpbnN0IE5VTEwuDQo+ID4+Pj4+Pj4gICAgICoqLw0KPiA+Pj4+ Pj4+ICAgICAjZGVmaW5lIFVUX0FTU0VSVF9OT1RfTlVMTChQb2ludGVyKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4+ Pj4gLSAgaWYoIVVuaXRUZXN0QXNzZXJ0Tm90TnVsbCAoKFBvaW50ZXIpLCBfX0ZVTkNUSU9OX18s IERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI1BvaW50ZXIpKSB7IFwNCj4gPj4+Pj4+PiAr ICBpZighVW5pdFRlc3RBc3NlcnROb3ROdWxsICgoUG9pbnRlciksIF9fZnVuY19fLCBERUJVR19M SU5FX05VTUJFUiwgX19GSUxFX18sICNQb2ludGVyKSkgeyBcDQo+ID4+Pj4+Pj4gICAgICAgICBy ZXR1cm4gVU5JVF9URVNUX0VSUk9SX1RFU1RfRkFJTEVEOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPj4+Pj4+PiAgICAgICB9DQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtNDgyLDcgKzQ4Miw3IEBAIGV4dGVybiBCQVNFX0xJQlJB UllfSlVNUF9CVUZGRVIgICpnVW5pdFRlc3RFeHBlY3RBc3NlcnRGYWlsdXJlSnVtcEJ1ZmZlcjsN Cj4gPj4+Pj4+PiAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4+Pj4gICAgICAgICAgIGlmICgh VW5pdFRlc3RFeHBlY3RBc3NlcnRGYWlsdXJlICggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgVW5pdFRlc3RKdW1wU3RhdHVzLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPj4+Pj4+PiAtICAgICAgICAg ICAgIF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAgICAgICAgICAg ICAgICBcDQo+ID4+Pj4+Pj4gKyAgICAgICAgICAgICBfX2Z1bmNfXywgREVCVUdfTElORV9OVU1C RVIsIF9fRklMRV9fLCAgICAgICAgICAgICAgICBcDQo+ID4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAjRnVuY3Rpb25DYWxsLCBTdGF0dXMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+Pj4+Pj4+ICAgICAgICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9G QUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPj4+Pj4+PiAgICAgICAgICAg fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNo ZU1haW50ZW5hbmNlTGliL0xvb25nQXJjaENhY2hlLmMNCj4gPj4+Pj4gYi9NZGVQa2cvTGlicmFy eS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jDQo+ID4+Pj4+Pj4gaW5k ZXggNGM4NzczMjc4YzNjLi42MTdiMGY0MjE4YjggMTAwNjQ0DQo+ID4+Pj4+Pj4gLS0tIGEvTWRl UGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvTG9vbmdBcmNoQ2FjaGUuYw0KPiA+ Pj4+Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5hbmNlTGliL0xvb25n QXJjaENhY2hlLmMNCj4gPj4+Pj4+PiBAQCAtMTAwLDcgKzEwMCw3IEBAIFdyaXRlQmFja0ludmFs aWRhdGVEYXRhQ2FjaGUgKA0KPiA+Pj4+Pj4+ICAgICAgIFZPSUQNCj4gPj4+Pj4+PiAgICAgICAp DQo+ID4+Pj4+Pj4gICAgIHsNCj4gPj4+Pj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6 IE5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19GVU5DVElPTl9f KSk7DQo+ID4+Pj4+Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5 IGltcGxlbWVudGVkIG9uIExvb25nQXJjaC5cbiIsIF9fZnVuY19fKSk7DQo+ID4+Pj4+Pj4gICAg IH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAvKioNCj4gPj4+Pj4+PiBAQCAtMTM2LDcgKzEz Niw3IEBAIFdyaXRlQmFja0ludmFsaWRhdGVEYXRhQ2FjaGVSYW5nZSAoDQo+ID4+Pj4+Pj4gICAg ICAgSU4gICAgICBVSU5UTiAgTGVuZ3RoDQo+ID4+Pj4+Pj4gICAgICAgKQ0KPiA+Pj4+Pj4+ICAg ICB7DQo+ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5 IGltcGxlbWVudGVkIG9uIExvb25nQXJjaC5cbiIsIF9fRlVOQ1RJT05fXykpOw0KPiA+Pj4+Pj4+ ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBv biBMb29uZ0FyY2guXG4iLCBfX2Z1bmNfXykpOw0KPiA+Pj4+Pj4+ICAgICAgIHJldHVybiBBZGRy ZXNzOw0KPiA+Pj4+Pj4+ICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtMTkxLDcgKzE5 MSw3IEBAIFdyaXRlQmFja0RhdGFDYWNoZVJhbmdlICgNCj4gPj4+Pj4+PiAgICAgICBJTiAgICAg IFVJTlROICBMZW5ndGgNCj4gPj4+Pj4+PiAgICAgICApDQo+ID4+Pj4+Pj4gICAgIHsNCj4gPj4+ Pj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IE5vdCBjdXJyZW50bHkgaW1wbGVtZW50 ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4+Pj4+Pj4gKyAgREVCVUcg KChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5IGltcGxlbWVudGVkIG9uIExvb25nQXJj aC5cbiIsIF9fZnVuY19fKSk7DQo+ID4+Pj4+Pj4gICAgICAgcmV0dXJuIEFkZHJlc3M7DQo+ID4+ Pj4+Pj4gICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGli cmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9SaXNjVkNhY2hlLmMNCj4gPj4+Pj4gYi9NZGVQ a2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9SaXNjVkNhY2hlLmMNCj4gPj4+Pj4+ PiBpbmRleCA2N2EzMzg3ZmYzYzYuLmJiMjZmZTAxM2Q4YiAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0g YS9NZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9SaXNjVkNhY2hlLmMNCj4g Pj4+Pj4+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9SaXNj VkNhY2hlLmMNCj4gPj4+Pj4+PiBAQCAtNzYsNyArNzYsNyBAQCBJbnZhbGlkYXRlSW5zdHJ1Y3Rp b25DYWNoZVJhbmdlICgNCj4gPj4+Pj4+PiAgICAgICBJTiBVSU5UTiAgTGVuZ3RoDQo+ID4+Pj4+ Pj4gICAgICAgKQ0KPiA+Pj4+Pj4+ICAgICB7DQo+ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJVR19F UlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9fRlVOQ1RJT05fXykp Ow0KPiA+Pj4+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0 ZWQgZnVuY3Rpb24uXG4iLCBfX2Z1bmNfXykpOw0KPiA+Pj4+Pj4+ICAgICAgIHJldHVybiBBZGRy ZXNzOw0KPiA+Pj4+Pj4+ICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtOTYsNyArOTYs NyBAQCBXcml0ZUJhY2tJbnZhbGlkYXRlRGF0YUNhY2hlICgNCj4gPj4+Pj4+PiAgICAgICBWT0lE DQo+ID4+Pj4+Pj4gICAgICAgKQ0KPiA+Pj4+Pj4+ICAgICB7DQo+ID4+Pj4+Pj4gLSAgREVCVUcg KChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9fRlVO Q1RJT05fXykpOw0KPiA+Pj4+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYg dW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCBfX2Z1bmNfXykpOw0KPiA+Pj4+Pj4+ICAgICB9DQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgICAgLyoqDQo+ID4+Pj4+Pj4gQEAgLTEzMiw3ICsxMzIsNyBA QCBXcml0ZUJhY2tJbnZhbGlkYXRlRGF0YUNhY2hlUmFuZ2UgKA0KPiA+Pj4+Pj4+ICAgICAgIElO ICAgICAgVUlOVE4gIExlbmd0aA0KPiA+Pj4+Pj4+ICAgICAgICkNCj4gPj4+Pj4+PiAgICAgew0K PiA+Pj4+Pj4+IC0gIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQg ZnVuY3Rpb24uXG4iLCBfX0ZVTkNUSU9OX18pKTsNCj4gPj4+Pj4+PiArICBERUJVRyAoKERFQlVH X0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19mdW5jX18pKTsN Cj4gPj4+Pj4+PiAgICAgICByZXR1cm4gQWRkcmVzczsNCj4gPj4+Pj4+PiAgICAgfQ0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4gQEAgLTE1Miw3ICsxNTIsNyBAQCBXcml0ZUJhY2tEYXRhQ2FjaGUgKA0K PiA+Pj4+Pj4+ICAgICAgIFZPSUQNCj4gPj4+Pj4+PiAgICAgICApDQo+ID4+Pj4+Pj4gICAgIHsN Cj4gPj4+Pj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVk IGZ1bmN0aW9uLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4+Pj4+Pj4gKyAgREVCVUcgKChERUJV R19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9fZnVuY19fKSk7 DQo+ID4+Pj4+Pj4gICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAvKioNCj4gPj4+Pj4+ PiBAQCAtMTg3LDcgKzE4Nyw3IEBAIFdyaXRlQmFja0RhdGFDYWNoZVJhbmdlICgNCj4gPj4+Pj4+ PiAgICAgICBJTiAgICAgIFVJTlROICBMZW5ndGgNCj4gPj4+Pj4+PiAgICAgICApDQo+ID4+Pj4+ Pj4gICAgIHsNCj4gPj4+Pj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVu c3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4+Pj4+Pj4gKyAgREVC VUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9f ZnVuY19fKSk7DQo+ID4+Pj4+Pj4gICAgICAgcmV0dXJuIEFkZHJlc3M7DQo+ID4+Pj4+Pj4gICAg IH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEBAIC0yNDUsNiArMjQ1LDYgQEAgSW52YWxpZGF0ZURh dGFDYWNoZVJhbmdlICgNCj4gPj4+Pj4+PiAgICAgICBJTiAgICAgIFVJTlROICBMZW5ndGgNCj4g Pj4+Pj4+PiAgICAgICApDQo+ID4+Pj4+Pj4gICAgIHsNCj4gPj4+Pj4+PiAtICBERUJVRyAoKERF QlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19GVU5DVElP Tl9fKSk7DQo+ID4+Pj4+Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1 cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9fZnVuY19fKSk7DQo+ID4+Pj4+Pj4gICAgICAgcmV0dXJu IEFkZHJlc3M7DQo+ID4+Pj4+Pj4gICAgIH0NCj4gPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtn L0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1Nh ZmVTdHJpbmcuYw0KPiA+Pj4+Pj4+IGluZGV4IGI3NWIzMzM4MTczMi4uOTU0ZDNmOGM4OTg4IDEw MDY0NA0KPiA+Pj4+Pj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5j DQo+ID4+Pj4+Pj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMNCj4g Pj4+Pj4+PiBAQCAtMTcsNyArMTcsNyBAQA0KPiA+Pj4+Pj4+ICAgICAgICAgaWYgKCEoRXhwcmVz c2lvbikpIHsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsIFwN Cj4gPj4+Pj4+PiAgICAgICAgICAgICAiJWEoJWQpICVhOiBTQUZFX1NUUklOR19DT05TVFJBSU5U X0NIRUNLKCVhKSBmYWlsZWQuICBSZXR1cm4gJXJcbiIsIFwNCj4gPj4+Pj4+PiAtICAgICAgICBf X0ZJTEVfXywgREVCVUdfTElORV9OVU1CRVIsIF9fRlVOQ1RJT05fXywgREVCVUdfRVhQUkVTU0lP Tl9TVFJJTkcgKEV4cHJlc3Npb24pLCBTdGF0dXMpKTsgXA0KPiA+Pj4+Pj4+ICsgICAgICAgIF9f RklMRV9fLCBERUJVR19MSU5FX05VTUJFUiwgX19mdW5jX18sIERFQlVHX0VYUFJFU1NJT05fU1RS SU5HIChFeHByZXNzaW9uKSwgU3RhdHVzKSk7IFwNCj4gPj4+Pj4+PiAgICAgICAgICAgcmV0dXJu IFN0YXR1czsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgfSBcDQo+ID4+Pj4+Pj4gICAgICAgfSB3aGls ZSAoRkFMU0UpDQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRl cmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFj a1RyZWVMaWIuYw0KPiA+Pj4+Pj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZU9yZGVyZWRDb2xsZWN0 aW9uUmVkQmxhY2tUcmVlTGliL0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi5j DQo+ID4+Pj4+Pj4gaW5kZXggZjQ3MzAxZGU4OTgyLi5hMjMxMTNmOWM5MWQgMTAwNjQ0DQo+ID4+ Pj4+Pj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZU9yZGVyZWRDb2xsZWN0aW9uUmVkQmxhY2tU cmVlTGliL0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi5jDQo+ID4+Pj4+Pj4g KysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZU9yZGVyZWRDb2xsZWN0aW9uUmVkQmxhY2tUcmVlTGli L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi5jDQo+ID4+Pj4+Pj4gQEAgLTE0 MTYsNyArMTQxNiw3IEBAIFJlZEJsYWNrVHJlZVZhbGlkYXRlICgNCj4gPj4+Pj4+PiAgICAgICBD T05TVCBSRURfQkxBQ0tfVFJFRV9OT0RFICAqTGFzdDsNCj4gPj4+Pj4+PiAgICAgICBDT05TVCBS RURfQkxBQ0tfVFJFRV9OT0RFICAqTm9kZTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IC0gIERFQlVH ICgoREVCVUdfVkVSQk9TRSwgIiVhOiBUcmVlPSVwXG4iLCBfX0ZVTkNUSU9OX18sIFRyZWUpKTsN Cj4gPj4+Pj4+PiArICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICIlYTogVHJlZT0lcFxuIiwgX19m dW5jX18sIFRyZWUpKTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAgIC8vDQo+ID4+Pj4+Pj4g ICAgICAgLy8gcHJvcGVydHkgIzUNCj4gPj4+Pj4+PiBAQCAtMTQ1OSw3ICsxNDU5LDcgQEAgUmVk QmxhY2tUcmVlVmFsaWRhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIERFQlVHICgoDQo+ID4+Pj4+Pj4g ICAgICAgICBERUJVR19WRVJCT1NFLA0KPiA+Pj4+Pj4+ICAgICAgICAgIiVhOiBUcmVlPSVwIEJs YWNrSGVpZ2h0PSVMZCBDb3VudD0lTGRcbiIsDQo+ID4+Pj4+Pj4gLSAgICBfX0ZVTkNUSU9OX18s DQo+ID4+Pj4+Pj4gKyAgICBfX2Z1bmNfXywNCj4gPj4+Pj4+PiAgICAgICAgIFRyZWUsDQo+ID4+ Pj4+Pj4gICAgICAgICAoSU5UNjQpQmxhY2tIZWlnaHQsDQo+ID4+Pj4+Pj4gICAgICAgICAoSU5U NjQpRm9yd2FyZENvdW50DQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0R4 ZVJuZ0xpYi9EeGVSbmdMaWIuYyBiL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIu Yw0KPiA+Pj4+Pj4+IGluZGV4IDgyMTI5YWE0NDU5OC4uNDZhZWE1MTU5MjRmIDEwMDY0NA0KPiA+ Pj4+Pj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0KPiA+Pj4+ Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0KPiA+Pj4+Pj4+ IEBAIC0zNyw0MyArMzcsNDMgQEAgR2VuZXJhdGVSYW5kb21OdW1iZXJWaWFOaXN0ODAwQWxnb3Jp dGhtICgNCj4gPj4+Pj4+PiAgICAgICBSbmdQcm90b2NvbCA9IE5VTEw7DQo+ID4+Pj4+Pj4NCj4g Pj4+Pj4+PiAgICAgICBpZiAoQnVmZmVyID09IE5VTEwpIHsNCj4gPj4+Pj4+PiAtICAgIERFQlVH ICgoREVCVUdfRVJST1IsICIlYTogQnVmZmVyID09IE5VTEwuXG4iLCBfX0ZVTkNUSU9OX18pKTsN Cj4gPj4+Pj4+PiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogQnVmZmVyID09IE5VTEwu XG4iLCBfX2Z1bmNfXykpOw0KPiA+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BB UkFNRVRFUjsNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgICAgICBT dGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVJuZ1Byb3RvY29sR3VpZCwgTlVMTCwg KFZPSUQgKiopJlJuZ1Byb3RvY29sKTsNCj4gPj4+Pj4+PiAgICAgICBpZiAoRUZJX0VSUk9SIChT dGF0dXMpIHx8IChSbmdQcm90b2NvbCA9PSBOVUxMKSkgew0KPiA+Pj4+Pj4+IC0gICAgREVCVUcg KChERUJVR19FUlJPUiwgIiVhOiBDb3VsZCBub3QgbG9jYXRlIFJORyBwcm90b3RvY29sLCBTdGF0 dXMgPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+PiArICAgIERFQlVH ICgoREVCVUdfRVJST1IsICIlYTogQ291bGQgbm90IGxvY2F0ZSBSTkcgcHJvdG90b2NvbCwgU3Rh dHVzID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+PiAgICAgICAgIHJldHVy biBTdGF0dXM7DQo+ID4+Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICAgICAg U3RhdHVzID0gUm5nUHJvdG9jb2wtPkdldFJORyAoUm5nUHJvdG9jb2wsICZnRWZpUm5nQWxnb3Jp dGhtU3A4MDA5MEN0cjI1Nkd1aWQsIEJ1ZmZlclNpemUsIEJ1ZmZlcik7DQo+ID4+Pj4+Pj4gLSAg REVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gQ1RSLTI1NiAtIFN0YXR1 cyA9ICVyXG4iLCBfX0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+Pj4+Pj4+ICsgIERFQlVHICgo REVCVUdfSU5GTywgIiVhOiBHZXRSTkcgYWxnb3JpdGhtIENUUi0yNTYgLSBTdGF0dXMgPSAlclxu IiwgX19mdW5jX18sIFN0YXR1cykpOw0KPiA+Pj4+Pj4+ICAgICAgIGlmICghRUZJX0VSUk9SIChT dGF0dXMpKSB7DQo+ID4+Pj4+Pj4gICAgICAgICByZXR1cm4gU3RhdHVzOw0KPiA+Pj4+Pj4+ICAg ICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAgIFN0YXR1cyA9IFJuZ1Byb3RvY29sLT5H ZXRSTkcgKFJuZ1Byb3RvY29sLCAmZ0VmaVJuZ0FsZ29yaXRobVNwODAwOTBIbWFjMjU2R3VpZCwg QnVmZmVyU2l6ZSwgQnVmZmVyKTsNCj4gPj4+Pj4+PiAtICBERUJVRyAoKERFQlVHX0lORk8sICIl YTogR2V0Uk5HIGFsZ29yaXRobSBITUFDLTI1NiAtIFN0YXR1cyA9ICVyXG4iLCBfX0ZVTkNUSU9O X18sIFN0YXR1cykpOw0KPiA+Pj4+Pj4+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIiVhOiBHZXRS TkcgYWxnb3JpdGhtIEhNQUMtMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0dXMp KTsNCj4gPj4+Pj4+PiAgICAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+Pj4+Pj4+ ICAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4g Pj4+Pj4+PiAgICAgICBTdGF0dXMgPSBSbmdQcm90b2NvbC0+R2V0Uk5HIChSbmdQcm90b2NvbCwg JmdFZmlSbmdBbGdvcml0aG1TcDgwMDkwSGFzaDI1Nkd1aWQsIEJ1ZmZlclNpemUsIEJ1ZmZlcik7 DQo+ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0g SGFzaC0yNTYgLSBTdGF0dXMgPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gPj4+ Pj4+PiArICBERUJVRyAoKERFQlVHX0lORk8sICIlYTogR2V0Uk5HIGFsZ29yaXRobSBIYXNoLTI1 NiAtIFN0YXR1cyA9ICVyXG4iLCBfX2Z1bmNfXywgU3RhdHVzKSk7DQo+ID4+Pj4+Pj4gICAgICAg aWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPj4+Pj4+PiAgICAgICAgIHJldHVybiBTdGF0 dXM7DQo+ID4+Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICAgICAgLy8gSWYg YWxsIHRoZSBvdGhlciBtZXRob2RzIGhhdmUgZmFpbGVkLCB1c2UgdGhlIGRlZmF1bHQgbWV0aG9k IGZyb20gdGhlIFJuZ1Byb3RvY29sDQo+ID4+Pj4+Pj4gICAgICAgU3RhdHVzID0gUm5nUHJvdG9j b2wtPkdldFJORyAoUm5nUHJvdG9jb2wsIE5VTEwsIEJ1ZmZlclNpemUsIEJ1ZmZlcik7DQo+ID4+ Pj4+Pj4gLSAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gSGFzaC0y NTYgLSBTdGF0dXMgPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+PiAr ICBERUJVRyAoKERFQlVHX0lORk8sICIlYTogR2V0Uk5HIGFsZ29yaXRobSBIYXNoLTI1NiAtIFN0 YXR1cyA9ICVyXG4iLCBfX2Z1bmNfXywgU3RhdHVzKSk7DQo+ID4+Pj4+Pj4gICAgICAgaWYgKCFF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gPj4+Pj4+PiAgICAgICAgIHJldHVybiBTdGF0dXM7DQo+ ID4+Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICAgICAgLy8gSWYgd2UgZ2V0 IHRvIHRoaXMgcG9pbnQsIHdlIGhhdmUgZmFpbGVkDQo+ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJV R19FUlJPUiwgIiVhOiBHZXRSTkcoKSBmYWlsZWQsIHN0YXVzID0gJXJcbiIsIF9fRlVOQ1RJT05f XywgU3RhdHVzKSk7DQo+ID4+Pj4+Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBHZXRS TkcoKSBmYWlsZWQsIHN0YXVzID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+ICAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4+Pj4+Pj4gICAgIH0vLyBHZW5l cmF0ZVJhbmRvbU51bWJlclZpYU5pc3Q4MDBBbGdvcml0aG0oKQ0KPiA+Pj4+Pj4+IC0tDQo+ID4+ Pj4+Pj4gMi4zMC4yDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+ Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiANCj4gDQo+IA0KPiANCg0K