From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by sourceware.org (Postfix) with ESMTPS id 25EAF3858039 for ; Fri, 18 Dec 2020 08:44:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 25EAF3858039 IronPort-SDR: mSrMB1xD5rwjwQoHHXY5x+y0ieX7Dc39HJjiqHO0vqCxCdutUNBkOyD2dgVWnF0DWO4pj4Ov5o Mw2KW4vsO3+A== X-IronPort-AV: E=McAfee;i="6000,8403,9838"; a="172836361" X-IronPort-AV: E=Sophos;i="5.78,430,1599548400"; d="scan'208";a="172836361" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2020 00:44:02 -0800 IronPort-SDR: nbXmPbBX0p1H30OzNXoCNALzEL01MeM1JBxhDALavH7hna1ipJre3v4ivGbpBti1b0gN3Yk7XD 593X5rmGh2RA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,430,1599548400"; d="scan'208";a="353839108" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga002.jf.intel.com with ESMTP; 18 Dec 2020 00:44:02 -0800 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 18 Dec 2020 00:44:01 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 18 Dec 2020 00:44:01 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 18 Dec 2020 00:44:01 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=guVbsec8RACXCdPEsRf0umbl/V4r3kGV0gXrk0g92vqe8K4flWJIb/XyrJBSfYxDQJzyFt5sPlCZVZ3kuYwSXq6rDWkxlcbQQHuJ7ma3UIVD5E6QIxhf4QySO7ZMT2zjqxD6+Tw/TFnUM/89B3oXNUkF3DJuAjvFomqXJZaWuuf5aIaaIQvSF+5WH1+DyepaOFoxrqxXc4qiszNQlEVT+t0bwI09yE04XPmmqjHrT22kx62QMCF4OWd1nvjI26jOmCbfgjGmMhTmXeXtLt2EViTVZAyj1MuakTU+autqs7+Zow6FlurhdrtB54rDtPHNmskszvKvVmn7k9OtnrzssQ== 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-SenderADCheck; bh=5NYw7XBVmp7JVxF2wClvxOljX0cd1qVkjI5A73UkxX4=; b=GgCmGNUFv6sr3ws6Y+ieYe79vJBVeR6EiLkrX6SKt3J43Bw09oLTrDk+lHNUDkbN4VJHKR41GzrAAfMfnJJgT0YuA9E6rrypPMbIJ+bKA4lvFfN+aLKtX2d6JBBROgnwK27uqphhcVyAH9PjAEdlG3M/7XmsB8qdm35HNK/F+6l2QxZej1nx3ngU/vdRlTX84qdlELKFuaFRCirF2zmEeQM9P/ufz/Y/CfAUKFzKDXO7HSF64TXUK2/CIPKlTeZ6Iuz4NB7cpWxbKID8Hyxm4W8wwZ6zpWdmkxox7GB/shxlNTpxB3nNUbIF/K1QKofNz0nCvoyBAO9lZLJbDfPiFg== 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 BL0PR11MB2882.namprd11.prod.outlook.com (2603:10b6:208:7f::23) by MN2PR11MB4272.namprd11.prod.outlook.com (2603:10b6:208:196::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3676.25; Fri, 18 Dec 2020 08:44:00 +0000 Received: from BL0PR11MB2882.namprd11.prod.outlook.com ([fe80::7593:18ba:2560:fd8d]) by BL0PR11MB2882.namprd11.prod.outlook.com ([fe80::7593:18ba:2560:fd8d%7]) with mapi id 15.20.3654.025; Fri, 18 Dec 2020 08:43:59 +0000 From: "Aktemur, Tankut Baris" To: Andrew Burgess CC: "gdb-patches@sourceware.org" Subject: RE: [PATCHv6 2/2] gdb: Track the current frame for each thread Thread-Topic: [PATCHv6 2/2] gdb: Track the current frame for each thread Thread-Index: AQHWzukjPO+T4BZ0eUuOSl1eUVIK56n8jmug Date: Fri, 18 Dec 2020 08:43:58 +0000 Message-ID: References: <20201112115914.3702451-1-andrew.burgess@embecosm.com> <201d792035b200d19e6a07558fb3fc25062bea2b.1607600155.git.andrew.burgess@embecosm.com> In-Reply-To: <201d792035b200d19e6a07558fb3fc25062bea2b.1607600155.git.andrew.burgess@embecosm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action x-originating-ip: [90.186.40.108] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dcb2b752-66aa-4162-eb47-08d8a3311084 x-ms-traffictypediagnostic: MN2PR11MB4272: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ekYXmtBUoR1aCWs930JSCCOFu9M7oxmlBmDbcepHTeUE6htSior3eaaoE6mSqyd3xQvgdBXK90R9ixUlHHo5PgQF/6an/yO/QHnaAB8wh2xYIZjJ14OwVuv6786T0wovO02v916SrkaXK3bM65zUjkgZqeASyKZxRBaAFSx86MSNpKFH9sSVvSWFuj6oHXh48POTu4i3gb7izQLBEK4MyiG/1IBeWuGSfGGI920mSI8IkaowiJYF8t2XSVoAvDG1QYE9ZJVtKrreS7TzhhVDWnbF3p2EHG54QOT1uvYMn4xStcRCUOFSPnBHJacGTneJ/Ed7dMQKOWMUrzykj5sBSJYXnLezdMb2gRw4tXuDEgA4bnZv24Z/ssSUUQH6gsmfuhCfOWXa0wfgJQ3sf9SbiVXT2HRtGHQRYx3jtoUmeDVzKAj5oWqdWznLAXQ9ytIkes8UL9LeFnu1KjMV+8SiWL3zOs6i3Yo15tOvUFaDR73qZTWAsF9cyIQXiojFk6u+ x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR11MB2882.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(39860400002)(396003)(136003)(366004)(376002)(6506007)(26005)(2906002)(53546011)(186003)(64756008)(66476007)(76116006)(66556008)(71200400001)(33656002)(66446008)(66946007)(52536014)(5660300002)(30864003)(4326008)(316002)(478600001)(8676002)(6916009)(8936002)(83380400001)(55016002)(7696005)(9686003)(86362001)(2004002)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?NUlBWUJqS0V5Y3JWdGZxeVM2UkpYdFVGQXlnYlR1b0lIbks1TEdodmxnM3pp?= =?utf-8?B?clRRTW11MCt2Z2dTcmwxa2dXWENIOTN5MjhjV1VSNTZmd25mNWxHK0ZTcEEz?= =?utf-8?B?elpqRWdPRVVBRjRzQ1NBakFYelRUeHRhbk8xaDkrU21kYlZjb05Wd0VCSXFi?= =?utf-8?B?Z2MyeW9DSGk2eGUzQnc0dDR2ZHR4RWdIMm5CaUVESXJFb1hobnJFVE53TjRM?= =?utf-8?B?bGVJaDF1OGF2L09SMHlVeDdzNnR6ZEo0aHhENkorQThWTlZoMW9CWnArNXg1?= =?utf-8?B?Z21kV3Y0Qk01QzA3bG1XSVZCc0Z5OW9hWkZJSU1Fd3dGNHBFU0JnbjFsRjEw?= =?utf-8?B?a3dPQy81ZnhOSGZzNnRLbU9Tc1pmTWtETEZNN3dYU2ZNZ0RpdEZENkpjNmxI?= =?utf-8?B?elNaU0F1Y3QvdjdXUlF0TXdUMm1veDUzMHllRWpWTWFUNHFIbXBMTUxzeFU0?= =?utf-8?B?NUd1OUVKeHFxNjF2SjFzTXZaZnQyZEhaMjBLdGlxOUFMRjFUUXVDQzNjRGh1?= =?utf-8?B?b0J4dGJvNnhzNXBsVTUwb09UWnp4c01wWklUVG54N29WdEhkVGc5WnpjZXNZ?= =?utf-8?B?OFEvYlZlbU1tc0NsQThYdzhXMW1ZcE5QYjRZa01aWXFmcWpVZWlBT1hmc3Q4?= =?utf-8?B?UlpPZzgwSzVjYWFLdGNnOWE4MDNlOVVkVXlOakFxV0pVTXlycWhEc2tya21a?= =?utf-8?B?VTJiL2NPSXlmR0hQUmNhaEt5N3BJSU9tOWFaeDMwMlFxT25vdnFJV2NaQ3Rm?= =?utf-8?B?Z2I5ZUEzWlBlRVk3N3g2L0o0aEp1ajMzaXQxUEd6NjQ0WjY1ZmprTEZnWGlv?= =?utf-8?B?QldnN0F1VzB2UEN6N0I5a2hNK3VrR1hYRDhNalBtYW5URjRQTEJnekVIQ3Vu?= =?utf-8?B?VEw2VXFOYXluWFZEOFFjWnRxdGVmREhCWThrQm1WQUJaNGh6aG1DYWR6bWZF?= =?utf-8?B?R3hEWGNOMXlwS25GcDMwUWYyVUlnYjV3UTNnRzBqWG41a1kxVlptaXc1WUwr?= =?utf-8?B?TEhGSTNTamp4S1lDcEVoSE1oTHhUbWRaUUFPR3d1VGUzYTJScGFIWXVpL0xi?= =?utf-8?B?UUcrajMwcTlka0w0NEJPWjVDTnpHelRmekV1ZTVLUG9nRHo3K1h3RUFVSGxF?= =?utf-8?B?Y0J5WHo2bDRvN2JrV29lUDFONkMxSEE3RXpHYi8vWlVrQzUrMUdnM2NzZXhB?= =?utf-8?B?MCtsc3dSU2FiMTFZOEhxeHcvMWtxd2JlMVphY0RKQ012VmFOR1QzbVh1UDRC?= =?utf-8?B?UUU5TGY0WUdCSGVzRlIrRzNvWi9jNmE1NWNMM0ZKQUhhUlA2Z1dmcVd6RjM3?= =?utf-8?Q?YGwH507a8S8uo=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR11MB2882.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dcb2b752-66aa-4162-eb47-08d8a3311084 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Dec 2020 08:43:58.8412 (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: 8oG1fxnz5pBYOnNzIbsAx55h7e6hY1SCkKewRrFtT3WjSH3OsSHoxS33fej+zzYYhzoj+OQoT5Mg5As07gzwVwS5cf7D7xDIKo02ROD0Hz0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4272 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, DKIM_INVALID, DKIM_SIGNED, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Dec 2020 08:44:09 -0000 T24gVGh1cnNkYXksIERlY2VtYmVyIDEwLCAyMDIwIDEyOjM5IFBNLCBBbmRyZXcgQnVyZ2VzcyB3 cm90ZToNCj4gQ3VycmVudGx5IGluIEdEQiwgZWFjaCB0aW1lIGEgdXNlciBzd2l0Y2hlcyBiZXR3 ZWVuIHRocmVhZHMsIHRoZSBpbm5lcg0KPiBtb3N0IGZyYW1lIG9mIHRoZSB0aHJlYWQgYmVpbmcg c3dpdGNoZWQgdG8gaXMgc2VsZWN0ZWQuICBJbiBzb21lDQo+IHNpdHVhdGlvbnMgaG93ZXZlciwg aXQgbWlnaHQgYmUgaGVscGZ1bCBmb3IgYSB1c2VyIHRvIGhhdmUgR0RCDQo+IHJlbWVtYmVyIHdo aWNoIGZyYW1lIHdhcyBzZWxlY3RlZCBpbiBlYWNoIHRocmVhZCwgYW5kIHJlc3RvcmUgdGhpcw0K PiBmcmFtZSBhcyB0aGUgdXNlciBzd2l0Y2hlcyBiZXR3ZWVuIHRocmVhZHMuDQo+IA0KPiBUaGlz IGNvbW1pdCB0aGUgZm9sbG93aW5nIHR3byBjb21tYW5kczoNCg0KSSB0aGluayB0aGUgdmVyYiBp cyBtaXNzaW5nIGhlcmUuICBNYXliZSAiYWRkcyIgb3IgImludHJvZHVjZXMiLg0KDQo+IA0KPiAg IHNldCByZXN0b3JlLXNlbGVjdGVkLWZyYW1lIG9ufG9mZg0KPiAgIHNob3cgcmVzdG9yZS1zZWxl Y3RlZC1mcmFtZQ0KPiANCj4gVGhpcyBuZXcgb3B0aW9uIGlzIG9mZiBieSBkZWZhdWx0LCBzbyB0 aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgR0RCIGlzDQo+IHVuY2hhbmdlZC4NCj4gDQo+IEhvd2V2 ZXIsIHdpdGggdGhpcyBvcHRpb24gdHVybmVkIG9uIEdEQiB3aWxsIHJlbWVtYmVyLCBhbmQgcmVz dG9yZSB0aGUNCj4gc2VsZWN0ZWQgZnJhbWUgZm9yIGVhY2ggdGhyZWFkLg0KPiANCj4gTXkgaW5p dGlhbCBtb3RpdmF0aW9uIGZvciB0aGlzIGNoYW5nZSB3YXMgdG8gaGF2ZSB0aGUgdGhyZWFkIHJl c3RvcmVkDQo+IHdoZW4gc3dpdGNoaW5nIHRocmVhZHMgd2l0aCAndGhyZWFkIDxudW0+JywgaG93 ZXZlciwgYXMgSSBzdGFydGVkIHRvDQo+IHdvcmsgb24gdGhpcyBmZWF0dXJlIEkgcmVhbGlzZWQg dGhhdCB0aGVyZSB3ZXJlIGEgY291cGxlIG9mIG90aGVyDQo+IHBsYWNlcyB3aGVyZSB0aGUgc3Rp Y2t5IGZyYW1lIHdvdWxkIG5hdHVyYWxseSBhcHBlYXIuICBUaGVzZSBhcmUgJ2luZm8NCj4gdGhy ZWFkcycgYW5kICd0aHJlYWQgYXBwbHkgYWxsJy4NCj4gDQo+IFdpdGggJ2luZm8gdGhyZWFkcycg dGhlIG91dHB1dCBjb250YWlucyBhICdGcmFtZScgY29sdW1uLiAgUHJldmlvdXNseSwNCj4gdGhp cyB3YXMgYWx3YXlzIHRoZSBpbm5lcm1vc3QgZnJhbWUsIHRoZSBpbmZvIHRocmVhZHMgb3V0cHV0 IHdhcw0KPiBjcmVhdGVkIGJ5IHN3aXRjaGluZyB0byBlYWNoIHRocmVhZCBpbiB0dXJuIGFuZCBj b2xsZWN0aW5nIGluZm9ybWF0aW9uDQo+IGFib3V0IHRoZSB0aHJlYWQsIHRoaXMgbmF0dXJhbGx5 IHBsYWNlZCB1cyBhdCB0aGUgaW5uZXJtb3N0IGZyYW1lLg0KPiBOb3csIHRoZSAnRnJhbWUnIGNv bHVtbiBkaXNwbGF5cyB0aGUgX3NlbGVjdGVkXyBmcmFtZSBmb3IgZWFjaA0KPiB0aHJlYWQuDQo+ IA0KPiBJIHN0cnVnZ2xlZCB0byBkZWNpZGUgaWYgdGhpcyBjaGFuZ2Ugd2FzIGdvb2Qgb3Igbm90 LiAgSW4gdGhlIGVuZCBJDQo+IGZlbHQgdGhhdCBoYXZpbmcgJ2luZm8gdGhyZWFkcycgZGlzcGxh eSB0aGUgc2VsZWN0ZWQgZnJhbWUgd291bGQgZmVlbA0KPiBtb3JlIG5hdHVyYWwsIHRoYXQncyB0 aGUgZnJhbWUgeW91J2xsIGVuZCB1cCBpbiBpZiB5b3Ugc3dpdGNoIHRvIHRoYXQNCj4gdGhyZWFk LCBzbyBpZiBzZWVtZWQgdG8gbWFrZSBzZW5zZS4gIEhvd2V2ZXIsIGl0IHdvdWxkIGJlIGVhc3kg ZW5vdWdoDQoNCiJpZiIgLT4gIml0Ii4NCg0KPiB0byBmb3JjZSB0aGUgb2xkIGJlaGF2aW91ciBp ZiBwZW9wbGUgd291bGQgcHJlZmVyLiAgQWx0ZXJuYXRpdmVseSBJDQo+IGNvdWxkIGV2ZW4gaW52 ZXN0aWdhdGUgYWRkaW5nIGEgc3dpdGNoIHRvICdpbmZvIHRocmVhZHMnIHRoYXQgYWxsb3dzDQo+ IHRoZSB1c2VyIHRvIHNlbGVjdCBkaXNwbGF5aW5nIGVpdGhlciB0aGUgc2VsZWN0ZWQgZnJhbWUs IG9yIHRoZSBpbm5lcg0KPiBtb3N0IGZyYW1lLg0KDQoiaW5uZXJtb3N0IiBpcyBvbmUgd29yZCwg QUZBSUsuDQoNCj4gRm9yICd0aHJlYWQgYXBwbHkgYWxsJywgYWdhaW4sIHdlIHVzZWQgdG8gYWx3 YXlzIGFwcGx5IHRvIHRoZQ0KPiBpbm5lcm1vc3QgZnJhbWUuICBOb3cgaXQncyBwb3NzaWJsZSBm b3IgYSB1c2VyIHRvIGFkanVzdCB3aGljaCBmcmFtZQ0KPiB3aWxsIGJlIGN1cnJlbnQgd2hlbiB0 aGUgJ3RocmVhZCBhcHBseSBhbGwnIHJ1bnMgLSB0aGlzIGZlZWxzIGxpa2UgYQ0KPiB1c2VmdWwg Y2hhbmdlIHRvIG1lLiAgSXQncyBlYXN5IGVub3VnaCB0byBxdWlja2x5IHJlc3RvcmUgdGhlIGlu bmVyDQoNCkhlcmUsIHRvbzogImlubmVyIG1vc3QiIC0+ICJpbm5lcm1vc3QiDQpUaGVyZSBhcmUg YSBjb3VwbGUgbW9yZSBpbnN0YW5jZXMgYmVsb3csIGluIHRoZSB0ZXhpbmZvIGZpbGUuDQoNCj4g bW9zdCBmcmFtZSBpZiByZXF1aXJlZCAoJ3RocmVhZCBhcHBseSBhbGwgLS0gZnJhbWUgMCcpIGFu ZCBoYXZpbmcgdGhlDQo+IGZsZXhpYmlsaXR5IHRvIHR3ZWFrIHRoZSBzZWxlY3RlZCBmcmFtZSBp biBqdXN0IHNvbWUgdGhyZWFkcyBmZWVscw0KPiBsaWtlIGEgbmljZSBhZHZhbnRhZ2UuICBBZ2Fp biwgSSBjb3VsZCBwb3RlbnRpYWxseSBhZGQgYSBjb21tYW5kIGZsYWcNCj4gaGVyZSB0byBmb3Jj ZSB0aGUgaW5uZXIgbW9zdCBmcmFtZS4NCj4gDQo+IGdkYi9DaGFuZ2VMb2c6DQo+IA0KPiAJKiBO RVdTOiBEZXNjcmliZSBuZXcgZmVhdHVyZS4NCj4gCSogZnJhbWUuYyAoY2FjaGVfc2VsZWN0ZWRf ZnJhbWVfb25fdGhyZWFkKTogTmV3IGZ1bmN0aW9uLg0KPiAJKHNlbGVjdF9mcmFtZSk6IENhbGwg bmV3IGZ1bmN0aW9uLg0KPiAJKiBnZGJ0aHJlYWQuaCAoY2xhc3MgdGhyZWFkX2luZm8pIDxzZWxl Y3RlZF9mcmFtZV9pZD46IE5ldw0KPiAJbWVtYmVyIHZhcmlhYmxlLg0KPiAJPHNlbGVjdGVkX2Zy YW1lX2xldmVsPjogTGlrZXdpc2UuDQo+IAkoc3dpdGNoX3RvX3RocmVhZCk6IEV4dHJhIHBhcmFt ZXRlci4NCj4gCSogdGhyZWFkLmMgKHN3aXRjaF90b190aHJlYWRfaWZfYWxpdmUpOiBFeHRyYSBw YXJhbWV0ZXIsIHBhc3NlZCB0bw0KPiAJc3dpdGNoX3RvX3RocmVhZC4NCj4gCShzY29wZWRfcmVz dG9yZV9jdXJyZW50X3RocmVhZDo6cmVzdG9yZSk6IFJlc3RvcmUgdGhlIGZyYW1lIGVpdGhlcg0K PiAJZnJvbSB0aGUgdGhyZWFkLCBvciBmcm9tIHRoZSBsb2NhbCBvYmplY3QuDQo+IAkoc2V0X2V4 ZWN1dGluZ190aHJlYWQpOiBSZXNldCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGZyYW1lLg0KPiAJ KHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWVfcGVyX3RocmVhZCk6IE5ldyBmaWxlIGxldmVsIHN0YXRp YyB2YXJpYWJsZS4NCj4gCShzaG93X3Jlc3RvcmVfc2VsZWN0ZWRfZnJhbWVfcGVyX3RocmVhZCk6 IE5ldyBmdW5jdGlvbi4NCj4gCShwcmludF90aHJlYWRfaW5mb18xKTogUGFzcyBleHRyYSBwYXJh bWV0ZXIgdG8gc3dpdGNoX3RvX3RocmVhZC4NCj4gCShzd2l0Y2hfdG9fdGhyZWFkKTogVGFrZSBl eHRyYSBwYXJhbWV0ZXIsIHJlc3RvcmUgdGhlIHByZXZpb3VzDQo+IAlmcmFtZSBpZiBhcHByb3By aWF0ZS4NCj4gCSh0aHJlYWRfYXBwbHlfYWxsX2NvbW1hbmQpOiBQYXNzIGV4dHJhIHBhcmFtZXRl ciB0byBzd2l0Y2hfdG9fdGhyZWFkLg0KPiAJKHRocmVhZF9hcHBseV9jb21tYW5kKTogTGlrZXdp c2UuDQo+IAkodGhyZWFkX3NlbGVjdCk6IFBhc3MgZXh0cmEgcGFyYW1ldGVyIHRvIHN3aXRjaF90 b190aHJlYWRfaWZfYWxpdmUuDQo+IAkoX2luaXRpYWxpemVfdGhyZWFkKTogQWRkIG5ldyBzZXQv c2hvdyB2YXJpYWJsZS4NCj4gDQo+IGdkYi9kb2MvQ2hhbmdlTG9nOg0KPiANCj4gCSogZ2RiLnRl eGluZm8gKFRocmVhZHMpOiBBZGQgYW5jaG9yIHRvICdpbmZvIHRocmVhZHMnLiAgRGVzY3JpYmUN Cj4gCXRoZSBGcmFtZSBjb2x1bW4gb2YgJ2luZm8gdGhyZWFkcycgbW9yZS4gIERlc2NyaWJlIHdo aWNoIGZyYW1lIGlzDQo+IAlzZWxlY3RlZCB3aGVuIHN3aXRjaGluZyB0aHJlYWRzLCBhbmQgZG9j dW1lbnQgdGhlIG5ldyBvcHRpb24gZm9yDQo+IAlyZXN0b3JpbmcgdGhlIHByZXZpb3VzbHkgc2Vs ZWN0ZWQgZnJhbWUuDQo+IA0KPiBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gDQo+IAkqIGdk Yi50aHJlYWRzL3Jlc3RvcmUtc2VsZWN0ZWQtZnJhbWUuYzogTmV3IGZpbGUuDQo+IAkqIGdkYi50 aHJlYWRzL3Jlc3RvcmUtc2VsZWN0ZWQtZnJhbWUuZXhwOiBOZXcgZmlsZS4NCg0KVGhlcmUgYXJl IHNvbWUgcmVsYXRlZCBGSVhNRSBjb21tZW50cyBpbiBmcmFtZS5oOg0KDQogICAyOTIgIC8qIEZv ciBldmVyeSBzdG9wcGVkIHRocmVhZCwgR0RCIHRyYWNrcyB0d28gZnJhbWVzOiBjdXJyZW50IGFu ZA0KICAgMjkzICAgICBzZWxlY3RlZC4gIEN1cnJlbnQgZnJhbWUgaXMgdGhlIGlubmVyIG1vc3Qg ZnJhbWUgb2YgdGhlIHNlbGVjdGVkDQogICAyOTQgICAgIHRocmVhZC4gIFNlbGVjdGVkIGZyYW1l IGlzIHRoZSBvbmUgYmVpbmcgZXhhbWluZWQgYnkgdGhlIEdEQg0KICAgMjk1ICAgICBDTEkgKHNl bGVjdGVkIHVzaW5nIGB1cCcsIGBkb3duJywgLi4uKS4gIFRoZSBmcmFtZXMgYXJlIGNyZWF0ZWQN CiAgIDI5NiAgICAgb24tZGVtYW5kICh2aWEgZ2V0X3ByZXZfZnJhbWUoKSkgYW5kIHRoZW4gaGVs ZCBpbiBhIGZyYW1lIGNhY2hlLiAgKi8NCiAgIDI5NyAgLyogRklYTUU6IGNhZ25leS8yMDAyLTEx LTI4OiBFciwgdGhlcmUgaXMgYSBsaWUgaGVyZS4gIElmIHlvdSBkbyB0aGUNCiAgIDI5OCAgICAg c2VxdWVuY2U6IGB0aHJlYWQgMTsgdXA7IHRocmVhZCAyOyB0aHJlYWQgMScgeW91IGxvc2UgdGhy ZWFkIDEncw0KICAgMjk5ICAgICBzZWxlY3RlZCBmcmFtZS4gIEF0IHByZXNlbnQgR0RCIG9ubHkg dHJhY2tzIHRoZSBzZWxlY3RlZCBmcmFtZSBvZg0KICAgMzAwICAgICB0aGUgY3VycmVudCB0aHJl YWQuICBCdXQgYmUgd2FybmVkLCB0aGF0IG1pZ2h0IGNoYW5nZS4gICovDQogICAzMDEgIC8qIEZJ WE1FOiBjYWduZXkvMjAwMi0xMS0xNDogQXQgYW55IHRpbWUsIG9ubHkgb25lIHRocmVhZCdzIHNl bGVjdGVkDQogICAzMDIgICAgIGFuZCBjdXJyZW50IGZyYW1lIGNhbiBiZSBhY3RpdmUuICBTd2l0 Y2hpbmcgdGhyZWFkcyBjYXVzZXMgZ2RiIHRvDQogICAzMDMgICAgIGRpc2NhcmQgYWxsIHRoYXQg Y2FjaGVkIGZyYW1lIGluZm9ybWF0aW9uLiAgVWxnaCEgIEluc3RlYWQsIGN1cnJlbnQNCiAgIDMw NCAgICAgYW5kIHNlbGVjdGVkIGZyYW1lIHNob3VsZCBiZSBib3VuZCB0byBhIHRocmVhZC4gICov DQogICAzMDUNCiAgIDMwNiAgLyogT24gZGVtYW5kLCBjcmVhdGUgdGhlIGlubmVyIG1vc3QgZnJh bWUgdXNpbmcgaW5mb3JtYXRpb24gZm91bmQgaW4NCiAgIDMwNyAgICAgdGhlIGluZmVyaW9yLiAg SWYgdGhlIGlubmVyIG1vc3QgZnJhbWUgY2FuJ3QgYmUgY3JlYXRlZCwgdGhyb3cgYW4NCiAgIDMw OCAgICAgZXJyb3IuICAqLw0KICAgMzA5ICBleHRlcm4gc3RydWN0IGZyYW1lX2luZm8gKmdldF9j dXJyZW50X2ZyYW1lICh2b2lkKTsNCi4uLg0KICAgMzI1ICAvKiBSZXR1cm4gdGhlIHNlbGVjdGVk IGZyYW1lLiAgQWx3YXlzIHJldHVybnMgbm9uLU5VTEwuICBJZiB0aGVyZQ0KICAgMzI2ICAgICBp c24ndCBhbiBpbmZlcmlvciBzdWZmaWNpZW50IGZvciBjcmVhdGluZyBhIGZyYW1lLCBhbiBlcnJv ciBpcw0KICAgMzI3ICAgICB0aHJvd24uICBXaGVuIE1FU1NBR0UgaXMgbm9uLU5VTEwsIHVzZSBp dCBmb3IgdGhlIGVycm9yIG1lc3NhZ2UsDQogICAzMjggICAgIG90aGVyd2lzZSB1c2UgYSBnZW5l cmljIGVycm9yIG1lc3NhZ2UuICAqLw0KICAgMzI5ICAvKiBGSVhNRTogY2FnbmV5LzIwMDItMTEt Mjg6IEF0IHByZXNlbnQsIHdoZW4gdGhlcmUgaXMgbm8gc2VsZWN0ZWQNCiAgIDMzMCAgICAgZnJh bWUsIHRoaXMgZnVuY3Rpb24gYWx3YXlzIHJldHVybnMgdGhlIGN1cnJlbnQgKGlubmVyIG1vc3Qp IGZyYW1lLg0KICAgMzMxICAgICBJdCBzaG91bGQgaW5zdGVhZCwgd2hlbiBhIHRocmVhZCBoYXMg cHJldmlvdXNseSBoYWQgaXRzIGZyYW1lDQogICAzMzIgICAgIHNlbGVjdGVkIChidXQgbm90IHJl c3VtZWQpIGFuZCB0aGUgZnJhbWUgY2FjaGUgaW52YWxpZGF0ZWQsIGZpbmQNCiAgIDMzMyAgICAg YW5kIHRoZW4gcmV0dXJuIHRoYXQgdGhyZWFkJ3MgcHJldmlvdXNseSBzZWxlY3RlZCBmcmFtZS4g ICovDQogICAzMzQgIGV4dGVybiBzdHJ1Y3QgZnJhbWVfaW5mbyAqZ2V0X3NlbGVjdGVkX2ZyYW1l IChjb25zdCBjaGFyICptZXNzYWdlID0gbnVsbHB0cik7DQoNCkl0IG1pZ2h0IGJlIHdvcnRoIHVw ZGF0aW5nIHRoZW0sIHRvby4NCg0KDQo+IC0tLQ0KPiAgZ2RiL0NoYW5nZUxvZyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDI0ICsrDQo+ICBnZGIvTkVXUyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKw0KPiAgZ2RiL2RvYy9DaGFuZ2VMb2cgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsNCj4gIGdkYi9kb2MvZ2RiLnRleGluZm8g ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMyArLQ0KPiAgZ2RiL2ZyYW1lLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI2ICsrDQo+ICBnZGIvZ2RidGhyZWFkLmgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKy0NCj4gIGdkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArDQo+ICAuLi4vZ2RiLnRocmVh ZHMvcmVzdG9yZS1zZWxlY3RlZC1mcmFtZS5jICAgICAgfCAgODUgKysrKysNCj4gIC4uLi9nZGIu dGhyZWFkcy9yZXN0b3JlLXNlbGVjdGVkLWZyYW1lLmV4cCAgICB8IDMzNiArKysrKysrKysrKysr KysrKysNCj4gIGdkYi90aHJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA2MSArKystDQo+ICAxMCBmaWxlcyBjaGFuZ2VkLCA1NzggaW5zZXJ0aW9ucygrKSwgMTMgZGVs ZXRpb25zKC0pDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFk cy9yZXN0b3JlLXNlbGVjdGVkLWZyYW1lLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVz dHN1aXRlL2dkYi50aHJlYWRzL3Jlc3RvcmUtc2VsZWN0ZWQtZnJhbWUuZXhwDQo+IA0KPiBkaWZm IC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUw0KPiBpbmRleCBjYzIzYmNmMWZmZC4uZmJkMWNi NTI4ODkgMTAwNjQ0DQo+IC0tLSBhL2dkYi9ORVdTDQo+ICsrKyBiL2dkYi9ORVdTDQo+IEBAIC00 OCw2ICs0OCwxNyBAQCBzaG93IHJlc3RvcmUtc2VsZWN0ZWQtdGhyZWFkDQo+ICAgIGF2YWlsYWJs ZSwgdGhlbiBHREIgZmFsbHMgYmFjayB0byBzZWxlY3RpbmcgdGhlIGZpcnN0IG5vbi1leGl0ZWQN Cj4gICAgdGhyZWFkLg0KPiANCj4gK3NldCByZXN0b3JlLXNlbGVjdGVkLWZyYW1lIFtvbnxvZmZd DQo+ICtzaG93IHJlc3RvcmUtc2VsZWN0ZWQtZnJhbWUNCj4gKw0KPiArICBXaGVuIHR1cm5lZCBv biwgR0RCIHdpbGwgcmVjb3JkIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZnJhbWUgaW4gZWFjaA0K PiArICB0aHJlYWQuICBXaGVuIHN3aXRjaGluZyBiZXR3ZWVuIHRocmVhZHMsIEdEQiB3aWxsIGF0 dGVtcHQgdG8gcmVzdG9yZQ0KPiArICB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCBmcmFtZSBpbiB0 aGUgdGhyZWFkIGJlaW5nIHN3aXRjaGVkIHRvby4NCj4gKyAgRXhlY3V0aW5nIGEgdGhyZWFkIHdp bGwgY2F1c2UgR0RCIHRvIGRpc2NhcmQgYW55IHByZXZpb3VzbHkgc2VsZWN0ZWQNCj4gKyAgZnJh bWUgKEdEQiB3aWxsIHNlbGVjdCB0aGUgaW5uZXIgbW9zdCBmcmFtZSB0aGUgbmV4dCB0aW1lIHRo ZSB0aHJlYWQNCj4gKyAgc3RvcHMpLiAgVGhlICdpbmZvIHRocmVhZHMnIGNvbW1hbmQgd2lsbCBz aG93IHRoZSBzZWxlY3RlZCBmcmFtZSBpbg0KPiArICBpdHMgJ2ZyYW1lJyBmaWVsZC4NCj4gKw0K PiAgKiBDaGFuZ2VkIGNvbW1hbmRzDQo+IA0KPiAgYnJlYWsgW1BST0JFX01PRElGSUVSXSBbTE9D QVRJT05dIFt0aHJlYWQgVEhSRUFETlVNXQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4 aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8NCj4gaW5kZXggNDFkNzNiMzQ3YTYuLmZkZjkxZjBl MTc5IDEwMDY0NA0KPiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvDQo+ICsrKyBiL2dkYi9kb2Mv Z2RiLnRleGluZm8NCj4gQEAgLTM1OTgsNiArMzU5OCw3IEBADQo+ICBAZW5kIHNtYWxsZXhhbXBs ZQ0KPiANCj4gIEB0YWJsZSBAY29kZQ0KPiArQGFuY2hvcntpbmZvIHRocmVhZHN9DQo+ICBAa2lu ZGV4IGluZm8gdGhyZWFkcw0KPiAgQGl0ZW0gaW5mbyB0aHJlYWRzIEBye1t9QHZhcnt0aHJlYWQt aWQtbGlzdH1AcntdfQ0KPiANCj4gQEAgLTM2MjUsNyArMzYyNiw5IEBADQo+ICBwcm9ncmFtIGl0 c2VsZi4NCj4gDQo+ICBAaXRlbQ0KPiAtdGhlIGN1cnJlbnQgc3RhY2sgZnJhbWUgc3VtbWFyeSBm b3IgdGhhdCB0aHJlYWQNCj4gK3RoZSBjdXJyZW50IHN0YWNrIGZyYW1lIHN1bW1hcnkgZm9yIHRo YXQgdGhyZWFkLCB0aGlzIGlzIHRoZSBpbm5lciBtb3N0DQo+ICtmcmFtZSBmb3IgdGhlIHRocmVh ZCAoQHB4cmVme3NldCByZXN0b3JlLXNlbGVjdGVkLWZyYW1lfSB0byBkaXNwbGF5IHRoZQ0KPiAr dGhyZWFkcyBzZWxlY3RlZCBmcmFtZSBpbnN0ZWFkKS4NCj4gIEBlbmQgZW51bWVyYXRlDQo+IA0K PiAgQG5vaW5kZW50DQo+IEBAIC0zNjk3LDYgKzM3MDAsMjQgQEANCj4gIEBzYW1we1N3aXRjaGlu ZyB0b30gZGVwZW5kcyBvbiB5b3VyIHN5c3RlbSdzIGNvbnZlbnRpb25zIGZvciBpZGVudGlmeWlu Zw0KPiAgdGhyZWFkcy4NCj4gDQo+ICtXaGVuIHN3aXRjaGluZyBiZXR3ZWVuIHRocmVhZHMsIEB2 YWx1ZXtHREJOfSB3aWxsIHNlbGVjdCB0aGUgaW5uZXIgbW9zdA0KPiArZnJhbWUgaW4gdGhlIHRo cmVhZCBiZWluZyBzd2l0Y2hlZCB0b28gKEBweHJlZntzZXQgcmVzdG9yZS1zZWxlY3RlZC1mcmFt ZX0NCj4gK3RvIGNoYW5nZSB0aGlzIGJlaGF2aW91cikuDQo+ICsNCj4gK0BhbmNob3J7c2V0IHJl c3RvcmUtc2VsZWN0ZWQtZnJhbWV9DQo+ICtAaXRlbSBzZXQgcmVzdG9yZS1zZWxlY3RlZC1mcmFt ZSBAcntbfW9ufG9mZkBye119DQo+ICtAaXRlbXggc2hvdyByZXN0b3JlLXNlbGVjdGVkLWZyYW1l DQo+ICtXaGVuIEBjb2Rle3Jlc3RvcmUtc2VsZWN0ZWQtZnJhbWV9IGlzIG9uLCBAdmFsdWV7R0RC Tn0gd2lsbCByZXN0b3JlDQo+ICt0aGUgcHJldmlvdXNseSBzZWxlY3RlZCBmcmFtZSB3aGVuIHN3 aXRjaGluZyB0byBhIGRpZmZlcmVudCB0aHJlYWQuDQo+ICtBbHNvIHRoZSBAY29kZXtpbmZvIHRo cmVhZHN9IGNvbW1hbmQgKEBweHJlZntpbmZvIHRocmVhZHN9KSB3aWxsIGRpc3BsYXkgdGhlDQo+ ICtjdXJyZW50bHkgc2VsZWN0ZWQgZnJhbWUgZm9yIGVhY2ggdGhyZWFkLg0KPiArDQo+ICtJZiBh IHRocmVhZCBoYXMgYmVlbiBydW5uaW5nLCB0aGVuIHdoZW4gaXQgc3RvcHMsIHRoZSBwcmV2aW91 c2x5DQo+ICtzZWxlY3RlZCBmcmFtZSBpcyBkaXNjYXJkZWQsIGFuZCB0aGUgaW5uZXIgbW9zdCBm cmFtZSBpcyBhZ2Fpbg0KPiArc2VsZWN0ZWQuDQo+ICsNCj4gK1RoaXMgb3B0aW9uIGlzIEBjb2Rl e29mZn0gYnkgZGVmYXVsdC4NCj4gKw0KPiAgQGFuY2hvcnt0aHJlYWQgYXBwbHkgYWxsfQ0KPiAg QGtpbmRleCB0aHJlYWQgYXBwbHkNCj4gIEBjaW5kZXggYXBwbHkgY29tbWFuZCB0byBzZXZlcmFs IHRocmVhZHMNCj4gZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIvZ2RiL2ZyYW1lLmMNCj4gaW5k ZXggNDYxOGRhNmM4MWUuLmE4ZTk2YWE1MzRiIDEwMDY0NA0KPiAtLS0gYS9nZGIvZnJhbWUuYw0K PiArKysgYi9nZGIvZnJhbWUuYw0KPiBAQCAtMTg2MiwxMiArMTg2MiwzOCBAQCBkZXByZWNhdGVk X3NhZmVfZ2V0X3NlbGVjdGVkX2ZyYW1lICh2b2lkKQ0KPiAgICByZXR1cm4gZ2V0X3NlbGVjdGVk X2ZyYW1lIChOVUxMKTsNCj4gIH0NCj4gDQo+ICsvKiBXaGVuIFJFU1RPUkVfU0VMRUNURURfRlJB TUVfUEVSX1RIUkVBRCBpcyB0cnVlLCB0aGVuIHVwZGF0ZSBpbiB0aGUNCj4gKyAgIGN1cnJlbnQg dGhyZWFkIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBpZGVudGlmeSBmcmFtZSBGSSBzbyB0 aGUNCj4gKyAgIGZyYW1lIGNhbiBiZSBzZWxlY3RlZCBhZ2FpbiBsYXRlciBpZiB3ZSBzd2l0Y2gg dGhyZWFkcy4gICovDQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtjYWNoZV9zZWxlY3RlZF9mcmFt ZV9vbl90aHJlYWQgKCkNCj4gK3sNCj4gKyAgc3RydWN0IGZyYW1lX2luZm8gKmZpID0gc2VsZWN0 ZWRfZnJhbWU7DQo+ICsgIHN0cnVjdCB0aHJlYWRfaW5mbyAqdHANCj4gKyAgICA9IGZpbmRfdGhy ZWFkX3B0aWQgKGN1cnJlbnRfaW5mZXJpb3IgKCksIGluZmVyaW9yX3B0aWQpOw0KPiArICBpZiAo ZmkgIT0gbnVsbHB0ciAmJiB0cCAhPSBudWxscHRyKQ0KPiArICAgIHsNCj4gKyAgICAgIC8qIFdl IG9ubHkgcmVjb3JkIHRoZSBzZWxlY3RlZCBmcmFtZSBpZiB0aGUgbGV2ZWwgaXMgZ3JlYXRlciB0 aGFuIDAsDQo+ICsJIHRoaXMgYXZvaWRzIGhhdmluZyB0byBjYWxjdWxhdGUgdGhlIGZyYW1lIGlk IHdoZW4gc2VsZWN0aW5nIHRoZQ0KPiArCSBpbm5lcm1vc3QgZnJhbWUuICBXaGVuIHRoZSBjYWNo ZWQgc2VsZWN0ZWQgZnJhbWUgaXMgY2xlYXJlZCB0aGVuDQo+ICsJIHdlIHNlbGVjdCB0aGUgaW5u ZXJtb3N0IGZyYW1lIGFueXdheSwgc28gY2FsY3VsYXRpbmcgdGhlIGZyYW1lIGlkDQo+ICsJIGZv ciBmcmFtZSAjMCBhZGRzIG5vIHZhbHVlLiAgKi8NCj4gKyAgICAgIGlmIChmcmFtZV9yZWxhdGl2 ZV9sZXZlbCAoZmkpID4gMCkNCj4gKwlzYXZlX3NlbGVjdGVkX2ZyYW1lICgmdHAtPnNlbGVjdGVk X2ZyYW1lX2lkLA0KPiArCQkJICAgICAmdHAtPnNlbGVjdGVkX2ZyYW1lX2xldmVsKTsNCj4gKyAg ICAgIGVsc2UNCj4gKwl0cC0+c2VsZWN0ZWRfZnJhbWVfbGV2ZWwgPSAtMTsNCj4gKyAgICB9DQo+ ICt9DQo+ICsNCj4gIC8qIFNlbGVjdCBmcmFtZSBGSSAob3IgTlVMTCAtIHRvIGludmFsaWRhdGUg dGhlIHNlbGVjdGVkIGZyYW1lKS4gICovDQo+IA0KPiAgdm9pZA0KPiAgc2VsZWN0X2ZyYW1lIChz dHJ1Y3QgZnJhbWVfaW5mbyAqZmkpDQo+ICB7DQo+ICAgIHNlbGVjdGVkX2ZyYW1lID0gZmk7DQo+ ICsgIGNhY2hlX3NlbGVjdGVkX2ZyYW1lX29uX3RocmVhZCAoKTsNCj4gICAgc2VsZWN0ZWRfZnJh bWVfbGV2ZWwgPSBmcmFtZV9yZWxhdGl2ZV9sZXZlbCAoZmkpOw0KPiAgICBpZiAoc2VsZWN0ZWRf ZnJhbWVfbGV2ZWwgPT0gMCkNCj4gICAgICB7DQo+IGRpZmYgLS1naXQgYS9nZGIvZ2RidGhyZWFk LmggYi9nZGIvZ2RidGhyZWFkLmgNCj4gaW5kZXggZTU0ODRhYzU0Y2EuLjY4NmE0NjNkNWY3IDEw MDY0NA0KPiAtLS0gYS9nZGIvZ2RidGhyZWFkLmgNCj4gKysrIGIvZ2RiL2dkYnRocmVhZC5oDQo+ IEBAIC0zNzAsNiArMzcwLDEyIEBAIGNsYXNzIHRocmVhZF9pbmZvIDogcHVibGljIHJlZmNvdW50 ZWRfb2JqZWN0DQo+ICAgICAgIGJwX2xvbmdqbXBfY2FsbF9kdW1teS4gICovDQo+ICAgIHN0cnVj dCBmcmFtZV9pZCBpbml0aWF0aW5nX2ZyYW1lID0gbnVsbF9mcmFtZV9pZDsNCj4gDQo+ICsgIC8q IEluZm9ybWF0aW9uIGZvciB0aGUgbGFzdCBmcmFtZSBzdWNjZXNzZnVsbHkgc2VsZWN0ZWQgaW4g dGhpcyB0aHJlYWQuDQo+ICsgICAgIElmIHRoZSB1c2VyIGNvbmZpZ3VyYWJsZSBzZXR0aW5nIGlz IG9uIHRoZW4gR0RCIHdpbGwgdHJ5IHRvIHJlc2VsZWN0DQo+ICsgICAgIHRoaXMgZnJhbWUgd2hl biBzd2l0Y2hpbmcgdGhyZWFkcy4gICovDQo+ICsgIHN0cnVjdCBmcmFtZV9pZCBzZWxlY3RlZF9m cmFtZV9pZCB7fTsNCj4gKyAgaW50IHNlbGVjdGVkX2ZyYW1lX2xldmVsID0gLTE7DQo+ICsNCj4g ICAgLyogUHJpdmF0ZSBkYXRhIHVzZWQgYnkgdGhlIHRhcmdldCB2ZWN0b3IgaW1wbGVtZW50YXRp b24uICAqLw0KPiAgICBzdGQ6OnVuaXF1ZV9wdHI8cHJpdmF0ZV90aHJlYWRfaW5mbz4gcHJpdjsN Cj4gDQo+IEBAIC01NzUsOCArNTgxLDExIEBAIGV4dGVybiBpbnQgdGhyZWFkX2NvdW50IChwcm9j ZXNzX3N0cmF0dW1fdGFyZ2V0ICpwcm9jX3RhcmdldCk7DQo+ICAvKiBSZXR1cm4gdHJ1ZSBpZiB3 ZSBoYXZlIGFueSB0aHJlYWQgaW4gYW55IGluZmVyaW9yLiAgKi8NCj4gIGV4dGVybiBib29sIGFu eV90aHJlYWRfcCAoKTsNCj4gDQo+IC0vKiBTd2l0Y2ggY29udGV4dCB0byB0aHJlYWQgVEhSLiAg QWxzbyBzZXRzIHRoZSBTVE9QX1BDIGdsb2JhbC4gICovDQo+IC1leHRlcm4gdm9pZCBzd2l0Y2hf dG9fdGhyZWFkIChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRocik7DQo+ICsvKiBTd2l0Y2ggY29udGV4 dCB0byB0aHJlYWQgVEhSLiAgQWxzbyBzZXRzIHRoZSBTVE9QX1BDIGdsb2JhbC4gIFdoZW4NCj4g KyAgIFJFU1RPUkVfUFJFVklPVVNfRlJBTUUgaXMgdHJ1ZSB0aGVuLCBpZiB0aGlzIHRocmVhZCBo YXMgYSBwcmV2aW91c2x5DQo+ICsgICBzZWxlY3RlZCBmcmFtZSBjYWNoZWQsIHRoZSBwcmV2aW91 cyBmcmFtZSBpcyByZXN0b3JlZC4gICovDQo+ICtleHRlcm4gdm9pZCBzd2l0Y2hfdG9fdGhyZWFk IChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRociwNCj4gKwkJCSAgICAgIGJvb2wgcmVzdG9yZV9wcmV2 aW91c19mcmFtZSA9IGZhbHNlKTsNCj4gDQo+ICAvKiBTd2l0Y2ggY29udGV4dCB0byBubyB0aHJl YWQgc2VsZWN0ZWQuICAqLw0KPiAgZXh0ZXJuIHZvaWQgc3dpdGNoX3RvX25vX3RocmVhZCAoKTsN Cj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvcmVzdG9yZS1zZWxlY3Rl ZC1mcmFtZS5jDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9yZXN0b3JlLXNlbGVjdGVk LWZyYW1lLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmM3 MmIwYjhiNTRiDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy9yZXN0b3JlLXNlbGVjdGVkLWZyYW1lLmMNCj4gQEAgLTAsMCArMSw4NSBAQA0KPiArI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPg0KPiArI2luY2x1ZGUgPHN0ZGlvLmg+DQo+ICsjaW5jbHVkZSA8 dW5pc3RkLmg+DQo+ICsjaW5jbHVkZSA8c3RkbGliLmg+DQo+ICsjaW5jbHVkZSA8cHRocmVhZC5o Pg0KPiArDQo+ICt2b2xhdGlsZSBpbnQgbG9vcF9jb3VudCA9IDEwOw0KPiArdm9sYXRpbGUgaW50 IHRocmVhZF9jb3VudCA9IDM7DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICt0aHJlYWRfbGV2ZWxf NSAoaW50IGlkLCBpbnQgY291bnQpDQo+ICt7DQo+ICsgIHByaW50ZiAoIlRocmVhZCAlZCByZWFj aGVkICVzLCAjJWRcbiIsDQo+ICsJICBpZCwgX19QUkVUVFlfRlVOQ1RJT05fXywgY291bnQpOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArdGhyZWFkX2xldmVsXzQgKGludCBpZCwgaW50 IGNvdW50KQ0KPiArew0KPiArICB0aHJlYWRfbGV2ZWxfNSAoaWQsIGNvdW50KTsNCj4gK30NCj4g Kw0KPiArc3RhdGljIHZvaWQNCj4gK3RocmVhZF9sZXZlbF8zIChpbnQgaWQsIGludCBjb3VudCkN Cj4gK3sNCj4gKyAgdGhyZWFkX2xldmVsXzQgKGlkLCBjb3VudCk7DQo+ICt9DQo+ICsNCj4gK3N0 YXRpYyB2b2lkDQo+ICt0aHJlYWRfbGV2ZWxfMiAoaW50IGlkLCBpbnQgY291bnQpDQo+ICt7DQo+ ICsgIHRocmVhZF9sZXZlbF8zIChpZCwgY291bnQpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9p ZA0KPiArdGhyZWFkX2xldmVsXzEgKGludCBpZCwgaW50IGNvdW50KQ0KPiArew0KPiArICB0aHJl YWRfbGV2ZWxfMiAoaWQsIGNvdW50KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgKg0KPiAr dGhyZWFkX3dvcmtlciAodm9pZCAqYXJnKQ0KPiArew0KPiArICBpbnQgaSwgbWF4LCBpZDsNCj4g Kw0KPiArICBpZCA9ICooKGludCAqKSBhcmcpOw0KPiArICBtYXggPSBsb29wX2NvdW50Ow0KPiAr ICBmb3IgKGkgPSAwOyBpIDwgbWF4OyArK2kpDQo+ICsgICAgdGhyZWFkX2xldmVsXzEgKGlkLCAo aSArIDEpKTsNCj4gKw0KPiArICByZXR1cm4gTlVMTDsNCj4gK30NCj4gKw0KPiArc3RydWN0IHRo cmVhZF9pbmZvDQo+ICt7DQo+ICsgIHB0aHJlYWRfdCB0aHJlYWQ7DQo+ICsgIGludCBpZDsNCj4g K307DQo+ICsNCj4gK2ludA0KPiArbWFpbiAoKQ0KPiArew0KPiArICBpbnQgaSwgbWF4ID0gdGhy ZWFkX2NvdW50Ow0KPiArDQo+ICsgIHN0cnVjdCB0aHJlYWRfaW5mbyAqaW5mbyA9IG1hbGxvYyAo c2l6ZW9mIChzdHJ1Y3QgdGhyZWFkX2luZm8pICogbWF4KTsNCj4gKyAgaWYgKGluZm8gPT0gTlVM TCkNCj4gKyAgICBhYm9ydCAoKTsNCj4gKw0KPiArICBmb3IgKGkgPSAwOyBpIDwgbWF4OyArK2kp DQo+ICsgICAgew0KPiArICAgICAgc3RydWN0IHRocmVhZF9pbmZvICp0aHIgPSAmaW5mb1tpXTsN Cj4gKyAgICAgIHRoci0+aWQgPSBpICsgMTsNCj4gKyAgICAgIGlmIChwdGhyZWFkX2NyZWF0ZSAo JnRoci0+dGhyZWFkLCBOVUxMLCB0aHJlYWRfd29ya2VyLCAmdGhyLT5pZCkgIT0gMCkNCj4gKwlh Ym9ydCAoKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgZm9yIChpID0gMDsgaSA8IG1heDsgKytpKQ0K PiArICAgIHsNCj4gKyAgICAgIHN0cnVjdCB0aHJlYWRfaW5mbyAqdGhyID0gJmluZm9baV07DQo+ ICsgICAgICBpZiAocHRocmVhZF9qb2luICh0aHItPnRocmVhZCwgTlVMTCkgIT0gMCkNCj4gKwlh Ym9ydCAoKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgZnJlZSAoaW5mbyk7DQo+ICt9DQo+IGRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Jlc3RvcmUtc2VsZWN0ZWQtZnJhbWUu ZXhwDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9yZXN0b3JlLXNlbGVjdGVkLWZyYW1l LmV4cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uYjQwMzg2 ZmM1OGUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRz L3Jlc3RvcmUtc2VsZWN0ZWQtZnJhbWUuZXhwDQo+IEBAIC0wLDAgKzEsMzM2IEBADQo+ICsjIENv cHlyaWdodCAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPiArDQo+ICsjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5DQo+ICsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+ICsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQo+ICsjIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ICsjDQo+ICsjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KPiArIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv Zg0KPiArIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlDQo+ICsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuDQo+ICsjDQo+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ICsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiArDQo+ICsj IFRoaXMgdGVzdHMgR0RCJ3MgdHJhY2tpbmcgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmcmFt ZSBvbiBhDQo+ICsjIHBlci10aHJlYWQgYmFzaXMuDQo+ICsjDQo+ICsjIFdlIHNldHVwIGEgY291 cGxlIG9mIGluZmVyaW9ycywgZWFjaCB3aXRoIG11dGxpcGxlIHRoZWFkcywgd2UgdGhlbg0KPiAr IyBzd2l0Y2ggYmV0d2VlbiB0aHJlYWRzIGFuZCBtb2RpZnkgdGhlIGN1cnJlbnQgZnJhbWUuICBX ZSB1c2UgJ2luZm8NCj4gKyMgdGhyZWFkcycgdG8gY2hlY2sgdGhhdCBHREIgaXMgY29ycmVjdGx5 IHRyYWNraW5nIHRoZSBjdXJyZW50IGZyYW1lLg0KPiArIw0KPiArIyBUb3dhcmQgdGhlIGVuZCBv ZiB0aGUgdGVzdCB3ZSBjaGVjayB0aGF0IHdoZW4gYSB0aHJlYWQgZXhlY3V0ZXMgdGhlDQo+ICsj IGN1cnJlbnRseSBzZWxlY3RlZCBmcmFtZSBpcyByZXNldC4NCj4gKyMNCj4gKyMgRmluYWxseSB3 ZSBkaXNhYmxlIHRyYWNraW5nIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZnJhbWUgYW5kDQo+ ICsjIGVuc3VyZSBHREIgbm8gbG9uZ2VyIHJlc3RvcmVzIHRoZSBjdXJyZW50IGZyYW1lLg0KPiAr DQo+ICtzdGFuZGFyZF90ZXN0ZmlsZQ0KPiArDQo+ICtzZXQgb3B0aW9ucyB7IGRlYnVnIHB0aHJl YWRzIH0NCj4gK2lmIHtbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0 ZXN0ZmlsZSAkc3JjZmlsZSBcDQo+ICsJICRvcHRpb25zXSA9PSAtMX0gew0KPiArICAgIHJldHVy biAtMQ0KPiArfQ0KPiArDQo+ICsjIFJ1biB0aGUgJ2luZm8gdGhyZWFkcycgY29tbWFuZCwgYW5k IGNoZWNrIHRoYXQgdGhlIGZyYW1lIHBhcnQgb2YNCj4gKyMgZWFjaCB0aHJlYWRzIG91dHB1dCBt YXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBhdHRlcm4gaW4gRlJBTUVfSU5GTywNCj4gKyMgd2l0 aCB0aHJlYWQgMSB1c2luZyBlbnRyeSAwIGZyb20gRlJBTUVfSU5GTywgdGhyZWFkIDIgdXNpbmcg ZW50cnkgMSwNCj4gKyMgYW5kIHNvIG9uLg0KPiArcHJvYyB0ZXN0X2luZm9fdGhyZWFkcyB7IHRl c3RuYW1lIGZyYW1lX2luZm8gfSB7DQo+ICsgICAgZ2xvYmFsIGRlY2ltYWwgaGV4IGdkYl9wcm9t cHQNCj4gKw0KPiArICAgIHNldCB0aHJlYWRfY291bnQgMA0KPiArICAgIGdkYl90ZXN0X211bHRp cGxlICJpbmZvIHRocmVhZHMiICR7dGVzdG5hbWV9IHsNCj4gKwktcmUgIi4qICBJZFxccytUYXJn ZXQgSWRcXHMrRnJhbWVcXHMqXHJcbiIgew0KPiArCSAgICAjIERpc2NhcmQgdGhlIGluZm8gdGhy ZWFkcyBoZWFkZXIgbGluZSBhcyB3ZWxsIGFzIGFueQ0KPiArCSAgICAjIG91dHB1dCBiZWZvcmUg aXQgaW4gdGhlIGV4cGVjdCBidWZmZXIuDQo+ICsJICAgIGV4cF9jb250aW51ZQ0KPiArCX0NCj4g Kw0KPiArCS1yZSAiXlxbKiBcXVxccysoKCRkZWNpbWFsKVwuKT8oJGRlY2ltYWwpXFxzK1RocmVh ZCAkaGV4IFxcKExXUCAkZGVjaW1hbFxcKQ0KPiBcIlxbXlwiXF0rXCJcXHMrKFxbXlxyXG5cXSop XHJcbiIgew0KPiArCSAgICBpZiB7W2luZm8gZXhpc3RzIGV4cGVjdF9vdXQoMixzdHJpbmcpXX0g ew0KPiArCQlzZXQgaWQgIiRleHBlY3Rfb3V0KDIsc3RyaW5nKS4kZXhwZWN0X291dCgzLHN0cmlu ZykiDQo+ICsJCXNldCBpbmRleCBbZXhwciBbZXhwciBbZXhwciAkZXhwZWN0X291dCgyLHN0cmlu ZykgLSAxXSAqIDRdIFwNCj4gKwkJCSAgICAgICArIFtleHByICRleHBlY3Rfb3V0KDMsc3RyaW5n KSAtIDFdXQ0KPiArCSAgICB9IGVsc2Ugew0KPiArCQlzZXQgaWQgJGV4cGVjdF9vdXQoMyxzdHJp bmcpDQo+ICsJCXNldCBpbmRleCBbZXhwciAkaWQgLSAxXQ0KPiArCSAgICB9DQo+ICsJICAgIHNl dCBmcmFtZSAkZXhwZWN0X291dCg0LHN0cmluZykNCj4gKwkgICAgc2V0IHBhdHRlcm4gW2xpbmRl eCAkZnJhbWVfaW5mbyAkaW5kZXhdDQo+ICsJICAgIGdkYl9hc3NlcnQge1tyZWdleHAgLS0gJHBh dHRlcm4gJGZyYW1lXX0gXA0KPiArCQkiJHRlc3RuYW1lOiB0aHJlYWQgJGlkIG1hdGNoZXMiDQo+ ICsJICAgIGluY3IgdGhyZWFkX2NvdW50DQo+ICsJICAgIGV4cF9jb250aW51ZQ0KPiArCX0NCj4g KwktcmUgIl4kZ2RiX3Byb21wdCAiIHsNCj4gKwl9DQo+ICsgICAgfQ0KPiArICAgIGdkYl9hc3Nl cnQgeyR0aHJlYWRfY291bnQgPT0gW2xsZW5ndGggJGZyYW1lX2luZm9dfSBcDQo+ICsJIiR0ZXN0 bmFtZTogYWxsIHRocmVhZHMgc2VlbiINCj4gK30NCj4gKw0KPiArIyBSdW4gJ3RocmVhZCBUSFJF QURfTlVNJyBhbmQgY2hlY2sgdGhhdCB3ZSBzd2l0Y2ggdGhyZWFkLg0KPiArcHJvYyBzd2l0Y2hf dGhyZWFkIHsgdGhyZWFkX251bSB9IHsNCj4gKyAgICBnZGJfdGVzdCAidGhyZWFkICR7dGhyZWFk X251bX0iIFwNCj4gKwkiU3dpdGNoaW5nIHRvIHRocmVhZCAoMlwuKT8ke3RocmVhZF9udW19IC4q Ig0KPiArfQ0KPiArDQo+ICsjIFVzZWQgZHVyaW5nIHN0YXJ0dXAsIGNvbnRpbnVlIHRoZSBpbmZl cmlvciBhbmQgd2FpdCBmb3IgYWxsIHRocmVhZHMNCj4gKyMgdG8gc3RvcCBhdCB0aGUgYnJlYWtw b2ludC4NCj4gK3Byb2MgcnVuX2FsbF90aHJlYWRzX3RvX2JyZWFrcG9pbnQgeyB9IHsNCj4gKyAg ICBnbG9iYWwgZ2RiX3Byb21wdA0KPiArDQo+ICsgICAgc2V0IHN0b3BwZWRfdGhyZWFkX2NvdW50 IDANCj4gKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAiY29udGludWUiICJ3YWl0IGZvciB3b3JrZXIg dGhyZWFkcyB0byBzdG9wIiB7DQo+ICsJLXJlICJUaHJlYWQgKDJcLik/XFsyMzRcXSBcIlxbXlwi XF0rXCIgaGl0IEJyZWFrcG9pbnQiIHsNCj4gKwkgICAgaW5jciBzdG9wcGVkX3RocmVhZF9jb3Vu dA0KPiArCSAgICBpZiB7JHN0b3BwZWRfdGhyZWFkX2NvdW50IDwgM30gew0KPiArCQlleHBfY29u dGludWUNCj4gKwkgICAgfQ0KPiArCX0NCj4gKw0KPiArCS1yZSAiJGdkYl9wcm9tcHQiIHsNCj4g KwkgICAgZXhwX2NvbnRpbnVlDQo+ICsJfQ0KPiArICAgIH0NCj4gKw0KPiArICAgIGdkYl9hc3Nl cnQgeyRzdG9wcGVkX3RocmVhZF9jb3VudCA9PSAzfSBcDQo+ICsJImFsbCB3b3JrZXIgdGhyZWFk cyBzdG9wcGVkIg0KPiArfQ0KPiArDQo+ICsjIFN3aXRjaCB0byB0aHJlYWQgIzEsIGFuZCBpbnRl cnJ1cHQgaXQuDQo+ICtwcm9jIHN3aXRjaF90b19hbmRfc3RvcF90aHJlYWRfMSB7fSB7DQo+ICsg ICAgZ2xvYmFsIGdkYl9wcm9tcHQNCj4gKyAgICAjIFRoZXJlJ3MgYSBiaXQgb2YgYSB3YXJ0IGhl cmUgaW4gdGhhdCBhZnRlciBzZW5kaW5nICJpbnRlcnJ1cHQiDQo+ICsgICAgIyB0aGUgb3V0cHV0 IHNlZW1zIHRvIGFwcGVhciBvdXQgb2Ygb3JkZXIgdGhpcyBpcyBwcm9iYWJseSBhDQo+ICsgICAg IyBjb25zZXF1ZW5jZSBvZiBiZWluZyBpbiBub24tc3RvcCBtb2RlLCBzbyB0aGlzIGlzIHdoYXQg SSdkIGxpa2UNCj4gKyAgICAjIHRvIHNlZToNCj4gKyAgICAjDQo+ICsgICAgIyAgIChnZGIpIGlu dGVycnVwdA0KPiArICAgICMgICBUaHJlYWQgMSAiLi4uLiIgc3RvcHBlZC4NCj4gKyAgICAjICAg KGdkYikNCj4gKyAgICAjDQo+ICsgICAgIyBCdXQgd2hhdCB3ZSBhY3R1YWxseSBzZWUgaXM6DQo+ ICsgICAgIw0KPiArICAgICMgICAoZ2RiKSBpbnRlcnJ1cHQNCj4gKyAgICAjICAgKGdkYikNCj4g KyAgICAjICAgVGhyZWFkIDEgIi4uLi4iIHN0b3BwZWQuDQo+ICsgICAgIw0KPiArICAgICMgV2hh dCBoYXBwZW5zIG9mIGNvdXJzZSBpcyB0aGF0IEdEQiBwcm9jZXNzZXMgdGhlIGludGVycnVwdCwN Cj4gKyAgICAjIHNlbmRzIGEgU0lHU1RPUCB0byB0aGUgaW5mZXJpb3IgYW5kIHRoZW4gcmV0dXJu cyB0byB0aGUgcHJvbXB0LA0KPiArICAgICMgYXQgdGhpcyBwb2ludCB3ZSBwcm9jZXNzIHRoZSBz dG9wIGV2ZW50IGZyb20gdGhlIGluZmVyaW9yIGFuZA0KPiArICAgICMgcHJpbnQgdGhlIHN0b3Bw ZWQgbWVzc2FnZS4NCj4gKyAgICAjDQo+ICsgICAgIyBJdCB3b3VsZCBiZSBuaWNlIGlmIEdEQiBj b3VsZCBiZSBzbWFydCBlbm91Z2ggdG8gcmVwcmludCB0aGUNCj4gKyAgICAjIHByb21wdCBhZnRl ciB0aGUgc3RvcCBtZXNzYWdlIHRob3VnaC4NCj4gKyAgICAjDQo+ICsgICAgIyBUaGUgZmlyc3Qg J2ludGVycnVwdFxuJyBoZXJlIGNhdXNlcyB0aGUgaW50ZXJpb3IgdG8gc3RvcCwgd2hpbGUNCj4g KyAgICAjIHRoZSBmb2xsb3dpbmcgbG9uZSAnXG4nIGNhdXNlcyB0aGUgcHJvbXB0IHRvIGJlIHJl cHJpbnRlZC4gIFRoaXMNCj4gKyAgICAjIGFsbG93cyB1cyB0byBtYXRjaCBhbGwgdGhlIG91dHB1 dCB1cCB0byB0aGUgZmluYWwgcHJvbXB0LA0KPiArICAgICMgZW5zdXJpbmcgd2UgZG9uJ3QgbGVh dmUgYW55IHN0cmF5IG91dHB1dCBpbiBleHBlY3QncyBvdXRwdXQNCj4gKyAgICAjIGJ1ZmZlci4N Cj4gKyAgICBzd2l0Y2hfdGhyZWFkIDENCj4gKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAiaW50ZXJy dXB0XFxuIiAiaW50ZXJydXB0IHRocmVhZCAxIiB7DQo+ICsJLXJlICJeaW50ZXJydXB0XFxcXG5c XHJcXG4kZ2RiX3Byb21wdCAiIHsNCj4gKwkgICAgcGFzcyAkZ2RiX3Rlc3RfbmFtZQ0KPiArCX0N Cj4gKyAgICB9DQo+ICsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgIndhaXQgZm9yIHRocmVhZCAx IHRvIHN0b3AiIHsNCj4gKwktcmUgIlRocmVhZCAoMlwuKT8xIFwiXFteXCJcXStcIiBzdG9wcGVk XC4iIHsNCj4gKwkgICAgc2VuZF9nZGIgIlxuIg0KPiArCSAgICBnZGJfdGVzdF9tdWx0aXBsZSAi IiBcDQo+ICsJCSJ3YWl0IGZvciBwcm9tcHQgYWZ0ZXIgdGhyZWFkIDEgc3RvcHBlZCIgew0KPiAr CQktcmUgIi4qJGdkYl9wcm9tcHQgIiB7DQo+ICsJCSAgICBwYXNzICRnZGJfdGVzdF9uYW1lDQo+ ICsJCX0NCj4gKwkgICAgfQ0KPiArCX0NCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gKyMgU2V0dXAg Zm9yIHRoaXMgdGVzdC4gIFBsYWNlIEdEQiBpbiBub24tc3RvcCBtb2RlLCBjcmVhdGUgYW4gaW5p dGlhbA0KPiArIyBicmVha3BvaW50LCBydW4gYWxsIG9mIHRoZSB0aHJlYWRzIHRvIHRoZSBicmVh a3BvaW50LCB0aGVuIHN0b3ANCj4gKyMgdGhyZWFkIDEgKHdoaWNoIGRvZXNuJ3QgaGl0IHRoZSBi cmVha3BvaW50KS4NCj4gK3Byb2Mgc2V0dXBfZm9yX3Rlc3Qge30gew0KPiArICAgIGdkYl90ZXN0 X25vX291dHB1dCAic2V0IG5vbi1zdG9wIG9uIg0KPiArDQo+ICsgICAgaWYgIVtydW50b19tYWlu XSB7DQo+ICsJZmFpbCAicnVudG8gbWFpbiINCj4gKwlyZXR1cm4NCj4gKyAgICB9DQo+ICsNCj4g KyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCByZXN0b3JlLXNlbGVjdGVkLWZyYW1lIG9uIg0K PiArDQo+ICsgICAgZ2RiX2JyZWFrcG9pbnQgInRocmVhZF9sZXZlbF81Ig0KPiArDQo+ICsgICAg d2l0aF90ZXN0X3ByZWZpeCAic2V0dXAgaW5mZXJpb3IgMSIgew0KPiArCSMgTm93IHJ1biB0aGUg aW5mZXJpb3IsIGFuZCB3YWl0IGZvciBhbGwgb2YgdGhlIGV4cGVjdGVkIHRocmVhZHMNCj4gKwkj IHRvIGhpdCB0aGUgdGhyZWFkX2xldmVsXzUgYnJlYWtwb2ludC4NCj4gKwlydW5fYWxsX3RocmVh ZHNfdG9fYnJlYWtwb2ludA0KPiArDQo+ICsJIyBUaGUgbWFpbiB0aHJlYWQgd2lsbCBzdGlsbCBi ZSBydW5uaW5nIGF0IHRoaXMgcG9pbnQsIHdhaXRpbmcgZm9yDQo+ICsJIyB0aGUgc3RvcHBlZCB0 aHJlYWRzIHRvIGZpbmlzaCBzbyBpdCBjYW4gam9pbiB3aXRoIHRoZW0uICBMZXRzIGdvDQo+ICsJ IyBhbmQgaW50ZXJydXB0IGl0Lg0KPiArCXN3aXRjaF90b19hbmRfc3RvcF90aHJlYWRfMQ0KPiAr ICAgIH0NCj4gK30NCj4gKw0KPiArc2V0dXBfZm9yX3Rlc3QNCj4gKw0KPiArIyBXZSBjYW4ndCBy ZWx5IG9uIGZyYW1lcyBiZWluZyB3aXRoaW4gJ3B0aHJlYWRfam9pbicgYWN0dWFsbHkgYmVpbmcN Cj4gKyMgaW4gYSBmcmFtZSBjYWxsZWQgcHRocmVhZF9qb2luLiAgRGlmZmVyZW50IHZlcnNpb25z IG9mIHB0aHJlYWRzDQo+ICsjIG1pZ2h0IGNhbGwgdGhlIGZ1bmN0aW9uIHNvbWV0aGluZyBkaWZm ZXJlbnQuICBTbywganVzdCBoYXZlIGENCj4gKyMgbWF0Y2ggYWxsIHBhdHRlcm4uDQo+ICtzZXQg cHRocmVhZF9qb2luX3BhdHRlcm4gIi4qIg0KPiArDQo+ICtzZXQgZnJhbWVfaW5mbyBbbGlzdCAi JGhleCBpbiAke3B0aHJlYWRfam9pbl9wYXR0ZXJufSIgXA0KPiArCQkgICAgInRocmVhZF9sZXZl bF81IiBcDQo+ICsJCSAgICAidGhyZWFkX2xldmVsXzUiIFwNCj4gKwkJICAgICJ0aHJlYWRfbGV2 ZWxfNSIgXQ0KPiArDQo+ICsNCj4gKyMgV2Ugbm93IGhhdmUgYWxsIHRocmVhZHMgc3RvcHBlZCBp biBrbm93biBsb2NhdGlvbnMuICBMZXRzIGNoZWNrIHRoYXQNCj4gKyMgZXZlcnlvbmUgaXMgd2hl cmUgd2UgZXhwZWN0IHRoZW0gdG8gYmUuDQo+ICt0ZXN0X2luZm9fdGhyZWFkcyAiaW5mbyB0aHJl YWRzICMxIiAkZnJhbWVfaW5mbw0KPiArDQo+ICsjIEZpcnN0LCBsZXRzIG1vdmUgdGhyZWFkIDEu ICBUaGVuIGNoZWNrIHRoYXQgdGhlIGluZm8gdGhyZWFkcyBvdXRwdXQNCj4gKyMgcmVmbGVjdHMg dGhpcy4NCj4gK2dkYl90ZXN0ICJ1cCIgIi4qIg0KPiArc2V0IGZyYW1lX2luZm8gW2xyZXBsYWNl ICRmcmFtZV9pbmZvIDAgMCAiJGhleCBpbiBtYWluIl0NCj4gK3Rlc3RfaW5mb190aHJlYWRzICJp bmZvIHRocmVhZHMgIzIiICRmcmFtZV9pbmZvDQo+ICsNCj4gKyMgTm93IGxldHMgY2hhbmdlIHRo ZSBvdGhlciB0aHJlYWRzLCBvbmUgYXQgYSB0aW1lLCBjaGVja2luZyB0aGUNCj4gKyMgb3V0cHV0 IG9mIGluZm8gdGhyZWFkcyBhZnRlciBlYWNoIGNoYW5nZS4NCj4gK2ZvcmVhY2ggc3BlYyBbbGlz dCBbbGlzdCAyIDUgIiRoZXggaW4gdGhyZWFkX3dvcmtlciJdIFwNCj4gKwkJICBbbGlzdCAzIDMg IiRoZXggaW4gdGhyZWFkX2xldmVsXzIiXSBcDQo+ICsJCSAgW2xpc3QgNCAxICIkaGV4IGluIHRo cmVhZF9sZXZlbF80Il0gXSB7DQo+ICsgICAgc2V0IHRociBbbGluZGV4ICRzcGVjIDBdDQo+ICsg ICAgd2l0aF90ZXN0X3ByZWZpeCAiY2hhbmdlIGZyYW1lIGZvciB0aHJlYWQgJHRociIgew0KPiAr CXN3aXRjaF90aHJlYWQgJHRocg0KPiArCWdkYl90ZXN0ICJmcmFtZSBbbGluZGV4ICRzcGVjIDFd IiAiLioiDQo+ICsJc2V0IGlkeCBbZXhwciAkdGhyIC0gMV0NCj4gKwlzZXQgZnJhbWVfaW5mbyBb bHJlcGxhY2UgJGZyYW1lX2luZm8gJGlkeCAkaWR4IFtsaW5kZXggJHNwZWMgMl1dDQo+ICsJdGVz dF9pbmZvX3RocmVhZHMgImluZm8gdGhyZWFkcyAjMyIgJGZyYW1lX2luZm8NCj4gKyAgICB9DQo+ ICt9DQo+ICsNCj4gKyMgU3RhcnQgYSBuZXcgaW5mZXJpb3IsIGFuZCBydW50byBtYWluLg0KPiAr Z2RiX3Rlc3QgImFkZC1pbmZlcmlvciIgIkFkZGVkIGluZmVyaW9yIDIgLioiIFwNCj4gKyAgICAi YWRkIGVtcHR5IGluZmVyaW9yIDIiDQo+ICtnZGJfdGVzdCAiaW5mZXJpb3IgMiIgIlN3aXRjaGlu ZyB0byBpbmZlcmlvciAyIC4qIiBcDQo+ICsgICAgInN3aXRjaCB0byBpbmZlcmlvciAyIg0KPiAr Z2RiX3Rlc3QgImZpbGUgJHtiaW5maWxlfSIgIi4qIiAibG9hZCBmaWxlIGluIGluZmVyaW9yIDIi DQo+ICsNCj4gK3dpdGhfdGVzdF9wcmVmaXggInN0YXJ0IGluZmVyaW9yIDIiIHsNCj4gKyAgICAj IERpc2FibGUgZGVsZXRpbmcgb2YgYnJlYWtwb2ludHMuDQo+ICsgICAgcHJvYyBkZWxldGVfYnJl YWtwb2ludHMge30ge30NCj4gKyAgICBydW50b19tYWluDQo+ICt9DQo+ICsNCj4gK3dpdGhfdGVz dF9wcmVmaXggInNldHVwIGluZmVyaW9yIDIiIHsNCj4gKyAgICBydW5fYWxsX3RocmVhZHNfdG9f YnJlYWtwb2ludA0KPiArICAgIHN3aXRjaF90b19hbmRfc3RvcF90aHJlYWRfMQ0KPiArfQ0KPiAr DQo+ICtzZXQgZnJhbWVfaW5mbyBbY29uY2F0ICRmcmFtZV9pbmZvIFtsaXN0ICIkaGV4IGluICR7 cHRocmVhZF9qb2luX3BhdHRlcm59IiBcDQo+ICsJCQkJCSJ0aHJlYWRfbGV2ZWxfNSIgXA0KPiAr CQkJCQkidGhyZWFkX2xldmVsXzUiIFwNCj4gKwkJCQkJInRocmVhZF9sZXZlbF81IiBdXQ0KPiAr dGVzdF9pbmZvX3RocmVhZHMgImluZm8gdGhyZWFkcyAjNCIgJGZyYW1lX2luZm8NCj4gKw0KPiAr IyBOb3cgbGV0cyBjaGFuZ2UgdGhlIG90aGVyIHRocmVhZHMsIG9uZSBhdCBhIHRpbWUsIGNoZWNr aW5nIHRoZQ0KPiArIyBvdXRwdXQgb2YgaW5mbyB0aHJlYWRzIGFmdGVyIGVhY2ggY2hhbmdlLg0K PiArZm9yZWFjaCBzcGVjIFtsaXN0IFtsaXN0IDIgMiAiJGhleCBpbiB0aHJlYWRfbGV2ZWxfMyJd IFwNCj4gKwkJICBbbGlzdCAzIDIgIiRoZXggaW4gdGhyZWFkX2xldmVsXzMiXSBcDQo+ICsJCSAg W2xpc3QgNCAyICIkaGV4IGluIHRocmVhZF9sZXZlbF8zIl0gXSB7DQo+ICsgICAgc2V0IHRociBb bGluZGV4ICRzcGVjIDBdDQo+ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAiY2hhbmdlIGZyYW1lIGZv ciB0aHJlYWQgJHRociIgew0KPiArCXN3aXRjaF90aHJlYWQgIjIuJHRociINCj4gKwlnZGJfdGVz dCAiZnJhbWUgW2xpbmRleCAkc3BlYyAxXSIgIi4qIg0KPiArCXNldCBpZHggW2V4cHIgNCArICR0 aHIgLSAxXQ0KPiArCXNldCBmcmFtZV9pbmZvIFtscmVwbGFjZSAkZnJhbWVfaW5mbyAkaWR4ICRp ZHggW2xpbmRleCAkc3BlYyAyXV0NCj4gKwl0ZXN0X2luZm9fdGhyZWFkcyAiaW5mbyB0aHJlYWRz ICM1IiAkZnJhbWVfaW5mbw0KPiArICAgIH0NCj4gK30NCj4gKw0KPiArIyBOb3cgc3RlcCBvbmUg b2YgdGhlIHRocmVhZHMuICBUaGUgdGhyZWFkIHRoYXQgaXMgc3RlcHBlZCBzaG91bGQNCj4gKyMg ZGlzY2FyZCBpdHMgc3RvcmVkIHNlbGVjdGVkIGZyYW1lLCBidXQgYWxsIG90aGVyIHRocmVhZHMg c2hvdWxkDQo+ICsjIHJldGFpbiB0aGVpciBzZWxlY3RlZCBmcmFtZS4NCj4gK3N3aXRjaF90aHJl YWQgIjIuMiINCj4gK2dkYl90ZXN0ICJzdGVwIiAiLioiIFwNCj4gKyAgICAic3RlcCBpbiB0aHJl YWQgMi4yIg0KPiArc2V0IGZyYW1lX2luZm8gW2xyZXBsYWNlICRmcmFtZV9pbmZvIDUgNSAidGhy ZWFkX2xldmVsXzUiXQ0KPiArdGVzdF9pbmZvX3RocmVhZHMgImluZm8gdGhyZWFkcyAjNiIgJGZy YW1lX2luZm8NCj4gKw0KPiArIyBTYW1lIGFnYWluIGZvciBhIHRocmVhZCBpbiBpbmZlcmlvciAj MS4NCj4gK3N3aXRjaF90aHJlYWQgIjEuMyINCj4gK2dkYl90ZXN0ICJzdGVwIiAiLioiIFwNCj4g KyAgICAic3RlcCBpbiB0aHJlYWQgMS4zIg0KPiArc2V0IGZyYW1lX2luZm8gW2xyZXBsYWNlICRm cmFtZV9pbmZvIDIgMiAidGhyZWFkX2xldmVsXzUiXQ0KPiArdGVzdF9pbmZvX3RocmVhZHMgImlu Zm8gdGhyZWFkcyAjNyIgJGZyYW1lX2luZm8NCj4gKw0KPiArIyBOb3cgc3dpdGNoIHRvIGFub3Ro ZXIgdGhyZWFkIHRoYXQgYWxyZWFkeSBoYXMgYSBmcmFtZSBvdGhlciB0aGFuIGl0cw0KPiArIyBp bm5lcm1vc3Qgc2VsZWN0ZWQuDQo+ICtzd2l0Y2hfdGhyZWFkICIxLjIiDQo+ICsNCj4gKyMgTm93 IGRpc2FibGUgcmVzdG9yaW5nIG9mIHRoZSBzZWxlY3RlZCBmcmFtZS4NCj4gK2dkYl90ZXN0X25v X291dHB1dCAic2V0IHJlc3RvcmUtc2VsZWN0ZWQtZnJhbWUgb2ZmIg0KPiArDQo+ICsjIEFuZCBj aGVjayB0byBzZWUgd2hpY2ggZnJhbWUgZWFjaCB0aHJlYWQgaGFzIHNlbGVjdGVkLiAgT3VyIGN1 cnJlbnQNCj4gKyMgdGhyZWFkIHNob3VsZG4ndCBjaGFuZ2UuDQo+ICtzZXQgZnJhbWVfaW5mbyBb bGlzdCAiJGhleCBpbiAke3B0aHJlYWRfam9pbl9wYXR0ZXJufSIgXA0KPiArCQkgICAgInRocmVh ZF93b3JrZXIiIFwNCj4gKwkJICAgICJ0aHJlYWRfbGV2ZWxfNSIgXA0KPiArCQkgICAgInRocmVh ZF9sZXZlbF81IiBcDQo+ICsJCSAgICAiJGhleCBpbiAke3B0aHJlYWRfam9pbl9wYXR0ZXJufSIg XA0KPiArCQkgICAgInRocmVhZF9sZXZlbF81IiBcDQo+ICsJCSAgICAidGhyZWFkX2xldmVsXzUi IFwNCj4gKwkJICAgICJ0aHJlYWRfbGV2ZWxfNSJdDQo+ICt0ZXN0X2luZm9fdGhyZWFkcyAiaW5m byB0aHJlYWRzICM4IiAkZnJhbWVfaW5mbw0KPiArDQo+ICsjIE5vdyBzd2l0Y2ggdG8gc29tZSBv dGhlciB0aHJlYWQsIGF0IHRoaXMgcG9pbnQgR0RCIHNob3VsZCBmb3JnZXQgdGhlDQo+ICsjIHNl bGVjdGVkIGZyYW1lIGZvciB0aHJlYWQgMS4yLg0KPiArc3dpdGNoX3RocmVhZCAiMS40Ig0KPiAr c2V0IGZyYW1lX2luZm8gW2xyZXBsYWNlICRmcmFtZV9pbmZvIDEgMSAidGhyZWFkX2xldmVsXzUi XQ0KPiArdGVzdF9pbmZvX3RocmVhZHMgImluZm8gdGhyZWFkcyAjOSIgJGZyYW1lX2luZm8NCj4g Kw0KPiArIyBBIG5ldyB0ZXN0IHRoYXQgd2lsbCBjb3ZlciAndGhyZWFkIGFwcGx5IGFsbCcuICBU aGlzIHRlc3QgZW5zdXJlcw0KPiArIyB0aGF0IGFueSBjaGFuZ2VzIHRvIHRoZSBzZWxlY3RlZCB0 aHJlYWQgaW4gJ3RocmVhZCBhcHBseSBhbGwnIGFyZQ0KPiArIyBzdGlja3kgb3V0c2lkZSBvZiB0 aGUgJ3RocmVhZCBhcHBseSBhbGwnLg0KPiArd2l0aF90ZXN0X3ByZWZpeCAidGhyIGFwcGx5IGFs bCIgew0KPiArICAgIGNsZWFuX3Jlc3RhcnQgJGJpbmZpbGUNCj4gKyAgICBzZXR1cF9mb3JfdGVz dA0KPiArDQo+ICsgICAgIyBNb3ZlIGFsbCB0aHJlYWRzIHVwIGEgZnJhbWUuDQo+ICsgICAgZ2Ri X3Rlc3QgInRocmVhZCBhcHBseSBhbGwgLS0gdXAiICIuKiIgXA0KPiArCSJhbGwgdGhyZWFkcyB1 cCwgZmlyc3QgdGltZSINCj4gKyAgICBzZXQgZnJhbWVfaW5mbyBbbGlzdCAiJGhleCBpbiBtYWlu IiBcDQo+ICsJCQkiJGhleCBpbiB0aHJlYWRfbGV2ZWxfNCIgXA0KPiArCQkJIiRoZXggaW4gdGhy ZWFkX2xldmVsXzQiIFwNCj4gKwkJCSIkaGV4IGluIHRocmVhZF9sZXZlbF80IiBdDQo+ICsgICAg dGVzdF9pbmZvX3RocmVhZHMgImluZm8gdGhyZWFkcyAjMTAiICRmcmFtZV9pbmZvDQo+ICsNCj4g KyAgICAjIE1vdmUgZXZlcnkgdGhyZWFkIGJhY2sgdG8gZnJhbWUgMC4NCj4gKyAgICBnZGJfdGVz dCAidGhyZWFkIGFwcGx5IGFsbCAtLSBmcmFtZSAwIiAiLioiDQo+ICsgICAgc2V0IGZyYW1lX2lu Zm8gW2xpc3QgIiRoZXggaW4gJHtwdGhyZWFkX2pvaW5fcGF0dGVybn0iIFwNCj4gKwkJCSJ0aHJl YWRfbGV2ZWxfNSIgXA0KPiArCQkJInRocmVhZF9sZXZlbF81IiBcDQo+ICsJCQkidGhyZWFkX2xl dmVsXzUiIF0NCj4gKyAgICB0ZXN0X2luZm9fdGhyZWFkcyAiaW5mbyB0aHJlYWRzICMxMSIgJGZy YW1lX2luZm8NCj4gKw0KPiArICAgICMgRGlzYWJsZSByZXN0b3JpbmcgdGhlIGN1cnJlbnQgZnJh bWUuDQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVzdG9yZS1zZWxlY3RlZC1mcmFt ZSBvZmYiDQo+ICsNCj4gKyAgICAjIE1vdmUgYWxsIHRocmVhZHMgdXAgYSBmcmFtZSwgbm8gZnJh bWUgc2hvdWxkIGNoYW5nZSBhZnRlciB0aGlzDQo+ICsgICAgIyB0aG91Z2guDQo+ICsgICAgZ2Ri X3Rlc3QgInRocmVhZCBhcHBseSBhbGwgLS0gdXAiICIuKiIgXA0KPiArCSJhbGwgdGhyZWFkcyB1 cCwgc2Vjb25kIHRpbWUiDQo+ICsgICAgc2V0IGZyYW1lX2luZm8gW2xpc3QgIiRoZXggaW4gJHtw dGhyZWFkX2pvaW5fcGF0dGVybn0iIFwNCj4gKwkJCSJ0aHJlYWRfbGV2ZWxfNSIgXA0KPiArCQkJ InRocmVhZF9sZXZlbF81IiBcDQo+ICsJCQkidGhyZWFkX2xldmVsXzUiIF0NCj4gKyAgICB0ZXN0 X2luZm9fdGhyZWFkcyAiaW5mbyB0aHJlYWRzICMxMiIgJGZyYW1lX2luZm8NCj4gK30NCj4gZGlm ZiAtLWdpdCBhL2dkYi90aHJlYWQuYyBiL2dkYi90aHJlYWQuYw0KPiBpbmRleCA4NTZiZGVlOTdi My4uNjMyNjEyNDdlMTkgMTAwNjQ0DQo+IC0tLSBhL2dkYi90aHJlYWQuYw0KPiArKysgYi9nZGIv dGhyZWFkLmMNCj4gQEAgLTcyMSw3ICs3MjEsNyBAQCB0aHJlYWRfYWxpdmUgKHRocmVhZF9pbmZv ICp0cCkNCj4gICAgIHN3aXRjaGVkLCBmYWxzZSBvdGhlcndpc2UuICAqLw0KPiANCj4gIHN0YXRp YyBib29sDQo+IC1zd2l0Y2hfdG9fdGhyZWFkX2lmX2FsaXZlICh0aHJlYWRfaW5mbyAqdGhyKQ0K PiArc3dpdGNoX3RvX3RocmVhZF9pZl9hbGl2ZSAodGhyZWFkX2luZm8gKnRociwgYm9vbCByZXN0 b3JlX3ByZXZpb3VzX2ZyYW1lKQ0KPiAgew0KPiAgICBzY29wZWRfcmVzdG9yZV9jdXJyZW50X3Ro cmVhZCByZXN0b3JlX3RocmVhZDsNCj4gDQo+IEBAIC03MzEsNyArNzMxLDcgQEAgc3dpdGNoX3Rv X3RocmVhZF9pZl9hbGl2ZSAodGhyZWFkX2luZm8gKnRocikNCj4gDQo+ICAgIGlmICh0aHJlYWRf YWxpdmUgKHRocikpDQo+ICAgICAgew0KPiAtICAgICAgc3dpdGNoX3RvX3RocmVhZCAodGhyKTsN Cj4gKyAgICAgIHN3aXRjaF90b190aHJlYWQgKHRociwgcmVzdG9yZV9wcmV2aW91c19mcmFtZSk7 DQo+ICAgICAgICByZXN0b3JlX3RocmVhZC5kb250X3Jlc3RvcmUgKCk7DQo+ICAgICAgICByZXR1 cm4gdHJ1ZTsNCj4gICAgICB9DQo+IEBAIC05MDMsNyArOTAzLDEwIEBAIHNldF9leGVjdXRpbmdf dGhyZWFkICh0aHJlYWRfaW5mbyAqdGhyLCBib29sIGV4ZWN1dGluZykNCj4gIHsNCj4gICAgdGhy LT5leGVjdXRpbmcgPSBleGVjdXRpbmc7DQo+ICAgIGlmIChleGVjdXRpbmcpDQo+IC0gICAgdGhy LT5zdXNwZW5kLnN0b3BfcGMgPSB+KENPUkVfQUREUikgMDsNCj4gKyAgICB7DQo+ICsgICAgICB0 aHItPnN1c3BlbmQuc3RvcF9wYyA9IH4oQ09SRV9BRERSKSAwOw0KPiArICAgICAgdGhyLT5zZWxl Y3RlZF9mcmFtZV9sZXZlbCA9IC0xOw0KPiArICAgIH0NCj4gIH0NCj4gDQo+ICB2b2lkDQo+IEBA IC0xMDY2LDYgKzEwNjksMjMgQEAgdGhyZWFkX3RhcmdldF9pZF9zdHIgKHRocmVhZF9pbmZvICp0 cCkNCj4gICAgICByZXR1cm4gdGFyZ2V0X2lkOw0KPiAgfQ0KPiANCj4gKy8qIFdoZW4gdGhpcyBp cyB0cnVlLCBHREIgcmVzdG9yZSB0aGUgdGhyZWFkJ3MgcHJldmlvdXNseSBzZWxlY3RlZCBmcmFt ZQ0KDQoicmVzdG9yZSIgLT4gInJlc3RvcmVzIg0KDQpSZWdhcmRzDQotQmFyaXMNCg0KDQoNCklu dGVsIERldXRzY2hsYW5kIEdtYkgKUmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBDYW1wZW9uIDEwLTEy LCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkKVGVsOiArNDkgODkgOTkgODg1My0wLCB3d3cuaW50 ZWwuZGUKTWFuYWdpbmcgRGlyZWN0b3JzOiBDaHJpc3RpbiBFaXNlbnNjaG1pZCwgR2FyeSBLZXJz aGF3CkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29yeSBCb2FyZDogTmljb2xlIExhdQpSZWdp c3RlcmVkIE9mZmljZTogTXVuaWNoCkNvbW1lcmNpYWwgUmVnaXN0ZXI6IEFtdHNnZXJpY2h0IE11 ZW5jaGVuIEhSQiAxODY5MjgK