From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-101.freemail.mail.aliyun.com (out30-101.freemail.mail.aliyun.com [115.124.30.101]) by sourceware.org (Postfix) with ESMTPS id CA13E3858C66 for ; Wed, 10 Jan 2024 11:09:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CA13E3858C66 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CA13E3858C66 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.101 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704884970; cv=none; b=Wd9lxgIEY87C7VmcXBqY5WBegoR59hwEIkUOB5MPiS4XM9aKMf3XxdO7l/xmP+dStY3cFTwG08MqGHNAGTk8m8wX6ZSBHhuiYQ4SSILjtsSTpe1ouzUQErD3jgRlu5Vacbm0rMg6xa3FUU8u+Zj3uj02U+ZybJ1zxQScip8E8y8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704884970; c=relaxed/simple; bh=819ojCAqNQkv0SX8KPTqFpwMwrapUQAsZTq+pbJJWic=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=n5MHdKbk9qwyyOO884LhJUpryHcX7rslLXtvgMkgIQUuGLFySzoSXd8RpN98hTLiaLZxamMJe6WnLJhy5aguAT2t0mMNdBbebzBrGeqUUX87cLpG8AYRSTSi/dk/RbztaWkV7RozfxFu0q/Ek7HwyBQ/LLyqu0nLU1tSslogT/w= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R241e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=cooper.joshua@linux.alibaba.com;NM=1;PH=DW;RN=11;SR=0;TI=W4_0.2.3_v5ForWebDing_2125303E_1704884911640_o7001c779; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_2125303E_1704884911640_o7001c779]) at Wed, 10 Jan 2024 19:08:53 +0800 Date: Wed, 10 Jan 2024 19:08:53 +0800 From: "joshua" To: "joshua" , "juzhe.zhong@rivai.ai" , "gcc-patches" Cc: "Jim Wilson" , "palmer" , "andrew" , "philipp.tomsich" , "jeffreyalaw" , "christoph.muellner" , "jinma" , "cooper.qu" Reply-To: "joshua" Message-ID: Subject: =?UTF-8?B?UmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVj?= =?UTF-8?B?dG9yLXNwZWNpZmljIGludHJpbnNpY3Mu?= X-Mailer: [Alimail-Mailagent revision 79][W4_0.2.3][v5ForWebDing][Unknown] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: <09711c53-1709-4ffd-93c1-9a7bd344c0e1.cooper.joshua@linux.alibaba.com> x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_A1LTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxN18xXzIgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjEuMiBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMQ==vN In-Reply-To: <09711c53-1709-4ffd-93c1-9a7bd344c0e1.cooper.joshua@linux.alibaba.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-19.0 required=5.0 tests=BAYES_00,BODY_8BITS,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL 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: Q2FuIHlvdSBzZWUgdGhlIGltYWdlcyB0aGF0IEkgc2VudCB0byB5b3UgaW4gdGhlIGxhc3QgZW1h aWzvvJ8KSWYgbm90LCBtYXliZSB5b3UgY2FuIHJlZmVyIHRvIHRoZSBsYXN0IGNoYXB0ZXIgaW4g dGhlIHRoZWFkIHNwZWMuCgoKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrvvJpqb3NodWEgPGNvb3Bl ci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTDm l6Uo5pif5pyf5LiJKSAxOTowNgrmlLbku7bkurrvvJoianV6aGUuemhvbmdAcml2YWkuYWkiPGp1 emhlLnpob25nQHJpdmFpLmFpPjsgImdjYy1wYXRjaGVzIjxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9y Zz4K5oqE44CA6YCB77yaSmltIFdpbHNvbjxqaW0ud2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxt ZXI8cGFsbWVyQGRhYmJlbHQuY29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxp cHAudG9tc2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFsYXc8amVmZnJl eWFsYXdAZ21haWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8Y2hyaXN0b3BoLm11ZWxsbmVy QHZydWxsLmV1PjsgamlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxj b29wZXIucXVAbGludXguYWxpYmFiYS5jb20+CuS4u+OAgOmimO+8mlJl77yaUmXvvJpbUEFUQ0gg djVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5z aWNzLgoKClRoZSBrZXkgZGlmZmVyZW5jZSBiZXR3ZWVuIHZsYi92bGgvdmx3IGlzIG5vdCBvdXRw dXQgdHlwZSB0b28uClRoZWlyIGRpZmZlcmVuY2UgaXMgdGhlIHJhbmdlIG9mIGRhdGF0eXBlLCBu b3Qgb25lIHNwZWNpZmljIHR5cGUuIApXZSBoYXZlIGRpdmVkIGludG8gdGhlIHh0aGVhZHZlY3Rv ciBzcGVjaWFsIGludHJpbnNpY3MgYW5kIGFyZQpzdXJlIGFib3V0IHRoYXQuCgoKCgoKCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQrlj5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWku YWk+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTDml6Uo5pif5pyf5LiJKSAxOTowMArmlLbk u7bkurrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47 ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhCDpgIHvvJpKaW0gV2ls c29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+ OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRv bXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hy aXN0b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyBqaW5tYTxqaW5t YUBsaW51eC5hbGliYWJhLmNvbT47ICJjb29wZXIucXUiPGNvb3Blci5xdUBsaW51eC5hbGliYWJh LmNvbT4K5Li7IOmimO+8mlJlOiBSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBm b3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCgoKaW5zdGFuY2Uub3BfaW5mby0+ YXJnc1tpXS5nZXRfdHJlZV90eXBlIChpbnN0YW5jZS50eXBlLmluZGV4KcKgIGlzIG91dHB1dCB0 eXBlLgoKCllvdSBjYW4gdXNlIEdEQiBkZWJ1ZyBpdCAuCgoKanV6aGUuemhvbmdAcml2YWkuYWkK CiAK5Y+R5Lu25Lq677yaIGpvc2h1YQrlj5HpgIHml7bpl7TvvJogMjAyNC0wMS0xMCAxODo1Nwrm lLbku7bkurrvvJoganV6aGUuemhvbmdAcml2YWkuYWk7IGdjYy1wYXRjaGVzCuaKhOmAge+8miBK aW0gV2lsc29uOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNoOyBqZWZmcmV5YWxhdzsg Y2hyaXN0b3BoLm11ZWxsbmVyOyBqaW5tYTsgY29vcGVyLnF1CuS4u+mimO+8miBSZe+8mlJl77ya W1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMg aW50cmluc2ljcy4KCkhpIEp1emhlLAoKUGVyaGFwcyB0aGluZ3MgYXJlIG5vdCBhcyBzaW1wbGUg YXMgaW1hZ2luZWQuIApUaGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB2bGIvdmxoL3ZsdyBpcyBub3Qg dGhlIHNhbWUKYXMgdmxlOC92bGUxNi92bGUzMi4gIjgiLCAiMTYiIG9yICIzMiIgaW4gdmxlOC92 bGUxNi92bGUzMgpjYW4gYmUgYXBwZW5kZWQgZnJvbSAidmxlIiBhY2NvcmRpbmcgdG8gaW5wdXQg dHlwZS4KQnV0IHZsYi92bGgvdmx3IGlzIGRpZmZlcmVudCBub3QgaW4gaW5wdXQgdHlwZS4KCgoK CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQrlj5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhv bmdAcml2YWkuYWk+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTDml6Uo5pif5pyf5LiJKSAx ODowMwrmlLbku7bkurrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGli YWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhCDpgIHv vJpKaW0gV2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFi YmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxw aGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5j b20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyBq aW5tYTxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT47ICJjb29wZXIucXUiPGNvb3Blci5xdUBsaW51 eC5hbGliYWJhLmNvbT4K5Li7IOmimO+8mlJlOiBSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQg c3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCgoKSSBtZWFuIGNo YW5nZSB0aGVzZToKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZsYiwgdGhfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCBpOF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElP TiAodGhfdmxoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGkxNl92X3NjYWxhcl9j b25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx3LCB0aF9sb2Fkc3RvcmVfd2lk dGgsIGZ1bGxfcHJlZHMsIGkzMl92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQoKCgppbnRvIGEgc2lu Z2xlOgorREVGX1JWVl9GVU5DVElPTiAodGhfdmwsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9w cmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCgoKYW5kIGFwcGVuZCAiaCIsICJ3Iiwg b3IiYiIgYWNjb3JkaW5nIHRvIApUWVBFX1VOU0lHTkVEIGFuZApHRVRfTU9ERV9CSVRTSVpFIChH RVRfTU9ERV9JTk5FUiAoVFlQRV9NT0RFIChpbnN0YW5jZS5vcF9pbmZvLT5hcmdzW2ldLmdldF90 cmVlX3R5cGUgKGluc3RhbmNlLnR5cGUuaW5kZXgpKSkpCgoKCmluIHRoX2xvYWRzdG9yZV93aWR0 aC4KCgpJdCBzaG91bGQgZGVmaW5pdGVseSB3b3JrcywgSSBhbGxvdyB0aGlzIGZsZXhpYmlsaXR5 IGluIGRlc2lnbiBvZiB0aGUgZnJhbWV3b3JrLgoKCgoKanV6aGUuemhvbmdAcml2YWkuYWkKCiAK 5Y+R5Lu25Lq677yaIGpvc2h1YQrlj5HpgIHml7bpl7TvvJogMjAyNC0wMS0xMCAxNzo1NQrmlLbk u7bkurrvvJoganV6aGUuemhvbmdAcml2YWkuYWk7IGdjYy1wYXRjaGVzCuaKhOmAge+8miBKaW0g V2lsc29uOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hy aXN0b3BoLm11ZWxsbmVyOyBqaW5tYTsgY29vcGVyLnF1CuS4u+mimO+8miBSZe+8mltQQVRDSCB2 NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNp Y3MuCgpBbmQgcmV2aXNlIHRoX2xvYWRzdG9yZV93aWR0aCwgYXBwZW5kIHRoZSBuYW1lIGFjY29y ZGluZyBUWVBFX1VOU0lHTkVEIGFuZCAKR0VUX01PREVfQklUU0laRSAoR0VUX01PREVfSU5ORVIg KFRZUEVfTU9ERSAoaW5zdGFuY2Uub3BfaW5mby0+YXJnc1tpXS5nZXRfdHJlZV90eXBlIChpbnN0 YW5jZS50eXBlLmluZGV4KSkpKQogCldoYXQgZG8geW91IG1lYW4gYnkgaXQ/IEknbSBhIGJpdCBj b25mdXNlZC4KIApDaGFuZ2luZyBpOF92X3NjYWxhcl9jb25zdF9wdHJfb3BzIGludG8gYWxsX3Zf c2NhbGFyX2NvbnN0X3B0cl9vcHMKd2lsbCBleHBhbmQgdGhlIGRhdGF0eXBlcyB0aGF0IGNhbiBi ZSB1c2VkIGluIHRoX3ZsYi4gQ2FuIHdlIHJlc3RyaWN0CmFnYWluIGluIHRoX2xvYWRzdG9yZV93 aWR0aD8KIAogCiAKIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K5Y+R5Lu25Lq677yaanV6aGUuemhvbmdAcml2YWkuYWkg PGp1emhlLnpob25nQHJpdmFpLmFpPgrlj5HpgIHml7bpl7TvvJoyMDI05bm0MeaciDEw5pelKOaY n+acn+S4iSkgMTc6MzUK5pS25Lu25Lq677yaImNvb3Blci5qb3NodWEiPGNvb3Blci5qb3NodWFA bGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBhdGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3Jn PgrmioQg6YCB77yaSmltIFdpbHNvbjxqaW0ud2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8 cGFsbWVyQGRhYmJlbHQuY29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxpcHAu dG9tc2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFsYXc8amVmZnJleWFs YXdAZ21haWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8Y2hyaXN0b3BoLm11ZWxsbmVyQHZy dWxsLmV1PjsgImNvb3Blci5qb3NodWEiPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+ OyBqaW5tYTxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT47ICJjb29wZXIucXUiPGNvb3Blci5xdUBs aW51eC5hbGliYWJhLmNvbT4K5Li7IOmimO+8mlJlOiBbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1 cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgogCiAKK0RFRl9SVlZf RlVOQ1RJT04gKHRoX3ZsYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpOF92X3Nj YWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxoLCB0aF9sb2Fkc3Rv cmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGkxNl92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JW Vl9GVU5DVElPTiAodGhfdmx3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGkzMl92 X3NjYWxhcl9jb25zdF9wdHJfb3BzKQogCiAKIApJIHRoaW5rIHdlIHNob3VsZCByZW1vdmUgdGhv c2UgbWFueSBkYXRhIHN0cnVjdHVyZSB5b3UgYWRkZWQgbGlrZTogaThfdl9zY2FsYXJfY29uc3Rf cHRyX29wcwpJbnN0ZWFkLCB5b3Ugc2hvdWxkIHVzZSBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29w cwogCiAKQW5kIHJldmlzZSB0aF9sb2Fkc3RvcmVfd2lkdGgsIGFwcGVuZCB0aGUgbmFtZSBhY2Nv cmRpbmcgVFlQRV9VTlNJR05FRCBhbmQgCkdFVF9NT0RFX0JJVFNJWkUgKEdFVF9NT0RFX0lOTkVS IChUWVBFX01PREUgKGluc3RhbmNlLm9wX2luZm8tPmFyZ3NbaV0uZ2V0X3RyZWVfdHlwZSAoaW5z dGFuY2UudHlwZS5pbmRleCkpKSkKIAogCiAKIApqdXpoZS56aG9uZ0ByaXZhaS5haQogCiAKRnJv bTogSnVuIFNoYSAoSm9zaHVhKQpEYXRlOiAyMDI0LTAxLTEwIDE3OjI3ClRvOiBnY2MtcGF0Y2hl cwpDQzogamltLndpbHNvbi5nY2M7IHBhbG1lcjsgYW5kcmV3OyBwaGlsaXBwLnRvbXNpY2g7IGpl ZmZyZXlhbGF3OyBjaHJpc3RvcGgubXVlbGxuZXI7IGp1emhlLnpob25nOyBKdW4gU2hhIChKb3No dWEpOyBKaW4gTWE7IFhpYW5taWFvIFF1ClN1YmplY3Q6IFtQQVRDSCB2NV0gUklTQy1WOiBBZGQg c3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCiAKVGhpcyBwYXRj aCBvbmx5IGludm9sdmVzIHRoZSBnZW5lcmF0aW9uIG9mIHh0aGVhZHZlY3RvcgpzcGVjaWFsIGxv YWQvc3RvcmUgaW5zdHJ1Y3Rpb25zIGFuZCB2ZXh0IGluc3RydWN0aW9ucy4KIApnY2MvQ2hhbmdl TG9nOgogCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MKIChj bGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGgpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuCiAoQkFT RSk6IERlZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4KICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1iYXNlcy5oOgogRGVmaW5lIG5ldyBidWlsdGluIGNsYXNzLgogKiBjb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgKHZsc2VnZmYpOgogSW5j bHVkZSB0aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZi4KICogY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MKIChzdHJ1Y3QgdGhfbG9hZHN0b3JlX3dp ZHRoX2RlZik6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuCiAoc3RydWN0IHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoX2RlZik6CiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLgogKFNIQVBF KTogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4KICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1zaGFwZXMuaDoKIERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuCiAqIGNvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmCiAoREVGX1JWVl9JOF9PUFMp OiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuCiAoREVGX1JWVl9JMTZfT1BTKTogQWRk IGRhdGF0eXBlcyBmb3IgWFRoZWFkVmVjdG9yLgogKERFRl9SVlZfSTMyX09QUyk6IEFkZCBkYXRh dHlwZXMgZm9yIFhUaGVhZFZlY3Rvci4KIChERUZfUlZWX1U4X09QUyk6IEFkZCBkYXRhdHlwZXMg Zm9yIFhUaGVhZFZlY3Rvci4KIChERUZfUlZWX1UxNl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBY VGhlYWRWZWN0b3IuCiAoREVGX1JWVl9VMzJfT1BTKTogQWRkIGRhdGF0eXBlcyBmb3IgWFRoZWFk VmVjdG9yLgogKHZpbnQ4bTFfdCk6IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZlY3Rvci4KICh2 aW50OG0yX3QpOiBMaWtld2lzZS4KICh2aW50OG00X3QpOiBMaWtld2lzZS4KICh2aW50OG04X3Qp OiBMaWtld2lzZS4KICh2aW50MTZtMV90KTogTGlrZXdpc2UuCiAodmludDE2bTJfdCk6IExpa2V3 aXNlLgogKHZpbnQxNm00X3QpOiBMaWtld2lzZS4KICh2aW50MTZtOF90KTogTGlrZXdpc2UuCiAo dmludDMybTFfdCk6IExpa2V3aXNlLgogKHZpbnQzMm0yX3QpOiBMaWtld2lzZS4KICh2aW50MzJt NF90KTogTGlrZXdpc2UuCiAodmludDMybThfdCk6IExpa2V3aXNlLgogKHZpbnQ2NG0xX3QpOiBM aWtld2lzZS4KICh2aW50NjRtMl90KTogTGlrZXdpc2UuCiAodmludDY0bTRfdCk6IExpa2V3aXNl LgogKHZpbnQ2NG04X3QpOiBMaWtld2lzZS4KICh2dWludDhtMV90KTogTGlrZXdpc2UuCiAodnVp bnQ4bTJfdCk6IExpa2V3aXNlLgogKHZ1aW50OG00X3QpOiBMaWtld2lzZS4KICh2dWludDhtOF90 KTogTGlrZXdpc2UuCiAodnVpbnQxNm0xX3QpOiBMaWtld2lzZS4KICh2dWludDE2bTJfdCk6IExp a2V3aXNlLgogKHZ1aW50MTZtNF90KTogTGlrZXdpc2UuCiAodnVpbnQxNm04X3QpOiBMaWtld2lz ZS4KICh2dWludDMybTFfdCk6IExpa2V3aXNlLgogKHZ1aW50MzJtMl90KTogTGlrZXdpc2UuCiAo dnVpbnQzMm00X3QpOiBMaWtld2lzZS4KICh2dWludDMybThfdCk6IExpa2V3aXNlLgogKHZ1aW50 NjRtMV90KTogTGlrZXdpc2UuCiAodnVpbnQ2NG0yX3QpOiBMaWtld2lzZS4KICh2dWludDY0bTRf dCk6IExpa2V3aXNlLgogKHZ1aW50NjRtOF90KTogTGlrZXdpc2UuCiAqIGNvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MKIChERUZfUlZWX0k4X09QUyk6IEFkZCBkYXRhdHlwZXMg Zm9yIFhUaGVhZFZlY3Rvci4KIChERUZfUlZWX0kxNl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBY VGhlYWRWZWN0b3IuCiAoREVGX1JWVl9JMzJfT1BTKTogQWRkIGRhdGF0eXBlcyBmb3IgWFRoZWFk VmVjdG9yLgogKERFRl9SVlZfVThfT1BTKTogQWRkIGRhdGF0eXBlcyBmb3IgWFRoZWFkVmVjdG9y LgogKERFRl9SVlZfVTE2X09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZlY3Rvci4KIChE RUZfUlZWX1UzMl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuCiAqIGNvbmZp Zy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZjogTmV3IGZpbGUuCiAq IGNvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQ6IEFkZCBuZXcgcGF0dGVybnMuCiAKZ2NjL3Rl c3RzdWl0ZS9DaGFuZ2VMb2c6CiAKICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9y L3ZsYi12c2IuYzogTmV3IHRlc3QuCiAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bGJ1LXZzYi5jOiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsaC12c2guYzogTmV3IHRlc3QuCiAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGh1LXZzaC5jOiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3Zsdy12c3cuYzogTmV3IHRlc3QuCiAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bHd1LXZzdy5jOiBOZXcgdGVzdC4KIApDby1hdXRob3JlZC1ieTogSmluIE1hIDxq aW5tYUBsaW51eC5hbGliYWJhLmNvbT4KQ28tYXV0aG9yZWQtYnk6IFhpYW5taWFvIFF1IDxjb29w ZXIucXVAbGludXguYWxpYmFiYS5jb20+CkNvLWF1dGhvcmVkLWJ5OiBDaHJpc3RvcGggTcO8bGxu ZXIgPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT4KLS0tCiAuLi4vcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLWJhc2VzLmNjwqAgwqAgwqAgfCAxMzkgKysrKysrKysKIC4uLi9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCDCoCDCoCDCoCB8wqAgMzEgKysKIC4uLi9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIMKgIMKgIHzCoCA5OCArKysrKysKIC4u Li9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmjCoCDCoCDCoCB8IMKgIDMgKwog Li4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYgwqAgwqAgfCAxMjAgKysr KysrKwogZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgwqAgwqAgfCAz MTEgKysrKysrKysrKysrKysrKysrCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy5owqAgwqAgwqAgfCDCoCAzICsKIGdjYy9jb25maWcvcmlzY3YvdC1yaXNjdsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgMSArCiAuLi4vcmlzY3YvdGhlYWQtdmVjdG9y LWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgfMKgIDM5ICsrKwogZ2NjL2NvbmZpZy9yaXNjdi90aGVh ZC12ZWN0b3IubWTCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IDI1MyArKysrKysrKysrKysrKwogLi4u L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jwqAgwqAgwqAgwqAgwqAgfMKgIDY4ICsr KysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMgwqAgwqAgwqAgwqAgfMKg IDY4ICsrKysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guY8KgIMKgIMKgIMKg IMKgIHzCoCA2OCArKysrCiAuLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jIMKg IMKgIMKgIMKgIHzCoCA2OCArKysrCiAuLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3 LmPCoCDCoCDCoCDCoCDCoCB8wqAgNjggKysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmx3dS12c3cuYyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgMTQw NiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL2NvbmZpZy9yaXNjdi90aGVh ZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsYnUtdnNiLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZz aC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYwogCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCmluZGV4IDQ2ZjFh MWRhMzNlLi41ZjQ0ZjMxYTEyYiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtYmFzZXMuY2MKQEAgLTIxMjUsNiArMjEyNSw4MyBAQCBwdWJsaWM6CiDCoCB9 CiB9OwogCisvKiBJbXBsZW1lbnRzCisgKiB0aC52bChiL2gvdylbdV0udi90aC52cyhiL2gvdylb dV0udi90aC52bHMoYi9oL3cpW3VdLnYvdGgudnNzKGIvaC93KVt1XS52LworICogdGgudmx4KGIv aC93KVt1XS52L3RoLnZzW3VdeChiL2gvdykudgorICogY29kZWdlbi7CoCAqLwordGVtcGxhdGU8 Ym9vbCBTVE9SRV9QLCBsc3RfdHlwZSBMU1RfVFlQRSwgaW50IFVOU1BFQz4KK2NsYXNzIHRoX2xv YWRzdG9yZV93aWR0aCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlCit7CitwdWJsaWM6CivCoCBib29s IGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7 IH0KK8KgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy biAhU1RPUkVfUDsgfQorCivCoCB1bnNpZ25lZCBpbnQgY2FsbF9wcm9wZXJ0aWVzIChjb25zdCBm dW5jdGlvbl9pbnN0YW5jZSAmKSBjb25zdCBvdmVycmlkZQorwqAgeworwqAgwqAgaWYgKFNUT1JF X1ApCivCoCDCoCDCoCByZXR1cm4gQ1BfV1JJVEVfTUVNT1JZOworwqAgwqAgZWxzZQorwqAgwqAg wqAgcmV0dXJuIENQX1JFQURfTUVNT1JZOworwqAgfQorCivCoCBib29sIGNhbl9iZV9vdmVybG9h ZGVkX3AgKGVudW0gcHJlZGljYXRpb25fdHlwZV9pbmRleCBwcmVkKSBjb25zdCBvdmVycmlkZQor wqAgeworwqAgwqAgaWYgKFNUT1JFX1AgfHwgTFNUX1RZUEUgPT0gTFNUX0lOREVYRUQpCivCoCDC oCDCoCByZXR1cm4gdHJ1ZTsKK8KgIMKgIHJldHVybiBwcmVkICE9IFBSRURfVFlQRV9ub25lOwor wqAgfQorCivCoCBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJp ZGUKK8KgIHsKK8KgIMKgIGdjY19hc3NlcnQgKFRBUkdFVF9YVEhFQURWRUNUT1IpOworwqAgwqAg aWYgKExTVF9UWVBFID09IExTVF9JTkRFWEVEKQorwqAgwqAgwqAgeworIGlmIChTVE9SRV9QKQor IMKgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgKKyDCoCDCoCBjb2RlX2Zvcl9wcmVkX2luZGV4 ZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgVU5TUEVDLAorwqAgwqAgwqAgwqAgwqAgwqAgZS52ZWN0 b3JfbW9kZSAoKSkpOworIGVsc2UKKyDCoCByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoCisgwqAg wqAgY29kZV9mb3JfcHJlZF9pbmRleGVkX2xvYWRfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9k ZSAoKSkpOworwqAgwqAgwqAgfQorwqAgwqAgZWxzZSBpZiAoTFNUX1RZUEUgPT0gTFNUX1NUUklE RUQpCivCoCDCoCDCoCB7CisgaWYgKFNUT1JFX1ApCisgwqAgcmV0dXJuIGUudXNlX2NvbnRpZ3Vv dXNfc3RvcmVfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9zdHJpZGVkX3N0b3JlX3dpZHRo IChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKKyBlbHNlCisgwqAgcmV0dXJuIGUudXNlX2Nv bnRpZ3VvdXNfbG9hZF9pbnNuICgKKyDCoCDCoCBjb2RlX2Zvcl9wcmVkX3N0cmlkZWRfbG9hZF93 aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7CivCoCDCoCDCoCB9CivCoCDCoCBlbHNl CivCoCDCoCDCoCB7CisgaWYgKFNUT1JFX1ApCisgwqAgcmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNf c3RvcmVfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBl LnZlY3Rvcl9tb2RlICgpKSk7CisgZWxzZQorIMKgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX2xv YWRfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9tb3Zfd2lkdGggKFVOU1BFQywgZS52ZWN0 b3JfbW9kZSAoKSkpOworwqAgwqAgwqAgfQorwqAgfQorfTsKKworLyogSW1wbGVtZW50cyB2ZXh0 Lngudi7CoCAqLworY2xhc3MgdGhfZXh0cmFjdCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlCit7Citw dWJsaWM6CivCoCBib29sIGFwcGx5X3ZsX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs c2U7IH0KK8KgIGJvb2wgYXBwbHlfdGFpbF9wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJl dHVybiBmYWxzZTsgfQorwqAgYm9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgpIGNvbnN0IG92ZXJy aWRlIHsgcmV0dXJuIGZhbHNlOyB9CivCoCBib29sIHVzZV9tYXNrX3ByZWRpY2F0aW9uX3AgKCkg Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KK8KgIGJvb2wgaGFzX21lcmdlX29wZXJh bmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorCivCoCBydHggZXhwYW5k IChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGdjY19h c3NlcnQgKFRBUkdFVF9YVEhFQURWRUNUT1IpOworwqAgwqAgcmV0dXJuIGUudXNlX2V4YWN0X2lu c24gKGNvZGVfZm9yX3ByZWRfdGhfZXh0cmFjdCAoZS52ZWN0b3JfbW9kZSAoKSkpOworwqAgfQor fTsKKwogLyogQmVsb3cgaW1wbGVtZW50cyBhcmUgdmVjdG9yIGNyeXB0byAqLwogLyogSW1wbGVt ZW50cyB2YW5kbi5bdnYsdnhdICovCiBjbGFzcyB2YW5kbiA6IHB1YmxpYyBmdW5jdGlvbl9iYXNl CkBAIC0yNTg3LDYgKzI2NjQsMzcgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhl ZF9sb2FkPFVOU1BFQ19PUkRFUkVEPiB2bG94c2VnX29iajsKIHN0YXRpYyBDT05TVEVYUFIgY29u c3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVDX1VOT1JERVJFRD4gdnN1eHNlZ19vYmo7CiBzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19pbmRleGVkX3N0b3JlPFVOU1BFQ19PUkRFUkVEPiB2c294 c2VnX29iajsKIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgdmxzZWdmZiB2bHNlZ2ZmX29iajsKK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9T VFJJREUsIFVOU1BFQ19USF9WTEI+IHRoX3ZsYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxC VT4gdGhfdmxidV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxIPiB0aF92bGhfb2JqOworc3Rh dGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NU UklERSwgVU5TUEVDX1RIX1ZMSFU+IHRoX3ZsaHVfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZM Vz4gdGhfdmx3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo PGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFdVPiB0aF92bHd1X29iajsKK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NU UklERSwgVU5TUEVDX1RIX1ZMQj4gdGhfdnNiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMSD4g dGhfdnNoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRy dWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMVz4gdGhfdnN3X29iajsKK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5T UEVDX1RIX1ZMU0I+IHRoX3Zsc2Jfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTQlU+IHRoX3Zsc2J1 X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBM U1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0g+IHRoX3Zsc2hfb2JqOworc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhf VkxTSFU+IHRoX3Zsc2h1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU1c+IHRoX3Zsc3dfb2JqOwor c3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJ REVELCBVTlNQRUNfVEhfVkxTV1U+IHRoX3Zsc3d1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTQj4g dGhfdnNzYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0 cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0g+IHRoX3Zzc2hfb2JqOworc3RhdGljIENP TlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BF Q19USF9WTFNXPiB0aF92c3N3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+IHRoX3ZseGJfb2Jq Oworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9J TkRFWEVELCBVTlNQRUNfVEhfVkxYQlU+IHRoX3ZseGJ1X29iajsKK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZM WEg+IHRoX3ZseGhfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYSFU+IHRoX3ZseGh1X29iajsKK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhF RCwgVU5TUEVDX1RIX1ZMWFc+IHRoX3ZseHdfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYV1U+IHRo X3ZseHd1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRy dWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYQj4gdGhfdnN4Yl9vYmo7CitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVD X1RIX1ZMWEg+IHRoX3ZzeGhfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3Rv cmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXPiB0aF92c3h3X29iajsK K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRF WEVELCBVTlNQRUNfVEhfVlNVWEI+IHRoX3ZzdXhiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWEg+ IHRoX3ZzdXhoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo PHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWFc+IHRoX3ZzdXh3X29iajsKK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgdGhfZXh0cmFjdCB0aF92ZXh0X3hfdl9vYmo7CiAKIC8qIENyeXB0 byBWZWN0b3IgKi8KIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgdmFuZG4gdmFuZG5fb2JqOwpAQCAt Mjg3OCw2ICsyOTg2LDM3IEBAIEJBU0UgKHZsb3hzZWcpCiBCQVNFICh2c3V4c2VnKQogQkFTRSAo dnNveHNlZykKIEJBU0UgKHZsc2VnZmYpCitCQVNFICh0aF92bGIpCitCQVNFICh0aF92bGgpCitC QVNFICh0aF92bHcpCitCQVNFICh0aF92bGJ1KQorQkFTRSAodGhfdmxodSkKK0JBU0UgKHRoX3Zs d3UpCitCQVNFICh0aF92c2IpCitCQVNFICh0aF92c2gpCitCQVNFICh0aF92c3cpCitCQVNFICh0 aF92bHNiKQorQkFTRSAodGhfdmxzaCkKK0JBU0UgKHRoX3Zsc3cpCitCQVNFICh0aF92bHNidSkK K0JBU0UgKHRoX3Zsc2h1KQorQkFTRSAodGhfdmxzd3UpCitCQVNFICh0aF92c3NiKQorQkFTRSAo dGhfdnNzaCkKK0JBU0UgKHRoX3Zzc3cpCitCQVNFICh0aF92bHhiKQorQkFTRSAodGhfdmx4aCkK K0JBU0UgKHRoX3ZseHcpCitCQVNFICh0aF92bHhidSkKK0JBU0UgKHRoX3ZseGh1KQorQkFTRSAo dGhfdmx4d3UpCitCQVNFICh0aF92c3hiKQorQkFTRSAodGhfdnN4aCkKK0JBU0UgKHRoX3ZzeHcp CitCQVNFICh0aF92c3V4YikKK0JBU0UgKHRoX3ZzdXhoKQorQkFTRSAodGhfdnN1eHcpCitCQVNF ICh0aF92ZXh0X3hfdikKIC8qIENyeXB0byB2ZWN0b3IgKi8KIEJBU0UgKHZhbmRuKQogQkFTRSAo dmJyZXYpCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1iYXNlcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMu aAppbmRleCAxMTIyZTM4MDFhNy4uZGY0M2FkZjlhMTcgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgKKysrIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaApAQCAtMjk5LDYgKzI5OSwzNyBAQCBleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxveHNlZzsKIGV4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2c3V4c2VnOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZzb3hzZWc7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzZWdmZjsK K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bGI7CitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmxoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHRoX3ZsdzsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bGJ1 OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZsaHU7CitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmx3dTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB0aF92c2I7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhf dnNoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZzdzsKK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHNiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHRoX3Zsc2g7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dGhfdmxzdzsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHNidTsKK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHNodTsKK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHN3dTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB0aF92c3NiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zz c2g7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdnNzdzsKK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHhiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHRoX3ZseGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dGhfdmx4dzsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHhidTsKK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHhodTsKK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHh3dTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB0aF92c3hiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zz eGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdnN4dzsKK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3V4YjsKK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB0aF92c3V4aDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB0aF92c3V4dzsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92ZXh0X3hf djsKIC8qIEJlbG93IGZ1bmN0aW9uX2Jhc2UgYXJlIFZlY3RybyBDcnlwdG8qLwogZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZhbmRuOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZicmV2OwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmNjCmluZGV4IDFlNGY0ZDUzZGU2Li40ODlhOTVjZjY4NCAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjCisrKyBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYwpAQCAtMjEx LDYgKzIxMSw4NiBAQCBzdHJ1Y3QgaW5kZXhlZF9sb2Fkc3RvcmVfZGVmIDogcHVibGljIGZ1bmN0 aW9uX3NoYXBlCiDCoCB9CiB9OwogCisvKiB0aF9sb2Fkc3RvcmVfd2lkdGhfZGVmIGNsYXNzLsKg ICovCitzdHJ1Y3QgdGhfbG9hZHN0b3JlX3dpZHRoX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCit7 CivCoCBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25f aW5zdGFuY2UgJmluc3RhbmNlLAorwqAgwqAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJy aWRlCivCoCB7CivCoCDCoCAvKiBSZXR1cm4gbnVsbHB0ciBpZiBpdCBjYW4gbm90IGJlIG92ZXJs b2FkZWQuwqAgKi8KK8KgIMKgIGlmIChvdmVybG9hZGVkX3AgJiYgIWluc3RhbmNlLmJhc2UtPmNh bl9iZV9vdmVybG9hZGVkX3AgKGluc3RhbmNlLnByZWQpKQorwqAgwqAgwqAgcmV0dXJuIG51bGxw dHI7CisKK8KgIMKgIGIuYXBwZW5kX2Jhc2VfbmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsKKwor wqAgwqAgLyogdm9wX3YgLS0+IHZvcF92Xzx0eXBlPi7CoCAqLworwqAgwqAgaWYgKCFvdmVybG9h ZGVkX3ApCivCoCDCoCDCoCB7CisgLyogdm9wIC0tPiB2b3Bfdi7CoCAqLworIGIuYXBwZW5kX25h bWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uub3BfaW5mby0+b3BdKTsKKyAvKiB2b3BfdiAt LT4gdm9wX3ZfPHR5cGU+LsKgICovCisgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0 YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOworwqAgwqAgwqAgfQorCivCoCDCoCAvKiBBY2NvcmRp bmcgdG8gcnZ2LWludHJpbnNpYy1kb2MsIGl0IGRvZXMgbm90IGFkZCAiX20iIHN1ZmZpeAorIMKg IMKgIMKgIGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBBUEkuwqAgKi8KK8KgIMKgIGlmIChvdmVy bG9hZGVkX3AgJiYgaW5zdGFuY2UucHJlZCA9PSBQUkVEX1RZUEVfbSkKK8KgIMKgIMKgIHJldHVy biBiLmZpbmlzaF9uYW1lICgpOworwqAgwqAgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3Vm Zml4ZXNbaW5zdGFuY2UucHJlZF0pOworwqAgwqAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CivC oCB9Cit9OworCisKKy8qIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoX2RlZiBjbGFzcy7CoCAq Lworc3RydWN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoX2RlZiA6IHB1YmxpYyBmdW5jdGlv bl9zaGFwZQoreworwqAgdm9pZCBidWlsZCAoZnVuY3Rpb25fYnVpbGRlciAmYiwKKyDCoCDCoCDC oCBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZncm91cCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsK K8KgIMKgIGZvciAodW5zaWduZWQgaW50IHByZWRfaWR4ID0gMDsgZ3JvdXAucHJlZHNbcHJlZF9p ZHhdICE9IE5VTV9QUkVEX1RZUEVTOworwqAgKytwcmVkX2lkeCkKK8KgIMKgIMKgIHsKKyBmb3Ig KHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHggPSAwOworwqAgwqAgwqAgZ3JvdXAub3BzX2luZm9z LnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXggIT0gTlVNX1ZFQ1RPUl9UWVBFUzsKK8KgIMKgIMKg ICsrdmVjX3R5cGVfaWR4KQorIMKgIHsKK8KgIMKgIHRyZWUgaW5kZXhfdHlwZSA9IGdyb3VwLm9w c19pbmZvcy5hcmdzWzFdLmdldF90cmVlX3R5cGUgKAorIMKgIMKgIMKgIGdyb3VwLm9wc19pbmZv cy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4KTsKK8KgIMKgIGlmICghaW5kZXhfdHlwZSkKKyDC oCDCoCDCoCBjb250aW51ZTsKK8KgIMKgIGJ1aWxkX29uZSAoYiwgZ3JvdXAsIHByZWRfaWR4LCB2 ZWNfdHlwZV9pZHgpOworIMKgIH0KK8KgIMKgIMKgIH0KK8KgIH0KKworwqAgY2hhciAqZ2V0X25h bWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5j ZSwKK8KgIMKgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQorwqAgeworCivCoCDC oCAvKiBSZXR1cm4gbnVsbHB0ciBpZiBpdCBjYW4gbm90IGJlIG92ZXJsb2FkZWQuwqAgKi8KK8Kg IMKgIGlmIChvdmVybG9hZGVkX3AgJiYgIWluc3RhbmNlLmJhc2UtPmNhbl9iZV9vdmVybG9hZGVk X3AgKGluc3RhbmNlLnByZWQpKQorwqAgwqAgwqAgcmV0dXJuIG51bGxwdHI7CisKK8KgIMKgIGIu YXBwZW5kX2Jhc2VfbmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsKK8KgIMKgIC8qIHZvcF92IC0t PiB2b3Bfdl88dHlwZT4uwqAgKi8KK8KgIMKgIGlmICghb3ZlcmxvYWRlZF9wKQorwqAgwqAgwqAg eworIC8qIHZvcCAtLT4gdm9wX3YuwqAgKi8KKyBiLmFwcGVuZF9uYW1lIChvcGVyYW5kX3N1ZmZp eGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7CisgLyogdm9wX3YgLS0+IHZvcF92Xzx0eXBlPi7C oCAqLworIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0u dmVjdG9yKTsKK8KgIMKgIMKgIH0KKworwqAgwqAgLyogQWNjb3JkaW5nIHRvIHJ2di1pbnRyaW5z aWMtZG9jLCBpdCBkb2VzIG5vdCBhZGQgIl9tIiBzdWZmaXgKKyDCoCDCoCDCoCBmb3Igdm9wX20g QysrIG92ZXJsb2FkZWQgQVBJLsKgICovCivCoCDCoCBpZiAob3ZlcmxvYWRlZF9wICYmIGluc3Rh bmNlLnByZWQgPT0gUFJFRF9UWVBFX20pCivCoCDCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAo KTsKK8KgIMKgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2luc3RhbmNlLnBy ZWRdKTsKK8KgIMKgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOworwqAgfQorfTsKKwogLyogYWx1 X2RlZiBjbGFzcy7CoCAqLwogc3RydWN0IGFsdV9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQogewpA QCAtNjMyLDYgKzcxMiwyMSBAQCBzdHJ1Y3QgcmVkdWNfYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9i YXNlCiDCoCB9CiB9OwogCisvKiB0aF9leHRyYWN0X2RlZiBjbGFzcy7CoCAqLworc3RydWN0IHRo X2V4dHJhY3RfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UKK3sKK8KgIGNoYXIgKmdldF9uYW1lIChm dW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCivC oCDCoCDCoCBib29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGIu YXBwZW5kX2Jhc2VfbmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsKK8KgIMKgIGlmIChvdmVybG9h ZGVkX3ApCivCoCDCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKK8KgIMKgIGIuYXBwZW5k X25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsKK8KgIMKg IGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0uc2NhbGFy KTsKK8KgIMKgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOworwqAgfQorfTsKKwogLyogc2NhbGFy X21vdmVfZGVmIGNsYXNzLsKgICovCiBzdHJ1Y3Qgc2NhbGFyX21vdmVfZGVmIDogcHVibGljIGJ1 aWxkX2Jhc2UKIHsKQEAgLTEwOTQsNiArMTE4OSw4IEBAIFNIQVBFKHZzZXR2bCwgdnNldHZsKQog U0hBUEUodnNldHZsLCB2c2V0dmxtYXgpCiBTSEFQRShsb2Fkc3RvcmUsIGxvYWRzdG9yZSkKIFNI QVBFKGluZGV4ZWRfbG9hZHN0b3JlLCBpbmRleGVkX2xvYWRzdG9yZSkKK1NIQVBFKHRoX2xvYWRz dG9yZV93aWR0aCwgdGhfbG9hZHN0b3JlX3dpZHRoKQorU0hBUEUodGhfaW5kZXhlZF9sb2Fkc3Rv cmVfd2lkdGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoKQogU0hBUEUoYWx1LCBhbHUpCiBT SEFQRShhbHVfZnJtLCBhbHVfZnJtKQogU0hBUEUod2lkZW5fYWx1LCB3aWRlbl9hbHUpCkBAIC0x MTA2LDYgKzEyMDMsNyBAQCBTSEFQRShtb3ZlLCBtb3ZlKQogU0hBUEUobWFza19hbHUsIG1hc2tf YWx1KQogU0hBUEUocmVkdWNfYWx1LCByZWR1Y19hbHUpCiBTSEFQRShyZWR1Y19hbHVfZnJtLCBy ZWR1Y19hbHVfZnJtKQorU0hBUEUodGhfZXh0cmFjdCwgdGhfZXh0cmFjdCkKIFNIQVBFKHNjYWxh cl9tb3ZlLCBzY2FsYXJfbW92ZSkKIFNIQVBFKHZ1bmRlZmluZWQsIHZ1bmRlZmluZWQpCiBTSEFQ RShtaXNjLCBtaXNjKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1zaGFwZXMuaAppbmRleCBhYzJhMjhjZTAxNy4uYTc2MjRkMGZhYmQgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oCisrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oCkBAIC0yOCw2ICsyOCw4 IEBAIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldHZsOwogZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2c2V0dmxtYXg7CiBleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IGxvYWRzdG9yZTsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAq Y29uc3QgaW5kZXhlZF9sb2Fkc3RvcmU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGg7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hh cGUgKmNvbnN0IGFsdTsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgYWx1X2Zy bTsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qgd2lkZW5fYWx1OwpAQCAtNDEs NiArNDMsNyBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IG1hc2tfYWx1Owog ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHU7CiBleHRlcm4gY29u c3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHJlZHVjX2FsdV9mcm07CiBleHRlcm4gY29uc3QgZnVu Y3Rpb25fc2hhcGUgKmNvbnN0IHNjYWxhcl9tb3ZlOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3No YXBlICpjb25zdCB0aF9leHRyYWN0OwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCB2dW5kZWZpbmVkOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBtaXNjOwog ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2c2V0OwpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmCmluZGV4IDYxMDE5YTU2ODQ0 Li5hYmZlYjRmY2Q5YiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtdHlwZXMuZGVmCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLXR5cGVzLmRlZgpAQCAtMjQsMTIgKzI0LDQ4IEBAIGFsb25nIHdpdGggR0NDOyBzZWUg dGhlIGZpbGUgQ09QWUlORzMuIElmIG5vdCBzZWUKICNkZWZpbmUgREVGX1JWVl9JX09QUyhUWVBF LCBSRVFVSVJFKQogI2VuZGlmCiAKKy8qIFVzZSAiREVGX1JWVl9JOF9PUFMiIG1hY3JvIGluY2x1 ZGUgc29tZSBzaWduZWQgaW50ZWdlciAoaTgvaTE2L2kzMi9pNjQpCisgwqAgd2hpY2ggd2lsbCBi ZSBpdGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCisj aWZuZGVmIERFRl9SVlZfSThfT1BTCisjZGVmaW5lIERFRl9SVlZfSThfT1BTKFRZUEUsIFJFUVVJ UkUpCisjZW5kaWYKKworLyogVXNlICJERUZfUlZWX0kxNl9PUFMiIG1hY3JvIGluY2x1ZGUgc29t ZSBzaWduZWQgaW50ZWdlciAoaTE2L2kzMi9pNjQpCisgwqAgd2hpY2ggd2lsbCBiZSBpdGVyYXRl ZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCisjaWZuZGVmIERF Rl9SVlZfSTE2X09QUworI2RlZmluZSBERUZfUlZWX0kxNl9PUFMoVFlQRSwgUkVRVUlSRSkKKyNl bmRpZgorCisvKiBVc2UgIkRFRl9SVlZfSTMyX09QUyIgbWFjcm8gaW5jbHVkZSBzb21lIHNpZ25l ZCBpbnRlZ2VyIChpMzIvaTY0KQorIMKgIHdoaWNoIHdpbGwgYmUgaXRlcmF0ZWQgYW5kIHJlZ2lz dGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworI2lmbmRlZiBERUZfUlZWX0kzMl9P UFMKKyNkZWZpbmUgREVGX1JWVl9JMzJfT1BTKFRZUEUsIFJFUVVJUkUpCisjZW5kaWYKKwogLyog VXNlICJERUZfUlZWX1VfT1BTIiBtYWNybyBpbmNsdWRlIGFsbCB1bnNpZ25lZCBpbnRlZ2VyIHdo aWNoIHdpbGwgYmUKwqAgwqAgaXRlcmF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1 bmN0aW9ucy7CoCAqLwogI2lmbmRlZiBERUZfUlZWX1VfT1BTCiAjZGVmaW5lIERFRl9SVlZfVV9P UFMoVFlQRSwgUkVRVUlSRSkKICNlbmRpZgogCisvKiBVc2UgIkRFRl9SVlZfVThfT1BTIiBtYWNy byBpbmNsdWRlIHNvbWUgdW5zaWduZWQgaW50ZWdlciAoaTgvaTE2L2kzMi9pNjQpCisgwqAgd2hp Y2ggd2lsbCBiZSBpdGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25z LsKgICovCisjaWZuZGVmIERFRl9SVlZfVThfT1BTCisjZGVmaW5lIERFRl9SVlZfVThfT1BTKFRZ UEUsIFJFUVVJUkUpCisjZW5kaWYKKworLyogVXNlICJERUZfUlZWX1UxNl9PUFMiIG1hY3JvIGlu Y2x1ZGUgc29tZSB1bnNpZ25lZCBpbnRlZ2VyIChpMTYvaTMyL2k2NCkKKyDCoCB3aGljaCB3aWxs IGJlIGl0ZXJhdGVkIGFuZCByZWdpc3RlcmVkIGFzIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8K KyNpZm5kZWYgREVGX1JWVl9VMTZfT1BTCisjZGVmaW5lIERFRl9SVlZfVTE2X09QUyhUWVBFLCBS RVFVSVJFKQorI2VuZGlmCisKKy8qIFVzZSAiREVGX1JWVl9VMzJfT1BTIiBtYWNybyBpbmNsdWRl IHNvbWUgdW5zaWduZWQgaW50ZWdlciAoaTMyL2k2NCkKKyDCoCB3aGljaCB3aWxsIGJlIGl0ZXJh dGVkIGFuZCByZWdpc3RlcmVkIGFzIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KKyNpZm5kZWYg REVGX1JWVl9VMzJfT1BTCisjZGVmaW5lIERFRl9SVlZfVTMyX09QUyhUWVBFLCBSRVFVSVJFKQor I2VuZGlmCisKIC8qIFVzZSAiREVGX1JWVl9GX09QUyIgbWFjcm8gaW5jbHVkZSBhbGwgZmxvYXRp bmctcG9pbnQgd2hpY2ggd2lsbCBiZQrCoCDCoCBpdGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBp bnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCiAjaWZuZGVmIERFRl9SVlZfRl9PUFMKQEAgLTM3NCw2 ICs0MTAsNDUgQEAgREVGX1JWVl9JX09QUyAodmludDY0bTJfdCwgUlZWX1JFUVVJUkVfRUxFTl82 NCkKIERFRl9SVlZfSV9PUFMgKHZpbnQ2NG00X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCiBERUZf UlZWX0lfT1BTICh2aW50NjRtOF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQogCitERUZfUlZWX0k4 X09QUyAodmludDhtMV90LCAwKQorREVGX1JWVl9JOF9PUFMgKHZpbnQ4bTJfdCwgMCkKK0RFRl9S VlZfSThfT1BTICh2aW50OG00X3QsIDApCitERUZfUlZWX0k4X09QUyAodmludDhtOF90LCAwKQor REVGX1JWVl9JOF9PUFMgKHZpbnQxNm0xX3QsIDApCitERUZfUlZWX0k4X09QUyAodmludDE2bTJf dCwgMCkKK0RFRl9SVlZfSThfT1BTICh2aW50MTZtNF90LCAwKQorREVGX1JWVl9JOF9PUFMgKHZp bnQxNm04X3QsIDApCitERUZfUlZWX0k4X09QUyAodmludDMybTFfdCwgMCkKK0RFRl9SVlZfSThf T1BTICh2aW50MzJtMl90LCAwKQorREVGX1JWVl9JOF9PUFMgKHZpbnQzMm00X3QsIDApCitERUZf UlZWX0k4X09QUyAodmludDMybThfdCwgMCkKK0RFRl9SVlZfSThfT1BTICh2aW50NjRtMV90LCBS VlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9JOF9PUFMgKHZpbnQ2NG0yX3QsIFJWVl9SRVFV SVJFX0VMRU5fNjQpCitERUZfUlZWX0k4X09QUyAodmludDY0bTRfdCwgUlZWX1JFUVVJUkVfRUxF Tl82NCkKK0RFRl9SVlZfSThfT1BTICh2aW50NjRtOF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQor CitERUZfUlZWX0kxNl9PUFMgKHZpbnQxNm0xX3QsIDApCitERUZfUlZWX0kxNl9PUFMgKHZpbnQx Nm0yX3QsIDApCitERUZfUlZWX0kxNl9PUFMgKHZpbnQxNm00X3QsIDApCitERUZfUlZWX0kxNl9P UFMgKHZpbnQxNm04X3QsIDApCitERUZfUlZWX0kxNl9PUFMgKHZpbnQzMm0xX3QsIDApCitERUZf UlZWX0kxNl9PUFMgKHZpbnQzMm0yX3QsIDApCitERUZfUlZWX0kxNl9PUFMgKHZpbnQzMm00X3Qs IDApCitERUZfUlZWX0kxNl9PUFMgKHZpbnQzMm04X3QsIDApCitERUZfUlZWX0kxNl9PUFMgKHZp bnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX0kxNl9PUFMgKHZpbnQ2NG0y X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX0kxNl9PUFMgKHZpbnQ2NG00X3QsIFJW Vl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX0kxNl9PUFMgKHZpbnQ2NG04X3QsIFJWVl9SRVFV SVJFX0VMRU5fNjQpCisKK0RFRl9SVlZfSTMyX09QUyAodmludDMybTFfdCwgMCkKK0RFRl9SVlZf STMyX09QUyAodmludDMybTJfdCwgMCkKK0RFRl9SVlZfSTMyX09QUyAodmludDMybTRfdCwgMCkK K0RFRl9SVlZfSTMyX09QUyAodmludDMybThfdCwgMCkKK0RFRl9SVlZfSTMyX09QUyAodmludDY0 bTFfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfSTMyX09QUyAodmludDY0bTJfdCwg UlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfSTMyX09QUyAodmludDY0bTRfdCwgUlZWX1JF UVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfSTMyX09QUyAodmludDY0bThfdCwgUlZWX1JFUVVJUkVf RUxFTl82NCkKKwogREVGX1JWVl9VX09QUyAodnVpbnQ4bWY4X3QsIFJWVl9SRVFVSVJFX01JTl9W TEVOXzY0KQogREVGX1JWVl9VX09QUyAodnVpbnQ4bWY0X3QsIDApCiBERUZfUlZWX1VfT1BTICh2 dWludDhtZjJfdCwgMCkKQEAgLTM5Nyw2ICs0NzIsNDUgQEAgREVGX1JWVl9VX09QUyAodnVpbnQ2 NG0yX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCiBERUZfUlZWX1VfT1BTICh2dWludDY0bTRfdCwg UlZWX1JFUVVJUkVfRUxFTl82NCkKIERFRl9SVlZfVV9PUFMgKHZ1aW50NjRtOF90LCBSVlZfUkVR VUlSRV9FTEVOXzY0KQogCitERUZfUlZWX1U4X09QUyAodnVpbnQ4bTFfdCwgMCkKK0RFRl9SVlZf VThfT1BTICh2dWludDhtMl90LCAwKQorREVGX1JWVl9VOF9PUFMgKHZ1aW50OG00X3QsIDApCitE RUZfUlZWX1U4X09QUyAodnVpbnQ4bThfdCwgMCkKK0RFRl9SVlZfVThfT1BTICh2dWludDE2bTFf dCwgMCkKK0RFRl9SVlZfVThfT1BTICh2dWludDE2bTJfdCwgMCkKK0RFRl9SVlZfVThfT1BTICh2 dWludDE2bTRfdCwgMCkKK0RFRl9SVlZfVThfT1BTICh2dWludDE2bThfdCwgMCkKK0RFRl9SVlZf VThfT1BTICh2dWludDMybTFfdCwgMCkKK0RFRl9SVlZfVThfT1BTICh2dWludDMybTJfdCwgMCkK K0RFRl9SVlZfVThfT1BTICh2dWludDMybTRfdCwgMCkKK0RFRl9SVlZfVThfT1BTICh2dWludDMy bThfdCwgMCkKK0RFRl9SVlZfVThfT1BTICh2dWludDY0bTFfdCwgUlZWX1JFUVVJUkVfRUxFTl82 NCkKK0RFRl9SVlZfVThfT1BTICh2dWludDY0bTJfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RF Rl9SVlZfVThfT1BTICh2dWludDY0bTRfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZf VThfT1BTICh2dWludDY0bThfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKKworREVGX1JWVl9VMTZf T1BTICh2dWludDE2bTFfdCwgMCkKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQxNm0yX3QsIDApCitE RUZfUlZWX1UxNl9PUFMgKHZ1aW50MTZtNF90LCAwKQorREVGX1JWVl9VMTZfT1BTICh2dWludDE2 bThfdCwgMCkKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQzMm0xX3QsIDApCitERUZfUlZWX1UxNl9P UFMgKHZ1aW50MzJtMl90LCAwKQorREVGX1JWVl9VMTZfT1BTICh2dWludDMybTRfdCwgMCkKK0RF Rl9SVlZfVTE2X09QUyAodnVpbnQzMm04X3QsIDApCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50NjRt MV90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9VMTZfT1BTICh2dWludDY0bTJfdCwg UlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQ2NG00X3QsIFJWVl9S RVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50NjRtOF90LCBSVlZfUkVRVUlS RV9FTEVOXzY0KQorCitERUZfUlZWX1UzMl9PUFMgKHZ1aW50MzJtMV90LCAwKQorREVGX1JWVl9V MzJfT1BTICh2dWludDMybTJfdCwgMCkKK0RFRl9SVlZfVTMyX09QUyAodnVpbnQzMm00X3QsIDAp CitERUZfUlZWX1UzMl9PUFMgKHZ1aW50MzJtOF90LCAwKQorREVGX1JWVl9VMzJfT1BTICh2dWlu dDY0bTFfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfVTMyX09QUyAodnVpbnQ2NG0y X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX1UzMl9PUFMgKHZ1aW50NjRtNF90LCBS VlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9VMzJfT1BTICh2dWludDY0bThfdCwgUlZWX1JF UVVJUkVfRUxFTl82NCkKKwogREVGX1JWVl9GX09QUyAodmZsb2F0MTZtZjRfdCwgUlZWX1JFUVVJ UkVfRUxFTl9GUF8xNiB8IFJWVl9SRVFVSVJFX01JTl9WTEVOXzY0KQogREVGX1JWVl9GX09QUyAo dmZsb2F0MTZtZjJfdCwgUlZWX1JFUVVJUkVfRUxFTl9GUF8xNikKIERFRl9SVlZfRl9PUFMgKHZm bG9hdDE2bTFfdCwgUlZWX1JFUVVJUkVfRUxFTl9GUF8xNikKQEAgLTEzNzksNyArMTQ5MywxMyBA QCBERUZfUlZWX0NSWVBUT19TRVc2NF9PUFMgKHZ1aW50NjRtNF90LCBSVlZfUkVRVUlSRV9FTEVO XzY0KQogREVGX1JWVl9DUllQVE9fU0VXNjRfT1BTICh2dWludDY0bThfdCwgUlZWX1JFUVVJUkVf RUxFTl82NCkKIAogI3VuZGVmIERFRl9SVlZfSV9PUFMKKyN1bmRlZiBERUZfUlZWX0k4X09QUwor I3VuZGVmIERFRl9SVlZfSTE2X09QUworI3VuZGVmIERFRl9SVlZfSTMyX09QUwogI3VuZGVmIERF Rl9SVlZfVV9PUFMKKyN1bmRlZiBERUZfUlZWX1U4X09QUworI3VuZGVmIERFRl9SVlZfVTE2X09Q UworI3VuZGVmIERFRl9SVlZfVTMyX09QUwogI3VuZGVmIERFRl9SVlZfRl9PUFMKICN1bmRlZiBE RUZfUlZWX0JfT1BTCiAjdW5kZWYgREVGX1JWVl9XRVhUSV9PUFMKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MKaW5kZXggMjVlMGI2ZTU2ZGUuLmY0MjlmMTJkYzE4IDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYworKysg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYwpAQCAtMjQ2LDYgKzI0 Niw2MyBAQCBzdGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyBpdV9vcHNbXSA9IHsKICNpbmNsdWRl ICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIgogwqAge05VTV9WRUNUT1JfVFlQRVMs IDB9fTsKIAorLyogQSBsaXN0IG9mIGFsbCBpbnRlZ2VyIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3Ig aW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gaThf b3BzW10gPSB7CisjZGVmaW5lIERFRl9SVlZfSThfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1Jf VFlQRV8jI1RZUEUsIFJFUVVJUkV9LAorI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy10 eXBlcy5kZWYiCivCoCB7TlVNX1ZFQ1RPUl9UWVBFUywgMH19OworCisvKiBBIGxpc3Qgb2YgYWxs IGludGVnZXIgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICov CitzdGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyBpMTZfb3BzW10gPSB7CisjZGVmaW5lIERFRl9S VlZfSTE2X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwK KyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIgorwqAge05VTV9WRUNU T1JfVFlQRVMsIDB9fTsKKworLyogQSBsaXN0IG9mIGFsbCBpbnRlZ2VyIHdpbGwgYmUgcmVnaXN0 ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworc3RhdGljIGNvbnN0IHJ2dl90eXBl X2luZm8gaTMyX29wc1tdID0geworI2RlZmluZSBERUZfUlZWX0kzMl9PUFMoVFlQRSwgUkVRVUlS RSkge1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sCisjaW5jbHVkZSAicmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXR5cGVzLmRlZiIKK8KgIHtOVU1fVkVDVE9SX1RZUEVTLCAwfX07CisKKy8qIEEg bGlzdCBvZiBhbGwgaW50ZWdlciB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5j dGlvbnMuwqAgKi8KK3N0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIHU4X29wc1tdID0geworI2Rl ZmluZSBERUZfUlZWX1U4X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBS RVFVSVJFfSwKKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIgorwqAg e05VTV9WRUNUT1JfVFlQRVMsIDB9fTsKKworLyogQSBsaXN0IG9mIGFsbCBpbnRlZ2VyIHdpbGwg YmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworc3RhdGljIGNvbnN0 IHJ2dl90eXBlX2luZm8gdTE2X29wc1tdID0geworI2RlZmluZSBERUZfUlZWX1UxNl9PUFMoVFlQ RSwgUkVRVUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sCisjaW5jbHVkZSAicmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiIKK8KgIHtOVU1fVkVDVE9SX1RZUEVTLCAwfX07 CisKKy8qIEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJp bnNpYyBmdW5jdGlvbnMuwqAgKi8KK3N0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIHUzMl9vcHNb XSA9IHsKKyNkZWZpbmUgREVGX1JWVl9VMzJfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQ RV8jI1RZUEUsIFJFUVVJUkV9LAorI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy10eXBl cy5kZWYiCivCoCB7TlVNX1ZFQ1RPUl9UWVBFUywgMH19OworCisvKiBBIGxpc3Qgb2YgYWxsIGlu dGVnZXIgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCitz dGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyBpdThfb3BzW10gPSB7CisjZGVmaW5lIERFRl9SVlZf SThfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LAorI2Rl ZmluZSBERUZfUlZWX1U4X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBS RVFVSVJFfSwKKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIgorwqAg e05VTV9WRUNUT1JfVFlQRVMsIDB9fTsKKworLyogQSBsaXN0IG9mIGFsbCBpbnRlZ2VyIHdpbGwg YmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworc3RhdGljIGNvbnN0 IHJ2dl90eXBlX2luZm8gaXUxNl9vcHNbXSA9IHsKKyNkZWZpbmUgREVGX1JWVl9JMTZfT1BTKFRZ UEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LAorI2RlZmluZSBERUZf UlZWX1UxNl9PUFMoVFlQRSwgUkVRVUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0s CisjaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiIKK8KgIHtOVU1fVkVD VE9SX1RZUEVTLCAwfX07CisKKy8qIEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3aWxsIGJlIHJlZ2lz dGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KK3N0YXRpYyBjb25zdCBydnZfdHlw ZV9pbmZvIGl1MzJfb3BzW10gPSB7CisjZGVmaW5lIERFRl9SVlZfSTMyX09QUyhUWVBFLCBSRVFV SVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNkZWZpbmUgREVGX1JWVl9VMzJf T1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LAorI2luY2x1 ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYiCivCoCB7TlVNX1ZFQ1RPUl9UWVBF UywgMH19OworCiAvKiBBIGxpc3Qgb2YgYWxsIHR5cGVzIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3Ig aW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLwogc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gYWxs X29wc1tdID0gewogI2RlZmluZSBERUZfUlZWX0lfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1Jf VFlQRV8jI1RZUEUsIFJFUVVJUkV9LApAQCAtOTM0LDYgKzk5MSwzMiBAQCBzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIGV4dF92Y3JlYXRlX2FyZ3NbXQogwqAgPSB7cnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksCsKgIMKgIMKgIHJ2dl9hcmdfdHlwZV9p bmZvX2VuZH07CiAKKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25z dCBzY2FsYXJfdHlwZSAqLCBzaXplX3QpCisgKiBmdW5jdGlvbi7CoCAqLworc3RhdGljIENPTlNU RVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJnc1td CivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX2NvbnN0X3B0ciksCisg wqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5m b19lbmR9OworCisvKiBBIGxpc3Qgb2YgYXJncyBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qg c2NhbGFyX3R5cGUgKiwgZWV3OF9pbmRleF90eXBlKQorICogZnVuY3Rpb24uwqAgKi8KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX2NvbnN0X3B0cl9pbmRl eF9hcmdzW10KK8KgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfY29uc3Rf cHRyKSwKKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdW5zaWduZWRfdmVjdG9y KSwgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsKKworLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQg ZnVuYyAoc2NhbGFyX3R5cGUgKiwgZWV3OF9pbmRleF90eXBlLCB2ZWN0b3JfdHlwZSkKKyAqIGZ1 bmN0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNj YWxhcl9wdHJfaW5kZXhfYXJnc1tdCivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf c2NhbGFyX3B0ciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Vuc2lnbmVk X3ZlY3RvciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2 dl9hcmdfdHlwZV9pbmZvX2VuZH07CisKKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2b2lkIGZ1bmMg KHNjYWxhcl90eXBlICosIHNpemVfdCwgdmVjdG9yX3R5cGUpCisgKiBmdW5jdGlvbi7CoCAqLwor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfcHRyX3NpemVf YXJnc1tdCivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciksCisg wqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5m byAoUlZWX0JBU0VfdmVjdG9yKSwKKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCiAv KiBBIGxpc3Qgb2Ygbm9uZSBwcmVkcyB0aGF0IHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmlu c2ljIGZ1bmN0aW9ucy7CoCAqLwogc3RhdGljIENPTlNURVhQUiBjb25zdCBwcmVkaWNhdGlvbl90 eXBlX2luZGV4IG5vbmVfcHJlZHNbXQogwqAgPSB7UFJFRF9UWVBFX25vbmUsIE5VTV9QUkVEX1RZ UEVTfTsKQEAgLTE0NTUsNiArMTUzOCwxNCBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9v cF9pbmZvIGl1X3NoaWZ0X3Z2dl9vcHMKwqAgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9C QVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICovCsKgIMKgIMKgIHNoaWZ0X3Z2X2FyZ3MgLyog QXJncyAqL307CiAKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHNjYWxhcl90 eXBlIGZ1bmMgKHZlY3Rvcl90eXBlLCBzaXplX3QpCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24u ICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3hfc191X29wcworwqAg PSB7aXVfb3BzLMKgIMKgIMKgIMKgIMKgIC8qIFR5cGVzICovCisgwqAgwqAgT1BfVFlQRV92eCzC oCDCoCDCoCDCoCAvKiBTdWZmaXggKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JB U0Vfc2NhbGFyKSwgLyogUmV0dXJuIHR5cGUgKi8KKyDCoCDCoCB2X3NpemVfYXJncyAvKiBBcmdz ICovfTsKKwogLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUg ZnVuYyAodmVjdG9yX3R5cGUsIHNpemVfdCkKwqAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICov CiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3NoaWZ0X3Z2eF9vcHMKQEAg LTI2MzgsNiArMjcyOSwyMjIgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBh bGxfdl92Y3JlYXRlX2xtdWw0X3gyX29wcwrCoCDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0VfdmxtdWxfZXh0X3gyKSwgLyogUmV0dXJuIHR5cGUgKi8KwqAgwqAgwqAgZXh0X3ZjcmVh dGVfYXJncyAvKiBBcmdzICovfTsKIAorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBm b3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKikKKyAqIGZ1bmN0aW9uIHJl Z2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpOF92 X3NjYWxhcl9jb25zdF9wdHJfb3BzCivCoCA9IHtpOF9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAq LworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAg wqAgc2NhbGFyX2NvbnN0X3B0cl9hcmdzIC8qIEFyZ3PCoCAqL307CisKKy8qIEEgc3RhdGljIG9w ZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBl ICopCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gaTE2X3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMKK8KgID0ge2kxNl9vcHMs wqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZm aXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBS ZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9hcmdzIC8qIEFyZ3MgKi99 OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5j IChjb25zdCBzY2FsYXJfdHlwZSAqKQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkzMl92X3NjYWxhcl9jb25zdF9wdHJf b3BzCivCoCA9IHtpMzJfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBF X3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9w dHJfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBm b3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKikKKyAqIGZ1bmN0aW9uIHJl Z2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1OF92 X3NjYWxhcl9jb25zdF9wdHJfb3BzCivCoCA9IHt1OF9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAq LworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAg wqAgc2NhbGFyX2NvbnN0X3B0cl9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVy YW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAq KQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9vcF9pbmZvIHUxNl92X3NjYWxhcl9jb25zdF9wdHJfb3BzCivCoCA9IHt1MTZfb3BzLMKg IMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4 wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0 dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfYXJncyAvKiBBcmdzICovfTsK KworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAo Y29uc3Qgc2NhbGFyX3R5cGUgKikKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3Rh dGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1MzJfdl9zY2FsYXJfY29uc3RfcHRyX29w cworwqAgPSB7dTMyX29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92 LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9C QVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3RfcHRy X2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9y IHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosCisgKiBzaXplX3QpIGZ1bmN0 aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5m byBpOF92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMKK8KgID0ge2k4X29wcyzCoCDCoCDCoCAv KiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisg wqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBl wqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsKKwor LyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29u c3Qgc2NhbGFyX3R5cGUgKiwKKyAqIHNpemVfdCkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICov CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkxNl92X3NjYWxhcl9jb25zdF9w dHJfc2l6ZV9vcHMKK8KgID0ge2kxNl9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKg IE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFy X2NvbnN0X3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosCisg KiBzaXplX3QpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBj b25zdCBydnZfb3BfaW5mbyBpMzJfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzCivCoCA9IHtp MzJfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAg LyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9y KSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdz IC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0 b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogc2l6ZV90KSBmdW5jdGlvbiBy ZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdThf dl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzCivCoCA9IHt1OF9vcHMswqAgwqAgwqAgLyogVHlw ZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKg IHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICov CisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEg c3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNj YWxhcl90eXBlICosCisgKiBzaXplX3QpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3Rh dGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1MTZfdl9zY2FsYXJfY29uc3RfcHRyX3Np emVfb3BzCivCoCA9IHt1MTZfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9U WVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25z dF9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9y bWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogc2l6 ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg cnZ2X29wX2luZm8gdTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcworwqAgPSB7dTMyX29w cyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1 ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8q IFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBB cmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5 cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAqIGVldzhfaW5kZXhfdHlwZSkgZnVuY3Rp b24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IGk4X3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMKK8KgID0ge2k4X29wcyzCoCDCoCDCoCAv KiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisg wqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBl wqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3RfcHRyX2luZGV4X2FyZ3MgLyogQXJncyAqL307CisK Ky8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNv bnN0IHNjYWxhcl90eXBlICosCisgKiBlZXc4X2luZGV4X3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJh dGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1OF92X3NjYWxh cl9jb25zdF9wdHJfaW5kZXhfb3BzCivCoCA9IHt1OF9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAq LworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAg wqAgc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRp YyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJf dHlwZSAqLAorICogZWV3OF9pbmRleF90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaTE2X3Zfc2NhbGFyX2NvbnN0X3B0 cl9pbmRleF9vcHMKK8KgID0ge2kxNl9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKg IE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFy X2NvbnN0X3B0cl9pbmRleF9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5k IGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAor ICogZWV3OF9pbmRleF90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdTE2X3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9v cHMKK8KgID0ge3UxNl9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVf dizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZf QkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0 cl9pbmRleF9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0 aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogZWV3OF9p bmRleF90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X29wX2luZm8gaTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMKK8KgID0g e2kzMl9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDC oCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0 b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9h cmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogZWV3OF9pbmRleF90eXBl KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gdTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMKK8KgID0ge3UzMl9vcHMs wqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZm aXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBS ZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzIC8qIEFy Z3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2b2lkIGZ1bmMg KHNjYWxhcl90eXBlICosIGVldzhfaW5kZXhfdHlwZSwKKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlv biByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8g aXU4X3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMKK8KgID0ge2l1OF9vcHMswqAgwqAgLyogVHlwZXPC oCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKg IHNjYWxhcl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFu ZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBlZXcxNl9pbmRleF90 eXBlLAorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGlj IENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdTE2X3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMK K8KgID0ge2l1MTZfb3BzLMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAg wqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9p ZCksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfcHRyX2luZGV4X2FyZ3MgLyog QXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVu YyAoc2NhbGFyX3R5cGUgKiwgZWV3MzJfaW5kZXhfdHlwZSwKKyAqIHZlY3Rvcl90eXBlKSBmdW5j dGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2lu Zm8gaXUzMl92X3NjYWxhcl9wdHJfaW5kZXhfb3BzCivCoCA9IHtpdTMyX29wcyzCoCDCoCAvKiBU eXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAg cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKgICovCisg wqAgwqAgc2NhbGFyX3B0cl9pbmRleF9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBv cGVyYW5kIGluZm9ybWF0aW9uIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIHZlY3Rvcl90 eXBlLAorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9vcF9pbmZvIGl1OF92X3NjYWxhcl9wdHJfb3BzCivCoCA9IHtpdThfb3BzLMKgIMKg IC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgLyogU3VmZml4wqAgKi8KKyDC oCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBlwqAg Ki8KKyDCoCDCoCBzY2FsYXJfcHRyX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9w ZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgdmVjdG9yX3R5 cGUpCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gaXUxNl92X3NjYWxhcl9wdHJfb3BzCivCoCA9IHtpdTE2X29wcyzCoCDC oCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIC8qIFN1ZmZpeMKgICovCisg wqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKg ICovCisgwqAgwqAgc2NhbGFyX3B0cl9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBv cGVyYW5kIGluZm9ybWF0aW9uIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIHZlY3Rvcl90 eXBlKQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9vcF9pbmZvIGl1MzJfdl9zY2FsYXJfcHRyX29wcworwqAgPSB7aXUzMl9vcHMswqAg wqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBTdWZmaXjCoCAqLwor IMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5cGXC oCAqLworIMKgIMKgIHNjYWxhcl9wdHJfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMg b3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3Qs CisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1OF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMKK8KgID0g e2l1OF9vcHMswqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBT dWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyog UmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99 OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2b2lkIGZ1bmMgKHNjYWxh cl90eXBlICosIHNpemVfdCwKKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24u wqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXUxNl92X3NjYWxhcl9w dHJfc2l6ZV9vcHMKK8KgID0ge2l1MTZfb3BzLMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBP UF9UWVBFX3YswqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfcHRyX3Np emVfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBm b3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3QsCisgKiB2ZWN0b3JfdHlwZSkgZnVu Y3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9p bmZvIGl1MzJfdl9zY2FsYXJfcHRyX3NpemVfb3BzCivCoCA9IHtpdTMyX29wcyzCoCDCoCAvKiBU eXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAg cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKgICovCisg wqAgwqAgc2NhbGFyX3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307CisKIC8qIEEgc3RhdGljIG9w ZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlKS4KwqAg wqAgU29tZSBpbnMganVzdCBzdXBwb3J0cyBTRVc9MzIsIHN1Y2ggYXMgY3J5cHRvIHZlY3RvbCBa dmtnIGV4dGVuc2lvbi4KwqAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KQEAgLTI4MTYs NiArMzEyMywxMCBAQCBzdGF0aWMgZnVuY3Rpb25fZ3JvdXBfaW5mbyBmdW5jdGlvbl9ncm91cHNb XSA9IHsKICNkZWZpbmUgREVGX1JWVl9GVU5DVElPTihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19J TkZPKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcCiDCoCB7I05BTUUsICZi YXNlczo6TkFNRSwgJnNoYXBlczo6U0hBUEUsIFBSRURTLCBPUFNfSU5GTywgUkVRVUlSRURfRVhU RU5TSU9OU30sCiAjaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYi CisjdW5kZWYgREVGX1JWVl9GVU5DVElPTgorI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUs IFNIQVBFLCBQUkVEUywgT1BTX0lORk8pIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIFwKK8KgIHsjTkFNRSwgJmJhc2VzOjpOQU1FLCAmc2hhcGVzOjpTSEFQRSwgUFJFRFMsIE9Q U19JTkZPLCBSRVFVSVJFRF9FWFRFTlNJT05TfSwKKyNpbmNsdWRlICJ0aGVhZC12ZWN0b3ItYnVp bHRpbnMtZnVuY3Rpb25zLmRlZiIKIH07CiAKIC8qIFRoZSBSVlYgdHlwZXMsIHdpdGggdGhlaXIg YnVpbHQtaW4KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oCmluZGV4IDU0 Yzg4MjRmZjkyLi5hOGVlMzlhM2NiMiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuaAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5oCkBAIC0xMTQsNiArMTE0LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBD UF9XUklURV9DU1IgPSAxVSA8PCA1OwogZW51bSByZXF1aXJlZF9leHQKIHsKIMKgIFZFQ1RPUl9F WFQsIMKgIC8qIFZlY3RvciBleHRlbnNpb24gKi8KK8KgIFhUSEVBRFZFQ1RPUl9FWFQsIMKgIC8q IFhUaGVhZFZlY3RvciBleHRlbnNpb24gKi8KIMKgIFpWQkJfRVhULMKgIMKgIC8qIENyeXRvIHZl Y3RvciBadmJiIHN1Yi1leHQgKi8KIMKgIFpWQkJfT1JfWlZLQl9FWFQsIC8qIENyeXRvIHZlY3Rv ciBadmJiIG9yIHp2a2Igc3ViLWV4dCAqLwogwqAgWlZCQ19FWFQswqAgwqAgLyogQ3J5cHRvIHZl Y3RvciBadmJjIHN1Yi1leHQgKi8KQEAgLTIzNCw2ICsyMzUsOCBAQCBzdHJ1Y3QgZnVuY3Rpb25f Z3JvdXBfaW5mbwogwqAgwqAgewogwqAgwqAgwqAgY2FzZSBWRUNUT1JfRVhUOgogwqAgwqAgwqAg wqAgcmV0dXJuIFRBUkdFVF9WRUNUT1I7CivCoCDCoCDCoCBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6 CisgcmV0dXJuIFRBUkdFVF9YVEhFQURWRUNUT1I7CiDCoCDCoCDCoCBjYXNlIFpWQkJfRVhUOgog wqAgwqAgwqAgwqAgcmV0dXJuIFRBUkdFVF9aVkJCOwogwqAgwqAgwqAgY2FzZSBaVkJCX09SX1pW S0JfRVhUOgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2IGIvZ2NjL2NvbmZp Zy9yaXNjdi90LXJpc2N2CmluZGV4IDMyZGU2Yjg1MWMxLi4zODQ5NDMyMGQ4YiAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2CisrKyBiL2djYy9jb25maWcvcmlzY3YvdC1yaXNj dgpAQCAtMSw2ICsxLDcgQEAKIFJJU0NWX0JVSUxUSU5TX0ggPSAkKHNyY2RpcikvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIFwKwqAgwqAgwqAgJChzcmNkaXIpL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuZGVmIFwKwqAgwqAgwqAgJChzcmNkaXIpL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiBcCisgwqAgwqAgwqAg JChzcmNkaXIpL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRl ZiBcCsKgIMKgIMKgIHJpc2N2LXZlY3Rvci10eXBlLWluZGV4ZXIuZ2VuLmRlZgogCiByaXNjdi1i dWlsdGlucy5vOiAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LWJ1aWx0aW5zLmNjICQoQ09O RklHX0gpIFwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0 aW5zLWZ1bmN0aW9ucy5kZWYgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlu cy1mdW5jdGlvbnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42 Njc4MjBkNGMzZQotLS0gL2Rldi9udWxsCisrKyBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVj dG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYKQEAgLTAsMCArMSwzOSBAQAorI2lmbmRlZiBERUZf UlZWX0ZVTkNUSU9OCisjZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURT LCBPUFNfSU5GTykKKyNlbmRpZgorCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWFRIRUFE VkVDVE9SX0VYVAorREVGX1JWVl9GVU5DVElPTiAodGhfdmxiLCB0aF9sb2Fkc3RvcmVfd2lkdGgs IGZ1bGxfcHJlZHMsIGk4X3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9O ICh0aF92bGgsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaTE2X3Zfc2NhbGFyX2Nv bnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bHcsIHRoX2xvYWRzdG9yZV93aWR0 aCwgZnVsbF9wcmVkcywgaTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNU SU9OICh0aF92bGJ1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIHU4X3Zfc2NhbGFy X2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bGh1LCB0aF9sb2Fkc3RvcmVf d2lkdGgsIGZ1bGxfcHJlZHMsIHUxNl92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9G VU5DVElPTiAodGhfdmx3dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1MzJfdl9z Y2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzYiwgdGhfbG9hZHN0 b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1OF92X3NjYWxhcl9wdHJfb3BzKQorREVGX1JWVl9G VU5DVElPTiAodGhfdnNoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgaXUxNl92 X3NjYWxhcl9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdnN3LCB0aF9sb2Fkc3RvcmVf d2lkdGgsIG5vbmVfbV9wcmVkcywgaXUzMl92X3NjYWxhcl9wdHJfb3BzKQorREVGX1JWVl9GVU5D VElPTiAodGhfdmxzYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpOF92X3NjYWxh cl9jb25zdF9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bHNoLCB0aF9sb2Fk c3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGkxNl92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMp CitERUZfUlZWX0ZVTkNUSU9OICh0aF92bHN3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJl ZHMsIGkzMl92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0 aF92bHNidSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1OF92X3NjYWxhcl9jb25z dF9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bHNodSwgdGhfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCB1MTZfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVG X1JWVl9GVU5DVElPTiAodGhfdmxzd3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywg dTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zz c2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBpdThfdl9zY2FsYXJfcHRyX3Np emVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdnNzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBu b25lX21fcHJlZHMsIGl1MTZfdl9zY2FsYXJfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElP TiAodGhfdnNzdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1MzJfdl9zY2Fs YXJfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx4YiwgdGhfaW5kZXhlZF9s b2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGk4X3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9v cHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bHhoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgZnVsbF9wcmVkcywgaTE2X3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpCitERUZfUlZW X0ZVTkNUSU9OICh0aF92bHh3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgaTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0 aF92bHhidSwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIHU4X3Zfc2Nh bGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bHhodSwgdGhf aW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIHUxNl92X3NjYWxhcl9jb25zdF9w dHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx4d3UsIHRoX2luZGV4ZWRfbG9h ZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1MzJfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzeGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRo LCBub25lX21fcHJlZHMsIGl1OF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5D VElPTiAodGhfdnN4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywg aXUxNl92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdnN4dywg dGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgaXUzMl92X3NjYWxhcl9w dHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdnN1eGIsIHRoX2luZGV4ZWRfbG9h ZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1OF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQor REVGX1JWVl9GVU5DVElPTiAodGhfdnN1eGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBu b25lX21fcHJlZHMsIGl1MTZfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJ T04gKHRoX3ZzdXh3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBp dTMyX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92ZXh0X3hf diwgdGhfZXh0cmFjdCwgbm9uZV9wcmVkcywgaXVfeF9zX3Vfb3BzKQorI3VuZGVmIFJFUVVJUkVE X0VYVEVOU0lPTlMKKworI3VuZGVmIERFRl9SVlZfRlVOQ1RJT04KZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0 b3IubWQKaW5kZXggNjk2YjgxNTI1MmQuLjBmMzcwMGQ5MjY5IDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZl Y3Rvci5tZApAQCAtMSw3ICsxLDk1IEBACiAoZGVmaW5lX2NfZW51bSAidW5zcGVjIiBbCivCoCBV TlNQRUNfVEhfVkxCCivCoCBVTlNQRUNfVEhfVkxCVQorwqAgVU5TUEVDX1RIX1ZMSAorwqAgVU5T UEVDX1RIX1ZMSFUKK8KgIFVOU1BFQ19USF9WTFcKK8KgIFVOU1BFQ19USF9WTFdVCisKK8KgIFVO U1BFQ19USF9WTFNCCivCoCBVTlNQRUNfVEhfVkxTQlUKK8KgIFVOU1BFQ19USF9WTFNICivCoCBV TlNQRUNfVEhfVkxTSFUKK8KgIFVOU1BFQ19USF9WTFNXCivCoCBVTlNQRUNfVEhfVkxTV1UKKwor wqAgVU5TUEVDX1RIX1ZMWEIKK8KgIFVOU1BFQ19USF9WTFhCVQorwqAgVU5TUEVDX1RIX1ZMWEgK K8KgIFVOU1BFQ19USF9WTFhIVQorwqAgVU5TUEVDX1RIX1ZMWFcKK8KgIFVOU1BFQ19USF9WTFhX VQorCivCoCBVTlNQRUNfVEhfVlNVWEIKK8KgIFVOU1BFQ19USF9WU1VYSAorwqAgVU5TUEVDX1RI X1ZTVVhXCisKIMKgIFVOU1BFQ19USF9WV0xEU1QKIF0pCiAKKyhkZWZpbmVfaW50X2l0ZXJhdG9y IFVOU1BFQ19USF9WTE1FTV9PUCBbCivCoCBVTlNQRUNfVEhfVkxCIFVOU1BFQ19USF9WTEJVCivC oCBVTlNQRUNfVEhfVkxIIFVOU1BFQ19USF9WTEhVCivCoCBVTlNQRUNfVEhfVkxXIFVOU1BFQ19U SF9WTFdVCitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVkxTTUVNX09QIFsK K8KgIFVOU1BFQ19USF9WTFNCIFVOU1BFQ19USF9WTFNCVQorwqAgVU5TUEVDX1RIX1ZMU0ggVU5T UEVDX1RIX1ZMU0hVCivCoCBVTlNQRUNfVEhfVkxTVyBVTlNQRUNfVEhfVkxTV1UKK10pCisKKyhk ZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFhNRU1fT1AgWworwqAgVU5TUEVDX1RIX1ZM WEIgVU5TUEVDX1RIX1ZMWEJVCivCoCBVTlNQRUNfVEhfVkxYSCBVTlNQRUNfVEhfVkxYSFUKK8Kg IFVOU1BFQ19USF9WTFhXIFVOU1BFQ19USF9WTFhXVQorXSkKKworKGRlZmluZV9pbnRfYXR0ciB2 bG1lbV9vcF9hdHRyIFsKK8KgIChVTlNQRUNfVEhfVkxCICJiIikgKFVOU1BFQ19USF9WTEJVICJi dSIpCivCoCAoVU5TUEVDX1RIX1ZMSCAiaCIpIChVTlNQRUNfVEhfVkxIVSAiaHUiKQorwqAgKFVO U1BFQ19USF9WTFcgInciKSAoVU5TUEVDX1RIX1ZMV1UgInd1IikKK8KgIChVTlNQRUNfVEhfVkxT QiAiYiIpIChVTlNQRUNfVEhfVkxTQlUgImJ1IikKK8KgIChVTlNQRUNfVEhfVkxTSCAiaCIpIChV TlNQRUNfVEhfVkxTSFUgImh1IikKK8KgIChVTlNQRUNfVEhfVkxTVyAidyIpIChVTlNQRUNfVEhf VkxTV1UgInd1IikKK8KgIChVTlNQRUNfVEhfVkxYQiAiYiIpIChVTlNQRUNfVEhfVkxYQlUgImJ1 IikKK8KgIChVTlNQRUNfVEhfVkxYSCAiaCIpIChVTlNQRUNfVEhfVkxYSFUgImh1IikKK8KgIChV TlNQRUNfVEhfVkxYVyAidyIpIChVTlNQRUNfVEhfVkxYV1UgInd1IikKK8KgIChVTlNQRUNfVEhf VlNVWEIgImIiKQorwqAgKFVOU1BFQ19USF9WU1VYSCAiaCIpCivCoCAoVU5TUEVDX1RIX1ZTVVhX ICJ3IikKK10pCisKKyhkZWZpbmVfaW50X2F0dHIgdmxtZW1fb3JkZXJfYXR0ciBbCivCoCAoVU5T UEVDX1RIX1ZMWEIgIiIpCivCoCAoVU5TUEVDX1RIX1ZMWEggIiIpCivCoCAoVU5TUEVDX1RIX1ZM WFcgIiIpCivCoCAoVU5TUEVDX1RIX1ZTVVhCICJ1IikKK8KgIChVTlNQRUNfVEhfVlNVWEggInUi KQorwqAgKFVOU1BFQ19USF9WU1VYVyAidSIpCitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRvciBV TlNQRUNfVEhfVlNNRU1fT1AgWworwqAgVU5TUEVDX1RIX1ZMQgorwqAgVU5TUEVDX1RIX1ZMSAor wqAgVU5TUEVDX1RIX1ZMVworXSkKKworKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZT U01FTV9PUCBbCivCoCBVTlNQRUNfVEhfVkxTQgorwqAgVU5TUEVDX1RIX1ZMU0gKK8KgIFVOU1BF Q19USF9WTFNXCitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNYTUVNX09Q IFsKK8KgIFVOU1BFQ19USF9WTFhCCivCoCBVTlNQRUNfVEhfVkxYSAorwqAgVU5TUEVDX1RIX1ZM WFcKK8KgIFVOU1BFQ19USF9WU1VYQgorwqAgVU5TUEVDX1RIX1ZTVVhICivCoCBVTlNQRUNfVEhf VlNVWFcKK10pCisKIChkZWZpbmVfbW9kZV9pdGVyYXRvciBWX1ZMU19WVCBbViBWTFMgVlRdKQog KGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZfVkJfVkxTX1ZUIFtWIFZCIFZMUyBWVF0pCiAKQEAgLTEw MCwzICsxODgsMTY4IEBACiDCoCB9CiDCoCBbKHNldF9hdHRyICJ0eXBlIiAidmxkbSx2c3RtLHZt YWx1LHZtYWx1LHZtYWx1IikKwqAgwqAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorCiso ZGVmaW5lX2V4cGFuZCAiQHByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiKQorwqAg wqAgKGlmX3RoZW5fZWxzZTpWX1ZMUworwqAgwqAgwqAgKHVuc3BlYzo8Vk0+CisgWyhtYXRjaF9v cGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIpCivCoCAobWF0Y2hfb3BlcmFuZCA0 ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiKQorwqAgKG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50 X29wZXJhbmQiKQorwqAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiKQorwqAg KG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiKQorwqAgKHJlZzpTSSBWTF9SRUdO VU0pCivCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WTE1FTV9PUCkKK8KgIMKg IMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDMgInZlY3Rvcl9tb3ZlX29wZXJhbmQiKQorwqAgwqAg wqAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiKSkpXQorwqAg IlRBUkdFVF9YVEhFQURWRUNUT1IiCivCoCB7fSkKKworKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KnByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6Vl9WTFMgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiIMKgIMKgICI9dnIswqAgwqAgdnIs wqAgwqAgdmQsIMKgIMKgIG0swqAgwqAgdnIswqAgwqAgdnIiKQorwqAgwqAgKGlmX3RoZW5fZWxz ZTpWX1ZMUworwqAgwqAgwqAgKHVuc3BlYzo8Vk0+CisgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAi dmVjdG9yX21hc2tfb3BlcmFuZCLCoCDCoCAidm1XYzEsIMKgIFdjMSzCoCDCoCB2bSwgdm1XYzEs IMKgIFdjMSwgwqAgV2MxIikKK8KgIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3Bl cmFuZCIgwqAgwqAgwqAgIiDCoCBySyzCoCDCoCBySyzCoCDCoCBySyzCoCDCoCBySyzCoCDCoCBy SyzCoCDCoCBySyIpCivCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCLCoCDC oCAiwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSIp CivCoCAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCLCoCDCoCAiwqAgwqAgaSwg wqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSIpCivCoCAobWF0Y2hf b3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCLCoCDCoCAiwqAgwqAgaSwgwqAgwqAgaSwgwqAg wqAgaSwgwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSIpCivCoCAocmVnOlNJIFZMX1JFR05VTSkK K8KgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMTUVNX09QKQorwqAgwqAgwqAg KG1hdGNoX29wZXJhbmQ6Vl9WTFMgMyAicmVnX29yX21lbV9vcGVyYW5kIiDCoCDCoCDCoCAiwqAg wqAgbSwgwqAgwqAgbSwgwqAgwqAgbSzCoCDCoCB2cizCoCDCoCB2cizCoCDCoCB2ciIpCivCoCDC oCDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgwqAgwqAg IsKgIMKgIDAswqAgwqAgdnUswqAgwqAgdnUswqAgwqAgdnUswqAgwqAgdnUsIMKgIMKgIDAiKSkp XQorwqAgIihUQVJHRVRfWFRIRUFEVkVDVE9SCivCoCDCoCAmJiAocmVnaXN0ZXJfb3BlcmFuZCAo b3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpCisgfHwgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNb M10sIDxNT0RFPm1vZGUpKSkiCivCoCAiQAorIMKgIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUz JXAxCisgwqAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMKKyDCoCB2bDx2bG1lbV9vcF9hdHRy Pi52XHQlMCwlMywlMS50CisgwqAgdnM8dmxtZW1fb3BfYXR0cj4udlx0JTMsJTAlcDEKKyDCoCB2 bXYudi52XHQlMCwlMworIMKgIHZtdi52LnZcdCUwLCUzIgorwqAgIiYmIHJlZ2lzdGVyX29wZXJh bmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQorIMKgICYmIHJlZ2lzdGVyX29wZXJhbmQgKG9w ZXJhbmRzWzNdLCA8TU9ERT5tb2RlKQorIMKgICYmIHNhdGlzZmllc19jb25zdHJhaW50X3Z1IChv cGVyYW5kc1syXSkKKyDCoCAmJiBJTlRWQUwgKG9wZXJhbmRzWzddKSA9PSByaXNjdl92ZWN0b3I6 OlZMTUFYIgorwqAgWyhzZXQgKG1hdGNoX2R1cCAwKSAobWF0Y2hfZHVwIDMpKV0KK8KgICIiCivC oCBbKHNldF9hdHRyICJ0eXBlIiAidmxkZSx2bGRlLHZsZGUsdnN0ZSx2aW1vdix2aW1vdiIpCisg wqAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorCisoZGVmaW5lX2luc24gIkBwcmVkX3N0 b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 VkkgMCAibWVtb3J5X29wZXJhbmQiIMKgICIrbSIpCisgKGlmX3RoZW5fZWxzZTpWSQorIMKgICh1 bnNwZWM6PFZNPgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29w ZXJhbmQiICJ2bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCAzICJ2ZWN0b3JfbGVuZ3Ro X29wZXJhbmQiwqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0ICJjb25z dF9pbnRfb3BlcmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpTSSBWTF9SRUdOVU0pCivC oCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU01FTV9PUCkKKyDCoCAo bWF0Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9vcGVyYW5kIsKgICLCoCDCoCB2ciIpCisgwqAg KG1hdGNoX2R1cCAwKSkpXQorwqAgIlRBUkdFVF9YVEhFQURWRUNUT1IiCivCoCAidnM8dmxtZW1f b3BfYXR0cj4udlx0JTIsJTAlcDEiCivCoCBbKHNldF9hdHRyICJ0eXBlIiAidnN0ZSIpCisgwqAg KHNldF9hdHRyICJtb2RlIiAiPE1PREU+IikKKyDCoCAoc2V0IChhdHRyICJhdmxfdHlwZV9pZHgi KSAoY29uc3RfaW50IDQpKQorIMKgIChzZXRfYXR0ciAidmxfb3BfaWR4IiAiMyIpXSkKKworKGRl ZmluZV9pbnNuICJAcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4i CivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiDCoCDCoCDC oCAiPXZyLMKgIMKgIHZyLMKgIMKgIHZkIikKKyAoaWZfdGhlbl9lbHNlOlZJCisgwqAgKHVuc3Bl Yzo8Vk0+CisgwqAgwqAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFu ZCIgInZtV2MxLCDCoCBXYzEswqAgwqAgdm0iKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNSAi dmVjdG9yX2xlbmd0aF9vcGVyYW5kIsKgIMKgICIgwqAgcksswqAgwqAgcksswqAgwqAgcksiKQor wqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiICLCoCDCoCBpLCDC oCDCoCBpLCDCoCDCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9v cGVyYW5kIiAiwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSIpCivCoCDCoCDCoCAobWF0Y2hfb3Bl cmFuZCA4ICJjb25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGkiKQor wqAgwqAgwqAgKHJlZzpTSSBWTF9SRUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05V TSldIFVOU1BFQ19USF9WTFNNRU1fT1ApCisgwqAgKHVuc3BlYzpWSQorIMKgIMKgIFsobWF0Y2hf b3BlcmFuZDpWSSAzICJtZW1vcnlfb3BlcmFuZCLCoCAiwqAgwqAgbSwgwqAgwqAgbSwgwqAgwqAg bSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0ICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiDC oCAiIMKgIHJKLMKgIMKgIHJKLMKgIMKgIHJKIildIFVOU1BFQ19USF9WTFNNRU1fT1ApCisgwqAg KG1hdGNoX29wZXJhbmQ6VkkgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiwqAgwqAgwqAgIsKgIMKg IDAswqAgwqAgdnUswqAgwqAgdnUiKSkpXQorwqAgIlRBUkdFVF9YVEhFQURWRUNUT1IiCivCoCAi dmxzPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzLCV6NCVwMSIKK8KgIFsoc2V0X2F0dHIgInR5cGUi ICJ2bGRzIikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfaW5z biAiQHByZWRfc3RyaWRlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgIm1lbW9yeV9vcGVyYW5kIiDCoCAiK20iKQorIChpZl90 aGVuX2Vsc2U6VkkKKyDCoCAodW5zcGVjOjxWTT4KKyDCoCDCoCBbKG1hdGNoX29wZXJhbmQ6PFZN PiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJh bmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIsKgIMKgICIgwqAgcksiKQorwqAgwqAgwqAgKG1h dGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiICLCoCDCoCBpIikKK8KgIMKgIMKgIChy ZWc6U0kgVkxfUkVHTlVNKQorwqAgwqAgwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VEhfVlNTTUVNX09QKQorIMKgICh1bnNwZWM6VkkKKyDCoCDCoCBbKG1hdGNoX29wZXJhbmQgMiAi cG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgwqAgIiDCoCBySiIpCivCoCDCoCDCoCAobWF0Y2hfb3Bl cmFuZDpWSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiDCoCDCoCDCoCAiIMKgIHZyIildIFVOU1BFQ19U SF9WU1NNRU1fT1ApCisgwqAgKG1hdGNoX2R1cCAwKSkpXQorwqAgIlRBUkdFVF9YVEhFQURWRUNU T1IiCivCoCAidnNzPHZsbWVtX29wX2F0dHI+LnZcdCUzLCUwLCV6MiVwMSIKK8KgIFsoc2V0X2F0 dHIgInR5cGUiICJ2c3RzIikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQorIMKgIChz ZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChjb25zdF9pbnQgNSkpXSkKKworKGRlZmluZV9pbnNu ICJAcHJlZF9pbmRleGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWSSAwICJyZWdpc3Rlcl9vcGVyYW5kIsKgIMKgIMKgICI9dmQsIHZy LHZkLCB2ciIpCisgKGlmX3RoZW5fZWxzZTpWSQorIMKgICh1bnNwZWM6PFZNPgorIMKgIMKgIFso bWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiwqAgIiB2bSxXYzEsdm0s V2MxIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDUgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIg wqAgwqAgIiBySywgckssckssIHJLIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0 X2ludF9vcGVyYW5kIsKgICLCoCBpLMKgIGksIGkswqAgaSIpCivCoCDCoCDCoCAobWF0Y2hfb3Bl cmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCLCoCAiwqAgaSzCoCBpLCBpLMKgIGkiKQorwqAgwqAg wqAgKG1hdGNoX29wZXJhbmQgOCAiY29uc3RfaW50X29wZXJhbmQiwqAgIsKgIGkswqAgaSwgaSzC oCBpIikKK8KgIMKgIMKgIChyZWc6U0kgVkxfUkVHTlVNKQorwqAgwqAgwqAgKHJlZzpTSSBWVFlQ RV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxYTUVNX09QKQorIMKgICh1bnNwZWM6VkkKKyDCoCDCoCBb KG1hdGNoX29wZXJhbmQgMyAicG1vZGVfcmVnX29yXzBfb3BlcmFuZCLCoCDCoCAiIHJKLCBySixy SiwgckoiKQorwqAgwqAgwqAgKG1lbTpCTEsgKHNjcmF0Y2gpKQorwqAgwqAgwqAgKG1hdGNoX29w ZXJhbmQ6VkkgNCAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciwgdnIsdnIsIHZyIildIFVOU1BFQ19U SF9WTFhNRU1fT1ApCisgwqAgKG1hdGNoX29wZXJhbmQ6VkkgMiAidmVjdG9yX21lcmdlX29wZXJh bmQiIMKgIMKgIMKgICIgdnUsIHZ1LCAwLMKgIDAiKSkpXQorwqAgIlRBUkdFVF9YVEhFQURWRUNU T1IiCivCoCAidmx4PHZsbWVtX29wX2F0dHI+LnZcdCUwLCglejMpLCU0JXAxIgorwqAgWyhzZXRf YXR0ciAidHlwZSIgInZsZHV4IikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisK KyhkZWZpbmVfaW5zbiAiQHByZWRfaW5kZXhlZF88dmxtZW1fb3JkZXJfYXR0cj5zdG9yZV93aWR0 aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtZW06QkxLIChzY3JhdGNoKSkKKyAo dW5zcGVjOkJMSworIMKgIFsodW5zcGVjOjxWTT4KKyDCoCDCoCBbKG1hdGNoX29wZXJhbmQ6PFZN PiAwICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJh bmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIsKgIMKgICIgwqAgcksiKQorwqAgwqAgwqAgKG1h dGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiICLCoCDCoCBpIikKK8KgIMKgIMKgIChy ZWc6U0kgVkxfUkVHTlVNKQorwqAgwqAgwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VEhfVlNYTUVNX09QKQorwqAgwqAgKG1hdGNoX29wZXJhbmQgMSAicG1vZGVfcmVnX29yXzBfb3Bl cmFuZCLCoCDCoCDCoCAiwqAgckoiKQorwqAgwqAgKG1hdGNoX29wZXJhbmQ6VkkgMiAicmVnaXN0 ZXJfb3BlcmFuZCIgIsKgIHZyIikKK8KgIMKgIChtYXRjaF9vcGVyYW5kOlZJIDMgInJlZ2lzdGVy X29wZXJhbmQiwqAgIsKgIHZyIildIFVOU1BFQ19USF9WU1hNRU1fT1ApKV0KK8KgICJUQVJHRVRf WFRIRUFEVkVDVE9SIgorwqAgInZzPHZsbWVtX29yZGVyX2F0dHI+eDx2bG1lbV9vcF9hdHRyPi52 XHQlMywoJXoxKSwlMiVwMCIKK8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2c3R1eCIpCisgwqAgKHNl dF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorCisoZGVmaW5lX2V4cGFuZCAiQHByZWRfdGhfZXh0 cmFjdDxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29w ZXJhbmQiKQorICh1bnNwZWM6PFZFTD4KKyDCoCBbKHZlY19zZWxlY3Q6PFZFTD4KK8KgIMKgIMKg IChtYXRjaF9vcGVyYW5kOlZfVkxTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIikKK8KgIMKgIMKgIChw YXJhbGxlbCBbKG1hdGNoX29wZXJhbmQ6REkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKV0pKQor wqAgwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FURSkpXQorwqAgIlRB UkdFVF9YVEhFQURWRUNUT1IiCit7fSkKKworKGRlZmluZV9pbnNuICIqcHJlZF90aF9leHRyYWN0 PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFu ZCIgwqAgIj1yIikKK8KgICh1bnNwZWM6PFZFTD4KK8KgIMKgIFsodmVjX3NlbGVjdDo8VkVMPgor IMKgIMKgIMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidnIi KQorIMKgIMKgIMKgIChwYXJhbGxlbCBbKG1hdGNoX29wZXJhbmQ6REkgMiAicmVnaXN0ZXJfb3Bl cmFuZCIgInIiKV0pKQorIMKgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVE SUNBVEUpKV0KK8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorwqAgInZleHQueC52XHQlMCwlMSwl MiIKK8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2aW1vdnZ4IikKKyDCoCAoc2V0X2F0dHIgIm1vZGUi ICI8TU9ERT4iKV0pCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjRlMTkyYmJmMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jCkBAIC0wLDAgKzEs NjggQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1y djMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLworLyogeyBkZy1maW5hbCB7 IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLworI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIgorCisvKgorKiogZjE6CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxt YQorKiogdGgudmxiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bGJcLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZbMC05XSss XHMqdlswLTldKworKiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0r CisqKiB0aC52c2JcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQg ZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0KQoreworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNj dl90aF92bGJfdl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3Zf dGhfdmxiX3ZfaTMybTFfdHUgKHYsIGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jp c2N2X3ZhZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19y aXNjdl92YWRkX3Z2X2kzMm0xX3R1ICh2MywgdjIsIHYyLCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhf dnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxp XHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxi LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudnZcdHZbMC05XSss XHMqdlswLTldKyxccyp2WzAtOV0rCisqKiB0aC52YWRkXC52dlx0dlsxLTldWzAtOV0/LFxzKnZb MC05XSssXHMqdlswLTldKyxccyp2MC50CisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05 XStcKQorKiogcmV0CisqLwordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQpCit7CivCoCDC oCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAo IiI6OjoibWVtb3J5Iik7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kz Mm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJt MV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z2 X2kzMm0xICh2MiwgdjIsIDQpOworwqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92 dl9pMzJtMV9tIChtYXNrLCB2MywgdjMsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2Jfdl9pMzJt MSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTld Kyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkK KyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0aC52bGJcLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYw LnQKKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldKworKiogdGgu dmFkZFwudnZcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKnZbMC05XSssXHMqdjAudAorKiog dGgudnNiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjMgKHZv aWQgKiBpbiwgdm9pZCAqb3V0KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJf dCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdmludDMy bTFfdCB2ID0gX19yaXNjdl90aF92bGJfdl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFf dCB2MiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOworwqAg wqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsKK8Kg IMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfdHVtdSAobWFzaywgdjMs IHYyLCB2MiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0xIChvdXQsIHY0LCA0KTsK K30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsYnUtdnNiLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bGJ1LXZzYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi4xNTM4YWZlYzY4ZQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMKQEAgLTAsMCArMSw2OCBAQAor LyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0 aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2st ZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgi CisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0 aC52bGJ1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bGJ1XC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0x NgorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZzYlwu dlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMSAodm9pZCAqIGlu LCB2b2lkICpvdXQsIHVpbnQzMl90IHgpCit7CivCoCDCoCB2dWludDMybTFfdCB2ID0gX19yaXNj dl90aF92bGJ1X3ZfdTMybTEgKGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYyID0gX19yaXNj dl90aF92bGJ1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYzID0g X19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHY0 ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jp c2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiogdGgu dnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTld KywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoq IHRoLnZsYnUudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52aVx0 dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxc cyp2WzAtOV0rLFxzKi0xNixccyp2MC50CisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05 XStcKQorKiogcmV0CisqLwordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90 IHgpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFz bSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2dWludDMybTFfdCB2ID0gX19yaXNj dl90aF92bGJ1X3ZfdTMybTEgKGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYyID0gX19yaXNj dl90aF92bGJ1X3ZfdTMybTFfbSAobWFzaywgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3Qg djQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7CivCoCDCoCBf X3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYzOgorKiog dGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUK KyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYnUudlx0dlsw LTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAt OV0rLFxzKi0xNgorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0x Nixccyp2MC50CisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0Cisq Lwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpCit7CivCoCDCoCB2 Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6 OjoibWVtb3J5Iik7CivCoCDCoCB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJ1X3ZfdTMy bTEgKGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJ1X3ZfdTMy bTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2 X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOworwqAgwqAgX19y aXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94 dGhlYWR2ZWN0b3IvdmxoLXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5iZjQ5MjRhMWQ3NgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYwpAQCAtMCwwICsxLDY4IEBA CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdj eHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVj ay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCIKKworLyoKKyoqIGYxOgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoq IHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxoXC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0x NgorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZzaFwu dlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMSAodm9pZCAqIGlu LCB2b2lkICpvdXQsIGludDMyX3QgeCkKK3sKK8KgIMKgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3Zf dGhfdmxoX3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3Ro X3ZsaF92X2kzMm0xX3R1ICh2LCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNj dl92YWRkX3Z4X2kzMm0xICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnhfaTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhf dnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxp XHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxo LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudmlcdHZbMC05XSss XHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTld KyxccyotMTYsXHMqdjAudAorKiogdGgudnNoLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoq IHJldAorKi8KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivC oCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGls ZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaF92 X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGhfdl9p MzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRk X3Z4X2kzMm0xICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfaTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92 X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYzOgorKiogdGgudnNldHZsaVx0W2Et eDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05 XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUKKyoqIHRoLnZsaFwudlx0 dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxoLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCksdjAudAorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRo LnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudAorKiogdGgu dnNoLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjMgKHZvaWQg KiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoo dmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivCoCDC oCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2 aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGhfdl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwg NCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgLTE2 LCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHVtdSAo bWFzaywgdjMsIHYyLCAtMTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0 LCB2NCwgNCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNo LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhjNDUxODQ1MTc1Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxodS12c2guYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWls cDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioq IiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiog dGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsaHVcLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoq IHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0 dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNoXC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAo aW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90 dSAodiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhf dTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEg KG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSss emVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxodS52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSss XHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxz KnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2 b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29s MzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJt ZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAo aW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV9t IChtYXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92 eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMy bTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05 XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxodVwudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudmxodS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp LHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZz aC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lkICog aW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2 Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKg IHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAg dnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dW11IChtYXNrLCB2LCBp biwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIs IC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90 dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92X3UzMm0x IChvdXQsIHY0LCA0KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHct dnN3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBmNWIwOTY4NGE1 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94 dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jCkBAIC0wLDAgKzEsNjggQEAKKy8qIHsgZGctZG8gY29tcGls ZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9 aWxwMzJkIC1PMyIgfSAqLworLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAi KioiICIiIH0gfSAqLworI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIgorCisvKgorKiogZjE6Cisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQorKiogdGgudmx3XC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoq IHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rCisqKiB0aC52YWRk XC52eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKworKiogdGgudnN3XC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQg Km91dCwgaW50MzJfdCB4KQoreworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHdf dl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3X3Zf aTMybTFfdHUgKHYsIGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTEgKHYyLCB4LCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTFfdHUgKHYzLCB2MiwgeCwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3Zzd192X2kzMm0x IChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0r LHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQor KiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRoLnZsdy52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSss XHMqW2EteDAtOV0rCisqKiB0aC52YWRkXC52eFx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMq W2EteDAtOV0rLFxzKnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQorewor wqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRp bGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHdf dl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3X3Zf aTMybTFfbSAobWFzaywgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFk ZF92eF9pMzJtMSAodjIsIHgsIDQpOworwqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF9pMzJtMV9tIChtYXNrLCB2MywgeCwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3Zzd192X2kz Mm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYzOgorKiogdGgudnNldHZsaVx0W2EteDAt OV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStc KQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUKKyoqIHRoLnZsd1wudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudmx3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCks djAudAorKiogdGgudmFkZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoq IHRoLnZhZGRcLnZ4XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccypbYS14MC05XSssXHMqdjAu dAorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQg ZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3Qg bWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5 Iik7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV90dW11IChtYXNr LCB2LCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0x ICh2MiwgeCwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0x X3R1bXUgKG1hc2ssIHYzLCB2MiwgeCwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3Zzd192X2kzMm0x IChvdXQsIHY0LCA0KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZz dy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 dS12c3cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWFhNzViZTAy M2QKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jCkBAIC0wLDAgKzEsNjggQEAKKy8qIHsgZGctZG8gY29t cGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1h Ymk9aWxwMzJkIC1PMyIgfSAqLworLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGll cyAiKioiICIiIH0gfSAqLworI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIgorCisvKgorKiogZjE6 CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQorKiogdGgudmx3dVwudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudmx3dVwudlx0dlswLTldKywwXChbYS14MC05XStc KQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRc LnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52c3dcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1 aW50MzJfdCB4KQoreworwqAgwqAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3dV92X3Uz Mm0xIChpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3dV92X3Uz Mm0xX3R1ICh2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92 eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c3dfdl91 MzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFthLXgw LTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hCisqKiB0aC52bHd1LnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlsw LTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyot MTYsXHMqdjAudAorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAor Ki8KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQoreworwqAgwqAg dmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIi Ojo6Im1lbW9yeSIpOworwqAgwqAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3dV92X3Uz Mm0xIChpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3dV92X3Uz Mm0xX20gKG1hc2ssIGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRk X3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92 YWRkX3Z4X3UzMm0xX20gKG1hc2ssIHYzLCAtMTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c3df dl91MzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlcdFth LXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0aC52bHd1XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bHd1LnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCksdjAudAorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoq IHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudAorKiog dGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjMgKHZv aWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sg PSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOwor wqAgwqAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xIChpbiwgNCk7CivC oCDCoCB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xX3R1bXUgKG1hc2ss IHYsIGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0x ICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3Uz Mm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3Zf dTMybTEgKG91dCwgdjQsIDQpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLS0gCjIu MTcuMQogCiAKIAogCgoKCgoKCg==