From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zg8tmtu5ljg5lje1ms4xmtka.icoremail.net (zg8tmtu5ljg5lje1ms4xmtka.icoremail.net [159.89.151.119]) by sourceware.org (Postfix) with ESMTP id E175A3858C29 for ; Tue, 9 Jan 2024 01:42:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E175A3858C29 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=eswincomputing.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=eswincomputing.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E175A3858C29 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=159.89.151.119 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704764540; cv=none; b=w+8azL/5hKD69n//ma+pyK7IQeF3QAC6vahiXdSR3ZELuG5Ymq8ODGUZMQ3Hk1zPRis1m0WswB7oh+LqRvhxqx+87NbpcBcTpTaHnW7CSd0CCxGeJm7poY5Qr+nw5F2e+YogeFdq8CQW5eDBO0YXNw+O3a5rDEajVTAXnoR1lPY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704764540; c=relaxed/simple; bh=Jeb/eSiAsTHZOY1hhRUjjZgDWf6s3xV1+6A9SQj9q7I=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=wcyy4dn/8yh47rmo8fz5CZqXplyTd3AmPHGtrjRZjPwqjvF0XZE3KITcI/El6+ErV9NfRn0EPOsTRaI0dppNGQK37lQ2Ef91InG8ECFj4u8A56Zok8yLABVKCw9pNL2Am3yi4OtpeDlWFz85z695CeXT9bLh7RTriHcr0exgCu0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from E0001792LT (unknown [123.139.59.82]) by app2 (Coremail) with SMTP id TQJkCgC3RdT6o5xlmukEAA--.5470S2; Tue, 09 Jan 2024 09:40:10 +0800 (CST) Date: Tue, 9 Jan 2024 09:42:06 +0800 From: "Feng Wang" To: "juzhe.zhong@rivai.ai" , gcc-patches Cc: kito.cheng , "Jeff Law" Subject: =?GB2312?B?u9i4tDogUmU6IFtQQVRDSCB2NyAxLzJdIFJJU0MtVjogQWRkIGNyeXB0byB2ZWN0b3IgYnVpbHRpbiBmdW5jdGlvbi4=?= References: <20240108091201.8087-1-wangfeng@eswincomputing.com>, <20240108091201.8087-2-wangfeng@eswincomputing.com>, X-Priority: 3 X-GUID: 4C80D580-FBA6-4A6F-B6A2-218790684A6A X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <202401090942058650372@eswincomputing.com> Content-Type: multipart/alternative; boundary="----=_001_NextPart521462555422_=----" X-CM-TRANSID:TQJkCgC3RdT6o5xlmukEAA--.5470S2 X-Coremail-Antispam: 1UD129KBjvAXoWfXryUJF4DJw4xCw17Zr48tFb_yoW5Kw4DCo ZIqr4FyFWfJr1xurWfWr1fWryUGa1rZrs8Z3WrXF9xu3Z3ArWF9as2va4UAay2vF47WrWU Aa1fAFW3XF1kXF1rn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UjIYCTnIWjp_UUU577k0a2IF6w4kM7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0 x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj4 1l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0 I7IYx2IY6xkF7I0E14v26r4UJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4 vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG6xAI xVCFxsxG0wAv7VC0I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6x CaFVCjc4AY6r1j6r4UMxkIecxEwVAFwVWkMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E 5I8CrVAFwI0_JrI_JrWlx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAV WUtwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8 JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcV C2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxUgDPiUUUUU X-CM-SenderInfo: pzdqwwxhqjqvxvzl0uprps33xlqjhudrp/ X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,BODY_8BITS,CHARSET_FARAWAY_HEADER,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,MIME_CHARSET_FARAWAY,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart521462555422_=---- Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 DQpDb21taXR0ZWQsIHRoYW5rcyBKdXpoZS4NCiANCreivP7Iy6O6INbTvtPV 3A0Kt6LLzcqxvOSjuiAyMDI0LTAxLTA5IDA3OjAyDQrK1bz+yMujuiB3YW5n ZmVuZzsgZ2NjLXBhdGNoZXMNCrOty82juiBraXRvLmNoZW5nOyBKZWZmIExh dzsgd2FuZ2ZlbmcNCtb3zOKjuiBSZTogW1BBVENIIHY3IDEvMl0gUklTQy1W OiBBZGQgY3J5cHRvIHZlY3RvciBidWlsdGluIGZ1bmN0aW9uLg0KTEdUTS4N Cg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBGZW5nIFdh bmcNCkRhdGU6IDIwMjQtMDEtMDggMTc6MTINClRvOiBnY2MtcGF0Y2hlcw0K Q0M6IGtpdG8uY2hlbmc7IGplZmZyZXlhbGF3OyBqdXpoZS56aG9uZzsgRmVu ZyBXYW5nDQpTdWJqZWN0OiBbUEFUQ0ggdjcgMS8yXSBSSVNDLVY6IEFkZCBj cnlwdG8gdmVjdG9yIGJ1aWx0aW4gZnVuY3Rpb24uDQpQYXRjaCB2NzpSZXN1 Ym1pdCBhZnRlciBmaXggdHJsLWNoZWNraW5nIGlzc3VlLiBQYXNzZWQgYWxs IHRoZSByaXNjdiByZWdyZXNzaW9uIHRlc3QuDQpQYXRjaCB2NjpSZW1vdmUg dW51c2VkIGNvZGUuDQpQYXRjaCB2NTpSZWJhc2UuDQpQYXRjaCB2NDpNZXJn ZSBjcnlwdG8gdmVjdG9yIGZ1bmN0aW9uLmRlZiBpbnRvIHZlY3Rvci4NClBh dGNoIHYzOkRlZmluZSBhIHNoYXBlIGZvciB2YWVzeiBhbmQgbWVyZ2UgdmVj dG9yLWNyeXB0by10eXBlcy5kZWYNCiAgICAgICAgIGludG8gcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXR5cGVzLmRlZi4NClBhdGNoIHYyOk9wdGltaXplIGZ1 bmN0aW9uX3NoYXBlIGNsYXNzIGZvciBjcnlwdG9fdmVjdG9yLg0KIA0KVGhp cyBwYXRjaCBhZGQgdGhlIGludHJpbnNpYyBmdW50aW9ucyBvZiBjcnlwdG8g dmVjdG9yIGJhc2VkIG9uIHRoZQ0KaW50cmluc2ljIGRvYyhodHRwczovL2dp dGh1Yi5jb20vcmlzY3Ytbm9uLWlzYS9ydnYtaW50cmluc2ljLWRvYy9ibG9i DQovZW9wYy92ZWN0b3ItY3J5cHRvL2F1dG8tZ2VuZXJhdGVkL3ZlY3Rvci1j cnlwdG8vaW50cmluc2ljX2Z1bmNzLm1kKS4NCiANCkNvLUF1dGhvcmVkIGJ5 OiBTb25naGUgWmh1IDx6aHVzb25naGVAZXN3aW5jb21wdXRpbmcuY29tPg0K Q28tQXV0aG9yZWQgYnk6IENpeWFuIFBhbiA8cGFuY2l5YW5AZXN3aW5jb21w dXRpbmcuY29tPg0KZ2NjL0NoYW5nZUxvZzoNCiANCiogY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYyAoY2xhc3MgdmFuZG4p Og0KQWRkIG5ldyBmdW5jdGlvbl9iYXNlIGZvciBjcnlwdG8gdmVjdG9yLg0K KGNsYXNzIGJpdG1hbmlwKTogRGl0dG8uIA0KKGNsYXNzIGJfcmV2ZXJzZSk6 RGl0dG8uIA0KKGNsYXNzIHZ3c2xsKTogICBEaXR0by4gDQooY2xhc3MgY2xt dWwpOiAgIERpdHRvLiANCihjbGFzcyB2Z19uaGFiKTogIERpdHRvLiANCihj bGFzcyBjcnlwdG9fdnYpOkRpdHRvLiANCihjbGFzcyBjcnlwdG9fdmkpOkRp dHRvLiANCihjbGFzcyB2YWVza2YyX3ZzbTNjKTpEaXR0by4NCihjbGFzcyB2 c20zbWUpOiBEaXR0by4NCihCQVNFKTogQWRkIEJBU0UgZGVjbGFyYXRpb24g Zm9yIGNyeXB0byB2ZWN0b3IuDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtYmFzZXMuaDogRGl0dG8uDQoqIGNvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiAoUkVRVUlSRURf RVhURU5TSU9OUyk6DQpBZGQgY3J5cHRvIHZlY3RvciBpbnRyaW5zaWMgZGVm aW5pdGlvbi4NCih2YnJldik6IERpdHRvLg0KKHZjbHopOiBEaXR0by4NCih2 Y3R6KTogRGl0dG8uDQoodndzbGwpOiBEaXR0by4NCih2YW5kbik6IERpdHRv Lg0KKHZicmV2OCk6IERpdHRvLg0KKHZyZXY4KTogRGl0dG8uDQoodnJvbCk6 IERpdHRvLg0KKHZyb3IpOiBEaXR0by4NCih2Y2xtdWwpOiBEaXR0by4NCih2 Y2xtdWxoKTogRGl0dG8uDQoodmdoc2gpOiBEaXR0by4NCih2Z211bCk6IERp dHRvLg0KKHZhZXNlZik6IERpdHRvLg0KKHZhZXNlbSk6IERpdHRvLg0KKHZh ZXNkZik6IERpdHRvLg0KKHZhZXNkbSk6IERpdHRvLg0KKHZhZXN6KTogRGl0 dG8uDQoodmFlc2tmMSk6IERpdHRvLg0KKHZhZXNrZjIpOiBEaXR0by4NCih2 c2hhMm1zKTogRGl0dG8uDQoodnNoYTJjaCk6IERpdHRvLg0KKHZzaGEyY2wp OiBEaXR0by4NCih2c200ayk6IERpdHRvLg0KKHZzbTRyKTogRGl0dG8uDQoo dnNtM21lKTogRGl0dG8uDQoodnNtM2MpOiBEaXR0by4NCiogY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MgKHN0cnVjdCBj cnlwdG9fdnZfZGVmKToNCkFkZCBuZXcgZnVuY3Rpb25fc2hhcGUgZm9yIGNy eXB0byB2ZWN0b3IuDQooc3RydWN0IGNyeXB0b192aV9kZWYpOiBEaXR0by4N CihzdHJ1Y3QgY3J5cHRvX3Z2X25vX29wX3R5cGVfZGVmKTogRGl0dG8uDQoo U0hBUEUpOiBBZGQgU0hBUEUgZGVjbGFyYXRpb24gb2YgY3J5cHRvIHZlY3Rv ci4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFw ZXMuaDogRGl0dG8uDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtdHlwZXMuZGVmIChERUZfUlZWX0NSWVBUT19TRVczMl9PUFMpOg0K QWRkIG5ldyBkYXRhIHR5cGUgZm9yIGNyeXB0byB2ZWN0b3IuDQooREVGX1JW Vl9DUllQVE9fU0VXNjRfT1BTKTogRGl0dG8uDQoodnVpbnQzMm1mMl90KTog RGl0dG8uDQoodnVpbnQzMm0xX3QpOiBEaXR0by4NCih2dWludDMybTJfdCk6 IERpdHRvLg0KKHZ1aW50MzJtNF90KTogRGl0dG8uDQoodnVpbnQzMm04X3Qp OiBEaXR0by4NCih2dWludDY0bTFfdCk6IERpdHRvLg0KKHZ1aW50NjRtMl90 KTogRGl0dG8uDQoodnVpbnQ2NG00X3QpOiBEaXR0by4NCih2dWludDY0bThf dCk6IERpdHRvLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmNjIChERUZfUlZWX0NSWVBUT19TRVczMl9PUFMpOg0KQWRkIG5ldyBk YXRhIHN0cnVjdCBmb3IgY3J5cHRvIHZlY3Rvci4NCihERUZfUlZWX0NSWVBU T19TRVc2NF9PUFMpOiBEaXR0by4NCihyZWdpc3RlcmVkX2Z1bmN0aW9uOjpv dmVybG9hZGVkX2hhc2gpOiBQcm9jZXNzaW5nIHNpemVfdCB1aW1tIGZvciBD IG92ZXJsb2FkZWQgZnVuYy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5kZWYgKHZpKTogQWRkIHZpIE9QX1RZUEUuDQotLS0NCi4u Li9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MgICAgICB8 IDI2NCArKysrKysrKysrKysrKysrKy0NCi4uLi9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtYmFzZXMuaCAgICAgICB8ICAyOCArKw0KLi4uL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIHwgIDk0ICsr KysrKysNCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmNjICAgICB8ICA4NyArKysrKy0NCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmggICAgICB8ICAgNCArDQouLi4vcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiAgICAgfCAgMjUgKysNCmdj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjICAgICB8 IDEzMyArKysrKysrKy0NCmdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmRlZiAgICB8ICAgMSArDQo4IGZpbGVzIGNoYW5nZWQsIDYz MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KIA0KZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJh c2VzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtYmFzZXMuY2MNCmluZGV4IGQ3MDQ2ODU0MmVlLi5kMTJiYjg5ZjkxYyAx MDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLWJhc2VzLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KQEAgLTIxMjcsNiArMjEyNywy MTIgQEAgcHVibGljOg0KICAgfQ0KfTsNCisvKiBCZWxvdyBpbXBsZW1lbnRz IGFyZSB2ZWN0b3IgY3J5cHRvICovDQorLyogSW1wbGVtZW50cyB2YW5kbi5b dnYsdnhdICovDQorY2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVuY3Rpb25fYmFz ZQ0KK3sNCitwdWJsaWM6DQorICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBh bmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgc3dpdGNoIChl Lm9wX2luZm8tPm9wKQ0KKyAgICAgIHsNCisgICAgICBjYXNlIE9QX1RZUEVf dnY6DQorICAgICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9m b3JfcHJlZF92YW5kbiAoZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIGNh c2UgT1BfVFlQRV92eDoNCisgICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9p bnNuIChjb2RlX2Zvcl9wcmVkX3ZhbmRuX3NjYWxhciAoZS52ZWN0b3JfbW9k ZSAoKSkpOw0KKyAgICAgIGRlZmF1bHQ6DQorICAgICAgICBnY2NfdW5yZWFj aGFibGUgKCk7DQorICAgICAgfQ0KKyAgfQ0KK307DQorDQorLyogSW1wbGVt ZW50cyB2cm9sL3Zyb3IvY2x6L2N0ei4gICovDQordGVtcGxhdGU8cnR4X2Nv ZGUgQ09ERT4NCitjbGFzcyBiaXRtYW5pcCA6IHB1YmxpYyBmdW5jdGlvbl9i YXNlDQorew0KK3B1YmxpYzoNCisgIGJvb2wgYXBwbHlfdGFpbF9wb2xpY3lf cCAoKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICByZXR1cm4gKENPREUg PT0gQ0xaIHx8IENPREUgPT0gQ1RaKSA/IGZhbHNlIDogdHJ1ZTsNCisgIH0N CisgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlk ZQ0KKyAgew0KKyAgICByZXR1cm4gKENPREUgPT0gQ0xaIHx8IENPREUgPT0g Q1RaKSA/IGZhbHNlIDogdHJ1ZTsNCisgIH0NCisgIGJvb2wgaGFzX21lcmdl X29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICByZXR1 cm4gKENPREUgPT0gQ0xaIHx8IENPREUgPT0gQ1RaKSA/IGZhbHNlIDogdHJ1 ZTsNCisgIH0NCisgIA0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5k ZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIHN3aXRjaCAoZS5v cF9pbmZvLT5vcCkNCisgICAgew0KKyAgICAgIGNhc2UgT1BfVFlQRV92Og0K KyAgICAgIGNhc2UgT1BfVFlQRV92djoNCisgICAgICAgIHJldHVybiBlLnVz ZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3YgKENPREUsIGUudmVjdG9y X21vZGUgKCkpKTsNCisgICAgICBjYXNlIE9QX1RZUEVfdng6DQorICAgICAg ICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF92X3Nj YWxhciAoQ09ERSwgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIGRlZmF1 bHQ6DQorICAgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQorICAgIH0NCisg IH0NCit9Ow0KKw0KKy8qIEltcGxlbWVudHMgdmJyZXYvdmJyZXY4L3ZyZXY4 LiAgKi8NCit0ZW1wbGF0ZTxpbnQgVU5TUEVDPg0KK2NsYXNzIGJfcmV2ZXJz ZSA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIHJ0 eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlk ZQ0KKyAgew0KKyAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2Rl X2Zvcl9wcmVkX3YgKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAg fQ0KK307DQorDQorY2xhc3MgdndzbGwgOiBwdWJsaWMgZnVuY3Rpb25fYmFz ZQ0KK3sNCitwdWJsaWM6DQorICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBh bmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgc3dpdGNoIChl Lm9wX2luZm8tPm9wKQ0KKyAgICAgIHsNCisgICAgICBjYXNlIE9QX1RZUEVf dnY6DQorICAgICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9m b3JfcHJlZF92d3NsbCAoZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIGNh c2UgT1BfVFlQRV92eDoNCisgICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9p bnNuIChjb2RlX2Zvcl9wcmVkX3Z3c2xsX3NjYWxhciAoZS52ZWN0b3JfbW9k ZSAoKSkpOw0KKyAgICAgIGRlZmF1bHQ6DQorICAgICAgICBnY2NfdW5yZWFj aGFibGUgKCk7DQorICAgICAgfQ0KKyAgfQ0KK307DQorDQorLyogSW1wbGVt ZW50cyBjbG11bCAqLw0KK3RlbXBsYXRlPGludCBVTlNQRUM+DQorY2xhc3Mg Y2xtdWwgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sNCitwdWJsaWM6DQor ICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3Zl cnJpZGUNCisgIHsNCisgICAgc3dpdGNoIChlLm9wX2luZm8tPm9wKQ0KKyAg ICAgIHsNCisgICAgICBjYXNlIE9QX1RZUEVfdnY6DQorICAgICAgICByZXR1 cm4gZS51c2VfZXhhY3RfaW5zbiAoDQorICAgICAgICAgICAgICAgICBjb2Rl X2Zvcl9wcmVkX3ZjbG11bCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7 DQorICAgICAgY2FzZSBPUF9UWVBFX3Z4Og0KKyAgICAgICAgcmV0dXJuIGUu dXNlX2V4YWN0X2luc24NCisgICAgICAgICAgICAgICAgIChjb2RlX2Zvcl9w cmVkX3ZjbG11bF9zY2FsYXIgKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkp Ow0KKyAgICAgIGRlZmF1bHQ6DQorICAgICAgICBnY2NfdW5yZWFjaGFibGUg KCk7DQorICAgICAgfQ0KKyAgfQ0KK307DQorDQorLyogSW1wbGVtZW50cyB2 Z2hzaC92c2gybXMvdnNoYTJjW2hsXS4gKi8NCit0ZW1wbGF0ZTxpbnQgVU5T UEVDPg0KK2NsYXNzIHZnX25oYWIgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0K K3sNCitwdWJsaWM6DQorICBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkg Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgdXNl X21hc2tfcHJlZGljYXRpb25fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy biBmYWxzZTsgfQ0KKyAgYm9vbCBoYXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNv bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorDQorICBydHggZXhw YW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisg IHsNCisgICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKGNvZGVfZm9yX3By ZWRfdiAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQorICB9DQorfTsN CisNCisvKiBJbXBsZW1lbnRzIHZnbXVsL3ZhZXMqLiAqLw0KK3RlbXBsYXRl PGludCBVTlNQRUM+DQorY2xhc3MgY3J5cHRvX3Z2IDogcHVibGljIGZ1bmN0 aW9uX2Jhc2UNCit7DQorcHVibGljOg0KKyAgYm9vbCBhcHBseV9tYXNrX3Bv bGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQor ICBib29sIHVzZV9tYXNrX3ByZWRpY2F0aW9uX3AgKCkgY29uc3Qgb3ZlcnJp ZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgaGFzX21lcmdlX29wZXJh bmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKw0K KyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92 ZXJyaWRlDQorICB7DQorICAgIHBvbHlfdWludDY0IG51bml0cyA9IDBVOw0K KyAgICBzd2l0Y2ggKGUub3BfaW5mby0+b3ApDQorICAgIHsNCisgICAgICBj YXNlIE9QX1RZUEVfdnY6DQorICAgICAgICBpZiAoVU5TUEVDID09IFVOU1BF Q19WR01VTCkNCisgICAgICAgICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24N CisgICAgICAgICAgICAgICAgICAgKGNvZGVfZm9yX3ByZWRfY3J5cHRvX3Z2 IChVTlNQRUMsIFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAg ICAgZWxzZQ0KKyAgICAgICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbg0K KyAgICAgICAgICAgICAgICAgICAoY29kZV9mb3JfcHJlZF9jcnlwdG9fdnYg KFVOU1BFQyArIDEsIFVOU1BFQyArIDEsIGUudmVjdG9yX21vZGUgKCkpKTsN CisgICAgICBjYXNlIE9QX1RZUEVfdnM6DQorICAgICAgICAvKiBDYWxjdWxh dGUgdGhlIHJhdGlvIGJldHdlZW4gYXJnMCBhbmQgYXJnMSovDQorICAgICAg ICBnY2NfYXNzZXJ0IChtdWx0aXBsZV9wIChHRVRfTU9ERV9CSVRTSVpFIChl LmFyZ19tb2RlICgwKSksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHRVRfTU9ERV9CSVRTSVpFIChlLmFyZ19tb2RlICgxKSksICZudW5p dHMpKTsNCisgICAgICAgIGlmIChtYXliZV9lcSAobnVuaXRzLCAxVSkpDQor ICAgICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9w cmVkX2NyeXB0b192dngxX3NjYWxhcg0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKFVOU1BFQyArIDIsIFVOU1BFQyArIDIsIGUudmVj dG9yX21vZGUgKCkpKTsNCisgICAgICAgIGVsc2UgaWYgKG1heWJlX2VxIChu dW5pdHMsIDJVKSkNCisgICAgICAgICAgcmV0dXJuIGUudXNlX2V4YWN0X2lu c24gKGNvZGVfZm9yX3ByZWRfY3J5cHRvX3Z2eDJfc2NhbGFyDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVU5TUEVDICsgMiwgVU5T UEVDICsgMiwgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgICAgZWxzZSBp ZiAobWF5YmVfZXEgKG51bml0cywgNFUpKQ0KKyAgICAgICAgICByZXR1cm4g ZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF9jcnlwdG9fdnZ4NF9z Y2FsYXINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChV TlNQRUMgKyAyLCBVTlNQRUMgKyAyLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQor ICAgICAgICBlbHNlIGlmIChtYXliZV9lcSAobnVuaXRzLCA4VSkpDQorICAg ICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVk X2NyeXB0b192dng4X3NjYWxhcg0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKFVOU1BFQyArIDIsIFVOU1BFQyArIDIsIGUudmVjdG9y X21vZGUgKCkpKTsNCisgICAgICAgIGVsc2UNCisgICAgICAgICAgcmV0dXJu IGUudXNlX2V4YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfY3J5cHRvX3Z2eDE2 X3NjYWxhcg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KFVOU1BFQyArIDIsIFVOU1BFQyArIDIsIGUudmVjdG9yX21vZGUgKCkpKTsN CisgICAgICBkZWZhdWx0Og0KKyAgICAgICAgZ2NjX3VucmVhY2hhYmxlICgp Ow0KKyAgICB9DQorICB9DQorfTsNCisNCisvKiBJbXBsZW1lbnRzIHZhZXNr ZjEvdnNtNGsuICovDQordGVtcGxhdGU8aW50IFVOU1BFQz4NCitjbGFzcyBj cnlwdG9fdmkgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sNCitwdWJsaWM6 DQorICBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJp ZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgdXNlX21hc2tfcHJlZGlj YXRpb25fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0K Kw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0 IG92ZXJyaWRlDQorICB7DQorICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNu DQorICAgICAgICAgICAgIChjb2RlX2Zvcl9wcmVkX2NyeXB0b192aV9zY2Fs YXIgKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgfQ0KK307DQor DQorLyogSW1wbGVtZW50cyB2YWVza2YyL3ZzbTNjLiAqLw0KK3RlbXBsYXRl PGludCBVTlNQRUM+DQorY2xhc3MgdmFlc2tmMl92c20zYyA6IHB1YmxpYyBm dW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIGJvb2wgYXBwbHlfbWFz a19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg fQ0KKyAgYm9vbCB1c2VfbWFza19wcmVkaWNhdGlvbl9wICgpIGNvbnN0IG92 ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29sIGhhc19tZXJnZV9v cGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0N CisNCisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25z dCBvdmVycmlkZQ0KKyAgew0KKyAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5z bg0KKyAgICAgICAgICAgICAoY29kZV9mb3JfcHJlZF92aV9ub21hc2tlZG9m Zl9zY2FsYXIgKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgfQ0K K307DQorDQorLyogSW1wbGVtZW50cyB2c20zbWUuICovDQorY2xhc3MgdnNt M21lIDogcHVibGljIGZ1bmN0aW9uX2Jhc2UNCit7DQorcHVibGljOg0KKyAg Ym9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsg cmV0dXJuIGZhbHNlOyB9DQorICBib29sIHVzZV9tYXNrX3ByZWRpY2F0aW9u X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisNCisg IHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVy cmlkZQ0KKyAgew0KKyAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29k ZV9mb3JfcHJlZF92c20zbWUgKGUudmVjdG9yX21vZGUgKCkpKTsNCisgIH0N Cit9Ow0KKw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCB2c2V0dmw8ZmFsc2U+ IHZzZXR2bF9vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZzZXR2bDx0 cnVlPiB2c2V0dmxtYXhfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBs b2Fkc3RvcmU8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgZmFsc2U+IHZsZV9v Ymo7DQpAQCAtMjM4NCw2ICsyNTkwLDM1IEBAIHN0YXRpYyBDT05TVEVYUFIg Y29uc3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVDX1VOT1JERVJFRD4gdnN1 eHNlZ19vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19pbmRleGVk X3N0b3JlPFVOU1BFQ19PUkRFUkVEPiB2c294c2VnX29iajsNCnN0YXRpYyBD T05TVEVYUFIgY29uc3QgdmxzZWdmZiB2bHNlZ2ZmX29iajsNCisvKiBDcnlw dG8gVmVjdG9yICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCB2YW5kbiB2 YW5kbl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBiaXRtYW5pcDxS T1RBVEU+ICAgdnJvbF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBi aXRtYW5pcDxST1RBVEVSVD4gdnJvcl9vYmo7DQorc3RhdGljIENPTlNURVhQ UiBjb25zdCBiX3JldmVyc2U8VU5TUEVDX1ZCUkVWPiAgIHZicmV2X29iajsN CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJfcmV2ZXJzZTxVTlNQRUNfVkJS RVY4PiAgdmJyZXY4X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJf cmV2ZXJzZTxVTlNQRUNfVlJFVjg+ICAgdnJldjhfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgYml0bWFuaXA8Q0xaPiB2Y2x6X29iajsNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IGJpdG1hbmlwPENUWj4gdmN0el9vYmo7DQor c3RhdGljIENPTlNURVhQUiBjb25zdCB2d3NsbCB2d3NsbF9vYmo7DQorc3Rh dGljIENPTlNURVhQUiBjb25zdCBjbG11bDxVTlNQRUNfVkNMTVVMPiAgICAg IHZjbG11bF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBjbG11bDxV TlNQRUNfVkNMTVVMSD4gICAgIHZjbG11bGhfb2JqOw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgdmdfbmhhYjxVTlNQRUNfVkdIU0g+ICAgICB2Z2hzaF9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBjcnlwdG9fdnY8VU5TUEVD X1ZHTVVMPiAgIHZnbXVsX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IGNyeXB0b192djxVTlNQRUNfVkFFU0VGPiAgdmFlc2VmX29iajsNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IGNyeXB0b192djxVTlNQRUNfVkFFU0VNPiAg dmFlc2VtX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGNyeXB0b192 djxVTlNQRUNfVkFFU0RGPiAgdmFlc2RmX29iajsNCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IGNyeXB0b192djxVTlNQRUNfVkFFU0RNPiAgdmFlc2RtX29i ajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGNyeXB0b192djxVTlNQRUNf VkFFU1o+ICAgdmFlc3pfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg Y3J5cHRvX3ZpPFVOU1BFQ19WQUVTS0YxPiB2YWVza2YxX29iajsNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHZhZXNrZjJfdnNtM2M8VU5TUEVDX1ZBRVNL RjI+IHZhZXNrZjJfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qgdmdf bmhhYjxVTlNQRUNfVlNIQTJNUz4gICB2c2hhMm1zX29iajsNCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHZnX25oYWI8VU5TUEVDX1ZTSEEyQ0g+ICAgdnNo YTJjaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB2Z19uaGFiPFVO U1BFQ19WU0hBMkNMPiAgIHZzaGEyY2xfb2JqOw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgY3J5cHRvX3ZpPFVOU1BFQ19WU000Sz4gICB2c200a19vYmo7 DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBjcnlwdG9fdnY8VU5TUEVDX1ZT TTRSPiAgIHZzbTRyX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZz bTNtZSB2c20zbWVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdmFl c2tmMl92c20zYzxVTlNQRUNfVlNNM0M+ICAgdnNtM2Nfb2JqOw0KKw0KLyog RGVjbGFyZSB0aGUgZnVuY3Rpb24gYmFzZSBOQU1FLCBwb2ludGluZyBpdCB0 byBhbiBpbnN0YW5jZQ0KICAgIG9mIGNsYXNzIDxOQU1FPl9vYmouICAqLw0K I2RlZmluZSBCQVNFKE5BTUUpIFwNCkBAIC0yNjQ1LDUgKzI4ODAsMzIgQEAg QkFTRSAodmxveHNlZykNCkJBU0UgKHZzdXhzZWcpDQpCQVNFICh2c294c2Vn KQ0KQkFTRSAodmxzZWdmZikNCi0NCisvKiBDcnlwdG8gdmVjdG9yICovDQor QkFTRSAodmFuZG4pDQorQkFTRSAodmJyZXYpDQorQkFTRSAodmJyZXY4KQ0K K0JBU0UgKHZyZXY4KQ0KK0JBU0UgKHZjbHopDQorQkFTRSAodmN0eikNCitC QVNFICh2cm9sKQ0KK0JBU0UgKHZyb3IpDQorQkFTRSAodndzbGwpDQorQkFT RSAodmNsbXVsKQ0KK0JBU0UgKHZjbG11bGgpDQorQkFTRSAodmdoc2gpDQor QkFTRSAodmdtdWwpDQorQkFTRSAodmFlc2VmKQ0KK0JBU0UgKHZhZXNlbSkN CitCQVNFICh2YWVzZGYpDQorQkFTRSAodmFlc2RtKQ0KK0JBU0UgKHZhZXN6 KQ0KK0JBU0UgKHZhZXNrZjEpDQorQkFTRSAodmFlc2tmMikNCitCQVNFICh2 c2hhMm1zKQ0KK0JBU0UgKHZzaGEyY2gpDQorQkFTRSAodnNoYTJjbCkNCitC QVNFICh2c200aykNCitCQVNFICh2c200cikNCitCQVNFICh2c20zbWUpDQor QkFTRSAodnNtM2MpDQp9IC8vIGVuZCBuYW1lc3BhY2UgcmlzY3ZfdmVjdG9y DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLWJhc2VzLmgNCmluZGV4IDEzMTA0MWVhNjZmLi41MWI1 M2EzZDRhOSAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCkBAIC0yODAsNiAr MjgwLDM0IEBAIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 bG94c2VnOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZz dXhzZWc7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNv eHNlZzsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNl Z2ZmOw0KKy8qIEJlbG93IGZ1bmN0aW9uX2Jhc2UgYXJlIFZlY3RybyBDcnlw dG8qLw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YW5k bjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmJyZXY7 DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZicmV2ODsN CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnJldjg7DQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZjbHo7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZjdHo7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZyb2w7DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZyb3I7DQorZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZ3c2xsOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2Y2xtdWw7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZjbG11bGg7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZnaHNoOw0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2Z211bDsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdmFlc2VmOw0KK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2YWVzZW07DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZhZXNkZjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdmFlc2RtOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2YWVzejsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdmFlc2tmMTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdmFlc2tmMjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdnNoYTJtczsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdnNoYTJjaDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdnNoYTJjbDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdnNtNGs7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZzbTRyOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2c20zbWU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZzbTNjOw0KfQ0KfSAvLyBlbmQgbmFtZXNwYWNlIHJpc2N2X3ZlY3Rv cg0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmDQppbmRleCAwMzQy MWQ1YmMxMC4uMjI5NzY0MjUzYTAgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmDQor KysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1m dW5jdGlvbnMuZGVmDQpAQCAtNjUzLDQgKzY1Myw5OCBAQCBERUZfUlZWX0ZV TkNUSU9OICh2c294c2VnLCBzZWdfaW5kZXhlZF9sb2Fkc3RvcmUsIG5vbmVf bV9wcmVkcywgdHVwbGVfdl9zY2FsYXJfcA0KREVGX1JWVl9GVU5DVElPTiAo dmxzZWdmZiwgc2VnX2ZhdWx0X2xvYWQsIGZ1bGxfcHJlZHMsIHR1cGxlX3Zf c2NhbGFyX2NvbnN0X3B0cl9zaXplX3B0cl9vcHMpDQojdW5kZWYgUkVRVUlS RURfRVhURU5TSU9OUw0KKy8qIERlZmluaWF0aW9uIG9mIGNyeXB0byB2ZWN0 b3IgaW50cmluc2ljIGZ1bmN0aW9ucyAqLw0KKy8vIFpWQkIgYW5kIFpWS0IN CisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWlZCQl9FWFQNCitERUZf UlZWX0ZVTkNUSU9OICh2YnJldiwgIGFsdSwgZnVsbF9wcmVkcywgdV92dl9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodmNseiwgICBhbHUsIG5vbmVfbV9w cmVkcywgdV92dl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmN0eiwgICBh bHUsIG5vbmVfbV9wcmVkcywgdV92dl9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodndzbGwsICBhbHUsIGZ1bGxfcHJlZHMsIHVfd3Z2X29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2d3NsbCwgIGFsdSwgZnVsbF9wcmVkcywgdV9zaGlm dF93dnhfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorDQor I2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWQkJfT1JfWlZLQl9FWFQN CitERUZfUlZWX0ZVTkNUSU9OICh2YW5kbiwgIGFsdSwgZnVsbF9wcmVkcywg dV92dnZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhbmRuLCAgYWx1LCBm dWxsX3ByZWRzLCB1X3Z2eF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmJy ZXY4LCBhbHUsIGZ1bGxfcHJlZHMsIHVfdnZfb3BzKQ0KK0RFRl9SVlZfRlVO Q1RJT04gKHZyZXY4LCAgYWx1LCBmdWxsX3ByZWRzLCB1X3Z2X29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2cm9sLCAgIGFsdSwgZnVsbF9wcmVkcywgdV92 dnZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZyb3IsICAgYWx1LCBmdWxs X3ByZWRzLCB1X3Z2dl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnJvciwg ICBhbHUsIGZ1bGxfcHJlZHMsIHVfc2hpZnRfdnZ4X29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh2cm9sLCAgIGFsdSwgZnVsbF9wcmVkcywgdV9zaGlmdF92 dnhfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorLy9aVkJD DQorI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWQkNfRVhUDQorREVG X1JWVl9GVU5DVElPTiAodmNsbXVsLCAgYWx1LCBmdWxsX3ByZWRzLCB1X3Z2 dl9jcnlwdG9fc2V3NjRfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZjbG11 bCwgIGFsdSwgZnVsbF9wcmVkcywgdV92dnhfY3J5cHRvX3NldzY0X29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2Y2xtdWxoLCBhbHUsIGZ1bGxfcHJlZHMs IHVfdnZ2X2NyeXB0b19zZXc2NF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dmNsbXVsaCwgYWx1LCBmdWxsX3ByZWRzLCB1X3Z2eF9jcnlwdG9fc2V3NjRf b3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorLy9aVktHDQor I2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWS0dfRVhUDQorREVGX1JW Vl9GVU5DVElPTih2Z2hzaCwgbm9fbWFza19wb2xpY3ksIG5vbmVfdHVfcHJl ZHMsIHVfdnZ2dl9jcnlwdG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJ T04odmdtdWwsIG5vX21hc2tfcG9saWN5LCBub25lX3R1X3ByZWRzLCB1X3Z2 dl9jcnlwdG9fc2V3MzJfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJ T05TDQorLy9aVktORUQNCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMg WlZLTkVEX0VYVA0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNlZiwgICBjcnlw dG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZ2X2NyeXB0b19zZXczMl9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodmFlc2VmLCAgIGNyeXB0b192diwgbm9u ZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh2YWVzZWYsICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRz LCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94Ml9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodmFlc2VmLCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywg dV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDRfb3BzKQ0KK0RFRl9SVlZfRlVO Q1RJT04gKHZhZXNlZiwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVf dnZzX2NyeXB0b19zZXczMl9sbXVsX3g4X29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2YWVzZWYsICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2 c19jcnlwdG9fc2V3MzJfbG11bF94MTZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJ T04gKHZhZXNlbSwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZ2 X2NyeXB0b19zZXczMl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2Vt LCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3Nl dzMyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZW0sICAgY3J5cHRv X3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94 Ml9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2VtLCAgIGNyeXB0b192 diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDRf b3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNlbSwgICBjcnlwdG9fdnYs IG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3g4X29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZW0sICAgY3J5cHRvX3Z2LCBu b25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94MTZfb3Bz KQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNkZiwgICBjcnlwdG9fdnYsIG5v bmVfdHVfcHJlZHMsIHVfdnZ2X2NyeXB0b19zZXczMl9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodmFlc2RmLCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVk cywgdV92dnNfY3J5cHRvX3NldzMyX29wcykNCitERUZfUlZWX0ZVTkNUSU9O ICh2YWVzZGYsICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19j cnlwdG9fc2V3MzJfbG11bF94Ml9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dmFlc2RmLCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5 cHRvX3NldzMyX2xtdWxfeDRfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZh ZXNkZiwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0 b19zZXczMl9sbXVsX3g4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVz ZGYsICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9f c2V3MzJfbG11bF94MTZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNk bSwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZ2X2NyeXB0b19z ZXczMl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2RtLCAgIGNyeXB0 b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZG0sICAgY3J5cHRvX3Z2LCBub25l X3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94Ml9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodmFlc2RtLCAgIGNyeXB0b192diwgbm9uZV90 dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDRfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZhZXNkbSwgICBjcnlwdG9fdnYsIG5vbmVfdHVf cHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3g4X29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2YWVzZG0sICAgY3J5cHRvX3Z2LCBub25lX3R1X3By ZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94MTZfb3BzKQ0KK0RFRl9S VlZfRlVOQ1RJT04gKHZhZXN6LCAgICBjcnlwdG9fdnZfbm9fb3BfdHlwZSwg bm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2YWVzeiwgICAgY3J5cHRvX3Z2X25vX29wX3R5cGUs IG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3gyX29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzeiwgICAgY3J5cHRvX3Z2X25v X29wX3R5cGUsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9s bXVsX3g0X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzeiwgICAgY3J5 cHRvX3Z2X25vX29wX3R5cGUsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0 b19zZXczMl9sbXVsX3g4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVz eiwgICAgY3J5cHRvX3Z2X25vX29wX3R5cGUsIG5vbmVfdHVfcHJlZHMsIHVf dnZzX2NyeXB0b19zZXczMl9sbXVsX3gxNl9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmFlc2tmMSwgIGNyeXB0b192aSwgbm9uZV90dV9wcmVkcywgdV92 dl9zaXplX2NyeXB0b19zZXczMl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dmFlc2tmMiwgIGNyeXB0b192aSwgbm9uZV90dV9wcmVkcywgdV92dnZfc2l6 ZV9jcnlwdG9fc2V3MzJfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJ T05TDQorLy9aVktOSEENCisvL1pWS05IQSBhbmQgWlZLTkhCDQorI2RlZmlu ZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWS05IQV9PUl9aVktOSEJfRVhUDQor REVGX1JWVl9GVU5DVElPTiAodnNoYTJtcywgIG5vX21hc2tfcG9saWN5LCBu b25lX3R1X3ByZWRzLCB1X3Z2dnZfY3J5cHRvX3NldzMyX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2c2hhMmNoLCAgbm9fbWFza19wb2xpY3ksIG5vbmVf dHVfcHJlZHMsIHVfdnZ2dl9jcnlwdG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZzaGEyY2wsICBub19tYXNrX3BvbGljeSwgbm9uZV90dV9w cmVkcywgdV92dnZ2X2NyeXB0b19zZXczMl9vcHMpDQorI3VuZGVmIFJFUVVJ UkVEX0VYVEVOU0lPTlMNCisNCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lP TlMgWlZLTkhCX0VYVA0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzaGEybXMsICBu b19tYXNrX3BvbGljeSwgbm9uZV90dV9wcmVkcywgdV92dnZ2X2NyeXB0b19z ZXc2NF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNoYTJjaCwgIG5vX21h c2tfcG9saWN5LCBub25lX3R1X3ByZWRzLCB1X3Z2dnZfY3J5cHRvX3NldzY0 X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c2hhMmNsLCAgbm9fbWFza19w b2xpY3ksIG5vbmVfdHVfcHJlZHMsIHVfdnZ2dl9jcnlwdG9fc2V3NjRfb3Bz KQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorLy9admtzZWQNCisj ZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWlZLU0VEX0VYVA0KK0RFRl9S VlZfRlVOQ1RJT04gKHZzbTRrLCBjcnlwdG9fdmksIG5vbmVfdHVfcHJlZHMs IHVfdnZfc2l6ZV9jcnlwdG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJ T04gKHZzbTRyLCBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZ2X2Ny eXB0b19zZXczMl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNtNHIsIGNy eXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2c200ciwgY3J5cHRvX3Z2LCBub25l X3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94Ml9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodnNtNHIsIGNyeXB0b192diwgbm9uZV90dV9w cmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDRfb3BzKQ0KK0RFRl9S VlZfRlVOQ1RJT04gKHZzbTRyLCBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMs IHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3g4X29wcykNCitERUZfUlZWX0ZV TkNUSU9OICh2c200ciwgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2 c19jcnlwdG9fc2V3MzJfbG11bF94MTZfb3BzKQ0KKyN1bmRlZiBSRVFVSVJF RF9FWFRFTlNJT05TDQorLy9admtzaA0KKyNkZWZpbmUgUkVRVUlSRURfRVhU RU5TSU9OUyBaVktTSF9FWFQNCitERUZfUlZWX0ZVTkNUSU9OICh2c20zbWUs IG5vX21hc2tfcG9saWN5LCAgICBub25lX3R1X3ByZWRzLCB1X3Z2dl9jcnlw dG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzbTNjLCAgY3J5 cHRvX3ZpLCAgICBub25lX3R1X3ByZWRzLCB1X3Z2dl9zaXplX2NyeXB0b19z ZXczMl9vcHMpDQorI3VuZGVmIFJFUVVJUkVEX0VYVEVOU0lPTlMNCiN1bmRl ZiBERUZfUlZWX0ZVTkNUSU9ODQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQpp bmRleCA0YTc1NGUwMjI4Zi4uNmJhNDJlOTg2YWQgMTAwNjQ0DQotLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMu Y2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLXNoYXBlcy5jYw0KQEAgLTk4NCw2ICs5ODQsODkgQEAgc3RydWN0IHNl Z19mYXVsdF9sb2FkX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQogICB9DQp9 Ow0KKy8qIHZzbTRyL3ZhZXMqIGNsYXNzLiAgKi8NCitzdHJ1Y3QgY3J5cHRv X3Z2X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQorew0KKyAgY2hhciAqZ2V0 X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2lu c3RhbmNlICZpbnN0YW5jZSwNCisgICAgICAgICAgICAgICAgICBib29sIG92 ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgLyogUmV0 dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAgKi8N CisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2Fu X2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpDQorICAgICAgcmV0 dXJuIG51bGxwdHI7DQorICAgIGIuYXBwZW5kX2Jhc2VfbmFtZSAoaW5zdGFu Y2UuYmFzZV9uYW1lKTsNCisgICAgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9z dWZmaXhlc1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOw0KKw0KKyAgICBpZiAo IW92ZXJsb2FkZWRfcCkNCisgICAgew0KKyAgICAgIGlmIChpbnN0YW5jZS5v cF9pbmZvLT5vcCA9PSBPUF9UWVBFX3Z2KQ0KKyAgICAgICAgYi5hcHBlbmRf bmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0 b3IpOw0KKyAgICAgIGVsc2UNCisgICAgICB7DQorICAgICAgICB2ZWN0b3Jf dHlwZV9pbmRleCBhcmcwX3R5cGVfaWR4DQorICAgICAgICAgID0gaW5zdGFu Y2Uub3BfaW5mby0+YXJnc1sxXS5nZXRfZnVuY3Rpb25fdHlwZV9pbmRleA0K KyAgICAgICAgICAgIChpbnN0YW5jZS50eXBlLmluZGV4KTsNCisgICAgICAg IGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbYXJnMF90eXBlX2lkeF0u dmVjdG9yKTsNCisgICAgICAgIHZlY3Rvcl90eXBlX2luZGV4IHJldF90eXBl X2lkeA0KKyAgICAgICAgICA9IGluc3RhbmNlLm9wX2luZm8tPnJldC5nZXRf ZnVuY3Rpb25fdHlwZV9pbmRleA0KKyAgICAgICAgICAgIChpbnN0YW5jZS50 eXBlLmluZGV4KTsNCisgICAgICAgIGIuYXBwZW5kX25hbWUgKHR5cGVfc3Vm Zml4ZXNbcmV0X3R5cGVfaWR4XS52ZWN0b3IpOw0KKyAgICAgIH0NCisgICAg fQ0KKw0KKyAgICBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhl c1tpbnN0YW5jZS5wcmVkXSk7DQorICAgIHJldHVybiBiLmZpbmlzaF9uYW1l ICgpOw0KKyAgfQ0KK307DQorDQorLyogdmFlc2tmMS92YWVza2YyL3ZzbTRr L3ZzbTNjIGNsYXNzLiAgKi8NCitzdHJ1Y3QgY3J5cHRvX3ZpX2RlZiA6IHB1 YmxpYyBidWlsZF9iYXNlDQorew0KKyAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0 aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0 YW5jZSwNCisgICAgICAgICAgICAgICAgICBib29sIG92ZXJsb2FkZWRfcCkg Y29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgLyogUmV0dXJuIG51bGxwdHIg aWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAgKi8NCisgICAgaWYgKG92 ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2Fk ZWRfcCAoaW5zdGFuY2UucHJlZCkpDQorICAgICAgcmV0dXJuIG51bGxwdHI7 DQorICAgIGIuYXBwZW5kX2Jhc2VfbmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1l KTsNCisgICAgaWYgKCFvdmVybG9hZGVkX3ApDQorICAgIHsNCisgICAgICBi LmFwcGVuZF9uYW1lIChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2lu Zm8tPm9wXSk7DQorICAgICAgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhl c1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOw0KKyAgICB9DQorICAg IGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2luc3RhbmNl LnByZWRdKTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQorICB9 DQorfTsNCisNCisvKiB2YWVzeiBjbGFzcy4gICovDQorc3RydWN0IGNyeXB0 b192dl9ub19vcF90eXBlX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQorew0K KyAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0 IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCisgICAgICAgICAgICAg ICAgICBib29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsN CisgICAgLyogUmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVy bG9hZGVkLiAgKi8NCisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFu Y2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkp DQorICAgICAgcmV0dXJuIG51bGxwdHI7DQorICAgIGIuYXBwZW5kX2Jhc2Vf bmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsNCisgICAgICANCisgICAgaWYg KCFvdmVybG9hZGVkX3ApDQorICAgIHsNCisgICAgICBiLmFwcGVuZF9uYW1l IChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7DQor ICAgICAgdmVjdG9yX3R5cGVfaW5kZXggYXJnMF90eXBlX2lkeA0KKyAgICAg ICAgPSBpbnN0YW5jZS5vcF9pbmZvLT5hcmdzWzFdLmdldF9mdW5jdGlvbl90 eXBlX2luZGV4DQorICAgICAgICAgIChpbnN0YW5jZS50eXBlLmluZGV4KTsN CisgICAgICBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2FyZzBfdHlw ZV9pZHhdLnZlY3Rvcik7DQorICAgICAgdmVjdG9yX3R5cGVfaW5kZXggcmV0 X3R5cGVfaWR4DQorICAgICAgICA9IGluc3RhbmNlLm9wX2luZm8tPnJldC5n ZXRfZnVuY3Rpb25fdHlwZV9pbmRleA0KKyAgICAgICAgICAoaW5zdGFuY2Uu dHlwZS5pbmRleCk7DQorICAgICAgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZm aXhlc1tyZXRfdHlwZV9pZHhdLnZlY3Rvcik7DQorICAgIH0NCisNCisgICAg Yi5hcHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3VmZml4ZXNbaW5zdGFuY2Uu cHJlZF0pOw0KKyAgICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCisgIH0N Cit9Ow0KKw0KU0hBUEUodnNldHZsLCB2c2V0dmwpDQpTSEFQRSh2c2V0dmws IHZzZXR2bG1heCkNClNIQVBFKGxvYWRzdG9yZSwgbG9hZHN0b3JlKQ0KQEAg LTEwMTIsNSArMTA5NSw3IEBAIFNIQVBFKHZsZW5iLCB2bGVuYikNClNIQVBF KHNlZ19sb2Fkc3RvcmUsIHNlZ19sb2Fkc3RvcmUpDQpTSEFQRShzZWdfaW5k ZXhlZF9sb2Fkc3RvcmUsIHNlZ19pbmRleGVkX2xvYWRzdG9yZSkNClNIQVBF KHNlZ19mYXVsdF9sb2FkLCBzZWdfZmF1bHRfbG9hZCkNCi0NCitTSEFQRShj cnlwdG9fdnYsIGNyeXB0b192dikNCitTSEFQRShjcnlwdG9fdmksIGNyeXB0 b192aSkNCitTSEFQRShjcnlwdG9fdnZfbm9fb3BfdHlwZSwgY3J5cHRvX3Z2 X25vX29wX3R5cGUpDQp9IC8vIGVuZCBuYW1lc3BhY2UgcmlzY3ZfdmVjdG9y DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy1zaGFwZXMuaA0KaW5kZXggZGY5ODg0YmI1NzIuLjE4 OWJjYmRlZmYzIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgNCisrKyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oDQpAQCAtNTIs NiArNTIsMTAgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCB2bGVuYjsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qg c2VnX2xvYWRzdG9yZTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAq Y29uc3Qgc2VnX2luZGV4ZWRfbG9hZHN0b3JlOw0KZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX3NoYXBlICpjb25zdCBzZWdfZmF1bHRfbG9hZDsNCisvKiBCZWxv dyBmdW5jdGlvbl9zaGFwZSBhcmUgVmVjdHJvIENyeXB0byovDQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBjcnlwdG9fdnY7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBjcnlwdG9fdmk7DQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBjcnlwdG9fdnZf bm9fb3BfdHlwZTsNCn0NCn0gLy8gZW5kIG5hbWVzcGFjZSByaXNjdl92ZWN0 b3INCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy10eXBlcy5kZWYgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYNCmluZGV4IDZhYTQ1YWU5YTdl Li43OTZkODlkYmJmNCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZg0KKysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmDQpA QCAtMzM5LDYgKzMzOSwxOCBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBm aWxlIENPUFlJTkczLiBJZiBub3Qgc2VlDQojZGVmaW5lIERFRl9SVlZfVFVQ TEVfT1BTKFRZUEUsIFJFUVVJUkUpDQojZW5kaWYNCisvKiBVc2UgIkRFRl9S VlZfQ1JZUFRPX1NFVzMyX09QUyIgbWFjcm8gaW5jbHVkZSBhbGwgU0VXPTMy IHR5cGVzDQorICAgd2hpY2ggd2lsbCBiZSBpdGVyYXRlZCBhbmQgcmVnaXN0 ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8NCisjaWZuZGVmIERF Rl9SVlZfQ1JZUFRPX1NFVzMyX09QUw0KKyNkZWZpbmUgREVGX1JWVl9DUllQ VE9fU0VXMzJfT1BTKFRZUEUsIFJFUVVJUkUpDQorI2VuZGlmDQorDQorLyog VXNlICJERUZfUlZWX0NSWVBUT19TRVc2NF9PUFMiIG1hY3JvIGluY2x1ZGUg YWxsIFNFVz02NCB0eXBlcw0KKyAgIHdoaWNoIHdpbGwgYmUgaXRlcmF0ZWQg YW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0aW9ucy4gICovDQor I2lmbmRlZiBERUZfUlZWX0NSWVBUT19TRVc2NF9PUFMNCisjZGVmaW5lIERF Rl9SVlZfQ1JZUFRPX1NFVzY0X09QUyhUWVBFLCBSRVFVSVJFKQ0KKyNlbmRp Zg0KKw0KREVGX1JWVl9JX09QUyAodmludDhtZjhfdCwgUlZWX1JFUVVJUkVf TUlOX1ZMRU5fNjQpDQpERUZfUlZWX0lfT1BTICh2aW50OG1mNF90LCAwKQ0K REVGX1JWVl9JX09QUyAodmludDhtZjJfdCwgMCkNCkBAIC0xMzU1LDYgKzEz NjcsMTcgQEAgREVGX1JWVl9UVVBMRV9PUFMgKHZmbG9hdDY0bTJ4M190LCBS VlZfUkVRVUlSRV9FTEVOX0ZQXzY0KQ0KREVGX1JWVl9UVVBMRV9PUFMgKHZm bG9hdDY0bTJ4NF90LCBSVlZfUkVRVUlSRV9FTEVOX0ZQXzY0KQ0KREVGX1JW Vl9UVVBMRV9PUFMgKHZmbG9hdDY0bTR4Ml90LCBSVlZfUkVRVUlSRV9FTEVO X0ZQXzY0KQ0KK0RFRl9SVlZfQ1JZUFRPX1NFVzMyX09QUyAodnVpbnQzMm1m Ml90LCBSVlZfUkVRVUlSRV9NSU5fVkxFTl82NCkNCitERUZfUlZWX0NSWVBU T19TRVczMl9PUFMgKHZ1aW50MzJtMV90LCAwKQ0KK0RFRl9SVlZfQ1JZUFRP X1NFVzMyX09QUyAodnVpbnQzMm0yX3QsIDApDQorREVGX1JWVl9DUllQVE9f U0VXMzJfT1BTICh2dWludDMybTRfdCwgMCkNCitERUZfUlZWX0NSWVBUT19T RVczMl9PUFMgKHZ1aW50MzJtOF90LCAwKQ0KKw0KK0RFRl9SVlZfQ1JZUFRP X1NFVzY0X09QUyAodnVpbnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQp DQorREVGX1JWVl9DUllQVE9fU0VXNjRfT1BTICh2dWludDY0bTJfdCwgUlZW X1JFUVVJUkVfRUxFTl82NCkNCitERUZfUlZWX0NSWVBUT19TRVc2NF9PUFMg KHZ1aW50NjRtNF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQ0KK0RFRl9SVlZf Q1JZUFRPX1NFVzY0X09QUyAodnVpbnQ2NG04X3QsIFJWVl9SRVFVSVJFX0VM RU5fNjQpDQorDQojdW5kZWYgREVGX1JWVl9JX09QUw0KI3VuZGVmIERFRl9S VlZfVV9PUFMNCiN1bmRlZiBERUZfUlZWX0ZfT1BTDQpAQCAtMTQwNiwzICsx NDI5LDUgQEAgREVGX1JWVl9UVVBMRV9PUFMgKHZmbG9hdDY0bTR4Ml90LCBS VlZfUkVRVUlSRV9FTEVOX0ZQXzY0KQ0KI3VuZGVmIERFRl9SVlZfTE1VTDJf T1BTDQojdW5kZWYgREVGX1JWVl9MTVVMNF9PUFMNCiN1bmRlZiBERUZfUlZW X1RVUExFX09QUw0KKyN1bmRlZiBERUZfUlZWX0NSWVBUT19TRVczMl9PUFMN CisjdW5kZWYgREVGX1JWVl9DUllQVE9fU0VXNjRfT1BTDQpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2Mg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYw0K aW5kZXggNGUyYzY2YzJkZTcuLjgwODdjM2ZhZjdlIDEwMDY0NA0KLS0tIGEv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MNCisr KyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNj DQpAQCAtNTIxLDYgKzUyMSwxOSBAQCBzdGF0aWMgY29uc3QgcnZ2X3R5cGVf aW5mbyB0dXBsZV9vcHNbXSA9IHsNCiNpbmNsdWRlICJyaXNjdi12ZWN0b3It YnVpbHRpbnMtdHlwZXMuZGVmIg0KICAge05VTV9WRUNUT1JfVFlQRVMsIDB9 fTsNCisvKiBCZWxvdyB0eXBlcyB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIHZl Y3Rvci1jcnlwdG8gaW50cmluc2ljIGZ1bmN0aW9ucyovDQorLyogQSBsaXN0 IG9mIHNldzMyIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgdmVjdG9yLWNyeXB0 byBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8NCitzdGF0aWMgY29uc3QgcnZ2 X3R5cGVfaW5mbyBjcnlwdG9fc2V3MzJfb3BzW10gPSB7DQorI2RlZmluZSBE RUZfUlZWX0NSWVBUT19TRVczMl9PUFMoVFlQRSwgUkVRVUlSRSkge1ZFQ1RP Ul9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sDQorI2luY2x1ZGUgInJpc2N2LXZl Y3Rvci1idWlsdGlucy10eXBlcy5kZWYiDQorICB7TlVNX1ZFQ1RPUl9UWVBF UywgMH19Ow0KKw0KKy8qIEEgbGlzdCBvZiBzZXc2NCB3aWxsIGJlIHJlZ2lz dGVyZWQgZm9yIHZlY3Rvci1jcnlwdG8gaW50cmluc2ljIGZ1bmN0aW9ucy4g ICovDQorc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gY3J5cHRvX3NldzY0 X29wc1tdID0gew0KKyNkZWZpbmUgREVGX1JWVl9DUllQVE9fU0VXNjRfT1BT KFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9 LA0KKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVm Ig0KKyAge05VTV9WRUNUT1JfVFlQRVMsIDB9fTsNCisNCnN0YXRpYyBDT05T VEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gcnZ2X2FyZ190eXBlX2lu Zm9fZW5kDQogICA9IHJ2dl9hcmdfdHlwZV9pbmZvIChOVU1fQkFTRV9UWVBF Uyk7DQpAQCAtNzU0LDYgKzc2NywxMSBAQCBzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHZfc2l6ZV9hcmdzW10NCiAgID0ge3J2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCBydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0Vfc2l6ZSksDQogICAgICBydnZfYXJnX3R5cGVf aW5mb19lbmR9Ow0KKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3JfdHlw ZSBmdW5jIChkb3VibGUgZGVtb3RlX3R5cGUsIHNpemVfdCkgZnVuY3Rpb24u ICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2lu Zm8gd3Zfc2l6ZV9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChS VlZfQkFTRV9kb3VibGVfdHJ1bmNfdmVjdG9yKSwNCisgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLHJ2dl9hcmdfdHlwZV9pbmZvX2Vu ZH07DQorDQovKiBBIGxpc3Qgb2YgYXJncyBmb3IgdmVjdG9yX3R5cGUgZnVu YyAodmVjdG9yX3R5cGUsIHZlY3Rvcl90eXBlLCBzaXplKQ0KICAqIGZ1bmN0 aW9uLiAgKi8NCnN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBl X2luZm8gdnZfc2l6ZV9hcmdzW10NCkBAIC0xMDQ0LDYgKzEwNjIsMTQgQEAg c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Zfb3BzDQog ICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyog UmV0dXJuIHR5cGUgKi8NCiAgICAgIGVuZF9hcmdzIC8qIEFyZ3MgKi99Ow0K Ky8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90 eXBlIGZ1bmMgKHZlY3Rvcl90eXBlKQ0KKyAqIGZ1bmN0aW9uIHJlZ2lzdHJh dGlvbi4gKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IHVfdnZfb3BzDQorICA9IHt1X29wcywgLyogVHlwZXMgKi8NCisgICAgIE9Q X1RZUEVfdiwgLyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5m byAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAg IHZfYXJncyAvKiBBcmdzICovfTsNCisNCi8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHVuc2lnbmVkIGxvbmcgZnVuYyAodmVjdG9yX3R5 cGUpDQogICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAqLw0Kc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBiX3Vsb25nX21fb3BzDQpAQCAt MjE3NCw2ICsyMjAwLDE0IEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gdV93dnZfb3BzDQogICAgICBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCiAgICAgIHd2 dl9hcmdzIC8qIEFyZ3MgKi99Ow0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5m b3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGRvdWJsZSBkZW1vdGUg dHlwZSwgc2l6ZSB0eXBlKQ0KKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4g Ki8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHVfc2hp ZnRfd3Z4X29wcw0KKyAgPSB7d2V4dHVfb3BzLCAgIC8qIFR5cGVzICovDQor ICAgICBPUF9UWVBFX3Z4LCAgIC8qIFN1ZmZpeCAqLw0KKyAgICAgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBl ICovDQorICAgICB3dl9zaXplX2FyZ3MgLyogQXJncyAqL307DQorDQovKiBB IHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBm dW5jIChkb3VibGUgZGVtb3RlIHR5cGUsIGRvdWJsZQ0KICAqIGRlbW90ZSBz Y2FsYXJfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAqLw0Kc3RhdGlj IENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpX3d2eF9vcHMNCkBAIC0y NjA0LDYgKzI2MzgsMTAxIEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gYWxsX3ZfdmNyZWF0ZV9sbXVsNF94Ml9vcHMNCiAgICAgIHJ2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11bF9leHRfeDIpLCAvKiBS ZXR1cm4gdHlwZSAqLw0KICAgICAgZXh0X3ZjcmVhdGVfYXJncyAvKiBBcmdz ICovfTsNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSkuDQorICAgU29tZSBpbnMg anVzdCBzdXBwb3J0cyBTRVc9MzIsIHN1Y2ggYXMgY3J5cHRvIHZlY3RvbCBa dmtnIGV4dGVuc2lvbi4NCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAq Lw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8g dnNfbG11bF94Ml9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChS VlZfQkFTRV92bG11bF9leHRfeDIpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2lu Zm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07 DQorDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5m byB2c19sbXVsX3g0X2FyZ3NbXQ0KKyAgPSB7cnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3ZsbXVsX2V4dF94NCksDQorICAgICBydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgcnZ2X2FyZ190eXBlX2luZm9fZW5k fTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9p bmZvIHZzX2xtdWxfeDhfYXJnc1tdDQorICA9IHtydnZfYXJnX3R5cGVfaW5m byAoUlZWX0JBU0VfdmxtdWxfZXh0X3g4KSwNCisgICAgIHJ2dl9hcmdfdHlw ZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCBydnZfYXJnX3R5cGVfaW5mb19l bmR9Ow0KKw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBl X2luZm8gdnNfbG11bF94MTZfYXJnc1tdDQorICA9IHtydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0VfdmxtdWxfZXh0X3gxNiksDQorICAgICBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgcnZ2X2FyZ190eXBlX2lu Zm9fZW5kfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9p bmZvIHVfdnZ2X2NyeXB0b19zZXczMl9vcHMNCisgID0ge2NyeXB0b19zZXcz Ml9vcHMsICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBFX3Z2LCAgICAv KiBTdWZmaXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFT RV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdnZfYXJncyAv KiBBcmdzICovfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9v cF9pbmZvIHVfdnZ2dl9jcnlwdG9fc2V3MzJfb3BzDQorICA9IHtjcnlwdG9f c2V3MzJfb3BzLCAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92diwg ICAgLyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHZ2dl9h cmdzIC8qIEFyZ3MgKi99Ow0KKw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg cnZ2X29wX2luZm8gdV92dnZfc2l6ZV9jcnlwdG9fc2V3MzJfb3BzDQorICA9 IHtjcnlwdG9fc2V3MzJfb3BzLCAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1Bf VFlQRV92aSwgICAgLyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCisg ICAgIHZ2X3NpemVfYXJncyAvKiBBcmdzICovfTsNCisNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHVfdnZfc2l6ZV9jcnlwdG9fc2V3 MzJfb3BzDQorICA9IHtjcnlwdG9fc2V3MzJfb3BzLCAgICAvKiBUeXBlcyAq Lw0KKyAgICAgT1BfVFlQRV92aSwgICAgLyogU3VmZml4ICovDQorICAgICBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJu IHR5cGUgKi8NCisgICAgIHZfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdV92dnNfY3J5 cHRvX3NldzMyX29wcw0KKyAgPSB7Y3J5cHRvX3NldzMyX29wcywgICAgLyog VHlwZXMgKi8NCisgICAgIE9QX1RZUEVfdnMsICAgIC8qIFN1ZmZpeCAqLw0K KyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8q IFJldHVybiB0eXBlICovDQorICAgICB2dl9hcmdzIC8qIEFyZ3MgKi99Ow0K Kw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdV92dnNf Y3J5cHRvX3NldzMyX2xtdWxfeDJfb3BzDQorICA9IHtjcnlwdG9fc2V3MzJf b3BzLCAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92cywgICAgLyog U3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf dmxtdWxfZXh0X3gyKSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHZzX2xt dWxfeDJfYXJncyAvKiBBcmdzICovfTsNCisNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHJ2dl9vcF9pbmZvIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3g0 X29wcw0KKyAgPSB7Y3J5cHRvX3NldzMyX29wcywgICAgLyogVHlwZXMgKi8N CisgICAgIE9QX1RZUEVfdnMsICAgIC8qIFN1ZmZpeCAqLw0KKyAgICAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94NCksIC8qIFJl dHVybiB0eXBlICovDQorICAgICB2c19sbXVsX3g0X2FyZ3MgLyogQXJncyAq L307DQorDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1 X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94OF9vcHMNCisgID0ge2NyeXB0b19z ZXczMl9vcHMsICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBFX3ZzLCAg ICAvKiBTdWZmaXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZf QkFTRV92bG11bF9leHRfeDgpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAg dnNfbG11bF94OF9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdV92dnNfY3J5cHRvX3NldzMyX2xt dWxfeDE2X29wcw0KKyAgPSB7Y3J5cHRvX3NldzMyX29wcywgICAgLyogVHlw ZXMgKi8NCisgICAgIE9QX1RZUEVfdnMsICAgIC8qIFN1ZmZpeCAqLw0KKyAg ICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94MTYp LCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdnNfbG11bF94MTZfYXJncyAv KiBBcmdzICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0 aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSkuDQorICAg U29tZSBpbnMganVzdCBzdXBwb3J0cyBTRVc9NjQsIHN1Y2ggYXMgY3J5cHRv IHZlY3RvbCBadmJjIGV4dGVuc2lvbg0KKyAgIHZjbG11bC52diwgdmNsbXVs LnZ4Lg0KKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQorc3RhdGlj IENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Z2dl9jcnlwdG9fc2V3 NjRfb3BzDQorICA9IHtjcnlwdG9fc2V3NjRfb3BzLCAgICAvKiBUeXBlcyAq Lw0KKyAgICAgT1BfVFlQRV92diwgICAgLyogU3VmZml4ICovDQorICAgICBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJu IHR5cGUgKi8NCisgICAgIHZ2X2FyZ3MgLyogQXJncyAqL307DQorDQorc3Rh dGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Z2eF9jcnlwdG9f c2V3NjRfb3BzDQorICA9IHtjcnlwdG9fc2V3NjRfb3BzLCAgICAvKiBUeXBl cyAqLw0KKyAgICAgT1BfVFlQRV92eCwgICAgLyogU3VmZml4ICovDQorICAg ICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0 dXJuIHR5cGUgKi8NCisgICAgIHZ4X2FyZ3MgLyogQXJncyAqL307DQorDQor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Z2dnZfY3J5 cHRvX3NldzY0X29wcw0KKyAgPSB7Y3J5cHRvX3NldzY0X29wcywgICAgLyog VHlwZXMgKi8NCisgICAgIE9QX1RZUEVfdnYsICAgIC8qIFN1ZmZpeCAqLw0K KyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8q IFJldHVybiB0eXBlICovDQorICAgICB2dnZfYXJncyAvKiBBcmdzICovfTsN CisNCi8qIEEgbGlzdCBvZiBhbGwgUlZWIGJhc2UgZnVuY3Rpb24gdHlwZXMu ICAqLw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBmdW5jdGlvbl90eXBlX2lu Zm8gZnVuY3Rpb25fdHlwZXNbXSA9IHsNCiNkZWZpbmUgREVGX1JWVl9UWVBF X0lOREVYKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQpAQCAtNDE3Niw3ICs0MzA1LDkgQEAgcmVnaXN0 ZXJlZF9mdW5jdGlvbjo6b3ZlcmxvYWRlZF9oYXNoIChjb25zdCB2ZWM8dHJl ZSwgdmFfZ2M+ICZhcmdsaXN0KQ0KICAgICAgICBfX3Jpc2N2X3ZzZXQodmlu dDhtMl90IGRlc3QsIHNpemVfdCBpbmRleCwgdmludDhtMV90IHZhbHVlKTsg VGhlIHJlYXNvbg0KICAgICAgICBpcyB0aGUgc2FtZSBhcyBhYm92ZS4gKi8N CiAgICAgICBpZiAoKGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZnZXQgJiYg KGkgPT0gKGxlbiAtIDEpKSkNCi0gICB8fCAoaW5zdGFuY2UuYmFzZSA9PSBi YXNlczo6dnNldCAmJiAoaSA9PSAobGVuIC0gMikpKSkNCisgICB8fCAoKGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZzZXQNCisgICAgICAgICAgICAgICB8 fCBpbnN0YW5jZS5zaGFwZSA9PSBzaGFwZXM6OmNyeXB0b192aSkNCisgICAg ICAgICAgICAgJiYgKGkgPT0gKGxlbiAtIDIpKSkpDQphcmd1bWVudF90eXBl cy5zYWZlX3B1c2ggKHNpemVfdHlwZV9ub2RlKTsNCiAgICAgICAvKiBWZWN0 b3IgZml4ZWQtcG9pbnQgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgcmVxdWly aW5nIGFyZ3VtZW50IHZ4cm0uDQogICAgIEZvciBleGFtcGxlOiB2dWludDMy bTRfdCBfX3Jpc2N2X3ZhYWRkdSh2dWludDMybTRfdCB2czIsDQpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu ZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu ZGVmDQppbmRleCA2NjYxNjI5YWFkOC4uMGMzZWUzYjI5ODYgMTAwNjQ0DQot LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5k ZWYNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmRlZg0KQEAgLTU1OCw2ICs1NTgsNyBAQCBERUZfUlZWX1RZUEUgKHZm bG9hdDY0bThfdCwgMTcsIF9fcnZ2X2Zsb2F0NjRtOF90LCBkb3VibGUsIFJW Vk04REYsIF9mNjRtOCwNCkRFRl9SVlZfT1BfVFlQRSAodnYpDQpERUZfUlZW X09QX1RZUEUgKHZ4KQ0KK0RFRl9SVlZfT1BfVFlQRSAodmkpDQpERUZfUlZW X09QX1RZUEUgKHYpDQpERUZfUlZWX09QX1RZUEUgKHd2KQ0KREVGX1JWVl9P UF9UWVBFICh3eCkNCi0tIA0KMi4xNy4xDQogDQogDQo= ------=_001_NextPart521462555422_=------