From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1997 invoked by alias); 19 Nov 2012 09:51:24 -0000 Received: (qmail 1989 invoked by uid 22791); 19 Nov 2012 09:51:22 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-ee0-f41.google.com (HELO mail-ee0-f41.google.com) (74.125.83.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 19 Nov 2012 09:51:18 +0000 Received: by mail-ee0-f41.google.com with SMTP id d41so3193149eek.0 for ; Mon, 19 Nov 2012 01:51:15 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :x-gm-message-state; bh=UreLSE++4q6OUdgOGU8eN2ugNtnZcy+CIWQd7y1Ooks=; b=hvdIOy8rDorvrH3cNzkrkjlI5t9VaUjZfJvNQ7R0bYB67AWW2WIXKBsmCWoAgwcI8+ WIKZzuQ+11QGNR4KPQbCBJXbQPr3lgJSXolttK+Yl1c64+SgTdO3VseNLiZ0n7MOkufZ Bl8rlRzH8stFNHbXoc+91BC2M78e0ZTKr50ebaE2LkMgGlTyLeHaXPvQiG1OLsQwjx+O OZ+AArDQSO7OyPuesLZFy/c6J76mq0dpWNnE1kLkWbfz/kWKUSro8uRp3vluV0ccf6im /kibd6qWfeZY83X6WtiOj14A9Xl/iVQyTMKoHo+M3fhU3vT5AElLaTfRWjpFncbTdtZx Dzdw== MIME-Version: 1.0 Received: by 10.14.205.65 with SMTP id i41mr22565910eeo.2.1353318674866; Mon, 19 Nov 2012 01:51:14 -0800 (PST) Received: by 10.14.117.81 with HTTP; Mon, 19 Nov 2012 01:51:14 -0800 (PST) Date: Mon, 19 Nov 2012 09:51:00 -0000 Message-ID: Subject: [PATCH] AArch64 optimized maths functions. From: Marcus Shawcroft To: libc-ports@sourceware.org Content-Type: multipart/mixed; boundary=047d7b3436a2e221db04ced60e42 X-Gm-Message-State: ALoCoQnK1c8UiX4xDfGmENCoQVvbtPkv1kN7nKDLqaTyhUpObPHd9YLanNOiPKwVi5l6d0m8vICA Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2012-11/txt/msg00060.txt.bz2 --047d7b3436a2e221db04ced60e42 Content-Type: text/plain; charset=UTF-8 Content-length: 1753 Hi, This patch adds AArch64 optimized maths functions which were presented in the orignal port but subsequently removed in order to get the core of the port through the review process. Does anyone have comments on this patch? Thanks /Marcus 2012-11-19 Marcus Shawcroft * sysdeps/aarch64/fpu/s_ceil.c: New file. * sysdeps/aarch64/fpu/s_ceilf.c: New file. * sysdeps/aarch64/fpu/s_floor.c: New file. * sysdeps/aarch64/fpu/s_floorf.c: New file. * sysdeps/aarch64/fpu/s_fma.c: New file. * sysdeps/aarch64/fpu/s_fmaf.c: New file. * sysdeps/aarch64/fpu/s_fmax.c: New file. * sysdeps/aarch64/fpu/s_fmaxf.c: New file. * sysdeps/aarch64/fpu/s_fmin.c: New file. * sysdeps/aarch64/fpu/s_fminf.c: New file. * sysdeps/aarch64/fpu/s_frint.x: New file. * sysdeps/aarch64/fpu/s_frintf.x: New file. * sysdeps/aarch64/fpu/s_llrint.c: New file. * sysdeps/aarch64/fpu/s_llrintf.c: New file. * sysdeps/aarch64/fpu/s_llround.c: New file. * sysdeps/aarch64/fpu/s_llroundf.c: New file. * sysdeps/aarch64/fpu/s_lrint.c: New file. * sysdeps/aarch64/fpu/s_lrintf.c: New file. * sysdeps/aarch64/fpu/s_lround.c: New file. * sysdeps/aarch64/fpu/s_lroundf.c: New file. * sysdeps/aarch64/fpu/s_nearbyint.c: New file. * sysdeps/aarch64/fpu/s_nearbyintf.c: New file. * sysdeps/aarch64/fpu/s_rint.c: New file. * sysdeps/aarch64/fpu/s_rintf.c: New file. * sysdeps/aarch64/fpu/s_round.c: New file. * sysdeps/aarch64/fpu/s_roundf.c: New file. * sysdeps/aarch64/fpu/s_trunc.c: New file. * sysdeps/aarch64/fpu/s_truncf.c: New file. --047d7b3436a2e221db04ced60e42 Content-Type: application/octet-stream; name="aarch64-fpu.diff" Content-Disposition: attachment; filename="aarch64-fpu.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h9pexwlz0 Content-length: 46316 ZGlmZiAtLWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19jZWls LmMgYi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfY2VpbC5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4N2I5YjQKLS0tIC9k ZXYvbnVsbAorKysgYi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfY2Vp bC5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMSwg MjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorICAgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUg QyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKworI2RlZmluZQlGVU5DIGNlaWwKKyNkZWZp bmUgSU5TTiAiZnJpbnRwIgorI2luY2x1ZGUgPHNfZnJpbnQueD4KZGlmZiAt LWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19jZWlsZi5jIGIv cG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2NlaWxmLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUwM2Y5OQotLS0gL2Rldi9u dWxsCisrKyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19jZWlsZi5j CkBAIC0wLDAgKzEsMjEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMSwgMjAx MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz CisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorICAgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBM aWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKworI2RlZmluZQlGVU5DIGNlaWxmCisjZGVmaW5l IElOU04gImZyaW50cCIKKyNpbmNsdWRlIDxzX2ZyaW50Zi54PgpkaWZmIC0t Z2l0IGEvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2Zsb29yLmMgYi9w b3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfZmxvb3IuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjkxNGI2Ci0tLSAvZGV2L251 bGwKKysrIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2Zsb29yLmMK QEAgLTAsMCArMSwyMSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEy IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMK KyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlCisgICBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUg R05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExp YnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworCisjZGVmaW5lIEZVTkMgZmxvb3IKKyNkZWZpbmUg SU5TTiAiZnJpbnRtIgorI2luY2x1ZGUgPHNfZnJpbnQueD4KZGlmZiAtLWdp dCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19mbG9vcmYuYyBiL3Bv cnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19mbG9vcmYuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTQ1MmM1Ci0tLSAvZGV2L251 bGwKKysrIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2Zsb29yZi5j CkBAIC0wLDAgKzEsMjEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMSwgMjAx MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz CisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorICAgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBM aWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKworI2RlZmluZSBGVU5DIGZsb29yZgorI2RlZmlu ZSBJTlNOICJmcmludG0iCisjaW5jbHVkZSA8c19mcmludGYueD4KZGlmZiAt LWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19mbWEuYyBiL3Bv cnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19mbWEuYwppbmRleCA4ZjYyNjA1 Li43ZDhiZDc3IDEwMDY0NAotLS0gYS9wb3J0cy9zeXNkZXBzL2FhcmNoNjQv ZnB1L3NfZm1hLmMKKysrIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9z X2ZtYS5jCkBAIC0xLDIgKzEsNTQgQEAKLS8qIEFsd2F5cyB1c2UgZGJsLTY0 IHZlcnNpb24gYmVjYXVzZSBsb25nIGRvdWJsZSBpcyBlbXVsYXRlZCBpbiBz b2Z0d2FyZS4gICovCi0jaW5jbHVkZSA8c3lzZGVwcy9pZWVlNzU0L2RibC02 NC9zX2ZtYS5jPgorLyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMTIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBM aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsg aWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisKKyNpbmNsdWRlIDxtYXRoLmg+CisKKyNpZm5kZWYgRlVOQwor I2RlZmluZSBGVU5DIGZtYQorI2VuZGlmCisKKyNpZm5kZWYgVFlQRQorI2Rl ZmluZSBUWVBFIGRvdWJsZQorI2RlZmluZSBSRUdTICJkIgorI2Vsc2UKKyNp Zm5kZWYgUkVHUworI2Vycm9yIFJFR1Mgbm90IGRlZmluZWQKKyNlbmRpZgor I2VuZGlmCisKKyNkZWZpbmUgX19DT05DQVRYKGEsYikgX19DT05DQVQoYSxi KQorCitUWVBFCitfX0NPTkNBVFgoX18sRlVOQykgKHgsIHksIHopCisgICAg IFRZUEUgeDsKKyAgICAgVFlQRSB5OworICAgICBUWVBFIHo7Cit7CisgIFRZ UEUgcmVzdWx0OworICBhc20gKCAiZm1hZGQiICJcdCUiIFJFR1MgIjAsICUi IFJFR1MgIjEsICUiIFJFR1MgIjIsICUiIFJFR1MgIjMiCisgICAgICAgIDog Ij13IiAocmVzdWx0KSA6ICJ3IiAoeCksICJ3IiAoeSksICJ3IiAoeikgKTsK KyAgcmV0dXJuIHJlc3VsdDsKK30KKworI2RlZmluZSB3ZWFrX2FsaWFzeChh LGIpIHdlYWtfYWxpYXMoYSxiKQord2Vha19hbGlhc3ggKF9fQ09OQ0FUWChf XyxGVU5DKSwgRlVOQykKKyNkZWZpbmUgc3Ryb25nX2FsaWFzeChhLGIpIHN0 cm9uZ19hbGlhcyhhLGIpCisjaWZkZWYgTk9fTE9OR19ET1VCTEUKK3N0cm9u Z19hbGlhc3ggKF9fQ09OQ0FUWChfXyxGVU5DKSwgIF9fQ09OQ0FUWChfXyxf X0NPTkNBVFgoRlVOQyxsKSkpCit3ZWFrX2FsaWFzeCAoX19DT05DQVRYKF9f LEZVTkMpLCBfX0NPTkNBVFgoRlVOQyxsKSkKKyNlbmRpZgpkaWZmIC0tZ2l0 IGEvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2ZtYWYuYyBiL3BvcnRz L3N5c2RlcHMvYWFyY2g2NC9mcHUvc19mbWFmLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYmNkYTY3YgotLS0gL2Rldi9udWxsCisr KyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19mbWFmLmMKQEAgLTAs MCArMSwyMiBAQAorLyogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMg cGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAyLjEgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMg TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7 IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisjZGVmaW5lIEZVTkMgZm1hZgorI2RlZmluZSBUWVBFIGZs b2F0CisjZGVmaW5lIFJFR1MgInMiCisjaW5jbHVkZSA8c19mbWEuYz4KZGlm ZiAtLWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19mbWF4LmMg Yi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfZm1heC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZTFlY2MKLS0tIC9kZXYv bnVsbAorKysgYi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfZm1heC5j CkBAIC0wLDAgKzEsMjEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMSwgMjAx MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz CisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorICAgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBM aWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKworI2RlZmluZSBGVU5DIGZtYXgKKyNkZWZpbmUg SU5TTiAiZm1heG5tIgorI2luY2x1ZGUgPHNfZm1pbi5jPgpkaWZmIC0tZ2l0 IGEvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2ZtYXhmLmMgYi9wb3J0 cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfZm1heGYuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTJhNGJkCi0tLSAvZGV2L251bGwK KysrIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2ZtYXhmLmMKQEAg LTAsMCArMSwyMyBAQAorLyogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAg IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05V IEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJh cnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLworCisjZGVmaW5lIEZVTkMgZm1heGYKKyNkZWZpbmUgSU5T TiAiZm1heG5tIgorI2RlZmluZSBUWVBFIGZsb2F0CisjZGVmaW5lIFJFR1Mg InMiCisjaW5jbHVkZSA8c19mbWluLmM+CmRpZmYgLS1naXQgYS9wb3J0cy9z eXNkZXBzL2FhcmNoNjQvZnB1L3NfZm1pbi5jIGIvcG9ydHMvc3lzZGVwcy9h YXJjaDY0L2ZwdS9zX2ZtaW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4zMjE0YWE4Ci0tLSAvZGV2L251bGwKKysrIGIvcG9ydHMv c3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2ZtaW4uYwpAQCAtMCwwICsxLDU3IEBA CisvKiBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMTEsIDIwMTIgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMg TGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFy eTsgaWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCisKKyNpbmNsdWRlIDxtYXRoLmg+CisKKyNpZm5kZWYgRlVO QworI2RlZmluZSBGVU5DIGZtaW4KKyNlbmRpZgorCisjaWZuZGVmIElOU04K KyNkZWZpbmUgSU5TTiAiZm1pbm5tIgorI2VuZGlmCisKKyNpZm5kZWYgVFlQ RQorI2RlZmluZSBUWVBFIGRvdWJsZQorI2RlZmluZSBSRUdTICJkIgorI2Vs c2UKKyNpZm5kZWYgUkVHUworI2Vycm9yIFJFR1Mgbm90IGRlZmluZWQKKyNl bmRpZgorI2VuZGlmCisKKyNkZWZpbmUgX19DT05DQVRYKGEsYikgX19DT05D QVQoYSxiKQorCitUWVBFCitfX0NPTkNBVFgoX18sRlVOQykgKHgsIHkpCisg ICAgIFRZUEUgeDsKKyAgICAgVFlQRSB5OworeworICBUWVBFIHJlc3VsdDsK KyAgYXNtICggSU5TTiAiXHQlIiBSRUdTICIwLCAlIiBSRUdTICIxLCAlIiBS RUdTICIyIgorICAgICAgICA6ICI9dyIgKHJlc3VsdCkgOiAidyIgKHgpLCAi dyIgKHkpICk7CisgIHJldHVybiByZXN1bHQ7Cit9CisKKyNkZWZpbmUgd2Vh a19hbGlhc3goYSxiKSB3ZWFrX2FsaWFzKGEsYikKK3dlYWtfYWxpYXN4IChf X0NPTkNBVFgoX18sRlVOQyksIEZVTkMpCisjZGVmaW5lIHN0cm9uZ19hbGlh c3goYSxiKSBzdHJvbmdfYWxpYXMoYSxiKQorI2lmZGVmIE5PX0xPTkdfRE9V QkxFCitzdHJvbmdfYWxpYXN4IChfX0NPTkNBVFgoX18sRlVOQyksICBfX0NP TkNBVFgoX18sX19DT05DQVRYKEZVTkMsbCkpKQord2Vha19hbGlhc3ggKF9f Q09OQ0FUWChfXyxGVU5DKSwgX19DT05DQVRYKEZVTkMsbCkpCisjZW5kaWYK ZGlmZiAtLWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19mbWlu Zi5jIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2ZtaW5mLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU4YjYwZQotLS0g L2Rldi9udWxsCisrKyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19m bWluZi5jCkBAIC0wLDAgKzEsMjIgQEAKKy8qIENvcHlyaWdodCAoQykgMjAx MSwgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorICAgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBH TlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2RlZmluZSBGVU5DIGZtaW5mCisj ZGVmaW5lIFRZUEUgZmxvYXQKKyNkZWZpbmUgUkVHUyAicyIKKyNpbmNsdWRl IDxzX2ZtaW4uYz4KZGlmZiAtLWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2 NC9mcHUvc19mcmludC54IGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9z X2ZyaW50LngKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YjNlMjFlMQotLS0gL2Rldi9udWxsCisrKyBiL3BvcnRzL3N5c2RlcHMvYWFy Y2g2NC9mcHUvc19mcmludC54CkBAIC0wLDAgKzEsNTYgQEAKKy8qIENvcHly aWdodCAoQykgMTk5NiwgMTk5NywgMjAxMSwgMjAxMiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg dGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2 ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAg TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3Qs IHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KworI2luY2x1ZGUgPG1hdGguaD4KKworI2lmbmRlZiBGVU5DCisjZXJyb3Ig RlVOQyBub3QgZGVmaW5lZAorI2VuZGlmCisKKyNpZm5kZWYgVFlQRQorI2Rl ZmluZSBUWVBFIGRvdWJsZQorI2RlZmluZSBSRUdTICJkIgorI2Vsc2UKKyNp Zm5kZWYgUkVHUworI2Vycm9yIFJFR1Mgbm90IGRlZmluZWQKKyNlbmRpZgor I2VuZGlmCisKKyNpZm5kZWYgSU5TTgorI2Vycm9yIElOU04gbm90IGRlZmlu ZWQKKyNlbmRpZgorCisjZGVmaW5lIF9fQ09OQ0FUWChhLGIpIF9fQ09OQ0FU KGEsYikKKworVFlQRQorX19DT05DQVRYKF9fLEZVTkMpICh4KQorICAgICBU WVBFIHg7Cit7CisgIFRZUEUgcmVzdWx0OworICBhc20gKCBJTlNOICJcdCUi IFJFR1MgIjAsICUiIFJFR1MgIjEiIDoKKwkiPXciIChyZXN1bHQpIDogInci ICh4KSApOworICByZXR1cm4gcmVzdWx0OworfQorCisjZGVmaW5lIHdlYWtf YWxpYXN4KGEsYikgd2Vha19hbGlhcyhhLGIpCit3ZWFrX2FsaWFzeCAoX19D T05DQVRYKF9fLEZVTkMpLCBGVU5DKQorI2RlZmluZSBzdHJvbmdfYWxpYXN4 KGEsYikgc3Ryb25nX2FsaWFzKGEsYikKKyNpZmRlZiBOT19MT05HX0RPVUJM RQorc3Ryb25nX2FsaWFzeCAoX19DT05DQVRYKF9fLEZVTkMpLCAgX19DT05D QVRYKF9fLF9fQ09OQ0FUWChGVU5DLGwpKSkKK3dlYWtfYWxpYXN4IChfX0NP TkNBVFgoX18sRlVOQyksIF9fQ09OQ0FUWChGVU5DLGwpKQorI2VuZGlmCmRp ZmYgLS1naXQgYS9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfZnJpbnRm LnggYi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfZnJpbnRmLngKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNlOTdkZgotLS0g L2Rldi9udWxsCisrKyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19m cmludGYueApAQCAtMCwwICsxLDI0IEBACisvKiBDb3B5cmlnaHQgKEMpIDIw MTEsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAg IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUKKyAgIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpZm5kZWYgRlVOQworI2Vycm9y IEZVTkMgbm90IGRlZmluZWQKKyNlbmRpZgorI2RlZmluZSBUWVBFIGZsb2F0 CisjZGVmaW5lIFJFR1MgInMiCisjaW5jbHVkZSA8c19mcmludC54PgpkaWZm IC0tZ2l0IGEvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2xscmludC5j IGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2xscmludC5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlY2ViNjgKLS0tIC9k ZXYvbnVsbAorKysgYi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfbGxy aW50LmMKQEAgLTAsMCArMSwyMSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDEx LCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBU aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlCisgICBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdO VSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworCisjZGVmaW5lIEZVTkMgbGxyaW50Cisj ZGVmaW5lIE9UWVBFIGxvbmcgbG9uZyBpbnQKKyNpbmNsdWRlIDxzX2xyaW50 LmM+CmRpZmYgLS1naXQgYS9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3Nf bGxyaW50Zi5jIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2xscmlu dGYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2I3 M2E3Ci0tLSAvZGV2L251bGwKKysrIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0 L2ZwdS9zX2xscmludGYuYwpAQCAtMCwwICsxLDIzIEBACisvKiBDb3B5cmln aHQgKEMpIDIwMTEsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJy YXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUK KyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcg d2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUgRlVO QyBsbHJpbnRmCisjZGVmaW5lIElUWVBFIGZsb2F0CisjZGVmaW5lIElSRUdT ICJzIgorI2RlZmluZSBPVFlQRSBsb25nIGxvbmcgaW50CisjaW5jbHVkZSA8 c19scmludC5jPgpkaWZmIC0tZ2l0IGEvcG9ydHMvc3lzZGVwcy9hYXJjaDY0 L2ZwdS9zX2xscm91bmQuYyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUv c19sbHJvdW5kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNTY0NmUwMAotLS0gL2Rldi9udWxsCisrKyBiL3BvcnRzL3N5c2RlcHMv YWFyY2g2NC9mcHUvc19sbHJvdW5kLmMKQEAgLTAsMCArMSwyMSBAQAorLyog Q29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05V IEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEg b2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNl IGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisg ICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisjZGVm aW5lIEZVTkMgbGxyb3VuZAorI2RlZmluZSBPVFlQRSBsb25nIGxvbmcgaW50 CisjaW5jbHVkZSA8c19scm91bmQuYz4KZGlmZiAtLWdpdCBhL3BvcnRzL3N5 c2RlcHMvYWFyY2g2NC9mcHUvc19sbHJvdW5kZi5jIGIvcG9ydHMvc3lzZGVw cy9hYXJjaDY0L2ZwdS9zX2xscm91bmRmLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMjU1NTIyNgotLS0gL2Rldi9udWxsCisrKyBi L3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19sbHJvdW5kZi5jCkBAIC0w LDAgKzEsMjMgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBM aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5 OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKworI2RlZmluZSBGVU5DIGxscm91bmRmCisjZGVmaW5lIElU WVBFIGZsb2F0CisjZGVmaW5lIElSRUdTICJzIgorI2RlZmluZSBPVFlQRSBs b25nIGxvbmcgaW50CisjaW5jbHVkZSA8c19scm91bmQuYz4KZGlmZiAtLWdp dCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19scmludC5jIGIvcG9y dHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2xyaW50LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVhZDFlYQotLS0gL2Rldi9udWxs CisrKyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19scmludC5jCkBA IC0wLDAgKzEsNjAgQEAKKy8qIENvcHlyaWdodCAoQykgMTk5NiwgMTk5Nywg MjAxMSwgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwor ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPG1hdGguaD4K KworI2lmbmRlZiBGVU5DCisjZGVmaW5lIEZVTkMgbHJpbnQKKyNlbmRpZgor CisjaWZuZGVmIElUWVBFCisjZGVmaW5lIElUWVBFIGRvdWJsZQorI2RlZmlu ZSBJUkVHUyAiZCIKKyNlbHNlCisjaWZuZGVmIElSRUdTCisjZXJyb3IgSVJF R1Mgbm90IGRlZmluZWQKKyNlbmRpZgorI2VuZGlmCisKKyNpZm5kZWYgT1RZ UEUKKyNkZWZpbmUgT1RZUEUgbG9uZyBpbnQKKyNlbmRpZgorCisjZGVmaW5l IE9SRUdTICJ4IgorCisjZGVmaW5lIF9fQ09OQ0FUWChhLGIpIF9fQ09OQ0FU KGEsYikKKworT1RZUEUKK19fQ09OQ0FUWChfXyxGVU5DKSAoeCkKKyAgICAg SVRZUEUgeDsKK3sKKyAgT1RZUEUgcmVzdWx0OworICBJVFlQRSB0ZW1wOwor ICBhc20gKCAiZnJpbnR4IiAiXHQlIiBJUkVHUyAiMSwgJSIgSVJFR1MgIjJc blx0IgorICAgICAgICAiZmN2dHpzIiAiXHQlIiBPUkVHUyAiMCwgJSIgSVJF R1MgIjEiCisgICAgICAgIDogIj1yIiAocmVzdWx0KSwgIj13IiAodGVtcCkg OiAidyIgKHgpICk7CisgIHJldHVybiByZXN1bHQ7Cit9CisKKyNkZWZpbmUg d2Vha19hbGlhc3goYSxiKSB3ZWFrX2FsaWFzKGEsYikKK3dlYWtfYWxpYXN4 IChfX0NPTkNBVFgoX18sRlVOQyksIEZVTkMpCisjZGVmaW5lIHN0cm9uZ19h bGlhc3goYSxiKSBzdHJvbmdfYWxpYXMoYSxiKQorI2lmZGVmIE5PX0xPTkdf RE9VQkxFCitzdHJvbmdfYWxpYXN4IChfX0NPTkNBVFgoX18sRlVOQyksICBf X0NPTkNBVFgoX18sX19DT05DQVRYKEZVTkMsbCkpKQord2Vha19hbGlhc3gg KF9fQ09OQ0FUWChfXyxGVU5DKSwgX19DT05DQVRYKEZVTkMsbCkpCisjZW5k aWYKZGlmZiAtLWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19s cmludGYuYyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19scmludGYu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmViNGI3 Ci0tLSAvZGV2L251bGwKKysrIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2Zw dS9zX2xyaW50Zi5jCkBAIC0wLDAgKzEsMjIgQEAKKy8qIENvcHlyaWdodCAo QykgMjAxMSwgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnku CisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorICAg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRo IHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2RlZmluZSBGVU5DIGxy aW50ZgorI2RlZmluZSBJVFlQRSBmbG9hdAorI2RlZmluZSBJUkVHUyAicyIK KyNpbmNsdWRlIDxzX2xyaW50LmM+CmRpZmYgLS1naXQgYS9wb3J0cy9zeXNk ZXBzL2FhcmNoNjQvZnB1L3NfbHJvdW5kLmMgYi9wb3J0cy9zeXNkZXBzL2Fh cmNoNjQvZnB1L3NfbHJvdW5kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uY2E2OGJkNwotLS0gL2Rldi9udWxsCisrKyBiL3BvcnRz L3N5c2RlcHMvYWFyY2g2NC9mcHUvc19scm91bmQuYwpAQCAtMCwwICsxLDU4 IEBACisvKiBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMTEsIDIwMTIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05V IEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGli cmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxtYXRoLmg+CisKKyNpZm5kZWYg RlVOQworI2RlZmluZSBGVU5DIGxyb3VuZAorI2VuZGlmCisKKyNpZm5kZWYg SVRZUEUKKyNkZWZpbmUgSVRZUEUgZG91YmxlCisjZGVmaW5lIElSRUdTICJk IgorI2Vsc2UKKyNpZm5kZWYgSVJFR1MKKyNlcnJvciBJUkVHUyBub3QgZGVm aW5lZAorI2VuZGlmCisjZW5kaWYKKworI2lmbmRlZiBPVFlQRQorI2RlZmlu ZSBPVFlQRSBsb25nIGludAorI2VuZGlmCisKKyNkZWZpbmUgT1JFR1MgIngi CisKKyNkZWZpbmUgX19DT05DQVRYKGEsYikgX19DT05DQVQoYSxiKQorCitP VFlQRQorX19DT05DQVRYKF9fLEZVTkMpICh4KQorICAgICBJVFlQRSB4Owor eworICBPVFlQRSByZXN1bHQ7CisgIGFzbSAoICJmY3Z0YXMiICJcdCUiIE9S RUdTICIwLCAlIiBJUkVHUyAiMSIKKyAgICAgICAgOiAiPXIiIChyZXN1bHQp IDogInciICh4KSApOworICByZXR1cm4gcmVzdWx0OworfQorCisjZGVmaW5l IHdlYWtfYWxpYXN4KGEsYikgd2Vha19hbGlhcyhhLGIpCit3ZWFrX2FsaWFz eCAoX19DT05DQVRYKF9fLEZVTkMpLCBGVU5DKQorI2RlZmluZSBzdHJvbmdf YWxpYXN4KGEsYikgc3Ryb25nX2FsaWFzKGEsYikKKyNpZmRlZiBOT19MT05H X0RPVUJMRQorc3Ryb25nX2FsaWFzeCAoX19DT05DQVRYKF9fLEZVTkMpLCAg X19DT05DQVRYKF9fLF9fQ09OQ0FUWChGVU5DLGwpKSkKK3dlYWtfYWxpYXN4 IChfX0NPTkNBVFgoX18sRlVOQyksIF9fQ09OQ0FUWChGVU5DLGwpKQorI2Vu ZGlmCmRpZmYgLS1naXQgYS9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3Nf bHJvdW5kZi5jIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX2xyb3Vu ZGYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzAw ZDNmCi0tLSAvZGV2L251bGwKKysrIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0 L2ZwdS9zX2xyb3VuZGYuYwpAQCAtMCwwICsxLDIyIEBACisvKiBDb3B5cmln aHQgKEMpIDIwMTEsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJy YXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUK KyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcg d2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUgRlVO QyBscm91bmRmCisjZGVmaW5lIElUWVBFIGZsb2F0CisjZGVmaW5lIElSRUdT ICJzIgorI2luY2x1ZGUgPHNfbHJvdW5kLmM+CmRpZmYgLS1naXQgYS9wb3J0 cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfbmVhcmJ5aW50LmMgYi9wb3J0cy9z eXNkZXBzL2FhcmNoNjQvZnB1L3NfbmVhcmJ5aW50LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFmY2QwMQotLS0gL2Rldi9udWxs CisrKyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19uZWFyYnlpbnQu YwpAQCAtMCwwICsxLDIxIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw MTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUKKyAgIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMg TGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUJRlVOQyBuZWFyYnlpbnQKKyNk ZWZpbmUgSU5TTiAiZnJpbnRpIgorI2luY2x1ZGUgPHNfZnJpbnQueD4KZGlm ZiAtLWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19uZWFyYnlp bnRmLmMgYi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3NfbmVhcmJ5aW50 Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNmFm ODMKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQv ZnB1L3NfbmVhcmJ5aW50Zi5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qIENvcHly aWdodCAoQykgMjAxMSwgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRo ZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9u ZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2RlZmluZSBG VU5DIG5lYXJieWludGYKKyNkZWZpbmUgSU5TTiAiZnJpbnRpIgorI2luY2x1 ZGUgPHNfZnJpbnRmLng+CmRpZmYgLS1naXQgYS9wb3J0cy9zeXNkZXBzL2Fh cmNoNjQvZnB1L3NfcmludC5jIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2Zw dS9zX3JpbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li43ZjM3ZjdjCi0tLSAvZGV2L251bGwKKysrIGIvcG9ydHMvc3lzZGVwcy9h YXJjaDY0L2ZwdS9zX3JpbnQuYwpAQCAtMCwwICsxLDIxIEBACisvKiBDb3B5 cmlnaHQgKEMpIDIwMTEsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBM aWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0 aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUg RlVOQwlyaW50CisjZGVmaW5lIElOU04gImZyaW50eCIKKyNpbmNsdWRlIDxz X2ZyaW50Lng+CmRpZmYgLS1naXQgYS9wb3J0cy9zeXNkZXBzL2FhcmNoNjQv ZnB1L3NfcmludGYuYyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc19y aW50Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJk NzgzMmEKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9zeXNkZXBzL2FhcmNo NjQvZnB1L3NfcmludGYuYwpAQCAtMCwwICsxLDIxIEBACisvKiBDb3B5cmln aHQgKEMpIDIwMTEsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJy YXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUK KyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcg d2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUgRlVO QyByaW50ZgorI2RlZmluZSBJTlNOICJmcmludHgiCisjaW5jbHVkZSA8c19m cmludGYueD4KZGlmZiAtLWdpdCBhL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9m cHUvc19yb3VuZC5jIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX3Jv dW5kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFl YzI1NAotLS0gL2Rldi9udWxsCisrKyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2 NC9mcHUvc19yb3VuZC5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qIENvcHlyaWdo dCAoQykgMjAxMSwgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJh cnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQor ICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVz c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3 aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2RlZmluZSBGVU5D IHJvdW5kCisjZGVmaW5lIElOU04gImZyaW50YSIKKyNpbmNsdWRlIDxzX2Zy aW50Lng+CmRpZmYgLS1naXQgYS9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1 L3Nfcm91bmRmLmMgYi9wb3J0cy9zeXNkZXBzL2FhcmNoNjQvZnB1L3Nfcm91 bmRmLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE5 YTc1MgotLS0gL2Rldi9udWxsCisrKyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2 NC9mcHUvc19yb3VuZGYuYwpAQCAtMCwwICsxLDIxIEBACisvKiBDb3B5cmln aHQgKEMpIDIwMTEsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJy YXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUK KyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcg d2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUgRlVO QyByb3VuZGYKKyNkZWZpbmUgSU5TTiAiZnJpbnRhIgorI2luY2x1ZGUgPHNf ZnJpbnRmLng+CmRpZmYgLS1naXQgYS9wb3J0cy9zeXNkZXBzL2FhcmNoNjQv ZnB1L3NfdHJ1bmMuYyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9mcHUvc190 cnVuYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNh ZjdlYzEKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9zeXNkZXBzL2FhcmNo NjQvZnB1L3NfdHJ1bmMuYwpAQCAtMCwwICsxLDIxIEBACisvKiBDb3B5cmln aHQgKEMpIDIwMTEsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJy YXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUK KyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcg d2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNkZWZpbmUgRlVO QyB0cnVuYworI2RlZmluZSBJTlNOICJmcmludHoiCisjaW5jbHVkZSA8c19m cmludC54PgpkaWZmIC0tZ2l0IGEvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2Zw dS9zX3RydW5jZi5jIGIvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L2ZwdS9zX3Ry dW5jZi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNj YmJhNzIKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9zeXNkZXBzL2FhcmNo NjQvZnB1L3NfdHJ1bmNmLmMKQEAgLTAsMCArMSwyMSBAQAorLyogQ29weXJp Z2h0IChDKSAyMDExLCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli cmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhl CisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25n IHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisjZGVmaW5lIEZV TkMgdHJ1bmNmCisjZGVmaW5lIElOU04gImZyaW50eiIKKyNpbmNsdWRlIDxz X2ZyaW50Zi54Pgo= --047d7b3436a2e221db04ced60e42--