From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40086.outbound.protection.outlook.com [40.107.4.86]) by dpdk.org (Postfix) with ESMTP id A0D662BF5 for ; Sun, 7 Jan 2018 16:24:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=YtJc/w/kuHZ+v5BbWOUvgpRRCVn3pWqoieVdxasW2Gs=; b=P24zrXviifqdAXJWjHmlETEtJ0eRKC6Oy54XNYAqMiVu1y3FR5SVJAxE1inG5rr83wtDOOSYDjfaMy4RP8PjV23EUt1BIhUoCVj0fkyA7gDp+UnMOG+p76lxogix/NYXjI97tD71fenIiaYhB2YIbIoDHNPJKaATMMYzFvC9+Oc= Received: from VI1PR05MB3149.eurprd05.prod.outlook.com (10.170.237.142) by VI1PR05MB3150.eurprd05.prod.outlook.com (10.170.237.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Sun, 7 Jan 2018 15:24:24 +0000 Received: from VI1PR05MB3149.eurprd05.prod.outlook.com ([fe80::789c:3f06:bb88:e29c]) by VI1PR05MB3149.eurprd05.prod.outlook.com ([fe80::789c:3f06:bb88:e29c%13]) with mapi id 15.20.0386.009; Sun, 7 Jan 2018 15:24:24 +0000 From: Shahaf Shuler To: Maciej Czekaj , "ferruh.yigit@intel.com" , "jingjing.wu@intel.com" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2 04/10] app/testpmd: convert to new Ethdev Tx offloads API Thread-Index: AQHThlCW08VKNP6wbEOXYGjfFGQWTaNoilJQ Date: Sun, 7 Jan 2018 15:24:24 +0000 Message-ID: References: <20171123120804.143897-1-shahafs@mellanox.com> <9dec91975cdd1a59e3cac99d0fd4bd8672544a4f.1513082773.git.shahafs@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB3150; 6:7Dn6vx++UqNS8ucxFT0YfR+fXRuVYf+YdJU29GbvShChl6XOh7hoKC4Fb0QYdVcD4Nlct4ltKSYZo0RqcAdYDBGAdqSJ07q1z4NEKyd0xYCakr9pu+wIGVDdH389j7Rr8f3+9UB/qVh4a62N9g62uWQTDlxPsChYDVIJWcry0jPVRVU66kREc0cH1KopsIkMP7vpQbXmsXjQCrA4s473EIGhPXAdY1vBUStlfPhBxsJbBbUSczTrpaOzJwYPqFjjhO9/QyjVe+1wPD/saV+Q0xF8YkReX6HDxcP6MsLO557nlnCZ47mlHM/72ML7zgDaX2lM58P8gEt3clx41h3lO4I1lZTIQDHQ/ShDvQ117g8GE7QlMsMjzqhcky5g+Djn; 5:V1Ni2KHg49BCmYC7zdE/S7gV/LeSvGtiNU3O5uiBxvCuSr+ZdwwEjRhXH6m2al/3pk4qbrJOTg7rZwHc8G2Wkbv9AIg1yDxXYkcs0kUa/UV2Ag9hx+M9Gz+eOpqWVc02aKXWw7OIMAjJPUjbCluoQv3xfgCVGXg5ijbvh/lwpy4=; 24:jtaJQye1yNEURtZ84lRdDsqCNOs0EXD7OjVI7aafJxGDISqtKwhS0vO0/n+FpYKUyFYwh5tCYgEHxQ9vS95Uf/CDeGO8bWvmEBtTHKWAwro=; 7:SphcMgA5Xba+T50bimeUBinjMXqOAw/NN+Of9TGHBW5fbduS+svYO0EZ+zRozH17w+MC+nkmdNCK3/GnRSoSipgrRRC57wqusN6aTgJA2viohyB/Lnn72KT5xXnd6ptUqrhfO+VQ+sw8zGpCOVBXmharn4wjapW32h1ty09Vga8wz/7ULGEeuLfUwXCrBlLFjLlGBAxEh+9jIYwDDobFDL1qxF/2XpKKO4vnTx7whnaMgORo6b0qFoIURND6I4SC x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 8f22b82a-2950-4ff2-69b9-08d555e2bbdd x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:VI1PR05MB3150; x-ms-traffictypediagnostic: VI1PR05MB3150: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(21748063052155)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(3231023)(944501075)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041268)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123560045)(6072148)(201708071742011); SRVR:VI1PR05MB3150; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VI1PR05MB3150; x-forefront-prvs: 0545EFAC9A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39380400002)(39860400002)(376002)(366004)(346002)(199004)(43544003)(189003)(6246003)(7736002)(99286004)(3660700001)(74316002)(6506007)(59450400001)(53546011)(5250100002)(478600001)(6436002)(76176011)(2501003)(2950100002)(3280700002)(53946003)(53936002)(14454004)(236005)(7696005)(4326008)(55016002)(25786009)(54896002)(2900100001)(6306002)(229853002)(9686003)(106356001)(8936002)(68736007)(316002)(102836004)(93886005)(110136005)(8676002)(81166006)(81156014)(5660300001)(33656002)(3846002)(6116002)(790700001)(66066001)(97736004)(2906002)(2201001)(105586002)(86362001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB3150; H:VI1PR05MB3149.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: A5c6kSdb23FQcCXG2Hh9+84kjdSPbpRIoZN1rQm/sk6PbQ8ePVmiSdahWAaoYL3Wz49UJurluV9kBfmhK1+28g== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f22b82a-2950-4ff2-69b9-08d555e2bbdd X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2018 15:24:24.5144 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB3150 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH v2 04/10] app/testpmd: convert to new Ethdev Tx offloads API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jan 2018 15:24:27 -0000 RnJpZGF5LCBKYW51YXJ5IDUsIDIwMTggODoxMSBQTSwgTWFjaWVqIEN6ZWthajoNCg0KPklmIHRo ZSBpbnRlbnRpb24gaXMgdG8ga2VlcCBkZWZhdWx0cyBmcm9tIFBNRCwgbGV0J3MgZml4IHRoaXMu Li4NCj5JZiBub3QsIHBsZWFzZSBhcHBseSBGQVNUX0ZSRUUgZmxhZyAgYXMgaW4gZXhhbXBsZSBw YXRjaCB2MywgZS5nOg0KPg0KPisgICAgICAgIHJ0ZV9ldGhfZGV2X2luZm9fZ2V0KHBvcnRpZCwg JmRldl9pbmZvKTsNCj4rICAgICAgICBpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVW X1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpDQo+KyAgICAgICAgICAgIGxvY2FsX3BvcnRfY29u Zi50eG1vZGUub2ZmbG9hZHMgfD0NCj4rICAgICAgICAgICAgICAgIERFVl9UWF9PRkZMT0FEX01C VUZfRkFTVF9GUkVFOw0KDQpXaWxsIHRha2UgY2FyZSBvbiBuZXh0IHZlcnNpb24NCg0KLS1TaGFo YWYNCg0KRnJvbTogTWFjaWVqIEN6ZWthaiBbbWFpbHRvOm1hY2llai5jemVrYWpAY2F2aXVtbmV0 d29ya3MuY29tXQ0KU2VudDogRnJpZGF5LCBKYW51YXJ5IDUsIDIwMTggODoxMSBQTQ0KVG86IFNo YWhhZiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPjsgZmVycnVoLnlpZ2l0QGludGVsLmNv bTsgamluZ2ppbmcud3VAaW50ZWwuY29tDQpDYzogZGV2QGRwZGsub3JnDQpTdWJqZWN0OiBSZTog W2RwZGstZGV2XSBbUEFUQ0ggdjIgMDQvMTBdIGFwcC90ZXN0cG1kOiBjb252ZXJ0IHRvIG5ldyBF dGhkZXYgVHggb2ZmbG9hZHMgQVBJDQoNCg0KDQotLSBPcnlnaW5hbCBtZXNzYWdlIC0tDQoNCkV0 aGRldiBUeCBvZmZsb2FkcyBBUEkgaGFzIGNoYW5nZWQgc2luY2U6DQoNCg0KDQpjb21taXQgY2Jh N2Y1M2I3MTdkICgiZXRoZGV2OiBpbnRyb2R1Y2UgVHggcXVldWUgb2ZmbG9hZHMgQVBJIikNCg0K DQoNCkNvbnZlcnQgdGhlIGFwcGxpY2F0aW9uIHRvIHVzZSB0aGUgbmV3IEFQSS4NCg0KDQoNClRo aXMgcGF0Y2ggbWFuZGF0ZXMgdGhlIHBvcnQgdG8gYmUgc3RvcHBlZCB3aGVuIGNvbmZpZ3VyZSB0 aGUgVHgNCg0Kb2ZmbG9hZHMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgUE1EIG11c3QgYmUgYXdhcmUg dG8gdGhlIG9mZmxvYWRzIGNoYW5nZXMNCg0Kb24gdGhlIGRldmljZSBhbmQgcXVldWUgY29uZmln dXJhdGlvbi4NCg0KDQoNClNpZ25lZC1vZmYtYnk6IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbWVs bGFub3guY29tPjxtYWlsdG86c2hhaGFmc0BtZWxsYW5veC5jb20+DQoNCi0tLQ0KDQogYXBwL3Rl c3QtcG1kL2NtZGxpbmUuYyB8IDkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLQ0KDQogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jICB8IDU1ICsrKysrKysrKysrKysr KysrKy0tLS0tLS0tLQ0KDQogYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYyB8ICAzICsrDQoNCiAzIGZp bGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkNCg0KDQoNCmRp ZmYgLS1naXQgYS9hcHAvdGVzdC1wbWQvY21kbGluZS5jIGIvYXBwL3Rlc3QtcG1kL2NtZGxpbmUu Yw0KDQppbmRleCBkOGM3M2E5Li41ODEyNTgzIDEwMDY0NA0KDQotLS0gYS9hcHAvdGVzdC1wbWQv Y21kbGluZS5jDQoNCisrKyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMNCg0KQEAgLTM0MzksNyAr MzQzOSwxNCBAQCBzdHJ1Y3QgY21kX3R4X3ZsYW5fc2V0X3Jlc3VsdCB7DQoNCiB7DQoNCiAgICAg ICAgc3RydWN0IGNtZF90eF92bGFuX3NldF9yZXN1bHQgKnJlcyA9IHBhcnNlZF9yZXN1bHQ7DQoN Cg0KDQorICAgICAgIGlmICghcG9ydF9pc19zdG9wcGVkKHJlcy0+cG9ydF9pZCkpIHsNCg0KKyAg ICAgICAgICAgICAgIHByaW50ZigiUGxlYXNlIHN0b3AgcG9ydCAlZCBmaXJzdFxuIiwgcmVzLT5w b3J0X2lkKTsNCg0KKyAgICAgICAgICAgICAgIHJldHVybjsNCg0KKyAgICAgICB9DQoNCisNCg0K ICAgICAgICB0eF92bGFuX3NldChyZXMtPnBvcnRfaWQsIHJlcy0+dmxhbl9pZCk7DQoNCisNCg0K KyAgICAgICBjbWRfcmVjb25maWdfZGV2aWNlX3F1ZXVlKHJlcy0+cG9ydF9pZCwgMSwgMSk7DQoN CiB9DQoNCg0KDQogY21kbGluZV9wYXJzZV90b2tlbl9zdHJpbmdfdCBjbWRfdHhfdmxhbl9zZXRf dHhfdmxhbiA9DQoNCkBAIC0zNDg2LDcgKzM0OTMsMTQgQEAgc3RydWN0IGNtZF90eF92bGFuX3Nl dF9xaW5xX3Jlc3VsdCB7DQoNCiB7DQoNCiAgICAgICAgc3RydWN0IGNtZF90eF92bGFuX3NldF9x aW5xX3Jlc3VsdCAqcmVzID0gcGFyc2VkX3Jlc3VsdDsNCg0KDQoNCisgICAgICAgaWYgKCFwb3J0 X2lzX3N0b3BwZWQocmVzLT5wb3J0X2lkKSkgew0KDQorICAgICAgICAgICAgICAgcHJpbnRmKCJQ bGVhc2Ugc3RvcCBwb3J0ICVkIGZpcnN0XG4iLCByZXMtPnBvcnRfaWQpOw0KDQorICAgICAgICAg ICAgICAgcmV0dXJuOw0KDQorICAgICAgIH0NCg0KKw0KDQogICAgICAgIHR4X3FpbnFfc2V0KHJl cy0+cG9ydF9pZCwgcmVzLT52bGFuX2lkLCByZXMtPnZsYW5faWRfb3V0ZXIpOw0KDQorDQoNCisg ICAgICAgY21kX3JlY29uZmlnX2RldmljZV9xdWV1ZShyZXMtPnBvcnRfaWQsIDEsIDEpOw0KDQog fQ0KDQoNCg0KIGNtZGxpbmVfcGFyc2VfdG9rZW5fc3RyaW5nX3QgY21kX3R4X3ZsYW5fc2V0X3Fp bnFfdHhfdmxhbiA9DQoNCkBAIC0zNTkyLDcgKzM2MDYsMTQgQEAgc3RydWN0IGNtZF90eF92bGFu X3Jlc2V0X3Jlc3VsdCB7DQoNCiB7DQoNCiAgICAgICAgc3RydWN0IGNtZF90eF92bGFuX3Jlc2V0 X3Jlc3VsdCAqcmVzID0gcGFyc2VkX3Jlc3VsdDsNCg0KDQoNCisgICAgICAgaWYgKCFwb3J0X2lz X3N0b3BwZWQocmVzLT5wb3J0X2lkKSkgew0KDQorICAgICAgICAgICAgICAgcHJpbnRmKCJQbGVh c2Ugc3RvcCBwb3J0ICVkIGZpcnN0XG4iLCByZXMtPnBvcnRfaWQpOw0KDQorICAgICAgICAgICAg ICAgcmV0dXJuOw0KDQorICAgICAgIH0NCg0KKw0KDQogICAgICAgIHR4X3ZsYW5fcmVzZXQocmVz LT5wb3J0X2lkKTsNCg0KKw0KDQorICAgICAgIGNtZF9yZWNvbmZpZ19kZXZpY2VfcXVldWUocmVz LT5wb3J0X2lkLCAxLCAxKTsNCg0KIH0NCg0KDQoNCiBjbWRsaW5lX3BhcnNlX3Rva2VuX3N0cmlu Z190IGNtZF90eF92bGFuX3Jlc2V0X3R4X3ZsYW4gPQ0KDQpAQCAtMzY4NSwxMSArMzcwNiwxNiBA QCBzdHJ1Y3QgY21kX2NzdW1fcmVzdWx0IHsNCg0KICAgICAgICBzdHJ1Y3QgY21kX2NzdW1fcmVz dWx0ICpyZXMgPSBwYXJzZWRfcmVzdWx0Ow0KDQogICAgICAgIGludCBodyA9IDA7DQoNCiAgICAg ICAgdWludDE2X3QgbWFzayA9IDA7DQoNCisgICAgICAgdWludDY0X3QgY3N1bV9vZmZsb2FkcyA9 IDA7DQoNCg0KDQogICAgICAgIGlmIChwb3J0X2lkX2lzX2ludmFsaWQocmVzLT5wb3J0X2lkLCBF TkFCTEVEX1dBUk4pKSB7DQoNCiAgICAgICAgICAgICAgICBwcmludGYoImludmFsaWQgcG9ydCAl ZFxuIiwgcmVzLT5wb3J0X2lkKTsNCg0KICAgICAgICAgICAgICAgIHJldHVybjsNCg0KICAgICAg ICB9DQoNCisgICAgICAgaWYgKCFwb3J0X2lzX3N0b3BwZWQocmVzLT5wb3J0X2lkKSkgew0KDQor ICAgICAgICAgICAgICAgcHJpbnRmKCJQbGVhc2Ugc3RvcCBwb3J0ICVkIGZpcnN0XG4iLCByZXMt PnBvcnRfaWQpOw0KDQorICAgICAgICAgICAgICAgcmV0dXJuOw0KDQorICAgICAgIH0NCg0KDQoN CiAgICAgICAgaWYgKCFzdHJjbXAocmVzLT5tb2RlLCAic2V0IikpIHsNCg0KDQoNCkBAIC0zNjk4 LDIyICszNzI0LDM0IEBAIHN0cnVjdCBjbWRfY3N1bV9yZXN1bHQgew0KDQoNCg0KICAgICAgICAg ICAgICAgIGlmICghc3RyY21wKHJlcy0+cHJvdG8sICJpcCIpKSB7DQoNCiAgICAgICAgICAgICAg ICAgICAgICAgIG1hc2sgPSBURVNUUE1EX1RYX09GRkxPQURfSVBfQ0tTVU07DQoNCisgICAgICAg ICAgICAgICAgICAgICAgIGNzdW1fb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfSVBWNF9DS1NV TTsNCg0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChyZXMtPnByb3RvLCAidWRw IikpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgbWFzayA9IFRFU1RQTURfVFhfT0ZGTE9B RF9VRFBfQ0tTVU07DQoNCisgICAgICAgICAgICAgICAgICAgICAgIGNzdW1fb2ZmbG9hZHMgfD0g REVWX1RYX09GRkxPQURfVURQX0NLU1VNOw0KDQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgh c3RyY21wKHJlcy0+cHJvdG8sICJ0Y3AiKSkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBt YXNrID0gVEVTVFBNRF9UWF9PRkZMT0FEX1RDUF9DS1NVTTsNCg0KKyAgICAgICAgICAgICAgICAg ICAgICAgY3N1bV9vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU07DQoNCiAgICAg ICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAocmVzLT5wcm90bywgInNjdHAiKSkgew0KDQog ICAgICAgICAgICAgICAgICAgICAgICBtYXNrID0gVEVTVFBNRF9UWF9PRkZMT0FEX1NDVFBfQ0tT VU07DQoNCisgICAgICAgICAgICAgICAgICAgICAgIGNzdW1fb2ZmbG9hZHMgfD0gREVWX1RYX09G RkxPQURfU0NUUF9DS1NVTTsNCg0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChy ZXMtPnByb3RvLCAib3V0ZXItaXAiKSkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBtYXNr ID0gVEVTVFBNRF9UWF9PRkZMT0FEX09VVEVSX0lQX0NLU1VNOw0KDQorICAgICAgICAgICAgICAg ICAgICAgICBjc3VtX29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU07 DQoNCiAgICAgICAgICAgICAgICB9DQoNCg0KDQotICAgICAgICAgICAgICAgaWYgKGh3KQ0KDQor ICAgICAgICAgICAgICAgaWYgKGh3KSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRz W3Jlcy0+cG9ydF9pZF0udHhfb2xfZmxhZ3MgfD0gbWFzazsNCg0KLSAgICAgICAgICAgICAgIGVs c2UNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgcG9ydHNbcmVzLT5wb3J0X2lkXS5kZXZfY29u Zi50eG1vZGUub2ZmbG9hZHMgfD0NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY3N1bV9vZmZsb2FkczsNCg0KKyAgICAgICAgICAgICAgIH0g ZWxzZSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRzW3Jlcy0+cG9ydF9pZF0udHhf b2xfZmxhZ3MgJj0gKH5tYXNrKTsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgcG9ydHNbcmVz LT5wb3J0X2lkXS5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgJj0NCg0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKH5jc3VtX29mZmxvYWRzKTsN Cg0KKyAgICAgICAgICAgICAgIH0NCg0KICAgICAgICB9DQoNCiAgICAgICAgY3N1bV9zaG93KHJl cy0+cG9ydF9pZCk7DQoNCisNCg0KKyAgICAgICBjbWRfcmVjb25maWdfZGV2aWNlX3F1ZXVlKHJl cy0+cG9ydF9pZCwgMSwgMSk7DQoNCiB9DQoNCg0KDQogY21kbGluZV9wYXJzZV90b2tlbl9zdHJp bmdfdCBjbWRfY3N1bV9jc3VtID0NCg0KQEAgLTM4MzcsMTUgKzM4NzUsMjQgQEAgc3RydWN0IGNt ZF90c29fc2V0X3Jlc3VsdCB7DQoNCg0KDQogICAgICAgIGlmIChwb3J0X2lkX2lzX2ludmFsaWQo cmVzLT5wb3J0X2lkLCBFTkFCTEVEX1dBUk4pKQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0K DQorICAgICAgIGlmICghcG9ydF9pc19zdG9wcGVkKHJlcy0+cG9ydF9pZCkpIHsNCg0KKyAgICAg ICAgICAgICAgIHByaW50ZigiUGxlYXNlIHN0b3AgcG9ydCAlZCBmaXJzdFxuIiwgcmVzLT5wb3J0 X2lkKTsNCg0KKyAgICAgICAgICAgICAgIHJldHVybjsNCg0KKyAgICAgICB9DQoNCg0KDQogICAg ICAgIGlmICghc3RyY21wKHJlcy0+bW9kZSwgInNldCIpKQ0KDQogICAgICAgICAgICAgICAgcG9y dHNbcmVzLT5wb3J0X2lkXS50c29fc2Vnc3ogPSByZXMtPnRzb19zZWdzejsNCg0KDQoNCi0gICAg ICAgaWYgKHBvcnRzW3Jlcy0+cG9ydF9pZF0udHNvX3NlZ3N6ID09IDApDQoNCisgICAgICAgaWYg KHBvcnRzW3Jlcy0+cG9ydF9pZF0udHNvX3NlZ3N6ID09IDApIHsNCg0KKyAgICAgICAgICAgICAg IHBvcnRzW3Jlcy0+cG9ydF9pZF0uZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICY9DQoNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfkRFVl9UWF9PRkZMT0FE X1RDUF9UU087DQoNCiAgICAgICAgICAgICAgICBwcmludGYoIlRTTyBmb3Igbm9uLXR1bm5lbGVk IHBhY2tldHMgaXMgZGlzYWJsZWRcbiIpOw0KDQotICAgICAgIGVsc2UNCg0KKyAgICAgICB9IGVs c2Ugew0KDQorICAgICAgICAgICAgICAgcG9ydHNbcmVzLT5wb3J0X2lkXS5kZXZfY29uZi50eG1v ZGUub2ZmbG9hZHMgfD0NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPOw0KDQogICAgICAgICAgICAgICAgcHJpbnRm KCJUU08gc2VnbWVudCBzaXplIGZvciBub24tdHVubmVsZWQgcGFja2V0cyBpcyAlZFxuIiwNCg0K ICAgICAgICAgICAgICAgICAgICAgICAgcG9ydHNbcmVzLT5wb3J0X2lkXS50c29fc2Vnc3opOw0K DQorICAgICAgIH0NCg0KDQoNCiAgICAgICAgLyogZGlzcGxheSB3YXJuaW5ncyBpZiBjb25maWd1 cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIE5JQyAqLw0KDQogICAgICAgIHJ0ZV9ldGhf ZGV2X2luZm9fZ2V0KHJlcy0+cG9ydF9pZCwgJmRldl9pbmZvKTsNCg0KQEAgLTM4NTQsNiArMzkw MSw4IEBAIHN0cnVjdCBjbWRfdHNvX3NldF9yZXN1bHQgew0KDQogICAgICAgICAgICAgICAgcHJp bnRmKCJXYXJuaW5nOiBUU08gZW5hYmxlZCBidXQgbm90ICINCg0KICAgICAgICAgICAgICAgICAg ICAgICAgInN1cHBvcnRlZCBieSBwb3J0ICVkXG4iLCByZXMtPnBvcnRfaWQpOw0KDQogICAgICAg IH0NCg0KKw0KDQorICAgICAgIGNtZF9yZWNvbmZpZ19kZXZpY2VfcXVldWUocmVzLT5wb3J0X2lk LCAxLCAxKTsNCg0KIH0NCg0KDQoNCiBjbWRsaW5lX3BhcnNlX3Rva2VuX3N0cmluZ190IGNtZF90 c29fc2V0X3RzbyA9DQoNCkBAIC0zOTM5LDEzICszOTg4LDI3IEBAIHN0cnVjdCBjbWRfdHVubmVs X3Rzb19zZXRfcmVzdWx0IHsNCg0KDQoNCiAgICAgICAgaWYgKHBvcnRfaWRfaXNfaW52YWxpZChy ZXMtPnBvcnRfaWQsIEVOQUJMRURfV0FSTikpDQoNCiAgICAgICAgICAgICAgICByZXR1cm47DQoN CisgICAgICAgaWYgKCFwb3J0X2lzX3N0b3BwZWQocmVzLT5wb3J0X2lkKSkgew0KDQorICAgICAg ICAgICAgICAgcHJpbnRmKCJQbGVhc2Ugc3RvcCBwb3J0ICVkIGZpcnN0XG4iLCByZXMtPnBvcnRf aWQpOw0KDQorICAgICAgICAgICAgICAgcmV0dXJuOw0KDQorICAgICAgIH0NCg0KDQoNCiAgICAg ICAgaWYgKCFzdHJjbXAocmVzLT5tb2RlLCAic2V0IikpDQoNCiAgICAgICAgICAgICAgICBwb3J0 c1tyZXMtPnBvcnRfaWRdLnR1bm5lbF90c29fc2Vnc3ogPSByZXMtPnRzb19zZWdzejsNCg0KDQoN Ci0gICAgICAgaWYgKHBvcnRzW3Jlcy0+cG9ydF9pZF0udHVubmVsX3Rzb19zZWdzeiA9PSAwKQ0K DQorICAgICAgIGlmIChwb3J0c1tyZXMtPnBvcnRfaWRdLnR1bm5lbF90c29fc2Vnc3ogPT0gMCkg ew0KDQorICAgICAgICAgICAgICAgcG9ydHNbcmVzLT5wb3J0X2lkXS5kZXZfY29uZi50eG1vZGUu b2ZmbG9hZHMgJj0NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgfihERVZfVFhfT0ZGTE9BRF9W WExBTl9UTkxfVFNPIHwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICBERVZfVFhfT0ZGTE9B RF9HUkVfVE5MX1RTTyB8DQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgREVWX1RYX09GRkxP QURfSVBJUF9UTkxfVFNPIHwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICBERVZfVFhfT0ZG TE9BRF9HRU5FVkVfVE5MX1RTTyk7DQoNCiAgICAgICAgICAgICAgICBwcmludGYoIlRTTyBmb3Ig dHVubmVsZWQgcGFja2V0cyBpcyBkaXNhYmxlZFxuIik7DQoNCi0gICAgICAgZWxzZSB7DQoNCisg ICAgICAgfSBlbHNlIHsNCg0KKyAgICAgICAgICAgICAgIHBvcnRzW3Jlcy0+cG9ydF9pZF0uZGV2 X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9DQoNCisgICAgICAgICAgICAgICAgICAgICAgIChERVZf VFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgIERF Vl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgIERF Vl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8DQoNCisgICAgICAgICAgICAgICAgICAgICAgICBE RVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyk7DQoNCiAgICAgICAgICAgICAgICBwcmludGYo IlRTTyBzZWdtZW50IHNpemUgZm9yIHR1bm5lbGVkIHBhY2tldHMgaXMgJWRcbiIsDQoNCiAgICAg ICAgICAgICAgICAgICAgICAgIHBvcnRzW3Jlcy0+cG9ydF9pZF0udHVubmVsX3Rzb19zZWdzeik7 DQoNCg0KDQpAQCAtMzk3MSw2ICs0MDM0LDggQEAgc3RydWN0IGNtZF90dW5uZWxfdHNvX3NldF9y ZXN1bHQgew0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIldhcm5pbmc6IGNzdW0g c2V0IG91dGVyLWlwIG11c3QgYmUgc2V0IHRvIGh3ICINCg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJpZiBvdXRlciBMMyBpcyBJUHY0OyBub3QgbmVjZXNzYXJ5IGZvciBJUHY2XG4i KTsNCg0KICAgICAgICB9DQoNCisNCg0KKyAgICAgICBjbWRfcmVjb25maWdfZGV2aWNlX3F1ZXVl KHJlcy0+cG9ydF9pZCwgMSwgMSk7DQoNCiB9DQoNCg0KDQogY21kbGluZV9wYXJzZV90b2tlbl9z dHJpbmdfdCBjbWRfdHVubmVsX3Rzb19zZXRfdHNvID0NCg0KQEAgLTEzMDEyLDggKzEzMDc3LDEz IEBAIHN0cnVjdCBjbWRfbWFjc2VjX29mZmxvYWRfb25fcmVzdWx0IHsNCg0KDQoNCiAgICAgICAg aWYgKHBvcnRfaWRfaXNfaW52YWxpZChwb3J0X2lkLCBFTkFCTEVEX1dBUk4pKQ0KDQogICAgICAg ICAgICAgICAgcmV0dXJuOw0KDQorICAgICAgIGlmICghcG9ydF9pc19zdG9wcGVkKHBvcnRfaWQp KSB7DQoNCisgICAgICAgICAgICAgICBwcmludGYoIlBsZWFzZSBzdG9wIHBvcnQgJWQgZmlyc3Rc biIsIHBvcnRfaWQpOw0KDQorICAgICAgICAgICAgICAgcmV0dXJuOw0KDQorICAgICAgIH0NCg0K DQoNCiAgICAgICAgcG9ydHNbcG9ydF9pZF0udHhfb2xfZmxhZ3MgfD0gVEVTVFBNRF9UWF9PRkZM T0FEX01BQ1NFQzsNCg0KKyAgICAgICBwb3J0c1twb3J0X2lkXS5kZXZfY29uZi50eG1vZGUub2Zm bG9hZHMgfD0gREVWX1RYX09GRkxPQURfTUFDU0VDX0lOU0VSVDsNCg0KICNpZmRlZiBSVEVfTElC UlRFX0lYR0JFX1BNRA0KDQogICAgICAgIHJldCA9IHJ0ZV9wbWRfaXhnYmVfbWFjc2VjX2VuYWJs ZShwb3J0X2lkLCBlbiwgcnApOw0KDQogI2VuZGlmDQoNCkBAIC0xMzAyMiw2ICsxMzA5Miw3IEBA IHN0cnVjdCBjbWRfbWFjc2VjX29mZmxvYWRfb25fcmVzdWx0IHsNCg0KDQoNCiAgICAgICAgc3dp dGNoIChyZXQpIHsNCg0KICAgICAgICBjYXNlIDA6DQoNCisgICAgICAgICAgICAgICBjbWRfcmVj b25maWdfZGV2aWNlX3F1ZXVlKHBvcnRfaWQsIDEsIDEpOw0KDQogICAgICAgICAgICAgICAgYnJl YWs7DQoNCiAgICAgICAgY2FzZSAtRU5PREVWOg0KDQogICAgICAgICAgICAgICAgcHJpbnRmKCJp bnZhbGlkIHBvcnRfaWQgJWRcbiIsIHBvcnRfaWQpOw0KDQpAQCAtMTMwOTYsMTQgKzEzMTY3LDIx IEBAIHN0cnVjdCBjbWRfbWFjc2VjX29mZmxvYWRfb2ZmX3Jlc3VsdCB7DQoNCg0KDQogICAgICAg IGlmIChwb3J0X2lkX2lzX2ludmFsaWQocG9ydF9pZCwgRU5BQkxFRF9XQVJOKSkNCg0KICAgICAg ICAgICAgICAgIHJldHVybjsNCg0KKyAgICAgICBpZiAoIXBvcnRfaXNfc3RvcHBlZChwb3J0X2lk KSkgew0KDQorICAgICAgICAgICAgICAgcHJpbnRmKCJQbGVhc2Ugc3RvcCBwb3J0ICVkIGZpcnN0 XG4iLCBwb3J0X2lkKTsNCg0KKyAgICAgICAgICAgICAgIHJldHVybjsNCg0KKyAgICAgICB9DQoN Cg0KDQogICAgICAgIHBvcnRzW3BvcnRfaWRdLnR4X29sX2ZsYWdzICY9IH5URVNUUE1EX1RYX09G RkxPQURfTUFDU0VDOw0KDQorICAgICAgIHBvcnRzW3BvcnRfaWRdLmRldl9jb25mLnR4bW9kZS5v ZmZsb2FkcyAmPQ0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+REVW X1RYX09GRkxPQURfTUFDU0VDX0lOU0VSVDsNCg0KICNpZmRlZiBSVEVfTElCUlRFX0lYR0JFX1BN RA0KDQogICAgICAgIHJldCA9IHJ0ZV9wbWRfaXhnYmVfbWFjc2VjX2Rpc2FibGUocG9ydF9pZCk7 DQoNCiAjZW5kaWYNCg0KDQoNCiAgICAgICAgc3dpdGNoIChyZXQpIHsNCg0KICAgICAgICBjYXNl IDA6DQoNCisgICAgICAgICAgICAgICBjbWRfcmVjb25maWdfZGV2aWNlX3F1ZXVlKHBvcnRfaWQs IDEsIDEpOw0KDQogICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAtRU5PREVW Og0KDQogICAgICAgICAgICAgICAgcHJpbnRmKCJpbnZhbGlkIHBvcnRfaWQgJWRcbiIsIHBvcnRf aWQpOw0KDQpkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jIGIvYXBwL3Rlc3QtcG1k L2NvbmZpZy5jDQoNCmluZGV4IDJmZGMwNTEuLmVlN2QwODMgMTAwNjQ0DQoNCi0tLSBhL2FwcC90 ZXN0LXBtZC9jb25maWcuYw0KDQorKysgYi9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCg0KQEAgLTYx Niw4ICs2MTYsOCBAQCBzdHJ1Y3QgcnNzX3R5cGVfaW5mbyB7DQoNCg0KDQogICAgICAgIGlmIChk ZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCkgew0K DQogICAgICAgICAgICAgICAgcHJpbnRmKCJWTEFOIGluc2VydDogICAgICAgICAgICAgICAgICAg Iik7DQoNCi0gICAgICAgICAgICAgICBpZiAocG9ydHNbcG9ydF9pZF0udHhfb2xfZmxhZ3MgJg0K DQotICAgICAgICAgICAgICAgICAgIFRFU1RQTURfVFhfT0ZGTE9BRF9JTlNFUlRfVkxBTikNCg0K KyAgICAgICAgICAgICAgIGlmIChwb3J0c1twb3J0X2lkXS5kZXZfY29uZi50eG1vZGUub2ZmbG9h ZHMgJg0KDQorICAgICAgICAgICAgICAgICAgIERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUKQ0K DQogICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIm9uXG4iKTsNCg0KICAgICAgICAgICAg ICAgIGVsc2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvZmZcbiIpOzxtYWls dG86KTtAQC02MzQsOCs2MzQsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4 X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCklN2JwcmludGYoPg0KDQpA QCAtNjM0LDggKzYzNCw4IEBAIHN0cnVjdCByc3NfdHlwZV9pbmZvIHs8bWFpbHRvOik7QEAtNjM0 LDgrNjM0LDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2Nh cGEmREVWX1RYX09GRkxPQURfUUlOUV9JTlNFUlQpJTdicHJpbnRmKD4NCg0KIDxtYWlsdG86KTtA QC02MzQsOCs2MzQsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxv YWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCklN2JwcmludGYoPg0KDQogICAgICAg IGlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VS VCkgezxtYWlsdG86KTtAQC02MzQsOCs2MzQsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRl dl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCklN2Jwcmlu dGYoPg0KDQogICAgICAgICAgICAgICAgcHJpbnRmKCI8bWFpbHRvOik7QEAtNjM0LDgrNjM0LDhA QHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RY X09GRkxPQURfUUlOUV9JTlNFUlQpJTdicHJpbnRmKD5Eb3VibGUgVkxBTnMgaW5zZXJ0OiAgICAg ICAgICAgIik7DQoNCi0gICAgICAgICAgICAgICBpZiAocG9ydHNbcG9ydF9pZF0udHhfb2xfZmxh Z3MgJg0KDQotICAgICAgICAgICAgICAgICAgIFRFU1RQTURfVFhfT0ZGTE9BRF9JTlNFUlRfUUlO USkNCg0KKyAgICAgICAgICAgICAgIGlmIChwb3J0c1twb3J0X2lkXS5kZXZfY29uZi50eG1vZGUu b2ZmbG9hZHMgJg0KDQorICAgICAgICAgICAgICAgICAgIERFVl9UWF9PRkZMT0FEX1FJTlFfSU5T RVJUKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIm9uXG4iKTsNCg0KICAgICAg ICAgICAgICAgIGVsc2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvZmZcbiIp OzxtYWlsdG86KTtAQC02NDMsNys2NDMsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9p bmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNKSU3YnByaW50Zig+ DQoNCkBAIC02NDMsNyArNjQzLDggQEAgc3RydWN0IHJzc190eXBlX2luZm8gezxtYWlsdG86KTtA QC02NDMsNys2NDMsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxv YWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNKSU3YnByaW50Zig+DQoNCiA8bWFpbHRv Oik7QEAtNjQzLDcrNjQzLDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9v ZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSklN2JwcmludGYoPg0KDQogICAg ICAgIGlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9JUFY0X0NL U1VNKSB7PG1haWx0bzopO0BALTY0Myw3KzY0Myw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYo ZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0pJTdicHJp bnRmKD4NCg0KICAgICAgICAgICAgICAgIHByaW50ZigiPG1haWx0bzopO0BALTY0Myw3KzY0Myw4 QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0pJTdicHJpbnRmKD5UWCBJUHY0IGNoZWNrc3VtOiAgICAgICAg ICAgICAgIik7DQoNCi0gICAgICAgICAgICAgICBpZiAocG9ydHNbcG9ydF9pZF0udHhfb2xfZmxh Z3MgJiBURVNUUE1EX1RYX09GRkxPQURfSVBfQ0tTVU0pDQoNCisgICAgICAgICAgICAgICBpZiAo cG9ydHNbcG9ydF9pZF0uZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICYNCg0KKyAgICAgICAgICAg ICAgICAgICBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNKQ0KDQogICAgICAgICAgICAgICAgICAg ICAgICBwcmludGYoIm9uXG4iKTsNCg0KICAgICAgICAgICAgICAgIGVsc2UNCg0KICAgICAgICAg ICAgICAgICAgICAgICAgcHJpbnRmKCJvZmZcbiIpOzxtYWlsdG86KTtAQC02NTEsNys2NTIsOEBA c3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhf T0ZGTE9BRF9VRFBfQ0tTVU0pJTdicHJpbnRmKD4NCg0KQEAgLTY1MSw3ICs2NTIsOCBAQCBzdHJ1 Y3QgcnNzX3R5cGVfaW5mbyB7PG1haWx0bzopO0BALTY1MSw3KzY1Miw4QEBzdHJ1Y3Ryc3NfdHlw ZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX1VEUF9D S1NVTSklN2JwcmludGYoPg0KDQogPG1haWx0bzopO0BALTY1MSw3KzY1Miw4QEBzdHJ1Y3Ryc3Nf dHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX1VE UF9DS1NVTSklN2JwcmludGYoPg0KDQogICAgICAgIGlmIChkZXZfaW5mby50eF9vZmZsb2FkX2Nh cGEgJiBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0pIHs8bWFpbHRvOik7QEAtNjUxLDcrNjUyLDhA QHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RY X09GRkxPQURfVURQX0NLU1VNKSU3YnByaW50Zig+DQoNCiAgICAgICAgICAgICAgICBwcmludGYo IjxtYWlsdG86KTtAQC02NTEsNys2NTIsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9p bmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0pJTdicHJpbnRmKD5U WCBVRFAgY2hlY2tzdW06ICAgICAgICAgICAgICAgIik7DQoNCi0gICAgICAgICAgICAgICBpZiAo cG9ydHNbcG9ydF9pZF0udHhfb2xfZmxhZ3MgJiBURVNUUE1EX1RYX09GRkxPQURfVURQX0NLU1VN KQ0KDQorICAgICAgICAgICAgICAgaWYgKHBvcnRzW3BvcnRfaWRdLmRldl9jb25mLnR4bW9kZS5v ZmZsb2FkcyAmDQoNCisgICAgICAgICAgICAgICAgICAgREVWX1RYX09GRkxPQURfVURQX0NLU1VN KQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIm9uXG4iKTsNCg0KICAgICAgICAg ICAgICAgIGVsc2UNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvZmZcbiIpOzxt YWlsdG86KTtAQC02NTksNys2NjEsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZv LnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pJTdicHJpbnRmKD4NCg0K QEAgLTY1OSw3ICs2NjEsOCBAQCBzdHJ1Y3QgcnNzX3R5cGVfaW5mbyB7PG1haWx0bzopO0BALTY1 OSw3KzY2MSw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9hZF9j YXBhJkRFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSklN2JwcmludGYoPg0KDQogPG1haWx0bzopO0BA LTY1OSw3KzY2MSw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9h ZF9jYXBhJkRFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSklN2JwcmludGYoPg0KDQogICAgICAgIGlm IChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pIHs8 bWFpbHRvOik7QEAtNjU5LDcrNjYxLDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5m by50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfVENQX0NLU1VNKSU3YnByaW50Zig+DQoN CiAgICAgICAgICAgICAgICBwcmludGYoIjxtYWlsdG86KTtAQC02NTksNys2NjEsOEBAc3RydWN0 cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9B RF9UQ1BfQ0tTVU0pJTdicHJpbnRmKD5UWCBUQ1AgY2hlY2tzdW06ICAgICAgICAgICAgICAgIik7 DQoNCi0gICAgICAgICAgICAgICBpZiAocG9ydHNbcG9ydF9pZF0udHhfb2xfZmxhZ3MgJiBURVNU UE1EX1RYX09GRkxPQURfVENQX0NLU1VNKQ0KDQorICAgICAgICAgICAgICAgaWYgKHBvcnRzW3Bv cnRfaWRdLmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmDQoNCisgICAgICAgICAgICAgICAgICAg REVWX1RYX09GRkxPQURfVENQX0NLU1VNKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmlu dGYoIm9uXG4iKTsNCg0KICAgICAgICAgICAgICAgIGVsc2UNCg0KICAgICAgICAgICAgICAgICAg ICAgICAgcHJpbnRmKCJvZmZcbiIpOzxtYWlsdG86KTtAQC02NjcsNys2NzAsOEBAc3RydWN0cnNz X3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9T Q1RQX0NLU1VNKSU3YnByaW50Zig+DQoNCkBAIC02NjcsNyArNjcwLDggQEAgc3RydWN0IHJzc190 eXBlX2luZm8gezxtYWlsdG86KTtAQC02NjcsNys2NzAsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3 YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNKSU3 YnByaW50Zig+DQoNCiA8bWFpbHRvOik7QEAtNjY3LDcrNjcwLDhAQHN0cnVjdHJzc190eXBlX2lu Zm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfU0NUUF9DS1NV TSklN2JwcmludGYoPg0KDQogICAgICAgIGlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBE RVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNKSB7PG1haWx0bzopO0BALTY2Nyw3KzY3MCw4QEBzdHJ1 Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZM T0FEX1NDVFBfQ0tTVU0pJTdicHJpbnRmKD4NCg0KICAgICAgICAgICAgICAgIHByaW50ZigiPG1h aWx0bzopO0BALTY2Nyw3KzY3MCw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8u dHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0pJTdicHJpbnRmKD5UWCBT Q1RQIGNoZWNrc3VtOiAgICAgICAgICAgICAgIik7DQoNCi0gICAgICAgICAgICAgICBpZiAocG9y dHNbcG9ydF9pZF0udHhfb2xfZmxhZ3MgJiBURVNUUE1EX1RYX09GRkxPQURfU0NUUF9DS1NVTSkN Cg0KKyAgICAgICAgICAgICAgIGlmIChwb3J0c1twb3J0X2lkXS5kZXZfY29uZi50eG1vZGUub2Zm bG9hZHMgJg0KDQorICAgICAgICAgICAgICAgICAgIERFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0p DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigib25cbiIpOw0KDQogICAgICAgICAg ICAgICAgZWxzZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIm9mZlxuIik7PG1h aWx0bzopO0BALTY3NSw4KzY3OSw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8u dHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0pJTdicHJpbnRm KD4NCg0KQEAgLTY3NSw4ICs2NzksOCBAQCBzdHJ1Y3QgcnNzX3R5cGVfaW5mbyB7PG1haWx0bzop O0BALTY3NSw4KzY3OSw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2Zm bG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0pJTdicHJpbnRmKD4NCg0K IDxtYWlsdG86KTtAQC02NzUsOCs2NzksOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9p bmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNKSU3YnBy aW50Zig+DQoNCiAgICAgICAgaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0pIHs8bWFpbHRvOik7QEAtNjc1LDgrNjc5LDhAQHN0cnVj dHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTSklN2JwcmludGYoPg0KDQogICAgICAgICAgICAgICAgcHJpbnRm KCI8bWFpbHRvOik7QEAtNjc1LDgrNjc5LDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZf aW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSklN2Jw cmludGYoPlRYIE91dGVyIElQdjQgY2hlY2tzdW06ICAgICAgICAiKTsNCg0KLSAgICAgICAgICAg ICAgIGlmIChwb3J0c1twb3J0X2lkXS50eF9vbF9mbGFncyAmDQoNCi0gICAgICAgICAgICAgICAg ICAgVEVTVFBNRF9UWF9PRkZMT0FEX09VVEVSX0lQX0NLU1VNKQ0KDQorICAgICAgICAgICAgICAg aWYgKHBvcnRzW3BvcnRfaWRdLmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmDQoNCisgICAgICAg ICAgICAgICAgICAgREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSkNCg0KICAgICAgICAg ICAgICAgICAgICAgICAgcHJpbnRmKCJvblxuIik7DQoNCiAgICAgICAgICAgICAgICBlbHNlDQoN CiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigib2ZmXG4iKTs8bWFpbHRvOik7QEAtNjg0 LDcrNjg4LDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2Nh cGEmREVWX1RYX09GRkxPQURfVENQX1RTTyklN2JwcmludGYoPg0KDQpAQCAtNjg0LDcgKzY4OCw4 IEBAIHN0cnVjdCByc3NfdHlwZV9pbmZvIHs8bWFpbHRvOik7QEAtNjg0LDcrNjg4LDhAQHN0cnVj dHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxP QURfVENQX1RTTyklN2JwcmludGYoPg0KDQogPG1haWx0bzopO0BALTY4NCw3KzY4OCw4QEBzdHJ1 Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZM T0FEX1RDUF9UU08pJTdicHJpbnRmKD4NCg0KICAgICAgICBpZiAoZGV2X2luZm8udHhfb2ZmbG9h ZF9jYXBhICYgREVWX1RYX09GRkxPQURfVENQX1RTTykgezxtYWlsdG86KTtAQC02ODQsNys2ODgs OEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZf VFhfT0ZGTE9BRF9UQ1BfVFNPKSU3YnByaW50Zig+DQoNCiAgICAgICAgICAgICAgICBwcmludGYo IjxtYWlsdG86KTtAQC02ODQsNys2ODgsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9p bmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPKSU3YnByaW50Zig+VFgg VENQIHNlZ21lbnRhdGlvbjogICAgICAgICAgICIpOw0KDQotICAgICAgICAgICAgICAgaWYgKHBv cnRzW3BvcnRfaWRdLnRzb19zZWdzeiAhPSAwKQ0KDQorICAgICAgICAgICAgICAgaWYgKHBvcnRz W3BvcnRfaWRdLmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmDQoNCisgICAgICAgICAgICAgICAg ICAgREVWX1RYX09GRkxPQURfVENQX1RTTykNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcHJp bnRmKCJvblxuIik7DQoNCiAgICAgICAgICAgICAgICBlbHNlDQoNCiAgICAgICAgICAgICAgICAg ICAgICAgIHByaW50Zigib2ZmXG4iKTs8bWFpbHRvOik7QEAtNjkyLDcrNjk3LDhAQHN0cnVjdHJz c190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURf VURQX1RTTyklN2JwcmludGYoPg0KDQpAQCAtNjkyLDcgKzY5Nyw4IEBAIHN0cnVjdCByc3NfdHlw ZV9pbmZvIHs8bWFpbHRvOik7QEAtNjkyLDcrNjk3LDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2Jp ZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfVURQX1RTTyklN2Jwcmlu dGYoPg0KDQogPG1haWx0bzopO0BALTY5Miw3KzY5Nyw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdi aWYoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX1VEUF9UU08pJTdicHJp bnRmKD4NCg0KICAgICAgICBpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RYX09G RkxPQURfVURQX1RTTykgezxtYWlsdG86KTtAQC02OTIsNys2OTcsOEBAc3RydWN0cnNzX3R5cGVf aW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9VRFBfVFNP KSU3YnByaW50Zig+DQoNCiAgICAgICAgICAgICAgICBwcmludGYoIjxtYWlsdG86KTtAQC02OTIs Nys2OTcsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2Fw YSZERVZfVFhfT0ZGTE9BRF9VRFBfVFNPKSU3YnByaW50Zig+VFggVURQIHNlZ21lbnRhdGlvbjog ICAgICAgICAgICIpOw0KDQotICAgICAgICAgICAgICAgaWYgKHBvcnRzW3BvcnRfaWRdLnRzb19z ZWdzeiAhPSAwKQ0KDQorICAgICAgICAgICAgICAgaWYgKHBvcnRzW3BvcnRfaWRdLmRldl9jb25m LnR4bW9kZS5vZmZsb2FkcyAmDQoNCisgICAgICAgICAgICAgICAgICAgREVWX1RYX09GRkxPQURf VURQX1RTTykNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvblxuIik7DQoNCiAg ICAgICAgICAgICAgICBlbHNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigib2Zm XG4iKTs8bWFpbHRvOik7QEAtNzAwLDcrNzA2LDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihk ZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyklN2Jw cmludGYoPg0KDQpAQCAtNzAwLDcgKzcwNiw4IEBAIHN0cnVjdCByc3NfdHlwZV9pbmZvIHs8bWFp bHRvOik7QEAtNzAwLDcrNzA2LDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50 eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyklN2JwcmludGYoPg0K DQogPG1haWx0bzopO0BALTcwMCw3KzcwNiw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2 X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08pJTdicHJp bnRmKD4NCg0KICAgICAgICBpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RYX09G RkxPQURfVlhMQU5fVE5MX1RTTykgezxtYWlsdG86KTtAQC03MDAsNys3MDYsOEBAc3RydWN0cnNz X3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9W WExBTl9UTkxfVFNPKSU3YnByaW50Zig+DQoNCiAgICAgICAgICAgICAgICBwcmludGYoIjxtYWls dG86KTtAQC03MDAsNys3MDYsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4 X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPKSU3YnByaW50Zig+VFNP IGZvciBWWExBTiB0dW5uZWwgcGFja2V0OiAgICIpOw0KDQotICAgICAgICAgICAgICAgaWYgKHBv cnRzW3BvcnRfaWRdLnR1bm5lbF90c29fc2Vnc3opDQoNCisgICAgICAgICAgICAgICBpZiAocG9y dHNbcG9ydF9pZF0uZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICYNCg0KKyAgICAgICAgICAgICAg ICAgICBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPKQ0KDQogICAgICAgICAgICAgICAgICAg ICAgICBwcmludGYoIm9uXG4iKTsNCg0KICAgICAgICAgICAgICAgIGVsc2UNCg0KICAgICAgICAg ICAgICAgICAgICAgICAgcHJpbnRmKCJvZmZcbiIpOzxtYWlsdG86KTtAQC03MDgsNys3MTUsOEBA c3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhf T0ZGTE9BRF9HUkVfVE5MX1RTTyklN2JwcmludGYoPg0KDQpAQCAtNzA4LDcgKzcxNSw4IEBAIHN0 cnVjdCByc3NfdHlwZV9pbmZvIHs8bWFpbHRvOik7QEAtNzA4LDcrNzE1LDhAQHN0cnVjdHJzc190 eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfR1JF X1ROTF9UU08pJTdicHJpbnRmKD4NCg0KIDxtYWlsdG86KTtAQC03MDgsNys3MTUsOEBAc3RydWN0 cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZGTE9B RF9HUkVfVE5MX1RTTyklN2JwcmludGYoPg0KDQogICAgICAgIGlmIChkZXZfaW5mby50eF9vZmZs b2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTykgezxtYWlsdG86KTtAQC03MDgs Nys3MTUsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2Fw YSZERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyklN2JwcmludGYoPg0KDQogICAgICAgICAgICAg ICAgcHJpbnRmKCI8bWFpbHRvOik7QEAtNzA4LDcrNzE1LDhAQHN0cnVjdHJzc190eXBlX2luZm8l N2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08p JTdicHJpbnRmKD5UU08gZm9yIEdSRSB0dW5uZWwgcGFja2V0OiAgICAgIik7DQoNCi0gICAgICAg ICAgICAgICBpZiAocG9ydHNbcG9ydF9pZF0udHVubmVsX3Rzb19zZWdzeikNCg0KKyAgICAgICAg ICAgICAgIGlmIChwb3J0c1twb3J0X2lkXS5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgJg0KDQor ICAgICAgICAgICAgICAgICAgIERFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPKQ0KDQogICAgICAg ICAgICAgICAgICAgICAgICBwcmludGYoIm9uXG4iKTsNCg0KICAgICAgICAgICAgICAgIGVsc2UN Cg0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvZmZcbiIpOzxtYWlsdG86KTtAQC03 MTYsNys3MjQsOEBAc3RydWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRf Y2FwYSZERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08pJTdicHJpbnRmKD4NCg0KQEAgLTcxNiw3 ICs3MjQsOCBAQCBzdHJ1Y3QgcnNzX3R5cGVfaW5mbyB7PG1haWx0bzopO0BALTcxNiw3KzcyNCw4 QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9U WF9PRkZMT0FEX0lQSVBfVE5MX1RTTyklN2JwcmludGYoPg0KDQogPG1haWx0bzopO0BALTcxNiw3 KzcyNCw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBh JkRFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyklN2JwcmludGYoPg0KDQogICAgICAgIGlmIChk ZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08pIHs8 bWFpbHRvOik7QEAtNzE2LDcrNzI0LDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5m by50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPKSU3YnByaW50Zig+ DQoNCiAgICAgICAgICAgICAgICBwcmludGYoIjxtYWlsdG86KTtAQC03MTYsNys3MjQsOEBAc3Ry dWN0cnNzX3R5cGVfaW5mbyU3YmlmKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSZERVZfVFhfT0ZG TE9BRF9JUElQX1ROTF9UU08pJTdicHJpbnRmKD5UU08gZm9yIElQSVAgdHVubmVsIHBhY2tldDog ICAgIik7DQoNCi0gICAgICAgICAgICAgICBpZiAocG9ydHNbcG9ydF9pZF0udHVubmVsX3Rzb19z ZWdzeikNCg0KKyAgICAgICAgICAgICAgIGlmIChwb3J0c1twb3J0X2lkXS5kZXZfY29uZi50eG1v ZGUub2ZmbG9hZHMgJg0KDQorICAgICAgICAgICAgICAgICAgIERFVl9UWF9PRkZMT0FEX0lQSVBf VE5MX1RTTykNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvblxuIik7DQoNCiAg ICAgICAgICAgICAgICBlbHNlDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigib2Zm XG4iKTs8bWFpbHRvOik7QEAtNzI0LDcrNzMzLDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihk ZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08pJTdi cHJpbnRmKD4NCg0KQEAgLTcyNCw3ICs3MzMsOCBAQCBzdHJ1Y3QgcnNzX3R5cGVfaW5mbyB7PG1h aWx0bzopO0BALTcyNCw3KzczMyw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2luZm8u dHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPKSU3YnByaW50Zig+ DQoNCiA8bWFpbHRvOik7QEAtNzI0LDcrNzMzLDhAQHN0cnVjdHJzc190eXBlX2luZm8lN2JpZihk ZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08pJTdi cHJpbnRmKD4NCg0KICAgICAgICBpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RY X09GRkxPQURfR0VORVZFX1ROTF9UU08pIHs8bWFpbHRvOik7QEAtNzI0LDcrNzMzLDhAQHN0cnVj dHJzc190eXBlX2luZm8lN2JpZihkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEmREVWX1RYX09GRkxP QURfR0VORVZFX1ROTF9UU08pJTdicHJpbnRmKD4NCg0KICAgICAgICAgICAgICAgIHByaW50Zigi PG1haWx0bzopO0BALTcyNCw3KzczMyw4QEBzdHJ1Y3Ryc3NfdHlwZV9pbmZvJTdiaWYoZGV2X2lu Zm8udHhfb2ZmbG9hZF9jYXBhJkRFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPKSU3YnByaW50 Zig+VFNPIGZvciBHRU5FVkUgdHVubmVsIHBhY2tldDogICIpOw0KDQotICAgICAgICAgICAgICAg aWYgKHBvcnRzW3BvcnRfaWRdLnR1bm5lbF90c29fc2Vnc3opDQoNCisgICAgICAgICAgICAgICBp ZiAocG9ydHNbcG9ydF9pZF0uZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICYNCg0KKyAgICAgICAg ICAgICAgICAgICBERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTykNCg0KICAgICAgICAgICAg ICAgICAgICAgICAgcHJpbnRmKCJvblxuIik7DQoNCiAgICAgICAgICAgICAgICBlbHNlDQoNCiAg ICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigib2ZmXG4iKTsNCg0KQEAgLTE3MDMsOCArMTcx MywxMCBAQCBzdHJ1Y3QgaWdiX3JpbmdfZGVzY18xNl9ieXRlcyB7DQoNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0eF9jb25mLT50eF90aHJlc2gucHRocmVzaCwNCg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHR4X2NvbmYtPnR4X3RocmVzaC5odGhyZXNoLA0KDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhfY29uZi0+dHhfdGhyZXNoLnd0aHJlc2gpOw0K DQotICAgICAgICAgICAgICAgcHJpbnRmKCIgIFRYIFJTIGJpdCB0aHJlc2hvbGQ9JWQgLSBUWFEg ZmxhZ3M9MHglIlBSSXgzMiJcbiIsDQoNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 eF9jb25mLT50eF9yc190aHJlc2gsIHR4X2NvbmYtPnR4cV9mbGFncyk7DQoNCisgICAgICAgICAg ICAgICBwcmludGYoIiAgVFggUlMgYml0IHRocmVzaG9sZD0lZCAtIFRYUSBmbGFncz0weCUiUFJJ eDMyIiINCg0KKyAgICAgICAgICAgICAgICAgICAgICAiIC0gVFhRIG9mZmxvYWRzPTB4JSJQUkl4 NjQiXG4iLA0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhfY29uZi0+dHhfcnNf dGhyZXNoLCB0eF9jb25mLT50eHFfZmxhZ3MsDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0eF9jb25mLT5vZmZsb2Fkcyk7DQoNCiAgICAgICAgfQ0KDQogfQ0KDQoNCg0KQEAgLTI3 ODIsNiArMjc5NCw3IEBAIHN0cnVjdCBpZ2JfcmluZ19kZXNjXzE2X2J5dGVzIHsNCg0KIHR4X3Zs YW5fc2V0KHBvcnRpZF90IHBvcnRfaWQsIHVpbnQxNl90IHZsYW5faWQpDQoNCiB7DQoNCiAgICAg ICAgaW50IHZsYW5fb2ZmbG9hZDsNCg0KKw0KDQogICAgICAgIGlmIChwb3J0X2lkX2lzX2ludmFs aWQocG9ydF9pZCwgRU5BQkxFRF9XQVJOKSkNCg0KICAgICAgICAgICAgICAgIHJldHVybjsNCg0K ICAgICAgICBpZiAodmxhbl9pZF9pc19pbnZhbGlkKHZsYW5faWQpKQ0KDQpAQCAtMjc5NSw2ICsy ODA4LDcgQEAgc3RydWN0IGlnYl9yaW5nX2Rlc2NfMTZfYnl0ZXMgew0KDQoNCg0KICAgICAgICB0 eF92bGFuX3Jlc2V0KHBvcnRfaWQpOw0KDQogICAgICAgIHBvcnRzW3BvcnRfaWRdLnR4X29sX2Zs YWdzIHw9IFRFU1RQTURfVFhfT0ZGTE9BRF9JTlNFUlRfVkxBTjsNCg0KKyAgICAgICBwb3J0c1tw b3J0X2lkXS5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfVkxBTl9J TlNFUlQ7DQoNCiAgICAgICAgcG9ydHNbcG9ydF9pZF0udHhfdmxhbl9pZCA9IHZsYW5faWQ7DQoN CiB9DQoNCg0KDQpAQCAtMjgwMiw2ICsyODE2LDcgQEAgc3RydWN0IGlnYl9yaW5nX2Rlc2NfMTZf Ynl0ZXMgew0KDQogdHhfcWlucV9zZXQocG9ydGlkX3QgcG9ydF9pZCwgdWludDE2X3Qgdmxhbl9p ZCwgdWludDE2X3Qgdmxhbl9pZF9vdXRlcikNCg0KIHsNCg0KICAgICAgICBpbnQgdmxhbl9vZmZs b2FkOw0KDQorDQoNCiAgICAgICAgaWYgKHBvcnRfaWRfaXNfaW52YWxpZChwb3J0X2lkLCBFTkFC TEVEX1dBUk4pKQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0KDQogICAgICAgIGlmICh2bGFu X2lkX2lzX2ludmFsaWQodmxhbl9pZCkpDQoNCkBAIC0yODE3LDYgKzI4MzIsNyBAQCBzdHJ1Y3Qg aWdiX3JpbmdfZGVzY18xNl9ieXRlcyB7DQoNCg0KDQogICAgICAgIHR4X3ZsYW5fcmVzZXQocG9y dF9pZCk7DQoNCiAgICAgICAgcG9ydHNbcG9ydF9pZF0udHhfb2xfZmxhZ3MgfD0gVEVTVFBNRF9U WF9PRkZMT0FEX0lOU0VSVF9RSU5ROw0KDQorICAgICAgIHBvcnRzW3BvcnRfaWRdLmRldl9jb25m LnR4bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVDsNCg0KICAgICAg ICBwb3J0c1twb3J0X2lkXS50eF92bGFuX2lkID0gdmxhbl9pZDsNCg0KICAgICAgICBwb3J0c1tw b3J0X2lkXS50eF92bGFuX2lkX291dGVyID0gdmxhbl9pZF9vdXRlcjsNCg0KIH0NCg0KQEAgLTI4 MjgsNiArMjg0NCw5IEBAIHN0cnVjdCBpZ2JfcmluZ19kZXNjXzE2X2J5dGVzIHsNCg0KICAgICAg ICAgICAgICAgIHJldHVybjsNCg0KICAgICAgICBwb3J0c1twb3J0X2lkXS50eF9vbF9mbGFncyAm PSB+KFRFU1RQTURfVFhfT0ZGTE9BRF9JTlNFUlRfVkxBTiB8DQoNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBURVNUUE1EX1RYX09GRkxPQURfSU5TRVJUX1FJTlEpOw0KDQorICAgICAg IHBvcnRzW3BvcnRfaWRdLmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmPQ0KDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfihERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8DQoNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJU KTsNCg0KICAgICAgICBwb3J0c1twb3J0X2lkXS50eF92bGFuX2lkID0gMDsNCg0KICAgICAgICBw b3J0c1twb3J0X2lkXS50eF92bGFuX2lkX291dGVyID0gMDsNCg0KIH0NCg0KZGlmZiAtLWdpdCBh L2FwcC90ZXN0LXBtZC90ZXN0cG1kLmMgYi9hcHAvdGVzdC1wbWQvdGVzdHBtZC5jDQoNCmluZGV4 IDc3MTU0ZWYuLjAwODc0MzggMTAwNjQ0DQoNCi0tLSBhL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmMN Cg0KKysrIGIvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYw0KDQpAQCAtMTQ5OCw2ICsxNDk4LDkgQEAg c3RhdGljIGludCBldGhfZXZlbnRfY2FsbGJhY2socG9ydGlkX3QgcG9ydF9pZCwNCg0KICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChwb3J0LT5uZWVkX3JlY29uZmlnX3F1 ZXVlcyA+IDApIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC0+bmVlZF9yZWNvbmZp Z19xdWV1ZXMgPSAwOw0KDQorICAgICAgICAgICAgICAgICAgICAgICBwb3J0LT50eF9jb25mLnR4 cV9mbGFncyA9IEVUSF9UWFFfRkxBR1NfSUdOT1JFOw0KDQorICAgICAgICAgICAgICAgICAgICAg ICAvKiBBcHBseSBUeCBvZmZsb2FkcyBjb25maWd1cmF0aW9uICovDQoNCisgICAgICAgICAgICAg ICAgICAgICAgIHBvcnQtPnR4X2NvbmYub2ZmbG9hZHMgPSBwb3J0LT5kZXZfY29uZi50eG1vZGUu b2ZmbG9hZHM7DQoNCkZBU1RfRlJFRSBmbGFnIGdvdCBsb3N0IGR1cmluZyBjb252ZXJzaW9uLg0K DQpQZXItcXVldWUgY29uZmlndXJhdGlvbiBmbGFncyBhcmUgaW5pdGlhbGl6ZWQgd2l0aCBQTUQt c3BlY2lmaWMgZGVmYXVsdCB2YWx1ZXMgaW4gcnh0eF9wb3J0X2NvbmZpZzoNCg0Kcnh0eF9wb3J0 X2NvbmZpZyhzdHJ1Y3QgcnRlX3BvcnQgKnBvcnQpDQp7DQogICAgcG9ydC0+cnhfY29uZiA9IHBv cnQtPmRldl9pbmZvLmRlZmF1bHRfcnhjb25mOw0KICAgIHBvcnQtPnR4X2NvbmYgPSBwb3J0LT5k ZXZfaW5mby5kZWZhdWx0X3R4Y29uZjsNCi4uLg0KDQpidXQgcG9ydC0+ZGV2X2NvbmYudHhtb2Rl IGlzIHRha2VuIGZyb20gZ2xvYmFsIHZhcmlhYmxlIHR4bW9kZSwgbm90IGZyb20gUE1ELiBTZWUg aW4gaW5pdF9jb25maWcoKToNCg0KICAgICAgICAvKiBBcHBseSBkZWZhdWx0IFR4IGNvbmZpZ3Vy YXRpb24gZm9yIGFsbCBwb3J0cyAqLw0KICAgICAgICBwb3J0LT5kZXZfY29uZi50eG1vZGUgPSB0 eF9tb2RlOw0KICAgICAgICBwb3J0LT5kZXZfY29uZi5yeG1vZGUgPSByeF9tb2RlOw0KDQpTbyB0 aGUgY29uZmlndXJhdGlvbiB3aWxsIG5vdCBiZSBjb25zaXN0ZW50LCBpLmUuIGRpZmZlcmVudCBm bGFncyBpbiB0eF9xdWV1ZV9zZXR1cCgpIGFuZCBkaWZmZXJlbnQgaW4gZGV2X2NvbmZpZ3VyZSgp Lg0KDQpJZiB0aGUgaW50ZW50aW9uIGlzIHRvIGtlZXAgZGVmYXVsdHMgZnJvbSBQTUQsIGxldCdz IGZpeCB0aGlzLi4uDQpJZiBub3QsIHBsZWFzZSBhcHBseSBGQVNUX0ZSRUUgZmxhZyAgYXMgaW4g ZXhhbXBsZSBwYXRjaCB2MywgZS5nOg0KDQorICAgICAgICBydGVfZXRoX2Rldl9pbmZvX2dldChw b3J0aWQsICZkZXZfaW5mbyk7DQorICAgICAgICBpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBh ICYgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpDQorICAgICAgICAgICAgbG9jYWxfcG9y dF9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PQ0KKyAgICAgICAgICAgICAgICBERVZfVFhfT0ZGTE9B RF9NQlVGX0ZBU1RfRlJFRTsNCg0KDQoNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAvKiBz ZXR1cCB0eCBxdWV1ZXMgKi8NCg0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChxaSA9IDA7 IHFpIDwgbmJfdHhxOyBxaSsrKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoKG51bWFfc3VwcG9ydCkgJiYNCg0K