From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 33281 invoked by alias); 22 Nov 2018 16:54:38 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 32714 invoked by uid 89); 22 Nov 2018 16:54:37 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=leaf, Identification, Das, offending X-HELO: EUR04-HE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr70084.outbound.protection.outlook.com (HELO EUR04-HE1-obe.outbound.protection.outlook.com) (40.107.7.84) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 Nov 2018 16:54:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fx7XMjCct7LLQE4iuMIFv2rxZEVqpyPQoel8sL1uZZY=; b=LV+LhInFIIFtwLOnBqpjEAZ2QKOloK33XviXuB9c3GgJykquMtDYhKZFxw+M1Bidz+NNK4/vDKgyyaLnhoXCtU/YvMf+GCPg23Jd1xe6BbfLPgpK6Vj19mom+B910vXaTfsD6Lj+vEiThbnWe07Eo1YDc0bsn/poc1tf5ohr5YM= Received: from VI1PR08MB3440.eurprd08.prod.outlook.com (20.177.59.18) by VI1PR08MB3008.eurprd08.prod.outlook.com (52.133.14.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1339.28; Thu, 22 Nov 2018 16:54:29 +0000 Received: from VI1PR08MB3440.eurprd08.prod.outlook.com ([fe80::2d57:50ea:a917:9c2e]) by VI1PR08MB3440.eurprd08.prod.outlook.com ([fe80::2d57:50ea:a917:9c2e%2]) with mapi id 15.20.1339.029; Thu, 22 Nov 2018 16:54:29 +0000 From: Sam Tebbs To: Sudakshina Das , "gcc-patches@gcc.gnu.org" CC: Richard Earnshaw , Marcus Shawcroft , James Greenhalgh , nd Subject: Re: [PATCH 2/3][GCC][AARCH64] Add new -mbranch-protection option to combine pointer signing and BTI Date: Thu, 22 Nov 2018 16:54:00 -0000 Message-ID: <6a0accfc-8def-baca-9fe8-da357b0e15bf@arm.com> References: <67f1be3b-0010-880e-4c81-a3781851b94b@arm.com> In-Reply-To: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Sam.Tebbs@arm.com; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) Content-Type: multipart/mixed; boundary="_002_6a0accfc8defbaca9fe8da357b0e15bfarmcom_" MIME-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2018-11/txt/msg01943.txt.bz2 --_002_6a0accfc8defbaca9fe8da357b0e15bfarmcom_ Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Content-length: 5913 DQpPbiAxMS8xMi8xOCA2OjI0IFBNLCBTdWRha3NoaW5hIERhcyB3cm90ZToN Cj4gSGkgU2FtDQo+DQo+IE9uIDAyLzExLzE4IDE3OjMxLCBTYW0gVGViYnMg d3JvdGU6DQo+PiBIaSBhbGwsDQo+Pg0KPj4gVGhlIC1tYnJhbmNoLXByb3Rl Y3Rpb24gb3B0aW9uIGNvbWJpbmVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mDQo+ PiAtbXNpZ24tcmV0dXJuLWFkZHJlc3MgYW5kIHRoZSBCVEkgZmVhdHVyZXMg bmV3IGluIEFybXY4LjUgdG8gYmV0dGVyIHJlZmxlY3QNCj4+IHRoZWlyIHJl bGF0aW9uc2hpcC4gVGhpcyBuZXcgb3B0aW9uIHRoZXJlZm9yZSBzdXBlcnNl ZGVzIGFuZCBkZXByZWNhdGVzIHRoZQ0KPj4gZXhpc3RpbmcgLW1zaWduLXJl dHVybi1hZGRyZXNzIG9wdGlvbi4NCj4+DQo+PiAtbWJyYW5jaC1wcm90ZWN0 aW9uPVtub25lfHN0YW5kYXJkfDx0eXBlcz5dIC0gVHVybnMgb24gZGlmZmVy ZW50IHR5cGVzIG9mIGJyYW5jaA0KPj4gcHJvdGVjdGlvbiBhdmFpbGFibGUg d2hlcmU6DQo+Pg0KPj4gICAgICAgICogIm5vbmUiOiBUdXJuIG9mIGFsbCB0 eXBlcyBvZiBicmFuY2ggcHJvdGVjdGlvbg0KPj4gICAgICAgICogInN0YW5k YXJkIiA6IFR1cm5zIG9uIGFsbCB0aGUgdHlwZXMgb2YgcHJvdGVjdGlvbiB0 byB0aGVpciByZXNwZWN0aXZlDQo+PiAgICAgICAgICBzdGFuZGFyZCBsZXZl bHMuDQo+PiAgICAgICAgKiA8dHlwZXM+IGNhbiBiZSAiKyIgc2VwYXJhdGVk IHByb3RlY3Rpb24gdHlwZXM6DQo+Pg0KPj4gICAgICAgIAkqICJidGkiIDog QnJhbmNoIFRhcmdldCBJZGVudGlmaWNhdGlvbiBNZWNoYW5pc20uDQo+PiAJ KiAicGFjLXJldHsrbGVhZitiLWtleX0iOiBSZXR1cm4gQWRkcmVzcyBTaWdu aW5nLiBUaGUgZGVmYXVsdCByZXR1cm4NCj4+IAkgIGFkZHJlc3Mgc2lnbmlu ZyBpcyBlbmFibGVkIGJ5IHNpZ25pbmcgZnVuY3Rpb25zIHRoYXQgc2F2ZSB0 aGUgcmV0dXJuDQo+PiAJICBhZGRyZXNzIHRvIG1lbW9yeSAobm9uLWxlYWYg ZnVuY3Rpb25zIHdpbGwgcHJhY3RpY2FsbHkgYWx3YXlzIGRvIHRoaXMpDQo+ PiAJICB1c2luZyB0aGUgYS1rZXkuIFRoZSBvcHRpb25hbCB0dW5pbmcgYXJn dW1lbnRzIGFsbG93IHRoZSB1c2VyIHRvDQo+PiAJICBleHRlbmQgdGhlIHNj b3BlIG9mIHJldHVybiBhZGRyZXNzIHNpZ25pbmcgdG8gaW5jbHVkZSBsZWFm IGZ1bmN0aW9ucw0KPj4gCSAgYW5kIHRvIGNoYW5nZSB0aGUga2V5IHRvIGIt a2V5LiBUaGUgdHVuaW5nIGFyZ3VtZW50cyBtdXN0IHByb2NlZWQgdGhlDQo+ PiAJICBwcm90ZWN0aW9uIHR5cGUgInBhYy1yZXQiLg0KPj4NCj4+IFRodXMg LW1icmFuY2gtcHJvdGVjdGlvbj1zdGFuZGFyZCAtPiAtbWJyYW5jaC1wcm90 ZWN0aW9uPWJ0aStwYWMtcmV0Lg0KPj4NCj4+IEl0cyBtYXBwaW5nIHRvIC1t c2lnbi1yZXR1cm4tYWRkcmVzcyBpcyBhcyBmb2xsb3dzOg0KPj4NCj4+ICAg ICAgICAqIC1tYnJhbmNoLXByb3RlY3Rpb249bm9uZSAtPiAtbXNpZ24tcmV0 dXJuLWFkZHJlc3M9bm9uZQ0KPj4gICAgICAgICogLW1icmFuY2gtcHJvdGVj dGlvbj1zdGFuZGFyZCAtPiAtbXNpZ24tcmV0dXJuLWFkZHJlc3M9bGVhZg0K Pj4gICAgICAgICogLW1icmFuY2gtcHJvdGVjdGlvbj1wYWMtcmV0IC0+IC1t c2lnbi1yZXR1cm4tYWRkcmVzcz1ub24tbGVhZg0KPj4gICAgICAgICogLW1i cmFuY2gtcHJvdGVjdGlvbj1wYWMtcmV0K2xlYWYgLT4gLW1zaWduLXJldHVy bi1hZGRyZXNzPWFsbA0KPj4NCj4+IFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0 aGUgb3B0aW9uJ3Mgc2tlbGV0b24gYW5kIHRoZSAibm9uZSIsICJzdGFuZGFy ZCIgYW5kDQo+PiAicGFjLXJldCIgdHlwZXMgKGFsb25nIHdpdGggaXRzICJs ZWFmIiBzdWJ0eXBlKS4NCj4+DQo+PiBUaGUgcHJldmlvdXMgcGF0Y2ggaW4g dGhpcyBzZXJpZXMgaXMgaGVyZToNCj4+IGh0dHBzOi8vZ2NjLmdudS5vcmcv bWwvZ2NjLXBhdGNoZXMvMjAxOC0xMS9tc2cwMDEwMy5odG1sDQo+Pg0KPj4g Qm9vdHN0cmFwcGVkIHN1Y2Nlc3NmdWxseSBhbmQgdGVzdGVkIG9uIGFhcmNo NjQtbm9uZS1lbGYgd2l0aCBubyByZWdyZXNzaW9ucy4NCj4+DQo+PiBPSyBm b3IgdHJ1bms/DQo+Pg0KPiBUaGFuayBmb3IgZG9pbmcgdGhpcy4gSSBhbSBu b3QgYSBtYWludGFpbmVyIHNvIHlvdSB3aWxsIG5lZWQgYQ0KPiBtYWludGFp bmVyJ3MgYXBwcm92YWwuIE9ubHkgbml0LCB0aGF0IEkgd291bGQgYWRkIGlz IHRoYXQgaXQgd291bGQNCj4gYmUgZ29vZCB0byBoYXZlIG1vcmUgdGVzdCBj b3ZlcmFnZSwgc3BlY2lhbGx5IGZvciB0aGUgbmV3IHBhcnNpbmcNCj4gZnVu Y3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGFkZGVkIGFuZCB0aGUgZXJyb3JzIHRo YXQgYXJlIGFkZGVkLg0KPg0KPiBFeGFtcGxlIGNoZWNraW5nIGEgZmV3IHZh bGlkIGFuZCBpbnZhbGlkIGNvbWJpbmF0aW9ucyBvZiB0aGUgb3B0aW9ucw0K PiBsaWtlOg0KPiAtbWJyYW5jaC1wcm90ZWN0aW9uPXBhYy1yZXQgLW1icmFu Y2gtcHJvdGVjdGlvbj1ub25lIC8vZGlzYWJsZXMNCj4gZXZlcnl0aGluZw0K PiAtbWJyYW5jaC1wcm90ZWN0aW9uPWxlYWYgIC8vZXJyb3JzIG91dA0KPiAt bWJyYW5jaC1wcm90ZWN0aW9uPW5vbmUrcGFjLXJldCAvL2Vycm9ycyBvdXQN Cj4gLi4uIGV0Yw0KPiBBbHNvIGluc3RlYWQgb2YgcmVtb3ZpbmcgYWxsIHRo ZSBvbGQgZGVwcmVjYXRlZCBvcHRpb25zLCB5b3UgY2FuIGtlZXANCj4gb25l IChvciBhIGNvcHkgb2Ygb25lKSB0byBjaGVjayBmb3IgdGhlIGRlcHJlY2F0 ZWQgd2FybmluZy4NCg0KSGkgU3VkaSwNCg0KVGhhbmtzIGZvciB0aGUgZmVl ZGJhY2ssIEkndmUgaW5jb3Jwb3JhdGVkIHlvdXIgc3VnZ2VzdGlvbnMgaW50 byB0aGUgDQphdHRhY2hlZCBwYXRjaCBhbmQgdGhlIHVwZGF0ZWQgY2hhbmdl bG9nLg0KDQpnY2MvQ2hhbmdlTG9nOg0KDQoyMDE4LTExLTIyICBTYW0gVGVi YnM8c2FtLnRlYmJzQGFybS5jb20+DQoNCgkqIGNvbmZpZy9hYXJjaDY0L2Fh cmNoNjQuYyAoQlJBTkNIX1BST1RFQ19TVFJfTUFYLA0KCWFhcmNoNjRfcGFy c2VfYnJhbmNoX3Byb3RlY3Rpb24sDQoJc3RydWN0IGFhcmNoNjRfYnJhbmNo X3Byb3RlY190eXBlLA0KCWFhcmNoNjRfaGFuZGxlX25vX2JyYW5jaF9wcm90 ZWN0aW9uLA0KCWFhcmNoNjRfaGFuZGxlX3N0YW5kYXJkX2JyYW5jaF9wcm90 ZWN0aW9uLA0KCWFhcmNoNjRfdmFsaWRhdGVfbWJyYW5jaF9wcm90ZWN0aW9u LA0KCWFhcmNoNjRfaGFuZGxlX3BhY19yZXRfcHJvdGVjdGlvbiwNCglhYXJj aDY0X2hhbmRsZV9hdHRyX2JyYW5jaF9wcm90ZWN0aW9uLA0KCWFjY2VwdGVk X2JyYW5jaF9wcm90ZWN0aW9uX3N0cmluZywNCglhYXJjaDY0X3BhY19yZXRf c3VidHlwZXMsDQoJYWFyY2g2NF9icmFuY2hfcHJvdGVjX3R5cGVzLA0KCWFh cmNoNjRfaGFuZGxlX3BhY19yZXRfbGVhZik6IERlZmluZS4NCgkoYWFyY2g2 NF9vdmVycmlkZV9vcHRpb25zX2FmdGVyX2NoYW5nZV8xKTogQWRkIGNoZWNr IGZvcg0KCWFjY2VwdGVkX2JyYW5jaF9wcm90ZWN0aW9uX3N0cmluZy4NCgko YWFyY2g2NF9vdmVycmlkZV9vcHRpb25zKTogQWRkIGNoZWNrIGZvcg0KCWFj Y2VwdGVkX2JyYW5jaF9wcm90ZWN0aW9uX3N0cmluZy4NCgkoYWFyY2g2NF9v cHRpb25fc2F2ZSk6IFNhdmUgYWNjZXB0ZWRfYnJhbmNoX3Byb3RlY3Rpb25f c3RyaW5nLg0KCShhYXJjaDY0X29wdGlvbl9yZXN0b3JlKTogU2F2ZQ0KCWFj Y2VwdGVkX2JyYW5jaF9wcm90ZWN0aW9uX3N0cmluZy4NCgkqIGNvbmZpZy9h YXJjaDY0L2FhcmNoNjQuYyAoYWFyY2g2NF9hdHRyaWJ1dGVzKTogQWRkIGJy YW5jaC1wcm90ZWN0aW9uLg0KCSogY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5v cHQ6IEFkZCBtYnJhbmNoLXByb3RlY3Rpb24uIERlcHJlY2F0ZQ0KCW1zaWdu LXJldHVybi1hZGRyZXNzLg0KCSogZG9jL2ludm9rZS50ZXhpOiBBZGQgbWJy YW5jaC1wcm90ZWN0aW9uLg0KDQpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoN Cg0KMjAxOC0xMS0yMiAgU2FtIFRlYmJzPHNhbS50ZWJic0Bhcm0uY29tPg0K DQoJKiAoZ2NjLnRhcmdldC9hYXJjaDY0L3JldHVybl9hZGRyZXNzX3NpZ25f MS5jLA0KCWdjYy50YXJnZXQvYWFyY2g2NC9yZXR1cm5fYWRkcmVzc19zaWdu XzIuYywNCglnY2MudGFyZ2V0L2FhcmNoNjQvcmV0dXJuX2FkZHJlc3Nfc2ln bl8zLmMgKF9fYXR0cmlidXRlX18pKTogQ2hhbmdlDQoJb3B0aW9uIHRvIC1t YnJhbmNoLXByb3RlY3Rpb24uDQoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvKGJy YW5jaC1wcm90ZWN0aW9uLW9wdGlvbi5jLA0KCWJyYW5jaC1wcm90ZWN0aW9u LW9wdGlvbi0yLmMsIGJyYW5jaC1wcm90ZWN0aW9uLWF0dHIuYywNCglicmFu Y2gtcHJvdGVjdGlvbi1hdHRyLTIuYyk6IE5ldyBmaWxlLg0KDQoNCg== --_002_6a0accfc8defbaca9fe8da357b0e15bfarmcom_ Content-Type: text/plain; name="diff" Content-Description: diff Content-Disposition: attachment; filename="diff"; size=18945; creation-date="Thu, 22 Nov 2018 16:54:28 GMT"; modification-date="Thu, 22 Nov 2018 16:54:28 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 25681 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmMgYi9n Y2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jCmluZGV4IDBkODliYTI3ZTRh N2EwMjkwM2Q2Y2IzZGU2YzE5YjA5N2NiODRkMTYuLmM5MzhjZGY5M2YyNTU5 NDk5NjlhN2ZlN2E0ZjhhMmMxOGJmYTYxMTUgMTAwNjQ0Ci0tLSBhL2djYy9j b25maWcvYWFyY2g2NC9hYXJjaDY0LmMKKysrIGIvZ2NjL2NvbmZpZy9hYXJj aDY0L2FhcmNoNjQuYwpAQCAtMTgzLDYgKzE4MywxMiBAQCBib29sIGFhcmNo NjRfcGNyZWxhdGl2ZV9saXRlcmFsX2xvYWRzOwogLyogR2xvYmFsIGZsYWcg Zm9yIHdoZXRoZXIgZnJhbWUgcG9pbnRlciBpcyBlbmFibGVkLiAgKi8KIGJv b2wgYWFyY2g2NF91c2VfZnJhbWVfcG9pbnRlcjsKIAorI2RlZmluZSBCUkFO Q0hfUFJPVEVDX1NUUl9NQVggMjU1CitjaGFyICphY2NlcHRlZF9icmFuY2hf cHJvdGVjdGlvbl9zdHJpbmcgPSBOVUxMOworCitzdGF0aWMgZW51bSBhYXJj aDY0X3BhcnNlX29wdF9yZXN1bHQKK2FhcmNoNjRfcGFyc2VfYnJhbmNoX3By b3RlY3Rpb24gKGNvbnN0IGNoYXIqLCBjaGFyKiopOworCiAvKiBTdXBwb3J0 IGZvciBjb21tYW5kIGxpbmUgcGFyc2luZyBvZiBib29sZWFuIGZsYWdzIGlu IHRoZSB0dW5pbmcKICAgIHN0cnVjdHVyZXMuICAqLwogc3RydWN0IGFhcmNo NjRfZmxhZ19kZXNjCkBAIC0xMTA4LDYgKzExMTQsODAgQEAgYWFyY2g2NF9j YzsKIAogI2RlZmluZSBBQVJDSDY0X0lOVkVSU0VfQ09ORElUSU9OX0NPREUo WCkgKChhYXJjaDY0X2NjKSAoKChpbnQpIFgpIF4gMSkpCiAKK3N0cnVjdCBh YXJjaDY0X2JyYW5jaF9wcm90ZWNfdHlwZQoreworICAvKiBUaGUgdHlwZSdz IG5hbWUgdGhhdCB0aGUgdXNlciBwYXNzZXMgdG8gdGhlIGJyYW5jaC1wcm90 ZWN0aW9uIG9wdGlvbgorICAgIHN0cmluZy4gICovCisgIGNvbnN0IGNoYXIq IG5hbWU7CisgIC8qIEZ1bmN0aW9uIHRvIGhhbmRsZSB0aGUgcHJvdGVjdGlv biB0eXBlIGFuZCBzZXQgZ2xvYmFsIHZhcmlhYmxlcy4KKyAgICBGaXJzdCBh cmd1bWVudCBpcyB0aGUgc3RyaW5nIHRva2VuIGNvcnJlc3BvbmRpbmcgd2l0 aCB0aGlzIHR5cGUgYW5kIHRoZQorICAgIHNlY29uZCBhcmd1bWVudCBpcyB0 aGUgbmV4dCB0b2tlbiBpbiB0aGUgb3B0aW9uIHN0cmluZy4KKyAgICBSZXR1 cm4gdmFsdWVzOgorICAgICogQUFSQ0g2NF9QQVJTRV9PSzogSGFuZGxpbmcg d2FzIHN1Y2Vzc2Z1bC4KKyAgICAqIEFBUkNINjRfSU5WQUxJRF9BUkc6IFRo ZSB0eXBlIGlzIGludmFsaWQgaW4gdGhpcyBjb250ZXh0IGFuZCB0aGUgY2Fs bGVyCisgICAgICBzaG91bGQgcHJpbnQgYW4gZXJyb3IuCisgICAgKiBBQVJD SDY0X0lOVkFMSURfRkVBVFVSRTogVGhlIHR5cGUgaXMgaW52YWxpZCBhbmQg dGhlIGhhbmRsZXIgcHJpbnRzIGl0cworICAgICAgb3duIGVycm9yLiAgKi8K KyAgZW51bSBhYXJjaDY0X3BhcnNlX29wdF9yZXN1bHQgKCpoYW5kbGVyKShj aGFyKiwgY2hhciopOworICAvKiBBIGxpc3Qgb2YgdHlwZXMgdGhhdCBjYW4g Zm9sbG93IHRoaXMgdHlwZSBpbiB0aGUgb3B0aW9uIHN0cmluZy4gICovCisg IGNvbnN0IGFhcmNoNjRfYnJhbmNoX3Byb3RlY190eXBlKiBzdWJ0eXBlczsK KyAgdW5zaWduZWQgaW50IG51bV9zdWJ0eXBlczsKK307CisKK3N0YXRpYyBl bnVtIGFhcmNoNjRfcGFyc2Vfb3B0X3Jlc3VsdAorYWFyY2g2NF9oYW5kbGVf bm9fYnJhbmNoX3Byb3RlY3Rpb24gKGNoYXIqIHN0ciBBVFRSSUJVVEVfVU5V U0VELCBjaGFyKiByZXN0KQoreworICBhYXJjaDY0X3JhX3NpZ25fc2NvcGUg PSBBQVJDSDY0X0ZVTkNUSU9OX05PTkU7CisgIGlmIChyZXN0KQorICAgIHsK KyAgICAgIGVycm9yICgidW5leHBlY3RlZCAlPCVzJT4gYWZ0ZXIgJTwlcyU+ IiwgcmVzdCwgc3RyKTsKKyAgICAgIHJldHVybiBBQVJDSDY0X1BBUlNFX0lO VkFMSURfRkVBVFVSRTsKKyAgICB9CisgIHJldHVybiBBQVJDSDY0X1BBUlNF X09LOworfQorCitzdGF0aWMgZW51bSBhYXJjaDY0X3BhcnNlX29wdF9yZXN1 bHQKK2FhcmNoNjRfaGFuZGxlX3N0YW5kYXJkX2JyYW5jaF9wcm90ZWN0aW9u IChjaGFyKiBzdHIgQVRUUklCVVRFX1VOVVNFRCwKKwkJCQkJICAgIGNoYXIq IHJlc3QgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgYWFyY2g2NF9yYV9zaWdu X3Njb3BlID0gQUFSQ0g2NF9GVU5DVElPTl9OT05fTEVBRjsKKyAgaWYgKHJl c3QpCisgICAgeworICAgICAgZXJyb3IgKCJ1bmV4cGVjdGVkICU8JXMlPiBh ZnRlciAlPCVzJT4iLCByZXN0LCBzdHIpOworICAgICAgcmV0dXJuIEFBUkNI NjRfUEFSU0VfSU5WQUxJRF9GRUFUVVJFOworICAgIH0KKyAgcmV0dXJuIEFB UkNINjRfUEFSU0VfT0s7Cit9CisKK3N0YXRpYyBlbnVtIGFhcmNoNjRfcGFy c2Vfb3B0X3Jlc3VsdAorYWFyY2g2NF9oYW5kbGVfcGFjX3JldF9wcm90ZWN0 aW9uIChjaGFyKiBzdHIgQVRUUklCVVRFX1VOVVNFRCwKKwkJCQkgICAgY2hh ciogcmVzdCBBVFRSSUJVVEVfVU5VU0VEKQoreworICBhYXJjaDY0X3JhX3Np Z25fc2NvcGUgPSBBQVJDSDY0X0ZVTkNUSU9OX05PTl9MRUFGOworICByZXR1 cm4gQUFSQ0g2NF9QQVJTRV9PSzsKK30KKworc3RhdGljIGVudW0gYWFyY2g2 NF9wYXJzZV9vcHRfcmVzdWx0CithYXJjaDY0X2hhbmRsZV9wYWNfcmV0X2xl YWYgKGNoYXIqIHN0ciBBVFRSSUJVVEVfVU5VU0VELAorCQkJICAgICAgY2hh ciogcmVzdCBBVFRSSUJVVEVfVU5VU0VEKQoreworICBhYXJjaDY0X3JhX3Np Z25fc2NvcGUgPSBBQVJDSDY0X0ZVTkNUSU9OX0FMTDsKKyAgcmV0dXJuIEFB UkNINjRfUEFSU0VfT0s7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWFy Y2g2NF9icmFuY2hfcHJvdGVjX3R5cGUgYWFyY2g2NF9wYWNfcmV0X3N1YnR5 cGVzW10gPSB7CisgIHsgImxlYWYiLCBhYXJjaDY0X2hhbmRsZV9wYWNfcmV0 X2xlYWYsIE5VTEwsIDAgfSwKKyAgeyBOVUxMLCBOVUxMLCBOVUxMLCAwIH0K K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWFyY2g2NF9icmFuY2hfcHJv dGVjX3R5cGUgYWFyY2g2NF9icmFuY2hfcHJvdGVjX3R5cGVzW10gPSB7Cisg IHsgIm5vbmUiLCBhYXJjaDY0X2hhbmRsZV9ub19icmFuY2hfcHJvdGVjdGlv biwgTlVMTCwgMCB9LAorICB7ICJzdGFuZGFyZCIsIGFhcmNoNjRfaGFuZGxl X3N0YW5kYXJkX2JyYW5jaF9wcm90ZWN0aW9uLCBOVUxMLCAwIH0sCisgIHsg InBhYy1yZXQiLCBhYXJjaDY0X2hhbmRsZV9wYWNfcmV0X3Byb3RlY3Rpb24s IGFhcmNoNjRfcGFjX3JldF9zdWJ0eXBlcywKKyAgICBzaXplb2YgKGFhcmNo NjRfcGFjX3JldF9zdWJ0eXBlcykgLyBzaXplb2YgKGFhcmNoNjRfYnJhbmNo X3Byb3RlY190eXBlKSB9LAorICB7IE5VTEwsIE5VTEwsIE5VTEwsIDAgfQor fTsKKwogLyogVGhlIGNvbmRpdGlvbiBjb2RlcyBvZiB0aGUgcHJvY2Vzc29y LCBhbmQgdGhlIGludmVyc2UgZnVuY3Rpb24uICAqLwogc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBhYXJjaDY0X2NvbmRpdGlvbl9jb2Rlc1tdID0KIHsK QEAgLTEwODg2LDYgKzEwOTY2LDEyIEBAIGFhcmNoNjRfcGFyc2Vfb3ZlcnJp ZGVfc3RyaW5nIChjb25zdCBjaGFyKiBpbnB1dF9zdHJpbmcsCiBzdGF0aWMg dm9pZAogYWFyY2g2NF9vdmVycmlkZV9vcHRpb25zX2FmdGVyX2NoYW5nZV8x IChzdHJ1Y3QgZ2NjX29wdGlvbnMgKm9wdHMpCiB7CisgIGlmIChhY2NlcHRl ZF9icmFuY2hfcHJvdGVjdGlvbl9zdHJpbmcpCisgICAgeworICAgICAgb3B0 cy0+eF9hYXJjaDY0X2JyYW5jaF9wcm90ZWN0aW9uX3N0cmluZworCT0geHN0 cmR1cCAoYWNjZXB0ZWRfYnJhbmNoX3Byb3RlY3Rpb25fc3RyaW5nKTsKKyAg ICB9CisKICAgLyogUFIgNzAwNDQ6IFdlIGhhdmUgdG8gYmUgY2FyZWZ1bCBh Ym91dCBiZWluZyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZm9yIHRoZQogICAg ICBzYW1lIGZ1bmN0aW9uLiAgVGhpcyBtZWFucyBhbGwgY2hhbmdlcyBzaG91 bGQgYmUgcmVwZWF0YWJsZS4gICovCiAKQEAgLTExMTcxLDYgKzExMjU3LDEx MCBAQCBhYXJjaDY0X3ZhbGlkYXRlX21jcHUgKGNvbnN0IGNoYXIgKnN0ciwg Y29uc3Qgc3RydWN0IHByb2Nlc3NvciAqKnJlcywKICAgcmV0dXJuIGZhbHNl OwogfQogCisvKiBQYXJzZXMgQ09OU1RfU1RSIGZvciBicmFuY2ggcHJvdGVj dGlvbiBmZWF0dXJlcyBzcGVjaWZpZWQgaW4KKyAgIGFhcmNoNjRfYnJhbmNo X3Byb3RlY190eXBlcywgYW5kIHNldCBhbnkgZ2xvYmFsIHZhcmlhYmxlcyBy ZXF1aXJlZC4gIFJldHVybnMKKyAgIHRoZSBwYXJzaW5nIHJlc3VsdCBhbmQg YXNzaWducyBMQVNUX1NUUiB0byB0aGUgbGFzdCBwcm9jZXNzZWQgdG9rZW4g ZnJvbQorICAgQ09OU1RfU1RSIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgZm9y IGVycm9yIHJlcG9ydGluZy4gICovCisKK3N0YXRpYyBlbnVtCithYXJjaDY0 X3BhcnNlX29wdF9yZXN1bHQgYWFyY2g2NF9wYXJzZV9icmFuY2hfcHJvdGVj dGlvbiAoY29uc3QgY2hhciAqY29uc3Rfc3RyLAorCQkJCQkJCSAgY2hhcioq IGxhc3Rfc3RyKQoreworICBjaGFyICpzdHJfcm9vdCA9IHhzdHJkdXAgKGNv bnN0X3N0cik7CisgIGNoYXIqIHRva2VuX3NhdmUgPSBOVUxMOworICBjaGFy ICpzdHIgPSBzdHJ0b2tfciAoc3RyX3Jvb3QsICIrIiwgJnRva2VuX3NhdmUp OworICBlbnVtIGFhcmNoNjRfcGFyc2Vfb3B0X3Jlc3VsdCByZXMgPSBBQVJD SDY0X1BBUlNFX09LOworICBpZiAoIXN0cikKKyAgICByZXMgPSBBQVJDSDY0 X1BBUlNFX01JU1NJTkdfQVJHOworICBlbHNlCisgICAgeworICAgICAgY2hh ciAqbmV4dF9zdHIgPSBzdHJ0b2tfciAoTlVMTCwgIisiLCAmdG9rZW5fc2F2 ZSk7CisgICAgICAvKiBSZXNldCB0aGUgYnJhbmNoIHByb3RlY3Rpb24gZmVh dHVyZXMgdG8gdGhlaXIgZGVmYXVsdHMuICAqLworICAgICAgYWFyY2g2NF9o YW5kbGVfbm9fYnJhbmNoX3Byb3RlY3Rpb24gKE5VTEwsIE5VTEwpOworCisg ICAgICB3aGlsZSAoc3RyICYmIHJlcyA9PSBBQVJDSDY0X1BBUlNFX09LKQor CXsKKwkgIGNvbnN0IGFhcmNoNjRfYnJhbmNoX3Byb3RlY190eXBlKiB0eXBl ID0gYWFyY2g2NF9icmFuY2hfcHJvdGVjX3R5cGVzOworCSAgYm9vbCBmb3Vu ZCA9IGZhbHNlOworCSAgLyogU2VhcmNoIGZvciB0aGlzIHR5cGUuICAqLwor CSAgd2hpbGUgKHR5cGUgJiYgdHlwZS0+bmFtZSAmJiAhZm91bmQgJiYgcmVz ID09IEFBUkNINjRfUEFSU0VfT0spCisJICAgIHsKKwkgICAgICBpZiAoc3Ry Y21wIChzdHIsIHR5cGUtPm5hbWUpID09IDApCisJCXsKKwkJICBmb3VuZCA9 IHRydWU7CisJCSAgcmVzID0gdHlwZS0+aGFuZGxlciAoc3RyLCBuZXh0X3N0 cik7CisJCSAgc3RyID0gbmV4dF9zdHI7CisJCSAgbmV4dF9zdHIgPSBzdHJ0 b2tfciAoTlVMTCwgIisiLCAmdG9rZW5fc2F2ZSk7CisJCX0KKwkgICAgICBl bHNlCisJCXR5cGUrKzsKKwkgICAgfQorCSAgaWYgKGZvdW5kICYmIHJlcyA9 PSBBQVJDSDY0X1BBUlNFX09LKQorCSAgICB7CisJICAgICAgYm9vbCBmb3Vu ZF9zdWJ0eXBlID0gdHJ1ZTsKKwkgICAgICAvKiBMb29wIHRocm91Z2ggZWFj aCB0b2tlbiB1bnRpbCB3ZSBmaW5kIG9uZSB0aGF0IGlzbid0IGEKKwkJIHN1 YnR5cGUuICAqLworCSAgICAgIHdoaWxlIChmb3VuZF9zdWJ0eXBlKQorCQl7 CisJCSAgZm91bmRfc3VidHlwZSA9IGZhbHNlOworCQkgIGNvbnN0IGFhcmNo NjRfYnJhbmNoX3Byb3RlY190eXBlICpzdWJ0eXBlID0gdHlwZS0+c3VidHlw ZXM7CisJCSAgLyogU2VhcmNoIGZvciB0aGUgc3VidHlwZS4gICovCisJCSAg d2hpbGUgKHN0ciAmJiBzdWJ0eXBlICYmIHN1YnR5cGUtPm5hbWUgJiYgIWZv dW5kX3N1YnR5cGUKKwkJCSAgJiYgcmVzID09IEFBUkNINjRfUEFSU0VfT0sp CisJCSAgICB7CisJCSAgICAgIGlmIChzdHJjbXAgKHN0ciwgc3VidHlwZS0+ bmFtZSkgPT0gMCkKKwkJCXsKKwkJCSAgZm91bmRfc3VidHlwZSA9IHRydWU7 CisJCQkgIHJlcyA9IHN1YnR5cGUtPmhhbmRsZXIgKHN0ciwgbmV4dF9zdHIp OworCQkJICBzdHIgPSBuZXh0X3N0cjsKKwkJCSAgbmV4dF9zdHIgPSBzdHJ0 b2tfciAoTlVMTCwgIisiLCAmdG9rZW5fc2F2ZSk7CisJCQl9CisJCSAgICAg IGVsc2UKKwkJCXN1YnR5cGUrKzsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJ ICBlbHNlIGlmICghZm91bmQpCisJICAgIHJlcyA9IEFBUkNINjRfUEFSU0Vf SU5WQUxJRF9BUkc7CisJfQorICAgIH0KKyAgLyogQ29weSB0aGUgbGFzdCBw cm9jZXNzZWQgdG9rZW4gaW50byB0aGUgYXJndW1lbnQgdG8gcGFzcyBpdCBi YWNrLgorICAgIFVzZWQgYnkgb3B0aW9uIGFuZCBhdHRyaWJ1dGUgdmFsaWRh dGlvbiB0byBwcmludCB0aGUgb2ZmZW5kaW5nIHRva2VuLiAgKi8KKyAgaWYg KGxhc3Rfc3RyKQorICAgIHsKKyAgICAgIGlmIChzdHIpIHN0cmNweSAoKmxh c3Rfc3RyLCBzdHIpOworICAgICAgZWxzZSAqbGFzdF9zdHIgPSBOVUxMOwor ICAgIH0KKyAgaWYgKHJlcyA9PSBBQVJDSDY0X1BBUlNFX09LKQorICAgIHsK KyAgICAgIC8qIElmIG5lZWRlZCwgYWxsb2MgdGhlIGFjY2VwdGVkIHN0cmlu ZyB0aGVuIGNvcHkgaW4gY29uc3Rfc3RyLgorCVVzZWQgYnkgb3ZlcnJpZGVf b3B0aW9uX2FmdGVyX2NoYW5nZV8xLiAgKi8KKyAgICAgIGlmICghYWNjZXB0 ZWRfYnJhbmNoX3Byb3RlY3Rpb25fc3RyaW5nKQorCWFjY2VwdGVkX2JyYW5j aF9wcm90ZWN0aW9uX3N0cmluZyA9IChjaGFyICopIHhtYWxsb2MgKAorCQkJ CQkJICAgICAgQlJBTkNIX1BST1RFQ19TVFJfTUFYCisJCQkJCQkJKyAxKTsK KyAgICAgIHN0cm5jcHkgKGFjY2VwdGVkX2JyYW5jaF9wcm90ZWN0aW9uX3N0 cmluZywgY29uc3Rfc3RyLAorCQlCUkFOQ0hfUFJPVEVDX1NUUl9NQVggKyAx KTsKKyAgICAgIC8qIEZvcmNpYmx5IG51bGwtdGVybWluYXRlLiAgKi8KKyAg ICAgIGFjY2VwdGVkX2JyYW5jaF9wcm90ZWN0aW9uX3N0cmluZ1tCUkFOQ0hf UFJPVEVDX1NUUl9NQVhdID0gJ1wwJzsKKyAgICB9CisgIHJldHVybiByZXM7 Cit9CisKK3N0YXRpYyBib29sCithYXJjaDY0X3ZhbGlkYXRlX21icmFuY2hf cHJvdGVjdGlvbiAoY29uc3QgY2hhciAqY29uc3Rfc3RyKQoreworICBjaGFy ICpzdHIgPSAoY2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKGNvbnN0X3N0cikp OworICBlbnVtIGFhcmNoNjRfcGFyc2Vfb3B0X3Jlc3VsdCByZXMgPQorICAg IGFhcmNoNjRfcGFyc2VfYnJhbmNoX3Byb3RlY3Rpb24gKGNvbnN0X3N0ciwg JnN0cik7CisgIGlmIChyZXMgPT0gQUFSQ0g2NF9QQVJTRV9JTlZBTElEX0FS RykKKyAgICBlcnJvciAoImludmFsaWQgYXJnICU8JXMlPiBmb3IgJTwtbWJy YW5jaC1wcm90ZWN0aW9uPSU+Iiwgc3RyKTsKKyAgZWxzZSBpZiAocmVzID09 IEFBUkNINjRfUEFSU0VfTUlTU0lOR19BUkcpCisgICAgZXJyb3IgKCJtaXNz aW5nIGFyZyBmb3IgJTwtbWJyYW5jaC1wcm90ZWN0aW9uPSU+Iik7CisgIGZy ZWUgKHN0cik7CisgIHJldHVybiByZXMgPT0gQUFSQ0g2NF9QQVJTRV9PSzsK K30KKwogLyogVmFsaWRhdGUgYSBjb21tYW5kLWxpbmUgLW1hcmNoIG9wdGlv bi4gIFBhcnNlIHRoZSBhcmNoIGFuZCBleHRlbnNpb25zCiAgICAoaWYgYW55 KSBzcGVjaWZpZWQgaW4gU1RSIGFuZCB0aHJvdyBlcnJvcnMgaWYgYXBwcm9w cmlhdGUuICBQdXQgdGhlCiAgICByZXN1bHRzLCBpZiB0aGV5IGFyZSB2YWxp ZCwgaW4gUkVTIGFuZCBJU0FfRkxBR1MuICBSZXR1cm4gd2hldGhlciB0aGUK QEAgLTExMzA1LDYgKzExNDk1LDkgQEAgYWFyY2g2NF9vdmVycmlkZV9vcHRp b25zICh2b2lkKQogICBzZWxlY3RlZF9hcmNoID0gTlVMTDsKICAgc2VsZWN0 ZWRfdHVuZSA9IE5VTEw7CiAKKyAgaWYgKGFhcmNoNjRfYnJhbmNoX3Byb3Rl Y3Rpb25fc3RyaW5nKQorICAgIGFhcmNoNjRfdmFsaWRhdGVfbWJyYW5jaF9w cm90ZWN0aW9uIChhYXJjaDY0X2JyYW5jaF9wcm90ZWN0aW9uX3N0cmluZyk7 CisKICAgLyogLW1jcHU9Q1BVIGlzIHNob3J0aGFuZCBmb3IgLW1hcmNoPUFS Q0hfRk9SX0NQVSwgLW10dW5lPUNQVS4KICAgICAgSWYgZWl0aGVyIG9mIC1t YXJjaCBvciAtbXR1bmUgaXMgZ2l2ZW4sIHRoZXkgb3ZlcnJpZGUgdGhlaXIK ICAgICAgcmVzcGVjdGl2ZSBjb21wb25lbnQgb2YgLW1jcHUuICAqLwpAQCAt MTE0NzMsNiArMTE2NjYsOCBAQCBzdGF0aWMgdm9pZAogYWFyY2g2NF9vcHRp b25fc2F2ZSAoc3RydWN0IGNsX3RhcmdldF9vcHRpb24gKnB0ciwgc3RydWN0 IGdjY19vcHRpb25zICpvcHRzKQogewogICBwdHItPnhfYWFyY2g2NF9vdmVy cmlkZV90dW5lX3N0cmluZyA9IG9wdHMtPnhfYWFyY2g2NF9vdmVycmlkZV90 dW5lX3N0cmluZzsKKyAgcHRyLT54X2FhcmNoNjRfYnJhbmNoX3Byb3RlY3Rp b25fc3RyaW5nCisgICAgPSBvcHRzLT54X2FhcmNoNjRfYnJhbmNoX3Byb3Rl Y3Rpb25fc3RyaW5nOwogfQogCiAvKiBJbXBsZW1lbnRzIFRBUkdFVF9PUFRJ T05fUkVTVE9SRS4gIFJlc3RvcmUgdGhlIGJhY2tlbmQgY29kZWdlbiBkZWNp c2lvbnMKQEAgLTExNDg2LDYgKzExNjgxLDEzIEBAIGFhcmNoNjRfb3B0aW9u X3Jlc3RvcmUgKHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0cywgc3RydWN0IGNs X3RhcmdldF9vcHRpb24gKnB0cikKICAgb3B0cy0+eF9leHBsaWNpdF9hcmNo ID0gcHRyLT54X2V4cGxpY2l0X2FyY2g7CiAgIHNlbGVjdGVkX2FyY2ggPSBh YXJjaDY0X2dldF9hcmNoIChwdHItPnhfZXhwbGljaXRfYXJjaCk7CiAgIG9w dHMtPnhfYWFyY2g2NF9vdmVycmlkZV90dW5lX3N0cmluZyA9IHB0ci0+eF9h YXJjaDY0X292ZXJyaWRlX3R1bmVfc3RyaW5nOworICBvcHRzLT54X2FhcmNo NjRfYnJhbmNoX3Byb3RlY3Rpb25fc3RyaW5nCisgICAgPSBwdHItPnhfYWFy Y2g2NF9icmFuY2hfcHJvdGVjdGlvbl9zdHJpbmc7CisgIGlmIChvcHRzLT54 X2FhcmNoNjRfYnJhbmNoX3Byb3RlY3Rpb25fc3RyaW5nKQorICAgIHsKKyAg ICAgIGFhcmNoNjRfcGFyc2VfYnJhbmNoX3Byb3RlY3Rpb24gKG9wdHMtPnhf YWFyY2g2NF9icmFuY2hfcHJvdGVjdGlvbl9zdHJpbmcsCisJCQkJCU5VTEwp OworICAgIH0KIAogICBhYXJjaDY0X292ZXJyaWRlX29wdGlvbnNfaW50ZXJu YWwgKG9wdHMpOwogfQpAQCAtMTE2ODAsNiArMTE4ODIsMzcgQEAgYWFyY2g2 NF9oYW5kbGVfYXR0cl9jcHUgKGNvbnN0IGNoYXIgKnN0cikKICAgcmV0dXJu IGZhbHNlOwogfQogCisvKiBIYW5kbGUgdGhlIGFyZ3VtZW50IFNUUiB0byB0 aGUgYnJhbmNoLXByb3RlY3Rpb249IGF0dHJpYnV0ZS4gICovCisKKyBzdGF0 aWMgYm9vbAorIGFhcmNoNjRfaGFuZGxlX2F0dHJfYnJhbmNoX3Byb3RlY3Rp b24gKGNvbnN0IGNoYXIqIHN0cikKKyB7CisgIGNoYXIgKmVycl9zdHIgPSAo Y2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKHN0cikpOworICBlbnVtIGFhcmNo NjRfcGFyc2Vfb3B0X3Jlc3VsdCByZXMgPSBhYXJjaDY0X3BhcnNlX2JyYW5j aF9wcm90ZWN0aW9uIChzdHIsCisJCQkJCQkJCSAgICAgICZlcnJfc3RyKTsK KyAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgIHN3aXRjaCAocmVzKQorICAg IHsKKyAgICAgY2FzZSBBQVJDSDY0X1BBUlNFX01JU1NJTkdfQVJHOgorICAg ICAgIGVycm9yICgibWlzc2luZyBhcmd1bWVudCB0byAlPHRhcmdldChcImJy YW5jaC1wcm90ZWN0aW9uPVwiKSU+IHByYWdtYSBvciIKKwkgICAgICAiIGF0 dHJpYnV0ZSIpOworICAgICAgIGJyZWFrOworICAgICBjYXNlIEFBUkNINjRf UEFSU0VfSU5WQUxJRF9BUkc6CisgICAgICAgZXJyb3IgKCJpbnZhbGlkIHBy b3RlY3Rpb24gdHlwZSAoXCIlc1wiKSBpbiAlPHRhcmdldChcImJyYW5jaC1w cm90ZWN0aW9uIgorCSAgICAgICI9XCIpJT4gcHJhZ21hIG9yIGF0dHJpYnV0 ZSIsIGVycl9zdHIpOworICAgICAgIGJyZWFrOworICAgICBjYXNlIEFBUkNI NjRfUEFSU0VfT0s6CisgICAgICAgc3VjY2VzcyA9IHRydWU7CisgICAgICAv KiBGYWxsIHRocm91Z2guICAqLworICAgICBjYXNlIEFBUkNINjRfUEFSU0Vf SU5WQUxJRF9GRUFUVVJFOgorICAgICAgIGJyZWFrOworICAgICBkZWZhdWx0 OgorICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsKKyAgICB9CisgIGZyZWUg KGVycl9zdHIpOworICByZXR1cm4gc3VjY2VzczsKKyB9CisKIC8qIEhhbmRs ZSB0aGUgYXJndW1lbnQgU1RSIHRvIHRoZSB0dW5lPSB0YXJnZXQgYXR0cmli dXRlLiAgKi8KIAogc3RhdGljIGJvb2wKQEAgLTExNzc4LDYgKzEyMDExLDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhYXJjaDY0X2F0dHJpYnV0ZV9pbmZv IGFhcmNoNjRfYXR0cmlidXRlc1tdID0KICAgeyAiY3B1IiwgYWFyY2g2NF9h dHRyX2N1c3RvbSwgZmFsc2UsIGFhcmNoNjRfaGFuZGxlX2F0dHJfY3B1LCBP UFRfbWNwdV8gfSwKICAgeyAidHVuZSIsIGFhcmNoNjRfYXR0cl9jdXN0b20s IGZhbHNlLCBhYXJjaDY0X2hhbmRsZV9hdHRyX3R1bmUsCiAgICAgIE9QVF9t dHVuZV8gfSwKKyAgeyAiYnJhbmNoLXByb3RlY3Rpb24iLCBhYXJjaDY0X2F0 dHJfY3VzdG9tLCBmYWxzZSwKKyAgICAgYWFyY2g2NF9oYW5kbGVfYXR0cl9i cmFuY2hfcHJvdGVjdGlvbiwgT1BUX21icmFuY2hfcHJvdGVjdGlvbl8gfSwK ICAgeyAic2lnbi1yZXR1cm4tYWRkcmVzcyIsIGFhcmNoNjRfYXR0cl9lbnVt LCBmYWxzZSwgTlVMTCwKICAgICAgT1BUX21zaWduX3JldHVybl9hZGRyZXNz XyB9LAogICB7IE5VTEwsIGFhcmNoNjRfYXR0cl9jdXN0b20sIGZhbHNlLCBO VUxMLCBPUFRfX19fIH0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2 NC9hYXJjaDY0Lm9wdCBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm9w dAppbmRleCBiMmU4MGNiZjZmMWY5NzI3YzQzMDk4NzRiMTEyMmY5NzVmYjZi OWJlLi45NDYwNjM2ZDkzYjY3YWYxNTI1ZjAyODE3NmFhNzhlNmZlZDRlNDVm IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5vcHQK KysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQub3B0CkBAIC0xNDks OCArMTQ5LDEyIEBAIG1wYy1yZWxhdGl2ZS1saXRlcmFsLWxvYWRzCiBUYXJn ZXQgUmVwb3J0IFNhdmUgVmFyKHBjcmVsYXRpdmVfbGl0ZXJhbF9sb2Fkcykg SW5pdCgyKSBTYXZlCiBQQyByZWxhdGl2ZSBsaXRlcmFsIGxvYWRzLgogCitt YnJhbmNoLXByb3RlY3Rpb249CitUYXJnZXQgUmVqZWN0TmVnYXRpdmUgSm9p bmVkIFZhcihhYXJjaDY0X2JyYW5jaF9wcm90ZWN0aW9uX3N0cmluZykgU2F2 ZQorVXNlIGJyYW5jaC1wcm90ZWN0aW9uIGZlYXR1cmVzLgorCiBtc2lnbi1y ZXR1cm4tYWRkcmVzcz0KLVRhcmdldCBSZWplY3ROZWdhdGl2ZSBSZXBvcnQg Sm9pbmVkIEVudW0oYWFyY2g2NF9yYV9zaWduX3Njb3BlX3QpIFZhcihhYXJj aDY0X3JhX3NpZ25fc2NvcGUpIEluaXQoQUFSQ0g2NF9GVU5DVElPTl9OT05F KSBTYXZlCitUYXJnZXQgRGVwcmVjYXRlZCBSZWplY3ROZWdhdGl2ZSBKb2lu ZWQgRW51bShhYXJjaDY0X3JhX3NpZ25fc2NvcGVfdCkgVmFyKGFhcmNoNjRf cmFfc2lnbl9zY29wZSkgSW5pdChBQVJDSDY0X0ZVTkNUSU9OX05PTkUpIFNh dmUKIFNlbGVjdCByZXR1cm4gYWRkcmVzcyBzaWduaW5nIHNjb3BlLgogCiBF bnVtCmRpZmYgLS1naXQgYS9nY2MvZG9jL2ludm9rZS50ZXhpIGIvZ2NjL2Rv Yy9pbnZva2UudGV4aQppbmRleCBkNDZlYmQwMmM0ZTBmZWU3YjFjOTNhOWU5 NmQ4MDExM2Y2YWY5M2E3Li42YTgyMmM5MWYwNGNiYzQ2NGI2ZWZlMzYzOTEw NjI0M2UzZGVhZTAyIDEwMDY0NAotLS0gYS9nY2MvZG9jL2ludm9rZS50ZXhp CisrKyBiL2djYy9kb2MvaW52b2tlLnRleGkKQEAgLTYyOCw2ICs2MjgsNyBA QCBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKyBEaWFsZWN0c30uCiAt bWxvdy1wcmVjaXNpb24tcmVjaXAtc3FydCAgLW1sb3ctcHJlY2lzaW9uLXNx cnQgIC1tbG93LXByZWNpc2lvbi1kaXYgQGdvbAogLW1wYy1yZWxhdGl2ZS1s aXRlcmFsLWxvYWRzIEBnb2wKIC1tc2lnbi1yZXR1cm4tYWRkcmVzcz1AdmFy e3Njb3BlfSBAZ29sCistbWJyYW5jaC1wcm90ZWN0aW9uPUB2YXJ7bm9uZX18 QHZhcntzdGFuZGFyZH18QHZhcntwYWMtcmV0fVsrQHZhcntsZWFmfV0gQGdv bAogLW1hcmNoPUB2YXJ7bmFtZX0gIC1tY3B1PUB2YXJ7bmFtZX0gIC1tdHVu ZT1AdmFye25hbWV9ICBAZ29sCiAtbW92ZXJyaWRlPUB2YXJ7c3RyaW5nfSAg LW12ZXJib3NlLWNvc3QtZHVtcCAgLW10cmFjay1zcGVjdWxhdGlvbn0gCiAK QEAgLTE1NjM3LDcgKzE1NjM4LDIxIEBAIFNlbGVjdCB0aGUgZnVuY3Rpb24g c2NvcGUgb24gd2hpY2ggcmV0dXJuIGFkZHJlc3Mgc2lnbmluZyB3aWxsIGJl IGFwcGxpZWQuCiBQZXJtaXNzaWJsZSB2YWx1ZXMgYXJlIEBzYW1we25vbmV9 LCB3aGljaCBkaXNhYmxlcyByZXR1cm4gYWRkcmVzcyBzaWduaW5nLAogQHNh bXB7bm9uLWxlYWZ9LCB3aGljaCBlbmFibGVzIHBvaW50ZXIgc2lnbmluZyBm b3IgZnVuY3Rpb25zIHdoaWNoIGFyZSBub3QgbGVhZgogZnVuY3Rpb25zLCBh bmQgQHNhbXB7YWxsfSwgd2hpY2ggZW5hYmxlcyBwb2ludGVyIHNpZ25pbmcg Zm9yIGFsbCBmdW5jdGlvbnMuICBUaGUKLWRlZmF1bHQgdmFsdWUgaXMgQHNh bXB7bm9uZX0uCitkZWZhdWx0IHZhbHVlIGlzIEBzYW1we25vbmV9LiBUaGlz IG9wdGlvbiBoYXMgYmVlbiBkZXByZWNhdGVkIGJ5CistbWJyYW5jaC1wcm90 ZWN0aW9uLgorCitAaXRlbSAtbWJyYW5jaC1wcm90ZWN0aW9uPUB2YXJ7bm9u ZX18QHZhcntzdGFuZGFyZH18QHZhcntwYWMtcmV0fVsrQHZhcntsZWFmfV0K K0BvcGluZGV4IG1icmFuY2gtcHJvdGVjdGlvbgorU2VsZWN0IHRoZSBicmFu Y2ggcHJvdGVjdGlvbiBmZWF0dXJlcyB0byB1c2UuCitAc2FtcHtub25lfSBp cyB0aGUgZGVmYXVsdCBhbmQgdHVybnMgb2ZmIGFsbCB0eXBlcyBvZiBicmFu Y2ggcHJvdGVjdGlvbi4KK0BzYW1we3N0YW5kYXJkfSB0dXJucyBvbiBhbGwg dHlwZXMgb2YgYnJhbmNoIHByb3RlY3Rpb24gZmVhdHVyZXMuICBJZiBhIGZl YXR1cmUKK2hhcyBhZGRpdGlvbmFsIHR1bmluZyBvcHRpb25zLCB0aGVuIEBz YW1we3N0YW5kYXJkfSBzZXRzIGl0IHRvIGl0cyBzdGFuZGFyZAorbGV2ZWwu CitAc2FtcHtwYWMtcmV0WytAdmFye2xlYWZ9XX0gdHVybnMgb24gcmV0dXJu IGFkZHJlc3Mgc2lnbmluZyB0byBpdHMgc3RhbmRhcmQKK2xldmVsOiBzaWdu aW5nIGZ1bmN0aW9ucyB0aGF0IHNhdmUgdGhlIHJldHVybiBhZGRyZXNzIHRv IG1lbW9yeSAobm9uLWxlYWYKK2Z1bmN0aW9ucyB3aWxsIHByYWN0aWNhbGx5 IGFsd2F5cyBkbyB0aGlzKSB1c2luZyB0aGUgYS1rZXkuICBUaGUgb3B0aW9u YWwKK2FyZ3VtZW50IEBzYW1we2xlYWZ9IGNhbiBiZSB1c2VkIHRvIGV4dGVu ZCB0aGUgc2lnbmluZyB0byBpbmNsdWRlIGxlYWYKK2Z1bmN0aW9ucy4KIAog QGl0ZW0gLW1zdmUtdmVjdG9yLWJpdHM9QHZhcntiaXRzfQogQG9waW5kZXgg bXN2ZS12ZWN0b3ItYml0cwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FhcmNoNjQvYnJhbmNoLXByb3RlY3Rpb24tYXR0ci0yLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9icmFuY2gtcHJv dGVjdGlvbi1hdHRyLTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWIz NTExYWI2MTExYTg5NTM4M2Y1ZGRmOTM2NDQxMTBjMzk3MWM2Ci0tLSAvZGV2 L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv YnJhbmNoLXByb3RlY3Rpb24tYXR0ci0yLmMKQEAgLTAsMCArMSwxNiBAQAor LyogeyBkZy1kbyAiY29tcGlsZSIgfSAqLworCit2b2lkIF9fYXR0cmlidXRl X18gKCh0YXJnZXQoImJyYW5jaC1wcm90ZWN0aW9uPXBhYy1yZXQrbGVhZixi cmFuY2gtcHJvdGVjdGlvbj1ub25lIikpKQorZm9vICgpCit7Cit9CisKK3Zv aWQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYnJhbmNoLXByb3RlY3Rpb249 cGFjLXJldCxicmFuY2gtcHJvdGVjdGlvbj1ub25lIikpKQorZm9vMiAoKQor eworICAvKiBGdW5jdGlvbiBjYWxsIGhlcmUgdG8gbWFrZSB0aGlzIGEgbm9u LWxlYWYgZnVuY3Rpb24sIHNvIHRoYXQgaXQgaXMgY292ZXJlZCBieSBwYWMt cmV0LiAgKi8KKyAgZm9vICgpOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItbm90ICJcdGF1dGlhc3BcdCIgfSB9ICovCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJcdHBhY2lhc3BcdCIgfSB9 ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9icmFuY2gtcHJvdGVjdGlvbi1hdHRyLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9icmFuY2gtcHJvdGVjdGlvbi1hdHRyLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjI5Y2UxY2E3YmViY2UwNjAyMDQ5 NDY2ODJhZjE3NTM4OTUyNzE5MwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2JyYW5jaC1wcm90ZWN0aW9u LWF0dHIuYwpAQCAtMCwwICsxLDIyIEBACisvKiB7IGRnLWRvICJjb21waWxl IiB9ICovCisKK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYnJhbmNo LXByb3RlY3Rpb249bGVhZiIpKSkKK2ZvbzEgKCkKK3sKK30KKy8qIHsgZGct ZXJyb3Ige2ludmFsaWQgcHJvdGVjdGlvbiB0eXBlIFwoImxlYWYiXCkgaW4g J3RhcmdldFwoImJyYW5jaC1wcm90ZWN0aW9uPSJcKScgcHJhZ21hIG9yIGF0 dHJpYnV0ZX0gIiIgeyB0YXJnZXQgKi0qLSogfSA1IH0gKi8KKy8qIHsgZGct ZXJyb3Ige3ByYWdtYSBvciBhdHRyaWJ1dGUgJ3RhcmdldFwoImJyYW5jaC1w cm90ZWN0aW9uPWxlYWYiXCknIGlzIG5vdCB2YWxpZH0gIiIgeyB0YXJnZXQg Ki0qLSogfSA1IH0gKi8KKwordm9pZCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0 KCJicmFuY2gtcHJvdGVjdGlvbj1ub25lK3BhYy1yZXQiKSkpCitmb28yICgp Cit7Cit9CisvKiB7IGRnLWVycm9yICJ1bmV4cGVjdGVkICdwYWMtcmV0JyBh ZnRlciAnbm9uZSciICIiIHsgdGFyZ2V0ICotKi0qIH0gMTIgfSAqLworLyog eyBkZy1lcnJvciB7cHJhZ21hIG9yIGF0dHJpYnV0ZSAndGFyZ2V0XCgiYnJh bmNoLXByb3RlY3Rpb249bm9uZVwrcGFjLXJldCJcKScgaXMgbm90IHZhbGlk fSAiIiB7IHRhcmdldCAqLSotKiB9IDEyIH0gKi8KKwordm9pZCBfX2F0dHJp YnV0ZV9fICgodGFyZ2V0KCJicmFuY2gtcHJvdGVjdGlvbj0iKSkpCitmb28z ICgpCit7Cit9CisvKiB7IGRnLWVycm9yIHttaXNzaW5nIGFyZ3VtZW50IHRv ICd0YXJnZXRcKCJicmFuY2gtcHJvdGVjdGlvbj0iXCknIHByYWdtYSBvciBh dHRyaWJ1dGV9ICIiIHsgdGFyZ2V0ICotKi0qIH0gMTkgfSAqLworLyogeyBk Zy1lcnJvciB7cHJhZ21hIG9yIGF0dHJpYnV0ZSAndGFyZ2V0XCgiYnJhbmNo LXByb3RlY3Rpb249IlwpJyBpcyBub3QgdmFsaWR9ICIiIHsgdGFyZ2V0ICot Ki0qIH0gMTkgfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvYnJhbmNoLXByb3RlY3Rpb24tb3B0aW9uLTIuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2JyYW5jaC1wcm90 ZWN0aW9uLW9wdGlvbi0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgx ODUxMTM2NTIwZWNlMjg2MTg2ZmQxOGMxYTY0Yjk4NGYwYjNlOAotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L2JyYW5jaC1wcm90ZWN0aW9uLW9wdGlvbi0yLmMKQEAgLTAsMCArMSw5IEBA CisvKiB7IGRnLWRvICJjb21waWxlIiB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1tYnJhbmNoLXByb3RlY3Rpb249cGFjLXJldCtsZWFmIC1tYnJhbmNoLXBy b3RlY3Rpb249bm9uZSIgfSAqLworCit2b2lkIGZvbzIgKCkKK3sKK30KKwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiXHRhdXRpYXNw XHQiIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCAiXHRwYWNpYXNwXHQiIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYnJhbmNoLXByb3RlY3Rpb24tb3B0 aW9uLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9icmFu Y2gtcHJvdGVjdGlvbi1vcHRpb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw Li4xYjNiZjRlZTJiODhhNmU4OWQ3OGY5OTc2Njg4OTkwNDg0OWE4OWRiCi0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvYnJhbmNoLXByb3RlY3Rpb24tb3B0aW9uLmMKQEAgLTAsMCArMSw0 IEBACisvKiB7IGRnLWRvICJjb21waWxlIiB9ICovCisvKiB7IGRnLW9wdGlv bnMgIi1tYnJhbmNoLXByb3RlY3Rpb249bGVhZiAtbWJyYW5jaC1wcm90ZWN0 aW9uPW5vbmUrcGFjLXJldCIgfSAqLworCisvKiB7IGRnLWVycm9yICJ1bmV4 cGVjdGVkICdwYWMtcmV0JyBhZnRlciAnbm9uZSciICAiIiB7IHRhcmdldCAq LSotKiB9IDAgfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvcmV0dXJuX2FkZHJlc3Nfc2lnbl8xLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9yZXR1cm5fYWRkcmVzc19z aWduXzEuYwppbmRleCBmODdjM2QyOGQxZWRmZjQ3M2E3ODdhMzlhNDM2ZTU3 MDc2Zjk3NTA4Li4wMTQwYmVlMTk0ZjVhM2VjNTNlNzk0OTg0YzJmOWIwZTk2 YmRiYjYzIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YWFyY2g2NC9yZXR1cm5fYWRkcmVzc19zaWduXzEuYworKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9yZXR1cm5fYWRkcmVzc19zaWdu XzEuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIFRlc3RpbmcgcmV0dXJuIGFkZHJl c3Mgc2lnbmluZyB3aGVyZSBubyBjb21iaW5lZCBpbnN0cnVjdGlvbnMgdXNl ZC4gICovCiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLyogeyBkZy1vcHRp b25zICItTzIgLW1zaWduLXJldHVybi1hZGRyZXNzPWFsbCIgfSAqLworLyog eyBkZy1vcHRpb25zICItTzIgLW1icmFuY2gtcHJvdGVjdGlvbj1wYWMtcmV0 K2xlYWYiIH0gKi8KIC8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0 IGxwNjQgfSAqLwogCiBpbnQgZm9vIChpbnQpOwpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvcmV0dXJuX2FkZHJlc3Nf c2lnbl8yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9y ZXR1cm5fYWRkcmVzc19zaWduXzIuYwppbmRleCBjNWMxNDM5YjkyZTY2Mzdm ODVjNDdjNjE2MWNkNzk3YzBkNjhkZjI1Li5hNGJjNWI0NTMzMzgyZDNkMjEw ODVhNzYzMDI4NTc2ZjcyNTMxZWQ3IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9yZXR1cm5fYWRkcmVzc19zaWduXzIu YworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9yZXR1 cm5fYWRkcmVzc19zaWduXzIuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIFRlc3Rp bmcgcmV0dXJuIGFkZHJlc3Mgc2lnbmluZyB3aGVyZSBjb21iaW5lZCBpbnN0 cnVjdGlvbnMgdXNlZC4gICovCiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwot LyogeyBkZy1vcHRpb25zICItTzIgLW1zaWduLXJldHVybi1hZGRyZXNzPWFs bCIgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW1icmFuY2gtcHJvdGVj dGlvbj1wYWMtcmV0K2xlYWYiIH0gKi8KIC8qIHsgZGctcmVxdWlyZS1lZmZl Y3RpdmUtdGFyZ2V0IGxwNjQgfSAqLwogCiBpbnQgZm9vIChpbnQpOwpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvcmV0 dXJuX2FkZHJlc3Nfc2lnbl8zLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9yZXR1cm5fYWRkcmVzc19zaWduXzMuYwppbmRleCA3ZDll YzZlZWJkMWNlNDUyMDEzZDI4OTVhNTUxNjcxYzU5ZTk4ZjBjLi5lMzllZDM0 YWIxYzEzZDEzNjhmNGE2MjViNGE0NjZlYjc2MzU0ZWY4IDEwMDY0NAotLS0g YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9yZXR1cm5fYWRk cmVzc19zaWduXzMuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YWFyY2g2NC9yZXR1cm5fYWRkcmVzc19zaWduXzMuYwpAQCAtMSwxNyArMSwx NyBAQAogLyogVGVzdGluZyB0aGUgZGlzYWJsZSBvZiByZXR1cm4gYWRkcmVz cyBzaWduaW5nLiAgKi8KIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7 IGRnLW9wdGlvbnMgIi1PMiAtbXNpZ24tcmV0dXJuLWFkZHJlc3M9YWxsIiB9 ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWJyYW5jaC1wcm90ZWN0aW9u PXBhYy1yZXQrbGVhZiIgfSAqLwogLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2 ZS10YXJnZXQgbHA2NCB9ICovCiAKIGludCBiYXIgKGludCwgaW50KTsKIAot aW50IF9fYXR0cmlidXRlX18gKCh0YXJnZXQgKCJhcmNoPWFybXY4LjMtYSwg c2lnbi1yZXR1cm4tYWRkcmVzcz1ub24tbGVhZiIpKSkKK2ludCBfX2F0dHJp YnV0ZV9fICgodGFyZ2V0ICgiYXJjaD1hcm12OC4zLWEsIGJyYW5jaC1wcm90 ZWN0aW9uPXBhYy1yZXQiKSkpCiBmdW5jMV9sZWFmIChpbnQgYSwgaW50IGIs IGludCBjLCBpbnQgZCkKIHsKICAgcmV0dXJuIGEgKyBiICsgYyArIGQ7CiB9 CiAKLWludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgiYXJjaD1hcm12OC4z LWEsIHNpZ24tcmV0dXJuLWFkZHJlc3M9bm9uZSIpKSkKK2ludCBfX2F0dHJp YnV0ZV9fICgodGFyZ2V0ICgiYXJjaD1hcm12OC4zLWEsIGJyYW5jaC1wcm90 ZWN0aW9uPW5vbmUiKSkpCiBmdW5jMl9ub25lIChpbnQgYSwgaW50IGIsIGlu dCBjLCBpbnQgZCkKIHsKICAgcmV0dXJuIGMgKyBiYXIgKGEsIGIpICsgZDsK --_002_6a0accfc8defbaca9fe8da357b0e15bfarmcom_--