From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by sourceware.org (Postfix) with ESMTPS id A1B393858D1E for ; Fri, 12 Jan 2024 01:09:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A1B393858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A1B393858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.243.244.52 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705021755; cv=none; b=FY02HHftVTVAVxH+Z78EUsQ4s6iWKst+eZLemI6pyz+oQ2X/+sgkWMtfT8V6dC/3XSWjDHIvWgVK3yDQtupVZAlHz1Xoxge+/yBDbMpwfEOYpkFxgqMVg4LCaE1VUTu/17hZEYX28jtEjfCG+Q6tMfrpjquiI359rJWl+VF2tMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705021755; c=relaxed/simple; bh=2lspukiOGJoOlFXyCEWmSiDf9q/hqQQCjH578BY6vxU=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=htjfHdZxUb6avMvDRm2RV9CY/DpBRxnbJiSU4GMPJ+fQM5LUseRSsGRBCHFvlRR+8Kak5HOEAUp3wWRfI2Q2q4qRfIxKoxbhnEcxuB/J8FMVKAzIFZ0hTLUBkiDkSonw522aWo6lEw03uhM6+5Q5FF0O+RPKcOzn3t4FP+t5jcM= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp77t1705021724twqa8qs5 Received: from LAPTOP-EPITNQBU ( [121.35.183.89]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 12 Jan 2024 09:08:42 +0800 (CST) X-QQ-SSF: 00400000000000G0V000000A0000000 X-QQ-FEAT: Xz3VOcA7Mr2JR3YXGD3DYGguV4C+Yfu/BvdHEraI5xrudKj/14TtYwmlDnxZv kb6F4RiOgnP+Z2zne2sIZbGcd8MSr1/QkNvHWRtWBDco/ObHOGxRL5JMUlgzBDHtRg64LLZ QXAl+NmEfeAqFP0xB+PLmDpzH0qkuiKfW+qb/Tj1LdjEHr3rigdzYVeXf52bcpXUy6zpO6M fo701l8xSZL1mCfIGlOPODPLYy0aUAVzwx8nIWdeMJNqPT/a2zQPX6wjENJLgQ8RVucuUL/ 5Y/5xHiw22ndVOJcH/WvghPHKeJif4uwvtMPRgzboXVN+Jkr8LW7uY3X7mrltWKmlwSkr0p mfhnSIx6RAPW2O7UHjJauLP0QOY+1nbiGEf4CmTrsdpFjjPz+/SmB2YO+bacDMwDd6GEhyy 4vEoGp4UHIRmB365cNk98cYNaAR/tJYPtkkpfi+2eMI= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 4114449839527582065 Date: Fri, 12 Jan 2024 09:08:42 +0800 From: "juzhe.zhong@rivai.ai" To: cooper.joshua , gcc-patches Cc: "Jim Wilson" , palmer , andrew , philipp.tomsich , jeffreyalaw , christoph.muellner , jinma , cooper.qu Subject: =?GB2312?B?UmU6ILvYuLSjultQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3Mu?= References: , <98151345-52d3-4349-9cdb-f3562cd9ec76.cooper.joshua@linux.alibaba.com> X-Priority: 3 X-GUID: A431E6CA-4644-48F4-BF35-F9079291C7A6 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <4150D6592EA7D99F+202401120908422274242@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart521740802630_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,BODY_8BITS,CHARSET_FARAWAY_HEADER,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_CHARSET_FARAWAY,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart521740802630_=---- Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 T2suIE1ha2Ugc2Vuc2UgdG8gbWUuDQoNCkxHVE0gYXMgbG9uZyBhcyB5b3Ug cmVtb3ZlZCAhVEFSR0VUX1RIRUFEVkVDVE9SIGluIHNleHQvemV4dCBwYXR0 ZXJucy4NCg0KDQoNCg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0Kt6K8 /sjLo7ogam9zaHVhDQq3osvNyrG85KO6IDIwMjQtMDEtMTIgMDg6NDkNCsrV vP7Iy6O6INbTvtPV3DsgZ2NjLXBhdGNoZXMNCrOty82juiBqaW0ud2lsc29u LmdjYzsgcGFsbWVyOyBhbmRyZXc7IHBoaWxpcHAudG9tc2ljaDsgSmVmZiBM YXc7IENocmlzdG9waCBNqLlsbG5lcjsgamlubWE7IENvb3BlciBRdQ0K1vfM 4qO6ILvYuLSjulJlo7pbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQg Zm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLg0KVGhlIGNo YW5nZXMgdG8gbG11bCBhbmQgc2V3IGFyZSBvbmx5IGRvbmUgZm9yIHZib29s LA0Kd2hpY2ggaXMgUlZWTUY2NEJJL1JWVk1GMzJCSS9SVlZNRjE2QkksIGlu IHRoZQ0KaW50cmluc2ljcyB3aXRoIG1hc2suIFRoYXQgaXMgYmVjYXVzZSB0 aGVhZHZlY3RvciBoYXMgbm8NCmxvYWQvc3RvcmUgbWFzayBpbnN0cnVjdGlv bnMuDQpsbXVsIGFuZCBzZXcgaW4gb3RoZXIgbm9uLWJvb2wgdHlwZXMgZG8g bm90IG5lZWQNCnRvIGJlIG1vZGlmaWVkLiBJIGRvbqGvdCB0aGluayBkaXJl Y3RseSBjaGFuZ2UgZ2V0X3Nldw0KYW5kIGdldF92bG11bCBpcyByZWFzb25h YmxlLg0KDQorCShhbmQgKGVxX2F0dHIgInR5cGUiICJ2bGRlLHZzdGUsdmxz ZWdkZSx2c3NlZ3RlLHZsc2VnZHMsdnNzZWd0cyxcCisJCQkgICAgICAgdmxz ZWdkZmYsdnNzZWd0dXgsdmxzZWdkb3gsdmxzZWdkdXgiKQorCSAgICAgICht YXRjaF90ZXN0ICJUQVJHRVRfWFRIRUFEVkVDVE9SIikpCisJICAgKGNvbnN0 X2ludCBJTlZBTElEX0FUVFJJQlVURSlXaHkgZG8geW91IGFkZCB0aGlzID8N CnRoZWFkdmVjdG9yIGRvZXMgbm90IGhhdmUgc2V3IGluIGxvYWQvc3RvcmVp bnN0cnVjdGlvbnMuIEluIE8yLCB2ZWN0b3Igd2lsbCByZW1vdmUgb25ldnNl dHZsIGZvciB0d28gY29uc2VjdXRpdmUgdmxlIHdpdGggZGlmZmVyZW50c2V3 LiBIb3dldmVyLCB0aGluZ3Mgd2lsbCBnbyB3cm9uZyB1bmRlciB0aGlzb3B0 aW1pemF0aW9uIGZvciB0aGVhZHZlY3Rvci4NCg0KDQoNCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0Kt6K8/sjLo7rW077T1dwgPGp1emhlLnpob25nQHJpdmFp LmFpPg0Kt6LLzcqxvOSjujIwMjTE6jHUwjEyyNUo0MfG2s7lKSAwNzoyMg0K ytW8/sjLo7oiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5h bGliYWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdu dS5vcmc+DQqzraGhy82juiJqaW0ud2lsc29uLmdjYyI8amltLndpbHNvbi5n Y2NAZ21haWwuY29tPjsgcGFsbWVyPHBhbG1lckBkYWJiZWx0LmNvbT47IGFu ZHJldzxhbmRyZXdAc2lmaXZlLmNvbT47ICJwaGlsaXBwLnRvbXNpY2giPHBo aWxpcHAudG9tc2ljaEB2cnVsbC5ldT47IEplZmYgTGF3PGplZmZyZXlhbGF3 QGdtYWlsLmNvbT47ICJDaHJpc3RvcGggTai5bGxuZXIiPGNocmlzdG9waC5t dWVsbG5lckB2cnVsbC5ldT47IGppbm1hPGppbm1hQGxpbnV4LmFsaWJhYmEu Y29tPjsgQ29vcGVyIFF1PGNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNvbT4N Ctb3oaHM4qO6UmU6IFJlo7pbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBv cnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLg0KDQpB bHNvLCB5b3UgZG9uJ3QgbmVlZCB0byBjaGFuZ2UgdGhlc2U6DQoNCi1FTlRS WSAoUlZWTUY2NEJJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgTE1VTF9GOCwg NjQpCi1FTlRSWSAoUlZWTUYzMkJJLCB0cnVlLCBMTVVMX0Y0LCAzMikKLUVO VFJZIChSVlZNRjE2QkksIHRydWUsIExNVUxfRjIsIDE2KQorRU5UUlkgKFJW Vk1GNjRCSSwgVEFSR0VUX01JTl9WTEVOID4gMzIsIFRBUkdFVF9YVEhFQURW RUNUT1IgPyBMTVVMXzEgOkxNVUxfRjgsIDY0KQorRU5UUlkgKFJWVk1GMzJC SSwgdHJ1ZSwgVEFSR0VUX1hUSEVBRFZFQ1RPUiA/IExNVUxfMSA6TE1VTF9G NCwgMzIpCitFTlRSWSAoUlZWTUYxNkJJLCB0cnVlLCBUQVJHRVRfWFRIRUFE VkVDVE9SID8gTE1VTF8xIDogTE1VTF9GMiAsIDE2KQ0KWW91IHNob3VsZCBz cGVjaWZ5IHRoZXNlIGNhc2VzIGluIA0KDQplbnVtIHZsbXVsX3R5cGUNCmdl dF92bG11bCAobWFjaGluZV9tb2RlIG1vZGUpDQoNCkFuZCBkb24ndCBjaGFu Z2U6DQoNCiAoZGVmaW5lX2F0dHIgInNldyIgIiIKLSAgKGNvbmQgWyhlcV9h dHRyICJtb2RlIiAiUlZWTUY2NEJJLFJWVk1GMzJCSSxSVlZNRjE2QkksUlZW TUY4QkksUlZWTUY0QkksUlZWTUYyQkksUlZWTTFCSSxcCisgIChjb25kIFso ZXFfYXR0ciAibW9kZSIgIlJWVk1GOEJJLFJWVk1GNEJJLFJWVk1GMkJJLFJW Vk0xQkksXAogCQkJICBSVlZNOFFJLFJWVk00UUksUlZWTTJRSSxSVlZNMVFJ LFJWVk1GMlFJLFJWVk1GNFFJLFJWVk1GOFFJLFwKIAkJCSAgUlZWTTF4OFFJ LFJWVk1GMng4UUksUlZWTUY0eDhRSSxSVlZNRjh4OFFJLFwKIAkJCSAgUlZW TTF4N1FJLFJWVk1GMng3UUksUlZWTUY0eDdRSSxSVlZNRjh4N1FJLFwKQEAg LTk5LDYgKzk5LDE4IEBACiAJCQkgIFYxUUksVjJRSSxWNFFJLFY4UUksVjE2 UUksVjMyUUksVjY0UUksVjEyOFFJLFYyNTZRSSxWNTEyUUksVjEwMjRRSSxW MjA0OFFJLFY0MDk2UUksXAogCQkJICBWMUJJLFYyQkksVjRCSSxWOEJJLFYx NkJJLFYzMkJJLFY2NEJJLFYxMjhCSSxWMjU2QkksVjUxMkJJLFYxMDI0Qkks VjIwNDhCSSxWNDA5NkJJIikKIAkgKGNvbnN0X2ludCA4KQorCSAoZXFfYXR0 ciAibW9kZSIgIlJWVk1GMTZCSSIpCisJICAgKGlmX3RoZW5fZWxzZSAobWF0 Y2hfdGVzdCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIpCisJICAgICAoY29uc3Rf aW50IDE2KQorCSAgICAgKGNvbnN0X2ludCA4KSkKKwkgKGVxX2F0dHIgIm1v ZGUiICJSVlZNRjMyQkkiKQorCSAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX3Rl c3QgIlRBUkdFVF9YVEhFQURWRUNUT1IiKQorCSAgICAgKGNvbnN0X2ludCAz MikKKwkgICAgIChjb25zdF9pbnQgOCkpCisJIChlcV9hdHRyICJtb2RlIiAi UlZWTUY2NEJJIikKKwkgICAoaWZfdGhlbl9lbHNlIChtYXRjaF90ZXN0ICJU QVJHRVRfWFRIRUFEVkVDVE9SIikKKwkgICAgIChjb25zdF9pbnQgNjQpCisJ ICAgICAoY29uc3RfaW50IDgpKQogCSAoZXFfYXR0ciAibW9kZSIgIlJWVk04 SEksUlZWTTRISSxSVlZNMkhJLFJWVk0xSEksUlZWTUYySEksUlZWTUY0SEks XAogCQkJICBSVlZNMXg4SEksUlZWTUYyeDhISSxSVlZNRjR4OEhJLFwKIAkJ CSAgUlZWTTF4N0hJLFJWVk1GMng3SEksUlZWTUY0eDdISSxcCkBAIC0xNTks OSArMTcxLDkgQEAKIAkgKGVxX2F0dHIgIm1vZGUiICJSVlZNNFFJLFJWVk1G MkJJIikgKHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6TE1VTF80IikKIAkg KGVxX2F0dHIgIm1vZGUiICJSVlZNMlFJLFJWVk1GNEJJIikgKHN5bWJvbF9y ZWYgInJpc2N2X3ZlY3Rvcjo6TE1VTF8yIikKIAkgKGVxX2F0dHIgIm1vZGUi ICJSVlZNMVFJLFJWVk1GOEJJIikgKHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rv cjo6TE1VTF8xIikKLQkgKGVxX2F0dHIgIm1vZGUiICJSVlZNRjJRSSxSVlZN RjE2QkkiKSAoc3ltYm9sX3JlZiAicmlzY3ZfdmVjdG9yOjpMTVVMX0YyIikK LQkgKGVxX2F0dHIgIm1vZGUiICJSVlZNRjRRSSxSVlZNRjMyQkkiKSAoc3lt Ym9sX3JlZiAicmlzY3ZfdmVjdG9yOjpMTVVMX0Y0IikKLQkgKGVxX2F0dHIg Im1vZGUiICJSVlZNRjhRSSxSVlZNRjY0QkkiKSAoc3ltYm9sX3JlZiAicmlz Y3ZfdmVjdG9yOjpMTVVMX0Y4IikKKwkgKGVxX2F0dHIgIm1vZGUiICJSVlZN RjJRSSxSVlZNRjE2QkkiKSAoc3ltYm9sX3JlZiAiVEFSR0VUX1hUSEVBRFZF Q1RPUiA/IHJpc2N2X3ZlY3Rvcjo6TE1VTF8xIDogcmlzY3ZfdmVjdG9yOjpM TVVMX0YyIikKKwkgKGVxX2F0dHIgIm1vZGUiICJSVlZNRjRRSSxSVlZNRjMy QkkiKSAoc3ltYm9sX3JlZiAiVEFSR0VUX1hUSEVBRFZFQ1RPUiA/IHJpc2N2 X3ZlY3Rvcjo6TE1VTF8xIDogcmlzY3ZfdmVjdG9yOjpMTVVMX0Y0IikKKwkg KGVxX2F0dHIgIm1vZGUiICJSVlZNRjhRSSxSVlZNRjY0QkkiKSAoc3ltYm9s X3JlZiAiVEFSR0VUX1hUSEVBRFZFQ1RPUiA/IHJpc2N2X3ZlY3Rvcjo6TE1V TF8xIDogcmlzY3ZfdmVjdG9yOjpMTVVMX0Y4IilZb3Ugc2hvdWxkIGNoYW5n ZSANCi8qIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgU0VXIG9wZXJhbmQuIFdl IGFsd2F5cyBoYXZlIFNFVyB2YWx1ZSBmb3INCiAgIGFsbCBSVlYgaW5zdHJ1 Y3Rpb25zIHRoYXQgaGF2ZSBWVFlQRSBPUC4gICovDQp1aW50OF90DQpnZXRf c2V3IChydHhfaW5zbiAqcmluc24pDQp7DQogIHJldHVybiBnZXRfYXR0cl9z ZXcgKHJpbnNuKTsNCn0NCg0KLyogSGVscGVyIGZ1bmN0aW9uIHRvIGdldCBW TE1VTCBvcGVyYW5kLiBXZSBhbHdheXMgaGF2ZSBWTE1VTCB2YWx1ZSBmb3IN CiAgIGFsbCBSVlYgaW5zdHJ1Y3Rpb25zIHRoYXQgaGF2ZSBWVFlQRSBPUC4g Ki8NCmVudW0gdmxtdWxfdHlwZQ0KZ2V0X3ZsbXVsIChydHhfaW5zbiAqcmlu c24pDQp7DQogIHJldHVybiAoZW51bSB2bG11bF90eXBlKSBnZXRfYXR0cl92 bG11bCAocmluc24pOw0KfQ0KKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAidmxk ZSx2c3RlLHZsc2VnZGUsdnNzZWd0ZSx2bHNlZ2RzLHZzc2VndHMsXAorCQkJ ICAgICAgIHZsc2VnZGZmLHZzc2VndHV4LHZsc2VnZG94LHZsc2VnZHV4IikK KwkgICAgICAobWF0Y2hfdGVzdCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIpKQor CSAgIChjb25zdF9pbnQgSU5WQUxJRF9BVFRSSUJVVEUpV2h5IGRvIHlvdSBh ZGQgdGhpcyA/DQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCreivP7I y6O6IGpvc2h1YQ0Kt6LLzcqxvOSjuiAyMDI0LTAxLTExIDIyOjExDQrK1bz+ yMujuiBqdXpoZS56aG9uZ0ByaXZhaS5haTsgZ2NjLXBhdGNoZXMNCrOty82j uiBKaW0gV2lsc29uOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNo OyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqaW5tYTsgY29v cGVyLnF1DQrW98zio7ogUmWjulJlo7pbUEFUQ0ggdjVdIFJJU0MtVjogQWRk IHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNz Lg0KSXMgdGhlIHBhdGNoIHdpdGggIVRBUkdFVF9YVEhFQURWRUNUT1IgZm9y IHNleHQvemV4dA0KcGF0dGVybnMgcmVtb3ZlZCBPSyB0byBjb21taXQ/DQpo dHRwczovL2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDI0 LUphbnVhcnkvNjQyNjU3Lmh0bWwNCiANCiANCiANCiANCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0Kt6K8/sjLo7pqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6 aGUuemhvbmdAcml2YWkuYWk+DQq3osvNyrG85KO6MjAyNMTqMdTCMTHI1SjQ x8bay8QpIDE4OjU2DQrK1bz+yMujuiJjb29wZXIuam9zaHVhIjxjb29wZXIu am9zaHVhQGxpbnV4LmFsaWJhYmEuY29tPjsgImdjYy1wYXRjaGVzIjxnY2Mt cGF0Y2hlc0BnY2MuZ251Lm9yZz4NCrOtoaHLzaO6SmltIFdpbHNvbjxqaW0u d2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8cGFsbWVyQGRhYmJlbHQu Y29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxpcHAudG9t c2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFsYXc8 amVmZnJleWFsYXdAZ21haWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8 Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1PjsgamlubWE8amlubWFAbGlu dXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXgu YWxpYmFiYS5jb20+DQrW96GhzOKjulJlOiBSZaO6W1BBVENIIHY1XSBSSVND LVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50 cmluc2ljcy4NCiANCiANClllcy4NCiANCiANCmp1emhlLnpob25nQHJpdmFp LmFpDQogDQogDQq3orz+yMujuiBqb3NodWENCreiy83Ksbzko7ogMjAyNC0w MS0xMSAxODo1NA0KytW8/sjLo7oganV6aGUuemhvbmdAcml2YWkuYWk7IGdj Yy1wYXRjaGVzDQqzrcvNo7ogSmltIFdpbHNvbjsgcGFsbWVyOyBhbmRyZXc7 IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVs bG5lcjsgamlubWE7IGNvb3Blci5xdQ0K1vfM4qO6IFJlo7pbUEFUQ0ggdjVd IFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZp YyBpbnRyaW5zaWNzLg0KIA0KRG8geW91IG1lYW4gcmVtb3ZpbmcgVEFSR0VU X1hUSEVBRFZFQ1RPUiBmb3Igc2V4dC96ZXh0IHBhdHRlcm5zDQphbmQgdGhl biByZXNlbmRpbmcgdGhlICAiUklTQy1WOiBIYW5kbGUgZGlmZmVyZW5jZXMg YmV0d2VlbiBYVGhlYWR2ZWN0b3INCmFuZCBWZWN0b3IiIHBhdGNoPw0KIA0K IA0KIA0KIA0KIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQq3orz+yMujump1 emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCrei y83Ksbzko7oyMDI0xOox1MIxMcjVKNDHxtrLxCkgMTc6NTcNCsrVvP7Iy6O6 ImNvb3Blci5qb3NodWEiPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5j b20+OyAiZ2NjLXBhdGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPg0K s62hocvNo7pKaW0gV2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47 IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3QHNp Zml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hA dnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+ OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1 bGwuZXU+OyAiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5h bGliYWJhLmNvbT47IGppbm1hPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPjsg ImNvb3Blci5xdSI8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPg0K1veh oczio7pSZTogW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4 dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4NCiANCiANCkxHVE0u IENvdWxkIHlvdSByZXNlbmQgdGhlIHBhdGNoICJSSVNDLVY6IEhhbmRsZSBk aWZmZXJlbmNlcyBiZXR3ZWVuIFhUaGVhZHZlY3RvciBhbmQgVmVjdG9yDQog DQogDQpUaGFua3MuDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KIA0KRnJv bTogSnVuIFNoYSAoSm9zaHVhKQ0KRGF0ZTogMjAyNC0wMS0xMSAxNzo1Mg0K VG86IGdjYy1wYXRjaGVzDQpDQzogamltLndpbHNvbi5nY2M7IHBhbG1lcjsg YW5kcmV3OyBwaGlsaXBwLnRvbXNpY2g7IGplZmZyZXlhbGF3OyBjaHJpc3Rv cGgubXVlbGxuZXI7IGp1emhlLnpob25nOyBKdW4gU2hhIChKb3NodWEpOyBK aW4gTWE7IFhpYW5taWFvIFF1DQpTdWJqZWN0OiBbUEFUQ0ggdjVdIFJJU0Mt VjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRy aW5zaWNzLg0KIA0KVGhpcyBwYXRjaCBvbmx5IGludm9sdmVzIHRoZSBnZW5l cmF0aW9uIG9mIHh0aGVhZHZlY3Rvcg0Kc3BlY2lhbCBsb2FkL3N0b3JlIGlu c3RydWN0aW9ucyBhbmQgdmV4dCBpbnN0cnVjdGlvbnMuDQogDQpnY2MvQ2hh bmdlTG9nOg0KIA0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWJhc2VzLmNjDQooY2xhc3MgdGhfbG9hZHN0b3JlX3dpZHRoKTogRGVm aW5lIG5ldyBidWlsdGluIGJhc2VzLg0KKGNsYXNzIHRoX2V4dHJhY3QpOiBE ZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuDQooQkFTRSk6IERlZmluZSBuZXcg YnVpbHRpbiBiYXNlcy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1iYXNlcy5oOg0KRGVmaW5lIG5ldyBidWlsdGluIGNsYXNzLg0K KiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5j Yw0KKHN0cnVjdCB0aF9sb2Fkc3RvcmVfd2lkdGhfZGVmKTogRGVmaW5lIG5l dyBidWlsdGluIHNoYXBlcy4NCihzdHJ1Y3QgdGhfaW5kZXhlZF9sb2Fkc3Rv cmVfd2lkdGhfZGVmKToNCkRlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQoo c3RydWN0IHRoX2V4dHJhY3RfZGVmKTogRGVmaW5lIG5ldyBidWlsdGluIHNo YXBlcy4NCihTSEFQRSk6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQoq IGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmg6 DQpEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLg0KKiBjb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIChERUZfUlZWX0ZVTkNUSU9OKToN CiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIChlbnVt IHJlcXVpcmVkX2V4dCk6DQooc3RydWN0IGZ1bmN0aW9uX2dyb3VwX2luZm8p Og0KKiBjb25maWcvcmlzY3YvdC1yaXNjdjogQWRkIHRoZWFkLXZlY3Rvci1i dWlsdGlucy1mdW5jdGlvbnMuZGVmDQoqIGNvbmZpZy9yaXNjdi90aGVhZC12 ZWN0b3IubWQNCihAcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9k ZT4pOiBBZGQgbmV3IHBhdHRlcm5zLg0KKCpwcmVkX21vdl93aWR0aDx2bG1l bV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLg0KKEBwcmVkX3N0b3JlX3dp ZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuDQooQHByZWRf c3RyaWRlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlr ZXdpc2UuDQooQHByZWRfc3RyaWRlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9h dHRyPjxtb2RlPik6IExpa2V3aXNlLg0KKEBwcmVkX2luZGV4ZWRfbG9hZF93 aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLg0KKEBwcmVk X2luZGV4ZWRfPHZsbWVtX29yZGVyX2F0dHI+c3RvcmVfd2lkdGg8dmxtZW1f b3BfYXR0cj48bW9kZT4pOg0KKEBwcmVkX3RoX2V4dHJhY3Q8bW9kZT4pOiBM aWtld2lzZS4NCigqcHJlZF90aF9leHRyYWN0PG1vZGU+KTogTGlrZXdpc2Uu DQoqIGNvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rp b25zLmRlZjogTmV3IGZpbGUuDQogDQpnY2MvdGVzdHN1aXRlL0NoYW5nZUxv ZzoNCiANCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs Yi12c2IuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bGJ1LXZzYi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYzogTmV3IHRlc3Qu DQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZz aC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3Zsdy12c3cuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jOiBOZXcgdGVzdC4NCkNv LWF1dGhvcmVkLWJ5OiBKaW4gTWEgPGppbm1hQGxpbnV4LmFsaWJhYmEuY29t Pg0KQ28tYXV0aG9yZWQtYnk6IFhpYW5taWFvIFF1IDxjb29wZXIucXVAbGlu dXguYWxpYmFiYS5jb20+DQpDby1hdXRob3JlZC1ieTogQ2hyaXN0b3BoIE2o uWxsbmVyIDxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+DQotLS0NCi4u Li9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MgICAgICB8 IDEzOSArKysrKysrKysrDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWJhc2VzLmggICAgICAgfCAgMzEgKysrDQouLi4vcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyAgICAgfCAxNjAgKysrKysrKysr KysNCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgg ICAgICB8ICAgMyArDQpnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5jYyAgICAgfCAgNzAgKysrKysNCmdjYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggICAgICB8ICAgMyArDQpnY2MvY29u ZmlnL3Jpc2N2L3QtcmlzY3YgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg Kw0KLi4uL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMu ZGVmIHwgIDM5ICsrKw0KZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3Iu bWQgICAgICAgICAgICAgIHwgMjUwICsrKysrKysrKysrKysrKysrKw0KLi4u L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jICAgICAgICAgIHwg IDY4ICsrKysrDQouLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZz Yi5jICAgICAgICAgfCAgNjggKysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsaC12c2guYyAgICAgICAgICB8ICA2OCArKysrKw0KLi4uL3Jp c2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYyAgICAgICAgIHwgIDY4 ICsrKysrDQouLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMg ICAgICAgICAgfCAgNjggKysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3Zsd3UtdnN3LmMgICAgICAgICB8ICA2OCArKysrKw0KMTUgZmlsZXMg Y2hhbmdlZCwgMTEwNCBpbnNlcnRpb25zKCspDQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVu Y3Rpb25zLmRlZg0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYw0K Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bGgtdnNoLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92 bGh1LXZzaC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYw0KIA0KZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJh c2VzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtYmFzZXMuY2MNCmluZGV4IDFhYTZlM2M2NjY1Li5iNmY2ZTRmZjM3ZSAx MDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLWJhc2VzLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KQEAgLTIxNDEsNiArMjE0MSw4 MyBAQCBwdWJsaWM6DQogICB9DQp9Ow0KKy8qIEltcGxlbWVudHMNCisgKiB0 aC52bChiL2gvdylbdV0udi90aC52cyhiL2gvdylbdV0udi90aC52bHMoYi9o L3cpW3VdLnYvdGgudnNzKGIvaC93KVt1XS52Lw0KKyAqIHRoLnZseChiL2gv dylbdV0udi90aC52c1t1XXgoYi9oL3cpLnYNCisgKiBjb2RlZ2VuLiAgKi8N Cit0ZW1wbGF0ZTxib29sIFNUT1JFX1AsIGxzdF90eXBlIExTVF9UWVBFLCBp bnQgVU5TUEVDPg0KK2NsYXNzIHRoX2xvYWRzdG9yZV93aWR0aCA6IHB1Ymxp YyBmdW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIGJvb2wgYXBwbHlf dGFpbF9wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhU1RP UkVfUDsgfQ0KKyAgYm9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgpIGNvbnN0 IG92ZXJyaWRlIHsgcmV0dXJuICFTVE9SRV9QOyB9DQorDQorICB1bnNpZ25l ZCBpbnQgY2FsbF9wcm9wZXJ0aWVzIChjb25zdCBmdW5jdGlvbl9pbnN0YW5j ZSAmKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICBpZiAoU1RPUkVfUCkN CisgICAgICByZXR1cm4gQ1BfV1JJVEVfTUVNT1JZOw0KKyAgICBlbHNlDQor ICAgICAgcmV0dXJuIENQX1JFQURfTUVNT1JZOw0KKyAgfQ0KKw0KKyAgYm9v bCBjYW5fYmVfb3ZlcmxvYWRlZF9wIChlbnVtIHByZWRpY2F0aW9uX3R5cGVf aW5kZXggcHJlZCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgaWYgKFNU T1JFX1AgfHwgTFNUX1RZUEUgPT0gTFNUX0lOREVYRUQpDQorICAgICAgcmV0 dXJuIHRydWU7DQorICAgIHJldHVybiBwcmVkICE9IFBSRURfVFlQRV9ub25l Ow0KKyAgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIg JmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGdjY19hc3NlcnQgKFRB UkdFVF9YVEhFQURWRUNUT1IpOw0KKyAgICBpZiAoTFNUX1RZUEUgPT0gTFNU X0lOREVYRUQpDQorICAgICAgew0KKyBpZiAoU1RPUkVfUCkNCisgICByZXR1 cm4gZS51c2VfZXhhY3RfaW5zbiAoDQorICAgICBjb2RlX2Zvcl9wcmVkX2lu ZGV4ZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgVU5TUEVDLA0KKyAgICAgICAg ZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyBlbHNlDQorICAgcmV0dXJuIGUudXNl X2V4YWN0X2luc24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9pbmRleGVkX2xv YWRfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAg IH0NCisgICAgZWxzZSBpZiAoTFNUX1RZUEUgPT0gTFNUX1NUUklERUQpDQor ICAgICAgew0KKyBpZiAoU1RPUkVfUCkNCisgICByZXR1cm4gZS51c2VfY29u dGlndW91c19zdG9yZV9pbnNuICgNCisgICAgIGNvZGVfZm9yX3ByZWRfc3Ry aWRlZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7 DQorIGVsc2UNCisgICByZXR1cm4gZS51c2VfY29udGlndW91c19sb2FkX2lu c24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGgg KFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIH0NCisgICAg ZWxzZQ0KKyAgICAgIHsNCisgaWYgKFNUT1JFX1ApDQorICAgcmV0dXJuIGUu dXNlX2NvbnRpZ3VvdXNfc3RvcmVfaW5zbiAoDQorICAgICBjb2RlX2Zvcl9w cmVkX3N0b3JlX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsN CisgZWxzZQ0KKyAgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX2xvYWRfaW5z biAoDQorICAgICBjb2RlX2Zvcl9wcmVkX21vdl93aWR0aCAoVU5TUEVDLCBl LnZlY3Rvcl9tb2RlICgpKSk7DQorICAgICAgfQ0KKyAgfQ0KK307DQorDQor LyogSW1wbGVtZW50cyB2ZXh0Lngudi4gICovDQorY2xhc3MgdGhfZXh0cmFj dCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIGJv b2wgYXBwbHlfdmxfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz ZTsgfQ0KKyAgYm9vbCBhcHBseV90YWlsX3BvbGljeV9wICgpIGNvbnN0IG92 ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29sIGFwcGx5X21hc2tf cG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0N CisgIGJvb2wgdXNlX21hc2tfcHJlZGljYXRpb25fcCAoKSBjb25zdCBvdmVy cmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKyAgYm9vbCBoYXNfbWVyZ2Vfb3Bl cmFuZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQor DQorICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qg b3ZlcnJpZGUNCisgIHsNCisgICAgZ2NjX2Fzc2VydCAoVEFSR0VUX1hUSEVB RFZFQ1RPUik7DQorICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2Rl X2Zvcl9wcmVkX3RoX2V4dHJhY3QgKGUudmVjdG9yX21vZGUgKCkpKTsNCisg IH0NCit9Ow0KKw0KLyogQmVsb3cgaW1wbGVtZW50cyBhcmUgdmVjdG9yIGNy eXB0byAqLw0KLyogSW1wbGVtZW50cyB2YW5kbi5bdnYsdnhdICovDQpjbGFz cyB2YW5kbiA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQpAQCAtMjYwMyw2ICsy NjgwLDM3IEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRf bG9hZDxVTlNQRUNfT1JERVJFRD4gdmxveHNlZ19vYmo7DQpzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHNlZ19pbmRleGVkX3N0b3JlPFVOU1BFQ19VTk9SREVS RUQ+IHZzdXhzZWdfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdf aW5kZXhlZF9zdG9yZTxVTlNQRUNfT1JERVJFRD4gdnNveHNlZ19vYmo7DQpz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZsc2VnZmYgdmxzZWdmZl9vYmo7DQor c3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFs c2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQj4gdmxiX29iajsN CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxm YWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxCVT4gdmxidV9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMSD4gdmxo X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxIVT4g dmxodV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3Rv cmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZM Vz4gdmx3X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhf VkxXVT4gdmx3dV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNf VEhfVkxCPiB2c2Jfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVD X1RIX1ZMSD4gdnNoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BF Q19USF9WTFc+IHZzd19vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTQj4gdmxzYl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTQlU+IHZsc2J1X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BF Q19USF9WTFNIPiB2bHNoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BF Q19USF9WTFNIVT4gdmxzaHVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5T UEVDX1RIX1ZMU1c+IHZsc3dfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5T UEVDX1RIX1ZMU1dVPiB2bHN3dV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVO U1BFQ19USF9WTFNCPiB2c3NiX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5T UEVDX1RIX1ZMU0g+IHZzc2hfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQ RUNfVEhfVkxTVz4gdnNzd19vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQ RUNfVEhfVkxYQj4gdmx4Yl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQ RUNfVEhfVkxYQlU+IHZseGJ1X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVO U1BFQ19USF9WTFhIPiB2bHhoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVO U1BFQ19USF9WTFhIVT4gdmx4aHVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwg VU5TUEVDX1RIX1ZMWFc+IHZseHdfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwg VU5TUEVDX1RIX1ZMWFdVPiB2bHh3dV9vYmo7DQorc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQs IFVOU1BFQ19USF9WTFhCPiB2c3hiX29iajsNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwg VU5TUEVDX1RIX1ZMWEg+IHZzeGhfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBV TlNQRUNfVEhfVkxYVz4gdnN4d19vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVO U1BFQ19USF9WU1VYQj4gdnN1eGJfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBV TlNQRUNfVEhfVlNVWEg+IHZzdXhoX29iajsNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwg VU5TUEVDX1RIX1ZTVVhXPiB2c3V4d19vYmo7DQorc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9leHRyYWN0IHZleHRfeF92X29iajsNCi8qIENyeXB0byBW ZWN0b3IgKi8NCnN0YXRpYyBDT05TVEVYUFIgY29uc3QgdmFuZG4gdmFuZG5f b2JqOw0KQEAgLTI4OTQsNiArMzAwMiwzNyBAQCBCQVNFICh2bG94c2VnKQ0K QkFTRSAodnN1eHNlZykNCkJBU0UgKHZzb3hzZWcpDQpCQVNFICh2bHNlZ2Zm KQ0KK0JBU0UgKHZsYikNCitCQVNFICh2bGgpDQorQkFTRSAodmx3KQ0KK0JB U0UgKHZsYnUpDQorQkFTRSAodmxodSkNCitCQVNFICh2bHd1KQ0KK0JBU0Ug KHZzYikNCitCQVNFICh2c2gpDQorQkFTRSAodnN3KQ0KK0JBU0UgKHZsc2Ip DQorQkFTRSAodmxzaCkNCitCQVNFICh2bHN3KQ0KK0JBU0UgKHZsc2J1KQ0K K0JBU0UgKHZsc2h1KQ0KK0JBU0UgKHZsc3d1KQ0KK0JBU0UgKHZzc2IpDQor QkFTRSAodnNzaCkNCitCQVNFICh2c3N3KQ0KK0JBU0UgKHZseGIpDQorQkFT RSAodmx4aCkNCitCQVNFICh2bHh3KQ0KK0JBU0UgKHZseGJ1KQ0KK0JBU0Ug KHZseGh1KQ0KK0JBU0UgKHZseHd1KQ0KK0JBU0UgKHZzeGIpDQorQkFTRSAo dnN4aCkNCitCQVNFICh2c3h3KQ0KK0JBU0UgKHZzdXhiKQ0KK0JBU0UgKHZz dXhoKQ0KK0JBU0UgKHZzdXh3KQ0KK0JBU0UgKHZleHRfeF92KQ0KLyogQ3J5 cHRvIHZlY3RvciAqLw0KQkFTRSAodmFuZG4pDQpCQVNFICh2YnJldikNCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1iYXNlcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuaA0KaW5kZXggODdjN2Y0M2E0MjMuLjFmMmM5NGQz NTQxIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtYmFzZXMuaA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaA0KQEAgLTI4MCw2ICsyODAs MzcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsb3hz ZWc7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHNl ZzsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c294c2Vn Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2VnZmY7 DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsYjsNCitl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxoOw0KK2V4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHc7DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsYnU7DQorZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsaHU7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZsd3U7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZzYjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdnNoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2c3c7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZsc2I7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHZsc2g7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZs c3c7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2J1 Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNodTsN CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmxzd3U7DQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzc2I7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzc2g7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzc3c7DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZseGI7DQorZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZseGg7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZseHc7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZseGJ1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2bHhodTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3Qgdmx4d3U7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZzeGI7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZzeGg7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZzeHc7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHZzdXhiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 c3V4aDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1 eHc7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZleHRf eF92Ow0KLyogQmVsb3cgZnVuY3Rpb25fYmFzZSBhcmUgVmVjdHJvIENyeXB0 byovDQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmFuZG47 DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmJyZXY7DQpk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQppbmRleCAxZTRmNGQ1M2RlNi4uOGU5 MGIxN2E5NGIgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCisrKyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KQEAgLTIx MSw2ICsyMTEsMTQ2IEBAIHN0cnVjdCBpbmRleGVkX2xvYWRzdG9yZV9kZWYg OiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUNCiAgIH0NCn07DQorLyogQWRkIG9u ZSBmdW5jdGlvbiBpbnN0YW5jZSBmb3IgR1JPVVAsIHVzaW5nIG9wZXJhbmQg c3VmZml4IGF0IGluZGV4IE9JLA0KKyAgIG1vZGUgc3VmZml4IGF0IGluZGV4 IFBBSVIgJiYgYmkgYW5kIHByZWRpY2F0aW9uIHN1ZmZpeCBhdCBpbmRleCBw cmVkX2lkeC4gICovDQorc3RhdGljIHZvaWQNCitidWlsZF90aF9sb2Fkc3Rv cmUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2dyb3Vw X2luZm8gJmdyb3VwLA0KKyAgICAgdW5zaWduZWQgaW50IHByZWRfaWR4LCB1 bnNpZ25lZCBpbnQgdmVjX3R5cGVfaWR4KQ0KK3sNCisgIGF1dG9fdmVjPHRy ZWUsIDU+IGFyZ3VtZW50X3R5cGVzOw0KKyAgZnVuY3Rpb25faW5zdGFuY2Ug ZnVuY3Rpb25faW5zdGFuY2UgKGdyb3VwLmJhc2VfbmFtZSwgKmdyb3VwLmJh c2UsDQorICAgICAgICAqZ3JvdXAuc2hhcGUsDQorICAgICAgICBncm91cC5v cHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XSwNCisgICAgICAgIGdyb3Vw LnByZWRzW3ByZWRfaWR4XSwgJmdyb3VwLm9wc19pbmZvcyk7DQorICB0cmVl IHJldHVybl90eXBlID0gZ3JvdXAub3BzX2luZm9zLnJldC5nZXRfdHJlZV90 eXBlICgNCisgICAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lk eF0uaW5kZXgpOw0KKyAgYi5hbGxvY2F0ZV9hcmd1bWVudF90eXBlcyAoZnVu Y3Rpb25faW5zdGFuY2UsIGFyZ3VtZW50X3R5cGVzKTsNCisgIGIuYXBwbHlf cHJlZGljYXRpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCByZXR1cm5fdHlwZSwg YXJndW1lbnRfdHlwZXMpOw0KKw0KKyAgaWYgKFRBUkdFVF9YVEhFQURWRUNU T1IgJiYgIWNoZWNrX3R5cGUgKHJldHVybl90eXBlLCBhcmd1bWVudF90eXBl cykpDQorICAgIHJldHVybjsNCisNCisgIHRyZWUgdHlwZSA9IGJ1aWx0aW5f dHlwZXNbZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5k ZXhdLnZlY3RvcjsNCisgIGlmIChzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwg ImwiKQ0KKyAgICAgICYmIHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAidSIp DQorICAgICAgJiYgIVRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAodHlwZSkp KQ0KKyAgICByZXR1cm47DQorDQorICBpZiAoc3Ryc3RyIChncm91cC5iYXNl X25hbWUsICJsIikNCisgICAgICAmJiAhc3Ryc3RyIChncm91cC5iYXNlX25h bWUsICJ1IikNCisgICAgICAmJiBUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUg KHR5cGUpKSkNCisgICAgcmV0dXJuOw0KKw0KKyAgbWFjaGluZV9tb2RlIG1v ZGUgPSBUWVBFX01PREUgKHR5cGUpOw0KKyAgaW50IHNldyA9IEdFVF9NT0RF X0JJVFNJWkUgKEdFVF9NT0RFX0lOTkVSIChtb2RlKSk7DQorICBpZiAoc3Ry c3RyIChncm91cC5iYXNlX25hbWUsICJoIikgJiYgc2V3ID09IDgpDQorICAg IHJldHVybjsNCisNCisgIGlmIChzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwg InciKSAmJiAoc2V3ID09IDggfHwgc2V3ID09MTYpKQ0KKyAgICByZXR1cm47 DQorDQorICBiLmFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChmdW5jdGlvbl9p bnN0YW5jZSwgKmdyb3VwLnNoYXBlKTsNCisgIGIuYWRkX3VuaXF1ZV9mdW5j dGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICgqZ3JvdXAuc2hhcGUpLCByZXR1 cm5fdHlwZSwNCisgYXJndW1lbnRfdHlwZXMpOw0KK30NCisNCisvKiB0aF9s b2Fkc3RvcmVfd2lkdGhfZGVmIGNsYXNzLiAgKi8NCitzdHJ1Y3QgdGhfbG9h ZHN0b3JlX3dpZHRoX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQorew0KKyAg IHZvaWQgYnVpbGQgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsDQorICAgICAgIGNv bnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwKSBjb25zdCBvdmVycmlk ZQ0KKyAgew0KKyAgICBmb3IgKHVuc2lnbmVkIGludCBwcmVkX2lkeCA9IDA7 IGdyb3VwLnByZWRzW3ByZWRfaWR4XSAhPSBOVU1fUFJFRF9UWVBFUzsNCisg ICAgICAgKytwcmVkX2lkeCkNCisgICAgICB7DQorIGZvciAodW5zaWduZWQg aW50IHZlY190eXBlX2lkeCA9IDA7DQorICAgICAgZ3JvdXAub3BzX2luZm9z LnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXggIT0gTlVNX1ZFQ1RPUl9UWVBF UzsNCisgICAgICArK3ZlY190eXBlX2lkeCkNCisgICB7DQorICAgICBidWls ZF90aF9sb2Fkc3RvcmUgKGIsIGdyb3VwLCBwcmVkX2lkeCwgdmVjX3R5cGVf aWR4KTsNCisgICB9DQorICAgICAgfQ0KKyAgfQ0KKw0KKyAgY2hhciAqZ2V0 X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2lu c3RhbmNlICZpbnN0YW5jZSwNCisgICBib29sIG92ZXJsb2FkZWRfcCkgY29u c3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgLyogUmV0dXJuIG51bGxwdHIgaWYg aXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAgKi8NCisgICAgaWYgKG92ZXJs b2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRf cCAoaW5zdGFuY2UucHJlZCkpDQorICAgICAgcmV0dXJuIG51bGxwdHI7DQor DQorICAgIGIuYXBwZW5kX25hbWUgKCJfX3Jpc2N2X3RoXyIpOw0KKyAgICBi LmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOw0KKw0KKyAgICAv KiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LiAgKi8NCisgICAgaWYgKCFvdmVy bG9hZGVkX3ApDQorICAgICAgew0KKyAvKiB2b3AgLS0+IHZvcF92LiAgKi8N CisgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9zdWZmaXhlc1tpbnN0YW5jZS5v cF9pbmZvLT5vcF0pOw0KKyAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LiAg Ki8NCisgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50 eXBlLmluZGV4XS52ZWN0b3IpOw0KKyAgICAgIH0NCisNCisgICAgLyogQWNj b3JkaW5nIHRvIHJ2di1pbnRyaW5zaWMtZG9jLCBpdCBkb2VzIG5vdCBhZGQg Il9tIiBzdWZmaXgNCisgICAgICAgZm9yIHZvcF9tIEMrKyBvdmVybG9hZGVk IEFQSS4gICovDQorICAgIGlmIChvdmVybG9hZGVkX3AgJiYgaW5zdGFuY2Uu cHJlZCA9PSBQUkVEX1RZUEVfbSkNCisgICAgICByZXR1cm4gYi5maW5pc2hf bmFtZSAoKTsNCisgICAgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3Vm Zml4ZXNbaW5zdGFuY2UucHJlZF0pOw0KKyAgICByZXR1cm4gYi5maW5pc2hf bmFtZSAoKTsNCisgIH0NCit9Ow0KKw0KKw0KKy8qIHRoX2luZGV4ZWRfbG9h ZHN0b3JlX3dpZHRoX2RlZiBjbGFzcy4gICovDQorc3RydWN0IHRoX2luZGV4 ZWRfbG9hZHN0b3JlX3dpZHRoX2RlZiA6IHB1YmxpYyBmdW5jdGlvbl9zaGFw ZQ0KK3sNCisgIHZvaWQgYnVpbGQgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsDQor ICAgICAgIGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwKSBjb25z dCBvdmVycmlkZQ0KKyAgew0KKyAgICBmb3IgKHVuc2lnbmVkIGludCBwcmVk X2lkeCA9IDA7IGdyb3VwLnByZWRzW3ByZWRfaWR4XSAhPSBOVU1fUFJFRF9U WVBFUzsNCisgKytwcmVkX2lkeCkNCisgICAgICB7DQorIGZvciAodW5zaWdu ZWQgaW50IHZlY190eXBlX2lkeCA9IDA7DQorICAgICAgZ3JvdXAub3BzX2lu Zm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXggIT0gTlVNX1ZFQ1RPUl9U WVBFUzsNCisgICAgICArK3ZlY190eXBlX2lkeCkNCisgICB7DQorICAgIHRy ZWUgaW5kZXhfdHlwZSA9IGdyb3VwLm9wc19pbmZvcy5hcmdzWzFdLmdldF90 cmVlX3R5cGUgKA0KKyAgICAgICBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVj X3R5cGVfaWR4XS5pbmRleCk7DQorICAgIGlmICghaW5kZXhfdHlwZSkNCisg ICAgICAgY29udGludWU7DQorICAgIGJ1aWxkX3RoX2xvYWRzdG9yZSAoYiwg Z3JvdXAsIHByZWRfaWR4LCB2ZWNfdHlwZV9pZHgpOw0KKyAgIH0NCisgICAg ICB9DQorICB9DQorDQorICBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVp bGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0K KyAgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQ0KKyAgew0K Kw0KKyAgICAvKiBSZXR1cm4gbnVsbHB0ciBpZiBpdCBjYW4gbm90IGJlIG92 ZXJsb2FkZWQuICAqLw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmICFpbnN0 YW5jZS5iYXNlLT5jYW5fYmVfb3ZlcmxvYWRlZF9wIChpbnN0YW5jZS5wcmVk KSkNCisgICAgICByZXR1cm4gbnVsbHB0cjsNCisNCisgICAgYi5hcHBlbmRf bmFtZSAoIl9fcmlzY3ZfdGhfIik7DQorICAgIGIuYXBwZW5kX25hbWUgKGlu c3RhbmNlLmJhc2VfbmFtZSk7DQorICAgIC8qIHZvcF92IC0tPiB2b3Bfdl88 dHlwZT4uICAqLw0KKyAgICBpZiAoIW92ZXJsb2FkZWRfcCkNCisgICAgICB7 DQorIC8qIHZvcCAtLT4gdm9wX3YuICAqLw0KKyBiLmFwcGVuZF9uYW1lIChv cGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7DQorIC8q IHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uICAqLw0KKyBiLmFwcGVuZF9uYW1l ICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7 DQorICAgICAgfQ0KKw0KKyAgICAvKiBBY2NvcmRpbmcgdG8gcnZ2LWludHJp bnNpYy1kb2MsIGl0IGRvZXMgbm90IGFkZCAiX20iIHN1ZmZpeA0KKyAgICAg ICBmb3Igdm9wX20gQysrIG92ZXJsb2FkZWQgQVBJLiAgKi8NCisgICAgaWYg KG92ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5wcmVkID09IFBSRURfVFlQRV9t KQ0KKyAgICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOw0KKyAgICBiLmFw cGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tpbnN0YW5jZS5wcmVk XSk7DQorICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOw0KKyAgfQ0KK307 DQorDQovKiBhbHVfZGVmIGNsYXNzLiAgKi8NCnN0cnVjdCBhbHVfZGVmIDog cHVibGljIGJ1aWxkX2Jhc2UNCnsNCkBAIC02MzIsNiArNzcyLDIzIEBAIHN0 cnVjdCByZWR1Y19hbHVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCiAgIH0N Cn07DQorLyogdGhfZXh0cmFjdF9kZWYgY2xhc3MuICAqLw0KK3N0cnVjdCB0 aF9leHRyYWN0X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQorew0KKyAgY2hh ciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0 aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCisgICAgICBib29sIG92ZXJsb2Fk ZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgYi5hcHBlbmRfbmFt ZSAoIl9fcmlzY3ZfdGhfIik7DQorICAgIGIuYXBwZW5kX25hbWUgKGluc3Rh bmNlLmJhc2VfbmFtZSk7DQorDQorICAgIGlmIChvdmVybG9hZGVkX3ApDQor ICAgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQorICAgIGIuYXBwZW5k X25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0udmVj dG9yKTsNCisgICAgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0 YW5jZS50eXBlLmluZGV4XS5zY2FsYXIpOw0KKyAgICByZXR1cm4gYi5maW5p c2hfbmFtZSAoKTsNCisgIH0NCit9Ow0KKw0KLyogc2NhbGFyX21vdmVfZGVm IGNsYXNzLiAgKi8NCnN0cnVjdCBzY2FsYXJfbW92ZV9kZWYgOiBwdWJsaWMg YnVpbGRfYmFzZQ0Kew0KQEAgLTEwOTQsNiArMTI1MSw4IEBAIFNIQVBFKHZz ZXR2bCwgdnNldHZsKQ0KU0hBUEUodnNldHZsLCB2c2V0dmxtYXgpDQpTSEFQ RShsb2Fkc3RvcmUsIGxvYWRzdG9yZSkNClNIQVBFKGluZGV4ZWRfbG9hZHN0 b3JlLCBpbmRleGVkX2xvYWRzdG9yZSkNCitTSEFQRSh0aF9sb2Fkc3RvcmVf d2lkdGgsIHRoX2xvYWRzdG9yZV93aWR0aCkNCitTSEFQRSh0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgp DQpTSEFQRShhbHUsIGFsdSkNClNIQVBFKGFsdV9mcm0sIGFsdV9mcm0pDQpT SEFQRSh3aWRlbl9hbHUsIHdpZGVuX2FsdSkNCkBAIC0xMTA2LDYgKzEyNjUs NyBAQCBTSEFQRShtb3ZlLCBtb3ZlKQ0KU0hBUEUobWFza19hbHUsIG1hc2tf YWx1KQ0KU0hBUEUocmVkdWNfYWx1LCByZWR1Y19hbHUpDQpTSEFQRShyZWR1 Y19hbHVfZnJtLCByZWR1Y19hbHVfZnJtKQ0KK1NIQVBFKHRoX2V4dHJhY3Qs IHRoX2V4dHJhY3QpDQpTSEFQRShzY2FsYXJfbW92ZSwgc2NhbGFyX21vdmUp DQpTSEFQRSh2dW5kZWZpbmVkLCB2dW5kZWZpbmVkKQ0KU0hBUEUobWlzYywg bWlzYykNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy1zaGFwZXMuaCBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oDQppbmRleCBhYzJhMjhjZTAx Ny4uYTc2MjRkMGZhYmQgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaA0KKysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgNCkBA IC0yOCw2ICsyOCw4IEBAIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAq Y29uc3QgdnNldHZsOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpj b25zdCB2c2V0dmxtYXg7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUg KmNvbnN0IGxvYWRzdG9yZTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFw ZSAqY29uc3QgaW5kZXhlZF9sb2Fkc3RvcmU7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX3NoYXBlICpjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB0aF9pbmRleGVkX2xv YWRzdG9yZV93aWR0aDsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAq Y29uc3QgYWx1Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCBhbHVfZnJtOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCB3aWRlbl9hbHU7DQpAQCAtNDEsNiArNDMsNyBAQCBleHRlcm4gY29uc3Qg ZnVuY3Rpb25fc2hhcGUgKmNvbnN0IG1hc2tfYWx1Ow0KZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHU7DQpleHRlcm4gY29u c3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHJlZHVjX2FsdV9mcm07DQpleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHNjYWxhcl9tb3ZlOw0K K2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfZXh0cmFj dDsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnVuZGVm aW5lZDsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgbWlz YzsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldDsN CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLmNjDQppbmRleCAyNWUwYjZlNTZkZS4uNDRiOWZlYzE4OTggMTAw NjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMuY2MNCkBAIC05MzQsNiArOTM0LDMyIEBAIHN0YXRpYyBDT05T VEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gZXh0X3ZjcmVhdGVfYXJn c1tdDQogICA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9y KSwNCiAgICAgIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07DQorLyogQSBsaXN0 IG9mIGFyZ3MgZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90 eXBlICosIHNpemVfdCkNCisgKiBmdW5jdGlvbi4gICovDQorc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfY29uc3Rf cHRyX3NpemVfYXJnc1tdDQorICA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0Vfc2NhbGFyX2NvbnN0X3B0ciksDQorICAgICBydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0Vfc2l6ZSksIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07 DQorDQorLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZlY3Rvcl90eXBlIGZ1bmMg KGNvbnN0IHNjYWxhcl90eXBlICosIGVldzhfaW5kZXhfdHlwZSkNCisgKiBm dW5jdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJn X3R5cGVfaW5mbyBzY2FsYXJfY29uc3RfcHRyX2luZGV4X2FyZ3NbXQ0KKyAg PSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9jb25zdF9w dHIpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Vuc2ln bmVkX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07DQorDQorLyog QSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwg ZWV3OF9pbmRleF90eXBlLCB2ZWN0b3JfdHlwZSkNCisgKiBmdW5jdGlvbi4g ICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5m byBzY2FsYXJfcHRyX2luZGV4X2FyZ3NbXQ0KKyAgPSB7cnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3NjYWxhcl9wdHIpLA0KKyAgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3Vuc2lnbmVkX3ZlY3RvciksDQorICAgICBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgcnZ2X2FyZ190 eXBlX2luZm9fZW5kfTsNCisNCisvKiBBIGxpc3Qgb2YgYXJncyBmb3Igdm9p ZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3QsIHZlY3Rvcl90eXBlKQ0K KyAqIGZ1bmN0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2 dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9wdHJfc2l6ZV9hcmdzW10NCisgID0g e3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfcHRyKSwNCisg ICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zaXplKSwgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksDQorICAgICBydnZfYXJn X3R5cGVfaW5mb19lbmR9Ow0KKw0KLyogQSBsaXN0IG9mIG5vbmUgcHJlZHMg dGhhdCB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlv bnMuICAqLw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBwcmVkaWNhdGlvbl90 eXBlX2luZGV4IG5vbmVfcHJlZHNbXQ0KICAgPSB7UFJFRF9UWVBFX25vbmUs IE5VTV9QUkVEX1RZUEVTfTsNCkBAIC0xNDU1LDYgKzE0ODEsMTQgQEAgc3Rh dGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdV9zaGlmdF92dnZf b3BzDQogICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9y KSwgLyogUmV0dXJuIHR5cGUgKi8NCiAgICAgIHNoaWZ0X3Z2X2FyZ3MgLyog QXJncyAqL307DQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBm b3Igc2NhbGFyX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUsIHNpemVfdCkNCisg KiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICovDQorc3RhdGljIENPTlNURVhQ UiBjb25zdCBydnZfb3BfaW5mbyBpdV94X3NfdV9vcHMNCisgID0ge2l1X29w cywgICAgICAgICAgLyogVHlwZXMgKi8NCisgICAgIE9QX1RZUEVfdngsICAg ICAgICAvKiBTdWZmaXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChS VlZfQkFTRV9zY2FsYXIpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdl9z aXplX2FyZ3MgLyogQXJncyAqL307DQorDQovKiBBIHN0YXRpYyBvcGVyYW5k IGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlw ZSwgc2l6ZV90KQ0KICAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gKi8NCnN0 YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXVfc2hpZnRfdnZ4 X29wcw0KQEAgLTI2MzgsNiArMjY3MiwzOCBAQCBzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3ZjcmVhdGVfbG11bDRfeDJfb3Bz DQogICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmxtdWxfZXh0 X3gyKSwgLyogUmV0dXJuIHR5cGUgKi8NCiAgICAgIGV4dF92Y3JlYXRlX2Fy Z3MgLyogQXJncyAqL307DQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1h dGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUg KiwNCisgKiBzaXplX3QpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl9zY2Fs YXJfY29uc3RfcHRyX3NpemVfb3BzDQorICA9IHthbGxfb3BzLCAgIC8qIFR5 cGVzICAqLw0KKyAgICAgT1BfVFlQRV92LCAgIC8qIFN1ZmZpeCAgKi8NCisg ICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBS ZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9h cmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5m b3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgc2l6ZV90 LA0KKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAq Lw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zf c2NhbGFyX3B0cl9zaXplX29wcw0KKyAgPSB7YWxsX29wcywgLyogVHlwZXMg ICovDQorICAgICBPUF9UWVBFX3YsIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5 cGUgICovDQorICAgICBzY2FsYXJfcHRyX3NpemVfYXJncyAvKiBBcmdzICov fTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLA0KKyAqIGlu ZGV4X3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQorc3RhdGlj IENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl9zY2FsYXJfY29u c3RfcHRyX2luZGV4X29wcw0KKyAgPSB7YWxsX29wcywgICAvKiBUeXBlcyAg Ki8NCisgICAgIE9QX1RZUEVfdiwgICAvKiBTdWZmaXggICovDQorICAgICBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJu IHR5cGUgICovDQorICAgICBzY2FsYXJfY29uc3RfcHRyX2luZGV4X2FyZ3Mg LyogQXJncyAqL307DQorDQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1h dGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBpbmRleF90eXBl LA0KKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAq Lw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zf c2NhbGFyX3B0cl9pbmRleF9vcHMNCisgID0ge2FsbF9vcHMsIC8qIFR5cGVz ICAqLw0KKyAgICAgT1BfVFlQRV92LCAvKiBTdWZmaXggICovDQorICAgICBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0 eXBlICAqLw0KKyAgICAgc2NhbGFyX3B0cl9pbmRleF9hcmdzIC8qIEFyZ3Mg Ki99Ow0KKw0KLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Ig dmVjdG9yX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUpLg0KICAgIFNvbWUgaW5z IGp1c3Qgc3VwcG9ydHMgU0VXPTMyLCBzdWNoIGFzIGNyeXB0byB2ZWN0b2wg WnZrZyBleHRlbnNpb24uDQogICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAg Ki8NCkBAIC0yODE2LDYgKzI4ODIsMTAgQEAgc3RhdGljIGZ1bmN0aW9uX2dy b3VwX2luZm8gZnVuY3Rpb25fZ3JvdXBzW10gPSB7DQojZGVmaW5lIERFRl9S VlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURTLCBPUFNfSU5GTykgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KICAgeyNOQU1FLCAmYmFzZXM6Ok5B TUUsICZzaGFwZXM6OlNIQVBFLCBQUkVEUywgT1BTX0lORk8sIFJFUVVJUkVE X0VYVEVOU0lPTlN9LA0KI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlu cy1mdW5jdGlvbnMuZGVmIg0KKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9ODQor I2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywg T1BTX0lORk8pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIHsjTkFN RSwgJmJhc2VzOjpOQU1FLCAmc2hhcGVzOjpTSEFQRSwgUFJFRFMsIE9QU19J TkZPLCBSRVFVSVJFRF9FWFRFTlNJT05TfSwNCisjaW5jbHVkZSAidGhlYWQt dmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYiDQp9Ow0KLyogVGhlIFJW ViB0eXBlcywgd2l0aCB0aGVpciBidWlsdC1pbg0KZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQppbmRleCA1 NGM4ODI0ZmY5Mi4uMjJmZWQ2MGI0YzMgMTAwNjQ0DQotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQpAQCAtMTIz LDYgKzEyMyw3IEBAIGVudW0gcmVxdWlyZWRfZXh0DQogICBaVktOSEJfRVhU LCAgLyogQ3J5cHRvIHZlY3RvciBadmtuaGIgc3ViLWV4dCAqLw0KICAgWlZL U0VEX0VYVCwgIC8qIENyeXB0byB2ZWN0b3IgWnZrc2VkIHN1Yi1leHQgKi8N CiAgIFpWS1NIX0VYVCwgICAvKiBDcnlwdG8gdmVjdG9yIFp2a3NoIHN1Yi1l eHQgKi8NCisgIFhUSEVBRFZFQ1RPUl9FWFQsICAgLyogWFRoZWFkVmVjdG9y IGV4dGVuc2lvbiAqLw0KfTsNCi8qIEVudW1lcmF0ZXMgdGhlIFJWViBvcGVy YW5kIHR5cGVzLiAgKi8NCkBAIC0yNTIsNiArMjUzLDggQEAgc3RydWN0IGZ1 bmN0aW9uX2dyb3VwX2luZm8NCiAgICAgICAgIHJldHVybiBUQVJHRVRfWlZL U0VEOw0KICAgICAgIGNhc2UgWlZLU0hfRVhUOg0KICAgICAgICAgcmV0dXJu IFRBUkdFVF9aVktTSDsNCisgICAgICBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6 DQorIHJldHVybiBUQVJHRVRfWFRIRUFEVkVDVE9SOw0KICAgICAgIGRlZmF1 bHQ6DQogICAgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQogICAgIH0NCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YgYi9nY2MvY29u ZmlnL3Jpc2N2L3QtcmlzY3YNCmluZGV4IDMyZGU2Yjg1MWMxLi4zODQ5NDMy MGQ4YiAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdg0K KysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2DQpAQCAtMSw2ICsxLDcg QEANClJJU0NWX0JVSUxUSU5TX0ggPSAkKHNyY2RpcikvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIFwNCiAgICQoc3JjZGlyKS9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmRlZiBcDQogICAkKHNy Y2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5j dGlvbnMuZGVmIFwNCisgICAgICAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi90 aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiBcDQogICByaXNj di12ZWN0b3ItdHlwZS1pbmRleGVyLmdlbi5kZWYNCnJpc2N2LWJ1aWx0aW5z Lm86ICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtYnVpbHRpbnMuY2Mg JChDT05GSUdfSCkgXA0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgYi9nY2MvY29u ZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVm DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmZk M2JhMjliYWU5DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvY29uZmlnL3Jp c2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmDQpAQCAt MCwwICsxLDM5IEBADQorI2lmbmRlZiBERUZfUlZWX0ZVTkNUSU9ODQorI2Rl ZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BT X0lORk8pDQorI2VuZGlmDQorDQorI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJ T05TIFhUSEVBRFZFQ1RPUl9FWFQNCitERUZfUlZWX0ZVTkNUSU9OICh2bGIs IHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFy X2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxoLCB0aF9s b2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25z dF9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsdywgdGhfbG9hZHN0 b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRy X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bGJ1LCB0aF9sb2Fkc3RvcmVf d2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3Bz KQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsaHUsIHRoX2xvYWRzdG9yZV93aWR0 aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodmx3dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2c2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9t X3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2c2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBh bGxfdl9zY2FsYXJfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3cs IHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2Fs YXJfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHNiLCB0aF9sb2Fk c3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9w dHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxzaCwgdGhfbG9h ZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3Rf cHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsc3csIHRoX2xv YWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0 X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHNidSwgdGhf bG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29u c3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2h1LCB0 aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9j b25zdF9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxzd3Us IHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFy X2NvbnN0X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3Ni LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2Nh bGFyX3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3NoLCB0 aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFy X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3N3LCB0aF9s b2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0 cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHhiLCB0aF9pbmRl eGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFy X2NvbnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4 aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFs bF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVO Q1RJT04gKHZseHcsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2bHhidSwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVf d2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5k ZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZseGh1LCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2Nv bnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4d3Us IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxf dl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2c3hiLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9t X3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh2c3hoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwg bm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2c3h3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3V4YiwgdGhfaW5kZXhlZF9sb2Fk c3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9p bmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN1eGgsIHRoX2luZGV4 ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxh cl9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXh3LCB0 aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxf dl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 ZXh0X3hfdiwgdGhfZXh0cmFjdCwgbm9uZV9wcmVkcywgaXVfeF9zX3Vfb3Bz KQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorDQorI3VuZGVmIERF Rl9SVlZfRlVOQ1RJT04NCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2 L3RoZWFkLXZlY3Rvci5tZCBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVj dG9yLm1kDQppbmRleCA2OTZiODE1MjUyZC4uNWZlOWJhMDhjNGUgMTAwNjQ0 DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZA0KKysr IGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQNCkBAIC0xLDcg KzEsOTUgQEANCihkZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsNCisgIFVOU1BF Q19USF9WTEINCisgIFVOU1BFQ19USF9WTEJVDQorICBVTlNQRUNfVEhfVkxI DQorICBVTlNQRUNfVEhfVkxIVQ0KKyAgVU5TUEVDX1RIX1ZMVw0KKyAgVU5T UEVDX1RIX1ZMV1UNCisNCisgIFVOU1BFQ19USF9WTFNCDQorICBVTlNQRUNf VEhfVkxTQlUNCisgIFVOU1BFQ19USF9WTFNIDQorICBVTlNQRUNfVEhfVkxT SFUNCisgIFVOU1BFQ19USF9WTFNXDQorICBVTlNQRUNfVEhfVkxTV1UNCisN CisgIFVOU1BFQ19USF9WTFhCDQorICBVTlNQRUNfVEhfVkxYQlUNCisgIFVO U1BFQ19USF9WTFhIDQorICBVTlNQRUNfVEhfVkxYSFUNCisgIFVOU1BFQ19U SF9WTFhXDQorICBVTlNQRUNfVEhfVkxYV1UNCisNCisgIFVOU1BFQ19USF9W U1VYQg0KKyAgVU5TUEVDX1RIX1ZTVVhIDQorICBVTlNQRUNfVEhfVlNVWFcN CisNCiAgIFVOU1BFQ19USF9WV0xEU1QNCl0pDQorKGRlZmluZV9pbnRfaXRl cmF0b3IgVU5TUEVDX1RIX1ZMTUVNX09QIFsNCisgIFVOU1BFQ19USF9WTEIg VU5TUEVDX1RIX1ZMQlUNCisgIFVOU1BFQ19USF9WTEggVU5TUEVDX1RIX1ZM SFUNCisgIFVOU1BFQ19USF9WTFcgVU5TUEVDX1RIX1ZMV1UNCitdKQ0KKw0K KyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFNNRU1fT1AgWw0K KyAgVU5TUEVDX1RIX1ZMU0IgVU5TUEVDX1RIX1ZMU0JVDQorICBVTlNQRUNf VEhfVkxTSCBVTlNQRUNfVEhfVkxTSFUNCisgIFVOU1BFQ19USF9WTFNXIFVO U1BFQ19USF9WTFNXVQ0KK10pDQorDQorKGRlZmluZV9pbnRfaXRlcmF0b3Ig VU5TUEVDX1RIX1ZMWE1FTV9PUCBbDQorICBVTlNQRUNfVEhfVkxYQiBVTlNQ RUNfVEhfVkxYQlUNCisgIFVOU1BFQ19USF9WTFhIIFVOU1BFQ19USF9WTFhI VQ0KKyAgVU5TUEVDX1RIX1ZMWFcgVU5TUEVDX1RIX1ZMWFdVDQorXSkNCisN CisoZGVmaW5lX2ludF9hdHRyIHZsbWVtX29wX2F0dHIgWw0KKyAgKFVOU1BF Q19USF9WTEIgImIiKSAoVU5TUEVDX1RIX1ZMQlUgImJ1IikNCisgIChVTlNQ RUNfVEhfVkxIICJoIikgKFVOU1BFQ19USF9WTEhVICJodSIpDQorICAoVU5T UEVDX1RIX1ZMVyAidyIpIChVTlNQRUNfVEhfVkxXVSAid3UiKQ0KKyAgKFVO U1BFQ19USF9WTFNCICJiIikgKFVOU1BFQ19USF9WTFNCVSAiYnUiKQ0KKyAg KFVOU1BFQ19USF9WTFNIICJoIikgKFVOU1BFQ19USF9WTFNIVSAiaHUiKQ0K KyAgKFVOU1BFQ19USF9WTFNXICJ3IikgKFVOU1BFQ19USF9WTFNXVSAid3Ui KQ0KKyAgKFVOU1BFQ19USF9WTFhCICJiIikgKFVOU1BFQ19USF9WTFhCVSAi YnUiKQ0KKyAgKFVOU1BFQ19USF9WTFhIICJoIikgKFVOU1BFQ19USF9WTFhI VSAiaHUiKQ0KKyAgKFVOU1BFQ19USF9WTFhXICJ3IikgKFVOU1BFQ19USF9W TFhXVSAid3UiKQ0KKyAgKFVOU1BFQ19USF9WU1VYQiAiYiIpDQorICAoVU5T UEVDX1RIX1ZTVVhIICJoIikNCisgIChVTlNQRUNfVEhfVlNVWFcgInciKQ0K K10pDQorDQorKGRlZmluZV9pbnRfYXR0ciB2bG1lbV9vcmRlcl9hdHRyIFsN CisgIChVTlNQRUNfVEhfVkxYQiAiIikNCisgIChVTlNQRUNfVEhfVkxYSCAi IikNCisgIChVTlNQRUNfVEhfVkxYVyAiIikNCisgIChVTlNQRUNfVEhfVlNV WEIgInUiKQ0KKyAgKFVOU1BFQ19USF9WU1VYSCAidSIpDQorICAoVU5TUEVD X1RIX1ZTVVhXICJ1IikNCitdKQ0KKw0KKyhkZWZpbmVfaW50X2l0ZXJhdG9y IFVOU1BFQ19USF9WU01FTV9PUCBbDQorICBVTlNQRUNfVEhfVkxCDQorICBV TlNQRUNfVEhfVkxIDQorICBVTlNQRUNfVEhfVkxXDQorXSkNCisNCisoZGVm aW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNTTUVNX09QIFsNCisgIFVO U1BFQ19USF9WTFNCDQorICBVTlNQRUNfVEhfVkxTSA0KKyAgVU5TUEVDX1RI X1ZMU1cNCitdKQ0KKw0KKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19U SF9WU1hNRU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZMWEINCisgIFVOU1BFQ19U SF9WTFhIDQorICBVTlNQRUNfVEhfVkxYVw0KKyAgVU5TUEVDX1RIX1ZTVVhC DQorICBVTlNQRUNfVEhfVlNVWEgNCisgIFVOU1BFQ19USF9WU1VYVw0KK10p DQorDQooZGVmaW5lX21vZGVfaXRlcmF0b3IgVl9WTFNfVlQgW1YgVkxTIFZU XSkNCihkZWZpbmVfbW9kZV9pdGVyYXRvciBWX1ZCX1ZMU19WVCBbViBWQiBW TFMgVlRdKQ0KQEAgLTEwMCwzICsxODgsMTY1IEBADQogICB9DQogICBbKHNl dF9hdHRyICJ0eXBlIiAidmxkbSx2c3RtLHZtYWx1LHZtYWx1LHZtYWx1IikN CiAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pDQorDQorKGRlZmlu ZV9leHBhbmQgIkBwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2Rl PiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVk aWF0ZV9vcGVyYW5kIikNCisgICAgKGlmX3RoZW5fZWxzZTpWX1ZMUw0KKyAg ICAgICh1bnNwZWM6PFZNPg0KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2 ZWN0b3JfbWFza19vcGVyYW5kIikNCisgKG1hdGNoX29wZXJhbmQgNCAidmVj dG9yX2xlbmd0aF9vcGVyYW5kIikNCisgKG1hdGNoX29wZXJhbmQgNSAiY29u c3RfaW50X29wZXJhbmQiKQ0KKyAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9p bnRfb3BlcmFuZCIpDQorIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9v cGVyYW5kIikNCisgKHJlZzpTSSBWTF9SRUdOVU0pDQorIChyZWc6U0kgVlRZ UEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMTUVNX09QKQ0KKyAgICAgIChtYXRj aF9vcGVyYW5kOlZfVkxTIDMgInZlY3Rvcl9tb3ZlX29wZXJhbmQiKQ0KKyAg ICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVy YW5kIikpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAge30pDQor DQorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnByZWRfbW92X3dpZHRoPHZs bWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 Vl9WTFMgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICAgICAiPXZyLCAgICB2 ciwgICAgdmQsICAgICBtLCAgICB2ciwgICAgdnIiKQ0KKyAgICAoaWZfdGhl bl9lbHNlOlZfVkxTDQorICAgICAgKHVuc3BlYzo8Vk0+DQorIFsobWF0Y2hf b3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiICAgICJ2bVdj MSwgICBXYzEsICAgIHZtLCB2bVdjMSwgICBXYzEsICAgV2MxIikNCisgKG1h dGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAgICAi ICAgckssICAgIHJLLCAgICBySywgICAgckssICAgIHJLLCAgICBySyIpDQor IChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIiAgICIgICAg aSwgICAgIGksICAgICBpLCAgICAgaSwgICAgIGksICAgICBpIikNCisgKG1h dGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiICAgIiAgICBpLCAg ICAgaSwgICAgIGksICAgICBpLCAgICAgaSwgICAgIGkiKQ0KKyAobWF0Y2hf b3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgICAiICAgIGksICAgICBp LCAgICAgaSwgICAgIGksICAgICBpLCAgICAgaSIpDQorIChyZWc6U0kgVkxf UkVHTlVNKQ0KKyAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9W TE1FTV9PUCkNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJyZWdf b3JfbWVtX29wZXJhbmQiICAgICAgICIgICAgbSwgICAgIG0sICAgICBtLCAg ICB2ciwgICAgdnIsICAgIHZyIikNCisgICAgICAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICIgICAgMCwgICAg dnUsICAgIHZ1LCAgICB2dSwgICAgdnUsICAgICAwIikpKV0NCisgICIoVEFS R0VUX1hUSEVBRFZFQ1RPUg0KKyAgICAmJiAocmVnaXN0ZXJfb3BlcmFuZCAo b3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpDQorIHx8IHJlZ2lzdGVyX29wZXJh bmQgKG9wZXJhbmRzWzNdLCA8TU9ERT5tb2RlKSkpIg0KKyAgIkANCisgICB2 bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMyVwMQ0KKyAgIHZsPHZsbWVtX29w X2F0dHI+LnZcdCUwLCUzDQorICAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAs JTMsJTEudA0KKyAgIHZzPHZsbWVtX29wX2F0dHI+LnZcdCUzLCUwJXAxDQor ICAgdm12LnYudlx0JTAsJTMNCisgICB2bXYudi52XHQlMCwlMyINCisgICIm JiByaXNjdl92ZWN0b3I6Ondob2xlX3JlZ190b19yZWdfbW92ZV9wIChvcGVy YW5kcywgPE1PREU+bW9kZSwgNykiDQorICBbKHNldCAobWF0Y2hfZHVwIDAp IChtYXRjaF9kdXAgMykpXQ0KKyAgIiINCisgIFsoc2V0X2F0dHIgInR5cGUi ICJ2bGRlLHZsZGUsdmxkZSx2c3RlLHZpbW92LHZpbW92IikNCisgICAoc2V0 X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pDQorDQorKGRlZmluZV9pbnNuICJA cHJlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgIm1lbW9yeV9vcGVyYW5kIiAiK20i KQ0KKyAoaWZfdGhlbl9lbHNlOlZJDQorICAgKHVuc3BlYzo8Vk0+DQorICAg ICBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5k IiAidm1XYzEiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDMgInZlY3Rvcl9s ZW5ndGhfb3BlcmFuZCIgICAgIiAgIHJLIikNCisgICAgICAobWF0Y2hfb3Bl cmFuZCA0ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpIikNCisgICAgICAo cmVnOlNJIFZMX1JFR05VTSkNCisgICAgICAocmVnOlNJIFZUWVBFX1JFR05V TSldIFVOU1BFQ19USF9WU01FTV9PUCkNCisgICAobWF0Y2hfb3BlcmFuZDpW SSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiICAgIHZyIikNCisgICAobWF0Y2hf ZHVwIDApKSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RPUiINCisgICJ2czx2 bG1lbV9vcF9hdHRyPi52XHQlMiwlMCVwMSINCisgIFsoc2V0X2F0dHIgInR5 cGUiICJ2c3RlIikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQ0K KyAgIChzZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChjb25zdF9pbnQgNCkp DQorICAgKHNldF9hdHRyICJ2bF9vcF9pZHgiICIzIildKQ0KKw0KKyhkZWZp bmVfaW5zbiAiQHByZWRfc3RyaWRlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0 dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgICAgICAgIj12ciwgICAgdnIsICAgIHZkIikNCisg KGlmX3RoZW5fZWxzZTpWSQ0KKyAgICh1bnNwZWM6PFZNPg0KKyAgICAgWyht YXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZt V2MxLCAgIFdjMSwgICAgdm0iKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDUg InZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgICAgIiAgIHJLLCAgICBySywgICAg cksiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9vcGVy YW5kIiAiICAgIGksICAgICBpLCAgICAgaSIpDQorICAgICAgKG1hdGNoX29w ZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiICIgICAgaSwgICAgIGksICAg ICBpIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA4ICJjb25zdF9pbnRfb3Bl cmFuZCIgIiAgICBpLCAgICAgaSwgICAgIGkiKQ0KKyAgICAgIChyZWc6U0kg VkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5T UEVDX1RIX1ZMU01FTV9PUCkNCisgICAodW5zcGVjOlZJDQorICAgICBbKG1h dGNoX29wZXJhbmQ6VkkgMyAibWVtb3J5X29wZXJhbmQiICIgICAgbSwgICAg IG0sICAgICBtIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA0ICJwbW9kZV9y ZWdfb3JfMF9vcGVyYW5kIiAgICIgICBySiwgICAgckosICAgIHJKIildIFVO U1BFQ19USF9WTFNNRU1fT1ApDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAi dmVjdG9yX21lcmdlX29wZXJhbmQiICAgICAgIiAgICAwLCAgICB2dSwgICAg dnUiKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICAidmxzPHZs bWVtX29wX2F0dHI+LnZcdCUwLCUzLCV6NCVwMSINCisgIFsoc2V0X2F0dHIg InR5cGUiICJ2bGRzIikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4i KV0pDQorDQorKGRlZmluZV9pbnNuICJAcHJlZF9zdHJpZGVkX3N0b3JlX3dp ZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJhbmQiICIrbSIpDQorIChpZl90aGVu X2Vsc2U6VkkNCisgICAodW5zcGVjOjxWTT4NCisgICAgIFsobWF0Y2hfb3Bl cmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpDQor ICAgICAgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5k IiAgICAiICAgcksiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0 X2ludF9vcGVyYW5kIiAiICAgIGkiKQ0KKyAgICAgIChyZWc6U0kgVkxfUkVH TlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RI X1ZTU01FTV9PUCkNCisgICAodW5zcGVjOlZJDQorICAgICBbKG1hdGNoX29w ZXJhbmQgMiAicG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgICAiICAgckoiKQ0K KyAgICAgIChtYXRjaF9vcGVyYW5kOlZJIDMgInJlZ2lzdGVyX29wZXJhbmQi ICAgICAgICIgICB2ciIpXSBVTlNQRUNfVEhfVlNTTUVNX09QKQ0KKyAgICht YXRjaF9kdXAgMCkpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAg InZzczx2bG1lbV9vcF9hdHRyPi52XHQlMywlMCwlejIlcDEiDQorICBbKHNl dF9hdHRyICJ0eXBlIiAidnN0cyIpDQorICAgKHNldF9hdHRyICJtb2RlIiAi PE1PREU+IikNCisgICAoc2V0IChhdHRyICJhdmxfdHlwZV9pZHgiKSAoY29u c3RfaW50IDUpKV0pDQorDQorKGRlZmluZV9pbnNuICJAcHJlZF9pbmRleGVk X2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICI9 dmQsIHZyLHZkLCB2ciIpDQorIChpZl90aGVuX2Vsc2U6VkkNCisgICAodW5z cGVjOjxWTT4NCisgICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rv cl9tYXNrX29wZXJhbmQiICAiIHZtLFdjMSx2bSxXYzEiKQ0KKyAgICAgICht YXRjaF9vcGVyYW5kIDUgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgICAgICIg ckssIHJLLHJLLCBySyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNiAiY29u c3RfaW50X29wZXJhbmQiICIgIGksICBpLCBpLCAgaSIpDQorICAgICAgKG1h dGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiICIgIGksICBpLCBp LCAgaSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgOCAiY29uc3RfaW50X29w ZXJhbmQiICIgIGksICBpLCBpLCAgaSIpDQorICAgICAgKHJlZzpTSSBWTF9S RUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VEhfVkxYTUVNX09QKQ0KKyAgICh1bnNwZWM6VkkNCisgICAgIFsobWF0Y2hf b3BlcmFuZCAzICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiAgICAiIHJKLCBy SixySiwgckoiKQ0KKyAgICAgIChtZW06QkxLIChzY3JhdGNoKSkNCisgICAg ICAobWF0Y2hfb3BlcmFuZDpWSSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIHZy LCB2cix2ciwgdnIiKV0gVU5TUEVDX1RIX1ZMWE1FTV9PUCkNCisgICAobWF0 Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICAg IiB2dSwgdnUsIDAsICAwIikpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9S Ig0KKyAgInZseDx2bG1lbV9vcF9hdHRyPi52XHQlMCwoJXozKSwlNCVwMSIN CisgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGR1eCIpDQorICAgKHNldF9hdHRy ICJtb2RlIiAiPE1PREU+IildKQ0KKw0KKyhkZWZpbmVfaW5zbiAiQHByZWRf aW5kZXhlZF88dmxtZW1fb3JkZXJfYXR0cj5zdG9yZV93aWR0aDx2bG1lbV9v cF9hdHRyPjxtb2RlPiINCisgIFsoc2V0IChtZW06QkxLIChzY3JhdGNoKSkN CisgKHVuc3BlYzpCTEsNCisgICBbKHVuc3BlYzo8Vk0+DQorICAgICBbKG1h dGNoX29wZXJhbmQ6PFZNPiAwICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1X YzEiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhf b3BlcmFuZCIgICAgIiAgIHJLIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA1 ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpIikNCisgICAgICAocmVnOlNJ IFZMX1JFR05VTSkNCisgICAgICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVO U1BFQ19USF9WU1hNRU1fT1ApDQorICAgIChtYXRjaF9vcGVyYW5kIDEgInBt b2RlX3JlZ19vcl8wX29wZXJhbmQiICAgICAgIiAgckoiKQ0KKyAgICAobWF0 Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiICB2ciIpDQor ICAgIChtYXRjaF9vcGVyYW5kOlZJIDMgInJlZ2lzdGVyX29wZXJhbmQiICAi ICB2ciIpXSBVTlNQRUNfVEhfVlNYTUVNX09QKSldDQorICAiVEFSR0VUX1hU SEVBRFZFQ1RPUiINCisgICJ2czx2bG1lbV9vcmRlcl9hdHRyPng8dmxtZW1f b3BfYXR0cj4udlx0JTMsKCV6MSksJTIlcDAiDQorICBbKHNldF9hdHRyICJ0 eXBlIiAidnN0dXgiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIp XSkNCisNCisoZGVmaW5lX2V4cGFuZCAiQHByZWRfdGhfZXh0cmFjdDxtb2Rl PiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVy X29wZXJhbmQiKQ0KKyAodW5zcGVjOjxWRUw+DQorICAgWyh2ZWNfc2VsZWN0 OjxWRUw+DQorICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFNJIDEgInJlZ2lz dGVyX29wZXJhbmQiKQ0KKyAgICAgIChwYXJhbGxlbCBbKG1hdGNoX29wZXJh bmQ6REkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKV0pKQ0KKyAgICAocmVn OlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19WUFJFRElDQVRFKSldDQorICAi VEFSR0VUX1hUSEVBRFZFQ1RPUiINCit7fSkNCisNCisoZGVmaW5lX2luc24g IipwcmVkX3RoX2V4dHJhY3Q8bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3Bl cmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICI9ciIpDQorICAo dW5zcGVjOjxWRUw+DQorICAgIFsodmVjX3NlbGVjdDo8VkVMPg0KKyAgICAg ICAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIg InZyIikNCisgICAgICAgKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpESSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpDQorICAgICAocmVnOlNJIFZU WVBFX1JFR05VTSldIFVOU1BFQ19WUFJFRElDQVRFKSldDQorICAiVEFSR0VU X1hUSEVBRFZFQ1RPUiINCisgICJ2ZXh0Lngudlx0JTAsJTEsJTIiDQorICBb KHNldF9hdHRyICJ0eXBlIiAidmltb3Z2eCIpDQorICAgKHNldF9hdHRyICJt b2RlIiAiPE1PREU+IildKQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsYi12c2IuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi4zYzEyYzEyNDU5Nw0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxiLXZzYi5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4 dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8N CisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQorDQorLyoNCisqKiBm MToNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoq IHRoLnZsYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZs Ylwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZ2 XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldKw0KKyoqIHRoLnZhZGRc LnZ2XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldKw0KKyoqIHRoLnZz Ylwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQor dm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQpDQorew0KKyAgICB2aW50 MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChpbiwgNCk7DQor ICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xX3R1 ICh2LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3Zh ZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQg PSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfdHUgKHYzLCB2MiwgdjIsIDQpOw0K KyAgICBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9 DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSss emVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChb YS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRh LG1hDQorKiogdGgudmxiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAu dA0KKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqdlsw LTldKw0KKyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMqdlswLTld Kyxccyp2WzAtOV0rLFxzKnYwLnQNCisqKiB0aC52c2Iudlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMiAodm9pZCAq IGluLCB2b2lkICpvdXQpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoo dmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1v cnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJfdl9p MzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNjdl90 aF92bGJfdl9pMzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZpbnQzMm0x X3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7DQor ICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfbSAo bWFzaywgdjMsIHYzLCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jfdl9pMzJt MSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjM6DQorKiogdGgu dnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgu dmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZs aVx0emVybyw0LGUzMixtMSx0dSxtdQ0KKyoqIHRoLnZsYlwudlx0dlswLTld KywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsYi52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2 WzAtOV0rLFxzKnZbMC05XSsNCisqKiB0aC52YWRkXC52dlx0dlsxLTldWzAt OV0/LFxzKnZbMC05XSssXHMqdlswLTldKyxccyp2MC50DQorKiogdGgudnNi LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3Zv aWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0KQ0KK3sNCisgICAgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGls ZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2 MiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTFfdHVtdSAobWFzaywgdiwgaW4s IDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z2X2kz Mm0xICh2MiwgdjIsIDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNj dl92YWRkX3Z2X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgdjIsIDQpOw0K KyAgICBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9 DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uMzBi ZWYzNjkzNzUNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMN CkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAt bWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyogeyBkZy1maW5hbCB7IGNoZWNr LWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KKyNpbmNsdWRlICJy aXNjdl90aF92ZWN0b3IuaCINCisNCisvKg0KKyoqIGYxOg0KKyoqIHRoLnZz ZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hDQorKiogdGgudmxidVwudlx0 dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsYnVcLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxc cyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxz KnZbMC05XSssXHMqLTE2DQorKiogdGgudnNiXC52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYxICh2b2lkICogaW4s IHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZ1aW50MzJtMV90 IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2 dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xX3R1ICh2 LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRk X3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsN CisgICAgX19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7DQor fQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0r LHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0 YSxtYQ0KKyoqIHRoLnZsYnUudlx0dlswLTldKywwXChbYS14MC05XStcKSx2 MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyot MTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSss XHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14 MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMiAodm9pZCAqIGluLCB2 b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFz ayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6 OiJtZW1vcnkiKTsNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhf dmxidV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bGJ1X3ZfdTMybTFfbSAobWFzaywgaW4sIDQpOw0KKyAg ICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIs IC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRk X3Z4X3UzMm0xX20gKG1hc2ssIHYzLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2 X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisq KiBmMzoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQs dGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgu dmxidVwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsYnUu dlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwu dmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52 aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisq KiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0K KyovDQordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90 IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90Kilp bjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAg dnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwg NCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJ1X3Zf dTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOw0KKyAgICB2dWludDMybTFf dCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQor ICAgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1 bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92 c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9y L3ZsaC12c2guYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYw0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4zYzhiNWNjYzE2Yg0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jDQpAQCAtMCwwICsxLDY4IEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioq IiAiIiB9IH0gKi8NCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQor DQorLyoNCisqKiBmMToNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixt MSx0dSxtYQ0KKyoqIHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStc KQ0KKyoqIHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiog dGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0 aC52c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisq Lw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgp DQorew0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaF92X2kz Mm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3Ro X3ZsaF92X2kzMm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3Qg djMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCAtMTYsIDQpOw0KKyAg ICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2 MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfaTMybTEg KG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZz ZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZs bS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlc dHplcm8sNCxlMzIsbTEsdGEsbWENCisqKiB0aC52bGgudlx0dlswLTldKyww XChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05XSss XHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAt OV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c2gudlx0 dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBm MiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkNCit7DQorICAg IHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20g dm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xX20gKG1hc2ssIGlu LCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9p MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnhfaTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7DQorICAg IF9fcmlzY3ZfdGhfdnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisN CisvKg0KKyoqIGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJv LGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUN CisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0 aC52bGgudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgu dmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52 YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYw LnQNCisqKiB0aC52c2gudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHJldA0KKyovDQordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIGlu dDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMy X3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0K KyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xIChp biwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaF92 X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisgICAgdmludDMybTFf dCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7DQor ICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHVt dSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zz aF92X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmxodS12c2guYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYjdjMDA0MDRmMTgNCi0tLSAvZGV2 L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMNCkBAIC0wLDAgKzEsNjggQEAN CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9 ICovDQorLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAi KioiICIiIH0gfSAqLw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIN CisNCisvKg0KKyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMy LG0xLHR1LG1hDQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHRoLnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkN CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0K KyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQor KiogdGgudnNoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0 DQorKi8NCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkNCit7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zs aHVfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9f cmlzY3ZfdGhfdmxodV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZ1 aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2 LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhf dTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92 c2hfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6 DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1h DQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0 aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsaHUu dlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwu dmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52 aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisq KiB0aC52c2gudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0K KyovDQordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90 IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90Kilp bjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAg dnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xIChpbiwg NCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGh1X3Zf dTMybTFfbSAobWFzaywgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9 IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1 aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX20gKG1hc2ss IHYzLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92X3UzMm0xIChv dXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0aC52c2V0 dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0u dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6 ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgudmxodVwudlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHRoLnZsaHUudlx0dlswLTldKywwXChbYS14 MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlsw LTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxz KnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c2gudlx0dlswLTld KywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMyAodm9p ZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2Ym9v bDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0 aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9f cmlzY3ZfdGhfdmxodV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJt MV90IHYyID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTFfdHVtdSAobWFzaywg diwgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFk ZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0 ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1bXUgKG1hc2ssIHYzLCB2Miwg LTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2hfdl91MzJtMSAob3V0LCB2 NCwgNCk7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs dy12c3cuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi4xN2E1MzAxMmFjZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 LXZzdy5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2 ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGctZmluYWwg eyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCisjaW5j bHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQorDQorLyoNCisqKiBmMToNCisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZs d1wudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsd1wudlx0 dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZ4XHR2WzAt OV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rDQorKiogdGgudmFkZFwudnhc dHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisqKiB0aC52c3dc LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3Zv aWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQorew0K KyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChp biwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd192 X2kzMm0xX3R1ICh2LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBf X3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsNCisgICAgdmludDMy bTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dSAodjMsIHYyLCB4 LCA0KTsNCisgICAgX19yaXNjdl90aF92c3dfdl9pMzJtMSAob3V0LCB2NCwg NCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgudnNldHZsaVx0W2Et eDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUz MixtMSx0YSxtYQ0KKyoqIHRoLnZsdy52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpLHYwLnQNCisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAtOV0r LFxzKlthLXgwLTldKw0KKyoqIHRoLnZhZGRcLnZ4XHR2WzEtOV1bMC05XT8s XHMqdlswLTldKyxccypbYS14MC05XSssXHMqdjAudA0KKyoqIHRoLnZzdy52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lk IGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisg ICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFz bSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmlu dDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTFfbSAobWFzaywg aW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4 X2kzMm0xICh2MiwgeCwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnhfaTMybTFfbSAobWFzaywgdjMsIHgsIDQpOw0KKyAgICBf X3Jpc2N2X3RoX3Zzd192X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQor LyoNCisqKiBmMzoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxl OCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQor KiogdGgudmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgu dmx3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZh ZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rDQorKiog dGgudmFkZFwudnhcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKlthLXgw LTldKyxccyp2MC50DQorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9p ZCAqb3V0LCBpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9 ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJt ZW1vcnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHdf dl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNj dl90aF92bHdfdl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7DQorICAg IHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4 LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9p MzJtMV90dW11IChtYXNrLCB2MywgdjIsIHgsIDQpOw0KKyAgICBfX3Jpc2N2 X3RoX3Zzd192X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3Ivdmx3dS12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYjE4N2NmYzg1MmINCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMNCkBAIC0wLDAgKzEs NjggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQg LU8zIiB9ICovDQorLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJv ZGllcyAiKioiICIiIH0gfSAqLw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0 b3IuaCINCisNCisvKg0KKyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJv LDQsZTMyLG0xLHR1LG1hDQorKiogdGgudmx3dVwudlx0dlswLTldKywwXChb YS14MC05XStcKQ0KKyoqIHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxz Ki0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2DQorKiogdGgudnN3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogcmV0DQorKi8NCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwg dWludDMyX3QgeCkNCit7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2 X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2 MiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7DQor ICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2 MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNj dl90aF92c3dfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQor KiogZjI6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0 LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkN CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQ0KKyoqIHRo LnZsd3Uudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgu dmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52 YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYw LnQNCisqKiB0aC52c3cudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHJldA0KKyovDQordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVp bnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wz Ml90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsN CisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0x IChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92 bHd1X3ZfdTMybTFfbSAobWFzaywgaW4sIDQpOw0KKyAgICB2dWludDMybTFf dCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQor ICAgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX20g KG1hc2ssIHYzLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X3Uz Mm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0 aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRp dmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgudmx3dVwudlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZsd3Uudlx0dlswLTldKyww XChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudmlcdHZbMC05XSss XHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAt OV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQNCisqKiB0aC52c3cudlx0 dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBm MyAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAg ICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNt IHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdnVpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1 aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTFfdHVtdSAo bWFzaywgdiwgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJt MV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1bXUgKG1hc2ssIHYz LCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c3dfdl91MzJtMSAo b3V0LCB2NCwgNCk7DQorfQ0KLS0gDQoyLjE3LjENCiANCiANCiANCiANCiAN CiANCg== ------=_001_NextPart521740802630_=------