From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast1.qq.com (smtpbguseast1.qq.com [54.204.34.129]) by sourceware.org (Postfix) with ESMTPS id 86AF63858C52 for ; Wed, 10 Jan 2024 09:35:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 86AF63858C52 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 86AF63858C52 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.204.34.129 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704879360; cv=none; b=ToO3IDGow+6ntrSdMGKnk9ZxGPx+CMJR7rxjWZAYFY3nY98rcwA4QQ258EyMrkGgVaVmnzfPU9CY4TpAOusCNw6gNqR5MadTtQ3Mp6oRlxhgueMKa749fHf/bJJcB1kYH3lhGvfxD+nVl2wniUtiVqjKL1USdPvJ8XZKhZshMsk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704879360; c=relaxed/simple; bh=7xnltTGl+QP/dGvY6Tj/Z+AOgxp/lgenWG/VgpuG95w=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=HID3YswuXReXF9EhFeGtE6pKFg4Tw9rTwrBuRJdnsTL55dGbwPjztDj1o7Z9JVmvLZJKDJrOw/KM1JZMKIpvkQ56eFFH0A3lYF6K8U7auEC4IJ39oADBqK/oRo/4n1bEp97xwEqaIryuphmWxlaz25qEnP4cIk+iyGNWGSFNZwY= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp77t1704879326t5fik1pm Received: from LAPTOP-EPITNQBU ( [121.35.183.89]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 10 Jan 2024 17:35:25 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: UJd4nZbM1CduBIHTFjsXzErJBJHeQLw62PTWtcR9/qU0uPGHgssStgNaFmEH/ pIVbvmqBM880BU6PrG/Zu/M9V11M5dfH1iuLz8WBp9hMLvq9cT7Fn+Sd9+Z/B8SFxxb3dwl lRI1B6cfWzWv3K6Xzv+LFPDyylgEX5FT+U8JR+DpNmOkpLwyYNLJug0DV9hQtOc/o8HFjO1 1es5ClOhso9KpM0Qd9/+rI+eXxVTQ9f8P+MmqZ1oHho39fjEO2lgVPVaco+pwUPQhVvg6O7 L7O1291jLmao1nyMm1DzQiLd4ZGLNZ/FZ0sWl99JO1toF3MYzAyhhqOfiYGbueD+A7KUhNs oZu6v9vgt6310DiyKk8xGNi1Y8EG7O/pxkd5xWlGPBpInh8tHI4i6nuNSm5G86A+veIBOyy HnEEMXxMV5qYhZ+LNzYEkW4JBzKM5q4Zmpbv2YSh+lo= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 843110652232099639 Date: Wed, 10 Jan 2024 17:35:25 +0800 From: "juzhe.zhong@rivai.ai" To: cooper.joshua , gcc-patches Cc: "Jim Wilson" , palmer , andrew , philipp.tomsich , jeffreyalaw , christoph.muellner , cooper.joshua , jinma , cooper.qu Subject: Re: [PATCH v5] RISC-V: Add support for xtheadvector-specific intrinsics. References: <20240104023407.1949-1-cooper.joshua@linux.alibaba.com>, <20240110092737.1238-1-cooper.joshua@linux.alibaba.com> X-Priority: 3 X-GUID: 48D2B9B6-FF03-451F-994C-7E5F510FDAD2 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <84BB708C77FACFE0+202401101735245997385@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart031100432163_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,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_NextPart031100432163_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 K0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZsYiwgdGhfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCBpOF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHRoX3ZsaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBpMTZfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh0aF92bHcsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVs bF9wcmVkcywgaTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpDQoNCkkgdGhp bmsgd2Ugc2hvdWxkIHJlbW92ZSB0aG9zZSBtYW55IGRhdGEgc3RydWN0dXJl IHlvdSBhZGRlZCBsaWtlOiBpOF92X3NjYWxhcl9jb25zdF9wdHJfb3BzDQpJ bnN0ZWFkLCB5b3Ugc2hvdWxkIHVzZSBhbGxfdl9zY2FsYXJfY29uc3RfcHRy X29wcw0KDQpBbmQgcmV2aXNlIHRoX2xvYWRzdG9yZV93aWR0aCwgYXBwZW5k IHRoZSBuYW1lIGFjY29yZGluZyBUWVBFX1VOU0lHTkVEIGFuZCANCkdFVF9N T0RFX0JJVFNJWkUgKEdFVF9NT0RFX0lOTkVSIChUWVBFX01PREUgKGluc3Rh bmNlLm9wX2luZm8tPmFyZ3NbaV0uZ2V0X3RyZWVfdHlwZSAoaW5zdGFuY2Uu dHlwZS5pbmRleCkpKSkNCg0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkN CiANCkZyb206IEp1biBTaGEgKEpvc2h1YSkNCkRhdGU6IDIwMjQtMDEtMTAg MTc6MjcNClRvOiBnY2MtcGF0Y2hlcw0KQ0M6IGppbS53aWxzb24uZ2NjOyBw YWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNoOyBqZWZmcmV5YWxhdzsg Y2hyaXN0b3BoLm11ZWxsbmVyOyBqdXpoZS56aG9uZzsgSnVuIFNoYSAoSm9z aHVhKTsgSmluIE1hOyBYaWFubWlhbyBRdQ0KU3ViamVjdDogW1BBVENIIHY1 XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lm aWMgaW50cmluc2ljcy4NClRoaXMgcGF0Y2ggb25seSBpbnZvbHZlcyB0aGUg Z2VuZXJhdGlvbiBvZiB4dGhlYWR2ZWN0b3INCnNwZWNpYWwgbG9hZC9zdG9y ZSBpbnN0cnVjdGlvbnMgYW5kIHZleHQgaW5zdHJ1Y3Rpb25zLg0KIA0KZ2Nj L0NoYW5nZUxvZzoNCiANCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1iYXNlcy5jYw0KKGNsYXNzIHRoX2xvYWRzdG9yZV93aWR0aCk6 IERlZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4NCihCQVNFKTogRGVmaW5lIG5l dyBidWlsdGluIGJhc2VzLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLWJhc2VzLmg6DQpEZWZpbmUgbmV3IGJ1aWx0aW4gY2xhc3Mu DQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rp b25zLmRlZiAodmxzZWdmZik6DQpJbmNsdWRlIHRoZWFkLXZlY3Rvci1idWls dGlucy1mdW5jdGlvbnMuZGVmLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KKHN0cnVjdCB0aF9sb2Fkc3RvcmVf d2lkdGhfZGVmKTogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4NCihzdHJ1 Y3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmKToNCkRlZmluZSBu ZXcgYnVpbHRpbiBzaGFwZXMuDQooU0hBUEUpOiBEZWZpbmUgbmV3IGJ1aWx0 aW4gc2hhcGVzLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLXNoYXBlcy5oOg0KRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4NCiog Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYN CihERUZfUlZWX0k4X09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZl Y3Rvci4NCihERUZfUlZWX0kxNl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBY VGhlYWRWZWN0b3IuDQooREVGX1JWVl9JMzJfT1BTKTogQWRkIGRhdGF0eXBl cyBmb3IgWFRoZWFkVmVjdG9yLg0KKERFRl9SVlZfVThfT1BTKTogQWRkIGRh dGF0eXBlcyBmb3IgWFRoZWFkVmVjdG9yLg0KKERFRl9SVlZfVTE2X09QUyk6 IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZlY3Rvci4NCihERUZfUlZWX1Uz Ml9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuDQoodmlu dDhtMV90KTogQWRkIGRhdGF0eXBlcyBmb3IgWFRoZWFkVmVjdG9yLg0KKHZp bnQ4bTJfdCk6IExpa2V3aXNlLg0KKHZpbnQ4bTRfdCk6IExpa2V3aXNlLg0K KHZpbnQ4bThfdCk6IExpa2V3aXNlLg0KKHZpbnQxNm0xX3QpOiBMaWtld2lz ZS4NCih2aW50MTZtMl90KTogTGlrZXdpc2UuDQoodmludDE2bTRfdCk6IExp a2V3aXNlLg0KKHZpbnQxNm04X3QpOiBMaWtld2lzZS4NCih2aW50MzJtMV90 KTogTGlrZXdpc2UuDQoodmludDMybTJfdCk6IExpa2V3aXNlLg0KKHZpbnQz Mm00X3QpOiBMaWtld2lzZS4NCih2aW50MzJtOF90KTogTGlrZXdpc2UuDQoo dmludDY0bTFfdCk6IExpa2V3aXNlLg0KKHZpbnQ2NG0yX3QpOiBMaWtld2lz ZS4NCih2aW50NjRtNF90KTogTGlrZXdpc2UuDQoodmludDY0bThfdCk6IExp a2V3aXNlLg0KKHZ1aW50OG0xX3QpOiBMaWtld2lzZS4NCih2dWludDhtMl90 KTogTGlrZXdpc2UuDQoodnVpbnQ4bTRfdCk6IExpa2V3aXNlLg0KKHZ1aW50 OG04X3QpOiBMaWtld2lzZS4NCih2dWludDE2bTFfdCk6IExpa2V3aXNlLg0K KHZ1aW50MTZtMl90KTogTGlrZXdpc2UuDQoodnVpbnQxNm00X3QpOiBMaWtl d2lzZS4NCih2dWludDE2bThfdCk6IExpa2V3aXNlLg0KKHZ1aW50MzJtMV90 KTogTGlrZXdpc2UuDQoodnVpbnQzMm0yX3QpOiBMaWtld2lzZS4NCih2dWlu dDMybTRfdCk6IExpa2V3aXNlLg0KKHZ1aW50MzJtOF90KTogTGlrZXdpc2Uu DQoodnVpbnQ2NG0xX3QpOiBMaWtld2lzZS4NCih2dWludDY0bTJfdCk6IExp a2V3aXNlLg0KKHZ1aW50NjRtNF90KTogTGlrZXdpc2UuDQoodnVpbnQ2NG04 X3QpOiBMaWtld2lzZS4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5jYw0KKERFRl9SVlZfSThfT1BTKTogQWRkIGRhdGF0eXBlcyBm b3IgWFRoZWFkVmVjdG9yLg0KKERFRl9SVlZfSTE2X09QUyk6IEFkZCBkYXRh dHlwZXMgZm9yIFhUaGVhZFZlY3Rvci4NCihERUZfUlZWX0kzMl9PUFMpOiBB ZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuDQooREVGX1JWVl9VOF9P UFMpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuDQooREVGX1JW Vl9VMTZfT1BTKTogQWRkIGRhdGF0eXBlcyBmb3IgWFRoZWFkVmVjdG9yLg0K KERFRl9SVlZfVTMyX09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZl Y3Rvci4NCiogY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1m dW5jdGlvbnMuZGVmOiBOZXcgZmlsZS4NCiogY29uZmlnL3Jpc2N2L3RoZWFk LXZlY3Rvci5tZDogQWRkIG5ldyBwYXR0ZXJucy4NCiANCmdjYy90ZXN0c3Vp dGUvQ2hhbmdlTG9nOg0KIA0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxiLXZzYi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5j OiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsaHUtdnNoLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jOiBOZXcgdGVzdC4NCiogZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmM6IE5l dyB0ZXN0Lg0KIA0KQ28tYXV0aG9yZWQtYnk6IEppbiBNYSA8amlubWFAbGlu dXguYWxpYmFiYS5jb20+DQpDby1hdXRob3JlZC1ieTogWGlhbm1pYW8gUXUg PGNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNvbT4NCkNvLWF1dGhvcmVkLWJ5 OiBDaHJpc3RvcGggTcO8bGxuZXIgPGNocmlzdG9waC5tdWVsbG5lckB2cnVs bC5ldT4NCi0tLQ0KLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1i YXNlcy5jYyAgICAgIHwgMTM5ICsrKysrKysrDQouLi4vcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmggICAgICAgfCAgMzEgKysNCi4uLi9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjICAgICB8ICA5 OCArKysrKysNCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hh cGVzLmggICAgICB8ICAgMyArDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLXR5cGVzLmRlZiAgICAgfCAxMjAgKysrKysrKw0KZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgICAgIHwgMzExICsr KysrKysrKysrKysrKysrKw0KZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuaCAgICAgIHwgICAzICsNCmdjYy9jb25maWcvcmlzY3Yv dC1yaXNjdiAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQouLi4vcmlz Y3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgfCAgMzkg KysrDQpnY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZCAgICAgICAg ICAgICAgfCAyNTMgKysrKysrKysrKysrKysNCi4uLi9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsYi12c2IuYyAgICAgICAgICB8ICA2OCArKysrDQouLi4v cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jICAgICAgICAgfCAg NjggKysrKw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5j ICAgICAgICAgIHwgIDY4ICsrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsaHUtdnNoLmMgICAgICAgICB8ICA2OCArKysrDQouLi4vcmlzY3Yv cnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMgICAgICAgICAgfCAgNjggKysr Kw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYyAgICAg ICAgIHwgIDY4ICsrKysNCjE2IGZpbGVzIGNoYW5nZWQsIDE0MDYgaW5zZXJ0 aW9ucygrKQ0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGItdnNiLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bGJ1LXZzYi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5j DQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3Zsdy12c3cuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9y L3Zsd3UtdnN3LmMNCiANCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQppbmRleCA0 NmYxYTFkYTMzZS4uNWY0NGYzMWExMmIgMTAwNjQ0DQotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KKysr IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFz ZXMuY2MNCkBAIC0yMTI1LDYgKzIxMjUsODMgQEAgcHVibGljOg0KICAgfQ0K fTsNCisvKiBJbXBsZW1lbnRzDQorICogdGgudmwoYi9oL3cpW3VdLnYvdGgu dnMoYi9oL3cpW3VdLnYvdGgudmxzKGIvaC93KVt1XS52L3RoLnZzcyhiL2gv dylbdV0udi8NCisgKiB0aC52bHgoYi9oL3cpW3VdLnYvdGgudnNbdV14KGIv aC93KS52DQorICogY29kZWdlbi4gICovDQordGVtcGxhdGU8Ym9vbCBTVE9S RV9QLCBsc3RfdHlwZSBMU1RfVFlQRSwgaW50IFVOU1BFQz4NCitjbGFzcyB0 aF9sb2Fkc3RvcmVfd2lkdGggOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sN CitwdWJsaWM6DQorICBib29sIGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29u c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7IH0NCisgIGJvb2wgYXBw bHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAh U1RPUkVfUDsgfQ0KKw0KKyAgdW5zaWduZWQgaW50IGNhbGxfcHJvcGVydGll cyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJikgY29uc3Qgb3ZlcnJpZGUN CisgIHsNCisgICAgaWYgKFNUT1JFX1ApDQorICAgICAgcmV0dXJuIENQX1dS SVRFX01FTU9SWTsNCisgICAgZWxzZQ0KKyAgICAgIHJldHVybiBDUF9SRUFE X01FTU9SWTsNCisgIH0NCisNCisgIGJvb2wgY2FuX2JlX292ZXJsb2FkZWRf cCAoZW51bSBwcmVkaWNhdGlvbl90eXBlX2luZGV4IHByZWQpIGNvbnN0IG92 ZXJyaWRlDQorICB7DQorICAgIGlmIChTVE9SRV9QIHx8IExTVF9UWVBFID09 IExTVF9JTkRFWEVEKQ0KKyAgICAgIHJldHVybiB0cnVlOw0KKyAgICByZXR1 cm4gcHJlZCAhPSBQUkVEX1RZUEVfbm9uZTsNCisgIH0NCisNCisgIHJ0eCBl eHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0K KyAgew0KKyAgICBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsN CisgICAgaWYgKExTVF9UWVBFID09IExTVF9JTkRFWEVEKQ0KKyAgICAgIHsN CisgaWYgKFNUT1JFX1ApDQorICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24g KA0KKyAgICAgY29kZV9mb3JfcHJlZF9pbmRleGVkX3N0b3JlX3dpZHRoIChV TlNQRUMsIFVOU1BFQywNCisgICAgICAgIGUudmVjdG9yX21vZGUgKCkpKTsN CisgZWxzZQ0KKyAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgNCisgICAg IGNvZGVfZm9yX3ByZWRfaW5kZXhlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUu dmVjdG9yX21vZGUgKCkpKTsNCisgICAgICB9DQorICAgIGVsc2UgaWYgKExT VF9UWVBFID09IExTVF9TVFJJREVEKQ0KKyAgICAgIHsNCisgaWYgKFNUT1JF X1ApDQorICAgcmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNfc3RvcmVfaW5zbiAo DQorICAgICBjb2RlX2Zvcl9wcmVkX3N0cmlkZWRfc3RvcmVfd2lkdGggKFVO U1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyBlbHNlDQorICAgcmV0dXJu IGUudXNlX2NvbnRpZ3VvdXNfbG9hZF9pbnNuICgNCisgICAgIGNvZGVfZm9y X3ByZWRfc3RyaWRlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21v ZGUgKCkpKTsNCisgICAgICB9DQorICAgIGVsc2UNCisgICAgICB7DQorIGlm IChTVE9SRV9QKQ0KKyAgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3Jl X2luc24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9zdG9yZV93aWR0aCAoVU5T UEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQorIGVsc2UNCisgICByZXR1cm4g ZS51c2VfY29udGlndW91c19sb2FkX2luc24gKA0KKyAgICAgY29kZV9mb3Jf cHJlZF9tb3Zfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0K KyAgICAgIH0NCisgIH0NCit9Ow0KKw0KKy8qIEltcGxlbWVudHMgdmV4dC54 LnYuICAqLw0KK2NsYXNzIHRoX2V4dHJhY3QgOiBwdWJsaWMgZnVuY3Rpb25f YmFzZQ0KK3sNCitwdWJsaWM6DQorICBib29sIGFwcGx5X3ZsX3AgKCkgY29u c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgYXBwbHlf dGFpbF9wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz ZTsgfQ0KKyAgYm9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgpIGNvbnN0IG92 ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29sIHVzZV9tYXNrX3By ZWRpY2F0aW9uX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7 IH0NCisgIGJvb2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVy cmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVu Y3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAg IGdjY19hc3NlcnQgKFRBUkdFVF9YVEhFQURWRUNUT1IpOw0KKyAgICByZXR1 cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF90aF9leHRyYWN0 IChlLnZlY3Rvcl9tb2RlICgpKSk7DQorICB9DQorfTsNCisNCi8qIEJlbG93 IGltcGxlbWVudHMgYXJlIHZlY3RvciBjcnlwdG8gKi8NCi8qIEltcGxlbWVu dHMgdmFuZG4uW3Z2LHZ4XSAqLw0KY2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVu Y3Rpb25fYmFzZQ0KQEAgLTI1ODcsNiArMjY2NCwzNyBAQCBzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHNlZ19pbmRleGVkX2xvYWQ8VU5TUEVDX09SREVSRUQ+ IHZsb3hzZWdfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5k ZXhlZF9zdG9yZTxVTlNQRUNfVU5PUkRFUkVEPiB2c3V4c2VnX29iajsNCnN0 YXRpYyBDT05TVEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVD X09SREVSRUQ+IHZzb3hzZWdfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25z dCB2bHNlZ2ZmIHZsc2VnZmZfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUs IFVOU1BFQ19USF9WTEI+IHRoX3ZsYl9vYmo7DQorc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NU UklERSwgVU5TUEVDX1RIX1ZMQlU+IHRoX3ZsYnVfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf VU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEg+IHRoX3ZsaF9vYmo7DQorc3Rh dGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2Us IExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMSFU+IHRoX3ZsaHVfb2Jq Ow0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo PGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHRoX3Zs d19vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMV1U+ IHRoX3Zsd3Vfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RI X1ZMQj4gdGhfdnNiX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BF Q19USF9WTEg+IHRoX3ZzaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1VOSVRfU1RSSURFLCBV TlNQRUNfVEhfVkxXPiB0aF92c3dfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwg VU5TUEVDX1RIX1ZMU0I+IHRoX3Zsc2Jfb2JqOw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURF RCwgVU5TUEVDX1RIX1ZMU0JVPiB0aF92bHNidV9vYmo7DQorc3RhdGljIENP TlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9T VFJJREVELCBVTlNQRUNfVEhfVkxTSD4gdGhfdmxzaF9vYmo7DQorc3RhdGlj IENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExT VF9TVFJJREVELCBVTlNQRUNfVEhfVkxTSFU+IHRoX3Zsc2h1X29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxz ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXPiB0aF92bHN3X29iajsN CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxm YWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXVT4gdGhfdmxzd3Vf b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTQj4gdGhfdnNz Yl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB0aF92 c3NoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU1c+IHRo X3Zzc3dfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+ IHRoX3ZseGJfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZM WEJVPiB0aF92bHhidV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNf VEhfVkxYSD4gdGhfdmx4aF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQ RUNfVEhfVkxYSFU+IHRoX3ZseGh1X29iajsNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQs IFVOU1BFQ19USF9WTFhXPiB0aF92bHh3X29iajsNCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVY RUQsIFVOU1BFQ19USF9WTFhXVT4gdGhfdmx4d3Vfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9J TkRFWEVELCBVTlNQRUNfVEhfVkxYQj4gdGhfdnN4Yl9vYmo7DQorc3RhdGlj IENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNU X0lOREVYRUQsIFVOU1BFQ19USF9WTFhIPiB0aF92c3hoX29iajsNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBM U1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFc+IHRoX3ZzeHdfb2JqOw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUs IExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWEI+IHRoX3ZzdXhiX29iajsN CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0 cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhIPiB0aF92c3V4aF9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WU1VYVz4gdGhfdnN1 eHdfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfZXh0cmFjdCB0 aF92ZXh0X3hfdl9vYmo7DQovKiBDcnlwdG8gVmVjdG9yICovDQpzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHZhbmRuIHZhbmRuX29iajsNCkBAIC0yODc4LDYg KzI5ODYsMzcgQEAgQkFTRSAodmxveHNlZykNCkJBU0UgKHZzdXhzZWcpDQpC QVNFICh2c294c2VnKQ0KQkFTRSAodmxzZWdmZikNCitCQVNFICh0aF92bGIp DQorQkFTRSAodGhfdmxoKQ0KK0JBU0UgKHRoX3ZsdykNCitCQVNFICh0aF92 bGJ1KQ0KK0JBU0UgKHRoX3ZsaHUpDQorQkFTRSAodGhfdmx3dSkNCitCQVNF ICh0aF92c2IpDQorQkFTRSAodGhfdnNoKQ0KK0JBU0UgKHRoX3ZzdykNCitC QVNFICh0aF92bHNiKQ0KK0JBU0UgKHRoX3Zsc2gpDQorQkFTRSAodGhfdmxz dykNCitCQVNFICh0aF92bHNidSkNCitCQVNFICh0aF92bHNodSkNCitCQVNF ICh0aF92bHN3dSkNCitCQVNFICh0aF92c3NiKQ0KK0JBU0UgKHRoX3Zzc2gp DQorQkFTRSAodGhfdnNzdykNCitCQVNFICh0aF92bHhiKQ0KK0JBU0UgKHRo X3ZseGgpDQorQkFTRSAodGhfdmx4dykNCitCQVNFICh0aF92bHhidSkNCitC QVNFICh0aF92bHhodSkNCitCQVNFICh0aF92bHh3dSkNCitCQVNFICh0aF92 c3hiKQ0KK0JBU0UgKHRoX3ZzeGgpDQorQkFTRSAodGhfdnN4dykNCitCQVNF ICh0aF92c3V4YikNCitCQVNFICh0aF92c3V4aCkNCitCQVNFICh0aF92c3V4 dykNCitCQVNFICh0aF92ZXh0X3hfdikNCi8qIENyeXB0byB2ZWN0b3IgKi8N CkJBU0UgKHZhbmRuKQ0KQkFTRSAodmJyZXYpDQpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2Vz LmgNCmluZGV4IDExMjJlMzgwMWE3Li5kZjQzYWRmOWExNyAxMDA2NDQNCi0t LSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJh c2VzLmgNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLWJhc2VzLmgNCkBAIC0yOTksNiArMjk5LDM3IEBAIGV4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bG94c2VnOw0KZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzdXhzZWc7DQpleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNveHNlZzsNCmV4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNlZ2ZmOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bGI7DQorZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZsaDsNCitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmx3Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bGJ1Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bGh1Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHd1Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92c2I7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZzaDsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdGhfdnN3Ow0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB0aF92bHNiOw0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB0aF92bHNoOw0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB0aF92bHN3Ow0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB0aF92bHNidTsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdGhfdmxzaHU7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zsc3d1Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3NiOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3NoOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3N3Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHhiOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHhoOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHh3Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHhidTsNCitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmx4aHU7DQorZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZseHd1Ow0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3hiOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3hoOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3h3Ow0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3V4YjsNCitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdnN1eGg7DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZzdXh3Ow0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92ZXh0X3hfdjsNCi8qIEJl bG93IGZ1bmN0aW9uX2Jhc2UgYXJlIFZlY3RybyBDcnlwdG8qLw0KZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZhbmRuOw0KZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZicmV2Ow0KZGlmZiAtLWdpdCBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBl cy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LXNoYXBlcy5jYw0KaW5kZXggMWU0ZjRkNTNkZTYuLjQ4OWE5NWNmNjg0IDEw MDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCkBAIC0yMTEsNiArMjExLDg2 IEBAIHN0cnVjdCBpbmRleGVkX2xvYWRzdG9yZV9kZWYgOiBwdWJsaWMgZnVu Y3Rpb25fc2hhcGUNCiAgIH0NCn07DQorLyogdGhfbG9hZHN0b3JlX3dpZHRo X2RlZiBjbGFzcy4gICovDQorc3RydWN0IHRoX2xvYWRzdG9yZV93aWR0aF9k ZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0KK3sNCisgIGNoYXIgKmdldF9uYW1l IChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5j ZSAmaW5zdGFuY2UsDQorICAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92 ZXJyaWRlDQorICB7DQorICAgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNh biBub3QgYmUgb3ZlcmxvYWRlZC4gICovDQorICAgIGlmIChvdmVybG9hZGVk X3AgJiYgIWluc3RhbmNlLmJhc2UtPmNhbl9iZV9vdmVybG9hZGVkX3AgKGlu c3RhbmNlLnByZWQpKQ0KKyAgICAgIHJldHVybiBudWxscHRyOw0KKw0KKyAg ICBiLmFwcGVuZF9iYXNlX25hbWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7DQor DQorICAgIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uICAqLw0KKyAgICBp ZiAoIW92ZXJsb2FkZWRfcCkNCisgICAgICB7DQorIC8qIHZvcCAtLT4gdm9w X3YuICAqLw0KKyBiLmFwcGVuZF9uYW1lIChvcGVyYW5kX3N1ZmZpeGVzW2lu c3RhbmNlLm9wX2luZm8tPm9wXSk7DQorIC8qIHZvcF92IC0tPiB2b3Bfdl88 dHlwZT4uICAqLw0KKyBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2lu c3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7DQorICAgICAgfQ0KKw0KKyAg ICAvKiBBY2NvcmRpbmcgdG8gcnZ2LWludHJpbnNpYy1kb2MsIGl0IGRvZXMg bm90IGFkZCAiX20iIHN1ZmZpeA0KKyAgICAgICBmb3Igdm9wX20gQysrIG92 ZXJsb2FkZWQgQVBJLiAgKi8NCisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiBp bnN0YW5jZS5wcmVkID09IFBSRURfVFlQRV9tKQ0KKyAgICAgIHJldHVybiBi LmZpbmlzaF9uYW1lICgpOw0KKyAgICBiLmFwcGVuZF9uYW1lIChwcmVkaWNh dGlvbl9zdWZmaXhlc1tpbnN0YW5jZS5wcmVkXSk7DQorICAgIHJldHVybiBi LmZpbmlzaF9uYW1lICgpOw0KKyAgfQ0KK307DQorDQorDQorLyogdGhfaW5k ZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIGNsYXNzLiAgKi8NCitzdHJ1Y3Qg dGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIDogcHVibGljIGZ1bmN0 aW9uX3NoYXBlDQorew0KKyAgdm9pZCBidWlsZCAoZnVuY3Rpb25fYnVpbGRl ciAmYiwNCisgICAgICAgY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmZ3Jv dXApIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGZvciAodW5zaWduZWQg aW50IHByZWRfaWR4ID0gMDsgZ3JvdXAucHJlZHNbcHJlZF9pZHhdICE9IE5V TV9QUkVEX1RZUEVTOw0KKyArK3ByZWRfaWR4KQ0KKyAgICAgIHsNCisgZm9y ICh1bnNpZ25lZCBpbnQgdmVjX3R5cGVfaWR4ID0gMDsNCisgICAgICBncm91 cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCAhPSBOVU1f VkVDVE9SX1RZUEVTOw0KKyAgICAgICsrdmVjX3R5cGVfaWR4KQ0KKyAgIHsN CisgICAgdHJlZSBpbmRleF90eXBlID0gZ3JvdXAub3BzX2luZm9zLmFyZ3Nb MV0uZ2V0X3RyZWVfdHlwZSAoDQorICAgICAgIGdyb3VwLm9wc19pbmZvcy50 eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4KTsNCisgICAgaWYgKCFpbmRleF90 eXBlKQ0KKyAgICAgICBjb250aW51ZTsNCisgICAgYnVpbGRfb25lIChiLCBn cm91cCwgcHJlZF9pZHgsIHZlY190eXBlX2lkeCk7DQorICAgfQ0KKyAgICAg IH0NCisgIH0NCisNCisgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWls ZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQor ICAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlDQorICB7DQor DQorICAgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNhbiBub3QgYmUgb3Zl cmxvYWRlZC4gICovDQorICAgIGlmIChvdmVybG9hZGVkX3AgJiYgIWluc3Rh bmNlLmJhc2UtPmNhbl9iZV9vdmVybG9hZGVkX3AgKGluc3RhbmNlLnByZWQp KQ0KKyAgICAgIHJldHVybiBudWxscHRyOw0KKw0KKyAgICBiLmFwcGVuZF9i YXNlX25hbWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7DQorICAgIC8qIHZvcF92 IC0tPiB2b3Bfdl88dHlwZT4uICAqLw0KKyAgICBpZiAoIW92ZXJsb2FkZWRf cCkNCisgICAgICB7DQorIC8qIHZvcCAtLT4gdm9wX3YuICAqLw0KKyBiLmFw cGVuZF9uYW1lIChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8t Pm9wXSk7DQorIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uICAqLw0KKyBi LmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5k ZXhdLnZlY3Rvcik7DQorICAgICAgfQ0KKw0KKyAgICAvKiBBY2NvcmRpbmcg dG8gcnZ2LWludHJpbnNpYy1kb2MsIGl0IGRvZXMgbm90IGFkZCAiX20iIHN1 ZmZpeA0KKyAgICAgICBmb3Igdm9wX20gQysrIG92ZXJsb2FkZWQgQVBJLiAg Ki8NCisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5wcmVkID09 IFBSRURfVFlQRV9tKQ0KKyAgICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgp Ow0KKyAgICBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tp bnN0YW5jZS5wcmVkXSk7DQorICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgp Ow0KKyAgfQ0KK307DQorDQovKiBhbHVfZGVmIGNsYXNzLiAgKi8NCnN0cnVj dCBhbHVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCnsNCkBAIC02MzIsNiAr NzEyLDIxIEBAIHN0cnVjdCByZWR1Y19hbHVfZGVmIDogcHVibGljIGJ1aWxk X2Jhc2UNCiAgIH0NCn07DQorLyogdGhfZXh0cmFjdF9kZWYgY2xhc3MuICAq Lw0KK3N0cnVjdCB0aF9leHRyYWN0X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNl DQorew0KKyAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIs IGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCisgICAgICBi b29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAg Yi5hcHBlbmRfYmFzZV9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOw0KKyAg ICBpZiAob3ZlcmxvYWRlZF9wKQ0KKyAgICAgIHJldHVybiBiLmZpbmlzaF9u YW1lICgpOw0KKyAgICBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2lu c3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7DQorICAgIGIuYXBwZW5kX25h bWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0uc2NhbGFy KTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQorICB9DQorfTsN CisNCi8qIHNjYWxhcl9tb3ZlX2RlZiBjbGFzcy4gICovDQpzdHJ1Y3Qgc2Nh bGFyX21vdmVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCnsNCkBAIC0xMDk0 LDYgKzExODksOCBAQCBTSEFQRSh2c2V0dmwsIHZzZXR2bCkNClNIQVBFKHZz ZXR2bCwgdnNldHZsbWF4KQ0KU0hBUEUobG9hZHN0b3JlLCBsb2Fkc3RvcmUp DQpTSEFQRShpbmRleGVkX2xvYWRzdG9yZSwgaW5kZXhlZF9sb2Fkc3RvcmUp DQorU0hBUEUodGhfbG9hZHN0b3JlX3dpZHRoLCB0aF9sb2Fkc3RvcmVfd2lk dGgpDQorU0hBUEUodGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIHRoX2lu ZGV4ZWRfbG9hZHN0b3JlX3dpZHRoKQ0KU0hBUEUoYWx1LCBhbHUpDQpTSEFQ RShhbHVfZnJtLCBhbHVfZnJtKQ0KU0hBUEUod2lkZW5fYWx1LCB3aWRlbl9h bHUpDQpAQCAtMTEwNiw2ICsxMjAzLDcgQEAgU0hBUEUobW92ZSwgbW92ZSkN ClNIQVBFKG1hc2tfYWx1LCBtYXNrX2FsdSkNClNIQVBFKHJlZHVjX2FsdSwg cmVkdWNfYWx1KQ0KU0hBUEUocmVkdWNfYWx1X2ZybSwgcmVkdWNfYWx1X2Zy bSkNCitTSEFQRSh0aF9leHRyYWN0LCB0aF9leHRyYWN0KQ0KU0hBUEUoc2Nh bGFyX21vdmUsIHNjYWxhcl9tb3ZlKQ0KU0hBUEUodnVuZGVmaW5lZCwgdnVu ZGVmaW5lZCkNClNIQVBFKG1pc2MsIG1pc2MpDQpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFw ZXMuaA0KaW5kZXggYWMyYTI4Y2UwMTcuLmE3NjI0ZDBmYWJkIDEwMDY0NA0K LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt c2hhcGVzLmgNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5oDQpAQCAtMjgsNiArMjgsOCBAQCBleHRlcm4g Y29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHZzZXR2bDsNCmV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldHZsbWF4Ow0KZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7DQpleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGluZGV4ZWRfbG9hZHN0 b3JlOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFw ZSAqY29uc3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGg7DQpleHRlcm4g Y29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGFsdTsNCmV4dGVybiBjb25z dCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgYWx1X2ZybTsNCmV4dGVybiBjb25z dCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qgd2lkZW5fYWx1Ow0KQEAgLTQxLDYg KzQzLDcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBt YXNrX2FsdTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qg cmVkdWNfYWx1Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCByZWR1Y19hbHVfZnJtOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBl ICpjb25zdCBzY2FsYXJfbW92ZTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25f c2hhcGUgKmNvbnN0IHRoX2V4dHJhY3Q7DQpleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IHZ1bmRlZmluZWQ7DQpleHRlcm4gY29uc3QgZnVu Y3Rpb25fc2hhcGUgKmNvbnN0IG1pc2M7DQpleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IHZzZXQ7DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIGIvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVm DQppbmRleCA2MTAxOWE1Njg0NC4uYWJmZWI0ZmNkOWIgMTAwNjQ0DQotLS0g YS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy10eXBl cy5kZWYNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLXR5cGVzLmRlZg0KQEAgLTI0LDEyICsyNCw0OCBAQCBhbG9uZyB3 aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiBJZiBub3Qgc2VlDQoj ZGVmaW5lIERFRl9SVlZfSV9PUFMoVFlQRSwgUkVRVUlSRSkNCiNlbmRpZg0K Ky8qIFVzZSAiREVGX1JWVl9JOF9PUFMiIG1hY3JvIGluY2x1ZGUgc29tZSBz aWduZWQgaW50ZWdlciAoaTgvaTE2L2kzMi9pNjQpDQorICAgd2hpY2ggd2ls bCBiZSBpdGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVu Y3Rpb25zLiAgKi8NCisjaWZuZGVmIERFRl9SVlZfSThfT1BTDQorI2RlZmlu ZSBERUZfUlZWX0k4X09QUyhUWVBFLCBSRVFVSVJFKQ0KKyNlbmRpZg0KKw0K Ky8qIFVzZSAiREVGX1JWVl9JMTZfT1BTIiBtYWNybyBpbmNsdWRlIHNvbWUg c2lnbmVkIGludGVnZXIgKGkxNi9pMzIvaTY0KQ0KKyAgIHdoaWNoIHdpbGwg YmUgaXRlcmF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0 aW9ucy4gICovDQorI2lmbmRlZiBERUZfUlZWX0kxNl9PUFMNCisjZGVmaW5l IERFRl9SVlZfSTE2X09QUyhUWVBFLCBSRVFVSVJFKQ0KKyNlbmRpZg0KKw0K Ky8qIFVzZSAiREVGX1JWVl9JMzJfT1BTIiBtYWNybyBpbmNsdWRlIHNvbWUg c2lnbmVkIGludGVnZXIgKGkzMi9pNjQpDQorICAgd2hpY2ggd2lsbCBiZSBp dGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25z LiAgKi8NCisjaWZuZGVmIERFRl9SVlZfSTMyX09QUw0KKyNkZWZpbmUgREVG X1JWVl9JMzJfT1BTKFRZUEUsIFJFUVVJUkUpDQorI2VuZGlmDQorDQovKiBV c2UgIkRFRl9SVlZfVV9PUFMiIG1hY3JvIGluY2x1ZGUgYWxsIHVuc2lnbmVk IGludGVnZXIgd2hpY2ggd2lsbCBiZQ0KICAgIGl0ZXJhdGVkIGFuZCByZWdp c3RlcmVkIGFzIGludHJpbnNpYyBmdW5jdGlvbnMuICAqLw0KI2lmbmRlZiBE RUZfUlZWX1VfT1BTDQojZGVmaW5lIERFRl9SVlZfVV9PUFMoVFlQRSwgUkVR VUlSRSkNCiNlbmRpZg0KKy8qIFVzZSAiREVGX1JWVl9VOF9PUFMiIG1hY3Jv IGluY2x1ZGUgc29tZSB1bnNpZ25lZCBpbnRlZ2VyIChpOC9pMTYvaTMyL2k2 NCkNCisgICB3aGljaCB3aWxsIGJlIGl0ZXJhdGVkIGFuZCByZWdpc3RlcmVk IGFzIGludHJpbnNpYyBmdW5jdGlvbnMuICAqLw0KKyNpZm5kZWYgREVGX1JW Vl9VOF9PUFMNCisjZGVmaW5lIERFRl9SVlZfVThfT1BTKFRZUEUsIFJFUVVJ UkUpDQorI2VuZGlmDQorDQorLyogVXNlICJERUZfUlZWX1UxNl9PUFMiIG1h Y3JvIGluY2x1ZGUgc29tZSB1bnNpZ25lZCBpbnRlZ2VyIChpMTYvaTMyL2k2 NCkNCisgICB3aGljaCB3aWxsIGJlIGl0ZXJhdGVkIGFuZCByZWdpc3RlcmVk IGFzIGludHJpbnNpYyBmdW5jdGlvbnMuICAqLw0KKyNpZm5kZWYgREVGX1JW Vl9VMTZfT1BTDQorI2RlZmluZSBERUZfUlZWX1UxNl9PUFMoVFlQRSwgUkVR VUlSRSkNCisjZW5kaWYNCisNCisvKiBVc2UgIkRFRl9SVlZfVTMyX09QUyIg bWFjcm8gaW5jbHVkZSBzb21lIHVuc2lnbmVkIGludGVnZXIgKGkzMi9pNjQp DQorICAgd2hpY2ggd2lsbCBiZSBpdGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBh cyBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8NCisjaWZuZGVmIERFRl9SVlZf VTMyX09QUw0KKyNkZWZpbmUgREVGX1JWVl9VMzJfT1BTKFRZUEUsIFJFUVVJ UkUpDQorI2VuZGlmDQorDQovKiBVc2UgIkRFRl9SVlZfRl9PUFMiIG1hY3Jv IGluY2x1ZGUgYWxsIGZsb2F0aW5nLXBvaW50IHdoaWNoIHdpbGwgYmUNCiAg ICBpdGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rp b25zLiAgKi8NCiNpZm5kZWYgREVGX1JWVl9GX09QUw0KQEAgLTM3NCw2ICs0 MTAsNDUgQEAgREVGX1JWVl9JX09QUyAodmludDY0bTJfdCwgUlZWX1JFUVVJ UkVfRUxFTl82NCkNCkRFRl9SVlZfSV9PUFMgKHZpbnQ2NG00X3QsIFJWVl9S RVFVSVJFX0VMRU5fNjQpDQpERUZfUlZWX0lfT1BTICh2aW50NjRtOF90LCBS VlZfUkVRVUlSRV9FTEVOXzY0KQ0KK0RFRl9SVlZfSThfT1BTICh2aW50OG0x X3QsIDApDQorREVGX1JWVl9JOF9PUFMgKHZpbnQ4bTJfdCwgMCkNCitERUZf UlZWX0k4X09QUyAodmludDhtNF90LCAwKQ0KK0RFRl9SVlZfSThfT1BTICh2 aW50OG04X3QsIDApDQorREVGX1JWVl9JOF9PUFMgKHZpbnQxNm0xX3QsIDAp DQorREVGX1JWVl9JOF9PUFMgKHZpbnQxNm0yX3QsIDApDQorREVGX1JWVl9J OF9PUFMgKHZpbnQxNm00X3QsIDApDQorREVGX1JWVl9JOF9PUFMgKHZpbnQx Nm04X3QsIDApDQorREVGX1JWVl9JOF9PUFMgKHZpbnQzMm0xX3QsIDApDQor REVGX1JWVl9JOF9PUFMgKHZpbnQzMm0yX3QsIDApDQorREVGX1JWVl9JOF9P UFMgKHZpbnQzMm00X3QsIDApDQorREVGX1JWVl9JOF9PUFMgKHZpbnQzMm04 X3QsIDApDQorREVGX1JWVl9JOF9PUFMgKHZpbnQ2NG0xX3QsIFJWVl9SRVFV SVJFX0VMRU5fNjQpDQorREVGX1JWVl9JOF9PUFMgKHZpbnQ2NG0yX3QsIFJW Vl9SRVFVSVJFX0VMRU5fNjQpDQorREVGX1JWVl9JOF9PUFMgKHZpbnQ2NG00 X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQorREVGX1JWVl9JOF9PUFMgKHZp bnQ2NG04X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQorDQorREVGX1JWVl9J MTZfT1BTICh2aW50MTZtMV90LCAwKQ0KK0RFRl9SVlZfSTE2X09QUyAodmlu dDE2bTJfdCwgMCkNCitERUZfUlZWX0kxNl9PUFMgKHZpbnQxNm00X3QsIDAp DQorREVGX1JWVl9JMTZfT1BTICh2aW50MTZtOF90LCAwKQ0KK0RFRl9SVlZf STE2X09QUyAodmludDMybTFfdCwgMCkNCitERUZfUlZWX0kxNl9PUFMgKHZp bnQzMm0yX3QsIDApDQorREVGX1JWVl9JMTZfT1BTICh2aW50MzJtNF90LCAw KQ0KK0RFRl9SVlZfSTE2X09QUyAodmludDMybThfdCwgMCkNCitERUZfUlZW X0kxNl9PUFMgKHZpbnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQor REVGX1JWVl9JMTZfT1BTICh2aW50NjRtMl90LCBSVlZfUkVRVUlSRV9FTEVO XzY0KQ0KK0RFRl9SVlZfSTE2X09QUyAodmludDY0bTRfdCwgUlZWX1JFUVVJ UkVfRUxFTl82NCkNCitERUZfUlZWX0kxNl9PUFMgKHZpbnQ2NG04X3QsIFJW Vl9SRVFVSVJFX0VMRU5fNjQpDQorDQorREVGX1JWVl9JMzJfT1BTICh2aW50 MzJtMV90LCAwKQ0KK0RFRl9SVlZfSTMyX09QUyAodmludDMybTJfdCwgMCkN CitERUZfUlZWX0kzMl9PUFMgKHZpbnQzMm00X3QsIDApDQorREVGX1JWVl9J MzJfT1BTICh2aW50MzJtOF90LCAwKQ0KK0RFRl9SVlZfSTMyX09QUyAodmlu dDY0bTFfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkNCitERUZfUlZWX0kzMl9P UFMgKHZpbnQ2NG0yX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQorREVGX1JW Vl9JMzJfT1BTICh2aW50NjRtNF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQ0K K0RFRl9SVlZfSTMyX09QUyAodmludDY0bThfdCwgUlZWX1JFUVVJUkVfRUxF Tl82NCkNCisNCkRFRl9SVlZfVV9PUFMgKHZ1aW50OG1mOF90LCBSVlZfUkVR VUlSRV9NSU5fVkxFTl82NCkNCkRFRl9SVlZfVV9PUFMgKHZ1aW50OG1mNF90 LCAwKQ0KREVGX1JWVl9VX09QUyAodnVpbnQ4bWYyX3QsIDApDQpAQCAtMzk3 LDYgKzQ3Miw0NSBAQCBERUZfUlZWX1VfT1BTICh2dWludDY0bTJfdCwgUlZW X1JFUVVJUkVfRUxFTl82NCkNCkRFRl9SVlZfVV9PUFMgKHZ1aW50NjRtNF90 LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQ0KREVGX1JWVl9VX09QUyAodnVpbnQ2 NG04X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQorREVGX1JWVl9VOF9PUFMg KHZ1aW50OG0xX3QsIDApDQorREVGX1JWVl9VOF9PUFMgKHZ1aW50OG0yX3Qs IDApDQorREVGX1JWVl9VOF9PUFMgKHZ1aW50OG00X3QsIDApDQorREVGX1JW Vl9VOF9PUFMgKHZ1aW50OG04X3QsIDApDQorREVGX1JWVl9VOF9PUFMgKHZ1 aW50MTZtMV90LCAwKQ0KK0RFRl9SVlZfVThfT1BTICh2dWludDE2bTJfdCwg MCkNCitERUZfUlZWX1U4X09QUyAodnVpbnQxNm00X3QsIDApDQorREVGX1JW Vl9VOF9PUFMgKHZ1aW50MTZtOF90LCAwKQ0KK0RFRl9SVlZfVThfT1BTICh2 dWludDMybTFfdCwgMCkNCitERUZfUlZWX1U4X09QUyAodnVpbnQzMm0yX3Qs IDApDQorREVGX1JWVl9VOF9PUFMgKHZ1aW50MzJtNF90LCAwKQ0KK0RFRl9S VlZfVThfT1BTICh2dWludDMybThfdCwgMCkNCitERUZfUlZWX1U4X09QUyAo dnVpbnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQorREVGX1JWVl9V OF9PUFMgKHZ1aW50NjRtMl90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQ0KK0RF Rl9SVlZfVThfT1BTICh2dWludDY0bTRfdCwgUlZWX1JFUVVJUkVfRUxFTl82 NCkNCitERUZfUlZWX1U4X09QUyAodnVpbnQ2NG04X3QsIFJWVl9SRVFVSVJF X0VMRU5fNjQpDQorDQorREVGX1JWVl9VMTZfT1BTICh2dWludDE2bTFfdCwg MCkNCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50MTZtMl90LCAwKQ0KK0RFRl9S VlZfVTE2X09QUyAodnVpbnQxNm00X3QsIDApDQorREVGX1JWVl9VMTZfT1BT ICh2dWludDE2bThfdCwgMCkNCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50MzJt MV90LCAwKQ0KK0RFRl9SVlZfVTE2X09QUyAodnVpbnQzMm0yX3QsIDApDQor REVGX1JWVl9VMTZfT1BTICh2dWludDMybTRfdCwgMCkNCitERUZfUlZWX1Ux Nl9PUFMgKHZ1aW50MzJtOF90LCAwKQ0KK0RFRl9SVlZfVTE2X09QUyAodnVp bnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQorREVGX1JWVl9VMTZf T1BTICh2dWludDY0bTJfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkNCitERUZf UlZWX1UxNl9PUFMgKHZ1aW50NjRtNF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0 KQ0KK0RFRl9SVlZfVTE2X09QUyAodnVpbnQ2NG04X3QsIFJWVl9SRVFVSVJF X0VMRU5fNjQpDQorDQorREVGX1JWVl9VMzJfT1BTICh2dWludDMybTFfdCwg MCkNCitERUZfUlZWX1UzMl9PUFMgKHZ1aW50MzJtMl90LCAwKQ0KK0RFRl9S VlZfVTMyX09QUyAodnVpbnQzMm00X3QsIDApDQorREVGX1JWVl9VMzJfT1BT ICh2dWludDMybThfdCwgMCkNCitERUZfUlZWX1UzMl9PUFMgKHZ1aW50NjRt MV90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQ0KK0RFRl9SVlZfVTMyX09QUyAo dnVpbnQ2NG0yX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQorREVGX1JWVl9V MzJfT1BTICh2dWludDY0bTRfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkNCitE RUZfUlZWX1UzMl9PUFMgKHZ1aW50NjRtOF90LCBSVlZfUkVRVUlSRV9FTEVO XzY0KQ0KKw0KREVGX1JWVl9GX09QUyAodmZsb2F0MTZtZjRfdCwgUlZWX1JF UVVJUkVfRUxFTl9GUF8xNiB8IFJWVl9SRVFVSVJFX01JTl9WTEVOXzY0KQ0K REVGX1JWVl9GX09QUyAodmZsb2F0MTZtZjJfdCwgUlZWX1JFUVVJUkVfRUxF Tl9GUF8xNikNCkRFRl9SVlZfRl9PUFMgKHZmbG9hdDE2bTFfdCwgUlZWX1JF UVVJUkVfRUxFTl9GUF8xNikNCkBAIC0xMzc5LDcgKzE0OTMsMTMgQEAgREVG X1JWVl9DUllQVE9fU0VXNjRfT1BTICh2dWludDY0bTRfdCwgUlZWX1JFUVVJ UkVfRUxFTl82NCkNCkRFRl9SVlZfQ1JZUFRPX1NFVzY0X09QUyAodnVpbnQ2 NG04X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpDQojdW5kZWYgREVGX1JWVl9J X09QUw0KKyN1bmRlZiBERUZfUlZWX0k4X09QUw0KKyN1bmRlZiBERUZfUlZW X0kxNl9PUFMNCisjdW5kZWYgREVGX1JWVl9JMzJfT1BTDQojdW5kZWYgREVG X1JWVl9VX09QUw0KKyN1bmRlZiBERUZfUlZWX1U4X09QUw0KKyN1bmRlZiBE RUZfUlZWX1UxNl9PUFMNCisjdW5kZWYgREVGX1JWVl9VMzJfT1BTDQojdW5k ZWYgREVGX1JWVl9GX09QUw0KI3VuZGVmIERFRl9SVlZfQl9PUFMNCiN1bmRl ZiBERUZfUlZWX1dFWFRJX09QUw0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MNCmluZGV4IDI1ZTBiNmU1 NmRlLi5mNDI5ZjEyZGMxOCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQorKysgYi9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYw0KQEAgLTI0Niw2ICsy NDYsNjMgQEAgc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gaXVfb3BzW10g PSB7DQojaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRl ZiINCiAgIHtOVU1fVkVDVE9SX1RZUEVTLCAwfX07DQorLyogQSBsaXN0IG9m IGFsbCBpbnRlZ2VyIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2lj IGZ1bmN0aW9ucy4gICovDQorc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8g aThfb3BzW10gPSB7DQorI2RlZmluZSBERUZfUlZWX0k4X09QUyhUWVBFLCBS RVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwNCisjaW5j bHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiINCisgIHtO VU1fVkVDVE9SX1RZUEVTLCAwfX07DQorDQorLyogQSBsaXN0IG9mIGFsbCBp bnRlZ2VyIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0 aW9ucy4gICovDQorc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gaTE2X29w c1tdID0gew0KKyNkZWZpbmUgREVGX1JWVl9JMTZfT1BTKFRZUEUsIFJFUVVJ UkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LA0KKyNpbmNsdWRl ICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIg0KKyAge05VTV9W RUNUT1JfVFlQRVMsIDB9fTsNCisNCisvKiBBIGxpc3Qgb2YgYWxsIGludGVn ZXIgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25z LiAgKi8NCitzdGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyBpMzJfb3BzW10g PSB7DQorI2RlZmluZSBERUZfUlZWX0kzMl9PUFMoVFlQRSwgUkVRVUlSRSkg e1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sDQorI2luY2x1ZGUgInJp c2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYiDQorICB7TlVNX1ZFQ1RP Ul9UWVBFUywgMH19Ow0KKw0KKy8qIEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3 aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMuICAq Lw0KK3N0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIHU4X29wc1tdID0gew0K KyNkZWZpbmUgREVGX1JWVl9VOF9PUFMoVFlQRSwgUkVRVUlSRSkge1ZFQ1RP Ul9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sDQorI2luY2x1ZGUgInJpc2N2LXZl Y3Rvci1idWlsdGlucy10eXBlcy5kZWYiDQorICB7TlVNX1ZFQ1RPUl9UWVBF UywgMH19Ow0KKw0KKy8qIEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3aWxsIGJl IHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMuICAqLw0KK3N0 YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIHUxNl9vcHNbXSA9IHsNCisjZGVm aW5lIERFRl9SVlZfVTE2X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZ UEVfIyNUWVBFLCBSRVFVSVJFfSwNCisjaW5jbHVkZSAicmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXR5cGVzLmRlZiINCisgIHtOVU1fVkVDVE9SX1RZUEVTLCAw fX07DQorDQorLyogQSBsaXN0IG9mIGFsbCBpbnRlZ2VyIHdpbGwgYmUgcmVn aXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy4gICovDQorc3RhdGlj IGNvbnN0IHJ2dl90eXBlX2luZm8gdTMyX29wc1tdID0gew0KKyNkZWZpbmUg REVGX1JWVl9VMzJfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8j I1RZUEUsIFJFUVVJUkV9LA0KKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVp bHRpbnMtdHlwZXMuZGVmIg0KKyAge05VTV9WRUNUT1JfVFlQRVMsIDB9fTsN CisNCisvKiBBIGxpc3Qgb2YgYWxsIGludGVnZXIgd2lsbCBiZSByZWdpc3Rl cmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8NCitzdGF0aWMgY29u c3QgcnZ2X3R5cGVfaW5mbyBpdThfb3BzW10gPSB7DQorI2RlZmluZSBERUZf UlZWX0k4X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBF LCBSRVFVSVJFfSwNCisjZGVmaW5lIERFRl9SVlZfVThfT1BTKFRZUEUsIFJF UVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LA0KKyNpbmNs dWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIg0KKyAge05V TV9WRUNUT1JfVFlQRVMsIDB9fTsNCisNCisvKiBBIGxpc3Qgb2YgYWxsIGlu dGVnZXIgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rp b25zLiAgKi8NCitzdGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyBpdTE2X29w c1tdID0gew0KKyNkZWZpbmUgREVGX1JWVl9JMTZfT1BTKFRZUEUsIFJFUVVJ UkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LA0KKyNkZWZpbmUg REVGX1JWVl9VMTZfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8j I1RZUEUsIFJFUVVJUkV9LA0KKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVp bHRpbnMtdHlwZXMuZGVmIg0KKyAge05VTV9WRUNUT1JfVFlQRVMsIDB9fTsN CisNCisvKiBBIGxpc3Qgb2YgYWxsIGludGVnZXIgd2lsbCBiZSByZWdpc3Rl cmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8NCitzdGF0aWMgY29u c3QgcnZ2X3R5cGVfaW5mbyBpdTMyX29wc1tdID0gew0KKyNkZWZpbmUgREVG X1JWVl9JMzJfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZ UEUsIFJFUVVJUkV9LA0KKyNkZWZpbmUgREVGX1JWVl9VMzJfT1BTKFRZUEUs IFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LA0KKyNp bmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIg0KKyAg e05VTV9WRUNUT1JfVFlQRVMsIDB9fTsNCisNCi8qIEEgbGlzdCBvZiBhbGwg dHlwZXMgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rp b25zLiAgKi8NCnN0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIGFsbF9vcHNb XSA9IHsNCiNkZWZpbmUgREVGX1JWVl9JX09QUyhUWVBFLCBSRVFVSVJFKSB7 VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwNCkBAIC05MzQsNiArOTkx LDMyIEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2lu Zm8gZXh0X3ZjcmVhdGVfYXJnc1tdDQogICA9IHtydnZfYXJnX3R5cGVfaW5m byAoUlZWX0JBU0VfdmVjdG9yKSwNCiAgICAgIHJ2dl9hcmdfdHlwZV9pbmZv X2VuZH07DQorLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZlY3Rvcl90eXBlIGZ1 bmMgKGNvbnN0IHNjYWxhcl90eXBlICosIHNpemVfdCkNCisgKiBmdW5jdGlv bi4gICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVf aW5mbyBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJnc1tdDQorICA9IHtydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX2NvbnN0X3B0ciksDQor ICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2l6ZSksIHJ2dl9h cmdfdHlwZV9pbmZvX2VuZH07DQorDQorLyogQSBsaXN0IG9mIGFyZ3MgZm9y IHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosIGVldzhf aW5kZXhfdHlwZSkNCisgKiBmdW5jdGlvbi4gICovDQorc3RhdGljIENPTlNU RVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfY29uc3RfcHRy X2luZGV4X2FyZ3NbXQ0KKyAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9C QVNFX3NjYWxhcl9jb25zdF9wdHIpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2lu Zm8gKFJWVl9CQVNFX3Vuc2lnbmVkX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9p bmZvX2VuZH07DQorDQorLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVu YyAoc2NhbGFyX3R5cGUgKiwgZWV3OF9pbmRleF90eXBlLCB2ZWN0b3JfdHlw ZSkNCisgKiBmdW5jdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfcHRyX2luZGV4X2FyZ3NbXQ0K KyAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9wdHIp LA0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Vuc2lnbmVk X3ZlY3RvciksDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf dmVjdG9yKSwgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsNCisNCisvKiBBIGxp c3Qgb2YgYXJncyBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXpl X3QsIHZlY3Rvcl90eXBlKQ0KKyAqIGZ1bmN0aW9uLiAgKi8NCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9wdHJf c2l6ZV9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFT RV9zY2FsYXJfcHRyKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZf QkFTRV9zaXplKSwgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rv ciksDQorICAgICBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKw0KLyogQSBs aXN0IG9mIG5vbmUgcHJlZHMgdGhhdCB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9y IGludHJpbnNpYyBmdW5jdGlvbnMuICAqLw0Kc3RhdGljIENPTlNURVhQUiBj b25zdCBwcmVkaWNhdGlvbl90eXBlX2luZGV4IG5vbmVfcHJlZHNbXQ0KICAg PSB7UFJFRF9UWVBFX25vbmUsIE5VTV9QUkVEX1RZUEVTfTsNCkBAIC0xNDU1 LDYgKzE1MzgsMTQgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3Bf aW5mbyBpdV9zaGlmdF92dnZfb3BzDQogICAgICBydnZfYXJnX3R5cGVfaW5m byAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCiAgICAg IHNoaWZ0X3Z2X2FyZ3MgLyogQXJncyAqL307DQorLyogQSBzdGF0aWMgb3Bl cmFuZCBpbmZvcm1hdGlvbiBmb3Igc2NhbGFyX3R5cGUgZnVuYyAodmVjdG9y X3R5cGUsIHNpemVfdCkNCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICov DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdV94X3Nf dV9vcHMNCisgID0ge2l1X29wcywgICAgICAgICAgLyogVHlwZXMgKi8NCisg ICAgIE9QX1RZUEVfdngsICAgICAgICAvKiBTdWZmaXggKi8NCisgICAgIHJ2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXIpLCAvKiBSZXR1cm4g dHlwZSAqLw0KKyAgICAgdl9zaXplX2FyZ3MgLyogQXJncyAqL307DQorDQov KiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlw ZSBmdW5jICh2ZWN0b3JfdHlwZSwgc2l6ZV90KQ0KICAqIGZ1bmN0aW9uIHJl Z2lzdHJhdGlvbi4gKi8NCnN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29w X2luZm8gaXVfc2hpZnRfdnZ4X29wcw0KQEAgLTI2MzgsNiArMjcyOSwyMjIg QEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl92 Y3JlYXRlX2xtdWw0X3gyX29wcw0KICAgICAgcnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3ZsbXVsX2V4dF94MiksIC8qIFJldHVybiB0eXBlICovDQog ICAgICBleHRfdmNyZWF0ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKy8qIEEgc3Rh dGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMg KGNvbnN0IHNjYWxhcl90eXBlICopDQorICogZnVuY3Rpb24gcmVnaXN0cmF0 aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IGk4X3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMNCisgID0ge2k4X29wcywgICAv KiBUeXBlcyAgKi8NCisgICAgIE9QX1RZUEVfdiwgICAvKiBTdWZmaXggICov DQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwg LyogUmV0dXJuIHR5cGUgICovDQorICAgICBzY2FsYXJfY29uc3RfcHRyX2Fy Z3MgLyogQXJncyAgKi99Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5m b3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90 eXBlICopDQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkxNl92X3NjYWxhcl9j b25zdF9wdHJfb3BzDQorICA9IHtpMTZfb3BzLCAgIC8qIFR5cGVzICAqLw0K KyAgICAgT1BfVFlQRV92LCAgIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlw ZSAgKi8NCisgICAgIHNjYWxhcl9jb25zdF9wdHJfYXJncyAvKiBBcmdzICov fTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqKQ0KKyAqIGZ1 bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBj b25zdCBydnZfb3BfaW5mbyBpMzJfdl9zY2FsYXJfY29uc3RfcHRyX29wcw0K KyAgPSB7aTMyX29wcywgICAvKiBUeXBlcyAgKi8NCisgICAgIE9QX1RZUEVf diwgICAvKiBTdWZmaXggICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgICovDQorICAgICBz Y2FsYXJfY29uc3RfcHRyX2FyZ3MgLyogQXJncyAqL307DQorDQorLyogQSBz dGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVu YyAoY29uc3Qgc2NhbGFyX3R5cGUgKikNCisgKiBmdW5jdGlvbiByZWdpc3Ry YXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2lu Zm8gdThfdl9zY2FsYXJfY29uc3RfcHRyX29wcw0KKyAgPSB7dThfb3BzLCAg IC8qIFR5cGVzICAqLw0KKyAgICAgT1BfVFlQRV92LCAgIC8qIFN1ZmZpeCAg Ki8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3Ip LCAvKiBSZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxhcl9jb25zdF9wdHJf YXJncyAvKiBBcmdzICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGlu Zm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJf dHlwZSAqKQ0KKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQorc3Rh dGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1MTZfdl9zY2FsYXJf Y29uc3RfcHRyX29wcw0KKyAgPSB7dTE2X29wcywgICAvKiBUeXBlcyAgKi8N CisgICAgIE9QX1RZUEVfdiwgICAvKiBTdWZmaXggICovDQorICAgICBydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5 cGUgICovDQorICAgICBzY2FsYXJfY29uc3RfcHRyX2FyZ3MgLyogQXJncyAq L307DQorDQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Ig dmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKikNCisgKiBm dW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X29wX2luZm8gdTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMN CisgID0ge3UzMl9vcHMsICAgLyogVHlwZXMgICovDQorICAgICBPUF9UWVBF X3YsICAgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICAqLw0KKyAgICAg c2NhbGFyX2NvbnN0X3B0cl9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEg c3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1 bmMgKGNvbnN0IHNjYWxhcl90eXBlICosDQorICogc2l6ZV90KSBmdW5jdGlv biByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg cnZ2X29wX2luZm8gaThfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzDQor ICA9IHtpOF9vcHMsICAgLyogVHlwZXMgICovDQorICAgICBPUF9UWVBFX3Ys ICAgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICAqLw0KKyAgICAgc2Nh bGFyX2NvbnN0X3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307DQorDQorLyog QSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUg ZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwNCisgKiBzaXplX3QpIGZ1bmN0 aW9uIHJlZ2lzdHJhdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfb3BfaW5mbyBpMTZfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3Bz DQorICA9IHtpMTZfb3BzLCAgIC8qIFR5cGVzICAqLw0KKyAgICAgT1BfVFlQ RV92LCAgIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZv IChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAgKi8NCisgICAg IHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0K Ky8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90 eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosDQorICogc2l6ZV90KSBm dW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X29wX2luZm8gaTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXpl X29wcw0KKyAgPSB7aTMyX29wcywgICAvKiBUeXBlcyAgKi8NCisgICAgIE9Q X1RZUEVfdiwgICAvKiBTdWZmaXggICovDQorICAgICBydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgICovDQor ICAgICBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsN CisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0 b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLA0KKyAqIHNpemVf dCkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHU4X3Zfc2NhbGFyX2NvbnN0X3B0cl9z aXplX29wcw0KKyAgPSB7dThfb3BzLCAgIC8qIFR5cGVzICAqLw0KKyAgICAg T1BfVFlQRV92LCAgIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2dl9hcmdfdHlw ZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAgKi8N CisgICAgIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99 Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZl Y3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosDQorICogc2l6 ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdTE2X3Zfc2NhbGFyX2NvbnN0X3B0 cl9zaXplX29wcw0KKyAgPSB7dTE2X29wcywgICAvKiBUeXBlcyAgKi8NCisg ICAgIE9QX1RZUEVfdiwgICAvKiBTdWZmaXggICovDQorICAgICBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUg ICovDQorICAgICBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdz ICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZv ciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLA0KKyAq IHNpemVfdCkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHUzMl92X3NjYWxhcl9jb25z dF9wdHJfc2l6ZV9vcHMNCisgID0ge3UzMl9vcHMsICAgLyogVHlwZXMgICov DQorICAgICBPUF9UWVBFX3YsICAgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0 eXBlICAqLw0KKyAgICAgc2NhbGFyX2NvbnN0X3B0cl9zaXplX2FyZ3MgLyog QXJncyAqL307DQorDQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlv biBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwN CisgKiBlZXc4X2luZGV4X3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4g ICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpOF92 X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzDQorICA9IHtpOF9vcHMsICAg LyogVHlwZXMgICovDQorICAgICBPUF9UWVBFX3YsICAgLyogU3VmZml4ICAq Lw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rvciks IC8qIFJldHVybiB0eXBlICAqLw0KKyAgICAgc2NhbGFyX2NvbnN0X3B0cl9p bmRleF9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJh bmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNj YWxhcl90eXBlICosDQorICogZWV3OF9pbmRleF90eXBlKSBmdW5jdGlvbiBy ZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gdThfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcw0KKyAg PSB7dThfb3BzLCAgIC8qIFR5cGVzICAqLw0KKyAgICAgT1BfVFlQRV92LCAg IC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZf QkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxh cl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsNCisNCisvKiBB IHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBm dW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLA0KKyAqIGVldzhfaW5kZXhfdHlw ZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkxNl92X3NjYWxhcl9jb25zdF9wdHJf aW5kZXhfb3BzDQorICA9IHtpMTZfb3BzLCAgIC8qIFR5cGVzICAqLw0KKyAg ICAgT1BfVFlQRV92LCAgIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2dl9hcmdf dHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAg Ki8NCisgICAgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdz ICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZv ciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLA0KKyAq IGVldzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8N CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHUxNl92X3Nj YWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzDQorICA9IHt1MTZfb3BzLCAgIC8q IFR5cGVzICAqLw0KKyAgICAgT1BfVFlQRV92LCAgIC8qIFN1ZmZpeCAgKi8N CisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAv KiBSZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxhcl9jb25zdF9wdHJfaW5k ZXhfYXJncyAvKiBBcmdzICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5k IGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2Fs YXJfdHlwZSAqLA0KKyAqIGVldzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVn aXN0cmF0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9v cF9pbmZvIGkzMl92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzDQorICA9 IHtpMzJfb3BzLCAgIC8qIFR5cGVzICAqLw0KKyAgICAgT1BfVFlQRV92LCAg IC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZf QkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxh cl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsNCisNCisvKiBB IHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBm dW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLA0KKyAqIGVldzhfaW5kZXhfdHlw ZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHUzMl92X3NjYWxhcl9jb25zdF9wdHJf aW5kZXhfb3BzDQorICA9IHt1MzJfb3BzLCAgIC8qIFR5cGVzICAqLw0KKyAg ICAgT1BfVFlQRV92LCAgIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2dl9hcmdf dHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAg Ki8NCisgICAgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdz ICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZv ciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzhfaW5kZXhfdHlwZSwN CisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8N CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1OF92X3Nj YWxhcl9wdHJfaW5kZXhfb3BzDQorICA9IHtpdThfb3BzLCAvKiBUeXBlcyAg Ki8NCisgICAgIE9QX1RZUEVfdiwgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlw ZSAgKi8NCisgICAgIHNjYWxhcl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICov fTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzE2X2luZGV4X3R5cGUsDQor ICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdTE2X3Zfc2Nh bGFyX3B0cl9pbmRleF9vcHMNCisgID0ge2l1MTZfb3BzLCAvKiBUeXBlcyAg Ki8NCisgICAgIE9QX1RZUEVfdiwgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlw ZSAgKi8NCisgICAgIHNjYWxhcl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICov fTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzMyX2luZGV4X3R5cGUsDQor ICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdTMyX3Zfc2Nh bGFyX3B0cl9pbmRleF9vcHMNCisgID0ge2l1MzJfb3BzLCAvKiBUeXBlcyAg Ki8NCisgICAgIE9QX1RZUEVfdiwgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlw ZSAgKi8NCisgICAgIHNjYWxhcl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICov fTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIHZlY3Rvcl90eXBlLA0KKyAqIGZ1 bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBj b25zdCBydnZfb3BfaW5mbyBpdThfdl9zY2FsYXJfcHRyX29wcw0KKyAgPSB7 aXU4X29wcywgLyogVHlwZXMgICovDQorICAgICBPUF9UWVBFX3YsIC8qIFN1 ZmZpeCAgKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92 b2lkKSwgLyogUmV0dXJuIHR5cGUgICovDQorICAgICBzY2FsYXJfcHRyX2Fy Z3MgLyogQXJncyAqL307DQorDQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZv cm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCB2ZWN0b3Jf dHlwZSkNCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXUxNl92X3NjYWxhcl9w dHJfb3BzDQorICA9IHtpdTE2X29wcywgLyogVHlwZXMgICovDQorICAgICBP UF9UWVBFX3YsIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5cGUgICovDQorICAg ICBzY2FsYXJfcHRyX2FyZ3MgLyogQXJncyAqL307DQorDQorLyogQSBzdGF0 aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJf dHlwZSAqLCB2ZWN0b3JfdHlwZSkNCisgKiBmdW5jdGlvbiByZWdpc3RyYXRp b24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8g aXUzMl92X3NjYWxhcl9wdHJfb3BzDQorICA9IHtpdTMyX29wcywgLyogVHlw ZXMgICovDQorICAgICBPUF9UWVBFX3YsIC8qIFN1ZmZpeCAgKi8NCisgICAg IHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJu IHR5cGUgICovDQorICAgICBzY2FsYXJfcHRyX2FyZ3MgLyogQXJncyAqL307 DQorDQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9p ZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3QsDQorICogdmVjdG9yX3R5 cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQorc3RhdGljIENPTlNU RVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdThfdl9zY2FsYXJfcHRyX3NpemVf b3BzDQorICA9IHtpdThfb3BzLCAvKiBUeXBlcyAgKi8NCisgICAgIE9QX1RZ UEVfdiwgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZSAgKi8NCisgICAgIHNj YWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEgc3Rh dGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFy X3R5cGUgKiwgc2l6ZV90LA0KKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiBy ZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gaXUxNl92X3NjYWxhcl9wdHJfc2l6ZV9vcHMNCisgID0ge2l1 MTZfb3BzLCAvKiBUeXBlcyAgKi8NCisgICAgIE9QX1RZUEVfdiwgLyogU3Vm Zml4ICAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Zv aWQpLCAvKiBSZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxhcl9wdHJfc2l6 ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgc2l6 ZV90LA0KKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24u ICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXUz Ml92X3NjYWxhcl9wdHJfc2l6ZV9vcHMNCisgID0ge2l1MzJfb3BzLCAvKiBU eXBlcyAgKi8NCisgICAgIE9QX1RZUEVfdiwgLyogU3VmZml4ICAqLw0KKyAg ICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1 cm4gdHlwZSAgKi8NCisgICAgIHNjYWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFy Z3MgKi99Ow0KKw0KLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBm b3IgdmVjdG9yX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUpLg0KICAgIFNvbWUg aW5zIGp1c3Qgc3VwcG9ydHMgU0VXPTMyLCBzdWNoIGFzIGNyeXB0byB2ZWN0 b2wgWnZrZyBleHRlbnNpb24uDQogICogZnVuY3Rpb24gcmVnaXN0cmF0aW9u LiAgKi8NCkBAIC0yODE2LDYgKzMxMjMsMTAgQEAgc3RhdGljIGZ1bmN0aW9u X2dyb3VwX2luZm8gZnVuY3Rpb25fZ3JvdXBzW10gPSB7DQojZGVmaW5lIERF Rl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURTLCBPUFNfSU5GTykg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgeyNOQU1FLCAmYmFzZXM6 Ok5BTUUsICZzaGFwZXM6OlNIQVBFLCBQUkVEUywgT1BTX0lORk8sIFJFUVVJ UkVEX0VYVEVOU0lPTlN9LA0KI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWls dGlucy1mdW5jdGlvbnMuZGVmIg0KKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9O DQorI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVE UywgT1BTX0lORk8pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIHsj TkFNRSwgJmJhc2VzOjpOQU1FLCAmc2hhcGVzOjpTSEFQRSwgUFJFRFMsIE9Q U19JTkZPLCBSRVFVSVJFRF9FWFRFTlNJT05TfSwNCisjaW5jbHVkZSAidGhl YWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYiDQp9Ow0KLyogVGhl IFJWViB0eXBlcywgd2l0aCB0aGVpciBidWlsdC1pbg0KZGlmZiAtLWdpdCBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQppbmRl eCA1NGM4ODI0ZmY5Mi4uYThlZTM5YTNjYjIgMTAwNjQ0DQotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQorKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQpAQCAt MTE0LDYgKzExNCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgQ1Bf V1JJVEVfQ1NSID0gMVUgPDwgNTsNCmVudW0gcmVxdWlyZWRfZXh0DQp7DQog ICBWRUNUT1JfRVhULCAgIC8qIFZlY3RvciBleHRlbnNpb24gKi8NCisgIFhU SEVBRFZFQ1RPUl9FWFQsICAgLyogWFRoZWFkVmVjdG9yIGV4dGVuc2lvbiAq Lw0KICAgWlZCQl9FWFQsICAgIC8qIENyeXRvIHZlY3RvciBadmJiIHN1Yi1l eHQgKi8NCiAgIFpWQkJfT1JfWlZLQl9FWFQsIC8qIENyeXRvIHZlY3RvciBa dmJiIG9yIHp2a2Igc3ViLWV4dCAqLw0KICAgWlZCQ19FWFQsICAgIC8qIENy eXB0byB2ZWN0b3IgWnZiYyBzdWItZXh0ICovDQpAQCAtMjM0LDYgKzIzNSw4 IEBAIHN0cnVjdCBmdW5jdGlvbl9ncm91cF9pbmZvDQogICAgIHsNCiAgICAg ICBjYXNlIFZFQ1RPUl9FWFQ6DQogICAgICAgICByZXR1cm4gVEFSR0VUX1ZF Q1RPUjsNCisgICAgICBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6DQorIHJldHVy biBUQVJHRVRfWFRIRUFEVkVDVE9SOw0KICAgICAgIGNhc2UgWlZCQl9FWFQ6 DQogICAgICAgICByZXR1cm4gVEFSR0VUX1pWQkI7DQogICAgICAgY2FzZSBa VkJCX09SX1pWS0JfRVhUOg0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlz Y3YvdC1yaXNjdiBiL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdg0KaW5kZXgg MzJkZTZiODUxYzEuLjM4NDk0MzIwZDhiIDEwMDY0NA0KLS0tIGEvZ2NjL2Nv bmZpZy9yaXNjdi90LXJpc2N2DQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Qt cmlzY3YNCkBAIC0xLDYgKzEsNyBAQA0KUklTQ1ZfQlVJTFRJTlNfSCA9ICQo c3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgg XA0KICAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMuZGVmIFwNCiAgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXA0KKyAgICAgICAkKHNy Y2RpcikvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5j dGlvbnMuZGVmIFwNCiAgIHJpc2N2LXZlY3Rvci10eXBlLWluZGV4ZXIuZ2Vu LmRlZg0KcmlzY3YtYnVpbHRpbnMubzogJChzcmNkaXIpL2NvbmZpZy9yaXNj di9yaXNjdi1idWlsdGlucy5jYyAkKENPTkZJR19IKSBcDQpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVu Y3Rpb25zLmRlZiBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1 aWx0aW5zLWZ1bmN0aW9ucy5kZWYNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uNjY3ODIwZDRjM2UNCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5z LWZ1bmN0aW9ucy5kZWYNCkBAIC0wLDAgKzEsMzkgQEANCisjaWZuZGVmIERF Rl9SVlZfRlVOQ1RJT04NCisjZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFN RSwgU0hBUEUsIFBSRURTLCBPUFNfSU5GTykNCisjZW5kaWYNCisNCisjZGVm aW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWFRIRUFEVkVDVE9SX0VYVA0KK0RF Rl9SVlZfRlVOQ1RJT04gKHRoX3ZsYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBpOF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9S VlZfRlVOQ1RJT04gKHRoX3ZsaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCBpMTZfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh0aF92bHcsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9w cmVkcywgaTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodGhfdmxidSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3By ZWRzLCB1OF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVO Q1RJT04gKHRoX3ZsaHUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgdTE2X3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodGhfdmx3dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRz LCB1MzJfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh0aF92c2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRz LCBpdThfdl9zY2FsYXJfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh0 aF92c2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBpdTE2 X3Zfc2NhbGFyX3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodGhfdnN3 LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgaXUzMl92X3Nj YWxhcl9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zsc2IsIHRo X2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaThfdl9zY2FsYXJfY29u c3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zsc2gs IHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaTE2X3Zfc2NhbGFy X2NvbnN0X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh0aF92 bHN3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGkzMl92X3Nj YWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dGhfdmxzYnUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgdThf dl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJ T04gKHRoX3Zsc2h1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMs IHUxNl92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodGhfdmxzd3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9w cmVkcywgdTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh0aF92c3NiLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5v bmVfbV9wcmVkcywgaXU4X3Zfc2NhbGFyX3B0cl9zaXplX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh0aF92c3NoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5v bmVfbV9wcmVkcywgaXUxNl92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQorREVG X1JWVl9GVU5DVElPTiAodGhfdnNzdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBu b25lX21fcHJlZHMsIGl1MzJfdl9zY2FsYXJfcHRyX3NpemVfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHRoX3ZseGIsIHRoX2luZGV4ZWRfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCBpOF92X3NjYWxhcl9jb25zdF9wdHJfaW5k ZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZseGgsIHRoX2luZGV4 ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpMTZfdl9zY2FsYXJf Y29uc3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh0aF92 bHh3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywg aTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodGhfdmx4YnUsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCB1OF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3Bz KQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZseGh1LCB0aF9pbmRleGVkX2xv YWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgdTE2X3Zfc2NhbGFyX2NvbnN0 X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx4d3Us IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1MzJf dl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh0aF92c3hiLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9u ZV9tX3ByZWRzLCBpdThfdl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh0aF92c3hoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aCwgbm9uZV9tX3ByZWRzLCBpdTE2X3Zfc2NhbGFyX3B0cl9pbmRleF9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodGhfdnN4dywgdGhfaW5kZXhlZF9s b2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgaXUzMl92X3NjYWxhcl9w dHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzdXhiLCB0 aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBpdThf dl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh0 aF92c3V4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9w cmVkcywgaXUxNl92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHRoX3ZzdXh3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgbm9uZV9tX3ByZWRzLCBpdTMyX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodGhfdmV4dF94X3YsIHRoX2V4dHJhY3Qs IG5vbmVfcHJlZHMsIGl1X3hfc191X29wcykNCisjdW5kZWYgUkVRVUlSRURf RVhURU5TSU9OUw0KKw0KKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9ODQpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQgYi9n Y2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZA0KaW5kZXggNjk2Yjgx NTI1MmQuLjBmMzcwMGQ5MjY5IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9y aXNjdi90aGVhZC12ZWN0b3IubWQNCisrKyBiL2djYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLm1kDQpAQCAtMSw3ICsxLDk1IEBADQooZGVmaW5lX2Nf ZW51bSAidW5zcGVjIiBbDQorICBVTlNQRUNfVEhfVkxCDQorICBVTlNQRUNf VEhfVkxCVQ0KKyAgVU5TUEVDX1RIX1ZMSA0KKyAgVU5TUEVDX1RIX1ZMSFUN CisgIFVOU1BFQ19USF9WTFcNCisgIFVOU1BFQ19USF9WTFdVDQorDQorICBV TlNQRUNfVEhfVkxTQg0KKyAgVU5TUEVDX1RIX1ZMU0JVDQorICBVTlNQRUNf VEhfVkxTSA0KKyAgVU5TUEVDX1RIX1ZMU0hVDQorICBVTlNQRUNfVEhfVkxT Vw0KKyAgVU5TUEVDX1RIX1ZMU1dVDQorDQorICBVTlNQRUNfVEhfVkxYQg0K KyAgVU5TUEVDX1RIX1ZMWEJVDQorICBVTlNQRUNfVEhfVkxYSA0KKyAgVU5T UEVDX1RIX1ZMWEhVDQorICBVTlNQRUNfVEhfVkxYVw0KKyAgVU5TUEVDX1RI X1ZMWFdVDQorDQorICBVTlNQRUNfVEhfVlNVWEINCisgIFVOU1BFQ19USF9W U1VYSA0KKyAgVU5TUEVDX1RIX1ZTVVhXDQorDQogICBVTlNQRUNfVEhfVldM RFNUDQpdKQ0KKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTE1F TV9PUCBbDQorICBVTlNQRUNfVEhfVkxCIFVOU1BFQ19USF9WTEJVDQorICBV TlNQRUNfVEhfVkxIIFVOU1BFQ19USF9WTEhVDQorICBVTlNQRUNfVEhfVkxX IFVOU1BFQ19USF9WTFdVDQorXSkNCisNCisoZGVmaW5lX2ludF9pdGVyYXRv ciBVTlNQRUNfVEhfVkxTTUVNX09QIFsNCisgIFVOU1BFQ19USF9WTFNCIFVO U1BFQ19USF9WTFNCVQ0KKyAgVU5TUEVDX1RIX1ZMU0ggVU5TUEVDX1RIX1ZM U0hVDQorICBVTlNQRUNfVEhfVkxTVyBVTlNQRUNfVEhfVkxTV1UNCitdKQ0K Kw0KKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFhNRU1fT1Ag Ww0KKyAgVU5TUEVDX1RIX1ZMWEIgVU5TUEVDX1RIX1ZMWEJVDQorICBVTlNQ RUNfVEhfVkxYSCBVTlNQRUNfVEhfVkxYSFUNCisgIFVOU1BFQ19USF9WTFhX IFVOU1BFQ19USF9WTFhXVQ0KK10pDQorDQorKGRlZmluZV9pbnRfYXR0ciB2 bG1lbV9vcF9hdHRyIFsNCisgIChVTlNQRUNfVEhfVkxCICJiIikgKFVOU1BF Q19USF9WTEJVICJidSIpDQorICAoVU5TUEVDX1RIX1ZMSCAiaCIpIChVTlNQ RUNfVEhfVkxIVSAiaHUiKQ0KKyAgKFVOU1BFQ19USF9WTFcgInciKSAoVU5T UEVDX1RIX1ZMV1UgInd1IikNCisgIChVTlNQRUNfVEhfVkxTQiAiYiIpIChV TlNQRUNfVEhfVkxTQlUgImJ1IikNCisgIChVTlNQRUNfVEhfVkxTSCAiaCIp IChVTlNQRUNfVEhfVkxTSFUgImh1IikNCisgIChVTlNQRUNfVEhfVkxTVyAi dyIpIChVTlNQRUNfVEhfVkxTV1UgInd1IikNCisgIChVTlNQRUNfVEhfVkxY QiAiYiIpIChVTlNQRUNfVEhfVkxYQlUgImJ1IikNCisgIChVTlNQRUNfVEhf VkxYSCAiaCIpIChVTlNQRUNfVEhfVkxYSFUgImh1IikNCisgIChVTlNQRUNf VEhfVkxYVyAidyIpIChVTlNQRUNfVEhfVkxYV1UgInd1IikNCisgIChVTlNQ RUNfVEhfVlNVWEIgImIiKQ0KKyAgKFVOU1BFQ19USF9WU1VYSCAiaCIpDQor ICAoVU5TUEVDX1RIX1ZTVVhXICJ3IikNCitdKQ0KKw0KKyhkZWZpbmVfaW50 X2F0dHIgdmxtZW1fb3JkZXJfYXR0ciBbDQorICAoVU5TUEVDX1RIX1ZMWEIg IiIpDQorICAoVU5TUEVDX1RIX1ZMWEggIiIpDQorICAoVU5TUEVDX1RIX1ZM WFcgIiIpDQorICAoVU5TUEVDX1RIX1ZTVVhCICJ1IikNCisgIChVTlNQRUNf VEhfVlNVWEggInUiKQ0KKyAgKFVOU1BFQ19USF9WU1VYVyAidSIpDQorXSkN CisNCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNNRU1fT1Ag Ww0KKyAgVU5TUEVDX1RIX1ZMQg0KKyAgVU5TUEVDX1RIX1ZMSA0KKyAgVU5T UEVDX1RIX1ZMVw0KK10pDQorDQorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5T UEVDX1RIX1ZTU01FTV9PUCBbDQorICBVTlNQRUNfVEhfVkxTQg0KKyAgVU5T UEVDX1RIX1ZMU0gNCisgIFVOU1BFQ19USF9WTFNXDQorXSkNCisNCisoZGVm aW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNYTUVNX09QIFsNCisgIFVO U1BFQ19USF9WTFhCDQorICBVTlNQRUNfVEhfVkxYSA0KKyAgVU5TUEVDX1RI X1ZMWFcNCisgIFVOU1BFQ19USF9WU1VYQg0KKyAgVU5TUEVDX1RIX1ZTVVhI DQorICBVTlNQRUNfVEhfVlNVWFcNCitdKQ0KKw0KKGRlZmluZV9tb2RlX2l0 ZXJhdG9yIFZfVkxTX1ZUIFtWIFZMUyBWVF0pDQooZGVmaW5lX21vZGVfaXRl cmF0b3IgVl9WQl9WTFNfVlQgW1YgVkIgVkxTIFZUXSkNCkBAIC0xMDAsMyAr MTg4LDE2OCBAQA0KICAgfQ0KICAgWyhzZXRfYXR0ciAidHlwZSIgInZsZG0s dnN0bSx2bWFsdSx2bWFsdSx2bWFsdSIpDQogICAgKHNldF9hdHRyICJtb2Rl IiAiPE1PREU+IildKQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJAcHJlZF9tb3Zf d2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWX1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpDQorICAg IChpZl90aGVuX2Vsc2U6Vl9WTFMNCisgICAgICAodW5zcGVjOjxWTT4NCisg WyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIp DQorIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIp DQorIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIikNCisg KG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiKQ0KKyAobWF0 Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIpDQorIChyZWc6U0kg VkxfUkVHTlVNKQ0KKyAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19U SF9WTE1FTV9PUCkNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJ2 ZWN0b3JfbW92ZV9vcGVyYW5kIikNCisgICAgICAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIpKSldDQorICAiVEFSR0VU X1hUSEVBRFZFQ1RPUiINCisgIHt9KQ0KKw0KKyhkZWZpbmVfaW5zbl9hbmRf c3BsaXQgIipwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIN CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAgICAgIj12ciwgICAgdnIsICAgIHZkLCAgICAgbSwgICAg dnIsICAgIHZyIikNCisgICAgKGlmX3RoZW5fZWxzZTpWX1ZMUw0KKyAgICAg ICh1bnNwZWM6PFZNPg0KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0 b3JfbWFza19vcGVyYW5kIiAgICAidm1XYzEsICAgV2MxLCAgICB2bSwgdm1X YzEsICAgV2MxLCAgIFdjMSIpDQorIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rv cl9sZW5ndGhfb3BlcmFuZCIgICAgICAgIiAgIHJLLCAgICBySywgICAgckss ICAgIHJLLCAgICBySywgICAgcksiKQ0KKyAobWF0Y2hfb3BlcmFuZCA1ICJj b25zdF9pbnRfb3BlcmFuZCIgICAiICAgIGksICAgICBpLCAgICAgaSwgICAg IGksICAgICBpLCAgICAgaSIpDQorIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0 X2ludF9vcGVyYW5kIiAgICIgICAgaSwgICAgIGksICAgICBpLCAgICAgaSwg ICAgIGksICAgICBpIikNCisgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50 X29wZXJhbmQiICAgIiAgICBpLCAgICAgaSwgICAgIGksICAgICBpLCAgICAg aSwgICAgIGkiKQ0KKyAocmVnOlNJIFZMX1JFR05VTSkNCisgKHJlZzpTSSBW VFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApDQorICAgICAgKG1h dGNoX29wZXJhbmQ6Vl9WTFMgMyAicmVnX29yX21lbV9vcGVyYW5kIiAgICAg ICAiICAgIG0sICAgICBtLCAgICAgbSwgICAgdnIsICAgIHZyLCAgICB2ciIp DQorICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMiAidmVjdG9yX21lcmdl X29wZXJhbmQiICAgICAiICAgIDAsICAgIHZ1LCAgICB2dSwgICAgdnUsICAg IHZ1LCAgICAgMCIpKSldDQorICAiKFRBUkdFVF9YVEhFQURWRUNUT1INCisg ICAgJiYgKHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5t b2RlKQ0KKyB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1P REU+bW9kZSkpKSINCisgICJADQorICAgdmw8dmxtZW1fb3BfYXR0cj4udlx0 JTAsJTMlcDENCisgICB2bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMw0KKyAg IHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzLCUxLnQNCisgICB2czx2bG1l bV9vcF9hdHRyPi52XHQlMywlMCVwMQ0KKyAgIHZtdi52LnZcdCUwLCUzDQor ICAgdm12LnYudlx0JTAsJTMiDQorICAiJiYgcmVnaXN0ZXJfb3BlcmFuZCAo b3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpDQorICAgJiYgcmVnaXN0ZXJfb3Bl cmFuZCAob3BlcmFuZHNbM10sIDxNT0RFPm1vZGUpDQorICAgJiYgc2F0aXNm aWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJhbmRzWzJdKQ0KKyAgICYmIElOVFZB TCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxNQVgiDQorICBb KHNldCAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMykpXQ0KKyAgIiINCisg IFsoc2V0X2F0dHIgInR5cGUiICJ2bGRlLHZsZGUsdmxkZSx2c3RlLHZpbW92 LHZpbW92IikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pDQor DQorKGRlZmluZV9pbnNuICJAcHJlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9h dHRyPjxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgIm1l bW9yeV9vcGVyYW5kIiAiK20iKQ0KKyAoaWZfdGhlbl9lbHNlOlZJDQorICAg KHVuc3BlYzo8Vk0+DQorICAgICBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2 ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEiKQ0KKyAgICAgIChtYXRjaF9v cGVyYW5kIDMgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgICAgIiAgIHJLIikN CisgICAgICAobWF0Y2hfb3BlcmFuZCA0ICJjb25zdF9pbnRfb3BlcmFuZCIg IiAgICBpIikNCisgICAgICAocmVnOlNJIFZMX1JFR05VTSkNCisgICAgICAo cmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU01FTV9PUCkNCisg ICAobWF0Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiICAg IHZyIikNCisgICAobWF0Y2hfZHVwIDApKSldDQorICAiVEFSR0VUX1hUSEVB RFZFQ1RPUiINCisgICJ2czx2bG1lbV9vcF9hdHRyPi52XHQlMiwlMCVwMSIN CisgIFsoc2V0X2F0dHIgInR5cGUiICJ2c3RlIikNCisgICAoc2V0X2F0dHIg Im1vZGUiICI8TU9ERT4iKQ0KKyAgIChzZXQgKGF0dHIgImF2bF90eXBlX2lk eCIpIChjb25zdF9pbnQgNCkpDQorICAgKHNldF9hdHRyICJ2bF9vcF9pZHgi ICIzIildKQ0KKw0KKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RyaWRlZF9sb2Fk X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6VkkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgIj12ciwg ICAgdnIsICAgIHZkIikNCisgKGlmX3RoZW5fZWxzZTpWSQ0KKyAgICh1bnNw ZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9y X21hc2tfb3BlcmFuZCIgInZtV2MxLCAgIFdjMSwgICAgdm0iKQ0KKyAgICAg IChtYXRjaF9vcGVyYW5kIDUgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgICAg IiAgIHJLLCAgICBySywgICAgcksiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k IDYgImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGksICAgICBpLCAgICAgaSIp DQorICAgICAgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQi ICIgICAgaSwgICAgIGksICAgICBpIikNCisgICAgICAobWF0Y2hfb3BlcmFu ZCA4ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpLCAgICAgaSwgICAgIGki KQ0KKyAgICAgIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kg VlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMU01FTV9PUCkNCisgICAodW5z cGVjOlZJDQorICAgICBbKG1hdGNoX29wZXJhbmQ6VkkgMyAibWVtb3J5X29w ZXJhbmQiICIgICAgbSwgICAgIG0sICAgICBtIikNCisgICAgICAobWF0Y2hf b3BlcmFuZCA0ICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiAgICIgICBySiwg ICAgckosICAgIHJKIildIFVOU1BFQ19USF9WTFNNRU1fT1ApDQorICAgKG1h dGNoX29wZXJhbmQ6VkkgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiICAgICAg IiAgICAwLCAgICB2dSwgICAgdnUiKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURW RUNUT1IiDQorICAidmxzPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzLCV6NCVw MSINCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGRzIikNCisgICAoc2V0X2F0 dHIgIm1vZGUiICI8TU9ERT4iKV0pDQorDQorKGRlZmluZV9pbnNuICJAcHJl ZF9zdHJpZGVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0K KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJhbmQi ICIrbSIpDQorIChpZl90aGVuX2Vsc2U6VkkNCisgICAodW5zcGVjOjxWTT4N CisgICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29w ZXJhbmQiICJ2bVdjMSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNCAidmVj dG9yX2xlbmd0aF9vcGVyYW5kIiAgICAiICAgcksiKQ0KKyAgICAgIChtYXRj aF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGkiKQ0KKyAg ICAgIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVf UkVHTlVNKV0gVU5TUEVDX1RIX1ZTU01FTV9PUCkNCisgICAodW5zcGVjOlZJ DQorICAgICBbKG1hdGNoX29wZXJhbmQgMiAicG1vZGVfcmVnX29yXzBfb3Bl cmFuZCIgICAiICAgckoiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kOlZJIDMg InJlZ2lzdGVyX29wZXJhbmQiICAgICAgICIgICB2ciIpXSBVTlNQRUNfVEhf VlNTTUVNX09QKQ0KKyAgIChtYXRjaF9kdXAgMCkpKV0NCisgICJUQVJHRVRf WFRIRUFEVkVDVE9SIg0KKyAgInZzczx2bG1lbV9vcF9hdHRyPi52XHQlMywl MCwlejIlcDEiDQorICBbKHNldF9hdHRyICJ0eXBlIiAidnN0cyIpDQorICAg KHNldF9hdHRyICJtb2RlIiAiPE1PREU+IikNCisgICAoc2V0IChhdHRyICJh dmxfdHlwZV9pZHgiKSAoY29uc3RfaW50IDUpKV0pDQorDQorKGRlZmluZV9p bnNuICJAcHJlZF9pbmRleGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48 bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAgICAgICI9dmQsIHZyLHZkLCB2ciIpDQorIChpZl90aGVu X2Vsc2U6VkkNCisgICAodW5zcGVjOjxWTT4NCisgICAgIFsobWF0Y2hfb3Bl cmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiICAiIHZtLFdjMSx2 bSxXYzEiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDUgInZlY3Rvcl9sZW5n dGhfb3BlcmFuZCIgICAgICIgckssIHJLLHJLLCBySyIpDQorICAgICAgKG1h dGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiICIgIGksICBpLCBp LCAgaSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29w ZXJhbmQiICIgIGksICBpLCBpLCAgaSIpDQorICAgICAgKG1hdGNoX29wZXJh bmQgOCAiY29uc3RfaW50X29wZXJhbmQiICIgIGksICBpLCBpLCAgaSIpDQor ICAgICAgKHJlZzpTSSBWTF9SRUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQ RV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxYTUVNX09QKQ0KKyAgICh1bnNwZWM6 VkkNCisgICAgIFsobWF0Y2hfb3BlcmFuZCAzICJwbW9kZV9yZWdfb3JfMF9v cGVyYW5kIiAgICAiIHJKLCBySixySiwgckoiKQ0KKyAgICAgIChtZW06QkxL IChzY3JhdGNoKSkNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWSSA0ICJyZWdp c3Rlcl9vcGVyYW5kIiAiIHZyLCB2cix2ciwgdnIiKV0gVU5TUEVDX1RIX1ZM WE1FTV9PUCkNCisgICAobWF0Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVy Z2Vfb3BlcmFuZCIgICAgICAgIiB2dSwgdnUsIDAsICAwIikpKV0NCisgICJU QVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZseDx2bG1lbV9vcF9hdHRyPi52 XHQlMCwoJXozKSwlNCVwMSINCisgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGR1 eCIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQ0KKw0KKyhk ZWZpbmVfaW5zbiAiQHByZWRfaW5kZXhlZF88dmxtZW1fb3JkZXJfYXR0cj5z dG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0ICht ZW06QkxLIChzY3JhdGNoKSkNCisgKHVuc3BlYzpCTEsNCisgICBbKHVuc3Bl Yzo8Vk0+DQorICAgICBbKG1hdGNoX29wZXJhbmQ6PFZNPiAwICJ2ZWN0b3Jf bWFza19vcGVyYW5kIiAidm1XYzEiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k IDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgICAgIiAgIHJLIikNCisgICAg ICAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBp IikNCisgICAgICAocmVnOlNJIFZMX1JFR05VTSkNCisgICAgICAocmVnOlNJ IFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1hNRU1fT1ApDQorICAgICht YXRjaF9vcGVyYW5kIDEgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICAgICAg IiAgckoiKQ0KKyAgICAobWF0Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9v cGVyYW5kIiAiICB2ciIpDQorICAgIChtYXRjaF9vcGVyYW5kOlZJIDMgInJl Z2lzdGVyX29wZXJhbmQiICAiICB2ciIpXSBVTlNQRUNfVEhfVlNYTUVNX09Q KSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RPUiINCisgICJ2czx2bG1lbV9v cmRlcl9hdHRyPng8dmxtZW1fb3BfYXR0cj4udlx0JTMsKCV6MSksJTIlcDAi DQorICBbKHNldF9hdHRyICJ0eXBlIiAidnN0dXgiKQ0KKyAgIChzZXRfYXR0 ciAibW9kZSIgIjxNT0RFPiIpXSkNCisNCisoZGVmaW5lX2V4cGFuZCAiQHBy ZWRfdGhfZXh0cmFjdDxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAodW5zcGVjOjxWRUw+ DQorICAgWyh2ZWNfc2VsZWN0OjxWRUw+DQorICAgICAgKG1hdGNoX29wZXJh bmQ6Vl9WTFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgICAgIChwYXJh bGxlbCBbKG1hdGNoX29wZXJhbmQ6REkgMiAicmVnaXN0ZXJfb3BlcmFuZCIg InIiKV0pKQ0KKyAgICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19W UFJFRElDQVRFKSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RPUiINCit7fSkN CisNCisoZGVmaW5lX2luc24gIipwcmVkX3RoX2V4dHJhY3Q8bW9kZT4iDQor ICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVy YW5kIiAgICI9ciIpDQorICAodW5zcGVjOjxWRUw+DQorICAgIFsodmVjX3Nl bGVjdDo8VkVMPg0KKyAgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInZyIikNCisgICAgICAgKHBhcmFsbGVsIFso bWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkp DQorICAgICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19WUFJFRElD QVRFKSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RPUiINCisgICJ2ZXh0Lngu dlx0JTAsJTEsJTIiDQorICBbKHNldF9hdHRyICJ0eXBlIiAidmltb3Z2eCIp DQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQ0KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsYi12c2IuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi40ZTE5MmJiZjAyNQ0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jDQpAQCAtMCwwICsxLDY4 IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1P MyIgfSAqLw0KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2Rp ZXMgIioqIiAiIiB9IH0gKi8NCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgi DQorDQorLyoNCisqKiBmMToNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUz MixtMSx0dSxtYQ0KKyoqIHRoLnZsYlwudlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHRoLnZsYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTld Kw0KKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqdlsw LTldKw0KKyoqIHRoLnZzYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHJldA0KKyovDQordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQp DQorew0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kz Mm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3Ro X3ZsYl92X2kzMm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3Qg djMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7DQorICAg IHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfdHUgKHYz LCB2MiwgdjIsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0xIChv dXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0 dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0u dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6 ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiogdGgudmxiLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxz KnZbMC05XSssXHMqdlswLTldKw0KKyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccyp2WzAtOV0rLFxzKnYwLnQNCisqKiB0aC52 c2Iudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQor dm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQpDQorew0KKyAgICB2Ym9v bDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0 aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19y aXNjdl90aF92bGJfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90 IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV9tIChtYXNrLCBpbiwgNCk7 DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEg KHYyLCB2MiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnZfaTMybTFfbSAobWFzaywgdjMsIHYzLCA0KTsNCisgICAgX19yaXNj dl90aF92c2Jfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQor KiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0 LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkN CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQ0KKyoqIHRo LnZsYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsYi52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52 dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsNCisqKiB0aC52YWRk XC52dlx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqdlswLTldKyxccyp2 MC50DQorKiogdGgudnNiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0KQ0K K3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQor ICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQz Mm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsNCisg ICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTFfdHVt dSAobWFzaywgdiwgaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19y aXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOw0KKyAgICB2aW50MzJt MV90IHY0ID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xX3R1bXUgKG1hc2ssIHYz LCB2MiwgdjIsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0xIChv dXQsIHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsYnUtdnNiLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMC4uMTUzOGFmZWM2OGUNCi0tLSAvZGV2L251bGwNCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsYnUtdnNiLmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJn Y3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyogeyBk Zy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAq Lw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCisvKg0KKyoqIGYx Og0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hDQorKiog dGgudmxidVwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZs YnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52YWRkXC52 aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZp XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudnNiXC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYx ICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAg IHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4s IDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxidV92 X3UzMm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0g X19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVp bnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2 MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0 LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgudnNldHZs aVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVy byw0LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsYnUudlx0dlswLTldKywwXChb YS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMq dlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/ LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c2Iudlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMiAo dm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2 Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZv bGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdnVpbnQzMm0xX3QgdiA9 IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50 MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTFfbSAobWFzaywg aW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92 eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0ID0g X19yaXNjdl92YWRkX3Z4X3UzMm0xX20gKG1hc2ssIHYzLCAtMTYsIDQpOw0K KyAgICBfX3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9 DQorDQorLyoNCisqKiBmMzoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSss emVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChb YS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1 LG11DQorKiogdGgudmxidVwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHRoLnZsYnUudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQor KiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisq KiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2 LFxzKnYwLnQNCisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05XStc KQ0KKyoqIHJldA0KKyovDQordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpv dXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoo dmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1v cnkiKTsNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxidV92 X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0gX19yaXNj dl90aF92bGJ1X3ZfdTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOw0KKyAg ICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIs IC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRk X3Z4X3UzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsNCisgICAg X19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmxo LXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94 dGhlYWR2ZWN0b3IvdmxoLXZzaC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAuLmJmNDkyNGExZDc2DQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bGgtdnNoLmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQor LyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIi IH0gfSAqLw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCisvKg0K KyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1h DQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiog dGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFk ZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRk XC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZzaFwu dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9p ZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkNCit7DQor ICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGlu LCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3Zf aTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZpbnQz Mm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHUgKHYzLCB2Miwg LTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2 NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgudnNldHZsaVx0 W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0 LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAt OV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMq dlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzaC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lk ICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGls ZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2 MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfbSAobWFzaywgaW4sIDQpOw0K KyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2 MiwgLTE2LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF9pMzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsNCisgICAgX19yaXNj dl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQor KiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0 LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkN CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQ0KKyoqIHRo LnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsaC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52 aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZp XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoq IHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQor Ki8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4 KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47 DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZp bnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsN CisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFf dHVtdSAobWFzaywgdiwgaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0g X19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdmlu dDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dW11IChtYXNr LCB2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfaTMy bTEgKG91dCwgdjQsIDQpOw0KK30NClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZz aC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LjhjNDUxODQ1MTc1DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZz aC5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0 b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGctZmluYWwgeyBj aGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorLyoNCisqKiBmMToNCisqKiB0aC52 c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZsaHVcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGh1XC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwudmlcdHZbMC05XSss XHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxc cyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZzaFwudlx0dlswLTldKywwXChb YS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMSAodm9pZCAqIGlu LCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2dWludDMybTFf dCB2ID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGluLCA0KTsNCisgICAg dnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dSAo diwgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFk ZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0 ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2MywgdjIsIC0xNiwgNCk7 DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOw0K K30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTld Kyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEs dGEsbWENCisqKiB0aC52bGh1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCks djAudA0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2DQorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0r LFxzKi0xNixccyp2MC50DQorKiogdGgudnNoLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjIgKHZvaWQgKiBpbiwg dm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1h c2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6 OjoibWVtb3J5Iik7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3Ro X3ZsaHVfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9 IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xX20gKG1hc2ssIGluLCA0KTsNCisg ICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYy LCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsNCisgICAgX19yaXNj dl90aF92c2hfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQor KiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0 LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkN CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQ0KKyoqIHRo LnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGh1 LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRc LnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwu dmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50DQor KiogdGgudnNoLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQN CisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJf dCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCop aW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAg IHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4s IDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxodV92 X3UzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisgICAgdnVpbnQzMm0x X3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOw0K KyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90 dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhf dnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9y L3Zsdy12c3cuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi4wZjViMDk2ODRhNQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmx3LXZzdy5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhl YWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCisj aW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorLyoNCisqKiBmMToNCisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZs d1wudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsd1wudlx0 dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZ4XHR2WzAt OV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rDQorKiogdGgudmFkZFwudnhc dHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisqKiB0aC52c3dc LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3Zv aWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQorew0K KyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChp biwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd192 X2kzMm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBf X3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsNCisgICAgdmludDMy bTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dSAodjMsIHYyLCB4 LCA0KTsNCisgICAgX19yaXNjdl90aF92c3dfdl9pMzJtMSAob3V0LCB2NCwg NCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgudnNldHZsaVx0W2Et eDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUz MixtMSx0YSxtYQ0KKyoqIHRoLnZsdy52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpLHYwLnQNCisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAtOV0r LFxzKlthLXgwLTldKw0KKyoqIHRoLnZhZGRcLnZ4XHR2WzEtOV1bMC05XT8s XHMqdlswLTldKyxccypbYS14MC05XSssXHMqdjAudA0KKyoqIHRoLnZzdy52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lk IGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisg ICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFz bSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmlu dDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTFfbSAobWFzaywg aW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4 X2kzMm0xICh2MiwgeCwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnhfaTMybTFfbSAobWFzaywgdjMsIHgsIDQpOw0KKyAgICBf X3Jpc2N2X3RoX3Zzd192X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQor LyoNCisqKiBmMzoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxl OCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQor KiogdGgudmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgu dmx3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZh ZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rDQorKiog dGgudmFkZFwudnhcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKlthLXgw LTldKyxccyp2MC50DQorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9p ZCAqb3V0LCBpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9 ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJt ZW1vcnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHdf dl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNj dl90aF92bHdfdl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7DQorICAg IHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4 LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9p MzJtMV90dW11IChtYXNrLCB2MywgdjIsIHgsIDQpOw0KKyAgICBfX3Jpc2N2 X3RoX3Zzd192X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUNCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3Ivdmx3dS12c3cuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAwMDAwLi5hYWE3NWJlMDIzZA0KLS0tIC9kZXYvbnVsbA0KKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3Ivdmx3dS12c3cuYw0KQEAgLTAsMCArMSw2OCBAQA0KKy8qIHsgZGct ZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYz MmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9 ICovDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KKy8qDQorKiog ZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWENCisq KiB0aC52bHd1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgu dmx3dVwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRc LnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwu dmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52c3dcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQg ZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisg ICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xIChp biwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHd1 X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2 dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dSAodjMs IHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X3UzMm0xIChv dXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0 dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0u dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6 ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiogdGgudmx3dS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxc cyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05 XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzdy52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYy ICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAg IHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20g dm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2 ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVp bnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV9tIChtYXNr LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRk X3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7 DQorICAgIF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOw0K K30NCisNCisvKg0KKyoqIGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTld Kyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEs dHUsbXUNCisqKiB0aC52bHd1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp DQorKiogdGgudmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQN CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0K KyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyot MTYsXHMqdjAudA0KKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQg Km91dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0g Kih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1l bW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHd1 X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3Zsd3Vfdl91MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7DQor ICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2 MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOw0KKyAg ICBfX3Jpc2N2X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCi0tIA0KMi4xNy4xDQogDQog DQo= ------=_001_NextPart031100432163_=------