From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.62636.1679535809410575860 for ; Wed, 22 Mar 2023 18:43:29 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=VZWDZy/I; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: yanbo.huang@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679535809; x=1711071809; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=0OiSZMwtPbyTo3sOo3HGavsUXZXuxc5kf+Z8GrOS+9A=; b=VZWDZy/IiQ/Khw9qpdbwcbpkbn7zFJYqLOPDkJawBPPrdcHejxIYgnhi Fw0F44WdgQ9VZiVPSW/boWIfAHixvbbVBj+10BPVcZVpeSFn/gd/wQuAL pTrPF+S4KwGnnVewm9OsNJ4GeP7rBpAOE+dO8wgf8gIpr9CYF0MfCMMnk xF2xDNG8IDEqJMr2hhimPsN4rWbyNG5NKSrSpVmzVWdERv4XEnzdRrGbR Ay4BbzOgta+7mzjw1+DbiyySVk6nzW8o6NZY5I5qfEbCvwXDtTfhPcf/N 7mSznPTWz/9/ZXvaQ2gd/Ym0hD6jpDA6qUmsXc1rvgQhia2IO6MYww/O4 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10657"; a="319024867" X-IronPort-AV: E=Sophos;i="5.98,283,1673942400"; d="scan'208";a="319024867" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Mar 2023 18:43:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10657"; a="675517772" X-IronPort-AV: E=Sophos;i="5.98,283,1673942400"; d="scan'208";a="675517772" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga007.jf.intel.com with ESMTP; 22 Mar 2023 18:43:28 -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 18:43:28 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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 18:43:27 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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.21 via Frontend Transport; Wed, 22 Mar 2023 18:43:27 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.43) 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.21; Wed, 22 Mar 2023 18:43:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EB9e+ViXcbcyLz3PKqmJwVUu1t88KXMOtk55HUJZkc9tQp1agbNqDaLNCL1iEOLVQwxTcEHoxh70k7B1McD0ifxqhrFot+KQsZSy9U4W8DMwvuWl9Vj6inX6EBCST23zan6FTntLVyKg/qLXPhbi7rt4i13b8RwUUGak5PJnndqxv9rgJe2o7dLNvZsuTNel4lAEIXoVDI1hbrZpog/2wLw/wW6cn9MG7OJBCyNdMXPmok2reSUeOZDznHyEWp0Q93n+pVZtNiaDKTr9polRgX3jNtD9sYhT/oirVY4TBUJ45H8n4U3R+Kh6lPgcew5t0a26TPb5BETFIAVphOCoFQ== 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=0OiSZMwtPbyTo3sOo3HGavsUXZXuxc5kf+Z8GrOS+9A=; b=ZcbIs/j4cseB+por9r6xoxFFpga+5RfjdPJgCJt2TDZ3GpleobsrwrkrnWFahBkLNavm9uzkzPryRIkJ6QCqX92CqmmmdqMgGXcx33H/5JVghPF05C8VfO9oT+YAmIi+RnphPKcn4jYEnH6oyEeUnymUdDeJ5VK5g53XBshw8VsSOq/MO0SYLO7yWgcT+iM5FOX7RDV4mObPpAsVxe1gocSLn4JXSlTYnq7D2A2CaH6Ig4pm0JpSIZ145vJ8+S0oYsuphGsLJYw0+8DSgPZwuKMQ84hw3ZLkwu6tL0AudjTpufhLvMDaC6RQ5VwKAM5n9dJkDGspfazGTuIwGo/8Vw== 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 IA1PR11MB6170.namprd11.prod.outlook.com (2603:10b6:208:3ea::11) by DS0PR11MB7358.namprd11.prod.outlook.com (2603:10b6:8:135::12) 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 01:43:24 +0000 Received: from IA1PR11MB6170.namprd11.prod.outlook.com ([fe80::81ab:dac8:2c7:44cb]) by IA1PR11MB6170.namprd11.prod.outlook.com ([fe80::81ab:dac8:2c7:44cb%2]) with mapi id 15.20.6178.037; Thu, 23 Mar 2023 01:43:23 +0000 From: "Huang, Yanbo" To: "devel@edk2.groups.io" , "Kinney, Michael D" , "rebecca@bsdio.com" , "Gao, Liming" , "Liu, Zhiguang" , Michael Kubacki , Sean Brogan 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: AQHZPJ2TX1bBiZo1kUeALKGqy+Yhkq7HXRSAgDJgmwCAATN7gIAEP0AAgAAdQICAB/gogIAADTSAgAB44YCAAAfcYA== Date: Thu, 23 Mar 2023 01:43: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: 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: IA1PR11MB6170:EE_|DS0PR11MB7358:EE_ x-ms-office365-filtering-correlation-id: 9ed57ac9-6d25-432f-71a0-08db2b3ffd5c 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: FhxNrJljVl/zcvXs4pmK+zM0+cz9Ec9Bn07Ax0og307nWYpRQ/CBwgxw9xkHrNUWkvptXAmbqd1Ia93SGSqo2YKNd768JulOTEtWXhZwyf/L0u5JNzPjC9F1JonGMNhqRs5q+7Jz+0bvT6pmM0NpZFz30ktWZfM2ZcxIuOsBDsW7cdR+CI2kLFCDlZvziTZnaW/UAiRSChENPd5pCfMgmAEc9eSQ26HPRrFFkdBSGAmQ+CzNhmfLs6A29fLrrV3zHtAJCRvTW2vXeEAh/xXHxjLa+PEw0FASAp5iOxnSN/CIxQH3X4cSXZrN8qvqfZwtrJHcmzD/U5xM5pbXwrzQTdejXmuVPvUOrtPSkn54/gBAicfPd19hkRvQsySGyX/XoCe+LhO54SqXQgtbhzipbjZjuhPAWPWiAm83JuH0uPBM2brjOypbeEN9A4fkolwbTN7SOTLBb0znydzzc95nE2aDxqrY1YCjLi2RHcBoKIM3YFHPd6j4MKzzK5o3cfSPD68UkX2eSeVe0szoR2FeTHwUg6vItQA042UPaTfbCaKwm3HCafVvt7JE5LsJIdfRFQcTIz+lYAx08RcpwDLKiLBop+G+443U8X4qELs7ZaTWLXqoXFdNnAiAOS16bh53jk+WGT2jGQEYIcKiupBDieQ5kQW6ZCB+KIRkudJ7hIwwqTAwe2smR7Rsi1Pq0g3pMQpzyq2adxEM29moS8SSOaKOuK0XXUm991oKF75ZT187VgOMwldU7lCc+GocCB30 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR11MB6170.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(136003)(376002)(346002)(39860400002)(396003)(366004)(451199018)(86362001)(33656002)(55016003)(83380400001)(71200400001)(66899018)(19627235002)(7696005)(66476007)(53546011)(8676002)(64756008)(316002)(110136005)(76116006)(66946007)(478600001)(6506007)(66446008)(26005)(966005)(9686003)(921005)(66556008)(38100700002)(186003)(38070700005)(30864003)(8936002)(5660300002)(41300700001)(15650500001)(82960400001)(122000001)(2906002)(52536014)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TXlUbUU3cFNReUxsWmpqc2wzbG1NUkVSMVZyb1VmWkJYRHMvNmpJN3JyeE4y?= =?utf-8?B?YXpYdVlaMFhVWVBXSGt1UDNDQWJHYjZ6cGxQUFJPL0dwcHk3SUwxZzNzOHNN?= =?utf-8?B?a2xXc2FhWDQ1S3dNZlJMZHVONUNiVTBmL0hMb2xhMjFTRm0zcnVMMU1DQVdw?= =?utf-8?B?K1Z4UldmSTdRc3l6NXJ4Nmh1UVh0M1ZnVElZK0pMQmFQK0VxYlB4R20wdGcv?= =?utf-8?B?TnNGUHNlcmxPa1F6aW1NSFJJOExzZnpnbU5lN2hzL2lla1ZDY3dncHBZRGdQ?= =?utf-8?B?VEo0VG4xdkpSZmJtUDJDQW1VVFAzSndkL3RoU09DMHpFMmM0b2pMbEJBeVZ0?= =?utf-8?B?NnAveWN2RDBqbDdUeFhOa01ZRXozTlowbmZaTElPQ0o2Zld5dzdBRENGcUNv?= =?utf-8?B?RURiU3lLSWJXZHRnZWNoTEZiVVdqTUpmd1ZxY00zMnhZUTBROVhocWpQMHRZ?= =?utf-8?B?M2w2eFhEbjE2ZWtucWREOEcwYVJMSTQzWHRmdXU3a2NyN2tzUDNCbDZHNGk0?= =?utf-8?B?SEhnb2lLOFMzTlc0QkhMQUpDdWJxWTk5N1dvcDBOTnZqNUc2cGRqczVEWjk1?= =?utf-8?B?N2dRSXR3N2kwZ2U5am9qTFRJTUxBMXNvaUVldmc5am5SVE1tclpkMzBET0xT?= =?utf-8?B?ZStQV3h6ckt6R3lhR24xSFJIc0p0ajJGaVhnQ08zRFptRWlTU3hWWDlxVjVz?= =?utf-8?B?eElZb3dFck9rK3lqWDVVSUVpY250ano2OXVCaWJ2Tmdzb2J4ZVFOWVB6aU5G?= =?utf-8?B?QjRYd2kwWFcxaktlRVFPK3lJeW1xSzFtS1k0Y1RMdXMxemxHaEZ2ZGdLWkVx?= =?utf-8?B?ZnVFejQ3RjFtNFREQUswa2hSa0p5dEpyZ1J0WGZGWW11MTZySWRYaHowampa?= =?utf-8?B?R2k5M1hJRThvTDhrS1d6ZGdWRmpKSmJPZ25OQnJzTklzZmJzY2UvOUljTEpH?= =?utf-8?B?VUR5T3BDUHRTNklXQytyMnRWSGRCajdwMWpVZHJ6NDRVZ3ZIaDVCY09sTlU5?= =?utf-8?B?SzJ1VmNBenI1YW5lZjJ2NlVUdzdYNjhCTmRlaFl3UEdOWDlkc1ZscEpkSmZn?= =?utf-8?B?YjJFbXhSV3p4SDNpRWp5Z0huWlZCOG54V2FRYzlML3J5WlJQSndzK0U4ZVBq?= =?utf-8?B?NzVQb0V5dTZ5YkQ3bndjUGE0ZVR4R2l2a080WmVDa0JEMTVOVGxrN3MyUGlQ?= =?utf-8?B?a3lKQUZIM25MeHdhZHV0UnpjOGxMYm8wSTR4d29UYktGaTU4MFpqenJFRkdp?= =?utf-8?B?NnNWeTltQkFiZ2JrUkJKZjNOSWxQY2dVMnNMUVFHQm1JWnQzTE00S2JiU2Y5?= =?utf-8?B?ZGVKQzRNK1pRWFpiOWErSDA5RmRKMEpJTlNHQTJtWFhjeGYzVEx5a0xvQTgv?= =?utf-8?B?MHBZai80aWlIUWVJb1JnS0I0eGduQWNhYjZFMmx4YmZab0JtcjVudU02Zm43?= =?utf-8?B?YS92dC9EZ0dUTXBFWVBsejdObUJwNDlQbE9PQ0FaTGxLYXNvRXJubTB6ZUR0?= =?utf-8?B?TkpRTmtRL3ZxWnFURm1EUTgyb1BjZ3V6RHRFYjNjcmVPanFtQWNhakNHSXVy?= =?utf-8?B?VHFZRjBEZ2ludWVPRGVWdkJjRkdUT1YzZjV6MlZINjBzUGlJR1Z3QzZUcDk0?= =?utf-8?B?eUF2MmdvU005NFp0d0UvVzJ0NU1VaEtLK1ZjdncxR1BYR0g3NURCQlZOYVFC?= =?utf-8?B?MTFTTnZrZkd1aG5BeCtTVmMwekRvSm5ZbEtqN3BLZmpQZU1MQmJyZTlobXUw?= =?utf-8?B?NGp6eXE3aGJXUkxOTzN3Qk1hT0RLV1ZUTkdxYWNRdi8veHgyL3FNekdqVmFk?= =?utf-8?B?d3ErSVdPbURHWHI2UlRJWmhRcWM5ZjhNa3hYSDJLdXJwbk1RdzU1ak1EcFRX?= =?utf-8?B?RkkycnRCTEk0NDVGbW5MU1RqWmE0UkNJSGVNVm9PWWxPbkdsSmN4cEpYTkhI?= =?utf-8?B?YjljVzZ4ejUvNTlUc1RZbmh3cDRITStpM01qdmorVzFhZUg5ZVdyRG5yc3dw?= =?utf-8?B?TmMvOGorN2dZNTl4V3ZMUXQ1R1pNSXJLb1VMdmx3Q0U5NjdGTG1iaHVjbERX?= =?utf-8?B?MG1zNk5PNFh0Yjd2U0JaR1pVNS84SE4xaDFQNVFaNDZuK1JtMFpHVHFPNkdx?= =?utf-8?Q?9d3qSPmRWpT3QqgpvK8xlMVNc?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB6170.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ed57ac9-6d25-432f-71a0-08db2b3ffd5c X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2023 01:43:23.6372 (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: R6fMfattQyRaiOWXVDrrFKA9FnwgZ536plCid1HdvN8lV1QdI9XsaciDMx1G6ssNzDpWCLPc2XIGQWR6ygzY6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7358 Return-Path: yanbo.huang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUmViZWNjYSwNCg0KVGhlIGNvbW1pdCBtZXNzYWdlIOKAnFZpc3VhbCBTdHVkaW8gdmVyc2lv bnMgYmVmb3JlIFZTIDIwMTUgZG9uJ3Qgc3VwcG9ydCBfX2Z1bmNfX+KAnSBtYXkgY2F1c2UgY29u ZnVzZSBzaW5jZSBzb21lIG9mIHRoZSBvbGRlciByZWxlYXNlIG9mIFZTMjAxNSBhbHNvIGRvIG5v dCBzdXBwb3J0IF9fZnVuY19fLg0KU29tZSBvZiBteSBmZWxsb3dzIHJlcG9ydCB0aGUgZXJyb3Ig c2luY2UgdGhleSB1c2UgdGhlIFZTIDIwMTUgdmVyc2lvbiBiZWZvcmUgVXBkYXRlIDMuDQoNCkJl c3QgUmVnYXJkcywNCllhbmJvIEh1YW5nDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpG cm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFs ZiBPZiBNaWNoYWVsIEQgS2lubmV5DQpTZW50OiBUaHVyc2RheSwgTWFyY2ggMjMsIDIwMjMgODo1 OCBBTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyByZWJlY2NhQGJzZGlvLmNvbTsgR2FvLCBM aW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5n LmxpdUBpbnRlbC5jb20+OyBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29m dC5jb20+OyBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCkNjOiBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTog W2VkazItZGV2ZWxdIFtQQVRDSCAyLzJdIE1kZVBrZzogVXBkYXRlIGNvZGUgdG8gYmUgbW9yZSBD MTEgY29tcGxpYW50IGJ5IHVzaW5nIF9fZnVuY19fDQoNCkhpIFJlYmVjY2EsDQoNClVzaW5nIGxh dGVzdCByZWxlYXNlIHdvdWxkIGJlIG15IHByZWZlcmVuY2UgYXMgd2VsbCBhbmQgd2hhdCBFREsg SUkgc2hvdWxkIHJlY29tbWVuZC4NCg0KV2Ugc2hvdWxkIGRvY3VtZW50IHRoYXQgdGhlIG1pbiBz dXBwb3J0ZWQgdmVyc2lvbiBvZiBWUzIwMTUgVXBkYXRlIDMuDQoNCk1pa2UNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBSZWJlY2NhIA0KPiBDcmFuDQo+IFNlbnQ6IFdl ZG5lc2RheSwgTWFyY2ggMjIsIDIwMjMgMTA6NDYgQU0NCj4gVG86IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IA0KPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg R2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgDQo+IFpoaWd1YW5n IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgTWljaGFlbCBLdWJhY2tpIA0KPiA8bWlrdWJhY2tA bGludXgubWljcm9zb2Z0LmNvbT47IFNlYW4gQnJvZ2FuIA0KPiA8c2Vhbi5icm9nYW5AbWljcm9z b2Z0LmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6 IFVwZGF0ZSBjb2RlIHRvIGJlIG1vcmUgDQo+IEMxMSBjb21wbGlhbnQgYnkgdXNpbmcgX19mdW5j X18NCj4gDQo+IENhbiB3ZSBub3QgcmVxdWlyZSB0aGF0IFZTMjAxNSBVcGRhdGUgMyBpcyBpbnN0 YWxsZWQ/DQo+IA0KPiBEbyBwZW9wbGUgaGF2ZSByZWFzb25zIHRvIGJlIHJ1bm5pbmcgb2xkZXIg YnVpbGRzLCBvciBpcyBpdCBqdXN0IHRoYXQgDQo+IHRoZXkgZm9yZ2V0IHRvIGluc3RhbGwgdGhl IHVwZGF0ZXM/DQo+IA0KPiANCj4gLS0NCj4gUmViZWNjYSBDcmFuDQo+IA0KPiANCj4gT24gMy8y Mi8yMyAxMDo1OCBBTSwgS2lubmV5LCBNaWNoYWVsIEQgd3JvdGU6DQo+ID4gSGkgUmViZWNjYSwN Cj4gPg0KPiA+IEl0IGFwcGVhcnMgdGhhdCBzb21lIG9mIHRoZSBvbGRlciByZWxlYXNlIG9mIFZT MjAxNSBkbyBub3Qgc3VwcG9ydCANCj4gPiBfX2Z1bmNfXy4NCj4gPg0KPiA+IENhbiB5b3UgcGxl YXNlIHdvcmsgb24gYSBwYXRjaCB0aGF0IGltcGxlbWVudHMgdGhlIHdvcmthcm91bmQ/DQo+ID4N Cj4gPiBUaGFua3MsDQo+ID4NCj4gPiBNaWtlDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPg0KPiA+PiBTZW50OiBGcmlkYXksIE1hcmNoIDE3LCAyMDIzIDg6MTYgQU0NCj4g Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyByZWJlY2NhQGJzZGlvLmNvbTsgR2FvLCBMaW1p bmcgDQo+ID4+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsIFpoaWd1YW5nIDx6aGln dWFuZy5saXVAaW50ZWwuY29tPjsgDQo+ID4+IE1pY2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGlu dXgubWljcm9zb2Z0LmNvbT47IFNlYW4gQnJvZ2FuIA0KPiA+PiA8c2Vhbi5icm9nYW5AbWljcm9z b2Z0LmNvbT4NCj4gPj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQ a2c6IFVwZGF0ZSBjb2RlIHRvIGJlIA0KPiA+PiBtb3JlIEMxMSBjb21wbGlhbnQgYnkgdXNpbmcg X19mdW5jX18NCj4gPj4NCj4gPj4gSGkgUmViZWNjYSwNCj4gPj4NCj4gPj4gRm9yIG9sZGVyIGNv bXBpbGVycyB0aGF0IGRvIG5vdCBzdXBwb3J0IF9fZnVuY19fLCBJIGJlbGlldmUgYSANCj4gPj4g d29ya2Fyb3VuZCBjb3VsZCBiZSBhZGRlZCB0byBkZWZpbmUgX19mdW5jX18gdG8gX19GVU5DVElP Tl9fLiAgV2UgDQo+ID4+IGRvIG5vdCBuZWVkIHRvIGRvIHRoaXMgZm9yIGFueSBvZiB0aGVzZSBw YXRjaGVzLiAgSXQgY2FuIGJlIA0KPiA+PiBzb21ldGhpbmcgY29uc3VtZXJzIGNhbiBkbyBpZiB0 aGV5IHJlYWxseSB3YW50IHRvIHVzZSBhbiBvbGRlciBjb21waWxlci4NCj4gPj4NCj4gPj4gWW91 IGNhbiB0cnkgaXQgb3V0IG9uIFZTMjAxMiBsb2NhbGx5LiAgSWYgaXQgd29ya3MsIHRoZW4geW91 IGNhbiANCj4gPj4gbWVudGlvbiB0aGF0IHdvcmthcm91bmQgaW4gdGhlIGNvbW1pdCBtZXNzYWdl Lg0KPiA+Pg0KPiA+PiBEbyB3ZSBoYXZlIGFueSBpbmZvcm1hdGlvbiBvbiBHQ0MvQ0xBTkcgY29t cGF0aWJpbGl0eSBmb3IgdGhpcyBmZWF0dXJlPw0KPiA+Pg0KPiA+PiBNaWtlDQo+ID4+DQo+ID4+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgDQo+ID4+PiBSZWJlY2Nh IENyYW4NCj4gPj4+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMTcsIDIwMjMgNjozMiBBTQ0KPiA+Pj4g VG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IA0KPiA+ Pj4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5j b20uY24+OyBMaXUsDQo+IFpoaWd1YW5nDQo+ID4+PiA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47 IE1pY2hhZWwgS3ViYWNraSANCj4gPj4+IDxtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tPjsg U2VhbiBCcm9nYW4gDQo+ID4+PiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gPj4+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIDIvMl0gTWRlUGtnOiBVcGRhdGUgY29kZSB0 byBiZSANCj4gPj4+IG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0KPiA+Pj4N Cj4gPj4+ICgrTWljaGFlbCBLdWJhY2tpLCBTZWFuIEJyb2dhbikNCj4gPj4+DQo+ID4+PiBNaWtl LCBNaWNoYWVsLCBTZWFuOg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBUaGlzIGNoYW5nZSBpcyBnb2lu ZyB0byBicmVhayBidWlsZGluZyBlZGsyIHdpdGggYW55dGhpbmcgb2xkZXIgDQo+ID4+PiB0aGFu IFZpc3VhbCBTdHVkaW8gMjAxNSwgd2hpY2ggaXMgd2hlcmUgc3VwcG9ydCBmb3IgX19mdW5jX18g d2FzIGFkZGVkLg0KPiA+Pj4NCj4gPj4+IEkgY2hlY2tlZCBhbmQgY3VycmVudGx5IGl0IGFwcGVh cnMgdGhhdCBWUzIwMTMgYnVpbGRzIGVkazIgYnV0IA0KPiA+Pj4gVlMyMDEyIGhhcyBlcnJvcnMu IEdpdmVuIHRoYXQgdGhlIHN0dWFydCB0b29scyBkb24ndCBzdXBwb3J0IA0KPiA+Pj4gYW55dGhp bmcgb2xkZXIgdGhhbiBWUzIwMTcgSSdtIHRoaW5raW5nIHRoaXMgaXMgb2theSwgYnV0IEkgd2Fu dCANCj4gPj4+IHRvIGRvdWJsZSBjaGVjayBiZWZvcmUgcHVzaGluZyB0aGlzIGNoYW5nZS4NCj4g Pj4+DQo+ID4+Pg0KPiA+Pj4gLS0NCj4gPj4+DQo+ID4+PiBSZWJlY2NhIENyYW4NCj4gPj4+DQo+ ID4+Pg0KPiA+Pj4gT24gMy8xNC8yMyAyOjQwIFBNLCBLaW5uZXksIE1pY2hhZWwgRCB3cm90ZToN Cj4gPj4+PiBSZXZpZXdlZC1ieTogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+Pj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZiBPZiANCj4gPj4+Pj4gUmViZWNjYSBDcmFuDQo+ID4+Pj4+IFNlbnQ6 IE1vbmRheSwgTWFyY2ggMTMsIDIwMjMgNzoyMCBQTQ0KPiA+Pj4+PiBUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIA0KPiA+Pj4+PiA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBHYW8sIExpbWluZyANCj4gPj4+Pj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj47IExpdSwgWmhpZ3VhbmcgDQo+ID4+Pj4+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiA+ Pj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCAyLzJdIE1kZVBrZzogVXBkYXRl IGNvZGUgdG8gYmUgDQo+ID4+Pj4+IG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNf Xw0KPiA+Pj4+Pg0KPiA+Pj4+PiBNaWtlLA0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIHRo aW5rIHlvdXIgY29uY2VybnMgd2l0aCB0aGlzIHBhdGNoIHdlcmUgYWRkcmVzc2VkPw0KPiA+Pj4+ Pg0KPiA+Pj4+PiBDb3VsZCB5b3UgYWRkIGEgUmV2aWV3ZWQtYnkgcGxlYXNlPw0KPiA+Pj4+Pg0K PiA+Pj4+Pg0KPiA+Pj4+PiBUaGFua3MuDQo+ID4+Pj4+IFJlYmVjY2ENCj4gPj4+Pj4NCj4gPj4+ Pj4NCj4gPj4+Pj4gT24gMi85LzIzIDY6MDEgUE0sIE1pY2hhZWwgRCBLaW5uZXkgd3JvdGU6DQo+ ID4+Pj4+PiBIaSBSZWJlY2NhLA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IERpZCB0aGlzIHBhc3MgRURL IElJIENJPw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoaXMgY2hhbmdlIGRvZXMgYnJlYWsgRUJDIGNv bXBpbGVyIGJ1aWxkcy4gIFRoZSBmb2xsb3dpbmcgaGFzIA0KPiA+Pj4+Pj4gdG8gYmUgYWRkZWQg dG8gTWRlUGtnL0luY2x1ZGUvRWJjL1Byb2Nlc3NvckJpbmQuaCBpbiBvcmRlciB0byB1c2UgX19m dW5jX18gZXZlcnl3aGVyZS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiAgICAgICAgI2RlZmluZSBfX2Z1 bmNfXyBfX0ZVTkNUSU9OX18NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJIGFsc28gc2VlIF9fRlVOQ1RJ T05fXyB1c2VkIGluIG1hbnkgcGFja2FnZXMuICBJIGFtIHdvbmRlcmluZyANCj4gPj4+Pj4+IGlm IHdlIHdhbnQgdG8gZG8gdGhpcyBjbGVhbiB1cCBpZiBpdCBzaG91bGQgYmUgaXRzIG93biBwYXRj aCANCj4gPj4+Pj4+IHNlcmllcyBhbmQgdXBkYXRlIGFsbCBwYWNrYWdlcyBpbiBvbmNlIHNlcmll cy4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBNaWtlDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8g PGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgDQo+ID4+Pj4+Pj4gUmViZWNjYSBD cmFuDQo+ID4+Pj4+Pj4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDksIDIwMjMgNzo0NSBBTQ0K PiA+Pj4+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgDQo+ ID4+Pj4+Pj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgDQo+ID4+ Pj4+Pj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47DQo+ID4+Pj4+IExpdSwgWmhpZ3VhbmcN Cj4gPj4+Pj4+PiA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gPj4+Pj4+PiBDYzogUmViZWNj YSBDcmFuIDxyZWJlY2NhQHF1aWNpbmMuY29tPg0KPiA+Pj4+Pj4+IFN1YmplY3Q6IFtlZGsyLWRl dmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6IFVwZGF0ZSBjb2RlIHRvIGJlIA0KPiA+Pj4+Pj4+IG1v cmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4g X19GVU5DVElPTl9fIGlzIGEgcHJlLXN0YW5kYXJkIGV4dGVuc2lvbiB0aGF0IGdjYyBhbmQgVmlz dWFsIA0KPiA+Pj4+Pj4+IEMrKyBhbW9uZyBvdGhlcnMgc3VwcG9ydCwgd2hpbGUgX19mdW5jX18g d2FzIHN0YW5kYXJkaXplZCBpbiBDOTkuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBTaW5jZSBpdCdz IG1vcmUgc3RhbmRhcmQsIHJlcGxhY2UgX19GVU5DVElPTl9fIHdpdGggX19mdW5jX18gDQo+ID4+ Pj4+Pj4gdGhyb3VnaG91dCBNZGVQa2cuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAcXVpY2luYy5jb20+DQo+ID4+Pj4+Pj4gLS0tDQo+ ID4+Pj4+Pj4gICAgIE1kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKysr Ky0tLS0tLQ0KPiA+Pj4+Pj4+ICAgICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VuaXRUZXN0TGli LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAxOCArKysrKysrKystLS0tLS0NCj4gPj4+Pj4gLS0tDQo+ID4+Pj4+Pj4gICAgIE1kZVBrZy9M aWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5hbmNlTGliL0xvb25nQXJjaENhY2hlLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQ0KPiA+Pj4+Pj4+ICAgICBNZGVQ a2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9SaXNjVkNhY2hlLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKystLS0tLS0NCj4gPj4+Pj4+ PiAgICAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gPj4+Pj4+ PiAgICAgTWRlUGtnL0xpYnJhcnkvQmFzZU9yZGVyZWRDb2xsZWN0aW9uUmVkQmxhY2tUcmVlTGli L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi5jIHwgIDQgKystLQ0KPiA+Pj4+ Pj4+ICAgICBNZGVQa2cvTGlicmFyeS9EeGVSbmdMaWIvRHhlUm5nTGliLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysrLS0t LS0tLQ0KPiA+Pj4+Pj4+ICAgICA3IGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDM0 IGRlbGV0aW9ucygtKQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9J bmNsdWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaCANCj4gPj4+Pj4+PiBiL01kZVBrZy9JbmNs dWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaA0KPiA+Pj4+Pj4+IGluZGV4IDM0ZWM5NTZiOWMw ZS4uZDBmMmRmYjA3MGQ1IDEwMDY0NA0KPiA+Pj4+Pj4+IC0tLSBhL01kZVBrZy9JbmNsdWRlL0xp YnJhcnkvUGVyZm9ybWFuY2VMaWIuaA0KPiA+Pj4+Pj4+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xp YnJhcnkvUGVyZm9ybWFuY2VMaWIuaA0KPiA+Pj4+Pj4+IEBAIC01MjYsNyArNTI2LDcgQEAgTG9n UGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoDQo+ID4+Pj4+Pj4gICAgICNkZWZpbmUgUEVSRl9FVkVO VF9TSUdOQUxfQkVHSU4oRXZlbnRHdWlkKSBcDQo+ID4+Pj4+Pj4gICAgICAgZG8geyBcDQo+ID4+ Pj4+Pj4gICAgICAgICBpZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZf R0VORVJBTF9UWVBFKSkgeyBcDQo+ID4+Pj4+Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3Vy ZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBFdmVudEd1aWQsIF9fRlVOQ1RJT05fXyAsIDAsIFBF UkZfRVZFTlRTSUdOQUxfU1RBUlRfSUQpOyBcDQo+ID4+Pj4+Pj4gKyAgICAgIExvZ1BlcmZvcm1h bmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCANCj4gPj4+Pj4+PiArIEV2ZW50R3Vp ZCwgX19mdW5jX18gLCAwLCBQRVJGX0VWRU5UU0lHTkFMX1NUQVJUX0lEKTsgXA0KPiA+Pj4+Pj4+ ICAgICAgICAgfSBcDQo+ID4+Pj4+Pj4gICAgICAgfSB3aGlsZSAoRkFMU0UpDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiBAQCAtNTQyLDcgKzU0Miw3IEBAIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQg KA0KPiA+Pj4+Pj4+ICAgICAjZGVmaW5lIFBFUkZfRVZFTlRfU0lHTkFMX0VORChFdmVudEd1aWQp IFwNCj4gPj4+Pj4+PiAgICAgICBkbyB7IFwNCj4gPj4+Pj4+PiAgICAgICAgIGlmIChMb2dQZXJm b3JtYW5jZU1lYXN1cmVtZW50RW5hYmxlZCAoUEVSRl9HRU5FUkFMX1RZUEUpKSB7IFwNCj4gPj4+ Pj4+PiAtICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdFZmlDYWxsZXJJZEd1aWQs IEV2ZW50R3VpZCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9FVkVOVFNJR05BTF9FTkRfSUQpOyBc DQo+ID4+Pj4+Pj4gKyAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVy SWRHdWlkLCANCj4gPj4+Pj4+PiArIEV2ZW50R3VpZCwgX19mdW5jX18gLCAwLCBQRVJGX0VWRU5U U0lHTkFMX0VORF9JRCk7IFwNCj4gPj4+Pj4+PiAgICAgICAgIH0gXA0KPiA+Pj4+Pj4+ICAgICAg IH0gd2hpbGUgKEZBTFNFKQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTU1OCw3ICs1NTgsNyBA QCBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgNCj4gPj4+Pj4+PiAgICAgI2RlZmluZSBQRVJG X0NBTExCQUNLX0JFR0lOKFRyaWdnZXJHdWlkKSBcDQo+ID4+Pj4+Pj4gICAgICAgZG8geyBcDQo+ ID4+Pj4+Pj4gICAgICAgICBpZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBF UkZfR0VORVJBTF9UWVBFKSkgeyBcDQo+ID4+Pj4+Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVh c3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBUcmlnZ2VyR3VpZCwgX19GVU5DVElPTl9fICwg MCwgUEVSRl9DQUxMQkFDS19TVEFSVF9JRCk7IFwNCj4gPj4+Pj4+PiArICAgICAgTG9nUGVyZm9y bWFuY2VNZWFzdXJlbWVudCAoJmdFZmlDYWxsZXJJZEd1aWQsIA0KPiA+Pj4+Pj4+ICsgVHJpZ2dl ckd1aWQsIF9fZnVuY19fICwgMCwgUEVSRl9DQUxMQkFDS19TVEFSVF9JRCk7IFwNCj4gPj4+Pj4+ PiAgICAgICAgIH0gXA0KPiA+Pj4+Pj4+ICAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+Pj4+Pj4+ DQo+ID4+Pj4+Pj4gQEAgLTU3NCw3ICs1NzQsNyBAQCBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50 ICgNCj4gPj4+Pj4+PiAgICAgI2RlZmluZSBQRVJGX0NBTExCQUNLX0VORChUcmlnZ2VyR3VpZCkg XA0KPiA+Pj4+Pj4+ICAgICAgIGRvIHsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgaWYgKExvZ1BlcmZv cm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJGX0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+Pj4+ Pj4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwg VHJpZ2dlckd1aWQsIF9fRlVOQ1RJT05fXyAsIDAsIFBFUkZfQ0FMTEJBQ0tfRU5EX0lEKTsgXA0K PiA+Pj4+Pj4+ICsgICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklk R3VpZCwgDQo+ID4+Pj4+Pj4gKyBUcmlnZ2VyR3VpZCwgX19mdW5jX18gLCAwLCBQRVJGX0NBTExC QUNLX0VORF9JRCk7IFwNCj4gPj4+Pj4+PiAgICAgICAgIH0gXA0KPiA+Pj4+Pj4+ICAgICAgIH0g d2hpbGUgKEZBTFNFKQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTU4OSw3ICs1ODksNyBAQCBM b2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgNCj4gPj4+Pj4+PiAgICAgI2RlZmluZSBQRVJGX0ZV TkNUSU9OX0JFR0lOKCkgXA0KPiA+Pj4+Pj4+ICAgICAgIGRvIHsgXA0KPiA+Pj4+Pj4+ICAgICAg ICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJGX0dFTkVSQUxfVFlQ RSkpIHsgXA0KPiA+Pj4+Pj4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0Vm aUNhbGxlcklkR3VpZCwgTlVMTCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9GVU5DVElPTl9TVEFS VF9JRCk7IFwNCj4gPj4+Pj4+PiArICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdF ZmlDYWxsZXJJZEd1aWQsIE5VTEwsIA0KPiA+Pj4+Pj4+ICsgX19mdW5jX18gLCAwLCBQRVJGX0ZV TkNUSU9OX1NUQVJUX0lEKTsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgfSBcDQo+ID4+Pj4+Pj4gICAg ICAgfSB3aGlsZSAoRkFMU0UpDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtNjA0LDcgKzYwNCw3 IEBAIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKA0KPiA+Pj4+Pj4+ICAgICAjZGVmaW5lIFBF UkZfRlVOQ1RJT05fRU5EKCkgXA0KPiA+Pj4+Pj4+ICAgICAgIGRvIHsgXA0KPiA+Pj4+Pj4+ICAg ICAgICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJGX0dFTkVSQUxf VFlQRSkpIHsgXA0KPiA+Pj4+Pj4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgm Z0VmaUNhbGxlcklkR3VpZCwgTlVMTCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9GVU5DVElPTl9F TkRfSUQpOyBcDQo+ID4+Pj4+Pj4gKyAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZn RWZpQ2FsbGVySWRHdWlkLCBOVUxMLCANCj4gPj4+Pj4+PiArIF9fZnVuY19fICwgMCwgUEVSRl9G VU5DVElPTl9FTkRfSUQpOyBcDQo+ID4+Pj4+Pj4gICAgICAgICB9IFwNCj4gPj4+Pj4+PiAgICAg ICB9IHdoaWxlIChGQUxTRSkNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9NZGVQ a2cvSW5jbHVkZS9MaWJyYXJ5L1VuaXRUZXN0TGliLmggDQo+ID4+Pj4+Pj4gYi9NZGVQa2cvSW5j bHVkZS9MaWJyYXJ5L1VuaXRUZXN0TGliLmgNCj4gPj4+Pj4+PiBpbmRleCA3MWMyMDViMWIxNDMu LjMyMWEzMTA2MDJkNyAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS9NZGVQa2cvSW5jbHVkZS9MaWJy YXJ5L1VuaXRUZXN0TGliLmgNCj4gPj4+Pj4+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5 L1VuaXRUZXN0TGliLmgNCj4gPj4+Pj4+PiBAQCAtMzQ4LDcgKzM0OCw3IEBAIFNhdmVGcmFtZXdv cmtTdGF0ZSAoDQo+ID4+Pj4+Pj4gICAgICAgQHBhcmFtW2luXSAgRXhwcmVzc2lvbiAgRXhwcmVz c2lvbiB0byBiZSBldmFsdWF0ZWQgZm9yIFRSVUUuDQo+ID4+Pj4+Pj4gICAgICoqLw0KPiA+Pj4+ Pj4+ICAgICAjZGVmaW5lIFVUX0FTU0VSVF9UUlVFKEV4cHJlc3Npb24pICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+ Pj4+Pj4gLSAgaWYoIVVuaXRUZXN0QXNzZXJ0VHJ1ZSAoKEV4cHJlc3Npb24pLCBfX0ZVTkNUSU9O X18sIA0KPiA+Pj4+Pj4+IERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI0V4cHJlc3Npb24p KSB7IFwNCj4gPj4+Pj4+PiArICBpZighVW5pdFRlc3RBc3NlcnRUcnVlICgoRXhwcmVzc2lvbiks IF9fZnVuY19fLCANCj4gPj4+Pj4+PiArIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI0V4 cHJlc3Npb24pKSB7IFwNCj4gPj4+Pj4+PiAgICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1Jf VEVTVF9GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KPiA+Pj4+Pj4+ICAgICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ IEBAIC0zNjAsNyArMzYwLDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPj4+Pj4+PiAgICAg ICBAcGFyYW1baW5dICBFeHByZXNzaW9uICBFeHByZXNzaW9uIHRvIGJlIGV2YWx1YXRlZCBmb3Ig RkFMU0UuDQo+ID4+Pj4+Pj4gICAgICoqLw0KPiA+Pj4+Pj4+ICAgICAjZGVmaW5lIFVUX0FTU0VS VF9GQUxTRShFeHByZXNzaW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+Pj4+Pj4+IC0gIGlmKCFVbml0VGVzdEFz c2VydEZhbHNlICgoRXhwcmVzc2lvbiksIF9fRlVOQ1RJT05fXywgDQo+ID4+Pj4+Pj4gREVCVUdf TElORV9OVU1CRVIsIF9fRklMRV9fLCAjRXhwcmVzc2lvbikpIHsgXA0KPiA+Pj4+Pj4+ICsgIGlm KCFVbml0VGVzdEFzc2VydEZhbHNlICgoRXhwcmVzc2lvbiksIF9fZnVuY19fLCANCj4gPj4+Pj4+ PiArIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI0V4cHJlc3Npb24pKSB7IFwNCj4gPj4+ Pj4+PiAgICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlMRUQ7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g Pj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtMzczLDcgKzM3Myw3IEBA IFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4+Pj4+Pj4gICAgICAgQHBhcmFtW2luXSAgVmFsdWVC ICBWYWx1ZSB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkgKDY0LWJpdCBjb21wYXJpc29uKS4N Cj4gPj4+Pj4+PiAgICAgKiovDQo+ID4+Pj4+Pj4gICAgICNkZWZpbmUgVVRfQVNTRVJUX0VRVUFM KFZhbHVlQSwgVmFsdWVCKQ0KPiA+Pj4+PiBcDQo+ID4+Pj4+Pj4gLSAgaWYoIVVuaXRUZXN0QXNz ZXJ0RXF1YWwgKChVSU5UNjQpKFZhbHVlQSksIA0KPiA+Pj4+Pj4+IChVSU5UNjQpKFZhbHVlQiks IF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLA0KPiA+Pj4+PiAjVmFs dWVBLCAjVmFsdWVCKSkgeyBcDQo+ID4+Pj4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0RXF1YWwg KChVSU5UNjQpKFZhbHVlQSksIA0KPiA+Pj4+Pj4+ICsgKFVJTlQ2NCkoVmFsdWVCKSwgX19mdW5j X18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgDQo+ID4+Pj4+Pj4gKyAjVmFsdWVBLA0K PiA+Pj4+PiAjVmFsdWVCKSkgeyBcDQo+ID4+Pj4+Pj4gICAgICAgICByZXR1cm4gVU5JVF9URVNU X0VSUk9SX1RFU1RfRkFJTEVEOw0KPiA+Pj4+PiBcDQo+ID4+Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4gQEAgLTM4Nyw3ICszODcsNyBAQCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0K PiA+Pj4+Pj4+ICAgICAgIEBwYXJhbVtpbl0gIExlbmd0aCAgIE51bWJlciBvZiBieXRlcyB0byBj b21wYXJlIGluIEJ1ZmZlckEgYW5kIEJ1ZmZlckIuDQo+ID4+Pj4+Pj4gICAgICoqLw0KPiA+Pj4+ Pj4+ICAgICAjZGVmaW5lIFVUX0FTU0VSVF9NRU1fRVFVQUwoQnVmZmVyQSwgQnVmZmVyQiwgTGVu Z3RoKSBcDQo+ID4+Pj4+Pj4gLSAgaWYoIVVuaXRUZXN0QXNzZXJ0TWVtRXF1YWwgKChWT0lEICop KFVJTlROKShCdWZmZXJBKSwgKFZPSUQgDQo+ID4+Pj4+Pj4gKikoVUlOVE4pKEJ1ZmZlckIpLCAo VUlOVE4pTGVuZ3RoLCBfX0ZVTkNUSU9OX18sDQo+ID4+Pj4+IERFQlVHX0xJTkVfTlVNQkVSLA0K PiA+Pj4+Pj4+IF9fRklMRV9fLCAjQnVmZmVyQSwgI0J1ZmZlckIpKSB7IFwNCj4gPj4+Pj4+PiAr ICBpZighVW5pdFRlc3RBc3NlcnRNZW1FcXVhbCAoKFZPSUQgKikoVUlOVE4pKEJ1ZmZlckEpLCAo Vk9JRCANCj4gPj4+Pj4+PiArICopKFVJTlROKShCdWZmZXJCKSwgKFVJTlROKUxlbmd0aCwgX19m dW5jX18sDQo+ID4+Pj4+IERFQlVHX0xJTkVfTlVNQkVSLA0KPiA+Pj4+Pj4+IF9fRklMRV9fLCAj QnVmZmVyQSwgI0J1ZmZlckIpKSB7IFwNCj4gPj4+Pj4+PiAgICAgICAgIHJldHVybiBVTklUX1RF U1RfRVJST1JfVEVTVF9GQUlMRUQ7IFwNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4g Pj4+Pj4+PiBAQCAtNDAwLDcgKzQwMCw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4+Pj4+ Pj4gICAgICAgQHBhcmFtW2luXSAgVmFsdWVCICBWYWx1ZSB0byBiZSBjb21wYXJlZCBmb3IgaW5l cXVhbGl0eSAoNjQtYml0IGNvbXBhcmlzb24pLg0KPiA+Pj4+Pj4+ICAgICAqKi8NCj4gPj4+Pj4+ PiAgICAgI2RlZmluZSBVVF9BU1NFUlRfTk9UX0VRVUFMKFZhbHVlQSwgVmFsdWVCKQ0KPiA+Pj4+ PiBcDQo+ID4+Pj4+Pj4gLSAgaWYoIVVuaXRUZXN0QXNzZXJ0Tm90RXF1YWwgKChVSU5UNjQpKFZh bHVlQSksIA0KPiA+Pj4+Pj4+IChVSU5UNjQpKFZhbHVlQiksIF9fRlVOQ1RJT05fXywgREVCVUdf TElORV9OVU1CRVIsIF9fRklMRV9fLA0KPiA+Pj4+PiAjVmFsdWVBLCAjVmFsdWVCKSkgeyBcDQo+ ID4+Pj4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0Tm90RXF1YWwgKChVSU5UNjQpKFZhbHVlQSks IA0KPiA+Pj4+Pj4+ICsgKFVJTlQ2NCkoVmFsdWVCKSwgX19mdW5jX18sIERFQlVHX0xJTkVfTlVN QkVSLCBfX0ZJTEVfXywNCj4gPj4+Pj4gI1ZhbHVlQSwgI1ZhbHVlQikpIHsgXA0KPiA+Pj4+Pj4+ ICAgICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsNCj4gPj4+Pj4gXA0K PiA+Pj4+Pj4+ICAgICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEBAIC00MTIsNyArNDEyLDcg QEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPj4+Pj4+PiAgICAgICBAcGFyYW1baW5dICBTdGF0 dXMgIEVGSV9TVEFUVVMgdmFsdWUgdG8gY2hlY2suDQo+ID4+Pj4+Pj4gICAgICoqLw0KPiA+Pj4+ Pj4+ICAgICAjZGVmaW5lIFVUX0FTU0VSVF9OT1RfRUZJX0VSUk9SKFN0YXR1cykgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPj4+ Pj4+PiAtICBpZighVW5pdFRlc3RBc3NlcnROb3RFZmlFcnJvciAoKFN0YXR1cyksIF9fRlVOQ1RJ T05fXywgDQo+ID4+Pj4+Pj4gREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjU3RhdHVzKSkg eyBcDQo+ID4+Pj4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0Tm90RWZpRXJyb3IgKChTdGF0dXMp LCBfX2Z1bmNfXywgDQo+ID4+Pj4+Pj4gKyBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNT dGF0dXMpKSB7IFwNCj4gPj4+Pj4+PiAgICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVT VF9GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQo+ID4+Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAg LTQyNSw3ICs0MjUsNyBAQCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIEBw YXJhbVtpbl0gIEV4cGVjdGVkICBFRklfU1RBVFVTIHZhbHVlcyB0byBjb21wYXJlIGZvciBlcXVh bGl0eS4NCj4gPj4+Pj4+PiAgICAgKiovDQo+ID4+Pj4+Pj4gICAgICNkZWZpbmUgVVRfQVNTRVJU X1NUQVRVU19FUVVBTChTdGF0dXMsIEV4cGVjdGVkKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+Pj4+Pj4+IC0gIGlmKCFV bml0VGVzdEFzc2VydFN0YXR1c0VxdWFsICgoU3RhdHVzKSwgKEV4cGVjdGVkKSwgDQo+ID4+Pj4+ Pj4gX19GVU5DVElPTl9fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNTdGF0dXMpKSB7 IFwNCj4gPj4+Pj4+PiArICBpZighVW5pdFRlc3RBc3NlcnRTdGF0dXNFcXVhbCAoKFN0YXR1cyks IChFeHBlY3RlZCksIA0KPiA+Pj4+Pj4+ICsgX19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBf X0ZJTEVfXywgI1N0YXR1cykpIHsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIFVOSVRfVEVT VF9FUlJPUl9URVNUX0ZBSUxFRDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPj4+Pj4+PiAgICAgICB9DQo+ ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtNDM3LDcgKzQzNyw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0 ZSAoDQo+ID4+Pj4+Pj4gICAgICAgQHBhcmFtW2luXSAgUG9pbnRlciAgUG9pbnRlciB0byBiZSBj aGVja2VkIGFnYWluc3QgTlVMTC4NCj4gPj4+Pj4+PiAgICAgKiovDQo+ID4+Pj4+Pj4gICAgICNk ZWZpbmUgVVRfQVNTRVJUX05PVF9OVUxMKFBvaW50ZXIpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPj4+Pj4+PiAtICBpZigh VW5pdFRlc3RBc3NlcnROb3ROdWxsICgoUG9pbnRlciksIF9fRlVOQ1RJT05fXywgDQo+ID4+Pj4+ Pj4gREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjUG9pbnRlcikpIHsgXA0KPiA+Pj4+Pj4+ ICsgIGlmKCFVbml0VGVzdEFzc2VydE5vdE51bGwgKChQb2ludGVyKSwgX19mdW5jX18sIA0KPiA+ Pj4+Pj4+ICsgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjUG9pbnRlcikpIHsgXA0KPiA+ Pj4+Pj4+ICAgICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+ Pj4+Pj4gICAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTQ4Miw3ICs0ODIsNyBAQCBl eHRlcm4gQkFTRV9MSUJSQVJZX0pVTVBfQlVGRkVSICAqZ1VuaXRUZXN0RXhwZWN0QXNzZXJ0RmFp bHVyZUp1bXBCdWZmZXI7DQo+ID4+Pj4+Pj4gICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+Pj4+Pj4+ ICAgICAgICAgICBpZiAoIVVuaXRUZXN0RXhwZWN0QXNzZXJ0RmFpbHVyZSAoICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCj4gPj4+Pj4+PiAgICAgICAgICAgICAgICAgIFVuaXRUZXN0 SnVtcFN0YXR1cywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+ Pj4+Pj4gLSAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJ TEVfXywgICAgICAgICAgICAgICAgXA0KPiA+Pj4+Pj4+ICsgICAgICAgICAgICAgX19mdW5jX18s IERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgICAgICAgICAgICAgICAgXA0KPiA+Pj4+Pj4+ ICAgICAgICAgICAgICAgICAgI0Z1bmN0aW9uQ2FsbCwgU3RhdHVzKSkgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCj4gPj4+Pj4+PiAgICAgICAgICAgICByZXR1cm4gVU5JVF9U RVNUX0VSUk9SX1RFU1RfRkFJTEVEOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+ Pj4+Pj4gICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgDQo+ID4+Pj4+ Pj4gYS9NZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNo ZS5jDQo+ID4+Pj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvTG9v bmdBcmNoQ2FjaGUuYw0KPiA+Pj4+Pj4+IGluZGV4IDRjODc3MzI3OGMzYy4uNjE3YjBmNDIxOGI4 IDEwMDY0NA0KPiA+Pj4+Pj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5h bmNlTGliL0xvb25nQXJjaENhY2hlLmMNCj4gPj4+Pj4+PiArKysgYi9NZGVQa2cvTGlicmFyeS9C YXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jDQo+ID4+Pj4+Pj4gQEAgLTEw MCw3ICsxMDAsNyBAQCBXcml0ZUJhY2tJbnZhbGlkYXRlRGF0YUNhY2hlICgNCj4gPj4+Pj4+PiAg ICAgICBWT0lEDQo+ID4+Pj4+Pj4gICAgICAgKQ0KPiA+Pj4+Pj4+ICAgICB7DQo+ID4+Pj4+Pj4g LSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5IGltcGxlbWVudGVkIG9u IA0KPiA+Pj4+Pj4+IExvb25nQXJjaC5cbiIsIF9fRlVOQ1RJT05fXykpOw0KPiA+Pj4+Pj4+ICsg IERFQlVHICgoREVCVUdfRVJST1IsICIlYTogTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbiAN Cj4gPj4+Pj4+PiArIExvb25nQXJjaC5cbiIsIF9fZnVuY19fKSk7DQo+ID4+Pj4+Pj4gICAgIH0N Cj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAvKioNCj4gPj4+Pj4+PiBAQCAtMTM2LDcgKzEzNiw3 IEBAIFdyaXRlQmFja0ludmFsaWRhdGVEYXRhQ2FjaGVSYW5nZSAoDQo+ID4+Pj4+Pj4gICAgICAg SU4gICAgICBVSU5UTiAgTGVuZ3RoDQo+ID4+Pj4+Pj4gICAgICAgKQ0KPiA+Pj4+Pj4+ICAgICB7 DQo+ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5IGlt cGxlbWVudGVkIG9uIA0KPiA+Pj4+Pj4+IExvb25nQXJjaC5cbiIsIF9fRlVOQ1RJT05fXykpOw0K PiA+Pj4+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogTm90IGN1cnJlbnRseSBpbXBs ZW1lbnRlZCBvbiANCj4gPj4+Pj4+PiArIExvb25nQXJjaC5cbiIsIF9fZnVuY19fKSk7DQo+ID4+ Pj4+Pj4gICAgICAgcmV0dXJuIEFkZHJlc3M7DQo+ID4+Pj4+Pj4gICAgIH0NCj4gPj4+Pj4+Pg0K PiA+Pj4+Pj4+IEBAIC0xOTEsNyArMTkxLDcgQEAgV3JpdGVCYWNrRGF0YUNhY2hlUmFuZ2UgKA0K PiA+Pj4+Pj4+ICAgICAgIElOICAgICAgVUlOVE4gIExlbmd0aA0KPiA+Pj4+Pj4+ICAgICAgICkN Cj4gPj4+Pj4+PiAgICAgew0KPiA+Pj4+Pj4+IC0gIERFQlVHICgoREVCVUdfRVJST1IsICIlYTog Tm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbiANCj4gPj4+Pj4+PiBMb29uZ0FyY2guXG4iLCBf X0ZVTkNUSU9OX18pKTsNCj4gPj4+Pj4+PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IE5v dCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgb24gDQo+ID4+Pj4+Pj4gKyBMb29uZ0FyY2guXG4iLCBf X2Z1bmNfXykpOw0KPiA+Pj4+Pj4+ICAgICAgIHJldHVybiBBZGRyZXNzOw0KPiA+Pj4+Pj4+ICAg ICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBkaWZmIC0tZ2l0IA0KPiA+Pj4+Pj4+IGEvTWRlUGtn L0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jDQo+ID4+Pj4+IGIv TWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jDQo+ID4+ Pj4+Pj4gaW5kZXggNjdhMzM4N2ZmM2M2Li5iYjI2ZmUwMTNkOGIgMTAwNjQ0DQo+ID4+Pj4+Pj4g LS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5j DQo+ID4+Pj4+Pj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIv UmlzY1ZDYWNoZS5jDQo+ID4+Pj4+Pj4gQEAgLTc2LDcgKzc2LDcgQEAgSW52YWxpZGF0ZUluc3Ry dWN0aW9uQ2FjaGVSYW5nZSAoDQo+ID4+Pj4+Pj4gICAgICAgSU4gVUlOVE4gIExlbmd0aA0KPiA+ Pj4+Pj4+ICAgICAgICkNCj4gPj4+Pj4+PiAgICAgew0KPiA+Pj4+Pj4+IC0gIERFQlVHICgoREVC VUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCANCj4gPj4+Pj4+ PiBfX0ZVTkNUSU9OX18pKTsNCj4gPj4+Pj4+PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6 UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgDQo+ID4+Pj4+Pj4gKyBfX2Z1bmNfXykp Ow0KPiA+Pj4+Pj4+ICAgICAgIHJldHVybiBBZGRyZXNzOw0KPiA+Pj4+Pj4+ICAgICB9DQo+ID4+ Pj4+Pj4NCj4gPj4+Pj4+PiBAQCAtOTYsNyArOTYsNyBAQCBXcml0ZUJhY2tJbnZhbGlkYXRlRGF0 YUNhY2hlICgNCj4gPj4+Pj4+PiAgICAgICBWT0lEDQo+ID4+Pj4+Pj4gICAgICAgKQ0KPiA+Pj4+ Pj4+ICAgICB7DQo+ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1 bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIA0KPiA+Pj4+Pj4+IF9fRlVOQ1RJT05fXykpOw0KPiA+ Pj4+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVu Y3Rpb24uXG4iLCANCj4gPj4+Pj4+PiArIF9fZnVuY19fKSk7DQo+ID4+Pj4+Pj4gICAgIH0NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAvKioNCj4gPj4+Pj4+PiBAQCAtMTMyLDcgKzEzMiw3IEBA IFdyaXRlQmFja0ludmFsaWRhdGVEYXRhQ2FjaGVSYW5nZSAoDQo+ID4+Pj4+Pj4gICAgICAgSU4g ICAgICBVSU5UTiAgTGVuZ3RoDQo+ID4+Pj4+Pj4gICAgICAgKQ0KPiA+Pj4+Pj4+ICAgICB7DQo+ ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBm dW5jdGlvbi5cbiIsIA0KPiA+Pj4+Pj4+IF9fRlVOQ1RJT05fXykpOw0KPiA+Pj4+Pj4+ICsgIERF QlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCAN Cj4gPj4+Pj4+PiArIF9fZnVuY19fKSk7DQo+ID4+Pj4+Pj4gICAgICAgcmV0dXJuIEFkZHJlc3M7 DQo+ID4+Pj4+Pj4gICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEBAIC0xNTIsNyArMTUyLDcg QEAgV3JpdGVCYWNrRGF0YUNhY2hlICgNCj4gPj4+Pj4+PiAgICAgICBWT0lEDQo+ID4+Pj4+Pj4g ICAgICAgKQ0KPiA+Pj4+Pj4+ICAgICB7DQo+ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJVR19FUlJP UiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIA0KPiA+Pj4+Pj4+IF9fRlVO Q1RJT05fXykpOw0KPiA+Pj4+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYg dW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCANCj4gPj4+Pj4+PiArIF9fZnVuY19fKSk7DQo+ID4+ Pj4+Pj4gICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAvKioNCj4gPj4+Pj4+PiBAQCAt MTg3LDcgKzE4Nyw3IEBAIFdyaXRlQmFja0RhdGFDYWNoZVJhbmdlICgNCj4gPj4+Pj4+PiAgICAg ICBJTiAgICAgIFVJTlROICBMZW5ndGgNCj4gPj4+Pj4+PiAgICAgICApDQo+ID4+Pj4+Pj4gICAg IHsNCj4gPj4+Pj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9y dGVkIGZ1bmN0aW9uLlxuIiwgDQo+ID4+Pj4+Pj4gX19GVU5DVElPTl9fKSk7DQo+ID4+Pj4+Pj4g KyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5c biIsIA0KPiA+Pj4+Pj4+ICsgX19mdW5jX18pKTsNCj4gPj4+Pj4+PiAgICAgICByZXR1cm4gQWRk cmVzczsNCj4gPj4+Pj4+PiAgICAgfQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQEAgLTI0NSw2ICsy NDUsNiBAQCBJbnZhbGlkYXRlRGF0YUNhY2hlUmFuZ2UgKA0KPiA+Pj4+Pj4+ICAgICAgIElOICAg ICAgVUlOVE4gIExlbmd0aA0KPiA+Pj4+Pj4+ICAgICAgICkNCj4gPj4+Pj4+PiAgICAgew0KPiA+ Pj4+Pj4+IC0gIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVu Y3Rpb24uXG4iLCANCj4gPj4+Pj4+PiBfX0ZVTkNUSU9OX18pKTsNCj4gPj4+Pj4+PiArICBERUJV RyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgDQo+ ID4+Pj4+Pj4gKyBfX2Z1bmNfXykpOw0KPiA+Pj4+Pj4+ICAgICAgIHJldHVybiBBZGRyZXNzOw0K PiA+Pj4+Pj4+ICAgICB9DQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jh c2VMaWIvU2FmZVN0cmluZy5jIA0KPiA+Pj4+Pj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9T YWZlU3RyaW5nLmMNCj4gPj4+Pj4+PiBpbmRleCBiNzViMzMzODE3MzIuLjk1NGQzZjhjODk4OCAx MDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1NhZmVTdHJpbmcu Yw0KPiA+Pj4+Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5jDQo+ ID4+Pj4+Pj4gQEAgLTE3LDcgKzE3LDcgQEANCj4gPj4+Pj4+PiAgICAgICAgIGlmICghKEV4cHJl c3Npb24pKSB7IFwNCj4gPj4+Pj4+PiAgICAgICAgICAgREVCVUcgKChERUJVR19WRVJCT1NFLCBc DQo+ID4+Pj4+Pj4gICAgICAgICAgICAgIiVhKCVkKSAlYTogU0FGRV9TVFJJTkdfQ09OU1RSQUlO VF9DSEVDSyglYSkgZmFpbGVkLiAgUmV0dXJuICVyXG4iLCBcDQo+ID4+Pj4+Pj4gLSAgICAgICAg X19GSUxFX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZVTkNUSU9OX18sIERFQlVHX0VYUFJFU1NJ T05fU1RSSU5HIChFeHByZXNzaW9uKSwgU3RhdHVzKSk7IFwNCj4gPj4+Pj4+PiArICAgICAgICBf X0ZJTEVfXywgREVCVUdfTElORV9OVU1CRVIsIF9fZnVuY19fLCANCj4gPj4+Pj4+PiArIERFQlVH X0VYUFJFU1NJT05fU1RSSU5HIChFeHByZXNzaW9uKSwgU3RhdHVzKSk7IFwNCj4gPj4+Pj4+PiAg ICAgICAgICAgcmV0dXJuIFN0YXR1czsgXA0KPiA+Pj4+Pj4+ICAgICAgICAgfSBcDQo+ID4+Pj4+ Pj4gICAgICAgfSB3aGlsZSAoRkFMU0UpDQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCANCj4gPj4+Pj4+ PiBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9C YXNlT3JkZQ0KPiA+Pj4+Pj4+IHJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIuYyANCj4gPj4+ Pj4+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxp Yi9CYXNlT3JkZQ0KPiA+Pj4+Pj4+IHJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIuYyBpbmRl eCANCj4gPj4+Pj4+PiBmNDczMDFkZTg5ODIuLmEyMzExM2Y5YzkxZCAxMDA2NDQNCj4gPj4+Pj4+ PiAtLS0gDQo+ID4+Pj4+Pj4gYS9NZGVQa2cvTGlicmFyeS9CYXNlT3JkZXJlZENvbGxlY3Rpb25S ZWRCbGFja1RyZWVMaWIvQmFzZU9yZGUNCj4gPj4+Pj4+PiByZWRDb2xsZWN0aW9uUmVkQmxhY2tU cmVlTGliLmMNCj4gPj4+Pj4+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlT3JkZXJlZENvbGxl Y3Rpb25SZWRCbGFja1RyZWVMaWIvQmFzZQ0KPiA+Pj4+Pj4+ICsrKyBPcmRlcmVkQ29sbGVjdGlv blJlZEJsYWNrVHJlZUxpYi5jDQo+ID4+Pj4+Pj4gQEAgLTE0MTYsNyArMTQxNiw3IEBAIFJlZEJs YWNrVHJlZVZhbGlkYXRlICgNCj4gPj4+Pj4+PiAgICAgICBDT05TVCBSRURfQkxBQ0tfVFJFRV9O T0RFICAqTGFzdDsNCj4gPj4+Pj4+PiAgICAgICBDT05TVCBSRURfQkxBQ0tfVFJFRV9OT0RFICAq Tm9kZTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IC0gIERFQlVHICgoREVCVUdfVkVSQk9TRSwgIiVh OiBUcmVlPSVwXG4iLCBfX0ZVTkNUSU9OX18sIA0KPiA+Pj4+Pj4+IFRyZWUpKTsNCj4gPj4+Pj4+ PiArICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICIlYTogVHJlZT0lcFxuIiwgX19mdW5jX18sIFRy ZWUpKTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAgIC8vDQo+ID4+Pj4+Pj4gICAgICAgLy8g cHJvcGVydHkgIzUNCj4gPj4+Pj4+PiBAQCAtMTQ1OSw3ICsxNDU5LDcgQEAgUmVkQmxhY2tUcmVl VmFsaWRhdGUgKA0KPiA+Pj4+Pj4+ICAgICAgIERFQlVHICgoDQo+ID4+Pj4+Pj4gICAgICAgICBE RUJVR19WRVJCT1NFLA0KPiA+Pj4+Pj4+ICAgICAgICAgIiVhOiBUcmVlPSVwIEJsYWNrSGVpZ2h0 PSVMZCBDb3VudD0lTGRcbiIsDQo+ID4+Pj4+Pj4gLSAgICBfX0ZVTkNUSU9OX18sDQo+ID4+Pj4+ Pj4gKyAgICBfX2Z1bmNfXywNCj4gPj4+Pj4+PiAgICAgICAgIFRyZWUsDQo+ID4+Pj4+Pj4gICAg ICAgICAoSU5UNjQpQmxhY2tIZWlnaHQsDQo+ID4+Pj4+Pj4gICAgICAgICAoSU5UNjQpRm9yd2Fy ZENvdW50DQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9E eGVSbmdMaWIuYyANCj4gPj4+Pj4+PiBiL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdM aWIuYw0KPiA+Pj4+Pj4+IGluZGV4IDgyMTI5YWE0NDU5OC4uNDZhZWE1MTU5MjRmIDEwMDY0NA0K PiA+Pj4+Pj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0KPiA+ Pj4+Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0KPiA+Pj4+ Pj4+IEBAIC0zNyw0MyArMzcsNDMgQEAgR2VuZXJhdGVSYW5kb21OdW1iZXJWaWFOaXN0ODAwQWxn b3JpdGhtICgNCj4gPj4+Pj4+PiAgICAgICBSbmdQcm90b2NvbCA9IE5VTEw7DQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiAgICAgICBpZiAoQnVmZmVyID09IE5VTEwpIHsNCj4gPj4+Pj4+PiAtICAgIERF QlVHICgoREVCVUdfRVJST1IsICIlYTogQnVmZmVyID09IE5VTEwuXG4iLCBfX0ZVTkNUSU9OX18p KTsNCj4gPj4+Pj4+PiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogQnVmZmVyID09IE5V TEwuXG4iLCBfX2Z1bmNfXykpOw0KPiA+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIEVGSV9JTlZBTElE X1BBUkFNRVRFUjsNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgICAg ICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVJuZ1Byb3RvY29sR3VpZCwgTlVM TCwgKFZPSUQgKiopJlJuZ1Byb3RvY29sKTsNCj4gPj4+Pj4+PiAgICAgICBpZiAoRUZJX0VSUk9S IChTdGF0dXMpIHx8IChSbmdQcm90b2NvbCA9PSBOVUxMKSkgew0KPiA+Pj4+Pj4+IC0gICAgREVC VUcgKChERUJVR19FUlJPUiwgIiVhOiBDb3VsZCBub3QgbG9jYXRlIFJORyBwcm90b3RvY29sLCBT dGF0dXMgPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+PiArICAgIERF QlVHICgoREVCVUdfRVJST1IsICIlYTogQ291bGQgbm90IGxvY2F0ZSBSTkcgDQo+ID4+Pj4+Pj4g KyBwcm90b3RvY29sLCBTdGF0dXMgPSAlclxuIiwgX19mdW5jX18sIFN0YXR1cykpOw0KPiA+Pj4+ Pj4+ICAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiAgICAgICBTdGF0dXMgPSBSbmdQcm90b2NvbC0+R2V0Uk5HIChSbmdQcm90b2Nv bCwgDQo+ID4+Pj4+Pj4gJmdFZmlSbmdBbGdvcml0aG1TcDgwMDkwQ3RyMjU2R3VpZCwgQnVmZmVy U2l6ZSwgQnVmZmVyKTsNCj4gPj4+Pj4+PiAtICBERUJVRyAoKERFQlVHX0lORk8sICIlYTogR2V0 Uk5HIGFsZ29yaXRobSBDVFItMjU2IC0gU3RhdHVzIA0KPiA+Pj4+Pj4+ID0gJXJcbiIsIF9fRlVO Q1RJT05fXywgU3RhdHVzKSk7DQo+ID4+Pj4+Pj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6 IEdldFJORyBhbGdvcml0aG0gQ1RSLTI1NiAtIFN0YXR1cyANCj4gPj4+Pj4+PiArID0gJXJcbiIs IF9fZnVuY19fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+PiAgICAgICBpZiAoIUVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiA+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4+Pj4+PiAgICAg ICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgICAgICBTdGF0dXMgPSBSbmdQcm90b2NvbC0+R2V0 Uk5HIChSbmdQcm90b2NvbCwgDQo+ID4+Pj4+Pj4gJmdFZmlSbmdBbGdvcml0aG1TcDgwMDkwSG1h YzI1Nkd1aWQsIEJ1ZmZlclNpemUsIEJ1ZmZlcik7DQo+ID4+Pj4+Pj4gLSAgREVCVUcgKChERUJV R19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gSE1BQy0yNTYgLSBTdGF0dXMgDQo+ID4+Pj4+ Pj4gPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+PiArICBERUJVRyAo KERFQlVHX0lORk8sICIlYTogR2V0Uk5HIGFsZ29yaXRobSBITUFDLTI1NiAtIFN0YXR1cyANCj4g Pj4+Pj4+PiArID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+PiAgICAgICBp ZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIFN0YXR1 czsNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgICAgICBTdGF0dXMg PSBSbmdQcm90b2NvbC0+R2V0Uk5HIChSbmdQcm90b2NvbCwgDQo+ID4+Pj4+Pj4gJmdFZmlSbmdB bGdvcml0aG1TcDgwMDkwSGFzaDI1Nkd1aWQsIEJ1ZmZlclNpemUsIEJ1ZmZlcik7DQo+ID4+Pj4+ Pj4gLSAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gSGFzaC0yNTYg LSBTdGF0dXMgDQo+ID4+Pj4+Pj4gPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4g Pj4+Pj4+PiArICBERUJVRyAoKERFQlVHX0lORk8sICIlYTogR2V0Uk5HIGFsZ29yaXRobSBIYXNo LTI1NiAtIFN0YXR1cyANCj4gPj4+Pj4+PiArID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0dXMpKTsN Cj4gPj4+Pj4+PiAgICAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+Pj4+Pj4+ICAg ICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4+Pj4+PiAgICAgICB9DQo+ID4+Pj4+Pj4NCj4gPj4+ Pj4+PiAgICAgICAvLyBJZiBhbGwgdGhlIG90aGVyIG1ldGhvZHMgaGF2ZSBmYWlsZWQsIHVzZSB0 aGUgZGVmYXVsdCBtZXRob2QgZnJvbSB0aGUgUm5nUHJvdG9jb2wNCj4gPj4+Pj4+PiAgICAgICBT dGF0dXMgPSBSbmdQcm90b2NvbC0+R2V0Uk5HIChSbmdQcm90b2NvbCwgTlVMTCwgDQo+ID4+Pj4+ Pj4gQnVmZmVyU2l6ZSwgQnVmZmVyKTsNCj4gPj4+Pj4+PiAtICBERUJVRyAoKERFQlVHX0lORk8s ICIlYTogR2V0Uk5HIGFsZ29yaXRobSBIYXNoLTI1NiAtIFN0YXR1cyANCj4gPj4+Pj4+PiA9ICVy XG4iLCBfX0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+Pj4+Pj4+ICsgIERFQlVHICgoREVCVUdf SU5GTywgIiVhOiBHZXRSTkcgYWxnb3JpdGhtIEhhc2gtMjU2IC0gU3RhdHVzIA0KPiA+Pj4+Pj4+ ICsgPSAlclxuIiwgX19mdW5jX18sIFN0YXR1cykpOw0KPiA+Pj4+Pj4+ICAgICAgIGlmICghRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+Pj4+Pj4gICAgICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ Pj4+Pj4+ICAgICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAgIC8vIElmIHdlIGdldCB0 byB0aGlzIHBvaW50LCB3ZSBoYXZlIGZhaWxlZA0KPiA+Pj4+Pj4+IC0gIERFQlVHICgoREVCVUdf RVJST1IsICIlYTogR2V0Uk5HKCkgZmFpbGVkLCBzdGF1cyA9ICVyXG4iLCANCj4gPj4+Pj4+PiBf X0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+Pj4+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1Is ICIlYTogR2V0Uk5HKCkgZmFpbGVkLCBzdGF1cyA9ICVyXG4iLCANCj4gPj4+Pj4+PiArIF9fZnVu Y19fLCBTdGF0dXMpKTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgICAgIHJldHVybiBTdGF0dXM7 DQo+ID4+Pj4+Pj4gICAgIH0vLyBHZW5lcmF0ZVJhbmRvbU51bWJlclZpYU5pc3Q4MDBBbGdvcml0 aG0oKQ0KPiA+Pj4+Pj4+IC0tDQo+ID4+Pj4+Pj4gMi4zMC4yDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiANCj4gDQo+ IA0KPiANCg0KDQoNCg0KDQoNCg==