From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 94698 invoked by alias); 10 Apr 2018 09:02:54 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 94258 invoked by uid 89); 10 Apr 2018 09:02:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,KAM_STOCKGEN,MIME_BASE64_BLANKS,SPF_PASS autolearn=ham version=3.3.2 spammy=Below X-HELO: mga05.intel.com Received: from mga05.intel.com (HELO mga05.intel.com) (192.55.52.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 10 Apr 2018 09:02:49 +0000 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Apr 2018 02:02:47 -0700 X-ExtLoop1: 1 Received: from irsmsx107.ger.corp.intel.com ([163.33.3.99]) by fmsmga006.fm.intel.com with ESMTP; 10 Apr 2018 02:02:46 -0700 Received: from irsmsx103.ger.corp.intel.com ([169.254.3.61]) by IRSMSX107.ger.corp.intel.com ([169.254.10.157]) with mapi id 14.03.0319.002; Tue, 10 Apr 2018 10:02:45 +0100 From: "Metzger, Markus T" To: Pedro Alves , "gdb-patches@sourceware.org" Subject: RE: [PATCH] infrun: step through indirect branch thunks Date: Tue, 10 Apr 2018 09:02:00 -0000 Message-ID: References: <1519017382-24335-1-git-send-email-markus.t.metzger@intel.com> <4dfab882-016f-01b5-bb28-67cd6637acea@redhat.com> In-Reply-To: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDNiYzhmZmUtYmMzYi00MjBhLWI0NjYtYmVlNTBkNTg2MDNlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJuVWx1SEt3MVRrS05sb2ptWlJUdE92SDY0Wk1kZFpsdCtaM0l1QlFkb0RyNGVCSlpjRDFaZFV3YWZoWG9NWkRwIn0= dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-IsSubscribed: yes X-SW-Source: 2018-04/txt/msg00171.txt.bz2 SGVsbG8gUGVkcm8sDQoNCj4gVGhpcyBpcyBPSyB3aXRoIGEgZmV3IG1pbm9y IGNoYW5nZXMgcG9pbnRlZCBvdXQgYmVsb3cuDQoNClRoYW5rcy4gIEJlbG93 IGlzIHRoZSB1cGRhdGVkIHBhdGNoLiAgVW5sZXNzIHRoZXJlIGFyZSBmdXJ0 aGVyIGNvbW1lbnRzDQpJIHdpbGwgcHVzaCBpdCBlbmQgb2YgdGhpcyB3ZWVr Lg0KDQpUaGFua3MsDQpNYXJrdXMuDQoNCmNvbW1pdCA1MDg2ZGMwYmE5MzFk ZTY0YjRkNjY0MjU1NjE3NzNlYzJlMTFmYmVhDQpBdXRob3I6IE1hcmt1cyBN ZXR6Z2VyIDxtYXJrdXMudC5tZXR6Z2VyQGludGVsLmNvbT4NCkRhdGU6ICAg V2VkIEZlYiAxNCAxNDozMDo1NyAyMDE4ICswMTAwDQoNCiAgICBpbmZydW46 IHN0ZXAgdGhyb3VnaCBpbmRpcmVjdCBicmFuY2ggdGh1bmtzDQogICAgDQog ICAgV2l0aCB2ZXJzaW9uIDcuMyBHQ0Mgc3VwcG9ydHMgbmV3IG9wdGlvbnMN CiAgICANCiAgICAgICAtbWluZGlyZWN0LWJyYW5jaD08Y2hvaWNlPg0KICAg ICAgIC1tZnVuY3Rpb24tcmV0dXJuPTxjaG9pY2U+DQogICAgDQogICAgVGhl IGNob2ljZXMgYXJlOg0KICAgIA0KICAgICAgICBrZWVwICAgICAgICAgICAg ICAgIGJlaGF2ZXMgYXMgYmVmb3JlDQogICAgICAgIHRodW5rICAgICAgICAg ICAgICAganVtcHMgdGhyb3VnaCBhIHRodW5rDQogICAgICAgIHRodW5rLWV4 dGVybmFsICAgICAganVtcHMgdGhyb3VnaCBhbiBleHRlcm5hbCB0aHVuaw0K ICAgICAgICB0aHVuay1pbmxpbmUgICAgICAgIGp1bXBzIHRocm91Z2ggYW4g aW5saW5lZCB0aHVuaw0KICAgIA0KICAgIEZvciB0aHVuayBhbmQgdGh1bmst ZXh0ZXJuYWwsIEdEQiB3b3VsZCwgb24gYSBjYWxsIHRvIHRoZSB0aHVuaywg c3RlcCBpbnRvDQogICAgdGhlIHRodW5rIGFuZCB0aGVuIHJlc3VtZSB0byBp dHMgY2FsbGVyIGFzc3VtaW5nIHRoYXQgdGhpcyBpcyBhbg0KICAgIHVuZGVi dWdnYWJsZSBmdW5jdGlvbi4gIE9uIGEgcmV0dXJuIHRodW5rLCBHREIgd291 bGQgc3RvcCBpbnNpZGUgdGhlDQogICAgdGh1bmsuDQogICAgDQogICAgTWFr ZSBHREIgc3RlcCB0aHJvdWdoIHN1Y2ggdGh1bmtzIGluc3RlYWQuDQogICAg DQogICAgQmVmb3JlOg0KICAgICAgICBUZW1wb3JhcnkgYnJlYWtwb2ludCAx LCBtYWluICgpDQogICAgICAgICAgICBhdCBnZGIuYmFzZS9zdGVwLWluZGly ZWN0LWNhbGwtdGh1bmsuYzozNw0KICAgICAgICAzNyAgICAgICAgeCA9IGFw cGx5IChpbmMsIDQxKTsNCiAgICAgICAgKGdkYikgcw0KICAgICAgICBhcHBs eSAob3A9MHg4MDQ4M2U2IDxpbmM+LCB4PTQxKQ0KICAgICAgICAgICAgYXQg Z2RiLmJhc2Uvc3RlcC1pbmRpcmVjdC1jYWxsLXRodW5rLmM6MjkNCiAgICAg ICAgMjkgICAgICAgIHJldHVybiBvcCAoeCk7DQogICAgICAgIChnZGIpDQog ICAgICAgIDMwICAgICAgfQ0KICAgIA0KICAgIEFmdGVyOg0KICAgICAgICBU ZW1wb3JhcnkgYnJlYWtwb2ludCAxLCBtYWluICgpDQogICAgICAgICAgICBh dCBnZGIuYmFzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1bmsuYzozNw0KICAg ICAgICAzNyAgICAgICAgeCA9IGFwcGx5IChpbmMsIDQxKTsNCiAgICAgICAg KGdkYikgcw0KICAgICAgICBhcHBseSAob3A9MHg4MDQ4M2U2IDxpbmM+LCB4 PTQxKQ0KICAgICAgICAgICAgYXQgZ2RiLmJhc2Uvc3RlcC1pbmRpcmVjdC1j YWxsLXRodW5rLmM6MjkNCiAgICAgICAgMjkgICAgICAgIHJldHVybiBvcCAo eCk7DQogICAgICAgIChnZGIpDQogICAgICAgIGluYyAoeD00MSkgYXQgZ2Ri LmJhc2Uvc3RlcC1pbmRpcmVjdC1jYWxsLXRodW5rLmM6MjMNCiAgICAgICAg MjMgICAgICAgIHJldHVybiB4ICsgMTsNCiAgICANCiAgICBUaGlzIGlzIGlu ZGVwZW5kZW50IG9mIHRoZSBzdGVwLW1vZGUuICBJbiBvcmRlciB0byBzdGVw IGludG8gdGhlIHRodW5rLA0KICAgIHlvdSB3b3VsZCBuZWVkIHRvIHVzZSBz dGVwaS4NCiAgICANCiAgICBXaGVuIHN0ZXBwaW5nIG92ZXIgYW4gaW5kaXJl Y3QgY2FsbCB0aHVuaywgR0RCIHdvdWxkIGZpcnN0IHN0ZXAgdGhyb3VnaA0K ICAgIHRoZSB0aHVuaywgdGhlbiByZWNvZ25pemUgdGhhdCBpdCBzdGVwcGVk IGludG8gYSBzdWItcm91dGluZSBhbmQgcmVzdW1lIHRvDQogICAgdGhlIGNh bGxlciAob2YgdGhlIHRodW5rKS4gIE5vdCBzdXJlIHdoZXRoZXIgdGhpcyBp cyB3b3J0aCBvcHRpbWl6aW5nLg0KICAgIA0KICAgIFRodW5rIGRldGVjdGlv biBpcyBpbXBsZW1lbnRlZCB2aWEgZ2RiYXJjaC4gIEkgaW1wbGVtZW50ZWQg dGhlIG1ldGhvZHMgZm9yDQogICAgSUEuICBPdGhlciBhcmNoaXRlY3R1cmVz IG1heSBydW4gaW50byB1bmV4cGVjdGVkIGZhaWxzLg0KICAgIA0KICAgIFRo ZSB0ZXN0cyBhc3N1bWUgYSBmaXhlZCBudW1iZXIgb2YgaW5zdHJ1Y3Rpb24g c3RlcHMgdG8gcmVhY2ggYSB0aHVuay4NCiAgICBUaGlzIGRlcGVuZHMgb24g dGhlIGNvbXBpbGVyIGFzIHdlbGwgYXMgdGhlIGFyY2hpdGVjdHVyZS4gIFRo ZXkgbWF5IG5lZWQNCiAgICBhZGp1c3RtZW50cyB3aGVuIHdlIGFkZCBzdXBw b3J0IGZvciBtb3JlIGFyY2hpdGVjdHVyZXMuICBPciB3ZSBjYW4gc2ltcGx5 DQogICAgZHJvcCB0aG9zZSB0ZXN0cyB0aGF0IGNvdmVyIGJlaW5nIGFibGUg dG8gc3RlcCBpbnRvIHRodW5rcyB1c2luZw0KICAgIGluc3RydWN0aW9uIHN0 ZXBwaW5nLg0KICAgIA0KICAgIFdoZW4gdXNpbmcgYW4gb2xkZXIgR0NDLCB0 aGUgdGVzdHMgd2lsbCBmYWlsIHRvIGJ1aWxkIGFuZCB3aWxsIGJlIHJlcG9y dGVkDQogICAgYXMgdW50ZXN0ZWQ6DQogICAgDQogICAgICAgIFJ1bm5pbmcg Li4uL2dkYi5iYXNlL3N0ZXAtaW5kaXJlY3QtY2FsbC10aHVuay5leHAgLi4u DQogICAgICAgIGdkYiBjb21waWxlIGZhaWxlZCwgXA0KICAgICAgICBnY2M6 IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLW1p bmRpcmVjdC1icmFuY2g9dGh1bmsnDQogICAgICAgIGdjYzogZXJyb3I6IHVu cmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICctbWZ1bmN0aW9uLXJl dHVybj10aHVuaycNCiAgICANCiAgICAgICAgICAgICAgICAgICAgICAgID09 PSBnZGIgU3VtbWFyeSA9PT0NCiAgICANCiAgICAgICAgIyBvZiB1bnRlc3Rl ZCB0ZXN0Y2FzZXMgICAgICAgICAxDQogICAgDQogICAgMjAxOC0wNC0xMCAg TWFya3VzIE1ldHpnZXIgIDxtYXJrdXMudC5tZXR6Z2VyQGludGVsLmNvbT4N CiAgICANCiAgICBnZGIvDQogICAgCSogaW5mcnVuLmMgKHByb2Nlc3NfZXZl bnRfc3RvcF90ZXN0KToNCiAgICAJQ2FsbCBnZGJhcmNoX2luX2luZGlyZWN0 X2JyYW5jaF90aHVuay4NCiAgICAJKiBnZGJhcmNoLnNoIChpbl9pbmRpcmVj dF9icmFuY2hfdGh1bmspOiBOZXcuDQogICAgCSogZ2RiYXJjaC5jOiBSZWdl bmVyYXRlZC4NCiAgICAJKiBnZGJhcmNoLmg6IFJlZ2VuZXJhdGVkLg0KICAg IAkqIHg4Ni10ZGVwLmg6IE5ldy4NCiAgICAJKiB4ODYtdGRlcC5jOiBOZXcu DQogICAgCSogTWFrZWZpbGUuaW4gKEFMTF9UQVJHRVRfT0JTKTogQWRkIHg4 Ni10ZGVwLm8uDQogICAgCShIRklMRVNfTk9fU1JDRElSKTogQWRkIHg4Ni10 ZGVwLmguDQogICAgCShBTExERVBGSUxFUyk6IEFkZCB4ODYtdGRlcC5jLg0K ICAgIAkqIGFyY2gtdXRpbHMuaCAoZGVmYXVsdF9pbl9pbmRpcmVjdF9icmFu Y2hfdGh1bmspOiBOZXcuDQogICAgCSogYXJjaC11dGlscy5jIChkZWZhdWx0 X2luX2luZGlyZWN0X2JyYW5jaF90aHVuayk6IE5ldy4NCiAgICAJKiBpMzg2 LXRkZXA6IEluY2x1ZGUgeDg2LXRkZXAuaC4NCiAgICAJKGkzODZfaW5faW5k aXJlY3RfYnJhbmNoX3RodW5rKTogTmV3Lg0KICAgIAkoaTM4Nl9lbGZfaW5p dF9hYmkpOiBTZXQgaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rIGdkYmFyY2gg ZnVuY3Rpb24uDQogICAgCSogYW1kNjQtdGRlcDogSW5jbHVkZSB4ODYtdGRl cC5oLg0KICAgIAkoYW1kNjRfaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rKTog TmV3Lg0KICAgIAkoYW1kNjRfaW5pdF9hYmkpOiBTZXQgaW5faW5kaXJlY3Rf YnJhbmNoX3RodW5rIGdkYmFyY2ggZnVuY3Rpb24uDQogICAgDQogICAgdGVz dHN1aXRlLw0KICAgIAkqIGdkYi5iYXNlL3N0ZXAtaW5kaXJlY3QtY2FsbC10 aHVuay5leHA6IE5ldy4NCiAgICAJKiBnZGIuYmFzZS9zdGVwLWluZGlyZWN0 LWNhbGwtdGh1bmsuYzogTmV3Lg0KICAgIAkqIGdkYi5yZXZlcnNlL3N0ZXAt aW5kaXJlY3QtY2FsbC10aHVuay5leHA6IE5ldy4NCiAgICAJKiBnZGIucmV2 ZXJzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1bmsuYzogTmV3Lg0KDQpkaWZm IC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluDQpp bmRleCBlODg1ZGNhLi40MGM5Zjg5IDEwMDY0NA0KLS0tIGEvZ2RiL01ha2Vm aWxlLmluDQorKysgYi9nZGIvTWFrZWZpbGUuaW4NCkBAIC03OTMsNiArNzkz LDcgQEAgQUxMX1RBUkdFVF9PQlMgPSBcDQogCXZheC1uYnNkLXRkZXAubyBc DQogCXZheC10ZGVwLm8gXA0KIAl3aW5kb3dzLXRkZXAubyBcDQorCXg4Ni10 ZGVwLm8gXA0KIAl4Y29mZnJlYWQubyBcDQogCXhzdG9ybXkxNi10ZGVwLm8g XA0KIAl4dGVuc2EtY29uZmlnLm8gXA0KQEAgLTE1MjEsNyArMTUyMiw4IEBA IEhGSUxFU19OT19TUkNESVIgPSBcDQogCXR1aS90dWktd2luLmggXA0KIAl0 dWkvdHVpLXdpbmRhdGEuaCBcDQogCXR1aS90dWktd2luZ2VuZXJhbC5oIFwN Ci0JdHVpL3R1aS13aW5zb3VyY2UuaA0KKwl0dWkvdHVpLXdpbnNvdXJjZS5o IFwNCisJeDg2LXRkZXAuaA0KIA0KICMgSGVhZGVyIGZpbGVzIHRoYXQgYWxy ZWFkeSBoYXZlIHNyY2RpciBpbiB0aGVtLCBvciB3aGljaCBhcmUgaW4gb2Jq ZGlyLg0KIA0KQEAgLTIzNjMsNiArMjM2NSw3IEBAIEFMTERFUEZJTEVTID0g XA0KIAl3aW5kb3dzLW5hdC5jIFwNCiAJd2luZG93cy10ZGVwLmMgXA0KIAl4 ODYtbmF0LmMgXA0KKwl4ODYtdGRlcC5jIFwNCiAJeGNvZmZyZWFkLmMgXA0K IAl4c3Rvcm15MTYtdGRlcC5jIFwNCiAJeHRlbnNhLWNvbmZpZy5jIFwNCmRp ZmYgLS1naXQgYS9nZGIvYW1kNjQtdGRlcC5jIGIvZ2RiL2FtZDY0LXRkZXAu Yw0KaW5kZXggYmNlYjZlMS4uMWZlYTI2NCAxMDA2NDQNCi0tLSBhL2dkYi9h bWQ2NC10ZGVwLmMNCisrKyBiL2dkYi9hbWQ2NC10ZGVwLmMNCkBAIC00OCw2 ICs0OCw3IEBADQogI2luY2x1ZGUgImF4LWdkYi5oIg0KICNpbmNsdWRlICJj b21tb24vYnl0ZS12ZWN0b3IuaCINCiAjaW5jbHVkZSAib3NhYmkuaCINCisj aW5jbHVkZSAieDg2LXRkZXAuaCINCiANCiAvKiBOb3RlIHRoYXQgdGhlIEFN RDY0IGFyY2hpdGVjdHVyZSB3YXMgcHJldmlvdXNseSBrbm93biBhcyB4ODYt NjQuDQogICAgVGhlIGxhdHRlciBpcyAoZm9yZXZlcikgZW5ncmF2ZWQgaW50 byB0aGUgY2Fub25pY2FsIHN5c3RlbSBuYW1lIGFzDQpAQCAtMzAzNCw2ICsz MDM1LDE2IEBAIHN0YXRpYyBjb25zdCBpbnQgYW1kNjRfcmVjb3JkX3JlZ21h cFtdID0NCiAgIEFNRDY0X0RTX1JFR05VTSwgQU1ENjRfRVNfUkVHTlVNLCBB TUQ2NF9GU19SRUdOVU0sIEFNRDY0X0dTX1JFR05VTQ0KIH07DQogDQorLyog SW1wbGVtZW50IHRoZSAiaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rIiBnZGJh cmNoIGZ1bmN0aW9uLiAgKi8NCisNCitzdGF0aWMgYm9vbA0KK2FtZDY0X2lu X2luZGlyZWN0X2JyYW5jaF90aHVuayAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIENPUkVfQUREUiBwYykNCit7DQorICByZXR1cm4geDg2X2luX2luZGly ZWN0X2JyYW5jaF90aHVuayAocGMsIGFtZDY0X3JlZ2lzdGVyX25hbWVzLA0K KwkJCQkgICAgICAgQU1ENjRfUkFYX1JFR05VTSwNCisJCQkJICAgICAgIEFN RDY0X1JJUF9SRUdOVU0pOw0KK30NCisNCiB2b2lkDQogYW1kNjRfaW5pdF9h YmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsDQogCQljb25zdCB0YXJnZXRfZGVzYyAqZGVmYXVsdF90ZGVz YykNCkBAIC0zMjA2LDYgKzMyMTcsOSBAQCBhbWQ2NF9pbml0X2FiaSAoc3Ry dWN0IGdkYmFyY2hfaW5mbyBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwNCiAgIHNldF9nZGJhcmNoX2luc25faXNfY2FsbCAoZ2RiYXJjaCwgYW1k NjRfaW5zbl9pc19jYWxsKTsNCiAgIHNldF9nZGJhcmNoX2luc25faXNfcmV0 IChnZGJhcmNoLCBhbWQ2NF9pbnNuX2lzX3JldCk7DQogICBzZXRfZ2RiYXJj aF9pbnNuX2lzX2p1bXAgKGdkYmFyY2gsIGFtZDY0X2luc25faXNfanVtcCk7 DQorDQorICBzZXRfZ2RiYXJjaF9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmsg KGdkYmFyY2gsDQorCQkJCQlhbWQ2NF9pbl9pbmRpcmVjdF9icmFuY2hfdGh1 bmspOw0KIH0NCiANCiAvKiBJbml0aWFsaXplIEFSQ0ggZm9yIHg4Ni02NCwg bm8gb3NhYmkuICAqLw0KZGlmZiAtLWdpdCBhL2dkYi9hcmNoLXV0aWxzLmMg Yi9nZGIvYXJjaC11dGlscy5jDQppbmRleCA1OTg2ZWQ2Li5jZDliZDY2IDEw MDY0NA0KLS0tIGEvZ2RiL2FyY2gtdXRpbHMuYw0KKysrIGIvZ2RiL2FyY2gt dXRpbHMuYw0KQEAgLTk3OSw2ICs5NzksMTQgQEAgZ2RiYXJjaF9za2lwX3By b2xvZ3VlX25vZXhjZXB0IChnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIg cGMpIG5vZXhjZXB0DQogICByZXR1cm4gbmV3X3BjOw0KIH0NCiANCisvKiBT ZWUgYXJjaC11dGlscy5oLiAgKi8NCisNCitib29sDQorZGVmYXVsdF9pbl9p bmRpcmVjdF9icmFuY2hfdGh1bmsgKGdkYmFyY2ggKmdkYmFyY2gsIENPUkVf QUREUiBwYykNCit7DQorICByZXR1cm4gZmFsc2U7DQorfQ0KKw0KIHZvaWQN CiBfaW5pdGlhbGl6ZV9nZGJhcmNoX3V0aWxzICh2b2lkKQ0KIHsNCmRpZmYg LS1naXQgYS9nZGIvYXJjaC11dGlscy5oIGIvZ2RiL2FyY2gtdXRpbHMuaA0K aW5kZXggMzQwN2ExNi4uYjc4NWIyNCAxMDA2NDQNCi0tLSBhL2dkYi9hcmNo LXV0aWxzLmgNCisrKyBiL2dkYi9hcmNoLXV0aWxzLmgNCkBAIC0yNjIsNCAr MjYyLDkgQEAgZXh0ZXJuIGludCBkZWZhdWx0X3ByaW50X2luc24gKGJmZF92 bWEgbWVtYWRkciwgZGlzYXNzZW1ibGVfaW5mbyAqaW5mbyk7DQogZXh0ZXJu IENPUkVfQUREUiBnZGJhcmNoX3NraXBfcHJvbG9ndWVfbm9leGNlcHQgKGdk YmFyY2ggKmdkYmFyY2gsDQogCQkJCQkJIENPUkVfQUREUiBwYykgbm9leGNl cHQ7DQogDQorLyogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBnZGJhcmNo X2luX2luZGlyZWN0X2JyYW5jaF90aHVuayB0aGF0IHJldHVybnMNCisgICBm YWxzZS4gICovDQorZXh0ZXJuIGJvb2wgZGVmYXVsdF9pbl9pbmRpcmVjdF9i cmFuY2hfdGh1bmsgKGdkYmFyY2ggKmdkYmFyY2gsDQorCQkJCQkgICAgICBD T1JFX0FERFIgcGMpOw0KKw0KICNlbmRpZg0KZGlmZiAtLWdpdCBhL2dkYi9n ZGJhcmNoLmMgYi9nZGIvZ2RiYXJjaC5jDQppbmRleCBkZGFmZTI1Li4xMzU5 YzJmIDEwMDY0NA0KLS0tIGEvZ2RiL2dkYmFyY2guYw0KKysrIGIvZ2RiL2dk YmFyY2guYw0KQEAgLTI2Niw2ICsyNjYsNyBAQCBzdHJ1Y3QgZ2RiYXJjaA0K ICAgZ2RiYXJjaF9za2lwX3RyYW1wb2xpbmVfY29kZV9mdHlwZSAqc2tpcF90 cmFtcG9saW5lX2NvZGU7DQogICBnZGJhcmNoX3NraXBfc29saWJfcmVzb2x2 ZXJfZnR5cGUgKnNraXBfc29saWJfcmVzb2x2ZXI7DQogICBnZGJhcmNoX2lu X3NvbGliX3JldHVybl90cmFtcG9saW5lX2Z0eXBlICppbl9zb2xpYl9yZXR1 cm5fdHJhbXBvbGluZTsNCisgIGdkYmFyY2hfaW5faW5kaXJlY3RfYnJhbmNo X3RodW5rX2Z0eXBlICppbl9pbmRpcmVjdF9icmFuY2hfdGh1bms7DQogICBn ZGJhcmNoX3N0YWNrX2ZyYW1lX2Rlc3Ryb3llZF9wX2Z0eXBlICpzdGFja19m cmFtZV9kZXN0cm95ZWRfcDsNCiAgIGdkYmFyY2hfZWxmX21ha2VfbXN5bWJv bF9zcGVjaWFsX2Z0eXBlICplbGZfbWFrZV9tc3ltYm9sX3NwZWNpYWw7DQog ICBnZGJhcmNoX2NvZmZfbWFrZV9tc3ltYm9sX3NwZWNpYWxfZnR5cGUgKmNv ZmZfbWFrZV9tc3ltYm9sX3NwZWNpYWw7DQpAQCAtNDMzLDYgKzQzNCw3IEBA IGdkYmFyY2hfYWxsb2MgKGNvbnN0IHN0cnVjdCBnZGJhcmNoX2luZm8gKmlu Zm8sDQogICBnZGJhcmNoLT5za2lwX3RyYW1wb2xpbmVfY29kZSA9IGdlbmVy aWNfc2tpcF90cmFtcG9saW5lX2NvZGU7DQogICBnZGJhcmNoLT5za2lwX3Nv bGliX3Jlc29sdmVyID0gZ2VuZXJpY19za2lwX3NvbGliX3Jlc29sdmVyOw0K ICAgZ2RiYXJjaC0+aW5fc29saWJfcmV0dXJuX3RyYW1wb2xpbmUgPSBnZW5l cmljX2luX3NvbGliX3JldHVybl90cmFtcG9saW5lOw0KKyAgZ2RiYXJjaC0+ aW5faW5kaXJlY3RfYnJhbmNoX3RodW5rID0gZGVmYXVsdF9pbl9pbmRpcmVj dF9icmFuY2hfdGh1bms7DQogICBnZGJhcmNoLT5zdGFja19mcmFtZV9kZXN0 cm95ZWRfcCA9IGdlbmVyaWNfc3RhY2tfZnJhbWVfZGVzdHJveWVkX3A7DQog ICBnZGJhcmNoLT5jb2ZmX21ha2VfbXN5bWJvbF9zcGVjaWFsID0gZGVmYXVs dF9jb2ZmX21ha2VfbXN5bWJvbF9zcGVjaWFsOw0KICAgZ2RiYXJjaC0+bWFr ZV9zeW1ib2xfc3BlY2lhbCA9IGRlZmF1bHRfbWFrZV9zeW1ib2xfc3BlY2lh bDsNCkBAIC02MjcsNiArNjI5LDcgQEAgdmVyaWZ5X2dkYmFyY2ggKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoKQ0KICAgLyogU2tpcCB2ZXJpZnkgb2Ygc2tp cF90cmFtcG9saW5lX2NvZGUsIGludmFsaWRfcCA9PSAwICovDQogICAvKiBT a2lwIHZlcmlmeSBvZiBza2lwX3NvbGliX3Jlc29sdmVyLCBpbnZhbGlkX3Ag PT0gMCAqLw0KICAgLyogU2tpcCB2ZXJpZnkgb2YgaW5fc29saWJfcmV0dXJu X3RyYW1wb2xpbmUsIGludmFsaWRfcCA9PSAwICovDQorICAvKiBTa2lwIHZl cmlmeSBvZiBpbl9pbmRpcmVjdF9icmFuY2hfdGh1bmssIGludmFsaWRfcCA9 PSAwICovDQogICAvKiBTa2lwIHZlcmlmeSBvZiBzdGFja19mcmFtZV9kZXN0 cm95ZWRfcCwgaW52YWxpZF9wID09IDAgKi8NCiAgIC8qIFNraXAgdmVyaWZ5 IG9mIGVsZl9tYWtlX21zeW1ib2xfc3BlY2lhbCwgaGFzIHByZWRpY2F0ZS4g ICovDQogICAvKiBTa2lwIHZlcmlmeSBvZiBjb2ZmX21ha2VfbXN5bWJvbF9z cGVjaWFsLCBpbnZhbGlkX3AgPT0gMCAqLw0KQEAgLTExMDMsNiArMTEwNiw5 IEBAIGdkYmFyY2hfZHVtcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0 cnVjdCB1aV9maWxlICpmaWxlKQ0KICAgICAgICAgICAgICAgICAgICAgICAi Z2RiYXJjaF9kdW1wOiBoYXZlX25vbnN0ZXBwYWJsZV93YXRjaHBvaW50ID0g JXNcbiIsDQogICAgICAgICAgICAgICAgICAgICAgIHBsb25nZXN0IChnZGJh cmNoLT5oYXZlX25vbnN0ZXBwYWJsZV93YXRjaHBvaW50KSk7DQogICBmcHJp bnRmX3VuZmlsdGVyZWQgKGZpbGUsDQorICAgICAgICAgICAgICAgICAgICAg ICJnZGJhcmNoX2R1bXA6IGluX2luZGlyZWN0X2JyYW5jaF90aHVuayA9IDwl cz5cbiIsDQorICAgICAgICAgICAgICAgICAgICAgIGhvc3RfYWRkcmVzc190 b19zdHJpbmcgKGdkYmFyY2gtPmluX2luZGlyZWN0X2JyYW5jaF90aHVuaykp Ow0KKyAgZnByaW50Zl91bmZpbHRlcmVkIChmaWxlLA0KICAgICAgICAgICAg ICAgICAgICAgICAiZ2RiYXJjaF9kdW1wOiBpbl9zb2xpYl9yZXR1cm5fdHJh bXBvbGluZSA9IDwlcz5cbiIsDQogICAgICAgICAgICAgICAgICAgICAgIGhv c3RfYWRkcmVzc190b19zdHJpbmcgKGdkYmFyY2gtPmluX3NvbGliX3JldHVy bl90cmFtcG9saW5lKSk7DQogICBmcHJpbnRmX3VuZmlsdGVyZWQgKGZpbGUs DQpAQCAtMzM1Myw2ICszMzU5LDIzIEBAIHNldF9nZGJhcmNoX2luX3NvbGli X3JldHVybl90cmFtcG9saW5lIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwN CiAgIGdkYmFyY2gtPmluX3NvbGliX3JldHVybl90cmFtcG9saW5lID0gaW5f c29saWJfcmV0dXJuX3RyYW1wb2xpbmU7DQogfQ0KIA0KK2Jvb2wNCitnZGJh cmNoX2luX2luZGlyZWN0X2JyYW5jaF90aHVuayAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIENPUkVfQUREUiBwYykNCit7DQorICBnZGJfYXNzZXJ0IChn ZGJhcmNoICE9IE5VTEwpOw0KKyAgZ2RiX2Fzc2VydCAoZ2RiYXJjaC0+aW5f aW5kaXJlY3RfYnJhbmNoX3RodW5rICE9IE5VTEwpOw0KKyAgaWYgKGdkYmFy Y2hfZGVidWcgPj0gMikNCisgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJf c3RkbG9nLCAiZ2RiYXJjaF9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmsgY2Fs bGVkXG4iKTsNCisgIHJldHVybiBnZGJhcmNoLT5pbl9pbmRpcmVjdF9icmFu Y2hfdGh1bmsgKGdkYmFyY2gsIHBjKTsNCit9DQorDQordm9pZA0KK3NldF9n ZGJhcmNoX2luX2luZGlyZWN0X2JyYW5jaF90aHVuayAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnZGJhcmNoX2luX2luZGlyZWN0X2JyYW5jaF90aHVua19mdHlw ZSBpbl9pbmRpcmVjdF9icmFuY2hfdGh1bmspDQorew0KKyAgZ2RiYXJjaC0+ aW5faW5kaXJlY3RfYnJhbmNoX3RodW5rID0gaW5faW5kaXJlY3RfYnJhbmNo X3RodW5rOw0KK30NCisNCiBpbnQNCiBnZGJhcmNoX3N0YWNrX2ZyYW1lX2Rl c3Ryb3llZF9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERS IGFkZHIpDQogew0KZGlmZiAtLWdpdCBhL2dkYi9nZGJhcmNoLmggYi9nZGIv Z2RiYXJjaC5oDQppbmRleCA1Y2IxMzFkLi4wMDg0ZjE5IDEwMDY0NA0KLS0t IGEvZ2RiL2dkYmFyY2guaA0KKysrIGIvZ2RiL2dkYmFyY2guaA0KQEAgLTc0 MSw2ICs3NDEsMTIgQEAgdHlwZWRlZiBpbnQgKGdkYmFyY2hfaW5fc29saWJf cmV0dXJuX3RyYW1wb2xpbmVfZnR5cGUpIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwNCiBleHRlcm4gaW50IGdkYmFyY2hfaW5fc29saWJfcmV0dXJuX3Ry YW1wb2xpbmUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIg cGMsIGNvbnN0IGNoYXIgKm5hbWUpOw0KIGV4dGVybiB2b2lkIHNldF9nZGJh cmNoX2luX3NvbGliX3JldHVybl90cmFtcG9saW5lIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgZ2RiYXJjaF9pbl9zb2xpYl9yZXR1cm5fdHJhbXBvbGlu ZV9mdHlwZSAqaW5fc29saWJfcmV0dXJuX3RyYW1wb2xpbmUpOw0KIA0KKy8q IFJldHVybiB0cnVlIGlmIFBDIGxpZXMgaW5zaWRlIGFuIGluZGlyZWN0IGJy YW5jaCB0aHVuay4gKi8NCisNCit0eXBlZGVmIGJvb2wgKGdkYmFyY2hfaW5f aW5kaXJlY3RfYnJhbmNoX3RodW5rX2Z0eXBlKSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIENPUkVfQUREUiBwYyk7DQorZXh0ZXJuIGJvb2wgZ2RiYXJj aF9pbl9pbmRpcmVjdF9icmFuY2hfdGh1bmsgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBDT1JFX0FERFIgcGMpOw0KK2V4dGVybiB2b2lkIHNldF9nZGJh cmNoX2luX2luZGlyZWN0X2JyYW5jaF90aHVuayAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIGdkYmFyY2hfaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rX2Z0 eXBlICppbl9pbmRpcmVjdF9icmFuY2hfdGh1bmspOw0KKw0KIC8qIEEgdGFy Z2V0IG1pZ2h0IGhhdmUgcHJvYmxlbXMgd2l0aCB3YXRjaHBvaW50cyBhcyBz b29uIGFzIHRoZSBzdGFjaw0KICAgIGZyYW1lIG9mIHRoZSBjdXJyZW50IGZ1 bmN0aW9uIGhhcyBiZWVuIGRlc3Ryb3llZC4gIFRoaXMgbW9zdGx5IGhhcHBl bnMNCiAgICBhcyB0aGUgZmlyc3QgYWN0aW9uIGluIGEgZnVuY3Rpb24ncyBl cGlsb2d1ZS4gIHN0YWNrX2ZyYW1lX2Rlc3Ryb3llZF9wKCkNCmRpZmYgLS1n aXQgYS9nZGIvZ2RiYXJjaC5zaCBiL2dkYi9nZGJhcmNoLnNoDQppbmRleCAw OTIzMDI5Li40ZmM1NGNiIDEwMDc1NQ0KLS0tIGEvZ2RiL2dkYmFyY2guc2gN CisrKyBiL2dkYi9nZGJhcmNoLnNoDQpAQCAtNjYwLDYgKzY2MCw5IEBAIG07 Q09SRV9BRERSO3NraXBfc29saWJfcmVzb2x2ZXI7Q09SRV9BRERSIHBjO3Bj OztnZW5lcmljX3NraXBfc29saWJfcmVzb2x2ZXI7OzANCiAjIFNvbWUgc3lz dGVtcyBhbHNvIGhhdmUgdHJhbXBvbGluZSBjb2RlIGZvciByZXR1cm5pbmcg ZnJvbSBzaGFyZWQgbGlicy4NCiBtO2ludDtpbl9zb2xpYl9yZXR1cm5fdHJh bXBvbGluZTtDT1JFX0FERFIgcGMsIGNvbnN0IGNoYXIgKm5hbWU7cGMsIG5h bWU7O2dlbmVyaWNfaW5fc29saWJfcmV0dXJuX3RyYW1wb2xpbmU7OzANCiAN CisjIFJldHVybiB0cnVlIGlmIFBDIGxpZXMgaW5zaWRlIGFuIGluZGlyZWN0 IGJyYW5jaCB0aHVuay4NCittO2Jvb2w7aW5faW5kaXJlY3RfYnJhbmNoX3Ro dW5rO0NPUkVfQUREUiBwYztwYzs7ZGVmYXVsdF9pbl9pbmRpcmVjdF9icmFu Y2hfdGh1bms7OzANCisNCiAjIEEgdGFyZ2V0IG1pZ2h0IGhhdmUgcHJvYmxl bXMgd2l0aCB3YXRjaHBvaW50cyBhcyBzb29uIGFzIHRoZSBzdGFjaw0KICMg ZnJhbWUgb2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24gaGFzIGJlZW4gZGVzdHJv eWVkLiAgVGhpcyBtb3N0bHkgaGFwcGVucw0KICMgYXMgdGhlIGZpcnN0IGFj dGlvbiBpbiBhIGZ1bmN0aW9uJ3MgZXBpbG9ndWUuICBzdGFja19mcmFtZV9k ZXN0cm95ZWRfcCgpDQpkaWZmIC0tZ2l0IGEvZ2RiL2kzODYtdGRlcC5jIGIv Z2RiL2kzODYtdGRlcC5jDQppbmRleCA2MGRjODAxLi5iZjRjYTU0IDEwMDY0 NA0KLS0tIGEvZ2RiL2kzODYtdGRlcC5jDQorKysgYi9nZGIvaTM4Ni10ZGVw LmMNCkBAIC00Nyw2ICs0Nyw3IEBADQogI2luY2x1ZGUgImkzODYtdGRlcC5o Ig0KICNpbmNsdWRlICJpMzg3LXRkZXAuaCINCiAjaW5jbHVkZSAieDg2LXhz dGF0ZS5oIg0KKyNpbmNsdWRlICJ4ODYtdGRlcC5oIg0KIA0KICNpbmNsdWRl ICJyZWNvcmQuaCINCiAjaW5jbHVkZSAicmVjb3JkLWZ1bGwuaCINCkBAIC00 NDIxLDYgKzQ0MjIsMTUgQEAgaTM4Nl9nbnVfdHJpcGxldF9yZWdleHAgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoKQ0KIA0KIA0KDQogDQorLyogSW1wbGVt ZW50IHRoZSAiaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rIiBnZGJhcmNoIGZ1 bmN0aW9uLiAgKi8NCisNCitzdGF0aWMgYm9vbA0KK2kzODZfaW5faW5kaXJl Y3RfYnJhbmNoX3RodW5rIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09S RV9BRERSIHBjKQ0KK3sNCisgIHJldHVybiB4ODZfaW5faW5kaXJlY3RfYnJh bmNoX3RodW5rIChwYywgaTM4Nl9yZWdpc3Rlcl9uYW1lcywNCisJCQkJICAg ICAgIEkzODZfRUFYX1JFR05VTSwgSTM4Nl9FSVBfUkVHTlVNKTsNCit9DQor DQogLyogR2VuZXJpYyBFTEYuICAqLw0KIA0KIHZvaWQNCkBAIC00NDQ3LDYg KzQ0NTcsOSBAQCBpMzg2X2VsZl9pbml0X2FiaSAoc3RydWN0IGdkYmFyY2hf aW5mbyBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkNCiAJCQkJICAg ICAgaTM4Nl9zdGFwX2lzX3NpbmdsZV9vcGVyYW5kKTsNCiAgIHNldF9nZGJh cmNoX3N0YXBfcGFyc2Vfc3BlY2lhbF90b2tlbiAoZ2RiYXJjaCwNCiAJCQkJ CWkzODZfc3RhcF9wYXJzZV9zcGVjaWFsX3Rva2VuKTsNCisNCisgIHNldF9n ZGJhcmNoX2luX2luZGlyZWN0X2JyYW5jaF90aHVuayAoZ2RiYXJjaCwNCisJ CQkJCWkzODZfaW5faW5kaXJlY3RfYnJhbmNoX3RodW5rKTsNCiB9DQogDQog LyogU3lzdGVtIFYgUmVsZWFzZSA0IChTVlI0KS4gICovDQpkaWZmIC0tZ2l0 IGEvZ2RiL2luZnJ1bi5jIGIvZ2RiL2luZnJ1bi5jDQppbmRleCBkODlmODEz Li4wZGY4ZTRkIDEwMDY0NA0KLS0tIGEvZ2RiL2luZnJ1bi5jDQorKysgYi9n ZGIvaW5mcnVuLmMNCkBAIC02NTcwLDYgKzY1NzAsMTcgQEAgcHJvY2Vzc19l dmVudF9zdG9wX3Rlc3QgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0 ZSAqZWNzKQ0KICAgICAgIHJldHVybjsNCiAgICAgfQ0KIA0KKyAgLyogU3Rl cCB0aHJvdWdoIGFuIGluZGlyZWN0IGJyYW5jaCB0aHVuay4gICovDQorICBp ZiAoZWNzLT5ldmVudF90aHJlYWQtPmNvbnRyb2wuc3RlcF9vdmVyX2NhbGxz ICE9IFNURVBfT1ZFUl9OT05FDQorICAgICAgJiYgZ2RiYXJjaF9pbl9pbmRp cmVjdF9icmFuY2hfdGh1bmsgKGdkYmFyY2gsIHN0b3BfcGMpKQ0KKyAgICB7 DQorICAgICAgaWYgKGRlYnVnX2luZnJ1bikNCisJIGZwcmludGZfdW5maWx0 ZXJlZCAoZ2RiX3N0ZGxvZywNCisJCQkgICAgICJpbmZydW46IHN0ZXBwZWQg aW50byBpbmRpcmVjdCBicmFuY2ggdGh1bmtcbiIpOw0KKyAgICAgIGtlZXBf Z29pbmcgKGVjcyk7DQorICAgICAgcmV0dXJuOw0KKyAgICB9DQorDQogICBp ZiAoZWNzLT5ldmVudF90aHJlYWQtPmNvbnRyb2wuc3RlcF9yYW5nZV9lbmQg IT0gMQ0KICAgICAgICYmIChlY3MtPmV2ZW50X3RocmVhZC0+Y29udHJvbC5z dGVwX292ZXJfY2FsbHMgPT0gU1RFUF9PVkVSX1VOREVCVUdHQUJMRQ0KIAkg IHx8IGVjcy0+ZXZlbnRfdGhyZWFkLT5jb250cm9sLnN0ZXBfb3Zlcl9jYWxs cyA9PSBTVEVQX09WRVJfQUxMKQ0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2Uvc3RlcC1pbmRpcmVjdC1jYWxsLXRodW5rLmMgYi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3N0ZXAtaW5kaXJlY3QtY2FsbC10aHVuay5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYmQyMmVh Ng0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1bmsuYw0KQEAgLTAsMCArMSw0MiBA QA0KKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUg ZGVidWdnZXIuDQorDQorICAgQ29weXJpZ2h0IDIwMTggRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuDQorDQorICAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkNCisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yDQorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4NCisNCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCisgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZg0KKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCisgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0K Kw0KKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQorICAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uDQorDQorKi8NCisNCitzdGF0aWMgaW50DQoraW5jIChp bnQgeCkNCit7ICAgICAgICAgICAgICAgIC8qIGluYy4xICovDQorICByZXR1 cm4geCArIDE7ICAvKiBpbmMuMiAqLw0KK30gICAgICAgICAgICAgICAgLyog aW5jLjMgKi8NCisNCitzdGF0aWMgaW50DQordGhyaWNlIChpbnQgKCpvcCko aW50KSwgaW50IHgpDQoreyAgICAgICAgICAgICAgICAgLyogdGhyaWNlLjEg Ki8NCisgIHggPSBvcCAoeCk7ICAgICAvKiB0aHJpY2UuMiAqLw0KKyAgeCA9 IG9wICh4KTsgICAgIC8qIHRocmljZS4zICovDQorICByZXR1cm4gb3AgKHgp OyAgLyogdGhyaWNlLjQgKi8NCit9ICAgICAgICAgICAgICAgICAvKiB0aHJp Y2UuNSAqLw0KKw0KK2ludA0KK21haW4gKCkNCit7DQorICBpbnQgeDsNCisN CisgIHggPSB0aHJpY2UgKGluYywgNDApOw0KKw0KKyAgcmV0dXJuIHg7DQor fQ0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3RlcC1p bmRpcmVjdC1jYWxsLXRodW5rLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvc3RlcC1pbmRpcmVjdC1jYWxsLXRodW5rLmV4cA0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmJhZWI2ZDYNCi0tLSAvZGV2L251 bGwNCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3RlcC1pbmRpcmVj dC1jYWxsLXRodW5rLmV4cA0KQEAgLTAsMCArMSw3MyBAQA0KKyMgQ29weXJp Z2h0IDIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQorDQor IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkNCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQorIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KKyMNCisjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLA0KKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCisjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUNCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuDQorIw0KKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCisj IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KKw0KK3N0YW5kYXJkX3Rlc3Rm aWxlDQorDQorc2V0IGNmbGFncyAiLW1pbmRpcmVjdC1icmFuY2g9dGh1bmsg LW1mdW5jdGlvbi1yZXR1cm49dGh1bmsiDQoraWYgeyBbcHJlcGFyZV9mb3Jf dGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmls ZSBcDQorICAgICAgICBbbGlzdCBkZWJ1ZyAiYWRkaXRpb25hbF9mbGFncz0k Y2ZsYWdzIl1dIH0gew0KKyAgICByZXR1cm4gLTENCit9DQorDQoraWYgeyAh W3J1bnRvX21haW5dIH0gew0KKyAgICB1bnRlc3RlZCAiZmFpbGVkIHRvIHJ1 biB0byBtYWluIg0KKyAgICByZXR1cm4gLTENCit9DQorDQorIyBEbyByZXBl YXRlZCBpbnN0cnVjdGlvbiBzdGVwcyBpbiBvcmRlciB0byByZWFjaCBUQVJH RVQgZnJvbSBDVVJSRU5UDQorIw0KKyMgIENVUlJFTlQgaXMgYSBzdHJpbmcg bWF0Y2hpbmcgdGhlIGN1cnJlbnQgbG9jYXRpb24NCisjICBUQVJHRVQgIGlz IGEgc3RyaW5nIG1hdGNoaW5nIHRoZSB0YXJnZXQgbG9jYXRpb24NCisjICBU RVNUICAgIGlzIHRoZSB0ZXN0IG5hbWUNCisjDQorIyBUaGUgZnVuY3Rpb24g aXNzdWVzIHJlcGVhdGVkICJzdGVwaSIgY29tbWFuZHMgYXMgbG9uZyBhcyB0 aGUgbG9jYXRpb24NCisjIG1hdGNoZXMgQ1VSUkVOVCB1cCB0byBhIG1heGlt dW0gb2YgMTAwIHN0ZXBzLg0KKyMNCisjIFRFU1QgcGFzc2VzIGlmIHRoZSBy ZXN1bHRpbmcgbG9jYXRpb24gbWF0Y2hlcyBUQVJHRVQgYW5kIGZhaWxzDQor IyBvdGhlcndpc2UuDQorIw0KK3Byb2Mgc3RlcGlfdW50aWwgeyBjdXJyZW50 IHRhcmdldCB0ZXN0IH0gew0KKyAgICBnbG9iYWwgZ2RiX3Byb21wdA0KKw0K KyAgICBzZXQgY291bnQgMA0KKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAic3Rl cGkiICIkdGVzdCIgew0KKyAgICAgICAgLXJlICIkY3VycmVudC4qJGdkYl9w cm9tcHQgJCIgew0KKyAgICAgICAgICAgIGluY3IgY291bnQNCisgICAgICAg ICAgICBpZiB7ICRjb3VudCA8IDEwMCB9IHsNCisgICAgICAgICAgICAgICAg c2VuZF9nZGIgInN0ZXBpXG4iDQorICAgICAgICAgICAgICAgIGV4cF9jb250 aW51ZQ0KKyAgICAgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgICAg IGZhaWwgIiR0ZXN0Ig0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisg ICAgICAgIC1yZSAiJHRhcmdldC4qJGdkYl9wcm9tcHQgJCIgew0KKyAgICAg ICAgICAgIHBhc3MgIiR0ZXN0Ig0KKyAgICAgICAgfQ0KKyAgICB9DQorfQ0K Kw0KKyMgTm9ybWFsIHN0ZXBwaW5nIHN0ZXBzIHRocm91Z2ggYWxsIHRodW5r cy4NCitnZGJfdGVzdCAic3RlcCIgInRocmljZVwuMi4qIiAic3RlcCBpbnRv IHRocmljZSINCitnZGJfdGVzdCAibmV4dCIgInRocmljZVwuMy4qIiAic3Rl cCB0aHJvdWdoIHRodW5rcyBhbmQgb3ZlciBpbmMiDQorZ2RiX3Rlc3QgInN0 ZXAiICJpbmNcLjIuKiIgInN0ZXAgdGhyb3VnaCBjYWxsIHRodW5rIGludG8g aW5jIg0KK2dkYl90ZXN0ICJzdGVwIiAiaW5jXC4zLioiICJzdGVwIGluc2lk ZSBpbmMiDQorZ2RiX3Rlc3QgInN0ZXAiICJ0aHJpY2VcLjQuKiIgInN0ZXAg dGhyb3VnaCByZXR1cm4gdGh1bmsgYmFjayBpbnRvIHRocmljZSINCisNCisj IFdlIGNhbiB1c2UgaW5zdHJ1Y3Rpb24gc3RlcHBpbmcgdG8gc3RlcCBpbnRv IHRodW5rcy4NCitzdGVwaV91bnRpbCAidGhyaWNlIiAiaW5kaXJlY3RfdGh1 bmsiICJzdGVwaSBpbnRvIGNhbGwgdGh1bmsiDQorc3RlcGlfdW50aWwgImlu ZGlyZWN0X3RodW5rIiAiaW5jLiIgInN0ZXBpIG91dCBvZiBjYWxsIHRodW5r IGludG8gaW5jIg0KK3N0ZXBpX3VudGlsICJpbmMiICJyZXR1cm5fdGh1bmsi ICJzdGVwaSBpbnRvIHJldHVybiB0aHVuayINCitzdGVwaV91bnRpbCAicmV0 dXJuX3RodW5rIiAidGhyaWNlIiBcDQorICAgICJzdGVwaSBvdXQgb2YgcmV0 dXJuIHRodW5rIGJhY2sgaW50byB0aHJpY2UiDQpkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIucmV2ZXJzZS9zdGVwLWluZGlyZWN0LWNhbGwtdGh1 bmsuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnJldmVyc2Uvc3RlcC1pbmRpcmVj dC1jYWxsLXRodW5rLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwLi44NTQ2NGMzDQotLS0gL2Rldi9udWxsDQorKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5yZXZlcnNlL3N0ZXAtaW5kaXJlY3QtY2FsbC10aHVuay5j DQpAQCAtMCwwICsxLDM2IEBADQorLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0 IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4NCisNCisgICBDb3B5cmlnaHQg MjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCisNCisgICBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5DQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCisgICAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KKw0KKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLA0KKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQ0KKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuDQorDQorICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UN CisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCisNCisqLw0KKw0KK3N0 YXRpYyBpbnQNCitpbmMgKGludCB4KQ0KK3sgICAgICAgICAgICAgICAgLyog aW5jLjEgKi8NCisgIHJldHVybiB4ICsgMTsgIC8qIGluYy4yICovDQorfSAg ICAgICAgICAgICAgICAvKiBpbmMuMyAqLw0KKw0KK3N0YXRpYyBpbnQNCith cHBseSAoaW50ICgqb3ApKGludCksIGludCB4KQ0KK3sgICAgICAgICAgICAg ICAgIC8qIGFwcGx5LjEgKi8NCisgIHJldHVybiBvcCAoeCk7ICAvKiBhcHBs eS4yICovDQorfSAgICAgICAgICAgICAgICAgLyogYXBwbHkuMyAqLw0KKw0K K2ludA0KK21haW4gKCkNCit7ICAgICAgICAgICAgICAgICAgICAgICAgIC8q IG1haW4uMSAqLw0KKyAgcmV0dXJuIGFwcGx5IChpbmMsIDQxKTsgLyogbWFp bi4yICovDQorfSAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtYWluLjMg Ki8NCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5yZXZlcnNlL3N0 ZXAtaW5kaXJlY3QtY2FsbC10aHVuay5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5yZXZlcnNlL3N0ZXAtaW5kaXJlY3QtY2FsbC10aHVuay5leHANCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5iYjdmYmY2DQotLS0g L2Rldi9udWxsDQorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5yZXZlcnNlL3N0 ZXAtaW5kaXJlY3QtY2FsbC10aHVuay5leHANCkBAIC0wLDAgKzEsMTAwIEBA DQorIyBDb3B5cmlnaHQgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4NCisNCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IN CisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQorIw0K KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0K KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCisjDQorIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQ0KKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQorDQoraWYg eyAhW3N1cHBvcnRzX3JldmVyc2VdIH0gew0KKyAgICB1bnRlc3RlZCAidGFy Z2V0IGRvZXMgbm90IHN1cHBvcnQgcmVjb3JkIg0KKyAgICByZXR1cm4gLTEN Cit9DQorDQorc3RhbmRhcmRfdGVzdGZpbGUNCisNCitzZXQgY2ZsYWdzICIt bWluZGlyZWN0LWJyYW5jaD10aHVuayAtbWZ1bmN0aW9uLXJldHVybj10aHVu ayINCitpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJl cGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIFwNCisgICAgICAgIFtsaXN0IGRl YnVnICJhZGRpdGlvbmFsX2ZsYWdzPSRjZmxhZ3MiXV0gfSB7DQorICAgIHJl dHVybiAtMQ0KK30NCisNCitpZiB7ICFbcnVudG9fbWFpbl0gfSB7DQorICAg IHVudGVzdGVkICJmYWlsZWQgdG8gcnVuIHRvIG1haW4iDQorICAgIHJldHVy biAtMQ0KK30NCisNCisjIERvIHJlcGVhdGVkIHN0ZXBwaW5nIENPTU1BTkRz IGluIG9yZGVyIHRvIHJlYWNoIFRBUkdFVCBmcm9tIENVUlJFTlQNCisjDQor IyAgQ09NTUFORCBpcyBhIHN0ZXBwaW5nIGNvbW1hbmQNCisjICBDVVJSRU5U IGlzIGEgc3RyaW5nIG1hdGNoaW5nIHRoZSBjdXJyZW50IGxvY2F0aW9uDQor IyAgVEFSR0VUICBpcyBhIHN0cmluZyBtYXRjaGluZyB0aGUgdGFyZ2V0IGxv Y2F0aW9uDQorIyAgVEVTVCAgICBpcyB0aGUgdGVzdCBuYW1lDQorIw0KKyMg VGhlIGZ1bmN0aW9uIGlzc3VlcyByZXBlYXRlZCBDT01NQU5EcyBhcyBsb25n IGFzIHRoZSBsb2NhdGlvbiBtYXRjaGVzDQorIyBDVVJSRU5UIHVwIHRvIGEg bWF4aW11bSBvZiAxMDAgc3RlcHMuDQorIw0KKyMgVEVTVCBwYXNzZXMgaWYg dGhlIHJlc3VsdGluZyBsb2NhdGlvbiBtYXRjaGVzIFRBUkdFVCBhbmQgZmFp bHMNCisjIG90aGVyd2lzZS4NCisjDQorcHJvYyBzdGVwX3VudGlsIHsgY29t bWFuZCBjdXJyZW50IHRhcmdldCB0ZXN0IH0gew0KKyAgICBnbG9iYWwgZ2Ri X3Byb21wdA0KKw0KKyAgICBzZXQgY291bnQgMA0KKyAgICBnZGJfdGVzdF9t dWx0aXBsZSAiJGNvbW1hbmQiICIkdGVzdCIgew0KKyAgICAgICAgLXJlICIk Y3VycmVudC4qJGdkYl9wcm9tcHQgJCIgew0KKyAgICAgICAgICAgIGluY3Ig Y291bnQNCisgICAgICAgICAgICBpZiB7ICRjb3VudCA8IDEwMCB9IHsNCisg ICAgICAgICAgICAgICAgc2VuZF9nZGIgIiRjb21tYW5kXG4iDQorICAgICAg ICAgICAgICAgIGV4cF9jb250aW51ZQ0KKyAgICAgICAgICAgIH0gZWxzZSB7 DQorICAgICAgICAgICAgICAgIGZhaWwgIiR0ZXN0Ig0KKyAgICAgICAgICAg IH0NCisgICAgICAgIH0NCisgICAgICAgIC1yZSAiJHRhcmdldC4qJGdkYl9w cm9tcHQgJCIgew0KKyAgICAgICAgICAgIHBhc3MgIiR0ZXN0Ig0KKyAgICAg ICAgfQ0KKyAgICB9DQorfQ0KKw0KK2dkYl90ZXN0X25vX291dHB1dCAicmVj b3JkIg0KK2dkYl90ZXN0ICJuZXh0IiAiLioiICJyZWNvcmQgdHJhY2UiDQor DQorIyBOb3JtYWwgc3RlcHBpbmcgc3RlcHMgdGhyb3VnaCBhbGwgdGh1bmtz Lg0KK2dkYl90ZXN0ICJyZXZlcnNlLXN0ZXAiICJhcHBseVwuMy4qIiAicmV2 ZXJzZS1zdGVwIGludG8gYXBwbHkiDQorZ2RiX3Rlc3QgInJldmVyc2Utc3Rl cCIgImluY1wuMy4qIiAicmV2ZXJzZS1zdGVwIGludG8gaW5jIg0KK2dkYl90 ZXN0ICJyZXZlcnNlLXN0ZXAiICJpbmNcLjIuKiIgInJldmVyc2Utc3RlcCBp bnNpZGUgaW5jIg0KK2dkYl90ZXN0ICJyZXZlcnNlLXN0ZXAiICJhcHBseVwu Mi4qIiBcDQorICAgICJyZXZlcnNlLXN0ZXAgdGhyb3VnaCBjYWxsIHRodW5r IGludG8gYXBwbHkiDQorZ2RiX3Rlc3QgInJldmVyc2Utc3RlcCIgIm1haW5c LjIuKiIgInJldmVyc2Utc3RlcCBpbnRvIG1haW4iDQorZ2RiX3Rlc3QgInN0 ZXAiICJhcHBseVwuMi4qIiAic3RlcCBpbnRvIGFwcGx5Ig0KK2dkYl90ZXN0 ICJzdGVwIiAiaW5jXC4yLioiICJzdGVwIHRocm91Z2ggY2FsbCB0aHVuayBp bnRvIGluYyINCitnZGJfdGVzdCAicmV2ZXJzZS1zdGVwIiAiYXBwbHlcLjIu KiIgXA0KKyAgICAicmV2ZXJzZS1zdGVwIHRocm91Z2ggY2FsbCB0aHVuayBp bnRvIGFwcGx5Ig0KK2dkYl90ZXN0ICJuZXh0IiAiYXBwbHlcLjMuKiIgInN0 ZXAgdGhyb3VnaCB0aHVua3MgYW5kIG92ZXIgaW5jIg0KK2dkYl90ZXN0ICJy ZXZlcnNlLW5leHQiICJhcHBseVwuMi4qIiBcDQorICAgICJyZXZlcnNlLXN0 ZXAgdGhyb3VnaCB0aHVua3MgYW5kIG92ZXIgaW5jIg0KKw0KKyMgV2UgY2Fu IHVzZSBpbnN0cnVjdGlvbiBzdGVwcGluZyB0byBzdGVwIGludG8gdGh1bmtz Lg0KK3N0ZXBfdW50aWwgInN0ZXBpIiAiYXBwbHlcLjIiICJpbmRpcmVjdF90 aHVuayIgInN0ZXBpIGludG8gY2FsbCB0aHVuayINCitzdGVwX3VudGlsICJz dGVwaSIgImluZGlyZWN0X3RodW5rIiAiaW5jIiBcDQorICAgICJzdGVwaSBv dXQgb2YgY2FsbCB0aHVuayBpbnRvIGluYyINCitzdGVwX3VudGlsICJzdGVw aSIgImluYyIgInJldHVybl90aHVuayIgInN0ZXBpIGludG8gcmV0dXJuIHRo dW5rIg0KK3N0ZXBfdW50aWwgInN0ZXBpIiAicmV0dXJuX3RodW5rIiAiYXBw bHkiIFwNCisgICAgInN0ZXBpIG91dCBvZiByZXR1cm4gdGh1bmsgYmFjayBp bnRvIGFwcGx5Ig0KKw0KK3N0ZXBfdW50aWwgInJldmVyc2Utc3RlcGkiICJh cHBseSIgInJldHVybl90aHVuayIgXA0KKyAgICAicmV2ZXJzZS1zdGVwaSBp bnRvIHJldHVybiB0aHVuayINCitzdGVwX3VudGlsICJyZXZlcnNlLXN0ZXBp IiAicmV0dXJuX3RodW5rIiAiaW5jIiBcDQorICAgICJyZXZlcnNlLXN0ZXBp IG91dCBvZiByZXR1cm4gdGh1bmsgaW50byBpbmMiDQorc3RlcF91bnRpbCAi cmV2ZXJzZS1zdGVwaSIgImluYyIgImluZGlyZWN0X3RodW5rIiBcDQorICAg ICJyZXZlcnNlLXN0ZXBpIGludG8gY2FsbCB0aHVuayINCitzdGVwX3VudGls ICJyZXZlcnNlLXN0ZXBpIiAiaW5kaXJlY3RfdGh1bmsiICJhcHBseSIgXA0K KyAgICAicmV2ZXJzZS1zdGVwaSBvdXQgb2YgY2FsbCB0aHVuayBpbnRvIGFw cGx5Ig0KZGlmZiAtLWdpdCBhL2dkYi94ODYtdGRlcC5jIGIvZ2RiL3g4Ni10 ZGVwLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4z ZTY2NWMyDQotLS0gL2Rldi9udWxsDQorKysgYi9nZGIveDg2LXRkZXAuYw0K QEAgLTAsMCArMSw3NiBAQA0KKy8qIFRhcmdldC1kZXBlbmRlbnQgY29kZSBm b3IgWDg2LWJhc2VkIHRhcmdldHMuDQorDQorICAgQ29weXJpZ2h0IChDKSAy MDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KKw0KKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4NCisNCisgICBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQ0KKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQorICAg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3INCisgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLg0KKw0KKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0K KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0K KyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuDQorDQorICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCisgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovDQorDQorI2luY2x1ZGUgImRlZnMuaCIN CisjaW5jbHVkZSAieDg2LXRkZXAuaCINCisNCisNCisvKiBDaGVjayB3aGV0 aGVyIE5BTUUgaXMgaW5jbHVkZWQgaW4gTkFNRVNbTE9dIChpbmNsdXNpdmUp IHRvIE5BTUVTW0hJXQ0KKyAgIChleGNsdXNpdmUpLiAgKi8NCisNCitzdGF0 aWMgYm9vbA0KK3g4Nl9pc190aHVua19yZWdpc3Rlcl9uYW1lIChjb25zdCBj aGFyICpuYW1lLCBjb25zdCBjaGFyICoqbmFtZXMsIGludCBsbywNCisJCQkg ICAgaW50IGhpKQ0KK3sNCisgIGludCByZWc7DQorICBmb3IgKHJlZyA9IGxv OyByZWcgPCBoaTsgKytyZWcpDQorICAgIGlmIChzdHJjbXAgKG5hbWUsIG5h bWVzW3JlZ10pID09IDApDQorICAgICAgcmV0dXJuIHRydWU7DQorDQorICBy ZXR1cm4gZmFsc2U7DQorfQ0KKw0KKy8qIFNlZSB4ODYtdGRlcC5oLiAgKi8N CisNCitib29sDQoreDg2X2luX2luZGlyZWN0X2JyYW5jaF90aHVuayAoQ09S RV9BRERSIHBjLCBjb25zdCBjaGFyICoqcmVnaXN0ZXJfbmFtZXMsDQorCQkJ ICAgICAgaW50IGxvLCBpbnQgaGkpDQorew0KKyAgc3RydWN0IGJvdW5kX21p bmltYWxfc3ltYm9sIGJtZnVuID0gbG9va3VwX21pbmltYWxfc3ltYm9sX2J5 X3BjIChwYyk7DQorICBpZiAoYm1mdW4ubWluc3ltID09IG51bGxwdHIpDQor ICAgIHJldHVybiBmYWxzZTsNCisNCisgIGNvbnN0IGNoYXIgKm5hbWUgPSBN U1lNQk9MX0xJTktBR0VfTkFNRSAoYm1mdW4ubWluc3ltKTsNCisgIGlmIChu YW1lID09IG51bGxwdHIpDQorICAgIHJldHVybiBmYWxzZTsNCisNCisgIC8q IENoZWNrIHRoZSBpbmRpcmVjdCByZXR1cm4gdGh1bmsgZmlyc3QuICAqLw0K KyAgaWYgKHN0cmNtcCAobmFtZSwgIl9feDg2X3JldHVybl90aHVuayIpID09 IDApDQorICAgIHJldHVybiB0cnVlOw0KKw0KKyAgLyogVGhlbiBjaGVjayBh IGZhbWlseSBvZiBpbmRpcmVjdCBjYWxsL2p1bXAgdGh1bmtzLiAgKi8NCisg IHN0YXRpYyBjb25zdCBjaGFyIHRodW5rW10gPSAiX194ODZfaW5kaXJlY3Rf dGh1bmsiOw0KKyAgc3RhdGljIGNvbnN0IHNpemVfdCBsZW5ndGggPSBzaXpl b2YgKHRodW5rKSAtIDE7DQorICBpZiAoc3RybmNtcCAobmFtZSwgdGh1bmss IGxlbmd0aCkgIT0gMCkNCisgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgLyog SWYgdGhhdCdzIHRoZSBjb21wbGV0ZSBuYW1lLCB3ZSdyZSBpbiB0aGUgbWVt b3J5IHRodW5rLiAgKi8NCisgIG5hbWUgKz0gbGVuZ3RoOw0KKyAgaWYgKCpu YW1lID09ICdcMCcpDQorICAgIHJldHVybiB0cnVlOw0KKw0KKyAgLyogQ2hl Y2sgZm9yIHN1ZmZpeGVzLiAgKi8NCisgIGlmICgqbmFtZSsrICE9ICdfJykN CisgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgaWYgKHg4Nl9pc190aHVua19y ZWdpc3Rlcl9uYW1lIChuYW1lLCByZWdpc3Rlcl9uYW1lcywgbG8sIGhpKSkN CisgICAgcmV0dXJuIHRydWU7DQorDQorICByZXR1cm4gZmFsc2U7DQorfQ0K ZGlmZiAtLWdpdCBhL2dkYi94ODYtdGRlcC5oIGIvZ2RiL3g4Ni10ZGVwLmgN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi44MDdhZDFk DQotLS0gL2Rldi9udWxsDQorKysgYi9nZGIveDg2LXRkZXAuaA0KQEAgLTAs MCArMSwzMCBAQA0KKy8qIFRhcmdldC1kZXBlbmRlbnQgY29kZSBmb3IgWDg2 LWJhc2VkIHRhcmdldHMuDQorDQorICAgQ29weXJpZ2h0IChDKSAyMDE4IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KKw0KKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4NCisNCisgICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQ0KKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQorICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3INCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLg0KKw0KKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mDQorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyAgIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQor DQorICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCisgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovDQorDQorI2lmbmRlZiBYODZfVERFUF9IDQorI2Rl ZmluZSBYODZfVERFUF9IDQorDQorLyogQ2hlY2tzIHdoZXRoZXIgUEMgbGll cyBpbiBhbiBpbmRpcmVjdCBicmFuY2ggdGh1bmsgdXNpbmcgcmVnaXN0ZXJz DQorICAgUkVHSVNURVJfTkFNRVNbTE9dIChpbmNsdXNpdmUpIHRvIFJFR0lT VEVSX05BTUVTW0hJXSAoZXhjbHVzaXZlKS4gICovDQorDQorZXh0ZXJuIGJv b2wgeDg2X2luX2luZGlyZWN0X2JyYW5jaF90aHVuayAoQ09SRV9BRERSIHBj LA0KKwkJCQkJICBjb25zdCBjaGFyICoqcmVnaXN0ZXJfbmFtZXMsDQorCQkJ CQkgIGludCBsbywgaW50IGhpKTsNCisNCisjZW5kaWYgLyogeDg2LXRkZXAu aCAqLw0KDQpJbnRlbCBEZXV0c2NobGFuZCBHbWJIClJlZ2lzdGVyZWQgQWRk cmVzczogQW0gQ2FtcGVvbiAxMC0xMiwgODU1NzkgTmV1YmliZXJnLCBHZXJt YW55ClRlbDogKzQ5IDg5IDk5IDg4NTMtMCwgd3d3LmludGVsLmRlCk1hbmFn aW5nIERpcmVjdG9yczogQ2hyaXN0aW4gRWlzZW5zY2htaWQsIENocmlzdGlh biBMYW1wcmVjaHRlcgpDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkg Qm9hcmQ6IE5pY29sZSBMYXUKUmVnaXN0ZXJlZCBPZmZpY2U6IE11bmljaApD b21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNdWVuY2hlbiBIUkIg MTg2OTI4Cg==