From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 83045 invoked by alias); 24 Jun 2019 15:26:27 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 83027 invoked by uid 89); 24 Jun 2019 15:26:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.3 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.1 spammy=WIDTH, communicate, FINAL, exceed X-Spam-Status: No, score=-23.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: EUR04-VI1-obe.outbound.protection.outlook.com Received: from mail-eopbgr80077.outbound.protection.outlook.com (HELO EUR04-VI1-obe.outbound.protection.outlook.com) (40.107.8.77) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 24 Jun 2019 15:26:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l7F/cwvtrztgKfd8CiMJpmcL9ZRFNfmYEIjt/Kn5mp0=; b=c9j/8sYdN9B9M/PoO+Gxg71e2YDRNHcfqrxrQo6tvINMdbRp8AN3rjJOfPF9yFdDpz8fBO9oRS/79xVnJU8z3CLij39sDrLY1DrbC9DiPkHrPh31qZOuJEQUQG7Kdk+IkCBSc3L79isDGu7n5ehKH5Stm75O0n9lGV8fG6T2RYM= Received: from VE1PR08MB5070.eurprd08.prod.outlook.com (20.179.29.148) by VE1PR08MB4927.eurprd08.prod.outlook.com (10.255.114.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.16; Mon, 24 Jun 2019 15:26:20 +0000 Received: from VE1PR08MB5070.eurprd08.prod.outlook.com ([fe80::34f5:a093:3356:52f5]) by VE1PR08MB5070.eurprd08.prod.outlook.com ([fe80::34f5:a093:3356:52f5%7]) with mapi id 15.20.2008.014; Mon, 24 Jun 2019 15:26:20 +0000 From: Andrea Corallo To: David Malcolm CC: Andrea Corallo , "gcc-patches@gcc.gnu.org" , "jit@gcc.gnu.org" , nd Subject: Re: [PATCH][gcc] libgccjit: add bitfield support Thread-Topic: [PATCH][gcc] libgccjit: add bitfield support Thread-Index: AQHVGfH2i3Pw/ZC3+E2HQL7V8/ROg6ahhbSAgAmIuIA= Date: Tue, 01 Jan 2019 00:00:00 -0000 Message-ID: References: <1560865833.3885.8.camel@redhat.com> In-Reply-To: <1560865833.3885.8.camel@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0052.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:60::16) To VE1PR08MB5070.eurprd08.prod.outlook.com (2603:10a6:803:105::20) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Andrea.Corallo@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [217.140.96.140] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 601a2670-d484-402c-c043-08d6f8b84e70 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(49563074)(7193020);SRVR:VE1PR08MB4927; x-ms-traffictypediagnostic: VE1PR08MB4927: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-forefront-prvs: 007814487B x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(39860400002)(346002)(136003)(376002)(366004)(189003)(199004)(53754006)(6486002)(229853002)(6506007)(66946007)(99936001)(2906002)(73956011)(99286004)(53936002)(54906003)(7736002)(71190400001)(71200400001)(4326008)(68736007)(86362001)(186003)(476003)(6916009)(81156014)(446003)(81166006)(102836004)(11346002)(486006)(8936002)(6436002)(36756003)(8676002)(316002)(26005)(44832011)(6246003)(305945005)(386003)(76176011)(52116002)(478600001)(66616009)(66476007)(66066001)(66446008)(66556008)(72206003)(5660300002)(64756008)(2616005)(25786009)(6512007)(6116002)(256004)(14454004)(3846002);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR08MB4927;H:VE1PR08MB5070.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: BZIkZQkYShJS+e9gxWzr4I63WPaN+IKSdynRBjVWR6VwsCK4M4tGQBocdQ4rpiT4Qr2sTYT5TPX14mfcFy7frDGZzEGb9g25D6Fxc5b4yug9UVv/ubGuQrNxljjXULGMTNKX7nn7lNwLSm86/ZNkfGaQvl2O8ouW8ZUiN8WtMByMdaPErIiTe4Jb1d1l6DkUu9Fa14UhUvwSkeOjhxSK3xVj3eWUlVcsaNDTKBTm90z/ucjrY0ahSo5BzmnLyNu74MNkRmE4QcZ86Lw4xi6eifYaqOFHnqEsC/Ej3mKC3Lrvk/zaFyrckbPoTtXFbc7G//OsZ/NXzFr4paNSjjlSixdR5b7cH9we4PIjCP9/WBYuGb94IQUdTL1D5q4+D+Vnf9A+hs6p2xYR/REeofxxV1M8klwcTYc7wtPTbLn2/Io= Content-Type: multipart/mixed; boundary="_002_gkrzhm7j97ufsfarmcom_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 601a2670-d484-402c-c043-08d6f8b84e70 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2019 15:26:20.1542 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Andrea.Corallo@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4927 X-SW-Source: 2019-q2/txt/msg00006.txt.bz2 --_002_gkrzhm7j97ufsfarmcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-length: 2823 SGkgYWxsLA0Kc2Vjb25kIHZlcnNpb24gaGVyZSBvZiB0aGUgZ2NjX2ppdF9j b250ZXh0X25ld19iaXRmaWVsZCBwYXRjaCBhZGRyZXNzaW5nDQpyZXZpZXcg Y29tbWVudHMuDQoNCkNoZWNrZWQgd2l0aCBtYWtlIGNoZWNrLWppdCBydW5z IGNsZWFuLg0KDQpCZXN0cw0KDQpBbmRyZWENCg0KMjAxOS0wNi0yMCAgQW5k cmVhIENvcmFsbG8gYW5kcmVhLmNvcmFsbG9AYXJtLmNvbQ0KDQoqIGRvY3Mv dG9waWNzL2NvbXBhdGliaWxpdHkucnN0IChMSUJHQ0NKSVRfQUJJXzEyKTog TmV3IEFCSSB0YWcuDQoqIGRvY3MvdG9waWNzL3R5cGVzLnJzdDogQWRkIGdj Y19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQuDQoqIGppdC1jb21tb24uaCAo bmFtZXNwYWNlIHJlY29yZGluZyk6IEFkZCBjbGFzcyBiaXRmaWVsZC4NCiog aml0LXBsYXliYWNrLmM6DQooREVDTF9DX0JJVF9GSUVMRCwgU0VUX0RFQ0xf Q19CSVRfRklFTEQpOiBBZGQgbWFjcm9zLg0KKHBsYXliYWNrOjpjb250ZXh0 OjpuZXdfYml0ZmllbGQpOiBOZXcgbWV0aG9kLg0KKHBsYXliYWNrOjpjb21w b3VuZF90eXBlOjpzZXRfZmllbGRzKTogQWRkIGJpdGZpZWxkIHN1cHBvcnQu DQoocGxheWJhY2s6Omx2YWx1ZTo6bWFya19hZGRyZXNzYWJsZSk6IFdhcyBq aXRfbWFya19hZGRyZXNzYWJsZSBtYWtlIHRoaXMNCmEgbWV0aG9kIG9mIGx2 YWx1ZSBwbHVzIHJldHVybiBhIGJvb2wgdG8gY29tbXVuaWNhdGUgc3VjY2Vz cy4NCihwbGF5YmFjazo6bHZhbHVlOjpnZXRfYWRkcmVzcyk6IENoZWNrIGZv ciBqaXRfbWFya19hZGRyZXNzYWJsZSByZXR1cm4NCnZhbHVlLg0KKiBqaXQt cGxheWJhY2suaCAobmV3X2JpdGZpZWxkKTogTmV3IG1ldGhvZC4NCihjbGFz cyBiaXRmaWVsZCk6IE5ldyBjbGFzcy4NCihjbGFzcyBsdmFsdWUpOiBBZGQg aml0X21hcmtfYWRkcmVzc2FibGUgbWV0aG9kLg0KKiBqaXQtcmVjb3JkaW5n LmMgKHJlY29yZGluZzo6Y29udGV4dDo6bmV3X2JpdGZpZWxkKTogTmV3IG1l dGhvZC4NCihyZWNvcmRpbmc6OmJpdGZpZWxkOjpyZXBsYXlfaW50byk6IE5l dyBtZXRob2QuDQoocmVjb3JkaW5nOjpiaXRmaWVsZDo6d3JpdGVfdG9fZHVt cCk6IExpa2V3aXNlLg0KKHJlY29yZGluZzo6Yml0ZmllbGQ6Om1ha2VfZGVi dWdfc3RyaW5nKTogTGlrZXdpc2UuDQoocmVjb3JkaW5nOjpiaXRmaWVsZDo6 d3JpdGVfcmVwcm9kdWNlcik6IExpa2V3aXNlLg0KKiBqaXQtcmVjb3JkaW5n LmggKGNsYXNzIGNvbnRleHQpOiBBZGQgbmV3X2JpdGZpZWxkIG1ldGhvZC4N CihjbGFzcyBmaWVsZCk6IE1ha2UgaXQgZGVyaXZhYmxlIGJ5IGNsYXNzIGJp dGZpZWxkLg0KKGNsYXNzIGJpdGZpZWxkKTogQWRkIG5ldyBjbGFzcy4NCiog bGliZ2Njaml0KysuaCAoY2xhc3MgY29udGV4dCk6IEFkZCBuZXdfYml0Zmll bGQgbWV0aG9kLg0KKiBsaWJnY2NqaXQuYyAoc3RydWN0IGdjY19qaXRfYml0 ZmllbGQpOiBOZXcgc3RydWN0dXJlLg0KKGdjY19qaXRfY29udGV4dF9uZXdf Yml0ZmllbGQpOiBOZXcgZnVuY3Rpb24uDQoqIGxpYmdjY2ppdC5oDQooTElC R0NDSklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCkgTmV3 IG1hY3JvLg0KKGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQpOiBOZXcg ZnVuY3Rpb24uDQoqIGxpYmdjY2ppdC5tYXAgKExJQkdDQ0pJVF9BQklfMTIp IE5ldyBBQkkgdGFnLg0KDQoNCjIwMTktMDYtMjAgIEFuZHJlYSBDb3JhbGxv IGFuZHJlYS5jb3JhbGxvQGFybS5jb20NCg0KKiBqaXQuZGcvYWxsLW5vbi1m YWlsaW5nLXRlc3RzLmg6IEFkZCB0ZXN0LWFjY2Vzc2luZy1iaXRmaWVsZC5j Lg0KKiBqaXQuZGcvdGVzdC1hY2Nlc3NpbmctYml0ZmllbGQuYzogTmV3IHRl c3RjYXNlLg0KKiBqaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0X2NvbnRleHRf bmV3X2JpdGZpZWxkLWludmFsaWQtdHlwZS5jOg0KTGlrZXdpc2UuDQoqIGpp dC5kZy90ZXN0LWVycm9yLWdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQt aW52YWxpZC13aWR0aC5jOg0KTGlrZXdpc2UuDQoqIGppdC5kZy90ZXN0LWVy cm9yLWdjY19qaXRfbHZhbHVlX2dldF9hZGRyZXNzLWJpdGZpZWxkLmM6DQpM aWtld2lzZS4NCg== --_002_gkrzhm7j97ufsfarmcom_ Content-Type: text/x-diff; name="gcc_jit_context_new_bitfield.patch" Content-Description: gcc_jit_context_new_bitfield.patch Content-Disposition: attachment; filename="gcc_jit_context_new_bitfield.patch"; size=26788; creation-date="Mon, 24 Jun 2019 15:26:19 GMT"; modification-date="Mon, 24 Jun 2019 15:26:19 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 36316 ZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0 eS5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0 DQppbmRleCBhYmVmYTU2Li5kYTY0OTIwIDEwMDY0NA0KLS0tIGEvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KKysrIGIvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KQEAgLTE3NywzICsx NzcsOCBAQCBlbnRyeXBvaW50czoNCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0K IGBgTElCR0NDSklUX0FCSV8xMWBgIGNvdmVycyB0aGUgYWRkaXRpb24gb2YN CiA6ZnVuYzpgZ2NjX2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uYA0K Kw0KK2BgTElCR0NDSklUX0FCSV8xMmBgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0NCitgYExJQkdDQ0pJVF9BQklfMTJgYCBjb3ZlcnMgdGhlIGFkZGl0aW9u IG9mDQorOmZ1bmM6YGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGRgDQpk aWZmIC0tZ2l0IGEvZ2NjL2ppdC9kb2NzL3RvcGljcy90eXBlcy5yc3QgYi9n Y2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdA0KaW5kZXggMWQyZGNkNC4u MzdkOWQwMSAxMDA2NDQNCi0tLSBhL2djYy9qaXQvZG9jcy90b3BpY3MvdHlw ZXMucnN0DQorKysgYi9nY2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdA0K QEAgLTI0Nyw2ICsyNDcsMzAgQEAgWW91IGNhbiBtb2RlbCBDIGBzdHJ1Y3Rg IHR5cGVzIGJ5IGNyZWF0aW5nIDpjOnR5cGU6YGdjY19qaXRfc3RydWN0ICpg IGFuZA0KICAgIHVuZGVybHlpbmcgc3RyaW5nLCBzbyBpdCBpcyB2YWxpZCB0 byBwYXNzIGluIGEgcG9pbnRlciB0byBhbiBvbi1zdGFjaw0KICAgIGJ1ZmZl ci4NCiANCisuLiBmdW5jdGlvbjo6IGdjY19qaXRfZmllbGQgKlwNCisgICAg ICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKGdjY19q aXRfY29udGV4dCAqY3R4dCxcDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2xvY2F0aW9uICpsb2MsXA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2NjX2ppdF90eXBlICp0eXBlLFwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCxcDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lKQ0KKw0KKyAgIENvbnN0cnVjdCBhIG5ldyBiaXQgZmllbGQsIHdp dGggdGhlIGdpdmVuIHR5cGUgd2lkdGggYW5kIG5hbWUuDQorDQorICAgVGhl IHBhcmFtZXRlciBgYG5hbWVgYCBtdXN0IGJlIG5vbi1OVUxMLiAgVGhlIGNh bGwgdGFrZXMgYSBjb3B5IG9mIHRoZQ0KKyAgIHVuZGVybHlpbmcgc3RyaW5n LCBzbyBpdCBpcyB2YWxpZCB0byBwYXNzIGluIGEgcG9pbnRlciB0byBhbiBv bi1zdGFjaw0KKyAgIGJ1ZmZlci4NCisNCisgICBUaGUgcGFyYW1ldGVyIGBg dHlwZWBgIG11c3QgYmUgYW4gaW50ZWdlciB0eXBlLg0KKw0KKyAgIFRoZSBw YXJhbWV0ZXIgYGB3aWR0aGBgIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2Vy IHRoYXQgZG9lcyBub3QgZXhjZWVkIHRoZQ0KKyAgIHNpemUgb2YgYGB0eXBl YGAuDQorDQorICAgVGhpcyBBUEkgZW50cnlwb2ludCB3YXMgYWRkZWQgaW4g OnJlZjpgTElCR0NDSklUX0FCSV8xMmA7IHlvdSBjYW4gdGVzdA0KKyAgIGZv ciBpdHMgcHJlc2VuY2UgdXNpbmcNCisgICAuLiBjb2RlLWJsb2NrOjogYw0K Kw0KKyAgICAgICNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRl eHRfbmV3X2JpdGZpZWxkDQorDQogLi4gZnVuY3Rpb246OiBnY2Nfaml0X29i amVjdCAqXA0KICAgICAgICAgICAgICAgZ2NjX2ppdF9maWVsZF9hc19vYmpl Y3QgKGdjY19qaXRfZmllbGQgKmZpZWxkKQ0KIA0KZGlmZiAtLWdpdCBhL2dj Yy9qaXQvaml0LWNvbW1vbi5oIGIvZ2NjL2ppdC9qaXQtY29tbW9uLmgNCmlu ZGV4IDFkOTZjYzMuLmU3NDdkOTYgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2pp dC1jb21tb24uaA0KKysrIGIvZ2NjL2ppdC9qaXQtY29tbW9uLmgNCkBAIC0x MTksNiArMTE5LDcgQEAgbmFtZXNwYWNlIHJlY29yZGluZyB7DQogCWNsYXNz IHVuaW9uXzsNCiAgICAgICBjbGFzcyB2ZWN0b3JfdHlwZTsNCiAgICAgY2xh c3MgZmllbGQ7DQorICAgICAgY2xhc3MgYml0ZmllbGQ7DQogICAgIGNsYXNz IGZpZWxkczsNCiAgICAgY2xhc3MgZnVuY3Rpb247DQogICAgIGNsYXNzIGJs b2NrOw0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmggYi9n Y2Mvaml0L2ppdC1wbGF5YmFjay5oDQppbmRleCBiYzRkZTljLi5kNGIxNDhl IDEwMDY0NA0KLS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suaA0KKysrIGIv Z2NjL2ppdC9qaXQtcGxheWJhY2suaA0KQEAgLTc1LDYgKzc1LDEyIEBAIHB1 YmxpYzoNCiAJICAgICB0eXBlICp0eXBlLA0KIAkgICAgIGNvbnN0IGNoYXIg Km5hbWUpOw0KIA0KKyAgZmllbGQgKg0KKyAgbmV3X2JpdGZpZWxkIChsb2Nh dGlvbiAqbG9jLA0KKwkJdHlwZSAqdHlwZSwNCisJCWludCB3aWR0aCwNCisJ CWNvbnN0IGNoYXIgKm5hbWUpOw0KKw0KICAgY29tcG91bmRfdHlwZSAqDQog ICBuZXdfY29tcG91bmRfdHlwZSAobG9jYXRpb24gKmxvYywNCiAJCSAgICAg Y29uc3QgY2hhciAqbmFtZSwNCkBAIC00MjYsNiArNDMyLDggQEAgcHJpdmF0 ZToNCiAgIHRyZWUgbV9pbm5lcjsNCiB9Ow0KIA0KK2NsYXNzIGJpdGZpZWxk IDogcHVibGljIGZpZWxkIHt9Ow0KKw0KIGNsYXNzIGZ1bmN0aW9uIDogcHVi bGljIHdyYXBwZXINCiB7DQogcHVibGljOg0KQEAgLTYxNCw2ICs2MjIsOCBA QCBwdWJsaWM6DQogICBydmFsdWUgKg0KICAgZ2V0X2FkZHJlc3MgKGxvY2F0 aW9uICpsb2MpOw0KIA0KK3ByaXZhdGU6DQorICBib29sIG1hcmtfYWRkcmVz c2FibGUgKGxvY2F0aW9uICpsb2MpOw0KIH07DQogDQogY2xhc3MgcGFyYW0g OiBwdWJsaWMgbHZhbHVlDQpAQCAtNzAzLDQgKzcxMywzIEBAIGV4dGVybiBw bGF5YmFjazo6Y29udGV4dCAqYWN0aXZlX3BsYXliYWNrX2N0eHQ7DQogfSAv LyBuYW1lc3BhY2UgZ2NjDQogDQogI2VuZGlmIC8qIEpJVF9QTEFZQkFDS19I ICovDQotDQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suYyBi L2djYy9qaXQvaml0LXBsYXliYWNrLmMNCmluZGV4IGI3NDQ5NWMuLmE2YTll MmQgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5jDQorKysg Yi9nY2Mvaml0L2ppdC1wbGF5YmFjay5jDQpAQCAtNDcsNiArNDcsMTIgQEAg YWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUNCiAjaW5jbHVkZSAiaml0LWJ1aWx0aW5zLmgiDQogI2luY2x1ZGUg ImppdC10ZW1wZGlyLmgiDQogDQorLyogQ29tcGFyZSB3aXRoIGdjYy9jLWZh bWlseS9jLWNvbW1vbi5oDQorICAgVGhpcyBpcyByZWRpZmluZWQgaGVyZSB0 byBhdm9pZCBkZXBlbmRpbmcgZnJvbSB0aGUgQyBmcm9udGVuZC4gICovDQor I2RlZmluZSBERUNMX0NfQklUX0ZJRUxEKE5PREUpIFwNCisgIChERUNMX0xB TkdfRkxBR180IChGSUVMRF9ERUNMX0NIRUNLIChOT0RFKSkgPT0gMSkNCisj ZGVmaW5lIFNFVF9ERUNMX0NfQklUX0ZJRUxEKE5PREUpIFwNCisgIChERUNM X0xBTkdfRkxBR180IChGSUVMRF9ERUNMX0NIRUNLIChOT0RFKSkgPSAxKQ0K IA0KIC8qIGdjYzo6aml0OjpwbGF5YmFjazo6Y29udGV4dDo6YnVpbGRfY2Fz dCB1c2VzIHRoZSBjb252ZXJ0LmggQVBJLA0KICAgIHdoaWNoIGluIHR1cm4g cmVxdWlyZXMgdGhlIGZyb250ZW5kIHRvIHByb3ZpZGUgYSAiY29udmVydCIN CkBAIC0yNjMsNiArMjY5LDQ2IEBAIG5ld19maWVsZCAobG9jYXRpb24gKmxv YywNCiAgIHJldHVybiBuZXcgZmllbGQgKGRlY2wpOw0KIH0NCiANCisvKiBD b25zdHJ1Y3QgYSBwbGF5YmFjazo6Yml0ZmllbGQgaW5zdGFuY2UgKHdyYXBw aW5nIGEgdHJlZSkuICAqLw0KKw0KK3BsYXliYWNrOjpmaWVsZCAqDQorcGxh eWJhY2s6OmNvbnRleHQ6Og0KK25ld19iaXRmaWVsZCAobG9jYXRpb24gKmxv YywNCisJICAgICAgdHlwZSAqdHlwZSwNCisJICAgICAgaW50IHdpZHRoLA0K KwkgICAgICBjb25zdCBjaGFyICpuYW1lKQ0KK3sNCisgIGdjY19hc3NlcnQg KHR5cGUpOw0KKyAgZ2NjX2Fzc2VydCAobmFtZSk7DQorICBnY2NfYXNzZXJ0 ICh3aWR0aCk7DQorDQorICAvKiBjb21wYXJlIHdpdGggYy9jLWRlY2wuYzpn cm9rZmllbGQsICBncm9rZGVjbGFyYXRvciBhbmQNCisgICAgIGNoZWNrX2Jp dGZpZWxkX3R5cGVfYW5kX3dpZHRoLiAgKi8NCisNCisgIHRyZWUgdHJlZV90 eXBlID0gdHlwZS0+YXNfdHJlZSAoKTsNCisgIGdjY19hc3NlcnQgKElOVEVH UkFMX1RZUEVfUCAodHJlZV90eXBlKSk7DQorICB0cmVlIHRyZWVfd2lkdGgg PSBidWlsZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwgd2lkdGgpOw0K KyAgaWYgKGNvbXBhcmVfdHJlZV9pbnQgKHRyZWVfd2lkdGgsIFRZUEVfUFJF Q0lTSU9OICh0cmVlX3R5cGUpKSA+IDApDQorICAgIHsNCisgICAgICBhZGRf ZXJyb3IgKA0KKwlsb2MsDQorCSJ3aWR0aCBvZiBiaXQtZmllbGQgJXMgKHdp ZHRoOiAlaSkgaXMgd2lkZXIgdGhhbiBpdHMgdHlwZSAod2lkdGg6ICVpKSIs DQorCW5hbWUsIHdpZHRoLCBUWVBFX1BSRUNJU0lPTiAodHJlZV90eXBlKSk7 DQorICAgICAgcmV0dXJuIE5VTEw7DQorICAgIH0NCisNCisgIHRyZWUgZGVj bCA9IGJ1aWxkX2RlY2wgKFVOS05PV05fTE9DQVRJT04sIEZJRUxEX0RFQ0ws DQorCQkJICBnZXRfaWRlbnRpZmllciAobmFtZSksIHR5cGUtPmFzX3RyZWUg KCkpOw0KKyAgREVDTF9OT05BRERSRVNTQUJMRV9QIChkZWNsKSA9IHRydWU7 DQorICBERUNMX0lOSVRJQUwgKGRlY2wpID0gdHJlZV93aWR0aDsNCisgIFNF VF9ERUNMX0NfQklUX0ZJRUxEIChkZWNsKTsNCisNCisgIGlmIChsb2MpDQor ICAgIHNldF90cmVlX2xvY2F0aW9uIChkZWNsLCBsb2MpOw0KKw0KKyAgcmV0 dXJuIG5ldyBmaWVsZCAoZGVjbCk7DQorfQ0KKw0KIC8qIENvbnN0cnVjdCBh IHBsYXliYWNrOjpjb21wb3VuZF90eXBlIGluc3RhbmNlICh3cmFwcGluZyBh IHRyZWUpLiAgKi8NCiANCiBwbGF5YmFjazo6Y29tcG91bmRfdHlwZSAqDQpA QCAtMjk1LDggKzM0MSwxNSBAQCBwbGF5YmFjazo6Y29tcG91bmRfdHlwZTo6 c2V0X2ZpZWxkcyAoY29uc3QgYXV0b192ZWM8cGxheWJhY2s6OmZpZWxkICo+ ICpmaWVsZHMpDQogICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmllbGRz LT5sZW5ndGggKCk7IGkrKykNCiAgICAgew0KICAgICAgIGZpZWxkICpmID0g KCpmaWVsZHMpW2ldOw0KLSAgICAgIERFQ0xfQ09OVEVYVCAoZi0+YXNfdHJl ZSAoKSkgPSB0Ow0KLSAgICAgIGZpZWxkbGlzdCA9IGNoYWlub24gKGYtPmFz X3RyZWUgKCksIGZpZWxkbGlzdCk7DQorICAgICAgdHJlZSB4ID0gZi0+YXNf dHJlZSAoKTsNCisgICAgICBERUNMX0NPTlRFWFQgKHgpID0gdDsNCisgICAg ICBpZiAoREVDTF9DX0JJVF9GSUVMRCAoeCkpDQorCXsNCisJICB1bnNpZ25l ZCBIT1NUX1dJREVfSU5UIHdpZHRoID0gdHJlZV90b191aHdpIChERUNMX0lO SVRJQUwgKHgpKTsNCisJICBERUNMX1NJWkUgKHgpID0gYml0c2l6ZV9pbnQg KHdpZHRoKTsNCisJICBERUNMX0JJVF9GSUVMRCAoeCkgPSAxOw0KKwl9DQor ICAgICAgZmllbGRsaXN0ID0gY2hhaW5vbiAoeCwgZmllbGRsaXN0KTsNCiAg ICAgfQ0KICAgZmllbGRsaXN0ID0gbnJldmVyc2UgKGZpZWxkbGlzdCk7DQog ICBUWVBFX0ZJRUxEUyAodCkgPSBmaWVsZGxpc3Q7DQpAQCAtMTE5NywyMCAr MTI1MCwzMSBAQCBkZXJlZmVyZW5jZSAobG9jYXRpb24gKmxvYykNCiAgIHJl dHVybiBuZXcgbHZhbHVlIChnZXRfY29udGV4dCAoKSwgZGF0dW0pOw0KIH0N CiANCi0vKiBNYXJrIEVYUCBzYXlpbmcgdGhhdCB3ZSBuZWVkIHRvIGJlIGFi bGUgdG8gdGFrZSB0aGUNCisvKiBNYXJrIHRoZSBsdmFsdWUgc2F5aW5nIHRo YXQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHRha2UgdGhlDQogICAgYWRkcmVz cyBvZiBpdDsgaXQgc2hvdWxkIG5vdCBiZSBhbGxvY2F0ZWQgaW4gYSByZWdp c3Rlci4NCi0gICBDb21wYXJlIHdpdGggZS5nLiBjL2MtdHlwZWNrLmM6IGNf bWFya19hZGRyZXNzYWJsZS4gICovDQorICAgQ29tcGFyZSB3aXRoIGUuZy4g Yy9jLXR5cGVjay5jOiBjX21hcmtfYWRkcmVzc2FibGUgcmVhbGx5X2F0b21p Y19sdmFsdWUuDQorICAgUmV0dXJucyBmYWxzZSBpZiBhIGZhaWx1cmUgb2Nj dXJyZWQgKGFuIGVycm9yIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4NCisgICBh ZGRlZCB0byB0aGUgYWN0aXZlIGNvbnRleHQgZm9yIHRoaXMgY2FzZSkuICAq Lw0KIA0KLXN0YXRpYyB2b2lkDQotaml0X21hcmtfYWRkcmVzc2FibGUgKHRy ZWUgZXhwKQ0KK2Jvb2wNCitwbGF5YmFjazo6bHZhbHVlOjoNCittYXJrX2Fk ZHJlc3NhYmxlIChsb2NhdGlvbiAqbG9jKQ0KIHsNCi0gIHRyZWUgeCA9IGV4 cDsNCisgIHRyZWUgeCA9IGFzX3RyZWUgKCk7Ow0KIA0KICAgd2hpbGUgKDEp DQogICAgIHN3aXRjaCAoVFJFRV9DT0RFICh4KSkNCiAgICAgICB7DQogICAg ICAgY2FzZSBDT01QT05FTlRfUkVGOg0KLQkvKiAod2UgZG9uJ3QgeWV0IHN1 cHBvcnQgYml0ZmllbGRzKSAgKi8NCisJaWYgKERFQ0xfQ19CSVRfRklFTEQg KFRSRUVfT1BFUkFORCAoeCwgMSkpKQ0KKwkgIHsNCisJICAgIGdjY19hc3Nl cnQgKGdjYzo6aml0OjphY3RpdmVfcGxheWJhY2tfY3R4dCk7DQorCSAgICBn Y2M6OmppdDo6DQorCSAgICAgIGFjdGl2ZV9wbGF5YmFja19jdHh0LT5hZGRf ZXJyb3IgKGxvYywNCisJCQkJCSAgICAgICAiY2Fubm90IHRha2UgYWRkcmVz cyBvZiAiDQorCQkJCQkgICAgICAgImJpdC1maWVsZCIpOw0KKwkgICAgcmV0 dXJuIGZhbHNlOw0KKwkgIH0NCiAJLyogZmFsbHRocm91Z2ggKi8NCiAgICAg ICBjYXNlIEFERFJfRVhQUjoNCiAgICAgICBjYXNlIEFSUkFZX1JFRjoNCkBA IC0xMjIyLDcgKzEyODYsNyBAQCBqaXRfbWFya19hZGRyZXNzYWJsZSAodHJl ZSBleHApDQogICAgICAgY2FzZSBDT01QT1VORF9MSVRFUkFMX0VYUFI6DQog ICAgICAgY2FzZSBDT05TVFJVQ1RPUjoNCiAJVFJFRV9BRERSRVNTQUJMRSAo eCkgPSAxOw0KLQlyZXR1cm47DQorCXJldHVybiB0cnVlOw0KIA0KICAgICAg IGNhc2UgVkFSX0RFQ0w6DQogICAgICAgY2FzZSBDT05TVF9ERUNMOg0KQEAg LTEyMzQsNyArMTI5OCw3IEBAIGppdF9tYXJrX2FkZHJlc3NhYmxlICh0cmVl IGV4cCkNCiAJVFJFRV9BRERSRVNTQUJMRSAoeCkgPSAxOw0KIAkvKiBmYWxs dGhyb3VnaCAqLw0KICAgICAgIGRlZmF1bHQ6DQotCXJldHVybjsNCisJcmV0 dXJuIHRydWU7DQogICAgICAgfQ0KIH0NCiANCkBAIC0xMjUxLDggKzEzMTUs MTAgQEAgZ2V0X2FkZHJlc3MgKGxvY2F0aW9uICpsb2MpDQogICB0cmVlIHB0 ciA9IGJ1aWxkMSAoQUREUl9FWFBSLCB0X3B0cnR5cGUsIHRfbHZhbHVlKTsN CiAgIGlmIChsb2MpDQogICAgIGdldF9jb250ZXh0ICgpLT5zZXRfdHJlZV9s b2NhdGlvbiAocHRyLCBsb2MpOw0KLSAgaml0X21hcmtfYWRkcmVzc2FibGUg KHRfbHZhbHVlKTsNCi0gIHJldHVybiBuZXcgcnZhbHVlIChnZXRfY29udGV4 dCAoKSwgcHRyKTsNCisgIGlmIChtYXJrX2FkZHJlc3NhYmxlIChsb2MpKQ0K KyAgICByZXR1cm4gbmV3IHJ2YWx1ZSAoZ2V0X2NvbnRleHQgKCksIHB0cik7 DQorICBlbHNlDQorICAgIHJldHVybiBOVUxMOw0KIH0NCiANCiAvKiBUaGUg d3JhcHBlciBzdWJjbGFzc2VzIGFyZSBHQy1tYW5hZ2VkLCBidXQgY2FuIG93 biBub24tR0MgbWVtb3J5Lg0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXJl Y29yZGluZy5oIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgNCmluZGV4IGI5 ZjIyNTAuLjEzZWM3ZWEgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2ppdC1yZWNv cmRpbmcuaA0KKysrIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgNCkBAIC05 NSw2ICs5NSwxMiBAQCBwdWJsaWM6DQogCSAgICAgdHlwZSAqdHlwZSwNCiAJ ICAgICBjb25zdCBjaGFyICpuYW1lKTsNCiANCisgIGZpZWxkICoNCisgIG5l d19iaXRmaWVsZCAobG9jYXRpb24gKmxvYywNCisgICAgICAgICAgICAgICAg dHlwZSAqdHlwZSwNCisgICAgICAgICAgICAgICAgaW50IHdpZHRoLA0KKyAg ICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsNCisNCiAgIHN0cnVj dF8gKg0KICAgbmV3X3N0cnVjdF90eXBlIChsb2NhdGlvbiAqbG9jLA0KIAkJ ICAgY29uc3QgY2hhciAqbmFtZSk7DQpAQCAtODIyLDkgKzgyOCw5IEBAIHB1 YmxpYzoNCiAgIGNvbXBvdW5kX3R5cGUgKiBnZXRfY29udGFpbmVyICgpIGNv bnN0IHsgcmV0dXJuIG1fY29udGFpbmVyOyB9DQogICB2b2lkIHNldF9jb250 YWluZXIgKGNvbXBvdW5kX3R5cGUgKmMpIHsgbV9jb250YWluZXIgPSBjOyB9 DQogDQotICB2b2lkIHJlcGxheV9pbnRvIChyZXBsYXllciAqKSBGSU5BTCBP VkVSUklERTsNCisgIHZvaWQgcmVwbGF5X2ludG8gKHJlcGxheWVyICopIE9W RVJSSURFOw0KIA0KLSAgdm9pZCB3cml0ZV90b19kdW1wIChkdW1wICZkKSBG SU5BTCBPVkVSUklERTsNCisgIHZvaWQgd3JpdGVfdG9fZHVtcCAoZHVtcCAm ZCkgT1ZFUlJJREU7DQogDQogICBwbGF5YmFjazo6ZmllbGQgKg0KICAgcGxh eWJhY2tfZmllbGQgKCkgY29uc3QNCkBAIC04MzMsMTYgKzgzOSw0MSBAQCBw dWJsaWM6DQogICB9DQogDQogcHJpdmF0ZToNCi0gIHN0cmluZyAqIG1ha2Vf ZGVidWdfc3RyaW5nICgpIEZJTkFMIE9WRVJSSURFOw0KLSAgdm9pZCB3cml0 ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKSBGSU5BTCBPVkVSUklERTsN CisgIHN0cmluZyAqIG1ha2VfZGVidWdfc3RyaW5nICgpIE9WRVJSSURFOw0K KyAgdm9pZCB3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKSBPVkVS UklERTsNCiANCi1wcml2YXRlOg0KK3Byb3RlY3RlZDoNCiAgIGxvY2F0aW9u ICptX2xvYzsNCiAgIHR5cGUgKm1fdHlwZTsNCiAgIHN0cmluZyAqbV9uYW1l Ow0KICAgY29tcG91bmRfdHlwZSAqbV9jb250YWluZXI7DQogfTsNCiANCisN CitjbGFzcyBiaXRmaWVsZCA6IHB1YmxpYyBmaWVsZA0KK3sNCitwdWJsaWM6 DQorICBiaXRmaWVsZCAoY29udGV4dCAqY3R4dCwNCisJICAgIGxvY2F0aW9u ICpsb2MsDQorCSAgICB0eXBlICp0eXBlLA0KKwkgICAgaW50IHdpZHRoLA0K KwkgICAgc3RyaW5nICpuYW1lKQ0KKyAgICA6IGZpZWxkIChjdHh0LCBsb2Ms IHR5cGUsIG5hbWUpLA0KKyAgICAgIG1fd2lkdGggKHdpZHRoKQ0KKyAge30N CisNCisgIHZvaWQgcmVwbGF5X2ludG8gKHJlcGxheWVyICopIEZJTkFMIE9W RVJSSURFOw0KKw0KKyAgdm9pZCB3cml0ZV90b19kdW1wIChkdW1wICZkKSBG SU5BTCBPVkVSUklERTsNCisNCitwcml2YXRlOg0KKyAgc3RyaW5nICogbWFr ZV9kZWJ1Z19zdHJpbmcgKCkgRklOQUwgT1ZFUlJJREU7DQorICB2b2lkIHdy aXRlX3JlcHJvZHVjZXIgKHJlcHJvZHVjZXIgJnIpIEZJTkFMIE9WRVJSSURF Ow0KKw0KK3ByaXZhdGU6DQorICBpbnQgbV93aWR0aDsNCit9Ow0KKw0KIC8q IEJhc2UgY2xhc3MgZm9yIHN0cnVjdF8gYW5kIHVuaW9uXyAqLw0KIGNsYXNz IGNvbXBvdW5kX3R5cGUgOiBwdWJsaWMgdHlwZQ0KIHsNCmRpZmYgLS1naXQg YS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYyBiL2djYy9qaXQvaml0LXJlY29y ZGluZy5jDQppbmRleCBhMzMyZmU4Li40OTVhYzdmIDEwMDY0NA0KLS0tIGEv Z2NjL2ppdC9qaXQtcmVjb3JkaW5nLmMNCisrKyBiL2djYy9qaXQvaml0LXJl Y29yZGluZy5jDQpAQCAtODcyLDYgKzg3MiwyNCBAQCByZWNvcmRpbmc6OmNv bnRleHQ6Om5ld19maWVsZCAocmVjb3JkaW5nOjpsb2NhdGlvbiAqbG9jLA0K ICAgcmV0dXJuIHJlc3VsdDsNCiB9DQogDQorLyogQ3JlYXRlIGEgcmVjb3Jk aW5nOjpiaXRmaWVsZCBpbnN0YW5jZSBhbmQgYWRkIGl0IHRvIHRoaXMgY29u dGV4dCdzIGxpc3QNCisgICBvZiBtZW1lbnRvcy4NCisNCisgICBJbXBsZW1l bnRzIHRoZSBwb3N0LWVycm9yLWNoZWNraW5nIHBhcnQgb2YNCisgICBnY2Nf aml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLiAgKi8NCisNCityZWNvcmRpbmc6 OmZpZWxkICoNCityZWNvcmRpbmc6OmNvbnRleHQ6Om5ld19iaXRmaWVsZCAo cmVjb3JkaW5nOjpsb2NhdGlvbiAqbG9jLA0KKwkJCQkgIHJlY29yZGluZzo6 dHlwZSAqdHlwZSwNCisJCQkJICBpbnQgd2lkdGgsDQorCQkJCSAgY29uc3Qg Y2hhciAqbmFtZSkNCit7DQorICByZWNvcmRpbmc6OmZpZWxkICpyZXN1bHQg PQ0KKyAgICBuZXcgcmVjb3JkaW5nOjpiaXRmaWVsZCAodGhpcywgbG9jLCB0 eXBlLCB3aWR0aCwgbmV3X3N0cmluZyAobmFtZSkpOw0KKyAgcmVjb3JkIChy ZXN1bHQpOw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQogLyogQ3JlYXRl IGEgcmVjb3JkaW5nOjpzdHJ1Y3RfIGluc3RhbmNlIGFuZCBhZGQgaXQgdG8g dGhpcyBjb250ZXh0J3MNCiAgICBsaXN0IG9mIG1lbWVudG9zIGFuZCBsaXN0 IG9mIGNvbXBvdW5kIHR5cGVzLg0KIA0KQEAgLTI5NjIsNyArMjk4MCw3IEBA IHJlY29yZGluZzo6ZmllbGQ6OnJlcGxheV9pbnRvIChyZXBsYXllciAqcikN CiAgICByZWNvcmRpbmc6Om1lbWVudG86OndyaXRlX3RvX2R1bXAuICBEdW1w IGVhY2ggZmllbGQNCiAgICBieSBkdW1waW5nIGEgbGluZSBvZiB0aGUgZm9y bToNCiAgICAgICBUWVBFIE5BTUU7DQotICAgc28gdGhhdCB3ZSBjYW4gYnVp bGQgdXAgYSBzdHJ1Y3QvdW5pb24gZmllbGQtYnlmaWVsZC4gICovDQorICAg c28gdGhhdCB3ZSBjYW4gYnVpbGQgdXAgYSBzdHJ1Y3QvdW5pb24gZmllbGQg YnkgZmllbGQuICAqLw0KIA0KIHZvaWQNCiByZWNvcmRpbmc6OmZpZWxkOjp3 cml0ZV90b19kdW1wIChkdW1wICZkKQ0KQEAgLTI5OTksNiArMzAxNyw2NiBA QCByZWNvcmRpbmc6OmZpZWxkOjp3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1 Y2VyICZyKQ0KIAkgIG1fbmFtZS0+Z2V0X2RlYnVnX3N0cmluZyAoKSk7DQog fQ0KIA0KKy8qIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBnY2M6Ompp dDo6cmVjb3JkaW5nOjpiaXRmaWVsZC4gICovDQorDQorLyogSW1wbGVtZW50 YXRpb24gb2YgcHVyZSB2aXJ0dWFsIGhvb2sgcmVjb3JkaW5nOjptZW1lbnRv OjpyZXBsYXlfaW50bw0KKyAgIGZvciByZWNvcmRpbmc6OmJpdGZpZWxkLiAg Ki8NCisNCit2b2lkDQorcmVjb3JkaW5nOjpiaXRmaWVsZDo6cmVwbGF5X2lu dG8gKHJlcGxheWVyICpyKQ0KK3sNCisgIHNldF9wbGF5YmFja19vYmogKHIt Pm5ld19iaXRmaWVsZCAocGxheWJhY2tfbG9jYXRpb24gKHIsIG1fbG9jKSwN CisJCQkJICAgICBtX3R5cGUtPnBsYXliYWNrX3R5cGUgKCksDQorCQkJCSAg ICAgbV93aWR0aCwNCisJCQkJICAgICBwbGF5YmFja19zdHJpbmcgKG1fbmFt ZSkpKTsNCit9DQorDQorLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW1wbGVt ZW50YXRpb24gb2YNCisgICByZWNvcmRpbmc6Om1lbWVudG86OndyaXRlX3Rv X2R1bXAuICBEdW1wIGVhY2ggYml0IGZpZWxkDQorICAgYnkgZHVtcGluZyBh IGxpbmUgb2YgdGhlIGZvcm06DQorICAgICAgVFlQRSBOQU1FOldJRFRIOw0K KyAgIHNvIHRoYXQgd2UgY2FuIGJ1aWxkIHVwIGEgc3RydWN0L3VuaW9uIGZp ZWxkIGJ5IGZpZWxkLiAgKi8NCisNCit2b2lkDQorcmVjb3JkaW5nOjpiaXRm aWVsZDo6d3JpdGVfdG9fZHVtcCAoZHVtcCAmZCkNCit7DQorICBkLndyaXRl ICgiICAlcyAlczolZDtcbiIsDQorCSAgIG1fdHlwZS0+Z2V0X2RlYnVnX3N0 cmluZyAoKSwNCisJICAgbV9uYW1lLT5jX3N0ciAoKSwNCisJICAgbV93aWR0 aCk7DQorfQ0KKw0KKy8qIEltcGxlbWVudGF0aW9uIG9mIHJlY29yZGluZzo6 bWVtZW50bzo6bWFrZV9kZWJ1Z19zdHJpbmcgZm9yDQorICAgcmVzdWx0cyBv ZiBuZXdfYml0ZmllbGQuICAqLw0KKw0KK3JlY29yZGluZzo6c3RyaW5nICoN CityZWNvcmRpbmc6OmJpdGZpZWxkOjptYWtlX2RlYnVnX3N0cmluZyAoKQ0K K3sNCisgIHJldHVybiBzdHJpbmc6OmZyb21fcHJpbnRmIChtX2N0eHQsDQor CQkJICAgICAgIiVzOiVkIiwNCisJCQkgICAgICBtX25hbWUtPmNfc3RyICgp LCBtX3dpZHRoKTsNCit9DQorDQorLyogSW1wbGVtZW50YXRpb24gb2YgcmVj b3JkaW5nOjptZW1lbnRvOjp3cml0ZV9yZXByb2R1Y2VyIGZvciBiaXRmaWVs ZHMuICAqLw0KKw0KK3ZvaWQNCityZWNvcmRpbmc6OmJpdGZpZWxkOjp3cml0 ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKQ0KK3sNCisgIGNvbnN0IGNo YXIgKmlkID0gci5tYWtlX2lkZW50aWZpZXIgKHRoaXMsICJiaXRmaWVsZCIp Ow0KKyAgci53cml0ZSAoIiAgZ2NjX2ppdF9maWVsZCAqJXMgPVxuIg0KKwkg ICAiICAgIGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKCVzLFxuIg0K KwkgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVzLCAvKiBn Y2Nfaml0X2xvY2F0aW9uICpsb2MgKi9cbiINCisJICAgIiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAlcywgLyogZ2NjX2ppdF90eXBlICp0eXBl LCAqL1xuIg0KKwkgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICVkLCAvKiBpbnQgd2lkdGgsICovXG4iDQorCSAgICIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJXMpOyAvKiBjb25zdCBjaGFyICpuYW1lICov XG4iLA0KKwkgICBpZCwNCisJICAgci5nZXRfaWRlbnRpZmllciAoZ2V0X2Nv bnRleHQgKCkpLA0KKwkgICByLmdldF9pZGVudGlmaWVyIChtX2xvYyksDQor CSAgIHIuZ2V0X2lkZW50aWZpZXJfYXNfdHlwZSAobV90eXBlKSwNCisJICAg bV93aWR0aCwNCisJICAgbV9uYW1lLT5nZXRfZGVidWdfc3RyaW5nICgpKTsN Cit9DQorDQogLyogVGhlIGltcGxlbWVudGF0aW9uIG9mIGNsYXNzIGdjYzo6 aml0OjpyZWNvcmRpbmc6OmNvbXBvdW5kX3R5cGUgKi8NCiANCiAvKiBUaGUg Y29uc3RydWN0b3IgZm9yIGdjYzo6aml0OjpyZWNvcmRpbmc6OmNvbXBvdW5k X3R5cGUuICAqLw0KZGlmZiAtLWdpdCBhL2djYy9qaXQvbGliZ2Njaml0Kysu aCBiL2djYy9qaXQvbGliZ2Njaml0KysuaA0KaW5kZXggNTVhZWJjYS4uMGM1 YmU1YSAxMDA2NDQNCi0tLSBhL2djYy9qaXQvbGliZ2Njaml0KysuaA0KKysr IGIvZ2NjL2ppdC9saWJnY2NqaXQrKy5oDQpAQCAtMTUyLDYgKzE1Miw5IEBA IG5hbWVzcGFjZSBnY2NqaXQNCiAgICAgZmllbGQgbmV3X2ZpZWxkICh0eXBl IHR5cGVfLCBjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSwNCiAJCSAgICAgbG9j YXRpb24gbG9jID0gbG9jYXRpb24gKCkpOw0KIA0KKyAgICBmaWVsZCBuZXdf Yml0ZmllbGQgKHR5cGUgdHlwZV8sIGludCB3aWR0aCwgY29uc3Qgc3RkOjpz dHJpbmcgJm5hbWUsDQorCQkJbG9jYXRpb24gbG9jID0gbG9jYXRpb24gKCkp Ow0KKw0KICAgICBzdHJ1Y3RfIG5ld19zdHJ1Y3RfdHlwZSAoY29uc3Qgc3Rk OjpzdHJpbmcgJm5hbWUsDQogCQkJICAgICBzdGQ6OnZlY3RvcjxmaWVsZD4g JmZpZWxkcywNCiAJCQkgICAgIGxvY2F0aW9uIGxvYyA9IGxvY2F0aW9uICgp KTsNCkBAIC03NTcsNiArNzYwLDE3IEBAIGNvbnRleHQ6Om5ld19maWVsZCAo dHlwZSB0eXBlXywgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsIGxvY2F0aW9u IGxvYykNCiAJCQkJCSAgIG5hbWUuY19zdHIgKCkpKTsNCiB9DQogDQoraW5s aW5lIGZpZWxkDQorY29udGV4dDo6bmV3X2JpdGZpZWxkICh0eXBlIHR5cGVf LCBpbnQgd2lkdGgsIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLA0KKwkJICAg ICAgIGxvY2F0aW9uIGxvYykNCit7DQorICByZXR1cm4gZmllbGQgKGdjY19q aXRfY29udGV4dF9uZXdfYml0ZmllbGQgKG1faW5uZXJfY3R4dCwNCisJCQkJ CSAgICAgIGxvYy5nZXRfaW5uZXJfbG9jYXRpb24gKCksDQorCQkJCQkgICAg ICB0eXBlXy5nZXRfaW5uZXJfdHlwZSAoKSwNCisJCQkJCSAgICAgIHdpZHRo LA0KKwkJCQkJICAgICAgbmFtZS5jX3N0ciAoKSkpOw0KK30NCisNCiBpbmxp bmUgc3RydWN0Xw0KIGNvbnRleHQ6Om5ld19zdHJ1Y3RfdHlwZSAoY29uc3Qg c3RkOjpzdHJpbmcgJm5hbWUsDQogCQkJICBzdGQ6OnZlY3RvcjxmaWVsZD4g JmZpZWxkcywNCmRpZmYgLS1naXQgYS9nY2Mvaml0L2xpYmdjY2ppdC5oIGIv Z2NjL2ppdC9saWJnY2NqaXQuaA0KaW5kZXggYmVlYjc0Ny4uOWM1ZjIzYiAx MDA2NDQNCi0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmgNCisrKyBiL2djYy9q aXQvbGliZ2Njaml0LmgNCkBAIC02MDIsNiArNjAyLDIxIEBAIGdjY19qaXRf Y29udGV4dF9uZXdfZmllbGQgKGdjY19qaXRfY29udGV4dCAqY3R4dCwNCiAJ CQkgICBnY2Nfaml0X3R5cGUgKnR5cGUsDQogCQkJICAgY29uc3QgY2hhciAq bmFtZSk7DQogDQorI2RlZmluZSBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2Nv bnRleHRfbmV3X2JpdGZpZWxkDQorDQorLyogQ3JlYXRlIGEgYml0IGZpZWxk LCBmb3IgdXNlIHdpdGhpbiBhIHN0cnVjdCBvciB1bmlvbi4NCisNCisgICBU aGlzIEFQSSBlbnRyeXBvaW50IHdhcyBhZGRlZCBpbiBMSUJHQ0NKSVRfQUJJ XzEyOyB5b3UgY2FuIHRlc3QgZm9yIGl0cw0KKyAgIHByZXNlbmNlIHVzaW5n DQorICAgICAjaWZkZWYgTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0 X25ld19iaXRmaWVsZA0KKyovDQorZXh0ZXJuIGdjY19qaXRfZmllbGQgKg0K K2djY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKGdjY19qaXRfY29udGV4 dCAqY3R4dCwNCisJCQkgICAgICBnY2Nfaml0X2xvY2F0aW9uICpsb2MsDQor CQkJICAgICAgZ2NjX2ppdF90eXBlICp0eXBlLA0KKwkJCSAgICAgIGludCB3 aWR0aCwNCisJCQkgICAgICBjb25zdCBjaGFyICpuYW1lKTsNCisNCiAvKiBV cGNhc3RpbmcgZnJvbSBmaWVsZCB0byBvYmplY3QuICAqLw0KIGV4dGVybiBn Y2Nfaml0X29iamVjdCAqDQogZ2NjX2ppdF9maWVsZF9hc19vYmplY3QgKGdj Y19qaXRfZmllbGQgKmZpZWxkKTsNCmRpZmYgLS1naXQgYS9nY2Mvaml0L2xp YmdjY2ppdC5jIGIvZ2NjL2ppdC9saWJnY2NqaXQuYw0KaW5kZXggZTRmMTdm OC4uYWJmNzAxOSAxMDA2NDQNCi0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmMN CisrKyBiL2djYy9qaXQvbGliZ2Njaml0LmMNCkBAIC02Miw2ICs2MiwxMCBA QCBzdHJ1Y3QgZ2NjX2ppdF9maWVsZCA6IHB1YmxpYyBnY2M6OmppdDo6cmVj b3JkaW5nOjpmaWVsZA0KIHsNCiB9Ow0KIA0KK3N0cnVjdCBnY2Nfaml0X2Jp dGZpZWxkIDogcHVibGljIGdjYzo6aml0OjpyZWNvcmRpbmc6OmJpdGZpZWxk DQorew0KK307DQorDQogc3RydWN0IGdjY19qaXRfZnVuY3Rpb24gOiBwdWJs aWMgZ2NjOjpqaXQ6OnJlY29yZGluZzo6ZnVuY3Rpb24NCiB7DQogfTsNCkBA IC01NTYsNiArNTYwLDQyIEBAIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQg KGdjY19qaXRfY29udGV4dCAqY3R4dCwNCiANCiAvKiBQdWJsaWMgZW50cnlw b2ludC4gIFNlZSBkZXNjcmlwdGlvbiBpbiBsaWJnY2NqaXQuaC4NCiANCisg ICBBZnRlciBlcnJvci1jaGVja2luZywgdGhlIHJlYWwgd29yayBpcyBkb25l IGJ5IHRoZQ0KKyAgIGdjYzo6aml0OjpyZWNvcmRpbmc6OmNvbnRleHQ6Om5l d19iaXRmaWVsZCBtZXRob2QsIGluDQorICAgaml0LXJlY29yZGluZy5jLiAg Ki8NCisNCitnY2Nfaml0X2ZpZWxkICoNCitnY2Nfaml0X2NvbnRleHRfbmV3 X2JpdGZpZWxkIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsDQorCQkJICAgICAg Z2NjX2ppdF9sb2NhdGlvbiAqbG9jLA0KKwkJCSAgICAgIGdjY19qaXRfdHlw ZSAqdHlwZSwNCisJCQkgICAgICBpbnQgd2lkdGgsDQorCQkJICAgICAgY29u c3QgY2hhciAqbmFtZSkNCit7DQorICBSRVRVUk5fTlVMTF9JRl9GQUlMIChj dHh0LCBOVUxMLCBOVUxMLCAiTlVMTCBjb250ZXh0Iik7DQorICBKSVRfTE9H X0ZVTkMgKGN0eHQtPmdldF9sb2dnZXIgKCkpOw0KKyAgLyogTE9DIGNhbiBi ZSBOVUxMLiAgKi8NCisgIFJFVFVSTl9OVUxMX0lGX0ZBSUwgKG5hbWUsIGN0 eHQsIGxvYywgIk5VTEwgbmFtZSIpOw0KKyAgUkVUVVJOX05VTExfSUZfRkFJ TCAodHlwZSwgY3R4dCwgbG9jLCAiTlVMTCB0eXBlIik7DQorICBSRVRVUk5f TlVMTF9JRl9GQUlMX1BSSU5URjIgKHR5cGUtPmlzX2ludCAoKSB8fCB0eXBl LT5pc19ib29sICgpLA0KKwkJCSAgICAgICBjdHh0LCBsb2MsDQorCQkJICAg ICAgICJiaXQtZmllbGQgJXMgaGFzIG5vbiBpbnRlZ3JhbCB0eXBlICVzIiwN CisJCQkgICAgICAgbmFtZSwgdHlwZS0+Z2V0X2RlYnVnX3N0cmluZyAoKSk7 DQorICBSRVRVUk5fTlVMTF9JRl9GQUlMX1BSSU5URjIgKA0KKyAgICB3aWR0 aCA+IDAsIGN0eHQsIGxvYywNCisgICAgImludmFsaWQgd2lkdGggJWQgZm9y IGJpdGZpZWxkIFwiJXNcIiAobXVzdCBiZSA+IDApIiwNCisgICAgd2lkdGgs IG5hbWUpOw0KKyAgUkVUVVJOX05VTExfSUZfRkFJTF9QUklOVEYyICgNCisg ICAgdHlwZS0+aGFzX2tub3duX3NpemUgKCksDQorICAgIGN0eHQsIGxvYywN CisgICAgInVua25vd24gc2l6ZSBmb3IgZmllbGQgXCIlc1wiICh0eXBlOiAl cykiLA0KKyAgICBuYW1lLA0KKyAgICB0eXBlLT5nZXRfZGVidWdfc3RyaW5n ICgpKTsNCisNCisgIHJldHVybiAoZ2NjX2ppdF9maWVsZCAqKWN0eHQtPm5l d19iaXRmaWVsZCAobG9jLCB0eXBlLCB3aWR0aCwgbmFtZSk7DQorfQ0KKw0K Ky8qIFB1YmxpYyBlbnRyeXBvaW50LiAgU2VlIGRlc2NyaXB0aW9uIGluIGxp YmdjY2ppdC5oLg0KKw0KICAgIEFmdGVyIGVycm9yLWNoZWNraW5nLCB0aGlz IGNhbGxzIHRoZSB0cml2aWFsDQogICAgZ2NjOjpqaXQ6OnJlY29yZGluZzo6 bWVtZW50bzo6YXNfb2JqZWN0IG1ldGhvZCAoYSBmaWVsZCBpcyBhDQogICAg bWVtZW50byksIGluIGppdC1yZWNvcmRpbmcuaC4gICovDQpkaWZmIC0tZ2l0 IGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwIGIvZ2NjL2ppdC9saWJnY2NqaXQu bWFwDQppbmRleCAxNmY1MjUzLi40MGUxYzc4IDEwMDY0NA0KLS0tIGEvZ2Nj L2ppdC9saWJnY2NqaXQubWFwDQorKysgYi9nY2Mvaml0L2xpYmdjY2ppdC5t YXANCkBAIC0xNzQsNCArMTc0LDkgQEAgTElCR0NDSklUX0FCSV8xMCB7DQog TElCR0NDSklUX0FCSV8xMSB7DQogICBnbG9iYWw6DQogICAgIGdjY19qaXRf Y29udGV4dF9hZGRfZHJpdmVyX29wdGlvbjsNCi19IExJQkdDQ0pJVF9BQklf MTA7DQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCit9IExJQkdDQ0pJ VF9BQklfMTA7DQorDQorTElCR0NDSklUX0FCSV8xMiB7DQorICBnbG9iYWw6 DQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQ7DQorfSBMSUJH Q0NKSVRfQUJJXzExOw0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWls aW5nLXRlc3RzLmggYi9nY2MvdGVzdHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZh aWxpbmctdGVzdHMuaA0KaW5kZXggOWExMDQxOC4uZjdhZjhlOSAxMDA2NDQN Ci0tLSBhL2djYy90ZXN0c3VpdGUvaml0LmRnL2FsbC1ub24tZmFpbGluZy10 ZXN0cy5oDQorKysgYi9nY2MvdGVzdHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZh aWxpbmctdGVzdHMuaA0KQEAgLTgsNiArOCwxMyBAQA0KICAgIGhvb2tzIHBy b3ZpZGVkIGJ5IGVhY2ggdGVzdCBjYXNlLiAgKi8NCiAjZGVmaW5lIENPTUJJ TkVEX1RFU1QNCiANCisvKiB0ZXN0LWFjY2Vzc2luZy1iaXRmaWVsZC5jICov DQorI2RlZmluZSBjcmVhdGVfY29kZSBjcmVhdGVfY29kZV9hY2Nlc3Npbmdf Yml0ZmllbGQNCisjZGVmaW5lIHZlcmlmeV9jb2RlIHZlcmlmeV9jb2RlX2Fj Y2Vzc2luZ19iaXRmaWVsZA0KKyNpbmNsdWRlICJ0ZXN0LWFjY2Vzc2luZy1i aXRmaWVsZC5jIg0KKyN1bmRlZiBjcmVhdGVfY29kZQ0KKyN1bmRlZiB2ZXJp ZnlfY29kZQ0KKw0KIC8qIHRlc3QtYWNjZXNzaW5nLXN0cnVjdC5jICovDQog I2RlZmluZSBjcmVhdGVfY29kZSBjcmVhdGVfY29kZV9hY2Nlc3Npbmdfc3Ry dWN0DQogI2RlZmluZSB2ZXJpZnlfY29kZSB2ZXJpZnlfY29kZV9hY2Nlc3Np bmdfc3RydWN0DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcv dGVzdC1hY2Nlc3NpbmctYml0ZmllbGQuYyBiL2djYy90ZXN0c3VpdGUvaml0 LmRnL3Rlc3QtYWNjZXNzaW5nLWJpdGZpZWxkLmMNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwLi42Y2E4YjI0DQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWFjY2Vzc2luZy1i aXRmaWVsZC5jDQpAQCAtMCwwICsxLDEzMCBAQA0KKyNpbmNsdWRlIDxzdGRs aWIuaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCisNCisjaW5jbHVkZSAibGli Z2Njaml0LmgiDQorDQorI2luY2x1ZGUgImhhcm5lc3MuaCINCisNCitzdHJ1 Y3QgYml0X2Zvbw0KK3sNCisgIGludCBpOjM7DQorICBpbnQgeDo1Ow0KKyAg aW50IHk6NTsNCisgIGludCB6OjEwOw0KKyAgaW50IGo6MzsNCit9Ow0KKw0K K3ZvaWQNCitjcmVhdGVfY29kZSAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCB2 b2lkICp1c2VyX2RhdGEpDQorew0KKyAgLyogTGV0J3MgdHJ5IHRvIGluamVj dCB0aGUgZXF1aXZhbGVudCBvZjoNCisgICAgIHZvaWQNCisgICAgIHRlc3Rf YWNjZXNzIChzdHJ1Y3QgYml0X2ZvbyAqZikNCisgICAgIHsNCisgICAgICAg IGYtPnogPSBmLT54ICsgZi0+eTsNCisgICAgIH0NCisgICovDQorICBnY2Nf aml0X3R5cGUgKnZvaWRfdHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9n ZXRfdHlwZSAoY3R4dCwgR0NDX0pJVF9UWVBFX1ZPSUQpOw0KKyAgZ2NjX2pp dF90eXBlICppbnRfdHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRf dHlwZSAoY3R4dCwgR0NDX0pJVF9UWVBFX0lOVCk7DQorICBnY2Nfaml0X2Zp ZWxkICppID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAo Y3R4dCwNCisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBlLA0KKwkJCQkg IDMsDQorCQkJCSAgImkiKTsNCisgIGdjY19qaXRfZmllbGQgKnggPQ0KKyAg ICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0LA0KKwkJCQkg IE5VTEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJCSAgNSwNCisJCQkJICAi eCIpOw0KKyAgZ2NjX2ppdF9maWVsZCAqeSA9DQorICAgIGdjY19qaXRfY29u dGV4dF9uZXdfYml0ZmllbGQgKGN0eHQsDQorCQkJCSAgTlVMTCwNCisJCQkJ ICBpbnRfdHlwZSwNCisJCQkJICA1LA0KKwkJCQkgICJ5Iik7DQorICBnY2Nf aml0X2ZpZWxkICp6ID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRm aWVsZCAoY3R4dCwNCisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBlLA0K KwkJCQkgIDEwLA0KKwkJCQkgICJ6Iik7DQorICBnY2Nfaml0X2ZpZWxkICpq ID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwN CisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBlLA0KKwkJCQkgIDMsDQor CQkJCSAgImoiKTsNCisgIGdjY19qaXRfZmllbGQgKmZpZWxkc1tdID0ge2ks IHgsIHksIHosIGp9Ow0KKyAgZ2NjX2ppdF9zdHJ1Y3QgKnN0cnVjdF90eXBl ID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSAoY3R4 dCwgTlVMTCwgImJpdF9mb28iLCA1LCBmaWVsZHMpOw0KKyAgZ2NjX2ppdF90 eXBlICpwdHJfdHlwZSA9DQorICAgIGdjY19qaXRfdHlwZV9nZXRfcG9pbnRl ciAoZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZSAoc3RydWN0X3R5cGUpKTsNCisN CisgIC8qIEJ1aWxkIHRoZSB0ZXN0IGZ1bmN0aW9uLiAgKi8NCisgIGdjY19q aXRfcGFyYW0gKnBhcmFtX2YgPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3 X3BhcmFtIChjdHh0LCBOVUxMLCBwdHJfdHlwZSwgImYiKTsNCisgIGdjY19q aXRfZnVuY3Rpb24gKnRlc3RfZm4gPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRf bmV3X2Z1bmN0aW9uIChjdHh0LCBOVUxMLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHQ0NfSklUX0ZVTkNUSU9OX0VYUE9SVEVELA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkX3R5cGUs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X2Fj Y2VzcyIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEs ICZwYXJhbV9mLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsNCisNCisgIC8qIGYtPnggKyBmLT55ICovDQorICBnY2Nfaml0X3J2 YWx1ZSAqc3VtID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaW5hcnlf b3AgKA0KKyAgICAgIGN0eHQsIE5VTEwsDQorICAgICAgR0NDX0pJVF9CSU5B UllfT1BfUExVUywNCisgICAgICBpbnRfdHlwZSwNCisgICAgICBnY2Nfaml0 X2x2YWx1ZV9hc19ydmFsdWUgKA0KKwlnY2Nfaml0X3J2YWx1ZV9kZXJlZmVy ZW5jZV9maWVsZCAoDQorCSAgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBh cmFtX2YpLA0KKwkgIE5VTEwsDQorCSAgeCkpLA0KKyAgICAgIGdjY19qaXRf bHZhbHVlX2FzX3J2YWx1ZSAoDQorCWdjY19qaXRfcnZhbHVlX2RlcmVmZXJl bmNlX2ZpZWxkICgNCisJZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBhcmFt X2YpLA0KKwlOVUxMLA0KKwl5KSkpOw0KKw0KKyAgLyogZi0+eiA9IC4uLiAq Lw0KKyAgZ2NjX2ppdF9ibG9jayAqYmxvY2sgPSBnY2Nfaml0X2Z1bmN0aW9u X25ld19ibG9jayAodGVzdF9mbiwgTlVMTCk7DQorICBnY2Nfaml0X2Jsb2Nr X2FkZF9hc3NpZ25tZW50ICgNCisgICAgYmxvY2ssDQorICAgIE5VTEwsDQor ICAgIGdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlX2ZpZWxkICgNCisgICAg ICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAocGFyYW1fZiksDQorICAgICAg TlVMTCwNCisgICAgICB6KSwNCisgICAgc3VtKTsNCisgIGdjY19qaXRfYmxv Y2tfZW5kX3dpdGhfdm9pZF9yZXR1cm4gKGJsb2NrLCBOVUxMKTsNCit9DQor DQordm9pZA0KK3ZlcmlmeV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQs IGdjY19qaXRfcmVzdWx0ICpyZXN1bHQpDQorew0KKyAgdHlwZWRlZiB2b2lk ICgqZm5fdHlwZSkgKHN0cnVjdCBiaXRfZm9vICopOw0KKyAgQ0hFQ0tfTk9O X05VTEwgKHJlc3VsdCk7DQorDQorICBmbl90eXBlIHRlc3RfYWNjZXNzID0N CisgICAgKGZuX3R5cGUpZ2NjX2ppdF9yZXN1bHRfZ2V0X2NvZGUgKHJlc3Vs dCwgInRlc3RfYWNjZXNzIik7DQorICBDSEVDS19OT05fTlVMTCAodGVzdF9h Y2Nlc3MpOw0KKw0KKyAgc3RydWN0IGJpdF9mb28gdG1wOw0KKyAgdG1wLmkg PSAzOw0KKyAgdG1wLnggPSA1Ow0KKyAgdG1wLnkgPSA3Ow0KKyAgdG1wLnog PSAwOw0KKyAgdG1wLmogPSAzOw0KKw0KKyAgLyogQ2FsbCB0aGUgSklULWdl bmVyYXRlZCBmdW5jdGlvbi4gICovDQorICB0ZXN0X2FjY2VzcyAoJnRtcCk7 DQorDQorICAvKiBWZXJpZnkgdGhhdCB0aGUgY29kZSBjb3JyZWN0bHkgbW9k aWZpZWQgdGhlIGZpZWxkICJ6Ii4gICovDQorICBDSEVDS19WQUxVRSAodG1w LnosIDEyKTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQu ZGcvdGVzdC1lcnJvci1nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLWlu dmFsaWQtdHlwZS5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJv ci1nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtdHlwZS5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZDJlZjVh OA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcv dGVzdC1lcnJvci1nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFs aWQtdHlwZS5jDQpAQCAtMCwwICsxLDUzIEBADQorI2luY2x1ZGUgPHN0ZGxp Yi5oPg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKw0KKyNpbmNsdWRlICJsaWJn Y2NqaXQuaCINCisNCisjaW5jbHVkZSAiaGFybmVzcy5oIg0KKw0KKy8qIFRy eSB0byBkZWNsYXJlIGEgYml0LWZpZWxkIHdpdGggaW52YWxpZCB0eXBlLiAg Ki8NCisNCit2b2lkDQorY3JlYXRlX2NvZGUgKGdjY19qaXRfY29udGV4dCAq Y3R4dCwgdm9pZCAqdXNlcl9kYXRhKQ0KK3sNCisgIGdjY19qaXRfdHlwZSAq Ym9vbF90eXBlID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChj dHh0LCBHQ0NfSklUX1RZUEVfQk9PTCk7DQorICBnY2Nfaml0X3R5cGUgKmlu dF90eXBlID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0 LCBHQ0NfSklUX1RZUEVfSU5UKTsNCisgIGdjY19qaXRfdHlwZSAqbG9uZ190 eXBlID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBH Q0NfSklUX1RZUEVfTE9ORyk7DQorICBnY2Nfaml0X3R5cGUgKmZsb2F0X3R5 cGUgPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfZ2V0X3R5cGUgKGN0eHQsIEdD Q19KSVRfVFlQRV9GTE9BVCk7DQorDQorICBnY2Nfaml0X2NvbnRleHRfbmV3 X2JpdGZpZWxkIChjdHh0LA0KKwkJCQlOVUxMLA0KKwkJCQlib29sX3R5cGUs DQorCQkJCTMsDQorCQkJCSJiIik7DQorICBnY2Nfaml0X2NvbnRleHRfbmV3 X2JpdGZpZWxkIChjdHh0LA0KKwkJCQkgIE5VTEwsDQorCQkJCSAgaW50X3R5 cGUsDQorCQkJCSAgMywNCisJCQkJICAiaSIpOw0KKyAgZ2NjX2ppdF9jb250 ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJCQkJTlVMTCwNCisJCQkJbG9u Z190eXBlLA0KKwkJCQkzLA0KKwkJCQkibCIpOw0KKyAgZ2NjX2ppdF9jb250 ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJCQkJTlVMTCwNCisJCQkJZmxv YXRfdHlwZSwNCisJCQkJNSwNCisJCQkJImYiKTsNCit9DQorDQordm9pZA0K K3ZlcmlmeV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRf cmVzdWx0ICpyZXN1bHQpDQorew0KKyAgQ0hFQ0tfVkFMVUUgKHJlc3VsdCwg TlVMTCk7DQorDQorICAvKiBWZXJpZnkgdGhhdCB0aGUgY29ycmVjdCBlcnJv ciBtZXNzYWdlIHdhcyBlbWl0dGVkLgkgKi8NCisgIENIRUNLX1NUUklOR19W QUxVRSAoZ2NjX2ppdF9jb250ZXh0X2dldF9maXJzdF9lcnJvciAoY3R4dCks DQorCQkgICAgICAiZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZDogYml0 LWZpZWxkIGYgaGFzIG5vbiAiDQorCQkgICAgICAiaW50ZWdyYWwgdHlwZSBm bG9hdCIpOw0KK30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5k Zy90ZXN0LWVycm9yLWdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQtaW52 YWxpZC13aWR0aC5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJv ci1nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtd2lkdGgu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjZjYjE1 MWINCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvaml0LmRn L3Rlc3QtZXJyb3ItZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZC1pbnZh bGlkLXdpZHRoLmMNCkBAIC0wLDAgKzEsNDAgQEANCisjaW5jbHVkZSA8c3Rk bGliLmg+DQorI2luY2x1ZGUgPHN0ZGlvLmg+DQorDQorI2luY2x1ZGUgImxp YmdjY2ppdC5oIg0KKw0KKyNpbmNsdWRlICJoYXJuZXNzLmgiDQorDQorLyog VHJ5IHRvIGRlY2xhcmUgYSBiaXQtZmllbGQgd2l0aCBpbnZhbGlkIHdpZHRo LiAgKi8NCisNCit2b2lkDQorY3JlYXRlX2NvZGUgKGdjY19qaXRfY29udGV4 dCAqY3R4dCwgdm9pZCAqdXNlcl9kYXRhKQ0KK3sNCisgIGdjY19qaXRfdHlw ZSAqc2hvcnRfdHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlw ZSAoY3R4dCwgR0NDX0pJVF9UWVBFX1NIT1JUKTsNCisgIGdjY19qaXRfZmll bGQgKmkgPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChj dHh0LA0KKwkJCQkgIE5VTEwsDQorCQkJCSAgc2hvcnRfdHlwZSwNCisJCQkJ ICAzLA0KKwkJCQkgICJpIik7DQorICBnY2Nfaml0X2ZpZWxkICpqID0NCisg ICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJCQkJ ICBOVUxMLA0KKwkJCQkgIHNob3J0X3R5cGUsDQorCQkJCSAgNTcsDQorCQkJ CSAgImoiKTsNCisgIGdjY19qaXRfZmllbGQgKmZpZWxkc1tdID0ge2ksIGp9 Ow0KKyAgZ2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSAoY3R4dCwg TlVMTCwgImJpdF9mb28iLCAyLCBmaWVsZHMpOw0KK30NCisNCit2b2lkDQor dmVyaWZ5X2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgZ2NjX2ppdF9y ZXN1bHQgKnJlc3VsdCkNCit7DQorICBDSEVDS19WQUxVRSAocmVzdWx0LCBO VUxMKTsNCisNCisgICAvKiBWZXJpZnkgdGhhdCB0aGUgY29ycmVjdCBlcnJv ciBtZXNzYWdlIHdhcyBlbWl0dGVkLiAgKi8NCisgIENIRUNLX1NUUklOR19W QUxVRSAoZ2NjX2ppdF9jb250ZXh0X2dldF9maXJzdF9lcnJvciAoY3R4dCks DQorCQkgICAgICAid2lkdGggb2YgYml0LWZpZWxkIGogKHdpZHRoOiA1Nykg aXMgd2lkZXIgdGhhbiBpdHMgdHlwZSAiDQorCQkgICAgICAiKHdpZHRoOiAx NikiKTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcv dGVzdC1lcnJvci1nY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcy1iaXRmaWVs ZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0 X2x2YWx1ZV9nZXRfYWRkcmVzcy1iaXRmaWVsZC5jDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMzVhN2M4Yg0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJvci1nY2Nf aml0X2x2YWx1ZV9nZXRfYWRkcmVzcy1iaXRmaWVsZC5jDQpAQCAtMCwwICsx LDc3IEBADQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxzdGRp by5oPg0KKw0KKyNpbmNsdWRlICJsaWJnY2NqaXQuaCINCisNCisjaW5jbHVk ZSAiaGFybmVzcy5oIg0KKw0KKy8qIFRyeSB0byBkZXJlZmVyZW5jZSBhIGJp dC1maWVsZC4gICovDQorDQordm9pZA0KK2NyZWF0ZV9jb2RlIChnY2Nfaml0 X2NvbnRleHQgKmN0eHQsIHZvaWQgKnVzZXJfZGF0YSkNCit7DQorICAvKiBM ZXQncyB0cnkgdG8gaW5qZWN0IHRoZSBlcXVpdmFsZW50IG9mOg0KKw0KKyAg ICAgc3RydWN0IGJpdF9mb28NCisgICAgIHsNCisgICAgICAgaW50IGk6MzsN CisgICAgICAgaW50IGo6MzsNCisgICAgIH07DQorDQorICAgICBpbnQgKg0K KyAgICAgdGVzdF9hY2Nlc3MgKHN0cnVjdCBiaXRfZm9vICpmKQ0KKyAgICAg ew0KKyAgICAgICAgcmV0dXJuICYoZi0+aik7DQorICAgICB9DQorICAqLw0K KyAgZ2NjX2ppdF90eXBlICppbnRfdHlwZSA9DQorICAgIGdjY19qaXRfY29u dGV4dF9nZXRfdHlwZSAoY3R4dCwgR0NDX0pJVF9UWVBFX0lOVCk7DQorICBn Y2Nfaml0X2ZpZWxkICppID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19i aXRmaWVsZCAoY3R4dCwNCisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBl LA0KKwkJCQkgIDMsDQorCQkJCSAgImkiKTsNCisgIGdjY19qaXRfZmllbGQg KmogPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0 LA0KKwkJCQkgIE5VTEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJCSAgMywN CisJCQkJICAiaiIpOw0KKyAgZ2NjX2ppdF9maWVsZCAqZmllbGRzW10gPSB7 aSwgan07DQorICBnY2Nfaml0X3N0cnVjdCAqc3RydWN0X3R5cGUgPQ0KKyAg ICBnY2Nfaml0X2NvbnRleHRfbmV3X3N0cnVjdF90eXBlIChjdHh0LCBOVUxM LCAiYml0X2ZvbyIsIDIsIGZpZWxkcyk7DQorICBnY2Nfaml0X3R5cGUgKnB0 cl90eXBlID0NCisgICAgZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyIChnY2Nf aml0X3N0cnVjdF9hc190eXBlIChzdHJ1Y3RfdHlwZSkpOw0KKw0KKyAgLyog QnVpbGQgdGhlIHRlc3QgZnVuY3Rpb24uICAqLw0KKyAgZ2NjX2ppdF9wYXJh bSAqcGFyYW1fZiA9DQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0g KGN0eHQsIE5VTEwsIHB0cl90eXBlLCAiZiIpOw0KKyAgZ2NjX2ppdF9mdW5j dGlvbiAqdGVzdF9mbiA9DQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfZnVu Y3Rpb24gKGN0eHQsIE5VTEwsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdDQ19KSVRfRlVOQ1RJT05fRVhQT1JURUQsDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfdHlwZV9nZXRf cG9pbnRlciAoaW50X3R5cGUpLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAidGVzdF9hY2Nlc3MiLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxLCAmcGFyYW1fZiwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMCk7DQorICBnY2Nfaml0X2Jsb2NrICpi bG9jayA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2Jsb2NrICh0ZXN0X2ZuLCBO VUxMKTsNCisgIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfcmV0dXJuICgNCisg ICAgYmxvY2ssDQorICAgIE5VTEwsDQorICAgIGdjY19qaXRfbHZhbHVlX2dl dF9hZGRyZXNzICgNCisgICAgICBnY2Nfaml0X3J2YWx1ZV9kZXJlZmVyZW5j ZV9maWVsZCAoDQorCWdjY19qaXRfcGFyYW1fYXNfcnZhbHVlIChwYXJhbV9m KSwNCisJTlVMTCwNCisJaiksDQorICAgICAgTlVMTCkpOw0KK30NCisNCit2 b2lkDQordmVyaWZ5X2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgZ2Nj X2ppdF9yZXN1bHQgKnJlc3VsdCkNCit7DQorICBDSEVDS19WQUxVRSAocmVz dWx0LCBOVUxMKTsNCisNCisgIC8qIFZlcmlmeSB0aGF0IHRoZSBjb3JyZWN0 IGVycm9yIG1lc3NhZ2Ugd2FzIGVtaXR0ZWQuICAqLw0KKyAgQ0hFQ0tfU1RS SU5HX1ZBTFVFIChnY2Nfaml0X2NvbnRleHRfZ2V0X2ZpcnN0X2Vycm9yIChj dHh0KSwNCisJCSAgICAgICJjYW5ub3QgdGFrZSBhZGRyZXNzIG9mIGJpdC1m aWVsZCIpOw0KK30NCg== --_002_gkrzhm7j97ufsfarmcom_--