From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Emerick Rogul" Newsgroups: gmane.emacs.bugs Subject: bug#1501: Emacs 22 loses undo buffer Date: Sat, 6 Dec 2008 16:02:59 -0500 Message-ID: Reply-To: Emerick Rogul , 1501@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_28949_1639241.1228597379427" X-Trace: ger.gmane.org 1228602426 13735 80.91.229.12 (6 Dec 2008 22:27:06 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 6 Dec 2008 22:27:06 +0000 (UTC) Cc: cyd@stupidchicken.com To: 1501@emacsbugs.donarmstrong.com Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Dec 06 23:28:08 2008 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1L95cw-00013d-Mr for geb-bug-gnu-emacs@m.gmane.org; Sat, 06 Dec 2008 23:28:05 +0100 Original-Received: from localhost ([127.0.0.1]:58068 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L95bl-0002fc-IB for geb-bug-gnu-emacs@m.gmane.org; Sat, 06 Dec 2008 17:26:41 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L94Pp-0003ZP-ON for bug-gnu-emacs@gnu.org; Sat, 06 Dec 2008 16:10:17 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L94Pp-0003Yg-1l for bug-gnu-emacs@gnu.org; Sat, 06 Dec 2008 16:10:17 -0500 Original-Received: from [199.232.76.173] (port=50313 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L94Po-0003YY-UY for bug-gnu-emacs@gnu.org; Sat, 06 Dec 2008 16:10:16 -0500 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:35742) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1L94Pn-0006M6-UI for bug-gnu-emacs@gnu.org; Sat, 06 Dec 2008 16:10:16 -0500 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id mB6LAEIF028705; Sat, 6 Dec 2008 13:10:14 -0800 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id mB6LA4oF027908; Sat, 6 Dec 2008 13:10:04 -0800 X-Loop: don@donarmstrong.com Resent-From: "Emerick Rogul" Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sat, 06 Dec 2008 21:10:03 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 1501 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 1501-submit@emacsbugs.donarmstrong.com id=B1501.122859738625834 (code B ref 1501); Sat, 06 Dec 2008 21:10:03 +0000 Original-Received: (at 1501) by emacsbugs.donarmstrong.com; 6 Dec 2008 21:03:06 +0000 Original-Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.175]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id mB6L2xuY025824 for <1501@emacsbugs.donarmstrong.com>; Sat, 6 Dec 2008 13:03:00 -0800 Original-Received: by wf-out-1314.google.com with SMTP id 26so601273wfd.13 for <1501@emacsbugs.donarmstrong.com>; Sat, 06 Dec 2008 13:02:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:mime-version:content-type; bh=h0e2v3sIyEgF0Okw+pORr/psPvZhFtXl57Cc/D6ti9M=; b=clwmsWhzHmtm9iBDaZ7HU2DCfMFRKW3dPr34e/3wne10aazkPvvRnicB66xn/i3JBo GYJDDnBPR3fxb1+1MDo56XQRUcNUhCxeJjtqHiHuNs/VgSd/ET+ItJqBK5thyJpSAnPA bstPBqA53Uggi+QYQY0T5VfLrPdGwwKuHs+Ck= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type; b=lP0jfbFThs5w6swHU8cr8SbbNeB3QxUTkAwQ01c1Yf9c8N4OqDqInzXdstzJG5madi KIdY6jxBnXb/whShqxmUssTiSxEi1zjEDciNsATnoLabsUH3KTFgFhJ3k2Nz0rRi5wlH MCYUH0+m1Iew7otdfGSZ68UREWzlWmZX49/7k= Original-Received: by 10.143.8.17 with SMTP id l17mr665431wfi.173.1228597379446; Sat, 06 Dec 2008 13:02:59 -0800 (PST) Original-Received: by 10.143.3.17 with HTTP; Sat, 6 Dec 2008 13:02:59 -0800 (PST) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Resent-Date: Sat, 06 Dec 2008 16:10:17 -0500 X-Mailman-Approved-At: Sat, 06 Dec 2008 17:26:37 -0500 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:23017 Archived-At: ------=_Part_28949_1639241.1228597379427 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Header file attached, although the problem occurs with any header file (i.e., it's not specific to this particular file). The trace below contains the exact key sequence that I typed. In GNU Emacs 22.3.1 (i386-mingw-nt5.1.2600) of 2008-09-06 on SOFT-MJASON Windowing system distributor `Microsoft Corp.', version 5.1.2600 configured using `configure --with-gcc (3.4)' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: ENU locale-coding-system: cp1252 default-enable-multibyte-characters: t Major mode: C/l Minor modes in effect: encoded-kbd-mode: t tooltip-mode: t tool-bar-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t unify-8859-on-encoding-mode: t utf-translate-cjk-mode: t auto-compression-mode: t line-number-mode: t abbrev-mode: t Recent input: C-x C-f c l r C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ C-/ ESC x r e p o r t - e m a Recent messages: ("C:\\emacs\\bin\\emacs.exe") Loading encoded-kb...done For information about GNU Emacs and the GNU system, type C-h C-a. Loading cc-mode...done Undo! [4 times] undo-more: No further undo information [17 times] Loading emacsbug...done ------=_Part_28949_1639241.1228597379427 Content-Type: text/plain; name=clrdata.h Content-Transfer-Encoding: base64 X-Attachment-Id: f_foepp6nt0 Content-Disposition: attachment; filename=clrdata.h DQoNCi8qIHRoaXMgQUxXQVlTIEdFTkVSQVRFRCBmaWxlIGNvbnRhaW5zIHRoZSBkZWZpbml0aW9u cyBmb3IgdGhlIGludGVyZmFjZXMgKi8NCg0KDQogLyogRmlsZSBjcmVhdGVkIGJ5IE1JREwgY29t cGlsZXIgdmVyc2lvbiA2LjAwLjAzNjYgKi8NCi8qIENvbXBpbGVyIHNldHRpbmdzIGZvciBjbHJk YXRhLmlkbDoNCiAgICBPaWNmLCBXMSwgWnA4LCBlbnY9V2luMzIgKDMyYiBydW4pDQogICAgcHJv dG9jb2wgOiBkY2UgLCBtc19leHQsIGNfZXh0LCByb2J1c3QNCiAgICBlcnJvciBjaGVja3M6IGFs bG9jYXRpb24gcmVmIGJvdW5kc19jaGVjayBlbnVtIHN0dWJfZGF0YSANCiAgICBWQyBfX2RlY2xz cGVjKCkgZGVjb3JhdGlvbiBsZXZlbDogDQogICAgICAgICBfX2RlY2xzcGVjKHV1aWQoKSksIF9f ZGVjbHNwZWMoc2VsZWN0YW55KSwgX19kZWNsc3BlYyhub3Z0YWJsZSkNCiAgICAgICAgIERFQ0xT UEVDX1VVSUQoKSwgTUlETF9JTlRFUkZBQ0UoKQ0KKi8NCi8vQEBNSURMX0ZJTEVfSEVBRElORygg ICkNCg0KI3ByYWdtYSB3YXJuaW5nKCBkaXNhYmxlOiA0MDQ5ICkgIC8qIG1vcmUgdGhhbiA2NGsg c291cmNlIGxpbmVzICovDQoNCg0KLyogdmVyaWZ5IHRoYXQgdGhlIDxycGNuZHIuaD4gdmVyc2lv biBpcyBoaWdoIGVub3VnaCB0byBjb21waWxlIHRoaXMgZmlsZSovDQojaWZuZGVmIF9fUkVRVUlS RURfUlBDTkRSX0hfVkVSU0lPTl9fDQojZGVmaW5lIF9fUkVRVUlSRURfUlBDTkRSX0hfVkVSU0lP Tl9fIDQ3NQ0KI2VuZGlmDQoNCiNpbmNsdWRlICJycGMuaCINCiNpbmNsdWRlICJycGNuZHIuaCIN Cg0KI2lmbmRlZiBfX1JQQ05EUl9IX1ZFUlNJT05fXw0KI2Vycm9yIHRoaXMgc3R1YiByZXF1aXJl cyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgPHJwY25kci5oPg0KI2VuZGlmIC8vIF9fUlBDTkRSX0hf VkVSU0lPTl9fDQoNCiNpZm5kZWYgQ09NX05PX1dJTkRPV1NfSA0KI2luY2x1ZGUgIndpbmRvd3Mu aCINCiNpbmNsdWRlICJvbGUyLmgiDQojZW5kaWYgLypDT01fTk9fV0lORE9XU19IKi8NCg0KI2lm bmRlZiBfX2NscmRhdGFfaF9fDQojZGVmaW5lIF9fY2xyZGF0YV9oX18NCg0KI2lmIGRlZmluZWQo X01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQ0KI3ByYWdtYSBvbmNlDQojZW5kaWYNCg0K LyogRm9yd2FyZCBEZWNsYXJhdGlvbnMgKi8gDQoNCiNpZm5kZWYgX19JQ0xSRGF0YVRhcmdldF9G V0RfREVGSU5FRF9fDQojZGVmaW5lIF9fSUNMUkRhdGFUYXJnZXRfRldEX0RFRklORURfXw0KdHlw ZWRlZiBpbnRlcmZhY2UgSUNMUkRhdGFUYXJnZXQgSUNMUkRhdGFUYXJnZXQ7DQojZW5kaWYgCS8q IF9fSUNMUkRhdGFUYXJnZXRfRldEX0RFRklORURfXyAqLw0KDQoNCiNpZm5kZWYgX19JQ0xSRGF0 YVRhcmdldDJfRldEX0RFRklORURfXw0KI2RlZmluZSBfX0lDTFJEYXRhVGFyZ2V0Ml9GV0RfREVG SU5FRF9fDQp0eXBlZGVmIGludGVyZmFjZSBJQ0xSRGF0YVRhcmdldDIgSUNMUkRhdGFUYXJnZXQy Ow0KI2VuZGlmIAkvKiBfX0lDTFJEYXRhVGFyZ2V0Ml9GV0RfREVGSU5FRF9fICovDQoNCg0KI2lm bmRlZiBfX0lDTFJNZXRhZGF0YUxvY2F0b3JfRldEX0RFRklORURfXw0KI2RlZmluZSBfX0lDTFJN ZXRhZGF0YUxvY2F0b3JfRldEX0RFRklORURfXw0KdHlwZWRlZiBpbnRlcmZhY2UgSUNMUk1ldGFk YXRhTG9jYXRvciBJQ0xSTWV0YWRhdGFMb2NhdG9yOw0KI2VuZGlmIAkvKiBfX0lDTFJNZXRhZGF0 YUxvY2F0b3JfRldEX0RFRklORURfXyAqLw0KDQoNCiNpZm5kZWYgX19JQ0xSRGF0YUVudW1NZW1v cnlSZWdpb25zQ2FsbGJhY2tfRldEX0RFRklORURfXw0KI2RlZmluZSBfX0lDTFJEYXRhRW51bU1l bW9yeVJlZ2lvbnNDYWxsYmFja19GV0RfREVGSU5FRF9fDQp0eXBlZGVmIGludGVyZmFjZSBJQ0xS RGF0YUVudW1NZW1vcnlSZWdpb25zQ2FsbGJhY2sgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9uc0Nh bGxiYWNrOw0KI2VuZGlmIAkvKiBfX0lDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNDYWxsYmFja19G V0RfREVGSU5FRF9fICovDQoNCg0KI2lmbmRlZiBfX0lDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNf RldEX0RFRklORURfXw0KI2RlZmluZSBfX0lDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNfRldEX0RF RklORURfXw0KdHlwZWRlZiBpbnRlcmZhY2UgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9ucyBJQ0xS RGF0YUVudW1NZW1vcnlSZWdpb25zOw0KI2VuZGlmIAkvKiBfX0lDTFJEYXRhRW51bU1lbW9yeVJl Z2lvbnNfRldEX0RFRklORURfXyAqLw0KDQoNCi8qIGhlYWRlciBmaWxlcyBmb3IgaW1wb3J0ZWQg ZmlsZXMgKi8NCiNpbmNsdWRlICJ1bmtud24uaCINCg0KI2lmZGVmIF9fY3BsdXNwbHVzDQpleHRl cm4gIkMiew0KI2VuZGlmIA0KDQp2b2lkICogX19SUENfVVNFUiBNSURMX3VzZXJfYWxsb2NhdGUo c2l6ZV90KTsNCnZvaWQgX19SUENfVVNFUiBNSURMX3VzZXJfZnJlZSggdm9pZCAqICk7IA0KDQov KiBpbnRlcmZhY2UgX19NSURMX2l0Zl9jbHJkYXRhXzAwMDAgKi8NCi8qIFtsb2NhbF0gKi8gDQoN Cg0KDQoNCg0KDQp0eXBlZGVmIFVMT05HNjQgQ0xSREFUQV9BRERSRVNTOw0KDQpTVERBUEkgQ0xS RGF0YUNyZWF0ZUluc3RhbmNlKFJFRklJRCBpaWQsIElDTFJEYXRhVGFyZ2V0KiB0YXJnZXQsIHZv aWQqKiBpZmFjZSk7DQp0eXBlZGVmIEhSRVNVTFQgKFNUREFQSUNBTExUWVBFKiBQRk5fQ0xSRGF0 YUNyZWF0ZUluc3RhbmNlKShSRUZJSUQgaWlkLCBJQ0xSRGF0YVRhcmdldCogdGFyZ2V0LCB2b2lk KiogaWZhY2UpOw0KDQoNCmV4dGVybiBSUENfSUZfSEFORExFIF9fTUlETF9pdGZfY2xyZGF0YV8w MDAwX3YwXzBfY19pZnNwZWM7DQpleHRlcm4gUlBDX0lGX0hBTkRMRSBfX01JRExfaXRmX2NscmRh dGFfMDAwMF92MF8wX3NfaWZzcGVjOw0KDQojaWZuZGVmIF9fSUNMUkRhdGFUYXJnZXRfSU5URVJG QUNFX0RFRklORURfXw0KI2RlZmluZSBfX0lDTFJEYXRhVGFyZ2V0X0lOVEVSRkFDRV9ERUZJTkVE X18NCg0KLyogaW50ZXJmYWNlIElDTFJEYXRhVGFyZ2V0ICovDQovKiBbdW5pcXVlXVt1dWlkXVtv YmplY3RdICovIA0KDQoNCkVYVEVSTl9DIGNvbnN0IElJRCBJSURfSUNMUkRhdGFUYXJnZXQ7DQoN CiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiAhZGVmaW5lZChDSU5URVJGQUNFKQ0KICAgIA0K ICAgIE1JRExfSU5URVJGQUNFKCIzRTExQ0NFRS1EMDhCLTQzZTUtQUYwMS0zMjcxN0E2NERBMDMi KQ0KICAgIElDTFJEYXRhVGFyZ2V0IDogcHVibGljIElVbmtub3duDQogICAgew0KICAgIHB1Ymxp YzoNCiAgICAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEdldE1hY2hpbmVU eXBlKCANCiAgICAgICAgICAgIC8qIFtvdXRdICovIFVMT05HMzIgKm1hY2hpbmVUeXBlKSA9IDA7 DQogICAgICAgIA0KICAgICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgR2V0 UG9pbnRlclNpemUoIA0KICAgICAgICAgICAgLyogW291dF0gKi8gVUxPTkczMiAqcG9pbnRlclNp emUpID0gMDsNCiAgICAgICAgDQogICAgICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM VFlQRSBHZXRJbWFnZUJhc2UoIA0KICAgICAgICAgICAgLyogW3N0cmluZ11baW5dICovIExQQ1dT VFIgaW1hZ2VQYXRoLA0KICAgICAgICAgICAgLyogW291dF0gKi8gQ0xSREFUQV9BRERSRVNTICpi YXNlQWRkcmVzcykgPSAwOw0KICAgICAgICANCiAgICAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F VEhPRENBTExUWVBFIFJlYWRWaXJ0dWFsKCANCiAgICAgICAgICAgIC8qIFtpbl0gKi8gQ0xSREFU QV9BRERSRVNTIGFkZHJlc3MsDQogICAgICAgICAgICAvKiBbbGVuZ3RoX2lzXVtzaXplX2lzXVtv dXRdICovIEJZVEUgKmJ1ZmZlciwNCiAgICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBieXRl c1JlcXVlc3RlZCwNCiAgICAgICAgICAgIC8qIFtvdXRdICovIFVMT05HMzIgKmJ5dGVzUmVhZCkg PSAwOw0KICAgICAgICANCiAgICAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF IFdyaXRlVmlydHVhbCggDQogICAgICAgICAgICAvKiBbaW5dICovIENMUkRBVEFfQUREUkVTUyBh ZGRyZXNzLA0KICAgICAgICAgICAgLyogW3NpemVfaXNdW2luXSAqLyBCWVRFICpidWZmZXIsDQog ICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgYnl0ZXNSZXF1ZXN0ZWQsDQogICAgICAgICAg ICAvKiBbb3V0XSAqLyBVTE9ORzMyICpieXRlc1dyaXR0ZW4pID0gMDsNCiAgICAgICAgDQogICAg ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBHZXRUTFNWYWx1ZSggDQogICAg ICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgdGhyZWFkSUQsDQogICAgICAgICAgICAvKiBbaW5d ICovIFVMT05HMzIgaW5kZXgsDQogICAgICAgICAgICAvKiBbb3V0XSAqLyBDTFJEQVRBX0FERFJF U1MgKnZhbHVlKSA9IDA7DQogICAgICAgIA0KICAgICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU SE9EQ0FMTFRZUEUgU2V0VExTVmFsdWUoIA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMy IHRocmVhZElELA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIGluZGV4LA0KICAgICAg ICAgICAgLyogW2luXSAqLyBDTFJEQVRBX0FERFJFU1MgdmFsdWUpID0gMDsNCiAgICAgICAgDQog ICAgICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBHZXRDdXJyZW50VGhyZWFk SUQoIA0KICAgICAgICAgICAgLyogW291dF0gKi8gVUxPTkczMiAqdGhyZWFkSUQpID0gMDsNCiAg ICAgICAgDQogICAgICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBHZXRUaHJl YWRDb250ZXh0KCANCiAgICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiB0aHJlYWRJRCwNCiAg ICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBjb250ZXh0RmxhZ3MsDQogICAgICAgICAgICAv KiBbaW5dICovIFVMT05HMzIgY29udGV4dFNpemUsDQogICAgICAgICAgICAvKiBbc2l6ZV9pc11b b3V0XSAqLyBCWVRFICpjb250ZXh0KSA9IDA7DQogICAgICAgIA0KICAgICAgICB2aXJ0dWFsIEhS RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgU2V0VGhyZWFkQ29udGV4dCggDQogICAgICAgICAgICAv KiBbaW5dICovIFVMT05HMzIgdGhyZWFkSUQsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05H MzIgY29udGV4dFNpemUsDQogICAgICAgICAgICAvKiBbc2l6ZV9pc11baW5dICovIEJZVEUgKmNv bnRleHQpID0gMDsNCiAgICAgICAgDQogICAgICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD QUxMVFlQRSBSZXF1ZXN0KCANCiAgICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiByZXFDb2Rl LA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIGluQnVmZmVyU2l6ZSwNCiAgICAgICAg ICAgIC8qIFtzaXplX2lzXVtpbl0gKi8gQllURSAqaW5CdWZmZXIsDQogICAgICAgICAgICAvKiBb aW5dICovIFVMT05HMzIgb3V0QnVmZmVyU2l6ZSwNCiAgICAgICAgICAgIC8qIFtzaXplX2lzXVtv dXRdICovIEJZVEUgKm91dEJ1ZmZlcikgPSAwOw0KICAgICAgICANCiAgICB9Ow0KICAgIA0KI2Vs c2UgCS8qIEMgc3R5bGUgaW50ZXJmYWNlICovDQoNCiAgICB0eXBlZGVmIHN0cnVjdCBJQ0xSRGF0 YVRhcmdldFZ0YmwNCiAgICB7DQogICAgICAgIEJFR0lOX0lOVEVSRkFDRQ0KICAgICAgICANCiAg ICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpRdWVyeUludGVyZmFjZSApKCANCiAg ICAgICAgICAgIElDTFJEYXRhVGFyZ2V0ICogVGhpcywNCiAgICAgICAgICAgIC8qIFtpbl0gKi8g UkVGSUlEIHJpaWQsDQogICAgICAgICAgICAvKiBbaWlkX2lzXVtvdXRdICovIHZvaWQgKipwcHZP YmplY3QpOw0KICAgICAgICANCiAgICAgICAgVUxPTkcgKCBTVERNRVRIT0RDQUxMVFlQRSAqQWRk UmVmICkoIA0KICAgICAgICAgICAgSUNMUkRhdGFUYXJnZXQgKiBUaGlzKTsNCiAgICAgICAgDQog ICAgICAgIFVMT05HICggU1RETUVUSE9EQ0FMTFRZUEUgKlJlbGVhc2UgKSggDQogICAgICAgICAg ICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMpOw0KICAgICAgICANCiAgICAgICAgSFJFU1VMVCAoIFNU RE1FVEhPRENBTExUWVBFICpHZXRNYWNoaW5lVHlwZSApKCANCiAgICAgICAgICAgIElDTFJEYXRh VGFyZ2V0ICogVGhpcywNCiAgICAgICAgICAgIC8qIFtvdXRdICovIFVMT05HMzIgKm1hY2hpbmVU eXBlKTsNCiAgICAgICAgDQogICAgICAgIEhSRVNVTFQgKCBTVERNRVRIT0RDQUxMVFlQRSAqR2V0 UG9pbnRlclNpemUgKSggDQogICAgICAgICAgICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMsDQogICAg ICAgICAgICAvKiBbb3V0XSAqLyBVTE9ORzMyICpwb2ludGVyU2l6ZSk7DQogICAgICAgIA0KICAg ICAgICBIUkVTVUxUICggU1RETUVUSE9EQ0FMTFRZUEUgKkdldEltYWdlQmFzZSApKCANCiAgICAg ICAgICAgIElDTFJEYXRhVGFyZ2V0ICogVGhpcywNCiAgICAgICAgICAgIC8qIFtzdHJpbmddW2lu XSAqLyBMUENXU1RSIGltYWdlUGF0aCwNCiAgICAgICAgICAgIC8qIFtvdXRdICovIENMUkRBVEFf QUREUkVTUyAqYmFzZUFkZHJlc3MpOw0KICAgICAgICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1F VEhPRENBTExUWVBFICpSZWFkVmlydHVhbCApKCANCiAgICAgICAgICAgIElDTFJEYXRhVGFyZ2V0 ICogVGhpcywNCiAgICAgICAgICAgIC8qIFtpbl0gKi8gQ0xSREFUQV9BRERSRVNTIGFkZHJlc3Ms DQogICAgICAgICAgICAvKiBbbGVuZ3RoX2lzXVtzaXplX2lzXVtvdXRdICovIEJZVEUgKmJ1ZmZl ciwNCiAgICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBieXRlc1JlcXVlc3RlZCwNCiAgICAg ICAgICAgIC8qIFtvdXRdICovIFVMT05HMzIgKmJ5dGVzUmVhZCk7DQogICAgICAgIA0KICAgICAg ICBIUkVTVUxUICggU1RETUVUSE9EQ0FMTFRZUEUgKldyaXRlVmlydHVhbCApKCANCiAgICAgICAg ICAgIElDTFJEYXRhVGFyZ2V0ICogVGhpcywNCiAgICAgICAgICAgIC8qIFtpbl0gKi8gQ0xSREFU QV9BRERSRVNTIGFkZHJlc3MsDQogICAgICAgICAgICAvKiBbc2l6ZV9pc11baW5dICovIEJZVEUg KmJ1ZmZlciwNCiAgICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBieXRlc1JlcXVlc3RlZCwN CiAgICAgICAgICAgIC8qIFtvdXRdICovIFVMT05HMzIgKmJ5dGVzV3JpdHRlbik7DQogICAgICAg IA0KICAgICAgICBIUkVTVUxUICggU1RETUVUSE9EQ0FMTFRZUEUgKkdldFRMU1ZhbHVlICkoIA0K ICAgICAgICAgICAgSUNMUkRhdGFUYXJnZXQgKiBUaGlzLA0KICAgICAgICAgICAgLyogW2luXSAq LyBVTE9ORzMyIHRocmVhZElELA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIGluZGV4 LA0KICAgICAgICAgICAgLyogW291dF0gKi8gQ0xSREFUQV9BRERSRVNTICp2YWx1ZSk7DQogICAg ICAgIA0KICAgICAgICBIUkVTVUxUICggU1RETUVUSE9EQ0FMTFRZUEUgKlNldFRMU1ZhbHVlICko IA0KICAgICAgICAgICAgSUNMUkRhdGFUYXJnZXQgKiBUaGlzLA0KICAgICAgICAgICAgLyogW2lu XSAqLyBVTE9ORzMyIHRocmVhZElELA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIGlu ZGV4LA0KICAgICAgICAgICAgLyogW2luXSAqLyBDTFJEQVRBX0FERFJFU1MgdmFsdWUpOw0KICAg ICAgICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpHZXRDdXJyZW50VGhy ZWFkSUQgKSggDQogICAgICAgICAgICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMsDQogICAgICAgICAg ICAvKiBbb3V0XSAqLyBVTE9ORzMyICp0aHJlYWRJRCk7DQogICAgICAgIA0KICAgICAgICBIUkVT VUxUICggU1RETUVUSE9EQ0FMTFRZUEUgKkdldFRocmVhZENvbnRleHQgKSggDQogICAgICAgICAg ICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIg dGhyZWFkSUQsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgY29udGV4dEZsYWdzLA0K ICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIGNvbnRleHRTaXplLA0KICAgICAgICAgICAg LyogW3NpemVfaXNdW291dF0gKi8gQllURSAqY29udGV4dCk7DQogICAgICAgIA0KICAgICAgICBI UkVTVUxUICggU1RETUVUSE9EQ0FMTFRZUEUgKlNldFRocmVhZENvbnRleHQgKSggDQogICAgICAg ICAgICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05H MzIgdGhyZWFkSUQsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgY29udGV4dFNpemUs DQogICAgICAgICAgICAvKiBbc2l6ZV9pc11baW5dICovIEJZVEUgKmNvbnRleHQpOw0KICAgICAg ICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpSZXF1ZXN0ICkoIA0KICAg ICAgICAgICAgSUNMUkRhdGFUYXJnZXQgKiBUaGlzLA0KICAgICAgICAgICAgLyogW2luXSAqLyBV TE9ORzMyIHJlcUNvZGUsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgaW5CdWZmZXJT aXplLA0KICAgICAgICAgICAgLyogW3NpemVfaXNdW2luXSAqLyBCWVRFICppbkJ1ZmZlciwNCiAg ICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBvdXRCdWZmZXJTaXplLA0KICAgICAgICAgICAg LyogW3NpemVfaXNdW291dF0gKi8gQllURSAqb3V0QnVmZmVyKTsNCiAgICAgICAgDQogICAgICAg IEVORF9JTlRFUkZBQ0UNCiAgICB9IElDTFJEYXRhVGFyZ2V0VnRibDsNCg0KICAgIGludGVyZmFj ZSBJQ0xSRGF0YVRhcmdldA0KICAgIHsNCiAgICAgICAgQ09OU1RfVlRCTCBzdHJ1Y3QgSUNMUkRh dGFUYXJnZXRWdGJsICpscFZ0Ymw7DQogICAgfTsNCg0KICAgIA0KDQojaWZkZWYgQ09CSk1BQ1JP Uw0KDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXRfUXVlcnlJbnRlcmZhY2UoVGhpcyxyaWlkLHBw dk9iamVjdCkJXA0KICAgIChUaGlzKS0+bHBWdGJsIC0+IFF1ZXJ5SW50ZXJmYWNlKFRoaXMscmlp ZCxwcHZPYmplY3QpDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXRfQWRkUmVmKFRoaXMpCVwNCiAg ICAoVGhpcyktPmxwVnRibCAtPiBBZGRSZWYoVGhpcykNCg0KI2RlZmluZSBJQ0xSRGF0YVRhcmdl dF9SZWxlYXNlKFRoaXMpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBSZWxlYXNlKFRoaXMpDQoN Cg0KI2RlZmluZSBJQ0xSRGF0YVRhcmdldF9HZXRNYWNoaW5lVHlwZShUaGlzLG1hY2hpbmVUeXBl KQlcDQogICAgKFRoaXMpLT5scFZ0YmwgLT4gR2V0TWFjaGluZVR5cGUoVGhpcyxtYWNoaW5lVHlw ZSkNCg0KI2RlZmluZSBJQ0xSRGF0YVRhcmdldF9HZXRQb2ludGVyU2l6ZShUaGlzLHBvaW50ZXJT aXplKQlcDQogICAgKFRoaXMpLT5scFZ0YmwgLT4gR2V0UG9pbnRlclNpemUoVGhpcyxwb2ludGVy U2l6ZSkNCg0KI2RlZmluZSBJQ0xSRGF0YVRhcmdldF9HZXRJbWFnZUJhc2UoVGhpcyxpbWFnZVBh dGgsYmFzZUFkZHJlc3MpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBHZXRJbWFnZUJhc2UoVGhp cyxpbWFnZVBhdGgsYmFzZUFkZHJlc3MpDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXRfUmVhZFZp cnR1YWwoVGhpcyxhZGRyZXNzLGJ1ZmZlcixieXRlc1JlcXVlc3RlZCxieXRlc1JlYWQpCVwNCiAg ICAoVGhpcyktPmxwVnRibCAtPiBSZWFkVmlydHVhbChUaGlzLGFkZHJlc3MsYnVmZmVyLGJ5dGVz UmVxdWVzdGVkLGJ5dGVzUmVhZCkNCg0KI2RlZmluZSBJQ0xSRGF0YVRhcmdldF9Xcml0ZVZpcnR1 YWwoVGhpcyxhZGRyZXNzLGJ1ZmZlcixieXRlc1JlcXVlc3RlZCxieXRlc1dyaXR0ZW4pCVwNCiAg ICAoVGhpcyktPmxwVnRibCAtPiBXcml0ZVZpcnR1YWwoVGhpcyxhZGRyZXNzLGJ1ZmZlcixieXRl c1JlcXVlc3RlZCxieXRlc1dyaXR0ZW4pDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXRfR2V0VExT VmFsdWUoVGhpcyx0aHJlYWRJRCxpbmRleCx2YWx1ZSkJXA0KICAgIChUaGlzKS0+bHBWdGJsIC0+ IEdldFRMU1ZhbHVlKFRoaXMsdGhyZWFkSUQsaW5kZXgsdmFsdWUpDQoNCiNkZWZpbmUgSUNMUkRh dGFUYXJnZXRfU2V0VExTVmFsdWUoVGhpcyx0aHJlYWRJRCxpbmRleCx2YWx1ZSkJXA0KICAgIChU aGlzKS0+bHBWdGJsIC0+IFNldFRMU1ZhbHVlKFRoaXMsdGhyZWFkSUQsaW5kZXgsdmFsdWUpDQoN CiNkZWZpbmUgSUNMUkRhdGFUYXJnZXRfR2V0Q3VycmVudFRocmVhZElEKFRoaXMsdGhyZWFkSUQp CVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBHZXRDdXJyZW50VGhyZWFkSUQoVGhpcyx0aHJlYWRJ RCkNCg0KI2RlZmluZSBJQ0xSRGF0YVRhcmdldF9HZXRUaHJlYWRDb250ZXh0KFRoaXMsdGhyZWFk SUQsY29udGV4dEZsYWdzLGNvbnRleHRTaXplLGNvbnRleHQpCVwNCiAgICAoVGhpcyktPmxwVnRi bCAtPiBHZXRUaHJlYWRDb250ZXh0KFRoaXMsdGhyZWFkSUQsY29udGV4dEZsYWdzLGNvbnRleHRT aXplLGNvbnRleHQpDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXRfU2V0VGhyZWFkQ29udGV4dChU aGlzLHRocmVhZElELGNvbnRleHRTaXplLGNvbnRleHQpCVwNCiAgICAoVGhpcyktPmxwVnRibCAt PiBTZXRUaHJlYWRDb250ZXh0KFRoaXMsdGhyZWFkSUQsY29udGV4dFNpemUsY29udGV4dCkNCg0K I2RlZmluZSBJQ0xSRGF0YVRhcmdldF9SZXF1ZXN0KFRoaXMscmVxQ29kZSxpbkJ1ZmZlclNpemUs aW5CdWZmZXIsb3V0QnVmZmVyU2l6ZSxvdXRCdWZmZXIpCVwNCiAgICAoVGhpcyktPmxwVnRibCAt PiBSZXF1ZXN0KFRoaXMscmVxQ29kZSxpbkJ1ZmZlclNpemUsaW5CdWZmZXIsb3V0QnVmZmVyU2l6 ZSxvdXRCdWZmZXIpDQoNCiNlbmRpZiAvKiBDT0JKTUFDUk9TICovDQoNCg0KI2VuZGlmIAkvKiBD IHN0eWxlIGludGVyZmFjZSAqLw0KDQoNCg0KSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBJQ0xS RGF0YVRhcmdldF9HZXRNYWNoaW5lVHlwZV9Qcm94eSggDQogICAgSUNMUkRhdGFUYXJnZXQgKiBU aGlzLA0KICAgIC8qIFtvdXRdICovIFVMT05HMzIgKm1hY2hpbmVUeXBlKTsNCg0KDQp2b2lkIF9f UlBDX1NUVUIgSUNMUkRhdGFUYXJnZXRfR2V0TWFjaGluZVR5cGVfU3R1YigNCiAgICBJUnBjU3R1 YkJ1ZmZlciAqVGhpcywNCiAgICBJUnBjQ2hhbm5lbEJ1ZmZlciAqX3BScGNDaGFubmVsQnVmZmVy LA0KICAgIFBSUENfTUVTU0FHRSBfcFJwY01lc3NhZ2UsDQogICAgRFdPUkQgKl9wZHdTdHViUGhh c2UpOw0KDQoNCkhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgSUNMUkRhdGFUYXJnZXRfR2V0UG9p bnRlclNpemVfUHJveHkoIA0KICAgIElDTFJEYXRhVGFyZ2V0ICogVGhpcywNCiAgICAvKiBbb3V0 XSAqLyBVTE9ORzMyICpwb2ludGVyU2l6ZSk7DQoNCg0Kdm9pZCBfX1JQQ19TVFVCIElDTFJEYXRh VGFyZ2V0X0dldFBvaW50ZXJTaXplX1N0dWIoDQogICAgSVJwY1N0dWJCdWZmZXIgKlRoaXMsDQog ICAgSVJwY0NoYW5uZWxCdWZmZXIgKl9wUnBjQ2hhbm5lbEJ1ZmZlciwNCiAgICBQUlBDX01FU1NB R0UgX3BScGNNZXNzYWdlLA0KICAgIERXT1JEICpfcGR3U3R1YlBoYXNlKTsNCg0KDQpIUkVTVUxU IFNURE1FVEhPRENBTExUWVBFIElDTFJEYXRhVGFyZ2V0X0dldEltYWdlQmFzZV9Qcm94eSggDQog ICAgSUNMUkRhdGFUYXJnZXQgKiBUaGlzLA0KICAgIC8qIFtzdHJpbmddW2luXSAqLyBMUENXU1RS IGltYWdlUGF0aCwNCiAgICAvKiBbb3V0XSAqLyBDTFJEQVRBX0FERFJFU1MgKmJhc2VBZGRyZXNz KTsNCg0KDQp2b2lkIF9fUlBDX1NUVUIgSUNMUkRhdGFUYXJnZXRfR2V0SW1hZ2VCYXNlX1N0dWIo DQogICAgSVJwY1N0dWJCdWZmZXIgKlRoaXMsDQogICAgSVJwY0NoYW5uZWxCdWZmZXIgKl9wUnBj Q2hhbm5lbEJ1ZmZlciwNCiAgICBQUlBDX01FU1NBR0UgX3BScGNNZXNzYWdlLA0KICAgIERXT1JE ICpfcGR3U3R1YlBoYXNlKTsNCg0KDQpIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIElDTFJEYXRh VGFyZ2V0X1JlYWRWaXJ0dWFsX1Byb3h5KCANCiAgICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMsDQog ICAgLyogW2luXSAqLyBDTFJEQVRBX0FERFJFU1MgYWRkcmVzcywNCiAgICAvKiBbbGVuZ3RoX2lz XVtzaXplX2lzXVtvdXRdICovIEJZVEUgKmJ1ZmZlciwNCiAgICAvKiBbaW5dICovIFVMT05HMzIg Ynl0ZXNSZXF1ZXN0ZWQsDQogICAgLyogW291dF0gKi8gVUxPTkczMiAqYnl0ZXNSZWFkKTsNCg0K DQp2b2lkIF9fUlBDX1NUVUIgSUNMUkRhdGFUYXJnZXRfUmVhZFZpcnR1YWxfU3R1YigNCiAgICBJ UnBjU3R1YkJ1ZmZlciAqVGhpcywNCiAgICBJUnBjQ2hhbm5lbEJ1ZmZlciAqX3BScGNDaGFubmVs QnVmZmVyLA0KICAgIFBSUENfTUVTU0FHRSBfcFJwY01lc3NhZ2UsDQogICAgRFdPUkQgKl9wZHdT dHViUGhhc2UpOw0KDQoNCkhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgSUNMUkRhdGFUYXJnZXRf V3JpdGVWaXJ0dWFsX1Byb3h5KCANCiAgICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMsDQogICAgLyog W2luXSAqLyBDTFJEQVRBX0FERFJFU1MgYWRkcmVzcywNCiAgICAvKiBbc2l6ZV9pc11baW5dICov IEJZVEUgKmJ1ZmZlciwNCiAgICAvKiBbaW5dICovIFVMT05HMzIgYnl0ZXNSZXF1ZXN0ZWQsDQog ICAgLyogW291dF0gKi8gVUxPTkczMiAqYnl0ZXNXcml0dGVuKTsNCg0KDQp2b2lkIF9fUlBDX1NU VUIgSUNMUkRhdGFUYXJnZXRfV3JpdGVWaXJ0dWFsX1N0dWIoDQogICAgSVJwY1N0dWJCdWZmZXIg KlRoaXMsDQogICAgSVJwY0NoYW5uZWxCdWZmZXIgKl9wUnBjQ2hhbm5lbEJ1ZmZlciwNCiAgICBQ UlBDX01FU1NBR0UgX3BScGNNZXNzYWdlLA0KICAgIERXT1JEICpfcGR3U3R1YlBoYXNlKTsNCg0K DQpIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIElDTFJEYXRhVGFyZ2V0X0dldFRMU1ZhbHVlX1By b3h5KCANCiAgICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMsDQogICAgLyogW2luXSAqLyBVTE9ORzMy IHRocmVhZElELA0KICAgIC8qIFtpbl0gKi8gVUxPTkczMiBpbmRleCwNCiAgICAvKiBbb3V0XSAq LyBDTFJEQVRBX0FERFJFU1MgKnZhbHVlKTsNCg0KDQp2b2lkIF9fUlBDX1NUVUIgSUNMUkRhdGFU YXJnZXRfR2V0VExTVmFsdWVfU3R1YigNCiAgICBJUnBjU3R1YkJ1ZmZlciAqVGhpcywNCiAgICBJ UnBjQ2hhbm5lbEJ1ZmZlciAqX3BScGNDaGFubmVsQnVmZmVyLA0KICAgIFBSUENfTUVTU0FHRSBf cFJwY01lc3NhZ2UsDQogICAgRFdPUkQgKl9wZHdTdHViUGhhc2UpOw0KDQoNCkhSRVNVTFQgU1RE TUVUSE9EQ0FMTFRZUEUgSUNMUkRhdGFUYXJnZXRfU2V0VExTVmFsdWVfUHJveHkoIA0KICAgIElD TFJEYXRhVGFyZ2V0ICogVGhpcywNCiAgICAvKiBbaW5dICovIFVMT05HMzIgdGhyZWFkSUQsDQog ICAgLyogW2luXSAqLyBVTE9ORzMyIGluZGV4LA0KICAgIC8qIFtpbl0gKi8gQ0xSREFUQV9BRERS RVNTIHZhbHVlKTsNCg0KDQp2b2lkIF9fUlBDX1NUVUIgSUNMUkRhdGFUYXJnZXRfU2V0VExTVmFs dWVfU3R1YigNCiAgICBJUnBjU3R1YkJ1ZmZlciAqVGhpcywNCiAgICBJUnBjQ2hhbm5lbEJ1ZmZl ciAqX3BScGNDaGFubmVsQnVmZmVyLA0KICAgIFBSUENfTUVTU0FHRSBfcFJwY01lc3NhZ2UsDQog ICAgRFdPUkQgKl9wZHdTdHViUGhhc2UpOw0KDQoNCkhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg SUNMUkRhdGFUYXJnZXRfR2V0Q3VycmVudFRocmVhZElEX1Byb3h5KCANCiAgICBJQ0xSRGF0YVRh cmdldCAqIFRoaXMsDQogICAgLyogW291dF0gKi8gVUxPTkczMiAqdGhyZWFkSUQpOw0KDQoNCnZv aWQgX19SUENfU1RVQiBJQ0xSRGF0YVRhcmdldF9HZXRDdXJyZW50VGhyZWFkSURfU3R1YigNCiAg ICBJUnBjU3R1YkJ1ZmZlciAqVGhpcywNCiAgICBJUnBjQ2hhbm5lbEJ1ZmZlciAqX3BScGNDaGFu bmVsQnVmZmVyLA0KICAgIFBSUENfTUVTU0FHRSBfcFJwY01lc3NhZ2UsDQogICAgRFdPUkQgKl9w ZHdTdHViUGhhc2UpOw0KDQoNCkhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgSUNMUkRhdGFUYXJn ZXRfR2V0VGhyZWFkQ29udGV4dF9Qcm94eSggDQogICAgSUNMUkRhdGFUYXJnZXQgKiBUaGlzLA0K ICAgIC8qIFtpbl0gKi8gVUxPTkczMiB0aHJlYWRJRCwNCiAgICAvKiBbaW5dICovIFVMT05HMzIg Y29udGV4dEZsYWdzLA0KICAgIC8qIFtpbl0gKi8gVUxPTkczMiBjb250ZXh0U2l6ZSwNCiAgICAv KiBbc2l6ZV9pc11bb3V0XSAqLyBCWVRFICpjb250ZXh0KTsNCg0KDQp2b2lkIF9fUlBDX1NUVUIg SUNMUkRhdGFUYXJnZXRfR2V0VGhyZWFkQ29udGV4dF9TdHViKA0KICAgIElScGNTdHViQnVmZmVy ICpUaGlzLA0KICAgIElScGNDaGFubmVsQnVmZmVyICpfcFJwY0NoYW5uZWxCdWZmZXIsDQogICAg UFJQQ19NRVNTQUdFIF9wUnBjTWVzc2FnZSwNCiAgICBEV09SRCAqX3Bkd1N0dWJQaGFzZSk7DQoN Cg0KSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBJQ0xSRGF0YVRhcmdldF9TZXRUaHJlYWRDb250 ZXh0X1Byb3h5KCANCiAgICBJQ0xSRGF0YVRhcmdldCAqIFRoaXMsDQogICAgLyogW2luXSAqLyBV TE9ORzMyIHRocmVhZElELA0KICAgIC8qIFtpbl0gKi8gVUxPTkczMiBjb250ZXh0U2l6ZSwNCiAg ICAvKiBbc2l6ZV9pc11baW5dICovIEJZVEUgKmNvbnRleHQpOw0KDQoNCnZvaWQgX19SUENfU1RV QiBJQ0xSRGF0YVRhcmdldF9TZXRUaHJlYWRDb250ZXh0X1N0dWIoDQogICAgSVJwY1N0dWJCdWZm ZXIgKlRoaXMsDQogICAgSVJwY0NoYW5uZWxCdWZmZXIgKl9wUnBjQ2hhbm5lbEJ1ZmZlciwNCiAg ICBQUlBDX01FU1NBR0UgX3BScGNNZXNzYWdlLA0KICAgIERXT1JEICpfcGR3U3R1YlBoYXNlKTsN Cg0KDQpIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIElDTFJEYXRhVGFyZ2V0X1JlcXVlc3RfUHJv eHkoIA0KICAgIElDTFJEYXRhVGFyZ2V0ICogVGhpcywNCiAgICAvKiBbaW5dICovIFVMT05HMzIg cmVxQ29kZSwNCiAgICAvKiBbaW5dICovIFVMT05HMzIgaW5CdWZmZXJTaXplLA0KICAgIC8qIFtz aXplX2lzXVtpbl0gKi8gQllURSAqaW5CdWZmZXIsDQogICAgLyogW2luXSAqLyBVTE9ORzMyIG91 dEJ1ZmZlclNpemUsDQogICAgLyogW3NpemVfaXNdW291dF0gKi8gQllURSAqb3V0QnVmZmVyKTsN Cg0KDQp2b2lkIF9fUlBDX1NUVUIgSUNMUkRhdGFUYXJnZXRfUmVxdWVzdF9TdHViKA0KICAgIElS cGNTdHViQnVmZmVyICpUaGlzLA0KICAgIElScGNDaGFubmVsQnVmZmVyICpfcFJwY0NoYW5uZWxC dWZmZXIsDQogICAgUFJQQ19NRVNTQUdFIF9wUnBjTWVzc2FnZSwNCiAgICBEV09SRCAqX3Bkd1N0 dWJQaGFzZSk7DQoNCg0KDQojZW5kaWYgCS8qIF9fSUNMUkRhdGFUYXJnZXRfSU5URVJGQUNFX0RF RklORURfXyAqLw0KDQoNCiNpZm5kZWYgX19JQ0xSRGF0YVRhcmdldDJfSU5URVJGQUNFX0RFRklO RURfXw0KI2RlZmluZSBfX0lDTFJEYXRhVGFyZ2V0Ml9JTlRFUkZBQ0VfREVGSU5FRF9fDQoNCi8q IGludGVyZmFjZSBJQ0xSRGF0YVRhcmdldDIgKi8NCi8qIFt1bmlxdWVdW3V1aWRdW29iamVjdF0g Ki8gDQoNCg0KRVhURVJOX0MgY29uc3QgSUlEIElJRF9JQ0xSRGF0YVRhcmdldDI7DQoNCiNpZiBk ZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiAhZGVmaW5lZChDSU5URVJGQUNFKQ0KICAgIA0KICAgIE1J RExfSU5URVJGQUNFKCI2ZDA1ZmFlMy0xODljLTQ2MzAtYTZkYy0xYzI1MWUxYzAxYWIiKQ0KICAg IElDTFJEYXRhVGFyZ2V0MiA6IHB1YmxpYyBJQ0xSRGF0YVRhcmdldA0KICAgIHsNCiAgICBwdWJs aWM6DQogICAgICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBbGxvY1ZpcnR1 YWwoIA0KICAgICAgICAgICAgLyogW2luXSAqLyBDTFJEQVRBX0FERFJFU1MgYWRkciwNCiAgICAg ICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBzaXplLA0KICAgICAgICAgICAgLyogW2luXSAqLyBV TE9ORzMyIHR5cGVGbGFncywNCiAgICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBwcm90ZWN0 RmxhZ3MsDQogICAgICAgICAgICAvKiBbb3V0XSAqLyBDTFJEQVRBX0FERFJFU1MgKnZpcnQpID0g MDsNCiAgICAgICAgDQogICAgICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBG cmVlVmlydHVhbCggDQogICAgICAgICAgICAvKiBbaW5dICovIENMUkRBVEFfQUREUkVTUyBhZGRy LA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIHNpemUsDQogICAgICAgICAgICAvKiBb aW5dICovIFVMT05HMzIgdHlwZUZsYWdzKSA9IDA7DQogICAgICAgIA0KICAgIH07DQogICAgDQoj ZWxzZSAJLyogQyBzdHlsZSBpbnRlcmZhY2UgKi8NCg0KICAgIHR5cGVkZWYgc3RydWN0IElDTFJE YXRhVGFyZ2V0MlZ0YmwNCiAgICB7DQogICAgICAgIEJFR0lOX0lOVEVSRkFDRQ0KICAgICAgICAN CiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpRdWVyeUludGVyZmFjZSApKCAN CiAgICAgICAgICAgIElDTFJEYXRhVGFyZ2V0MiAqIFRoaXMsDQogICAgICAgICAgICAvKiBbaW5d ICovIFJFRklJRCByaWlkLA0KICAgICAgICAgICAgLyogW2lpZF9pc11bb3V0XSAqLyB2b2lkICoq cHB2T2JqZWN0KTsNCiAgICAgICAgDQogICAgICAgIFVMT05HICggU1RETUVUSE9EQ0FMTFRZUEUg KkFkZFJlZiApKCANCiAgICAgICAgICAgIElDTFJEYXRhVGFyZ2V0MiAqIFRoaXMpOw0KICAgICAg ICANCiAgICAgICAgVUxPTkcgKCBTVERNRVRIT0RDQUxMVFlQRSAqUmVsZWFzZSApKCANCiAgICAg ICAgICAgIElDTFJEYXRhVGFyZ2V0MiAqIFRoaXMpOw0KICAgICAgICANCiAgICAgICAgSFJFU1VM VCAoIFNURE1FVEhPRENBTExUWVBFICpHZXRNYWNoaW5lVHlwZSApKCANCiAgICAgICAgICAgIElD TFJEYXRhVGFyZ2V0MiAqIFRoaXMsDQogICAgICAgICAgICAvKiBbb3V0XSAqLyBVTE9ORzMyICpt YWNoaW5lVHlwZSk7DQogICAgICAgIA0KICAgICAgICBIUkVTVUxUICggU1RETUVUSE9EQ0FMTFRZ UEUgKkdldFBvaW50ZXJTaXplICkoIA0KICAgICAgICAgICAgSUNMUkRhdGFUYXJnZXQyICogVGhp cywNCiAgICAgICAgICAgIC8qIFtvdXRdICovIFVMT05HMzIgKnBvaW50ZXJTaXplKTsNCiAgICAg ICAgDQogICAgICAgIEhSRVNVTFQgKCBTVERNRVRIT0RDQUxMVFlQRSAqR2V0SW1hZ2VCYXNlICko IA0KICAgICAgICAgICAgSUNMUkRhdGFUYXJnZXQyICogVGhpcywNCiAgICAgICAgICAgIC8qIFtz dHJpbmddW2luXSAqLyBMUENXU1RSIGltYWdlUGF0aCwNCiAgICAgICAgICAgIC8qIFtvdXRdICov IENMUkRBVEFfQUREUkVTUyAqYmFzZUFkZHJlc3MpOw0KICAgICAgICANCiAgICAgICAgSFJFU1VM VCAoIFNURE1FVEhPRENBTExUWVBFICpSZWFkVmlydHVhbCApKCANCiAgICAgICAgICAgIElDTFJE YXRhVGFyZ2V0MiAqIFRoaXMsDQogICAgICAgICAgICAvKiBbaW5dICovIENMUkRBVEFfQUREUkVT UyBhZGRyZXNzLA0KICAgICAgICAgICAgLyogW2xlbmd0aF9pc11bc2l6ZV9pc11bb3V0XSAqLyBC WVRFICpidWZmZXIsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgYnl0ZXNSZXF1ZXN0 ZWQsDQogICAgICAgICAgICAvKiBbb3V0XSAqLyBVTE9ORzMyICpieXRlc1JlYWQpOw0KICAgICAg ICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpXcml0ZVZpcnR1YWwgKSgg DQogICAgICAgICAgICBJQ0xSRGF0YVRhcmdldDIgKiBUaGlzLA0KICAgICAgICAgICAgLyogW2lu XSAqLyBDTFJEQVRBX0FERFJFU1MgYWRkcmVzcywNCiAgICAgICAgICAgIC8qIFtzaXplX2lzXVtp bl0gKi8gQllURSAqYnVmZmVyLA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIGJ5dGVz UmVxdWVzdGVkLA0KICAgICAgICAgICAgLyogW291dF0gKi8gVUxPTkczMiAqYnl0ZXNXcml0dGVu KTsNCiAgICAgICAgDQogICAgICAgIEhSRVNVTFQgKCBTVERNRVRIT0RDQUxMVFlQRSAqR2V0VExT VmFsdWUgKSggDQogICAgICAgICAgICBJQ0xSRGF0YVRhcmdldDIgKiBUaGlzLA0KICAgICAgICAg ICAgLyogW2luXSAqLyBVTE9ORzMyIHRocmVhZElELA0KICAgICAgICAgICAgLyogW2luXSAqLyBV TE9ORzMyIGluZGV4LA0KICAgICAgICAgICAgLyogW291dF0gKi8gQ0xSREFUQV9BRERSRVNTICp2 YWx1ZSk7DQogICAgICAgIA0KICAgICAgICBIUkVTVUxUICggU1RETUVUSE9EQ0FMTFRZUEUgKlNl dFRMU1ZhbHVlICkoIA0KICAgICAgICAgICAgSUNMUkRhdGFUYXJnZXQyICogVGhpcywNCiAgICAg ICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiB0aHJlYWRJRCwNCiAgICAgICAgICAgIC8qIFtpbl0g Ki8gVUxPTkczMiBpbmRleCwNCiAgICAgICAgICAgIC8qIFtpbl0gKi8gQ0xSREFUQV9BRERSRVNT IHZhbHVlKTsNCiAgICAgICAgDQogICAgICAgIEhSRVNVTFQgKCBTVERNRVRIT0RDQUxMVFlQRSAq R2V0Q3VycmVudFRocmVhZElEICkoIA0KICAgICAgICAgICAgSUNMUkRhdGFUYXJnZXQyICogVGhp cywNCiAgICAgICAgICAgIC8qIFtvdXRdICovIFVMT05HMzIgKnRocmVhZElEKTsNCiAgICAgICAg DQogICAgICAgIEhSRVNVTFQgKCBTVERNRVRIT0RDQUxMVFlQRSAqR2V0VGhyZWFkQ29udGV4dCAp KCANCiAgICAgICAgICAgIElDTFJEYXRhVGFyZ2V0MiAqIFRoaXMsDQogICAgICAgICAgICAvKiBb aW5dICovIFVMT05HMzIgdGhyZWFkSUQsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIg Y29udGV4dEZsYWdzLA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIGNvbnRleHRTaXpl LA0KICAgICAgICAgICAgLyogW3NpemVfaXNdW291dF0gKi8gQllURSAqY29udGV4dCk7DQogICAg ICAgIA0KICAgICAgICBIUkVTVUxUICggU1RETUVUSE9EQ0FMTFRZUEUgKlNldFRocmVhZENvbnRl eHQgKSggDQogICAgICAgICAgICBJQ0xSRGF0YVRhcmdldDIgKiBUaGlzLA0KICAgICAgICAgICAg LyogW2luXSAqLyBVTE9ORzMyIHRocmVhZElELA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9O RzMyIGNvbnRleHRTaXplLA0KICAgICAgICAgICAgLyogW3NpemVfaXNdW2luXSAqLyBCWVRFICpj b250ZXh0KTsNCiAgICAgICAgDQogICAgICAgIEhSRVNVTFQgKCBTVERNRVRIT0RDQUxMVFlQRSAq UmVxdWVzdCApKCANCiAgICAgICAgICAgIElDTFJEYXRhVGFyZ2V0MiAqIFRoaXMsDQogICAgICAg ICAgICAvKiBbaW5dICovIFVMT05HMzIgcmVxQ29kZSwNCiAgICAgICAgICAgIC8qIFtpbl0gKi8g VUxPTkczMiBpbkJ1ZmZlclNpemUsDQogICAgICAgICAgICAvKiBbc2l6ZV9pc11baW5dICovIEJZ VEUgKmluQnVmZmVyLA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIG91dEJ1ZmZlclNp emUsDQogICAgICAgICAgICAvKiBbc2l6ZV9pc11bb3V0XSAqLyBCWVRFICpvdXRCdWZmZXIpOw0K ICAgICAgICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpBbGxvY1ZpcnR1 YWwgKSggDQogICAgICAgICAgICBJQ0xSRGF0YVRhcmdldDIgKiBUaGlzLA0KICAgICAgICAgICAg LyogW2luXSAqLyBDTFJEQVRBX0FERFJFU1MgYWRkciwNCiAgICAgICAgICAgIC8qIFtpbl0gKi8g VUxPTkczMiBzaXplLA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIHR5cGVGbGFncywN CiAgICAgICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBwcm90ZWN0RmxhZ3MsDQogICAgICAgICAg ICAvKiBbb3V0XSAqLyBDTFJEQVRBX0FERFJFU1MgKnZpcnQpOw0KICAgICAgICANCiAgICAgICAg SFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpGcmVlVmlydHVhbCApKCANCiAgICAgICAgICAg IElDTFJEYXRhVGFyZ2V0MiAqIFRoaXMsDQogICAgICAgICAgICAvKiBbaW5dICovIENMUkRBVEFf QUREUkVTUyBhZGRyLA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIHNpemUsDQogICAg ICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgdHlwZUZsYWdzKTsNCiAgICAgICAgDQogICAgICAg IEVORF9JTlRFUkZBQ0UNCiAgICB9IElDTFJEYXRhVGFyZ2V0MlZ0Ymw7DQoNCiAgICBpbnRlcmZh Y2UgSUNMUkRhdGFUYXJnZXQyDQogICAgew0KICAgICAgICBDT05TVF9WVEJMIHN0cnVjdCBJQ0xS RGF0YVRhcmdldDJWdGJsICpscFZ0Ymw7DQogICAgfTsNCg0KICAgIA0KDQojaWZkZWYgQ09CSk1B Q1JPUw0KDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXQyX1F1ZXJ5SW50ZXJmYWNlKFRoaXMscmlp ZCxwcHZPYmplY3QpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBRdWVyeUludGVyZmFjZShUaGlz LHJpaWQscHB2T2JqZWN0KQ0KDQojZGVmaW5lIElDTFJEYXRhVGFyZ2V0Ml9BZGRSZWYoVGhpcykJ XA0KICAgIChUaGlzKS0+bHBWdGJsIC0+IEFkZFJlZihUaGlzKQ0KDQojZGVmaW5lIElDTFJEYXRh VGFyZ2V0Ml9SZWxlYXNlKFRoaXMpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBSZWxlYXNlKFRo aXMpDQoNCg0KI2RlZmluZSBJQ0xSRGF0YVRhcmdldDJfR2V0TWFjaGluZVR5cGUoVGhpcyxtYWNo aW5lVHlwZSkJXA0KICAgIChUaGlzKS0+bHBWdGJsIC0+IEdldE1hY2hpbmVUeXBlKFRoaXMsbWFj aGluZVR5cGUpDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXQyX0dldFBvaW50ZXJTaXplKFRoaXMs cG9pbnRlclNpemUpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBHZXRQb2ludGVyU2l6ZShUaGlz LHBvaW50ZXJTaXplKQ0KDQojZGVmaW5lIElDTFJEYXRhVGFyZ2V0Ml9HZXRJbWFnZUJhc2UoVGhp cyxpbWFnZVBhdGgsYmFzZUFkZHJlc3MpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBHZXRJbWFn ZUJhc2UoVGhpcyxpbWFnZVBhdGgsYmFzZUFkZHJlc3MpDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJn ZXQyX1JlYWRWaXJ0dWFsKFRoaXMsYWRkcmVzcyxidWZmZXIsYnl0ZXNSZXF1ZXN0ZWQsYnl0ZXNS ZWFkKQlcDQogICAgKFRoaXMpLT5scFZ0YmwgLT4gUmVhZFZpcnR1YWwoVGhpcyxhZGRyZXNzLGJ1 ZmZlcixieXRlc1JlcXVlc3RlZCxieXRlc1JlYWQpDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXQy X1dyaXRlVmlydHVhbChUaGlzLGFkZHJlc3MsYnVmZmVyLGJ5dGVzUmVxdWVzdGVkLGJ5dGVzV3Jp dHRlbikJXA0KICAgIChUaGlzKS0+bHBWdGJsIC0+IFdyaXRlVmlydHVhbChUaGlzLGFkZHJlc3Ms YnVmZmVyLGJ5dGVzUmVxdWVzdGVkLGJ5dGVzV3JpdHRlbikNCg0KI2RlZmluZSBJQ0xSRGF0YVRh cmdldDJfR2V0VExTVmFsdWUoVGhpcyx0aHJlYWRJRCxpbmRleCx2YWx1ZSkJXA0KICAgIChUaGlz KS0+bHBWdGJsIC0+IEdldFRMU1ZhbHVlKFRoaXMsdGhyZWFkSUQsaW5kZXgsdmFsdWUpDQoNCiNk ZWZpbmUgSUNMUkRhdGFUYXJnZXQyX1NldFRMU1ZhbHVlKFRoaXMsdGhyZWFkSUQsaW5kZXgsdmFs dWUpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBTZXRUTFNWYWx1ZShUaGlzLHRocmVhZElELGlu ZGV4LHZhbHVlKQ0KDQojZGVmaW5lIElDTFJEYXRhVGFyZ2V0Ml9HZXRDdXJyZW50VGhyZWFkSUQo VGhpcyx0aHJlYWRJRCkJXA0KICAgIChUaGlzKS0+bHBWdGJsIC0+IEdldEN1cnJlbnRUaHJlYWRJ RChUaGlzLHRocmVhZElEKQ0KDQojZGVmaW5lIElDTFJEYXRhVGFyZ2V0Ml9HZXRUaHJlYWRDb250 ZXh0KFRoaXMsdGhyZWFkSUQsY29udGV4dEZsYWdzLGNvbnRleHRTaXplLGNvbnRleHQpCVwNCiAg ICAoVGhpcyktPmxwVnRibCAtPiBHZXRUaHJlYWRDb250ZXh0KFRoaXMsdGhyZWFkSUQsY29udGV4 dEZsYWdzLGNvbnRleHRTaXplLGNvbnRleHQpDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXQyX1Nl dFRocmVhZENvbnRleHQoVGhpcyx0aHJlYWRJRCxjb250ZXh0U2l6ZSxjb250ZXh0KQlcDQogICAg KFRoaXMpLT5scFZ0YmwgLT4gU2V0VGhyZWFkQ29udGV4dChUaGlzLHRocmVhZElELGNvbnRleHRT aXplLGNvbnRleHQpDQoNCiNkZWZpbmUgSUNMUkRhdGFUYXJnZXQyX1JlcXVlc3QoVGhpcyxyZXFD b2RlLGluQnVmZmVyU2l6ZSxpbkJ1ZmZlcixvdXRCdWZmZXJTaXplLG91dEJ1ZmZlcikJXA0KICAg IChUaGlzKS0+bHBWdGJsIC0+IFJlcXVlc3QoVGhpcyxyZXFDb2RlLGluQnVmZmVyU2l6ZSxpbkJ1 ZmZlcixvdXRCdWZmZXJTaXplLG91dEJ1ZmZlcikNCg0KDQojZGVmaW5lIElDTFJEYXRhVGFyZ2V0 Ml9BbGxvY1ZpcnR1YWwoVGhpcyxhZGRyLHNpemUsdHlwZUZsYWdzLHByb3RlY3RGbGFncyx2aXJ0 KQlcDQogICAgKFRoaXMpLT5scFZ0YmwgLT4gQWxsb2NWaXJ0dWFsKFRoaXMsYWRkcixzaXplLHR5 cGVGbGFncyxwcm90ZWN0RmxhZ3MsdmlydCkNCg0KI2RlZmluZSBJQ0xSRGF0YVRhcmdldDJfRnJl ZVZpcnR1YWwoVGhpcyxhZGRyLHNpemUsdHlwZUZsYWdzKQlcDQogICAgKFRoaXMpLT5scFZ0Ymwg LT4gRnJlZVZpcnR1YWwoVGhpcyxhZGRyLHNpemUsdHlwZUZsYWdzKQ0KDQojZW5kaWYgLyogQ09C Sk1BQ1JPUyAqLw0KDQoNCiNlbmRpZiAJLyogQyBzdHlsZSBpbnRlcmZhY2UgKi8NCg0KDQoNCkhS RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgSUNMUkRhdGFUYXJnZXQyX0FsbG9jVmlydHVhbF9Qcm94 eSggDQogICAgSUNMUkRhdGFUYXJnZXQyICogVGhpcywNCiAgICAvKiBbaW5dICovIENMUkRBVEFf QUREUkVTUyBhZGRyLA0KICAgIC8qIFtpbl0gKi8gVUxPTkczMiBzaXplLA0KICAgIC8qIFtpbl0g Ki8gVUxPTkczMiB0eXBlRmxhZ3MsDQogICAgLyogW2luXSAqLyBVTE9ORzMyIHByb3RlY3RGbGFn cywNCiAgICAvKiBbb3V0XSAqLyBDTFJEQVRBX0FERFJFU1MgKnZpcnQpOw0KDQoNCnZvaWQgX19S UENfU1RVQiBJQ0xSRGF0YVRhcmdldDJfQWxsb2NWaXJ0dWFsX1N0dWIoDQogICAgSVJwY1N0dWJC dWZmZXIgKlRoaXMsDQogICAgSVJwY0NoYW5uZWxCdWZmZXIgKl9wUnBjQ2hhbm5lbEJ1ZmZlciwN CiAgICBQUlBDX01FU1NBR0UgX3BScGNNZXNzYWdlLA0KICAgIERXT1JEICpfcGR3U3R1YlBoYXNl KTsNCg0KDQpIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIElDTFJEYXRhVGFyZ2V0Ml9GcmVlVmly dHVhbF9Qcm94eSggDQogICAgSUNMUkRhdGFUYXJnZXQyICogVGhpcywNCiAgICAvKiBbaW5dICov IENMUkRBVEFfQUREUkVTUyBhZGRyLA0KICAgIC8qIFtpbl0gKi8gVUxPTkczMiBzaXplLA0KICAg IC8qIFtpbl0gKi8gVUxPTkczMiB0eXBlRmxhZ3MpOw0KDQoNCnZvaWQgX19SUENfU1RVQiBJQ0xS RGF0YVRhcmdldDJfRnJlZVZpcnR1YWxfU3R1YigNCiAgICBJUnBjU3R1YkJ1ZmZlciAqVGhpcywN CiAgICBJUnBjQ2hhbm5lbEJ1ZmZlciAqX3BScGNDaGFubmVsQnVmZmVyLA0KICAgIFBSUENfTUVT U0FHRSBfcFJwY01lc3NhZ2UsDQogICAgRFdPUkQgKl9wZHdTdHViUGhhc2UpOw0KDQoNCg0KI2Vu ZGlmIAkvKiBfX0lDTFJEYXRhVGFyZ2V0Ml9JTlRFUkZBQ0VfREVGSU5FRF9fICovDQoNCg0KI2lm bmRlZiBfX0lDTFJNZXRhZGF0YUxvY2F0b3JfSU5URVJGQUNFX0RFRklORURfXw0KI2RlZmluZSBf X0lDTFJNZXRhZGF0YUxvY2F0b3JfSU5URVJGQUNFX0RFRklORURfXw0KDQovKiBpbnRlcmZhY2Ug SUNMUk1ldGFkYXRhTG9jYXRvciAqLw0KLyogW3VuaXF1ZV1bdXVpZF1bb2JqZWN0XSAqLyANCg0K DQpFWFRFUk5fQyBjb25zdCBJSUQgSUlEX0lDTFJNZXRhZGF0YUxvY2F0b3I7DQoNCiNpZiBkZWZp bmVkKF9fY3BsdXNwbHVzKSAmJiAhZGVmaW5lZChDSU5URVJGQUNFKQ0KICAgIA0KICAgIE1JRExf SU5URVJGQUNFKCJhYThmYTgwNC1iYzA1LTQ2NDItYjJjNS1jMzUzZWQyMmZjNjMiKQ0KICAgIElD TFJNZXRhZGF0YUxvY2F0b3IgOiBwdWJsaWMgSVVua25vd24NCiAgICB7DQogICAgcHVibGljOg0K ICAgICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgR2V0TWV0YWRhdGEoIA0K ICAgICAgICAgICAgLyogW2luXSAqLyBMUENXU1RSIGltYWdlUGF0aCwNCiAgICAgICAgICAgIC8q IFtpbl0gKi8gVUxPTkczMiBpbWFnZVRpbWVzdGFtcCwNCiAgICAgICAgICAgIC8qIFtpbl0gKi8g VUxPTkczMiBpbWFnZVNpemUsDQogICAgICAgICAgICAvKiBbaW5dICovIEdVSUQgKm12aWQsDQog ICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgbWRSdmEsDQogICAgICAgICAgICAvKiBbaW5d ICovIFVMT05HMzIgZmxhZ3MsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgYnVmZmVy U2l6ZSwNCiAgICAgICAgICAgIC8qIFtsZW5ndGhfaXNdW3NpemVfaXNdW291dF0gKi8gQllURSAq YnVmZmVyLA0KICAgICAgICAgICAgLyogW291dF0gKi8gVUxPTkczMiAqZGF0YVNpemUpID0gMDsN CiAgICAgICAgDQogICAgfTsNCiAgICANCiNlbHNlIAkvKiBDIHN0eWxlIGludGVyZmFjZSAqLw0K DQogICAgdHlwZWRlZiBzdHJ1Y3QgSUNMUk1ldGFkYXRhTG9jYXRvclZ0YmwNCiAgICB7DQogICAg ICAgIEJFR0lOX0lOVEVSRkFDRQ0KICAgICAgICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhP RENBTExUWVBFICpRdWVyeUludGVyZmFjZSApKCANCiAgICAgICAgICAgIElDTFJNZXRhZGF0YUxv Y2F0b3IgKiBUaGlzLA0KICAgICAgICAgICAgLyogW2luXSAqLyBSRUZJSUQgcmlpZCwNCiAgICAg ICAgICAgIC8qIFtpaWRfaXNdW291dF0gKi8gdm9pZCAqKnBwdk9iamVjdCk7DQogICAgICAgIA0K ICAgICAgICBVTE9ORyAoIFNURE1FVEhPRENBTExUWVBFICpBZGRSZWYgKSggDQogICAgICAgICAg ICBJQ0xSTWV0YWRhdGFMb2NhdG9yICogVGhpcyk7DQogICAgICAgIA0KICAgICAgICBVTE9ORyAo IFNURE1FVEhPRENBTExUWVBFICpSZWxlYXNlICkoIA0KICAgICAgICAgICAgSUNMUk1ldGFkYXRh TG9jYXRvciAqIFRoaXMpOw0KICAgICAgICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENB TExUWVBFICpHZXRNZXRhZGF0YSApKCANCiAgICAgICAgICAgIElDTFJNZXRhZGF0YUxvY2F0b3Ig KiBUaGlzLA0KICAgICAgICAgICAgLyogW2luXSAqLyBMUENXU1RSIGltYWdlUGF0aCwNCiAgICAg ICAgICAgIC8qIFtpbl0gKi8gVUxPTkczMiBpbWFnZVRpbWVzdGFtcCwNCiAgICAgICAgICAgIC8q IFtpbl0gKi8gVUxPTkczMiBpbWFnZVNpemUsDQogICAgICAgICAgICAvKiBbaW5dICovIEdVSUQg Km12aWQsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05HMzIgbWRSdmEsDQogICAgICAgICAg ICAvKiBbaW5dICovIFVMT05HMzIgZmxhZ3MsDQogICAgICAgICAgICAvKiBbaW5dICovIFVMT05H MzIgYnVmZmVyU2l6ZSwNCiAgICAgICAgICAgIC8qIFtsZW5ndGhfaXNdW3NpemVfaXNdW291dF0g Ki8gQllURSAqYnVmZmVyLA0KICAgICAgICAgICAgLyogW291dF0gKi8gVUxPTkczMiAqZGF0YVNp emUpOw0KICAgICAgICANCiAgICAgICAgRU5EX0lOVEVSRkFDRQ0KICAgIH0gSUNMUk1ldGFkYXRh TG9jYXRvclZ0Ymw7DQoNCiAgICBpbnRlcmZhY2UgSUNMUk1ldGFkYXRhTG9jYXRvcg0KICAgIHsN CiAgICAgICAgQ09OU1RfVlRCTCBzdHJ1Y3QgSUNMUk1ldGFkYXRhTG9jYXRvclZ0YmwgKmxwVnRi bDsNCiAgICB9Ow0KDQogICAgDQoNCiNpZmRlZiBDT0JKTUFDUk9TDQoNCg0KI2RlZmluZSBJQ0xS TWV0YWRhdGFMb2NhdG9yX1F1ZXJ5SW50ZXJmYWNlKFRoaXMscmlpZCxwcHZPYmplY3QpCVwNCiAg ICAoVGhpcyktPmxwVnRibCAtPiBRdWVyeUludGVyZmFjZShUaGlzLHJpaWQscHB2T2JqZWN0KQ0K DQojZGVmaW5lIElDTFJNZXRhZGF0YUxvY2F0b3JfQWRkUmVmKFRoaXMpCVwNCiAgICAoVGhpcykt PmxwVnRibCAtPiBBZGRSZWYoVGhpcykNCg0KI2RlZmluZSBJQ0xSTWV0YWRhdGFMb2NhdG9yX1Jl bGVhc2UoVGhpcykJXA0KICAgIChUaGlzKS0+bHBWdGJsIC0+IFJlbGVhc2UoVGhpcykNCg0KDQoj ZGVmaW5lIElDTFJNZXRhZGF0YUxvY2F0b3JfR2V0TWV0YWRhdGEoVGhpcyxpbWFnZVBhdGgsaW1h Z2VUaW1lc3RhbXAsaW1hZ2VTaXplLG12aWQsbWRSdmEsZmxhZ3MsYnVmZmVyU2l6ZSxidWZmZXIs ZGF0YVNpemUpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBHZXRNZXRhZGF0YShUaGlzLGltYWdl UGF0aCxpbWFnZVRpbWVzdGFtcCxpbWFnZVNpemUsbXZpZCxtZFJ2YSxmbGFncyxidWZmZXJTaXpl LGJ1ZmZlcixkYXRhU2l6ZSkNCg0KI2VuZGlmIC8qIENPQkpNQUNST1MgKi8NCg0KDQojZW5kaWYg CS8qIEMgc3R5bGUgaW50ZXJmYWNlICovDQoNCg0KDQpIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF IElDTFJNZXRhZGF0YUxvY2F0b3JfR2V0TWV0YWRhdGFfUHJveHkoIA0KICAgIElDTFJNZXRhZGF0 YUxvY2F0b3IgKiBUaGlzLA0KICAgIC8qIFtpbl0gKi8gTFBDV1NUUiBpbWFnZVBhdGgsDQogICAg LyogW2luXSAqLyBVTE9ORzMyIGltYWdlVGltZXN0YW1wLA0KICAgIC8qIFtpbl0gKi8gVUxPTkcz MiBpbWFnZVNpemUsDQogICAgLyogW2luXSAqLyBHVUlEICptdmlkLA0KICAgIC8qIFtpbl0gKi8g VUxPTkczMiBtZFJ2YSwNCiAgICAvKiBbaW5dICovIFVMT05HMzIgZmxhZ3MsDQogICAgLyogW2lu XSAqLyBVTE9ORzMyIGJ1ZmZlclNpemUsDQogICAgLyogW2xlbmd0aF9pc11bc2l6ZV9pc11bb3V0 XSAqLyBCWVRFICpidWZmZXIsDQogICAgLyogW291dF0gKi8gVUxPTkczMiAqZGF0YVNpemUpOw0K DQoNCnZvaWQgX19SUENfU1RVQiBJQ0xSTWV0YWRhdGFMb2NhdG9yX0dldE1ldGFkYXRhX1N0dWIo DQogICAgSVJwY1N0dWJCdWZmZXIgKlRoaXMsDQogICAgSVJwY0NoYW5uZWxCdWZmZXIgKl9wUnBj Q2hhbm5lbEJ1ZmZlciwNCiAgICBQUlBDX01FU1NBR0UgX3BScGNNZXNzYWdlLA0KICAgIERXT1JE ICpfcGR3U3R1YlBoYXNlKTsNCg0KDQoNCiNlbmRpZiAJLyogX19JQ0xSTWV0YWRhdGFMb2NhdG9y X0lOVEVSRkFDRV9ERUZJTkVEX18gKi8NCg0KDQojaWZuZGVmIF9fSUNMUkRhdGFFbnVtTWVtb3J5 UmVnaW9uc0NhbGxiYWNrX0lOVEVSRkFDRV9ERUZJTkVEX18NCiNkZWZpbmUgX19JQ0xSRGF0YUVu dW1NZW1vcnlSZWdpb25zQ2FsbGJhY2tfSU5URVJGQUNFX0RFRklORURfXw0KDQovKiBpbnRlcmZh Y2UgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9uc0NhbGxiYWNrICovDQovKiBbdXVpZF1bb2JqZWN0 XSAqLyANCg0KDQpFWFRFUk5fQyBjb25zdCBJSUQgSUlEX0lDTFJEYXRhRW51bU1lbW9yeVJlZ2lv bnNDYWxsYmFjazsNCg0KI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpICYmICFkZWZpbmVkKENJTlRF UkZBQ0UpDQogICAgDQogICAgTUlETF9JTlRFUkZBQ0UoIkJDREQ2OTA4LUJBMkQtNGVjNS05NkNG LURGNEQ1Q0RDQjRBNCIpDQogICAgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9uc0NhbGxiYWNrIDog cHVibGljIElVbmtub3duDQogICAgew0KICAgIHB1YmxpYzoNCiAgICAgICAgdmlydHVhbCBIUkVT VUxUIFNURE1FVEhPRENBTExUWVBFIEVudW1NZW1vcnlSZWdpb24oIA0KICAgICAgICAgICAgLyog W2luXSAqLyBDTFJEQVRBX0FERFJFU1MgYWRkcmVzcywNCiAgICAgICAgICAgIC8qIFtpbl0gKi8g VUxPTkczMiBzaXplKSA9IDA7DQogICAgICAgIA0KICAgIH07DQogICAgDQojZWxzZSAJLyogQyBz dHlsZSBpbnRlcmZhY2UgKi8NCg0KICAgIHR5cGVkZWYgc3RydWN0IElDTFJEYXRhRW51bU1lbW9y eVJlZ2lvbnNDYWxsYmFja1Z0YmwNCiAgICB7DQogICAgICAgIEJFR0lOX0lOVEVSRkFDRQ0KICAg ICAgICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpRdWVyeUludGVyZmFj ZSApKCANCiAgICAgICAgICAgIElDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNDYWxsYmFjayAqIFRo aXMsDQogICAgICAgICAgICAvKiBbaW5dICovIFJFRklJRCByaWlkLA0KICAgICAgICAgICAgLyog W2lpZF9pc11bb3V0XSAqLyB2b2lkICoqcHB2T2JqZWN0KTsNCiAgICAgICAgDQogICAgICAgIFVM T05HICggU1RETUVUSE9EQ0FMTFRZUEUgKkFkZFJlZiApKCANCiAgICAgICAgICAgIElDTFJEYXRh RW51bU1lbW9yeVJlZ2lvbnNDYWxsYmFjayAqIFRoaXMpOw0KICAgICAgICANCiAgICAgICAgVUxP TkcgKCBTVERNRVRIT0RDQUxMVFlQRSAqUmVsZWFzZSApKCANCiAgICAgICAgICAgIElDTFJEYXRh RW51bU1lbW9yeVJlZ2lvbnNDYWxsYmFjayAqIFRoaXMpOw0KICAgICAgICANCiAgICAgICAgSFJF U1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpFbnVtTWVtb3J5UmVnaW9uICkoIA0KICAgICAgICAg ICAgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9uc0NhbGxiYWNrICogVGhpcywNCiAgICAgICAgICAg IC8qIFtpbl0gKi8gQ0xSREFUQV9BRERSRVNTIGFkZHJlc3MsDQogICAgICAgICAgICAvKiBbaW5d ICovIFVMT05HMzIgc2l6ZSk7DQogICAgICAgIA0KICAgICAgICBFTkRfSU5URVJGQUNFDQogICAg fSBJQ0xSRGF0YUVudW1NZW1vcnlSZWdpb25zQ2FsbGJhY2tWdGJsOw0KDQogICAgaW50ZXJmYWNl IElDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNDYWxsYmFjaw0KICAgIHsNCiAgICAgICAgQ09OU1Rf VlRCTCBzdHJ1Y3QgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9uc0NhbGxiYWNrVnRibCAqbHBWdGJs Ow0KICAgIH07DQoNCiAgICANCg0KI2lmZGVmIENPQkpNQUNST1MNCg0KDQojZGVmaW5lIElDTFJE YXRhRW51bU1lbW9yeVJlZ2lvbnNDYWxsYmFja19RdWVyeUludGVyZmFjZShUaGlzLHJpaWQscHB2 T2JqZWN0KQlcDQogICAgKFRoaXMpLT5scFZ0YmwgLT4gUXVlcnlJbnRlcmZhY2UoVGhpcyxyaWlk LHBwdk9iamVjdCkNCg0KI2RlZmluZSBJQ0xSRGF0YUVudW1NZW1vcnlSZWdpb25zQ2FsbGJhY2tf QWRkUmVmKFRoaXMpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBBZGRSZWYoVGhpcykNCg0KI2Rl ZmluZSBJQ0xSRGF0YUVudW1NZW1vcnlSZWdpb25zQ2FsbGJhY2tfUmVsZWFzZShUaGlzKQlcDQog ICAgKFRoaXMpLT5scFZ0YmwgLT4gUmVsZWFzZShUaGlzKQ0KDQoNCiNkZWZpbmUgSUNMUkRhdGFF bnVtTWVtb3J5UmVnaW9uc0NhbGxiYWNrX0VudW1NZW1vcnlSZWdpb24oVGhpcyxhZGRyZXNzLHNp emUpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBFbnVtTWVtb3J5UmVnaW9uKFRoaXMsYWRkcmVz cyxzaXplKQ0KDQojZW5kaWYgLyogQ09CSk1BQ1JPUyAqLw0KDQoNCiNlbmRpZiAJLyogQyBzdHls ZSBpbnRlcmZhY2UgKi8NCg0KDQoNCkhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgSUNMUkRhdGFF bnVtTWVtb3J5UmVnaW9uc0NhbGxiYWNrX0VudW1NZW1vcnlSZWdpb25fUHJveHkoIA0KICAgIElD TFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNDYWxsYmFjayAqIFRoaXMsDQogICAgLyogW2luXSAqLyBD TFJEQVRBX0FERFJFU1MgYWRkcmVzcywNCiAgICAvKiBbaW5dICovIFVMT05HMzIgc2l6ZSk7DQoN Cg0Kdm9pZCBfX1JQQ19TVFVCIElDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNDYWxsYmFja19FbnVt TWVtb3J5UmVnaW9uX1N0dWIoDQogICAgSVJwY1N0dWJCdWZmZXIgKlRoaXMsDQogICAgSVJwY0No YW5uZWxCdWZmZXIgKl9wUnBjQ2hhbm5lbEJ1ZmZlciwNCiAgICBQUlBDX01FU1NBR0UgX3BScGNN ZXNzYWdlLA0KICAgIERXT1JEICpfcGR3U3R1YlBoYXNlKTsNCg0KDQoNCiNlbmRpZiAJLyogX19J Q0xSRGF0YUVudW1NZW1vcnlSZWdpb25zQ2FsbGJhY2tfSU5URVJGQUNFX0RFRklORURfXyAqLw0K DQoNCi8qIGludGVyZmFjZSBfX01JRExfaXRmX2NscmRhdGFfMDAxMiAqLw0KLyogW2xvY2FsXSAq LyANCg0KdHlwZWRlZiANCmVudW0gQ0xSRGF0YUVudW1NZW1vcnlGbGFncw0KICAgIHsJQ0xSREFU QV9FTlVNX01FTV9ERUZBVUxUCT0gMCwNCglDTFJEQVRBX0VOVU1fTUVNX01JTkkJPSBDTFJEQVRB X0VOVU1fTUVNX0RFRkFVTFQsDQoJQ0xSREFUQV9FTlVNX01FTV9IRUFQCT0gMHgxDQogICAgfSAJ Q0xSRGF0YUVudW1NZW1vcnlGbGFnczsNCg0KDQoNCmV4dGVybiBSUENfSUZfSEFORExFIF9fTUlE TF9pdGZfY2xyZGF0YV8wMDEyX3YwXzBfY19pZnNwZWM7DQpleHRlcm4gUlBDX0lGX0hBTkRMRSBf X01JRExfaXRmX2NscmRhdGFfMDAxMl92MF8wX3NfaWZzcGVjOw0KDQojaWZuZGVmIF9fSUNMUkRh dGFFbnVtTWVtb3J5UmVnaW9uc19JTlRFUkZBQ0VfREVGSU5FRF9fDQojZGVmaW5lIF9fSUNMUkRh dGFFbnVtTWVtb3J5UmVnaW9uc19JTlRFUkZBQ0VfREVGSU5FRF9fDQoNCi8qIGludGVyZmFjZSBJ Q0xSRGF0YUVudW1NZW1vcnlSZWdpb25zICovDQovKiBbdXVpZF1bb2JqZWN0XSAqLyANCg0KDQpF WFRFUk5fQyBjb25zdCBJSUQgSUlEX0lDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnM7DQoNCiNpZiBk ZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiAhZGVmaW5lZChDSU5URVJGQUNFKQ0KICAgIA0KICAgIE1J RExfSU5URVJGQUNFKCI0NzFjMzViNC03YzJmLTRlZjAtYTk0NS0wMGY4YzM4MDU2ZjEiKQ0KICAg IElDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnMgOiBwdWJsaWMgSVVua25vd24NCiAgICB7DQogICAg cHVibGljOg0KICAgICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRW51bU1l bW9yeVJlZ2lvbnMoIA0KICAgICAgICAgICAgLyogW2luXSAqLyBJQ0xSRGF0YUVudW1NZW1vcnlS ZWdpb25zQ2FsbGJhY2sgKmNhbGxiYWNrLA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMy IG1pbmlEdW1wRmxhZ3MsDQogICAgICAgICAgICAvKiBbaW5dICovIENMUkRhdGFFbnVtTWVtb3J5 RmxhZ3MgY2xyRmxhZ3MpID0gMDsNCiAgICAgICAgDQogICAgfTsNCiAgICANCiNlbHNlIAkvKiBD IHN0eWxlIGludGVyZmFjZSAqLw0KDQogICAgdHlwZWRlZiBzdHJ1Y3QgSUNMUkRhdGFFbnVtTWVt b3J5UmVnaW9uc1Z0YmwNCiAgICB7DQogICAgICAgIEJFR0lOX0lOVEVSRkFDRQ0KICAgICAgICAN CiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpRdWVyeUludGVyZmFjZSApKCAN CiAgICAgICAgICAgIElDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnMgKiBUaGlzLA0KICAgICAgICAg ICAgLyogW2luXSAqLyBSRUZJSUQgcmlpZCwNCiAgICAgICAgICAgIC8qIFtpaWRfaXNdW291dF0g Ki8gdm9pZCAqKnBwdk9iamVjdCk7DQogICAgICAgIA0KICAgICAgICBVTE9ORyAoIFNURE1FVEhP RENBTExUWVBFICpBZGRSZWYgKSggDQogICAgICAgICAgICBJQ0xSRGF0YUVudW1NZW1vcnlSZWdp b25zICogVGhpcyk7DQogICAgICAgIA0KICAgICAgICBVTE9ORyAoIFNURE1FVEhPRENBTExUWVBF ICpSZWxlYXNlICkoIA0KICAgICAgICAgICAgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9ucyAqIFRo aXMpOw0KICAgICAgICANCiAgICAgICAgSFJFU1VMVCAoIFNURE1FVEhPRENBTExUWVBFICpFbnVt TWVtb3J5UmVnaW9ucyApKCANCiAgICAgICAgICAgIElDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnMg KiBUaGlzLA0KICAgICAgICAgICAgLyogW2luXSAqLyBJQ0xSRGF0YUVudW1NZW1vcnlSZWdpb25z Q2FsbGJhY2sgKmNhbGxiYWNrLA0KICAgICAgICAgICAgLyogW2luXSAqLyBVTE9ORzMyIG1pbmlE dW1wRmxhZ3MsDQogICAgICAgICAgICAvKiBbaW5dICovIENMUkRhdGFFbnVtTWVtb3J5RmxhZ3Mg Y2xyRmxhZ3MpOw0KICAgICAgICANCiAgICAgICAgRU5EX0lOVEVSRkFDRQ0KICAgIH0gSUNMUkRh dGFFbnVtTWVtb3J5UmVnaW9uc1Z0Ymw7DQoNCiAgICBpbnRlcmZhY2UgSUNMUkRhdGFFbnVtTWVt b3J5UmVnaW9ucw0KICAgIHsNCiAgICAgICAgQ09OU1RfVlRCTCBzdHJ1Y3QgSUNMUkRhdGFFbnVt TWVtb3J5UmVnaW9uc1Z0YmwgKmxwVnRibDsNCiAgICB9Ow0KDQogICAgDQoNCiNpZmRlZiBDT0JK TUFDUk9TDQoNCg0KI2RlZmluZSBJQ0xSRGF0YUVudW1NZW1vcnlSZWdpb25zX1F1ZXJ5SW50ZXJm YWNlKFRoaXMscmlpZCxwcHZPYmplY3QpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBRdWVyeUlu dGVyZmFjZShUaGlzLHJpaWQscHB2T2JqZWN0KQ0KDQojZGVmaW5lIElDTFJEYXRhRW51bU1lbW9y eVJlZ2lvbnNfQWRkUmVmKFRoaXMpCVwNCiAgICAoVGhpcyktPmxwVnRibCAtPiBBZGRSZWYoVGhp cykNCg0KI2RlZmluZSBJQ0xSRGF0YUVudW1NZW1vcnlSZWdpb25zX1JlbGVhc2UoVGhpcykJXA0K ICAgIChUaGlzKS0+bHBWdGJsIC0+IFJlbGVhc2UoVGhpcykNCg0KDQojZGVmaW5lIElDTFJEYXRh RW51bU1lbW9yeVJlZ2lvbnNfRW51bU1lbW9yeVJlZ2lvbnMoVGhpcyxjYWxsYmFjayxtaW5pRHVt cEZsYWdzLGNsckZsYWdzKQlcDQogICAgKFRoaXMpLT5scFZ0YmwgLT4gRW51bU1lbW9yeVJlZ2lv bnMoVGhpcyxjYWxsYmFjayxtaW5pRHVtcEZsYWdzLGNsckZsYWdzKQ0KDQojZW5kaWYgLyogQ09C Sk1BQ1JPUyAqLw0KDQoNCiNlbmRpZiAJLyogQyBzdHlsZSBpbnRlcmZhY2UgKi8NCg0KDQoNCkhS RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9uc19FbnVtTWVt b3J5UmVnaW9uc19Qcm94eSggDQogICAgSUNMUkRhdGFFbnVtTWVtb3J5UmVnaW9ucyAqIFRoaXMs DQogICAgLyogW2luXSAqLyBJQ0xSRGF0YUVudW1NZW1vcnlSZWdpb25zQ2FsbGJhY2sgKmNhbGxi YWNrLA0KICAgIC8qIFtpbl0gKi8gVUxPTkczMiBtaW5pRHVtcEZsYWdzLA0KICAgIC8qIFtpbl0g Ki8gQ0xSRGF0YUVudW1NZW1vcnlGbGFncyBjbHJGbGFncyk7DQoNCg0Kdm9pZCBfX1JQQ19TVFVC IElDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNfRW51bU1lbW9yeVJlZ2lvbnNfU3R1YigNCiAgICBJ UnBjU3R1YkJ1ZmZlciAqVGhpcywNCiAgICBJUnBjQ2hhbm5lbEJ1ZmZlciAqX3BScGNDaGFubmVs QnVmZmVyLA0KICAgIFBSUENfTUVTU0FHRSBfcFJwY01lc3NhZ2UsDQogICAgRFdPUkQgKl9wZHdT dHViUGhhc2UpOw0KDQoNCg0KI2VuZGlmIAkvKiBfX0lDTFJEYXRhRW51bU1lbW9yeVJlZ2lvbnNf SU5URVJGQUNFX0RFRklORURfXyAqLw0KDQoNCi8qIEFkZGl0aW9uYWwgUHJvdG90eXBlcyBmb3Ig QUxMIGludGVyZmFjZXMgKi8NCg0KLyogZW5kIG9mIEFkZGl0aW9uYWwgUHJvdG90eXBlcyAqLw0K DQojaWZkZWYgX19jcGx1c3BsdXMNCn0NCiNlbmRpZg0KDQojZW5kaWYNCg0KDQo= ------=_Part_28949_1639241.1228597379427--