From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE91CC48BE8 for ; Fri, 18 Jun 2021 12:06:01 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8EC9F613E9 for ; Fri, 18 Jun 2021 12:06:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8EC9F613E9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2323F6E9F3; Fri, 18 Jun 2021 12:06:01 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BF1B6E9F3 for ; Fri, 18 Jun 2021 12:05:59 +0000 (UTC) IronPort-SDR: hT2IKtkBf4o9ycEs3aUo7z04g8qJwGMXcN8nCqCRb4jGjjtNFOcYrqhov2QIxu4sQjK5gqSIjh j9x942wILZxA== X-IronPort-AV: E=McAfee;i="6200,9189,10018"; a="270390693" X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="270390693" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 05:05:57 -0700 IronPort-SDR: yRN6c5c/hKPRtrDcdZ8MN3jYUuSvEEgKUuXUlcxbdgo6OqJ5+SfdZgE0jECJo1bTkHllc4WHG7 u7btCYVwN7wA== X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="453134644" Received: from shoriyac-mobl.ger.corp.intel.com (HELO localhost) ([10.252.36.148]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 05:05:54 -0700 From: Jani Nikula To: Ville Syrjala , intel-gfx@lists.freedesktop.org In-Reply-To: <20210608073603.2408-6-ville.syrjala@linux.intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20210608073603.2408-1-ville.syrjala@linux.intel.com> <20210608073603.2408-6-ville.syrjala@linux.intel.com> Date: Fri, 18 Jun 2021 15:05:50 +0300 Message-ID: <87fsxfwf6p.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v2 05/17] drm/i915: Wrap the buf trans tables into a struct X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVHVlLCAwOCBKdW4gMjAyMSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBQdXQgYSB3cmFwcGVyIHN0cnVjdCBhcm91bmQgdGhlIGJ1ZiB0 cmFucyB0YWJsZXMgc28gdGhhdAo+IHdlIGNhbiBkZWNsYXJlIHRoZSBudW1iZXIgb2YgZW50cmll cyBhbmQgZGVmYXVsdCBIRE1JIGVudHJ5Cj4gYWxvbmdzaWRlIHRoZSB0YWJsZS4KPgo+IEB3cmFw QAo+IGlkZW50aWZpZXIgb2xkID1+ICJeLip0cmFuc2xhdGlvbnMuKiI7Cj4gZnJlc2ggaWRlbnRp ZmllciBuZXcgPSAiXyIgIyMgb2xkOwo+IHR5cGUgVDsKPiBAQAo+IDwuLi4KPiBzdGF0aWMgY29u c3QgVAo+IC0gb2xkCj4gKyBuZXcKPiBbXSA9IHsKPiAgICAgICAgLi4uCj4gfTsKPiArCj4gKyBz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgb2xkID0gewo+ICsgIC5lbnRy aWVzID0gbmV3LAo+ICsgIC5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUobmV3KSwKPiArIH07Cj4g Li4uPgo+Cj4gQEAKPiBpZGVudGlmaWVyIHdyYXAub2xkOwo+IEBACj4gKAo+IC0gQVJSQVlfU0la RShvbGQpCj4gKyBvbGQubnVtX2VudHJpZXMKPiB8Cj4gLSBvbGQKPiArIG9sZC5lbnRyaWVzCj4g KQo+Cj4gQEAKPiBAQAo+IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgewo+IC4uLgo+ IH07Cj4gKwo+ICtzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyB7Cj4gKyAgICAgICBjb25zdCB1 bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICplbnRyaWVzOwo+ICsgICAgICAgdTggbnVt X2VudHJpZXM7Cj4gK307Cj4KPiB2MjogSGFuZGxlIGFkbC1wCj4KPiBSZXZpZXdlZC1ieTogSmFu aSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4gI3YxCgpIb2xkcyBmb3IgdjIuCgo+IFNp Z25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Cj4gLS0tCj4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYyAg ICB8IDYyMSArKysrKysrKysrKysrLS0tLS0KPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGRpX2J1Zl90cmFucy5oICAgIHwgICA1ICsKPiAgMiBmaWxlcyBjaGFuZ2VkLCA0NDggaW5zZXJ0 aW9ucygrKSwgMTc4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5zLmMKPiBpbmRleCA3ZjNjMjNkOWMxZGEuLjVl MTgwNTY3ODBhOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RkaV9idWZfdHJhbnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGRpX2J1Zl90cmFucy5jCj4gQEAgLTEzLDcgKzEzLDcgQEAKPiAgICogdGhlbSBmb3Ig Ym90aCBEUCBhbmQgRkRJIHRyYW5zcG9ydHMsIGFsbG93aW5nIHRob3NlIHBvcnRzIHRvCj4gICAq IGF1dG9tYXRpY2FsbHkgYWRhcHQgdG8gSERNSSBjb25uZWN0aW9ucyBhcyB3ZWxsCj4gICAqLwo+ IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBoc3dfZGRpX3Ry YW5zbGF0aW9uc19kcFtdID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSBfaHN3X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiAgCXsgLmhzdyA9IHsg MHgwMEZGRkZGRiwgMHgwMDA2MDAwRSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMEQ3NUZG RiwgMHgwMDA1MDAwQSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMEMzMEZGRiwgMHgwMDA0 MDAwNiwgMHgwIH0gfSwKPiBAQCAtMjUsNyArMjUsMTIgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGlu dGVsX2RkaV9idWZfdHJhbnNfZW50cnkgaHN3X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiAg CXsgLmhzdyA9IHsgMHg4MEQ3NUZGRiwgMHgwMDBCMDAwMCwgMHgwIH0gfSwKPiAgfTsKPiAgCj4g LXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGhzd19kZGlfdHJh bnNsYXRpb25zX2ZkaVtdID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZf dHJhbnMgaHN3X2RkaV90cmFuc2xhdGlvbnNfZHAgPSB7Cj4gKwkuZW50cmllcyA9IF9oc3dfZGRp X3RyYW5zbGF0aW9uc19kcCwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2hzd19kZGlf dHJhbnNsYXRpb25zX2RwKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5IF9oc3dfZGRpX3RyYW5zbGF0aW9uc19mZGlbXSA9IHsKPiAgCXsg LmhzdyA9IHsgMHgwMEZGRkZGRiwgMHgwMDA3MDAwRSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsg MHgwMEQ3NUZGRiwgMHgwMDBGMDAwQSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMEMzMEZG RiwgMHgwMDA2MDAwNiwgMHgwIH0gfSwKPiBAQCAtMzcsNyArNDIsMTIgQEAgc3RhdGljIGNvbnN0 IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgaHN3X2RkaV90cmFuc2xhdGlvbnNfZmRp W10gPSB7Cj4gIAl7IC5oc3cgPSB7IDB4MDBENzVGRkYsIDB4MDAxRTAwMDAsIDB4MCB9IH0sCj4g IH07Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBo c3dfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50 ZWxfZGRpX2J1Zl90cmFucyBoc3dfZGRpX3RyYW5zbGF0aW9uc19mZGkgPSB7Cj4gKwkuZW50cmll cyA9IF9oc3dfZGRpX3RyYW5zbGF0aW9uc19mZGksCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9T SVpFKF9oc3dfZGRpX3RyYW5zbGF0aW9uc19mZGkpLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0 IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX2hzd19kZGlfdHJhbnNsYXRpb25zX2hk bWlbXSA9IHsKPiAgCQkJCQkJCS8qIElkeAlOVCBtViBkCVQgbVYgZAlkYgkqLwo+ICAJeyAuaHN3 ID0geyAweDAwRkZGRkZGLCAweDAwMDYwMDBFLCAweDAgfSB9LAkvKiAwOgk0MDAJNDAwCTAJKi8K PiAgCXsgLmhzdyA9IHsgMHgwMEU3OUZGRiwgMHgwMDBFMDAwQywgMHgwIH0gfSwJLyogMToJNDAw CTUwMAkyCSovCj4gQEAgLTUzLDcgKzYzLDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5IGhzd19kZGlfdHJhbnNsYXRpb25zX2hkbWlbXSA9IHsKPiAgCXsg LmhzdyA9IHsgMHg4MEZGRkZGRiwgMHgwMDAzMDAwMiwgMHgwIH0gfSwJLyogMTE6CTEwMDAJMTAw MAkwCSovCj4gIH07Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFu c19lbnRyeSBiZHdfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGhzd19kZGlfdHJhbnNsYXRpb25zX2hkbWkgPSB7Cj4g KwkuZW50cmllcyA9IF9oc3dfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAo+ICsJLm51bV9lbnRyaWVz ID0gQVJSQVlfU0laRShfaHN3X2RkaV90cmFuc2xhdGlvbnNfaGRtaSksCj4gK307Cj4gKwo+ICtz dGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBfYmR3X2RkaV90cmFu c2xhdGlvbnNfZWRwW10gPSB7Cj4gIAl7IC5oc3cgPSB7IDB4MDBGRkZGRkYsIDB4MDAwMDAwMTIs IDB4MCB9IH0sCj4gIAl7IC5oc3cgPSB7IDB4MDBFQkFGRkYsIDB4MDAwMjAwMTEsIDB4MCB9IH0s Cj4gIAl7IC5oc3cgPSB7IDB4MDBDNzFGRkYsIDB4MDAwNjAwMEYsIDB4MCB9IH0sCj4gQEAgLTY1 LDcgKzgwLDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 IGJkd19kZGlfdHJhbnNsYXRpb25zX2VkcFtdID0gewo+ICAJeyAuaHN3ID0geyAweDAwREI2RkZG LCAweDAwMEEwMDBDLCAweDAgfSB9LAo+ICB9Owo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGlu dGVsX2RkaV9idWZfdHJhbnNfZW50cnkgYmR3X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGJkd19kZGlfdHJhbnNsYXRp b25zX2VkcCA9IHsKPiArCS5lbnRyaWVzID0gX2Jkd19kZGlfdHJhbnNsYXRpb25zX2VkcCwKPiAr CS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2Jkd19kZGlfdHJhbnNsYXRpb25zX2VkcCksCj4g K307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBf YmR3X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiAgCXsgLmhzdyA9IHsgMHgwMEZGRkZGRiwg MHgwMDA3MDAwRSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMEQ3NUZGRiwgMHgwMDBFMDAw QSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMEJFRkZGRiwgMHgwMDE0MDAwNiwgMHgwIH0g fSwKPiBAQCAtNzcsNyArOTcsMTIgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZf dHJhbnNfZW50cnkgYmR3X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiAgCXsgLmhzdyA9IHsg MHg4MEQ3NUZGRiwgMHgwMDFCMDAwMiwgMHgwIH0gfSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25z dCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGJkd19kZGlfdHJhbnNsYXRpb25zX2Zk aVtdID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgYmR3X2Rk aV90cmFuc2xhdGlvbnNfZHAgPSB7Cj4gKwkuZW50cmllcyA9IF9iZHdfZGRpX3RyYW5zbGF0aW9u c19kcCwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2Jkd19kZGlfdHJhbnNsYXRpb25z X2RwKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5z X2VudHJ5IF9iZHdfZGRpX3RyYW5zbGF0aW9uc19mZGlbXSA9IHsKPiAgCXsgLmhzdyA9IHsgMHgw MEZGRkZGRiwgMHgwMDAxMDAwRSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMEQ3NUZGRiwg MHgwMDA0MDAwQSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMEMzMEZGRiwgMHgwMDA3MDAw NiwgMHgwIH0gfSwKPiBAQCAtODksNyArMTE0LDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRl bF9kZGlfYnVmX3RyYW5zX2VudHJ5IGJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaVtdID0gewo+ICAJ eyAuaHN3ID0geyAweDAwRDc1RkZGLCAweDAwMEMwMDAwLCAweDAgfSB9LAo+ICB9Owo+ICAKPiAt c3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgYmR3X2RkaV90cmFu c2xhdGlvbnNfaGRtaVtdID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZf dHJhbnMgYmR3X2RkaV90cmFuc2xhdGlvbnNfZmRpID0gewo+ICsJLmVudHJpZXMgPSBfYmR3X2Rk aV90cmFuc2xhdGlvbnNfZmRpLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfYmR3X2Rk aV90cmFuc2xhdGlvbnNfZmRpKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRl bF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9iZHdfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4g IAkJCQkJCQkvKiBJZHgJTlQgbVYgZAlUIG1WIGRmCWRiCSovCj4gIAl7IC5oc3cgPSB7IDB4MDBG RkZGRkYsIDB4MDAwNzAwMEUsIDB4MCB9IH0sCS8qIDA6CTQwMAk0MDAJMAkqLwo+ICAJeyAuaHN3 ID0geyAweDAwRDc1RkZGLCAweDAwMEUwMDBBLCAweDAgfSB9LAkvKiAxOgk0MDAJNjAwCTMuNQkq Lwo+IEBAIC0xMDMsOCArMTMzLDEzIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5IGJkd19kZGlfdHJhbnNsYXRpb25zX2hkbWlbXSA9IHsKPiAgCXsgLmhzdyA9 IHsgMHg4MEZGRkZGRiwgMHgwMDFCMDAwMiwgMHgwIH0gfSwJLyogOToJMTAwMAkxMDAwCTAJKi8K PiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBiZHdf ZGRpX3RyYW5zbGF0aW9uc19oZG1pID0gewo+ICsJLmVudHJpZXMgPSBfYmR3X2RkaV90cmFuc2xh dGlvbnNfaGRtaSwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2Jkd19kZGlfdHJhbnNs YXRpb25zX2hkbWkpLAo+ICt9Owo+ICsKPiAgLyogU2t5bGFrZSBIIGFuZCBTICovCj4gLXN0YXRp YyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHNrbF9kZGlfdHJhbnNsYXRp b25zX2RwW10gPSB7Cj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2Vu dHJ5IF9za2xfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ICAJeyAuaHN3ID0geyAweDAwMDAy MDE2LCAweDAwMDAwMEEwLCAweDAgfSB9LAo+ICAJeyAuaHN3ID0geyAweDAwMDA1MDEyLCAweDAw MDAwMDlCLCAweDAgfSB9LAo+ICAJeyAuaHN3ID0geyAweDAwMDA3MDExLCAweDAwMDAwMDg4LCAw eDAgfSB9LAo+IEBAIC0xMTYsOCArMTUxLDEzIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5IHNrbF9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7Cj4gIAl7IC5o c3cgPSB7IDB4ODAwMDUwMTIsIDB4MDAwMDAwQzAsIDB4MSB9IH0sCj4gIH07Cj4gIAo+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgc2tsX2RkaV90cmFuc2xhdGlvbnNf ZHAgPSB7Cj4gKwkuZW50cmllcyA9IF9za2xfZGRpX3RyYW5zbGF0aW9uc19kcCwKPiArCS5udW1f ZW50cmllcyA9IEFSUkFZX1NJWkUoX3NrbF9kZGlfdHJhbnNsYXRpb25zX2RwKSwKPiArfTsKPiAr Cj4gIC8qIFNreWxha2UgVSAqLwo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7Cj4gK3N0YXRpYyBjb25z dCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9za2xfdV9kZGlfdHJhbnNsYXRpb25z X2RwW10gPSB7Cj4gIAl7IC5oc3cgPSB7IDB4MDAwMDIwMUIsIDB4MDAwMDAwQTIsIDB4MCB9IH0s Cj4gIAl7IC5oc3cgPSB7IDB4MDAwMDUwMTIsIDB4MDAwMDAwODgsIDB4MCB9IH0sCj4gIAl7IC5o c3cgPSB7IDB4ODAwMDcwMTEsIDB4MDAwMDAwQ0QsIDB4MSB9IH0sCj4gQEAgLTEyOSw4ICsxNjks MTMgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgc2tsX3Vf ZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ICAJeyAuaHN3ID0geyAweDgwMDA1MDEyLCAweDAw MDAwMEMwLCAweDEgfSB9LAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9k ZGlfYnVmX3RyYW5zIHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHAgPSB7Cj4gKwkuZW50cmllcyA9 IF9za2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0la RShfc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19kcCksCj4gK307Cj4gKwo+ICAvKiBTa3lsYWtlIFkg Ki8KPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgc2tsX3lf ZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSBfc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ICAJeyAu aHN3ID0geyAweDAwMDAwMDE4LCAweDAwMDAwMEEyLCAweDAgfSB9LAo+ICAJeyAuaHN3ID0geyAw eDAwMDA1MDEyLCAweDAwMDAwMDg4LCAweDAgfSB9LAo+ICAJeyAuaHN3ID0geyAweDgwMDA3MDEx LCAweDAwMDAwMENELCAweDMgfSB9LAo+IEBAIC0xNDIsOCArMTg3LDEzIEBAIHN0YXRpYyBjb25z dCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHNrbF95X2RkaV90cmFuc2xhdGlvbnNf ZHBbXSA9IHsKPiAgCXsgLmhzdyA9IHsgMHg4MDAwNTAxMiwgMHgwMDAwMDBDMCwgMHgzIH0gfSwK PiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBza2xf eV9kZGlfdHJhbnNsYXRpb25zX2RwID0gewo+ICsJLmVudHJpZXMgPSBfc2tsX3lfZGRpX3RyYW5z bGF0aW9uc19kcCwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX3NrbF95X2RkaV90cmFu c2xhdGlvbnNfZHApLAo+ICt9Owo+ICsKPiAgLyogS2FieWxha2UgSCBhbmQgUyAqLwo+IC1zdGF0 aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBrYmxfZGRpX3RyYW5zbGF0 aW9uc19kcFtdID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19l bnRyeSBfa2JsX2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiAgCXsgLmhzdyA9IHsgMHgwMDAw MjAxNiwgMHgwMDAwMDBBMCwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMDAwNTAxMiwgMHgw MDAwMDA5QiwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMDAwNzAxMSwgMHgwMDAwMDA4OCwg MHgwIH0gfSwKPiBAQCAtMTU1LDggKzIwNSwxMyBAQCBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxf ZGRpX2J1Zl90cmFuc19lbnRyeSBrYmxfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ICAJeyAu aHN3ID0geyAweDgwMDA1MDEyLCAweDAwMDAwMEMwLCAweDEgfSB9LAo+ICB9Owo+ICAKPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGtibF9kZGlfdHJhbnNsYXRpb25z X2RwID0gewo+ICsJLmVudHJpZXMgPSBfa2JsX2RkaV90cmFuc2xhdGlvbnNfZHAsCj4gKwkubnVt X2VudHJpZXMgPSBBUlJBWV9TSVpFKF9rYmxfZGRpX3RyYW5zbGF0aW9uc19kcCksCj4gK307Cj4g Kwo+ICAvKiBLYWJ5bGFrZSBVICovCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5IGtibF91X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiArc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX2tibF91X2RkaV90cmFuc2xhdGlv bnNfZHBbXSA9IHsKPiAgCXsgLmhzdyA9IHsgMHgwMDAwMjAxQiwgMHgwMDAwMDBBMSwgMHgwIH0g fSwKPiAgCXsgLmhzdyA9IHsgMHgwMDAwNTAxMiwgMHgwMDAwMDA4OCwgMHgwIH0gfSwKPiAgCXsg LmhzdyA9IHsgMHg4MDAwNzAxMSwgMHgwMDAwMDBDRCwgMHgzIH0gfSwKPiBAQCAtMTY4LDggKzIy MywxMyBAQCBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBrYmxf dV9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7Cj4gIAl7IC5oc3cgPSB7IDB4ODAwMDUwMTIsIDB4 MDAwMDAwQzAsIDB4MyB9IH0sCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RkaV9idWZfdHJhbnMga2JsX3VfZGRpX3RyYW5zbGF0aW9uc19kcCA9IHsKPiArCS5lbnRyaWVz ID0gX2tibF91X2RkaV90cmFuc2xhdGlvbnNfZHAsCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9T SVpFKF9rYmxfdV9kZGlfdHJhbnNsYXRpb25zX2RwKSwKPiArfTsKPiArCj4gIC8qIEthYnlsYWtl IFkgKi8KPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkga2Js X3lfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxf ZGRpX2J1Zl90cmFuc19lbnRyeSBfa2JsX3lfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ICAJ eyAuaHN3ID0geyAweDAwMDAxMDE3LCAweDAwMDAwMEExLCAweDAgfSB9LAo+ICAJeyAuaHN3ID0g eyAweDAwMDA1MDEyLCAweDAwMDAwMDg4LCAweDAgfSB9LAo+ICAJeyAuaHN3ID0geyAweDgwMDA3 MDExLCAweDAwMDAwMENELCAweDMgfSB9LAo+IEBAIC0xODEsMTEgKzI0MSwxNiBAQCBzdGF0aWMg Y29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBrYmxfeV9kZGlfdHJhbnNsYXRp b25zX2RwW10gPSB7Cj4gIAl7IC5oc3cgPSB7IDB4ODAwMDUwMTIsIDB4MDAwMDAwQzAsIDB4MyB9 IH0sCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMg a2JsX3lfZGRpX3RyYW5zbGF0aW9uc19kcCA9IHsKPiArCS5lbnRyaWVzID0gX2tibF95X2RkaV90 cmFuc2xhdGlvbnNfZHAsCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9rYmxfeV9kZGlf dHJhbnNsYXRpb25zX2RwKSwKPiArfTsKPiArCj4gIC8qCj4gICAqIFNreWxha2UvS2FieWxha2Ug SCBhbmQgUwo+ICAgKiBlRFAgMS40IGxvdyB2c3dpbmcgdHJhbnNsYXRpb24gcGFyYW1ldGVycwo+ ICAgKi8KPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgc2ts X2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7Cj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5IF9za2xfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKPiAgCXsg LmhzdyA9IHsgMHgwMDAwMDAxOCwgMHgwMDAwMDBBOCwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsg MHgwMDAwNDAxMywgMHgwMDAwMDBBOSwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMDAwNzAx MSwgMHgwMDAwMDBBMiwgMHgwIH0gfSwKPiBAQCAtMTk4LDExICsyNjMsMTYgQEAgc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgc2tsX2RkaV90cmFuc2xhdGlvbnNf ZWRwW10gPSB7Cj4gIAl7IC5oc3cgPSB7IDB4MDAwMDAwMTgsIDB4MDAwMDAwREYsIDB4MCB9IH0s Cj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgc2ts X2RkaV90cmFuc2xhdGlvbnNfZWRwID0gewo+ICsJLmVudHJpZXMgPSBfc2tsX2RkaV90cmFuc2xh dGlvbnNfZWRwLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfc2tsX2RkaV90cmFuc2xh dGlvbnNfZWRwKSwKPiArfTsKPiArCj4gIC8qCj4gICAqIFNreWxha2UvS2FieWxha2UgVQo+ICAg KiBlRFAgMS40IGxvdyB2c3dpbmcgdHJhbnNsYXRpb24gcGFyYW1ldGVycwo+ICAgKi8KPiAtc3Rh dGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgc2tsX3VfZGRpX3RyYW5z bGF0aW9uc19lZHBbXSA9IHsKPiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJh bnNfZW50cnkgX3NrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7Cj4gIAl7IC5oc3cgPSB7 IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTgsIDB4MCB9IH0sCj4gIAl7IC5oc3cgPSB7IDB4MDAwMDQw MTMsIDB4MDAwMDAwQTksIDB4MCB9IH0sCj4gIAl7IC5oc3cgPSB7IDB4MDAwMDcwMTEsIDB4MDAw MDAwQTIsIDB4MCB9IH0sCj4gQEAgLTIxNSwxMSArMjg1LDE2IEBAIHN0YXRpYyBjb25zdCB1bmlv biBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwW10g PSB7Cj4gIAl7IC5oc3cgPSB7IDB4MDAwMDAwMTgsIDB4MDAwMDAwREYsIDB4MCB9IH0sCj4gIH07 Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgc2tsX3VfZGRp X3RyYW5zbGF0aW9uc19lZHAgPSB7Cj4gKwkuZW50cmllcyA9IF9za2xfdV9kZGlfdHJhbnNsYXRp b25zX2VkcCwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX3NrbF91X2RkaV90cmFuc2xh dGlvbnNfZWRwKSwKPiArfTsKPiArCj4gIC8qCj4gICAqIFNreWxha2UvS2FieWxha2UgWQo+ICAg KiBlRFAgMS40IGxvdyB2c3dpbmcgdHJhbnNsYXRpb24gcGFyYW1ldGVycwo+ICAgKi8KPiAtc3Rh dGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgc2tsX3lfZGRpX3RyYW5z bGF0aW9uc19lZHBbXSA9IHsKPiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJh bnNfZW50cnkgX3NrbF95X2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7Cj4gIAl7IC5oc3cgPSB7 IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTgsIDB4MCB9IH0sCj4gIAl7IC5oc3cgPSB7IDB4MDAwMDQw MTMsIDB4MDAwMDAwQUIsIDB4MCB9IH0sCj4gIAl7IC5oc3cgPSB7IDB4MDAwMDcwMTEsIDB4MDAw MDAwQTQsIDB4MCB9IH0sCj4gQEAgLTIzMiw4ICszMDcsMTMgQEAgc3RhdGljIGNvbnN0IHVuaW9u IGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9 IHsKPiAgCXsgLmhzdyA9IHsgMHgwMDAwMDAxOCwgMHgwMDAwMDA4QSwgMHgwIH0gfSwKPiAgfTsK PiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBza2xfeV9kZGlf dHJhbnNsYXRpb25zX2VkcCA9IHsKPiArCS5lbnRyaWVzID0gX3NrbF95X2RkaV90cmFuc2xhdGlv bnNfZWRwLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfc2tsX3lfZGRpX3RyYW5zbGF0 aW9uc19lZHApLAo+ICt9Owo+ICsKPiAgLyogU2t5bGFrZS9LYWJ5bGFrZSBVLCBIIGFuZCBTICov Cj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHNrbF9kZGlf dHJhbnNsYXRpb25zX2hkbWlbXSA9IHsKPiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9i dWZfdHJhbnNfZW50cnkgX3NrbF9kZGlfdHJhbnNsYXRpb25zX2hkbWlbXSA9IHsKPiAgCXsgLmhz dyA9IHsgMHgwMDAwMDAxOCwgMHgwMDAwMDBBQywgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgw MDAwNTAxMiwgMHgwMDAwMDA5RCwgMHgwIH0gfSwKPiAgCXsgLmhzdyA9IHsgMHgwMDAwNzAxMSwg MHgwMDAwMDA4OCwgMHgwIH0gfSwKPiBAQCAtMjQ3LDggKzMyNywxMyBAQCBzdGF0aWMgY29uc3Qg dW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBza2xfZGRpX3RyYW5zbGF0aW9uc19oZG1p W10gPSB7Cj4gIAl7IC5oc3cgPSB7IDB4ODAwMDAwMTgsIDB4MDAwMDAwQzAsIDB4MSB9IH0sCj4g IH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgc2tsX2Rk aV90cmFuc2xhdGlvbnNfaGRtaSA9IHsKPiArCS5lbnRyaWVzID0gX3NrbF9kZGlfdHJhbnNsYXRp b25zX2hkbWksCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9za2xfZGRpX3RyYW5zbGF0 aW9uc19oZG1pKSwKPiArfTsKPiArCj4gIC8qIFNreWxha2UvS2FieWxha2UgWSAqLwo+IC1zdGF0 aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBza2xfeV9kZGlfdHJhbnNs YXRpb25zX2hkbWlbXSA9IHsKPiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJh bnNfZW50cnkgX3NrbF95X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0gewo+ICAJeyAuaHN3ID0g eyAweDAwMDAwMDE4LCAweDAwMDAwMEExLCAweDAgfSB9LAo+ICAJeyAuaHN3ID0geyAweDAwMDA1 MDEyLCAweDAwMDAwMERGLCAweDAgfSB9LAo+ICAJeyAuaHN3ID0geyAweDgwMDA3MDExLCAweDAw MDAwMENCLCAweDMgfSB9LAo+IEBAIC0yNjIsNyArMzQ3LDEyIEBAIHN0YXRpYyBjb25zdCB1bmlv biBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHNrbF95X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtd ID0gewo+ICAJeyAuaHN3ID0geyAweDgwMDAwMDE4LCAweDAwMDAwMEMwLCAweDMgfSB9LAo+ICB9 Owo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgYnh0 X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9k ZGlfYnVmX3RyYW5zIHNrbF95X2RkaV90cmFuc2xhdGlvbnNfaGRtaSA9IHsKPiArCS5lbnRyaWVz ID0gX3NrbF95X2RkaV90cmFuc2xhdGlvbnNfaGRtaSwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZ X1NJWkUoX3NrbF95X2RkaV90cmFuc2xhdGlvbnNfaGRtaSksCj4gK307Cj4gKwo+ICtzdGF0aWMg Y29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBfYnh0X2RkaV90cmFuc2xhdGlv bnNfZHBbXSA9IHsKPiAgCQkJCQkJLyogSWR4CU5UIG1WIGRpZmYJZGIgICovCj4gIAl7IC5ieHQg PSB7IDUyLCAgMHg5QSwgMCwgMTI4LCB9IH0sCS8qIDA6CTQwMAkJMCAgICovCj4gIAl7IC5ieHQg PSB7IDc4LCAgMHg5QSwgMCwgODUsICB9IH0sCS8qIDE6CTQwMAkJMy41ICovCj4gQEAgLTI3Niw3 ICszNjYsMTIgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkg Ynh0X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiAgCXsgLmJ4dCA9IHsgMTU0LCAweDlBLCAx LCAxMjgsIH0gfSwJLyogOToJMTIwMAkJMCAgICovCj4gIH07Cj4gIAo+IC1zdGF0aWMgY29uc3Qg dW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBieHRfZGRpX3RyYW5zbGF0aW9uc19lZHBb XSA9IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGJ4dF9kZGlf dHJhbnNsYXRpb25zX2RwID0gewo+ICsJLmVudHJpZXMgPSBfYnh0X2RkaV90cmFuc2xhdGlvbnNf ZHAsCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9ieHRfZGRpX3RyYW5zbGF0aW9uc19k cCksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19l bnRyeSBfYnh0X2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7Cj4gIAkJCQkJLyogSWR4CU5UIG1W IGRpZmYJZGIgICovCj4gIAl7IC5ieHQgPSB7IDI2LCAwLCAwLCAxMjgsIH0gfSwJLyogMDoJMjAw CQkwICAgKi8KPiAgCXsgLmJ4dCA9IHsgMzgsIDAsIDAsIDExMiwgfSB9LAkvKiAxOgkyMDAJCTEu NSAqLwo+IEBAIC0yOTAsMTAgKzM4NSwxNSBAQCBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSBieHRfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKPiAgCXsgLmJ4 dCA9IHsgNDgsIDAsIDAsIDEyOCwgfSB9LAkvKiA5OgkzMDAJCTAgICAqLwo+ICB9Owo+ICAKPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGJ4dF9kZGlfdHJhbnNsYXRp b25zX2VkcCA9IHsKPiArCS5lbnRyaWVzID0gX2J4dF9kZGlfdHJhbnNsYXRpb25zX2VkcCwKPiAr CS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2J4dF9kZGlfdHJhbnNsYXRpb25zX2VkcCksCj4g K307Cj4gKwo+ICAvKiBCU3BlYyBoYXMgMiByZWNvbW1lbmRlZCB2YWx1ZXMgLSBlbnRyaWVzIDAg YW5kIDguCj4gICAqIFVzaW5nIHRoZSBlbnRyeSB3aXRoIGhpZ2hlciB2c3dpbmcuCj4gICAqLwo+ IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBieHRfZGRpX3Ry YW5zbGF0aW9uc19oZG1pW10gPSB7Cj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5IF9ieHRfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4gIAkJCQkJCS8q IElkeAlOVCBtViBkaWZmCWRiICAqLwo+ICAJeyAuYnh0ID0geyA1MiwgIDB4OUEsIDAsIDEyOCwg fSB9LAkvKiAwOgk0MDAJCTAgICAqLwo+ICAJeyAuYnh0ID0geyA1MiwgIDB4OUEsIDAsIDg1LCAg fSB9LAkvKiAxOgk0MDAJCTMuNSAqLwo+IEBAIC0zMDcsOCArNDA3LDEzIEBAIHN0YXRpYyBjb25z dCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGJ4dF9kZGlfdHJhbnNsYXRpb25zX2hk bWlbXSA9IHsKPiAgCXsgLmJ4dCA9IHsgMTU0LCAweDlBLCAxLCAxMjgsIH0gfSwJLyogOToJMTIw MAkJMCAgICovCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZf dHJhbnMgYnh0X2RkaV90cmFuc2xhdGlvbnNfaGRtaSA9IHsKPiArCS5lbnRyaWVzID0gX2J4dF9k ZGlfdHJhbnNsYXRpb25zX2hkbWksCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9ieHRf ZGRpX3RyYW5zbGF0aW9uc19oZG1pKSwKPiArfTsKPiArCj4gIC8qIFZvbHRhZ2UgU3dpbmcgUHJv Z3JhbW1pbmcgZm9yIFZjY0lPIDAuODVWIGZvciBEUCAqLwo+IC1zdGF0aWMgY29uc3QgdW5pb24g aW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBjbmxfZGRpX3RyYW5zbGF0aW9uc19kcF8wXzg1Vltd ID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBfY25s X2RkaV90cmFuc2xhdGlvbnNfZHBfMF84NVZbXSA9IHsKPiAgCQkJCQkJCS8qIE5UIG1WIFRyYW5z IG1WIGRiICAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHg1RCwgMHgzRiwgMHgwMCwgMHgwMCB9 IH0sCS8qIDM1MCAgIDM1MCAgICAgIDAuMCAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHg2QSwg MHgzOCwgMHgwMCwgMHgwNyB9IH0sCS8qIDM1MCAgIDUwMCAgICAgIDMuMSAgICovCj4gQEAgLTMy Miw4ICs0MjcsMTMgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50 cnkgY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF84NVZbXSA9IHsKPiAgCXsgLmNubCA9IHsgMHg2 LCAweDdCLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogOTAwICAgOTAwICAgICAgMC4wICAgKi8K PiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBjbmxf ZGRpX3RyYW5zbGF0aW9uc19kcF8wXzg1ViA9IHsKPiArCS5lbnRyaWVzID0gX2NubF9kZGlfdHJh bnNsYXRpb25zX2RwXzBfODVWLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfY25sX2Rk aV90cmFuc2xhdGlvbnNfZHBfMF84NVYpLAo+ICt9Owo+ICsKPiAgLyogVm9sdGFnZSBTd2luZyBQ cm9ncmFtbWluZyBmb3IgVmNjSU8gMC44NVYgZm9yIEhETUkgKi8KPiAtc3RhdGljIGNvbnN0IHVu aW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8w Xzg1VltdID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRy eSBfY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8wXzg1VltdID0gewo+ICAJCQkJCQkJLyogTlQg bVYgVHJhbnMgbVYgZGIgICAgKi8KPiAgCXsgLmNubCA9IHsgMHhBLCAweDYwLCAweDNGLCAweDAw LCAweDAwIH0gfSwJLyogNDUwICAgNDUwICAgICAgMC4wICAgKi8KPiAgCXsgLmNubCA9IHsgMHhC LCAweDczLCAweDM2LCAweDAwLCAweDA5IH0gfSwJLyogNDUwICAgNjUwICAgICAgMy4yICAgKi8K PiBAQCAtMzM0LDggKzQ0NCwxMyBAQCBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSBjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzBfODVWW10gPQo+ICAJeyAuY25s ID0geyAweDYsIDB4N0YsIDB4MzUsIDB4MDAsIDB4MEEgfSB9LAkvKiA2MDAgICA4NTAgICAgICAz LjAgICAqLwo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3Ry YW5zIGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMF84NVYgPSB7Cj4gKwkuZW50cmllcyA9IF9j bmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzBfODVWLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlf U0laRShfY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8wXzg1ViksCj4gK307Cj4gKwo+ICAvKiBW b2x0YWdlIFN3aW5nIFByb2dyYW1taW5nIGZvciBWY2NJTyAwLjg1ViBmb3IgZURQICovCj4gLXN0 YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGNubF9kZGlfdHJhbnNs YXRpb25zX2VkcF8wXzg1VltdID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1 Zl90cmFuc19lbnRyeSBfY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfODVWW10gPSB7Cj4gIAkJ CQkJCQkvKiBOVCBtViBUcmFucyBtViBkYiAgICAqLwo+ICAJeyAuY25sID0geyAweEEsIDB4NjYs IDB4M0EsIDB4MDAsIDB4MDUgfSB9LAkvKiAzODQgICA1MDAgICAgICAyLjMgICAqLwo+ICAJeyAu Y25sID0geyAweDAsIDB4N0YsIDB4MzgsIDB4MDAsIDB4MDcgfSB9LAkvKiAxNTMgICAyMDAgICAg ICAyLjMgICAqLwo+IEBAIC0zNDgsOCArNDYzLDEzIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRl bF9kZGlfYnVmX3RyYW5zX2VudHJ5IGNubF9kZGlfdHJhbnNsYXRpb25zX2VkcF8wXzg1VltdID0K PiAgCXsgLmNubCA9IHsgMHgyLCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogNDAwICAg NDAwICAgICAgMC4wICAgKi8KPiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxf ZGRpX2J1Zl90cmFucyBjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF84NVYgPSB7Cj4gKwkuZW50 cmllcyA9IF9jbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF84NVYsCj4gKwkubnVtX2VudHJpZXMg PSBBUlJBWV9TSVpFKF9jbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF84NVYpLAo+ICt9Owo+ICsK PiAgLyogVm9sdGFnZSBTd2luZyBQcm9ncmFtbWluZyBmb3IgVmNjSU8gMC45NVYgZm9yIERQICov Cj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGNubF9kZGlf dHJhbnNsYXRpb25zX2RwXzBfOTVWW10gPSB7Cj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5IF9jbmxfZGRpX3RyYW5zbGF0aW9uc19kcF8wXzk1VltdID0gewo+ ICAJCQkJCQkJLyogTlQgbVYgVHJhbnMgbVYgZGIgICAgKi8KPiAgCXsgLmNubCA9IHsgMHhBLCAw eDVELCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogMzUwICAgMzUwICAgICAgMC4wICAgKi8KPiAg CXsgLmNubCA9IHsgMHhBLCAweDZBLCAweDM4LCAweDAwLCAweDA3IH0gfSwJLyogMzUwICAgNTAw ICAgICAgMy4xICAgKi8KPiBAQCAtMzYzLDggKzQ4MywxMyBAQCBzdGF0aWMgY29uc3QgdW5pb24g aW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBjbmxfZGRpX3RyYW5zbGF0aW9uc19kcF8wXzk1Vltd ID0gewo+ICAJeyAuY25sID0geyAweDYsIDB4N0IsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiA5 MDAgICA5MDAgICAgICAwLjAgICAqLwo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9kZGlfYnVmX3RyYW5zIGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzBfOTVWID0gewo+ICsJ LmVudHJpZXMgPSBfY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF85NVYsCj4gKwkubnVtX2VudHJp ZXMgPSBBUlJBWV9TSVpFKF9jbmxfZGRpX3RyYW5zbGF0aW9uc19kcF8wXzk1ViksCj4gK307Cj4g Kwo+ICAvKiBWb2x0YWdlIFN3aW5nIFByb2dyYW1taW5nIGZvciBWY2NJTyAwLjk1ViBmb3IgSERN SSAqLwo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBjbmxf ZGRpX3RyYW5zbGF0aW9uc19oZG1pXzBfOTVWW10gPSB7Cj4gK3N0YXRpYyBjb25zdCB1bmlvbiBp bnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9jbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzBfOTVW W10gPSB7Cj4gIAkJCQkJCQkvKiBOVCBtViBUcmFucyBtViBkYiAgICAqLwo+ICAJeyAuY25sID0g eyAweEEsIDB4NUMsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiA0MDAgICA0MDAgICAgICAwLjAg ICAqLwo+ICAJeyAuY25sID0geyAweEIsIDB4NjksIDB4MzcsIDB4MDAsIDB4MDggfSB9LAkvKiA0 MDAgICA2MDAgICAgICAzLjUgICAqLwo+IEBAIC0zNzksOCArNTA0LDEzIEBAIHN0YXRpYyBjb25z dCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGNubF9kZGlfdHJhbnNsYXRpb25zX2hk bWlfMF85NVZbXSA9Cj4gIAl7IC5jbmwgPSB7IDB4NiwgMHg3RiwgMHgzRiwgMHgwMCwgMHgwMCB9 IH0sCS8qIDEwNTAgIDEwNTAgICAgIDAuMCAgICovCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8wXzk1 ViA9IHsKPiArCS5lbnRyaWVzID0gX2NubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMF85NVYsCj4g KwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9jbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzBf OTVWKSwKPiArfTsKPiArCj4gIC8qIFZvbHRhZ2UgU3dpbmcgUHJvZ3JhbW1pbmcgZm9yIFZjY0lP IDAuOTVWIGZvciBlRFAgKi8KPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJh bnNfZW50cnkgY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfOTVWW10gPSB7Cj4gK3N0YXRpYyBj b25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9jbmxfZGRpX3RyYW5zbGF0aW9u c19lZHBfMF85NVZbXSA9IHsKPiAgCQkJCQkJCS8qIE5UIG1WIFRyYW5zIG1WIGRiICAgICovCj4g IAl7IC5jbmwgPSB7IDB4QSwgMHg2MSwgMHgzQSwgMHgwMCwgMHgwNSB9IH0sCS8qIDM4NCAgIDUw MCAgICAgIDIuMyAgICovCj4gIAl7IC5jbmwgPSB7IDB4MCwgMHg3RiwgMHgzOCwgMHgwMCwgMHgw NyB9IH0sCS8qIDE1MyAgIDIwMCAgICAgIDIuMyAgICovCj4gQEAgLTM5NCw4ICs1MjQsMTMgQEAg c3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgY25sX2RkaV90cmFu c2xhdGlvbnNfZWRwXzBfOTVWW10gPQo+ICAJeyAuY25sID0geyAweDIsIDB4N0YsIDB4M0YsIDB4 MDAsIDB4MDAgfSB9LAkvKiA0MDAgICA0MDAgICAgICAwLjAgICAqLwo+ICB9Owo+ICAKPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGNubF9kZGlfdHJhbnNsYXRpb25z X2VkcF8wXzk1ViA9IHsKPiArCS5lbnRyaWVzID0gX2NubF9kZGlfdHJhbnNsYXRpb25zX2VkcF8w Xzk1ViwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2NubF9kZGlfdHJhbnNsYXRpb25z X2VkcF8wXzk1ViksCj4gK307Cj4gKwo+ICAvKiBWb2x0YWdlIFN3aW5nIFByb2dyYW1taW5nIGZv ciBWY2NJTyAxLjA1ViBmb3IgRFAgKi8KPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9i dWZfdHJhbnNfZW50cnkgY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMV8wNVZbXSA9IHsKPiArc3Rh dGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX2NubF9kZGlfdHJhbnNs YXRpb25zX2RwXzFfMDVWW10gPSB7Cj4gIAkJCQkJCQkvKiBOVCBtViBUcmFucyBtViBkYiAgICAq Lwo+ICAJeyAuY25sID0geyAweEEsIDB4NTgsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiA0MDAg ICA0MDAgICAgICAwLjAgICAqLwo+ICAJeyAuY25sID0geyAweEIsIDB4NjQsIDB4MzcsIDB4MDAs IDB4MDggfSB9LAkvKiA0MDAgICA2MDAgICAgICAzLjUgICAqLwo+IEBAIC00MDksOCArNTQ0LDEz IEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGNubF9kZGlf dHJhbnNsYXRpb25zX2RwXzFfMDVWW10gPSB7Cj4gIAl7IC5jbmwgPSB7IDB4NiwgMHg3RiwgMHgz RiwgMHgwMCwgMHgwMCB9IH0sCS8qIDEwNTAgIDEwNTAgICAgIDAuMCAgICovCj4gIH07Cj4gIAo+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgY25sX2RkaV90cmFuc2xh dGlvbnNfZHBfMV8wNVYgPSB7Cj4gKwkuZW50cmllcyA9IF9jbmxfZGRpX3RyYW5zbGF0aW9uc19k cF8xXzA1ViwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2NubF9kZGlfdHJhbnNsYXRp b25zX2RwXzFfMDVWKSwKPiArfTsKPiArCj4gIC8qIFZvbHRhZ2UgU3dpbmcgUHJvZ3JhbW1pbmcg Zm9yIFZjY0lPIDEuMDVWIGZvciBIRE1JICovCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5IGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMV8wNVZbXSA9IHsK PiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX2NubF9kZGlf dHJhbnNsYXRpb25zX2hkbWlfMV8wNVZbXSA9IHsKPiAgCQkJCQkJCS8qIE5UIG1WIFRyYW5zIG1W IGRiICAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHg1OCwgMHgzRiwgMHgwMCwgMHgwMCB9IH0s CS8qIDQwMCAgIDQwMCAgICAgIDAuMCAgICovCj4gIAl7IC5jbmwgPSB7IDB4QiwgMHg2NCwgMHgz NywgMHgwMCwgMHgwOCB9IH0sCS8qIDQwMCAgIDYwMCAgICAgIDMuNSAgICovCj4gQEAgLTQyNSw4 ICs1NjUsMTMgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkg Y25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8xXzA1VltdID0KPiAgCXsgLmNubCA9IHsgMHg2LCAw eDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogMTA1MCAgMTA1MCAgICAgMC4wICAgKi8KPiAg fTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBjbmxfZGRp X3RyYW5zbGF0aW9uc19oZG1pXzFfMDVWID0gewo+ICsJLmVudHJpZXMgPSBfY25sX2RkaV90cmFu c2xhdGlvbnNfaGRtaV8xXzA1ViwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2NubF9k ZGlfdHJhbnNsYXRpb25zX2hkbWlfMV8wNVYpLAo+ICt9Owo+ICsKPiAgLyogVm9sdGFnZSBTd2lu ZyBQcm9ncmFtbWluZyBmb3IgVmNjSU8gMS4wNVYgZm9yIGVEUCAqLwo+IC1zdGF0aWMgY29uc3Qg dW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBf MV8wNVZbXSA9IHsKPiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50 cnkgX2NubF9kZGlfdHJhbnNsYXRpb25zX2VkcF8xXzA1VltdID0gewo+ICAJCQkJCQkJLyogTlQg bVYgVHJhbnMgbVYgZGIgICAgKi8KPiAgCXsgLmNubCA9IHsgMHhBLCAweDVFLCAweDNBLCAweDAw LCAweDA1IH0gfSwJLyogMzg0ICAgNTAwICAgICAgMi4zICAgKi8KPiAgCXsgLmNubCA9IHsgMHgw LCAweDdGLCAweDM4LCAweDAwLCAweDA3IH0gfSwJLyogMTUzICAgMjAwICAgICAgMi4zICAgKi8K PiBAQCAtNDM5LDggKzU4NCwxMyBAQCBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSBjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMV8wNVZbXSA9Cj4gIAl7IC5jbmwg PSB7IDB4MiwgMHg3RiwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDQwMCAgIDQwMCAgICAgIDAu MCAgICovCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJh bnMgY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzFfMDVWID0gewo+ICsJLmVudHJpZXMgPSBfY25s X2RkaV90cmFuc2xhdGlvbnNfZWRwXzFfMDVWLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0la RShfY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzFfMDVWKSwKPiArfTsKPiArCj4gIC8qIGljbF9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9ucyAqLwo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxf ZGRpX2J1Zl90cmFuc19lbnRyeSBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJy MltdID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBf aWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJbXSA9IHsKPiAgCQkJCQkJCS8q IE5UIG1WIFRyYW5zIG1WIGRiICAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHgzNSwgMHgzRiwg MHgwMCwgMHgwMCB9IH0sCS8qIDM1MCAgIDM1MCAgICAgIDAuMCAgICovCj4gIAl7IC5jbmwgPSB7 IDB4QSwgMHg0RiwgMHgzNywgMHgwMCwgMHgwOCB9IH0sCS8qIDM1MCAgIDUwMCAgICAgIDMuMSAg ICovCj4gQEAgLTQ1NCw3ICs2MDQsMTIgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9i dWZfdHJhbnNfZW50cnkgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2gKPiAgCXsg LmNubCA9IHsgMHg2LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogOTAwICAgOTAwICAg ICAgMC4wICAgKi8KPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMltdID0g ewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgaWNsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIgPSB7Cj4gKwkuZW50cmllcyA9IF9pY2xfY29tYm9f cGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMiwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJ WkUoX2ljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyKSwKPiArfTsKPiArCj4g K3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9pY2xfY29tYm9f cGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjJbXSA9IHsKPiAgCQkJCQkJCS8qIE5UIG1WIFRy YW5zIG1WIGRiICAgICovCj4gIAl7IC5jbmwgPSB7IDB4MCwgMHg3RiwgMHgzRiwgMHgwMCwgMHgw MCB9IH0sCS8qIDIwMCAgIDIwMCAgICAgIDAuMCAgICovCj4gIAl7IC5jbmwgPSB7IDB4OCwgMHg3 RiwgMHgzOCwgMHgwMCwgMHgwNyB9IH0sCS8qIDIwMCAgIDI1MCAgICAgIDEuOSAgICovCj4gQEAg LTQ2OCw3ICs2MjMsMTIgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNf ZW50cnkgaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF8KPiAgCXsgLmNubCA9IHsg MHg5LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogMzUwICAgMzUwICAgICAgMC4wICAg Ki8KPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2Vu dHJ5IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyM1tdID0gewo+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgaWNsX2NvbWJvX3BoeV9kZGlfdHJh bnNsYXRpb25zX2VkcF9oYnIyID0gewo+ICsJLmVudHJpZXMgPSBfaWNsX2NvbWJvX3BoeV9kZGlf dHJhbnNsYXRpb25zX2VkcF9oYnIyLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfaWNs X2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyKSwKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9pY2xfY29tYm9fcGh5X2Rk aV90cmFuc2xhdGlvbnNfZWRwX2hicjNbXSA9IHsKPiAgCQkJCQkJCS8qIE5UIG1WIFRyYW5zIG1W IGRiICAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHgzNSwgMHgzRiwgMHgwMCwgMHgwMCB9IH0s CS8qIDM1MCAgIDM1MCAgICAgIDAuMCAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHg0RiwgMHgz NywgMHgwMCwgMHgwOCB9IH0sCS8qIDM1MCAgIDUwMCAgICAgIDMuMSAgICovCj4gQEAgLTQ4Miw3 ICs2NDIsMTIgQEAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkg aWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF8KPiAgCXsgLmNubCA9IHsgMHg2LCAw eDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogOTAwICAgOTAwICAgICAgMC4wICAgKi8KPiAg fTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGlj bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNf ZWRwX2hicjMgPSB7Cj4gKwkuZW50cmllcyA9IF9pY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfZWRwX2hicjMsCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9pY2xfY29tYm9fcGh5 X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjMpLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHVu aW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX2ljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0 aW9uc19oZG1pW10gPSB7Cj4gIAkJCQkJCQkvKiBOVCBtViBUcmFucyBtViBkYiAgICAqLwo+ICAJ eyAuY25sID0geyAweEEsIDB4NjAsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiA0NTAgICA0NTAg ICAgICAwLjAgICAqLwo+ICAJeyAuY25sID0geyAweEIsIDB4NzMsIDB4MzYsIDB4MDAsIDB4MDkg fSB9LAkvKiA0NTAgICA2NTAgICAgICAzLjIgICAqLwo+IEBAIC00OTMsNyArNjU4LDEyIEBAIHN0 YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGljbF9jb21ib19waHlf ZGRpX3RyYW5zbGF0aW9uc19oZG1pCj4gIAl7IC5jbmwgPSB7IDB4NiwgMHg3RiwgMHgzNSwgMHgw MCwgMHgwQSB9IH0sCS8qIDYwMCAgIDg1MCAgICAgIDMuMCAgICovCj4gIH07Cj4gIAo+IC1zdGF0 aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBlaGxfY29tYm9fcGh5X2Rk aV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlf YnVmX3RyYW5zIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pID0gewo+ICsJLmVu dHJpZXMgPSBfaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWksCj4gKwkubnVtX2Vu dHJpZXMgPSBBUlJBWV9TSVpFKF9pY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaSks Cj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRy eSBfZWhsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7Cj4gIAkJCQkJCQkvKiBO VCBtViBUcmFucyBtViBkYiAgICAqLwo+ICAJeyAuY25sID0geyAweEEsIDB4MzMsIDB4M0YsIDB4 MDAsIDB4MDAgfSB9LAkvKiAzNTAgICAzNTAgICAgICAwLjAgICAqLwo+ICAJeyAuY25sID0geyAw eEEsIDB4NDcsIDB4MzYsIDB4MDAsIDB4MDkgfSB9LAkvKiAzNTAgICA1MDAgICAgICAzLjEgICAq Lwo+IEBAIC01MDcsNyArNjc3LDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5IGVobF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcFtdCj4gIAl7IC5j bmwgPSB7IDB4NiwgMHg3RiwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDkwMCAgIDkwMCAgICAg IDAuMCAgICovCj4gIH07Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSBqc2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicltdID0gewo+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgZWhsX2NvbWJvX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2RwID0gewo+ICsJLmVudHJpZXMgPSBfZWhsX2NvbWJvX3BoeV9kZGlf dHJhbnNsYXRpb25zX2RwLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfZWhsX2NvbWJv X3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bmlv biBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9qc2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfZWRwX2hicltdID0gewo+ICAJCQkJCQkJLyogTlQgbVYgVHJhbnMgbVYgZGIgICAgKi8KPiAg CXsgLmNubCA9IHsgMHg4LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogMjAwICAgMjAw ICAgICAgMC4wICAgKi8KPiAgCXsgLmNubCA9IHsgMHg4LCAweDdGLCAweDM4LCAweDAwLCAweDA3 IH0gfSwJLyogMjAwICAgMjUwICAgICAgMS45ICAgKi8KPiBAQCAtNTIxLDcgKzY5NiwxMiBAQCBz dGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBqc2xfY29tYm9fcGh5 X2RkaV90cmFuc2xhdGlvbnNfZWRwXwo+ICAJeyAuY25sID0geyAweEEsIDB4MzUsIDB4M0YsIDB4 MDAsIDB4MDAgfSB9LAkvKiAzNTAgICAzNTAgICAgICAwLjAgICAqLwo+ICB9Owo+ICAKPiAtc3Rh dGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkganNsX2NvbWJvX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyW10gPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50 ZWxfZGRpX2J1Zl90cmFucyBqc2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hiciA9 IHsKPiArCS5lbnRyaWVzID0gX2pzbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJy LAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfanNsX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2VkcF9oYnIpLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2Rk aV9idWZfdHJhbnNfZW50cnkgX2pzbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJy MltdID0gewo+ICAJCQkJCQkJLyogTlQgbVYgVHJhbnMgbVYgZGIgICAgKi8KPiAgCXsgLmNubCA9 IHsgMHg4LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogMjAwICAgMjAwICAgICAgMC4w ICAgKi8KPiAgCXsgLmNubCA9IHsgMHg4LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyog MjAwICAgMjUwICAgICAgMS45ICAgKi8KPiBAQCAtNTM1LDcgKzcxNSwxMiBAQCBzdGF0aWMgY29u c3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBqc2xfY29tYm9fcGh5X2RkaV90cmFu c2xhdGlvbnNfZWRwXwo+ICAJeyAuY25sID0geyAweEEsIDB4MzUsIDB4M0YsIDB4MDAsIDB4MDAg fSB9LAkvKiAzNTAgICAzNTAgICAgICAwLjAgICAqLwo+ICB9Owo+ICAKPiAtc3RhdGljIGNvbnN0 IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2RwX3Jicl9oYnJbXSA9IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlf YnVmX3RyYW5zIGpzbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMiA9IHsKPiAr CS5lbnRyaWVzID0gX2pzbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMiwKPiAr CS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2pzbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9u c19lZHBfaGJyMiksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1 Zl90cmFuc19lbnRyeSBfZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX3Jicl9oYnJb XSA9IHsKPiAgCQkJCQkJCS8qIE5UIG1WIFRyYW5zIG1WIGRiICAgICovCj4gIAl7IC5jbmwgPSB7 IDB4QSwgMHgzMiwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDM1MCAgIDM1MCAgICAgIDAuMCAg ICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHg0OCwgMHgzNSwgMHgwMCwgMHgwQSB9IH0sCS8qIDM1 MCAgIDUwMCAgICAgIDMuMSAgICovCj4gQEAgLTU0OSw3ICs3MzQsMTIgQEAgc3RhdGljIGNvbnN0 IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2RwX3IKPiAgCXsgLmNubCA9IHsgMHg2LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0g fSwJLyogOTAwICAgOTAwICAgICAgMC4wICAgKi8KPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1 bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGRnMV9jb21ib19waHlfZGRpX3RyYW5zbGF0 aW9uc19kcF9oYnIyX2hicjNbXSA9IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlf YnVmX3RyYW5zIGRnMV9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9yYnJfaGJyID0gewo+ ICsJLmVudHJpZXMgPSBfZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX3Jicl9oYnIs Cj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9kZzFfY29tYm9fcGh5X2RkaV90cmFuc2xh dGlvbnNfZHBfcmJyX2hiciksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxf ZGRpX2J1Zl90cmFuc19lbnRyeSBfZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hi cjJfaGJyM1tdID0gewo+ICAJCQkJCQkJLyogTlQgbVYgVHJhbnMgbVYgZGIgICAgKi8KPiAgCXsg LmNubCA9IHsgMHhBLCAweDMyLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogMzUwICAgMzUwICAg ICAgMC4wICAgKi8KPiAgCXsgLmNubCA9IHsgMHhBLCAweDQ4LCAweDM1LCAweDAwLCAweDBBIH0g fSwJLyogMzUwICAgNTAwICAgICAgMy4xICAgKi8KPiBAQCAtNTYzLDcgKzc1MywxMiBAQCBzdGF0 aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBkZzFfY29tYm9fcGh5X2Rk aV90cmFuc2xhdGlvbnNfZHBfaAo+ICAJeyAuY25sID0geyAweDYsIDB4N0YsIDB4M0YsIDB4MDAs IDB4MDAgfSB9LAkvKiA5MDAgICA5MDAgICAgICAwLjAgICAqLwo+ICB9Owo+ICAKPiAtc3RhdGlj IGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgaWNsX21nX3BoeV9kZGlfdHJh bnNsYXRpb25zX3Jicl9oYnJbXSA9IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlf YnVmX3RyYW5zIGRnMV9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2hicjMgPSB7 Cj4gKwkuZW50cmllcyA9IF9kZzFfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9o YnIzLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfZGcxX2NvbWJvX3BoeV9kZGlfdHJh bnNsYXRpb25zX2RwX2hicjJfaGJyMyksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5pb24g aW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBfaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX3Ji cl9oYnJbXSA9IHsKPiAgCQkJCQkvKiBWb2x0YWdlIHN3aW5nICBwcmUtZW1waGFzaXMgKi8KPiAg CXsgLm1nID0geyAweDE4LCAweDAwLCAweDAwIH0gfSwJLyogMCAgICAgICAgICAgICAgMCAgICov Cj4gIAl7IC5tZyA9IHsgMHgxRCwgMHgwMCwgMHgwNSB9IH0sCS8qIDAgICAgICAgICAgICAgIDEg ICAqLwo+IEBAIC01NzcsNyArNzcyLDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlf YnVmX3RyYW5zX2VudHJ5IGljbF9tZ19waHlfZGRpX3RyYW5zbGF0aW9uc19yYnJfaGJyCj4gIAl7 IC5tZyA9IHsgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDMgICAgICAgICAgICAgIDAgICAqLwo+ ICB9Owo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkg aWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hicjJfaGJyM1tdID0gewo+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25z X3Jicl9oYnIgPSB7Cj4gKwkuZW50cmllcyA9IF9pY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNf cmJyX2hiciwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2ljbF9tZ19waHlfZGRpX3Ry YW5zbGF0aW9uc19yYnJfaGJyKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRl bF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9pY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGJyMl9o YnIzW10gPSB7Cj4gIAkJCQkJLyogVm9sdGFnZSBzd2luZyAgcHJlLWVtcGhhc2lzICovCj4gIAl7 IC5tZyA9IHsgMHgxOCwgMHgwMCwgMHgwMCB9IH0sCS8qIDAgICAgICAgICAgICAgIDAgICAqLwo+ ICAJeyAubWcgPSB7IDB4MUQsIDB4MDAsIDB4MDUgfSB9LAkvKiAwICAgICAgICAgICAgICAxICAg Ki8KPiBAQCAtNTkxLDcgKzc5MSwxMiBAQCBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1 Zl90cmFuc19lbnRyeSBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGJyMl9oYgo+ICAJeyAu bWcgPSB7IDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiAzICAgICAgICAgICAgICAwICAgKi8KPiAg fTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGlj bF9tZ19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGJyMl9o YnIzID0gewo+ICsJLmVudHJpZXMgPSBfaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hicjJf aGJyMywKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX2ljbF9tZ19waHlfZGRpX3RyYW5z bGF0aW9uc19oYnIyX2hicjMpLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVs X2RkaV9idWZfdHJhbnNfZW50cnkgX2ljbF9tZ19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10g PSB7Cj4gIAkJCQkJLyogSERNSSBQcmVzZXQJVlMJUHJlLWVtcGggKi8KPiAgCXsgLm1nID0geyAw eDFBLCAweDAsIDB4MCB9IH0sCS8qIDEJCTQwMG1WCTBkQiAqLwo+ICAJeyAubWcgPSB7IDB4MjAs IDB4MCwgMHgwIH0gfSwJLyogMgkJNTAwbVYJMGRCICovCj4gQEAgLTYwNSw3ICs4MTAsMTIgQEAg c3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgaWNsX21nX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2hkbWlbXQo+ICAJeyAubWcgPSB7IDB4MzYsIDB4MCwgMHg5IH0gfSwJ LyogMTAJCUZ1bGwJLTMgZEIgKi8KPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRl bF9kZGlfYnVmX3RyYW5zX2VudHJ5IHRnbF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJy W10gPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBpY2xfbWdf cGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaSA9IHsKPiArCS5lbnRyaWVzID0gX2ljbF9tZ19waHlf ZGRpX3RyYW5zbGF0aW9uc19oZG1pLAo+ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfaWNs X21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkpLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0 IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX3RnbF9ka2xfcGh5X2RkaV90cmFuc2xh dGlvbnNfZHBfaGJyW10gPSB7Cj4gIAkJCQkJLyogVlMJcHJlLWVtcAlOb24tdHJhbnMgbVYJUHJl LWVtcGggZEIgKi8KPiAgCXsgLmRrbCA9IHsgMHg3LCAweDAsIDB4MDAgfSB9LAkvKiAwCTAJNDAw bVYJCTAgZEIgKi8KPiAgCXsgLmRrbCA9IHsgMHg1LCAweDAsIDB4MDUgfSB9LAkvKiAwCTEJNDAw bVYJCTMuNSBkQiAqLwo+IEBAIC02MTksNyArODI5LDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBp bnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHRnbF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBf aGJyCj4gIAl7IC5ka2wgPSB7IDB4MCwgMHgwLCAweDAwIH0gfSwJLyogMwkwCTEyMDBtVgkJMCBk QiBIRE1JIGRlZmF1bHQgKi8KPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5IHRnbF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMltd ID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgdGdsX2RrbF9w aHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIgPSB7Cj4gKwkuZW50cmllcyA9IF90Z2xfZGtsX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2RwX2hiciwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUo X3RnbF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyKSwKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF90Z2xfZGtsX3BoeV9kZGlf dHJhbnNsYXRpb25zX2RwX2hicjJbXSA9IHsKPiAgCQkJCQkvKiBWUwlwcmUtZW1wCU5vbi10cmFu cyBtVglQcmUtZW1waCBkQiAqLwo+ICAJeyAuZGtsID0geyAweDcsIDB4MCwgMHgwMCB9IH0sCS8q IDAJMAk0MDBtVgkJMCBkQiAqLwo+ICAJeyAuZGtsID0geyAweDUsIDB4MCwgMHgwNSB9IH0sCS8q IDAJMQk0MDBtVgkJMy41IGRCICovCj4gQEAgLTYzMyw3ICs4NDgsMTIgQEAgc3RhdGljIGNvbnN0 IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0 aW9uc19kcF9oYnIKPiAgCXsgLmRrbCA9IHsgMHgwLCAweDAsIDB4MDAgfSB9LAkvKiAzCTAJMTIw MG1WCQkwIGRCIEhETUkgZGVmYXVsdCAqLwo+ICB9Owo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9u IGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19o ZG1pW10gPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyB0Z2xf ZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIgPSB7Cj4gKwkuZW50cmllcyA9IF90Z2xf ZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIsCj4gKwkubnVtX2VudHJpZXMgPSBBUlJB WV9TSVpFKF90Z2xfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIpLAo+ICt9Owo+ICsK PiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX3RnbF9ka2xf cGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0gewo+ICAJCQkJCS8qIEhETUkgUHJlc2V0CVZT CVByZS1lbXBoICovCj4gIAl7IC5ka2wgPSB7IDB4NywgMHgwLCAweDAgfSB9LAkvKiAxCQk0MDBt VgkwZEIgKi8KPiAgCXsgLmRrbCA9IHsgMHg2LCAweDAsIDB4MCB9IH0sCS8qIDIJCTUwMG1WCTBk QiAqLwo+IEBAIC02NDcsNyArODY3LDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlf YnVmX3RyYW5zX2VudHJ5IHRnbF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdCj4gIAl7 IC5ka2wgPSB7IDB4MCwgMHgwLCAweEEgfSB9LAkvKiAxMAkJRnVsbAktMyBkQiAqLwo+ICB9Owo+ ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgdGdsX2Nv bWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicltdID0gewo+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IGludGVsX2RkaV9idWZfdHJhbnMgdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1p ID0gewo+ICsJLmVudHJpZXMgPSBfdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLAo+ ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9u c19oZG1pKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3Ry YW5zX2VudHJ5IF90Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyW10gPSB7Cj4g IAkJCQkJCQkvKiBOVCBtViBUcmFucyBtViBkYiAgICAqLwo+ICAJeyAuY25sID0geyAweEEsIDB4 MzIsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiAzNTAgICAzNTAgICAgICAwLjAgICAqLwo+ICAJ eyAuY25sID0geyAweEEsIDB4NEYsIDB4MzcsIDB4MDAsIDB4MDggfSB9LAkvKiAzNTAgICA1MDAg ICAgICAzLjEgICAqLwo+IEBAIC02NjEsNyArODg2LDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBp bnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19k cF9oCj4gIAl7IC5jbmwgPSB7IDB4NiwgMHg3RiwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDkw MCAgIDkwMCAgICAgIDAuMCAgICovCj4gIH07Cj4gIAo+IC1zdGF0aWMgY29uc3QgdW5pb24gaW50 ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSB0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBf aGJyMltdID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgdGds X2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hiciA9IHsKPiArCS5lbnRyaWVzID0gX3Rn bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIsCj4gKwkubnVtX2VudHJpZXMgPSBB UlJBWV9TSVpFKF90Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyKSwKPiArfTsK PiArCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF90Z2xf Y29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMltdID0gewo+ICAJCQkJCQkJLyogTlQg bVYgVHJhbnMgbVYgZGIgICAgKi8KPiAgCXsgLmNubCA9IHsgMHhBLCAweDM1LCAweDNGLCAweDAw LCAweDAwIH0gfSwJLyogMzUwICAgMzUwICAgICAgMC4wICAgKi8KPiAgCXsgLmNubCA9IHsgMHhB LCAweDRGLCAweDM3LCAweDAwLCAweDA4IH0gfSwJLyogMzUwICAgNTAwICAgICAgMy4xICAgKi8K PiBAQCAtNjc1LDcgKzkwNSwxMiBAQCBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSB0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaAo+ICAJeyAuY25s ID0geyAweDYsIDB4N0YsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiA5MDAgICA5MDAgICAgICAw LjAgICAqLwo+ICB9Owo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJh bnNfZW50cnkgdGdsX3V5X2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJbXSA9IHsK PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIHRnbF9jb21ib19waHlf ZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyID0gewo+ICsJLmVudHJpZXMgPSBfdGdsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIsCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpF KF90Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMiksCj4gK307Cj4gKwo+ICtz dGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBfdGdsX3V5X2NvbWJv X3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJbXSA9IHsKPiAgCQkJCQkJCS8qIE5UIG1WIFRy YW5zIG1WIGRiICAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHgzNSwgMHgzRiwgMHgwMCwgMHgw MCB9IH0sCS8qIDM1MCAgIDM1MCAgICAgIDAuMCAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHg0 RiwgMHgzNiwgMHgwMCwgMHgwOSB9IH0sCS8qIDM1MCAgIDUwMCAgICAgIDMuMSAgICovCj4gQEAg LTY4OSwxMSArOTI0LDE2IEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5z X2VudHJ5IHRnbF91eV9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kCj4gIAl7IC5jbmwgPSB7 IDB4NiwgMHg3RiwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDkwMCAgIDkwMCAgICAgIDAuMCAg ICovCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMg dGdsX3V5X2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIgPSB7Cj4gKwkuZW50cmll cyA9IF90Z2xfdXlfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMiwKPiArCS5udW1f ZW50cmllcyA9IEFSUkFZX1NJWkUoX3RnbF91eV9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19k cF9oYnIyKSwKPiArfTsKPiArCj4gIC8qCj4gICAqIENsb25lZCB0aGUgSE9CTCBlbnRyeSB0byBj b21wbHkgd2l0aCB0aGUgdm9sdGFnZSBhbmQgcHJlLWVtcGhhc2lzIGVudHJpZXMKPiAgICogdGhh dCBEaXNwbGF5UG9ydCBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzCj4gICAqLwo+IC1zdGF0aWMgY29u c3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSB0Z2xfY29tYm9fcGh5X2RkaV90cmFu c2xhdGlvbnNfZWRwX2hicjJfaG9ibFtdID0gewo+ICtzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxf ZGRpX2J1Zl90cmFuc19lbnRyeSBfdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9o YnIyX2hvYmxbXSA9IHsKPiAgCQkJCQkJCS8qIFZTCXByZS1lbXAJKi8KPiAgCXsgLmNubCA9IHsg MHg2LCAweDdGLCAweDNGLCAweDAwLCAweDAwIH0gfSwJLyogMAkwCSovCj4gIAl7IC5jbmwgPSB7 IDB4NiwgMHg3RiwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDAJMQkqLwo+IEBAIC03MDYsNyAr OTQ2LDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHRn bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfCj4gIAl7IC5jbmwgPSB7IDB4NiwgMHg3 RiwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDIJMQkqLwo+ICB9Owo+ICAKPiAtc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgcmtsX2NvbWJvX3BoeV9kZGlfdHJh bnNsYXRpb25zX2RwX2hicltdID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9i dWZfdHJhbnMgdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyX2hvYmwgPSB7 Cj4gKwkuZW50cmllcyA9IF90Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjJf aG9ibCwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX3RnbF9jb21ib19waHlfZGRpX3Ry YW5zbGF0aW9uc19lZHBfaGJyMl9ob2JsKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bmlv biBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9ya2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfZHBfaGJyW10gPSB7Cj4gIAkJCQkJCQkvKiBOVCBtViBUcmFucyBtViBkYiAgICAqLwo+ICAJ eyAuY25sID0geyAweEEsIDB4MkYsIDB4M0YsIDB4MDAsIDB4MDAgfSB9LAkvKiAzNTAgICAzNTAg ICAgICAwLjAgICAqLwo+ICAJeyAuY25sID0geyAweEEsIDB4NEYsIDB4MzcsIDB4MDAsIDB4MDgg fSB9LAkvKiAzNTAgICA1MDAgICAgICAzLjEgICAqLwo+IEBAIC03MjAsNyArOTY1LDEyIEBAIHN0 YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IHJrbF9jb21ib19waHlf ZGRpX3RyYW5zbGF0aW9uc19kcF9oCj4gIAl7IC5jbmwgPSB7IDB4NiwgMHg3RiwgMHgzRiwgMHgw MCwgMHgwMCB9IH0sCS8qIDkwMCAgIDkwMCAgICAgIDAuMCAgICovCj4gIH07Cj4gIAo+IC1zdGF0 aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSBya2xfY29tYm9fcGh5X2Rk aV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzW10gPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfZGRpX2J1Zl90cmFucyBya2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJy ID0gewo+ICsJLmVudHJpZXMgPSBfcmtsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hi ciwKPiArCS5udW1fZW50cmllcyA9IEFSUkFZX1NJWkUoX3JrbF9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9oYnIpLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2Rk aV9idWZfdHJhbnNfZW50cnkgX3JrbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIy X2hicjNbXSA9IHsKPiAgCQkJCQkJCS8qIE5UIG1WIFRyYW5zIG1WIGRiICAgICovCj4gIAl7IC5j bmwgPSB7IDB4QSwgMHgzNSwgMHgzRiwgMHgwMCwgMHgwMCB9IH0sCS8qIDM1MCAgIDM1MCAgICAg IDAuMCAgICovCj4gIAl7IC5jbmwgPSB7IDB4QSwgMHg1MCwgMHgzOCwgMHgwMCwgMHgwNyB9IH0s CS8qIDM1MCAgIDUwMCAgICAgIDMuMSAgICovCj4gQEAgLTczNCw3ICs5ODQsMTIgQEAgc3RhdGlj IGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgcmtsX2NvbWJvX3BoeV9kZGlf dHJhbnNsYXRpb25zX2RwX2gKPiAgCXsgLmNubCA9IHsgMHg2LCAweDdGLCAweDNGLCAweDAwLCAw eDAwIH0gfSwJLyogOTAwICAgOTAwICAgICAgMC4wICAgKi8KPiAgfTsKPiAgCj4gLXN0YXRpYyBj b25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IGFkbHBfZGtsX3BoeV9kZGlfdHJh bnNsYXRpb25zX2RwX2hicltdID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9i dWZfdHJhbnMgcmtsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJyMyA9IHsK PiArCS5lbnRyaWVzID0gX3JrbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2hi cjMsCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9ya2xfY29tYm9fcGh5X2RkaV90cmFu c2xhdGlvbnNfZHBfaGJyMl9oYnIzKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bmlvbiBp bnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5IF9hZGxwX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19k cF9oYnJbXSA9IHsKPiAgCQkJCQkvKiBWUwlwcmUtZW1wCU5vbi10cmFucyBtVglQcmUtZW1waCBk QiAqLwo+ICAJeyAuZGtsID0geyAweDcsIDB4MCwgMHgwMSB9IH0sCS8qIDAJMAk0MDBtVgkJMCBk QiAqLwo+ICAJeyAuZGtsID0geyAweDUsIDB4MCwgMHgwNiB9IH0sCS8qIDAJMQk0MDBtVgkJMy41 IGRCICovCj4gQEAgLTc0OCw3ICsxMDAzLDEyIEBAIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5IGFkbHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hiCj4g IAl7IC5ka2wgPSB7IDB4MCwgMHgwLCAweDAwIH0gfSwJLyogMwkwCTEyMDBtVgkJMCBkQiAqLwo+ ICB9Owo+ICAKPiAtc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkg YWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzW10gPSB7Cj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyBhZGxwX2RrbF9waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9oYnIgPSB7Cj4gKwkuZW50cmllcyA9IF9hZGxwX2RrbF9waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9oYnIsCj4gKwkubnVtX2VudHJpZXMgPSBBUlJBWV9TSVpFKF9hZGxwX2RrbF9w aHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIpLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHVu aW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgX2FkbHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRp b25zX2RwX2hicjJfaGJyM1tdID0gewo+ICAJCQkJCS8qIFZTCXByZS1lbXAJTm9uLXRyYW5zIG1W CVByZS1lbXBoIGRCICovCj4gIAl7IC5ka2wgPSB7IDB4NywgMHgwLCAweDAwIH0gfSwJLyogMAkw CTQwMG1WCQkwIGRCICovCj4gIAl7IC5ka2wgPSB7IDB4NSwgMHgwLCAweDA0IH0gfSwJLyogMAkx CTQwMG1WCQkzLjUgZEIgKi8KPiBAQCAtNzYyLDkgKzEwMjIsMTQgQEAgc3RhdGljIGNvbnN0IHVu aW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgYWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlv bnNfZHBfaGIKPiAgCXsgLmRrbCA9IHsgMHgwLCAweDAsIDB4MDAgfSB9LAkvKiAzCTAJMTIwMG1W CQkwIGRCICovCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZf dHJhbnMgYWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzID0gewo+ICsJ LmVudHJpZXMgPSBfYWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzLAo+ ICsJLm51bV9lbnRyaWVzID0gQVJSQVlfU0laRShfYWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlv bnNfZHBfaGJyMl9oYnIzKSwKPiArfTsKPiArCj4gIGJvb2wgaXNfaG9ibF9idWZfdHJhbnMoY29u c3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqdGFibGUpCj4gIHsKPiAtCXJldHVy biB0YWJsZSA9PSB0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjJfaG9ibDsK PiArCXJldHVybiB0YWJsZSA9PSB0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hi cjJfaG9ibC5lbnRyaWVzOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSAqCj4gQEAgLTc3MywxMSArMTAzOCwxMSBAQCBiZHdfZ2V0X2J1Zl90 cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Cj4gIAo+ICAJaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcpIHsKPiAt CQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShiZHdfZGRpX3RyYW5zbGF0aW9uc19lZHApOwo+IC0J CXJldHVybiBiZHdfZGRpX3RyYW5zbGF0aW9uc19lZHA7Cj4gKwkJKm5fZW50cmllcyA9IGJkd19k ZGlfdHJhbnNsYXRpb25zX2VkcC5udW1fZW50cmllczsKPiArCQlyZXR1cm4gYmR3X2RkaV90cmFu c2xhdGlvbnNfZWRwLmVudHJpZXM7Cj4gIAl9IGVsc2Ugewo+IC0JCSpuX2VudHJpZXMgPSBBUlJB WV9TSVpFKGJkd19kZGlfdHJhbnNsYXRpb25zX2RwKTsKPiAtCQlyZXR1cm4gYmR3X2RkaV90cmFu c2xhdGlvbnNfZHA7Cj4gKwkJKm5fZW50cmllcyA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2RwLm51 bV9lbnRyaWVzOwo+ICsJCXJldHVybiBiZHdfZGRpX3RyYW5zbGF0aW9uc19kcC5lbnRyaWVzOwo+ ICAJfQo+ICB9Cj4gIAo+IEBAIC03ODcsMTQgKzEwNTIsMTQgQEAgc2tsX2dldF9idWZfdHJhbnNf ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Cj4gIAo+ICAJaWYgKElTX1NLTF9VTFgoZGV2X3ByaXYpKSB7Cj4gLQkJKm5fZW50cmllcyA9 IEFSUkFZX1NJWkUoc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4gLQkJcmV0dXJuIHNrbF95 X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4gKwkJKm5fZW50cmllcyA9IHNrbF95X2RkaV90cmFuc2xh dGlvbnNfZHAubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIHNrbF95X2RkaV90cmFuc2xhdGlvbnNf ZHAuZW50cmllczsKPiAgCX0gZWxzZSBpZiAoSVNfU0tMX1VMVChkZXZfcHJpdikpIHsKPiAtCQkq bl9lbnRyaWVzID0gQVJSQVlfU0laRShza2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwKTsKPiAtCQly ZXR1cm4gc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19kcDsKPiArCQkqbl9lbnRyaWVzID0gc2tsX3Vf ZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50cmllczsKPiArCQlyZXR1cm4gc2tsX3VfZGRpX3Ry YW5zbGF0aW9uc19kcC5lbnRyaWVzOwo+ICAJfSBlbHNlIHsKPiAtCQkqbl9lbnRyaWVzID0gQVJS QVlfU0laRShza2xfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4gLQkJcmV0dXJuIHNrbF9kZGlfdHJh bnNsYXRpb25zX2RwOwo+ICsJCSpuX2VudHJpZXMgPSBza2xfZGRpX3RyYW5zbGF0aW9uc19kcC5u dW1fZW50cmllczsKPiArCQlyZXR1cm4gc2tsX2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsK PiAgCX0KPiAgfQo+ICAKPiBAQCAtODA2LDE2ICsxMDcxLDE2IEBAIGtibF9nZXRfYnVmX3RyYW5z X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKPiAgCWlm IChJU19LQkxfVUxYKGRldl9wcml2KSB8fAo+ICAJICAgIElTX0NGTF9VTFgoZGV2X3ByaXYpIHx8 Cj4gIAkgICAgSVNfQ01MX1VMWChkZXZfcHJpdikpIHsKPiAtCQkqbl9lbnRyaWVzID0gQVJSQVlf U0laRShrYmxfeV9kZGlfdHJhbnNsYXRpb25zX2RwKTsKPiAtCQlyZXR1cm4ga2JsX3lfZGRpX3Ry YW5zbGF0aW9uc19kcDsKPiArCQkqbl9lbnRyaWVzID0ga2JsX3lfZGRpX3RyYW5zbGF0aW9uc19k cC5udW1fZW50cmllczsKPiArCQlyZXR1cm4ga2JsX3lfZGRpX3RyYW5zbGF0aW9uc19kcC5lbnRy aWVzOwo+ICAJfSBlbHNlIGlmIChJU19LQkxfVUxUKGRldl9wcml2KSB8fAo+ICAJCSAgIElTX0NG TF9VTFQoZGV2X3ByaXYpIHx8Cj4gIAkJICAgSVNfQ01MX1VMVChkZXZfcHJpdikpIHsKPiAtCQkq bl9lbnRyaWVzID0gQVJSQVlfU0laRShrYmxfdV9kZGlfdHJhbnNsYXRpb25zX2RwKTsKPiAtCQly ZXR1cm4ga2JsX3VfZGRpX3RyYW5zbGF0aW9uc19kcDsKPiArCQkqbl9lbnRyaWVzID0ga2JsX3Vf ZGRpX3RyYW5zbGF0aW9uc19kcC5udW1fZW50cmllczsKPiArCQlyZXR1cm4ga2JsX3VfZGRpX3Ry YW5zbGF0aW9uc19kcC5lbnRyaWVzOwo+ICAJfSBlbHNlIHsKPiAtCQkqbl9lbnRyaWVzID0gQVJS QVlfU0laRShrYmxfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4gLQkJcmV0dXJuIGtibF9kZGlfdHJh bnNsYXRpb25zX2RwOwo+ICsJCSpuX2VudHJpZXMgPSBrYmxfZGRpX3RyYW5zbGF0aW9uc19kcC5u dW1fZW50cmllczsKPiArCQlyZXR1cm4ga2JsX2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmllczsK PiAgCX0KPiAgfQo+ICAKPiBAQCAtODI5LDE3ICsxMDk0LDE3IEBAIHNrbF9nZXRfYnVmX3RyYW5z X2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIAkJ ICAgIElTX0tCTF9VTFgoZGV2X3ByaXYpIHx8Cj4gIAkJICAgIElTX0NGTF9VTFgoZGV2X3ByaXYp IHx8Cj4gIAkJICAgIElTX0NNTF9VTFgoZGV2X3ByaXYpKSB7Cj4gLQkJCSpuX2VudHJpZXMgPSBB UlJBWV9TSVpFKHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZWRwKTsKPiAtCQkJcmV0dXJuIHNrbF95 X2RkaV90cmFuc2xhdGlvbnNfZWRwOwo+ICsJCQkqbl9lbnRyaWVzID0gc2tsX3lfZGRpX3RyYW5z bGF0aW9uc19lZHAubnVtX2VudHJpZXM7Cj4gKwkJCXJldHVybiBza2xfeV9kZGlfdHJhbnNsYXRp b25zX2VkcC5lbnRyaWVzOwo+ICAJCX0gZWxzZSBpZiAoSVNfU0tMX1VMVChkZXZfcHJpdikgfHwK PiAgCQkJICAgSVNfS0JMX1VMVChkZXZfcHJpdikgfHwKPiAgCQkJICAgSVNfQ0ZMX1VMVChkZXZf cHJpdikgfHwKPiAgCQkJICAgSVNfQ01MX1VMVChkZXZfcHJpdikpIHsKPiAtCQkJKm5fZW50cmll cyA9IEFSUkFZX1NJWkUoc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19lZHApOwo+IC0JCQlyZXR1cm4g c2tsX3VfZGRpX3RyYW5zbGF0aW9uc19lZHA7Cj4gKwkJCSpuX2VudHJpZXMgPSBza2xfdV9kZGlf dHJhbnNsYXRpb25zX2VkcC5udW1fZW50cmllczsKPiArCQkJcmV0dXJuIHNrbF91X2RkaV90cmFu c2xhdGlvbnNfZWRwLmVudHJpZXM7Cj4gIAkJfSBlbHNlIHsKPiAtCQkJKm5fZW50cmllcyA9IEFS UkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwKTsKPiAtCQkJcmV0dXJuIHNrbF9kZGlf dHJhbnNsYXRpb25zX2VkcDsKPiArCQkJKm5fZW50cmllcyA9IHNrbF9kZGlfdHJhbnNsYXRpb25z X2VkcC5udW1fZW50cmllczsKPiArCQkJcmV0dXJuIHNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcC5l bnRyaWVzOwo+ICAJCX0KPiAgCX0KPiAgCj4gQEAgLTg1OCwxMSArMTEyMywxMSBAQCBza2xfZ2V0 X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpu X2VudHJpZXMpCj4gIAkgICAgSVNfS0JMX1VMWChkZXZfcHJpdikgfHwKPiAgCSAgICBJU19DRkxf VUxYKGRldl9wcml2KSB8fAo+ICAJICAgIElTX0NNTF9VTFgoZGV2X3ByaXYpKSB7Cj4gLQkJKm5f ZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19oZG1pKTsKPiAtCQly ZXR1cm4gc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19oZG1pOwo+ICsJCSpuX2VudHJpZXMgPSBza2xf eV9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIHNrbF95X2Rk aV90cmFuc2xhdGlvbnNfaGRtaS5lbnRyaWVzOwo+ICAJfSBlbHNlIHsKPiAtCQkqbl9lbnRyaWVz ID0gQVJSQVlfU0laRShza2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pKTsKPiAtCQlyZXR1cm4gc2ts X2RkaV90cmFuc2xhdGlvbnNfaGRtaTsKPiArCQkqbl9lbnRyaWVzID0gc2tsX2RkaV90cmFuc2xh dGlvbnNfaGRtaS5udW1fZW50cmllczsKPiArCQlyZXR1cm4gc2tsX2RkaV90cmFuc2xhdGlvbnNf aGRtaS5lbnRyaWVzOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC04OTMsMTEgKzExNTgsMTEgQEAgaHN3 X2dldF9idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9l bnRyaWVzKQo+ICAJCSpuX2VudHJpZXMgPSBza2xfYnVmX3RyYW5zX251bV9lbnRyaWVzKGVuY29k ZXItPnBvcnQsICpuX2VudHJpZXMpOwo+ICAJCXJldHVybiBkZGlfdHJhbnNsYXRpb25zOwo+ICAJ fSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gLQkJKm5fZW50cmllcyA9IEFS UkFZX1NJWkUoYmR3X2RkaV90cmFuc2xhdGlvbnNfZHApOwo+IC0JCXJldHVybiAgYmR3X2RkaV90 cmFuc2xhdGlvbnNfZHA7Cj4gKwkJKm5fZW50cmllcyA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2Rw Lm51bV9lbnRyaWVzOwo+ICsJCXJldHVybiAgYmR3X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50cmll czsKPiAgCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKPiAtCQkqbl9lbnRyaWVz ID0gQVJSQVlfU0laRShoc3dfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4gLQkJcmV0dXJuIGhzd19k ZGlfdHJhbnNsYXRpb25zX2RwOwo+ICsJCSpuX2VudHJpZXMgPSBoc3dfZGRpX3RyYW5zbGF0aW9u c19kcC5udW1fZW50cmllczsKPiArCQlyZXR1cm4gaHN3X2RkaV90cmFuc2xhdGlvbnNfZHAuZW50 cmllczsKPiAgCX0KPiAgCj4gIAkqbl9lbnRyaWVzID0gMDsKPiBAQCAtOTE3LDggKzExODIsOCBA QCBoc3dfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGlu dCAqbl9lbnRyaWVzKQo+ICAJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4g IAkJcmV0dXJuIGJkd19nZXRfYnVmX3RyYW5zX2VkcChlbmNvZGVyLCBuX2VudHJpZXMpOwo+ICAJ fSBlbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSkgewo+IC0JCSpuX2VudHJpZXMgPSBBUlJB WV9TSVpFKGhzd19kZGlfdHJhbnNsYXRpb25zX2RwKTsKPiAtCQlyZXR1cm4gaHN3X2RkaV90cmFu c2xhdGlvbnNfZHA7Cj4gKwkJKm5fZW50cmllcyA9IGhzd19kZGlfdHJhbnNsYXRpb25zX2RwLm51 bV9lbnRyaWVzOwo+ICsJCXJldHVybiBoc3dfZGRpX3RyYW5zbGF0aW9uc19kcC5lbnRyaWVzOwo+ ICAJfQo+ICAKPiAgCSpuX2VudHJpZXMgPSAwOwo+IEBAIC05MzIsMTEgKzExOTcsMTEgQEAgaHN3 X2dldF9idWZfdHJhbnNfZmRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Cj4gIAo+ICAJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiAtCQkqbl9lbnRyaWVz ID0gQVJSQVlfU0laRShiZHdfZGRpX3RyYW5zbGF0aW9uc19mZGkpOwo+IC0JCXJldHVybiBiZHdf ZGRpX3RyYW5zbGF0aW9uc19mZGk7Cj4gKwkJKm5fZW50cmllcyA9IGJkd19kZGlfdHJhbnNsYXRp b25zX2ZkaS5udW1fZW50cmllczsKPiArCQlyZXR1cm4gYmR3X2RkaV90cmFuc2xhdGlvbnNfZmRp LmVudHJpZXM7Cj4gIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gLQkJKm5f ZW50cmllcyA9IEFSUkFZX1NJWkUoaHN3X2RkaV90cmFuc2xhdGlvbnNfZmRpKTsKPiAtCQlyZXR1 cm4gaHN3X2RkaV90cmFuc2xhdGlvbnNfZmRpOwo+ICsJCSpuX2VudHJpZXMgPSBoc3dfZGRpX3Ry YW5zbGF0aW9uc19mZGkubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIGhzd19kZGlfdHJhbnNsYXRp b25zX2ZkaS5lbnRyaWVzOwo+ICAJfQo+ICAKPiAgCSpuX2VudHJpZXMgPSAwOwo+IEBAIC05NTIs MTEgKzEyMTcsMTEgQEAgaHN3X2dldF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCWlmIChESVNQTEFZX1ZFUihkZXZfcHJpdikgPT0gOSAmJiAhSVNfQlJP WFRPTihkZXZfcHJpdikpIHsKPiAgCQlyZXR1cm4gc2tsX2dldF9idWZfdHJhbnNfaGRtaShkZXZf cHJpdiwgbl9lbnRyaWVzKTsKPiAgCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkg ewo+IC0JCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGJkd19kZGlfdHJhbnNsYXRpb25zX2hkbWkp Owo+IC0JCXJldHVybiBiZHdfZGRpX3RyYW5zbGF0aW9uc19oZG1pOwo+ICsJCSpuX2VudHJpZXMg PSBiZHdfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRyaWVzOwo+ICsJCXJldHVybiBiZHdf ZGRpX3RyYW5zbGF0aW9uc19oZG1pLmVudHJpZXM7Cj4gIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwo ZGV2X3ByaXYpKSB7Cj4gLQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoaHN3X2RkaV90cmFuc2xh dGlvbnNfaGRtaSk7Cj4gLQkJcmV0dXJuIGhzd19kZGlfdHJhbnNsYXRpb25zX2hkbWk7Cj4gKwkJ Km5fZW50cmllcyA9IGhzd19kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Cj4gKwkJ cmV0dXJuIGhzd19kZGlfdHJhbnNsYXRpb25zX2hkbWkuZW50cmllczsKPiAgCX0KPiAgCj4gIAkq bl9lbnRyaWVzID0gMDsKPiBAQCAtOTgxLDggKzEyNDYsOCBAQCBoc3dfZ2V0X2J1Zl90cmFucyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVs X2RkaV9idWZfdHJhbnNfZW50cnkgKgo+ICBieHRfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIHsKPiAtCSpuX2VudHJpZXMg PSBBUlJBWV9TSVpFKGJ4dF9kZGlfdHJhbnNsYXRpb25zX2RwKTsKPiAtCXJldHVybiBieHRfZGRp X3RyYW5zbGF0aW9uc19kcDsKPiArCSpuX2VudHJpZXMgPSBieHRfZGRpX3RyYW5zbGF0aW9uc19k cC5udW1fZW50cmllczsKPiArCXJldHVybiBieHRfZGRpX3RyYW5zbGF0aW9uc19kcC5lbnRyaWVz Owo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRy eSAqCj4gQEAgLTk5MSw4ICsxMjU2LDggQEAgYnh0X2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAKPiAg CWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7Cj4gLQkJKm5fZW50cmllcyA9IEFS UkFZX1NJWkUoYnh0X2RkaV90cmFuc2xhdGlvbnNfZWRwKTsKPiAtCQlyZXR1cm4gYnh0X2RkaV90 cmFuc2xhdGlvbnNfZWRwOwo+ICsJCSpuX2VudHJpZXMgPSBieHRfZGRpX3RyYW5zbGF0aW9uc19l ZHAubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIGJ4dF9kZGlfdHJhbnNsYXRpb25zX2VkcC5lbnRy aWVzOwo+ICAJfQo+ICAKPiAgCXJldHVybiBieHRfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVyLCBu X2VudHJpZXMpOwo+IEBAIC0xMDAxLDggKzEyNjYsOCBAQCBieHRfZ2V0X2J1Zl90cmFuc19lZHAo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ICBzdGF0aWMg Y29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gIGJ4dF9nZXRfYnVmX3Ry YW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQo+ ICB7Cj4gLQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShieHRfZGRpX3RyYW5zbGF0aW9uc19oZG1p KTsKPiAtCXJldHVybiBieHRfZGRpX3RyYW5zbGF0aW9uc19oZG1pOwo+ICsJKm5fZW50cmllcyA9 IGJ4dF9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Cj4gKwlyZXR1cm4gYnh0X2Rk aV90cmFuc2xhdGlvbnNfaGRtaS5lbnRyaWVzOwo+ICB9Cj4gIAo+ICBjb25zdCB1bmlvbiBpbnRl bF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiBAQCAtMTAyNCwxNCArMTI4OSwxNCBAQCBjbmxfZ2V0 X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50 cmllcykKPiAgCXUzMiB2b2x0YWdlID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgQ05MX1BPUlRf Q09NUF9EVzMpICYgVk9MVEFHRV9JTkZPX01BU0s7Cj4gIAo+ICAJaWYgKHZvbHRhZ2UgPT0gVk9M VEFHRV9JTkZPXzBfODVWKSB7Cj4gLQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoY25sX2RkaV90 cmFuc2xhdGlvbnNfaGRtaV8wXzg1Vik7Cj4gLQkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25z X2hkbWlfMF84NVY7Cj4gKwkJKm5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlf MF84NVYubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlf MF84NVYuZW50cmllczsKPiAgCX0gZWxzZSBpZiAodm9sdGFnZSA9PSBWT0xUQUdFX0lORk9fMF85 NVYpIHsKPiAtCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShjbmxfZGRpX3RyYW5zbGF0aW9uc19o ZG1pXzBfOTVWKTsKPiAtCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8wXzk1VjsK PiArCQkqbl9lbnRyaWVzID0gY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8wXzk1Vi5udW1fZW50 cmllczsKPiArCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfaGRtaV8wXzk1Vi5lbnRyaWVz Owo+ICAJfSBlbHNlIGlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18xXzA1Vikgewo+IC0JCSpu X2VudHJpZXMgPSBBUlJBWV9TSVpFKGNubF9kZGlfdHJhbnNsYXRpb25zX2hkbWlfMV8wNVYpOwo+ IC0JCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzFfMDVWOwo+ICsJCSpuX2VudHJp ZXMgPSBjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzFfMDVWLm51bV9lbnRyaWVzOwo+ICsJCXJl dHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19oZG1pXzFfMDVWLmVudHJpZXM7Cj4gIAl9IGVsc2Ug ewo+ICAJCSpuX2VudHJpZXMgPSAxOyAvKiBzaHV0IHVwIGdjYyAqLwo+ICAJCU1JU1NJTkdfQ0FT RSh2b2x0YWdlKTsKPiBAQCAtMTA0NiwxNCArMTMxMSwxNCBAQCBjbmxfZ2V0X2J1Zl90cmFuc19k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCj4gIAl1MzIg dm9sdGFnZSA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIENOTF9QT1JUX0NPTVBfRFczKSAmIFZP TFRBR0VfSU5GT19NQVNLOwo+ICAKPiAgCWlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18wXzg1 Vikgewo+IC0JCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGNubF9kZGlfdHJhbnNsYXRpb25zX2Rw XzBfODVWKTsKPiAtCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF84NVY7Cj4gKwkJ Km5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzBfODVWLm51bV9lbnRyaWVzOwo+ ICsJCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19kcF8wXzg1Vi5lbnRyaWVzOwo+ICAJfSBl bHNlIGlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18wXzk1Vikgewo+IC0JCSpuX2VudHJpZXMg PSBBUlJBWV9TSVpFKGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzBfOTVWKTsKPiAtCQlyZXR1cm4g Y25sX2RkaV90cmFuc2xhdGlvbnNfZHBfMF85NVY7Cj4gKwkJKm5fZW50cmllcyA9IGNubF9kZGlf dHJhbnNsYXRpb25zX2RwXzBfOTVWLm51bV9lbnRyaWVzOwo+ICsJCXJldHVybiBjbmxfZGRpX3Ry YW5zbGF0aW9uc19kcF8wXzk1Vi5lbnRyaWVzOwo+ICAJfSBlbHNlIGlmICh2b2x0YWdlID09IFZP TFRBR0VfSU5GT18xXzA1Vikgewo+IC0JCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGNubF9kZGlf dHJhbnNsYXRpb25zX2RwXzFfMDVWKTsKPiAtCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNf ZHBfMV8wNVY7Cj4gKwkJKm5fZW50cmllcyA9IGNubF9kZGlfdHJhbnNsYXRpb25zX2RwXzFfMDVW Lm51bV9lbnRyaWVzOwo+ICsJCXJldHVybiBjbmxfZGRpX3RyYW5zbGF0aW9uc19kcF8xXzA1Vi5l bnRyaWVzOwo+ICAJfSBlbHNlIHsKPiAgCQkqbl9lbnRyaWVzID0gMTsgLyogc2h1dCB1cCBnY2Mg Ki8KPiAgCQlNSVNTSU5HX0NBU0Uodm9sdGFnZSk7Cj4gQEAgLTEwNjksMTQgKzEzMzQsMTQgQEAg Y25sX2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQg Km5fZW50cmllcykKPiAgCj4gIAlpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewo+ ICAJCWlmICh2b2x0YWdlID09IFZPTFRBR0VfSU5GT18wXzg1Vikgewo+IC0JCQkqbl9lbnRyaWVz ID0gQVJSQVlfU0laRShjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF84NVYpOwo+IC0JCQlyZXR1 cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfODVWOwo+ICsJCQkqbl9lbnRyaWVzID0gY25s X2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfODVWLm51bV9lbnRyaWVzOwo+ICsJCQlyZXR1cm4gY25s X2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfODVWLmVudHJpZXM7Cj4gIAkJfSBlbHNlIGlmICh2b2x0 YWdlID09IFZPTFRBR0VfSU5GT18wXzk1Vikgewo+IC0JCQkqbl9lbnRyaWVzID0gQVJSQVlfU0la RShjbmxfZGRpX3RyYW5zbGF0aW9uc19lZHBfMF85NVYpOwo+IC0JCQlyZXR1cm4gY25sX2RkaV90 cmFuc2xhdGlvbnNfZWRwXzBfOTVWOwo+ICsJCQkqbl9lbnRyaWVzID0gY25sX2RkaV90cmFuc2xh dGlvbnNfZWRwXzBfOTVWLm51bV9lbnRyaWVzOwo+ICsJCQlyZXR1cm4gY25sX2RkaV90cmFuc2xh dGlvbnNfZWRwXzBfOTVWLmVudHJpZXM7Cj4gIAkJfSBlbHNlIGlmICh2b2x0YWdlID09IFZPTFRB R0VfSU5GT18xXzA1Vikgewo+IC0JCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShjbmxfZGRpX3Ry YW5zbGF0aW9uc19lZHBfMV8wNVYpOwo+IC0JCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNf ZWRwXzFfMDVWOwo+ICsJCQkqbl9lbnRyaWVzID0gY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzFf MDVWLm51bV9lbnRyaWVzOwo+ICsJCQlyZXR1cm4gY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzFf MDVWLmVudHJpZXM7Cj4gIAkJfSBlbHNlIHsKPiAgCQkJKm5fZW50cmllcyA9IDE7IC8qIHNodXQg dXAgZ2NjICovCj4gIAkJCU1JU1NJTkdfQ0FTRSh2b2x0YWdlKTsKPiBAQCAtMTEwNCw4ICsxMzY5 LDggQEAgaWNsX2dldF9jb21ib19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPiAgCQkJICAgICBpbnQgKm5fZW50cmllcykKPiAgewo+IC0JKm5fZW50cmllcyA9IEFS UkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkpOwo+IC0JcmV0dXJu IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pOwo+ICsJKm5fZW50cmllcyA9IGlj bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRyaWVzOwo+ICsJcmV0dXJu IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLmVudHJpZXM7Cj4gIH0KPiAgCj4g IHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiBAQCAtMTEx Myw4ICsxMzc4LDggQEAgaWNsX2dldF9jb21ib19idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+ICAJCQkgICBpbnQgKm5fZW50cmllcykKPiAgewo+IC0JKm5fZW50cmllcyA9 IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjIpOwo+IC0J cmV0dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyOwo+ICsJKm5fZW50 cmllcyA9IGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyLm51bV9lbnRyaWVz Owo+ICsJcmV0dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyLmVudHJp ZXM7Cj4gIH0KPiAgCj4gIHN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2Vu dHJ5ICoKPiBAQCAtMTEyNSwxNyArMTM5MCwxNyBAQCBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19l ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCj4gIAlpZiAo Y3J0Y19zdGF0ZS0+cG9ydF9jbG9jayA+IDU0MDAwMCkgewo+IC0JCSpuX2VudHJpZXMgPSBBUlJB WV9TSVpFKGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMyk7Cj4gLQkJcmV0 dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMzsKPiArCQkqbl9lbnRy aWVzID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIzLm51bV9lbnRyaWVz Owo+ICsJCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjMuZW50 cmllczsKPiAgCX0gZWxzZSBpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewo+IC0J CSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19l ZHBfaGJyMik7Cj4gLQkJcmV0dXJuIGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBf aGJyMjsKPiArCQkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Vk cF9oYnIyLm51bV9lbnRyaWVzOwo+ICsJCXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xh dGlvbnNfZWRwX2hicjIuZW50cmllczsKPiAgCX0gZWxzZSBpZiAoSVNfREcxKGRldl9wcml2KSAm JiBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4gMjcwMDAwKSB7Cj4gLQkJKm5fZW50cmllcyA9IEFS UkFZX1NJWkUoZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJyMyk7Cj4g LQkJcmV0dXJuIGRnMV9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2hicjM7Cj4g KwkJKm5fZW50cmllcyA9IGRnMV9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2hi cjMubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIGRnMV9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9u c19kcF9oYnIyX2hicjMuZW50cmllczsKPiAgCX0gZWxzZSBpZiAoSVNfREcxKGRldl9wcml2KSkg ewo+IC0JCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGRnMV9jb21ib19waHlfZGRpX3RyYW5zbGF0 aW9uc19kcF9yYnJfaGJyKTsKPiAtCQlyZXR1cm4gZGcxX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRp b25zX2RwX3Jicl9oYnI7Cj4gKwkJKm5fZW50cmllcyA9IGRnMV9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9yYnJfaGJyLm51bV9lbnRyaWVzOwo+ICsJCXJldHVybiBkZzFfY29tYm9fcGh5 X2RkaV90cmFuc2xhdGlvbnNfZHBfcmJyX2hici5lbnRyaWVzOwo+ICAJfQo+ICAKPiAgCXJldHVy biBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0YXRlLCBuX2VudHJp ZXMpOwo+IEBAIC0xMTU5LDggKzE0MjQsOCBAQCBpY2xfZ2V0X21nX2J1Zl90cmFuc19oZG1pKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4gLQkq bl9lbnRyaWVzID0gQVJSQVlfU0laRShpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRtaSk7 Cj4gLQlyZXR1cm4gaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWk7Cj4gKwkqbl9lbnRy aWVzID0gaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2VudHJpZXM7Cj4gKwly ZXR1cm4gaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkuZW50cmllczsKPiAgfQo+ICAK PiAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgo+IEBAIC0x MTY5LDExICsxNDM0LDExIEBAIGljbF9nZXRfbWdfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAJCQlpbnQgKm5fZW50cmllcykKPiAgewo+ICAJaWYgKGNydGNf c3RhdGUtPnBvcnRfY2xvY2sgPiAyNzAwMDApIHsKPiAtCQkqbl9lbnRyaWVzID0gQVJSQVlfU0la RShpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfaGJyMl9oYnIzKTsKPiAtCQlyZXR1cm4gaWNs X21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hicjJfaGJyMzsKPiArCQkqbl9lbnRyaWVzID0gaWNs X21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hicjJfaGJyMy5udW1fZW50cmllczsKPiArCQlyZXR1 cm4gaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hicjJfaGJyMy5lbnRyaWVzOwo+ICAJfSBl bHNlIHsKPiAtCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShpY2xfbWdfcGh5X2RkaV90cmFuc2xh dGlvbnNfcmJyX2hicik7Cj4gLQkJcmV0dXJuIGljbF9tZ19waHlfZGRpX3RyYW5zbGF0aW9uc19y YnJfaGJyOwo+ICsJCSpuX2VudHJpZXMgPSBpY2xfbWdfcGh5X2RkaV90cmFuc2xhdGlvbnNfcmJy X2hici5udW1fZW50cmllczsKPiArCQlyZXR1cm4gaWNsX21nX3BoeV9kZGlfdHJhbnNsYXRpb25z X3Jicl9oYnIuZW50cmllczsKPiAgCX0KPiAgfQo+ICAKPiBAQCAtMTE5Myw4ICsxNDU4LDggQEAg ZWhsX2dldF9jb21ib19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiAgCQkJICAgICBpbnQgKm5fZW50cmllcykKPiAgewo+IC0JKm5fZW50cmllcyA9IEFSUkFZX1NJ WkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkpOwo+IC0JcmV0dXJuIGljbF9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pOwo+ICsJKm5fZW50cmllcyA9IGljbF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLm51bV9lbnRyaWVzOwo+ICsJcmV0dXJuIGljbF9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19oZG1pLmVudHJpZXM7Cj4gIH0KPiAgCj4gIHN0YXRp YyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKPiBAQCAtMTIwMiw4ICsx NDY3LDggQEAgZWhsX2dldF9jb21ib19idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICAJCQkgICBpbnQgKm5fZW50cmllcykKPiAgewo+IC0JKm5fZW50cmllcyA9IEFSUkFZ X1NJWkUoZWhsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwKTsKPiAtCXJldHVybiBlaGxf Y29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4gKwkqbl9lbnRyaWVzID0gZWhsX2NvbWJv X3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwLm51bV9lbnRyaWVzOwo+ICsJcmV0dXJuIGVobF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19kcC5lbnRyaWVzOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29u c3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCj4gQEAgLTEyMTQsOCArMTQ3OSw4 IEBAIGVobF9nZXRfY29tYm9fYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwo+ICAKPiAgCWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5n KSB7Cj4gLQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2VkcF9oYnIyKTsKPiAtCQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRp b25zX2VkcF9oYnIyOwo+ICsJCSpuX2VudHJpZXMgPSBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xh dGlvbnNfZWRwX2hicjIubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIGljbF9jb21ib19waHlfZGRp X3RyYW5zbGF0aW9uc19lZHBfaGJyMi5lbnRyaWVzOwo+ICAJfQo+ICAKPiAgCXJldHVybiBlaGxf Z2V0X2NvbWJvX2J1Zl90cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0YXRlLCBuX2VudHJpZXMpOwo+ IEBAIC0xMjM5LDggKzE1MDQsOCBAQCBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19oZG1pKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICAgIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4g LQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNf aGRtaSk7Cj4gLQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWk7Cj4g Kwkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVtX2Vu dHJpZXM7Cj4gKwlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkuZW50 cmllczsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNf ZW50cnkgKgo+IEBAIC0xMjQ4LDggKzE1MTMsOCBAQCBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgIGludCAqbl9lbnRyaWVzKQo+ICB7 Cj4gLQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfZHBfaGJyMik7Cj4gLQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Rw X2hicjI7Cj4gKwkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Rw X2hicjIubnVtX2VudHJpZXM7Cj4gKwlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRp b25zX2RwX2hicjIuZW50cmllczsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVs X2RkaV9idWZfdHJhbnNfZW50cnkgKgo+IEBAIC0xMjYxLDExICsxNTI2LDExIEBAIGpzbF9nZXRf Y29tYm9fYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4g IAlpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewo+ICAJCWlmIChjcnRjX3N0YXRl LT5wb3J0X2Nsb2NrID4gMjcwMDAwKSB7Cj4gLQkJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGpz bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMik7Cj4gLQkJCXJldHVybiBqc2xf Y29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjI7Cj4gKwkJCSpuX2VudHJpZXMgPSBq c2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjIubnVtX2VudHJpZXM7Cj4gKwkJ CXJldHVybiBqc2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjIuZW50cmllczsK PiAgCQl9IGVsc2Ugewo+IC0JCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShqc2xfY29tYm9fcGh5 X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicik7Cj4gLQkJCXJldHVybiBqc2xfY29tYm9fcGh5X2Rk aV90cmFuc2xhdGlvbnNfZWRwX2hicjsKPiArCQkJKm5fZW50cmllcyA9IGpzbF9jb21ib19waHlf ZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyLm51bV9lbnRyaWVzOwo+ICsJCQlyZXR1cm4ganNsX2Nv bWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIuZW50cmllczsKPiAgCQl9Cj4gIAl9Cj4g IAo+IEBAIC0xMjkwLDggKzE1NTUsOCBAQCB0Z2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19oZG1pKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICAgIGludCAqbl9lbnRyaWVzKQo+ICB7 Cj4gLQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfaGRtaSk7Cj4gLQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWk7 Cj4gKwkqbl9lbnRyaWVzID0gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkubnVt X2VudHJpZXM7Cj4gKwlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWku ZW50cmllczsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJh bnNfZW50cnkgKgo+IEBAIC0xMzAzLDIyICsxNTY4LDIyIEBAIHRnbF9nZXRfY29tYm9fYnVmX3Ry YW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCWlmIChjcnRjX3N0 YXRlLT5wb3J0X2Nsb2NrID4gMjcwMDAwKSB7Cj4gIAkJaWYgKElTX1JPQ0tFVExBS0UoZGV2X3By aXYpKSB7Cj4gLQkJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHJrbF9jb21ib19waHlfZGRpX3Ry YW5zbGF0aW9uc19kcF9oYnIyX2hicjMpOwo+IC0JCQlyZXR1cm4gcmtsX2NvbWJvX3BoeV9kZGlf dHJhbnNsYXRpb25zX2RwX2hicjJfaGJyMzsKPiArCQkJKm5fZW50cmllcyA9IHJrbF9jb21ib19w aHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2hicjMubnVtX2VudHJpZXM7Cj4gKwkJCXJldHVy biBya2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9oYnIzLmVudHJpZXM7Cj4g IAkJfSBlbHNlIGlmIChJU19UR0xfVShkZXZfcHJpdikgfHwgSVNfVEdMX1koZGV2X3ByaXYpKSB7 Cj4gLQkJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHRnbF91eV9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9oYnIyKTsKPiAtCQkJcmV0dXJuIHRnbF91eV9jb21ib19waHlfZGRpX3RyYW5z bGF0aW9uc19kcF9oYnIyOwo+ICsJCQkqbl9lbnRyaWVzID0gdGdsX3V5X2NvbWJvX3BoeV9kZGlf dHJhbnNsYXRpb25zX2RwX2hicjIubnVtX2VudHJpZXM7Cj4gKwkJCXJldHVybiB0Z2xfdXlfY29t Ym9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMi5lbnRyaWVzOwo+ICAJCX0gZWxzZSB7Cj4g LQkJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9u c19kcF9oYnIyKTsKPiAtCQkJcmV0dXJuIHRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19k cF9oYnIyOwo+ICsJCQkqbl9lbnRyaWVzID0gdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25z X2RwX2hicjIubnVtX2VudHJpZXM7Cj4gKwkJCXJldHVybiB0Z2xfY29tYm9fcGh5X2RkaV90cmFu c2xhdGlvbnNfZHBfaGJyMi5lbnRyaWVzOwo+ICAJCX0KPiAgCX0gZWxzZSB7Cj4gIAkJaWYgKElT X1JPQ0tFVExBS0UoZGV2X3ByaXYpKSB7Cj4gLQkJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHJr bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIpOwo+IC0JCQlyZXR1cm4gcmtsX2Nv bWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjsKPiArCQkJKm5fZW50cmllcyA9IHJrbF9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIubnVtX2VudHJpZXM7Cj4gKwkJCXJldHVy biBya2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyLmVudHJpZXM7Cj4gIAkJfSBl bHNlIHsKPiAtCQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUodGdsX2NvbWJvX3BoeV9kZGlfdHJh bnNsYXRpb25zX2RwX2hicik7Cj4gLQkJCXJldHVybiB0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xh dGlvbnNfZHBfaGJyOwo+ICsJCQkqbl9lbnRyaWVzID0gdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNs YXRpb25zX2RwX2hici5udW1fZW50cmllczsKPiArCQkJcmV0dXJuIHRnbF9jb21ib19waHlfZGRp X3RyYW5zbGF0aW9uc19kcF9oYnIuZW50cmllczsKPiAgCQl9Cj4gIAl9Cj4gIH0KPiBAQCAtMTMz MiwxNCArMTU5NywxNCBAQCB0Z2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3Rv X2ludGVsX2RwKGVuY29kZXIpOwo+ICAKPiAgCWlmIChjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4g NTQwMDAwKSB7Cj4gLQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoaWNsX2NvbWJvX3BoeV9kZGlf dHJhbnNsYXRpb25zX2VkcF9oYnIzKTsKPiAtCQlyZXR1cm4gaWNsX2NvbWJvX3BoeV9kZGlfdHJh bnNsYXRpb25zX2VkcF9oYnIzOwo+ICsJCSpuX2VudHJpZXMgPSBpY2xfY29tYm9fcGh5X2RkaV90 cmFuc2xhdGlvbnNfZWRwX2hicjMubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIGljbF9jb21ib19w aHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMy5lbnRyaWVzOwo+ICAJfSBlbHNlIGlmIChkZXZf cHJpdi0+dmJ0LmVkcC5ob2JsICYmICFpbnRlbF9kcC0+aG9ibF9mYWlsZWQpIHsKPiAtCQkqbl9l bnRyaWVzID0gQVJSQVlfU0laRSh0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hi cjJfaG9ibCk7Cj4gLQkJcmV0dXJuIHRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBf aGJyMl9ob2JsOwo+ICsJCSpuX2VudHJpZXMgPSB0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlv bnNfZWRwX2hicjJfaG9ibC5udW1fZW50cmllczsKPiArCQlyZXR1cm4gdGdsX2NvbWJvX3BoeV9k ZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyX2hvYmwuZW50cmllczsKPiAgCX0gZWxzZSBpZiAoZGV2 X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykgewo+IC0JCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpF KGljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMik7Cj4gLQkJcmV0dXJuIGlj bF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMjsKPiArCQkqbl9lbnRyaWVzID0g aWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLm51bV9lbnRyaWVzOwo+ICsJ CXJldHVybiBpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjIuZW50cmllczsK PiAgCX0KPiAgCj4gIAlyZXR1cm4gdGdsX2dldF9jb21ib19idWZfdHJhbnNfZHAoZW5jb2Rlciwg Y3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsKPiBAQCAtMTM2Myw4ICsxNjI4LDggQEAgdGdsX2dldF9k a2xfYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICBpbnQg Km5fZW50cmllcykKPiAgewo+IC0JKm5fZW50cmllcyA9IEFSUkFZX1NJWkUodGdsX2RrbF9waHlf ZGRpX3RyYW5zbGF0aW9uc19oZG1pKTsKPiAtCXJldHVybiB0Z2xfZGtsX3BoeV9kZGlfdHJhbnNs YXRpb25zX2hkbWk7Cj4gKwkqbl9lbnRyaWVzID0gdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9u c19oZG1pLm51bV9lbnRyaWVzOwo+ICsJcmV0dXJuIHRnbF9ka2xfcGh5X2RkaV90cmFuc2xhdGlv bnNfaGRtaS5lbnRyaWVzOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSAqCj4gQEAgLTEzNzMsMTEgKzE2MzgsMTEgQEAgdGdsX2dldF9ka2xf YnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgaW50ICpu X2VudHJpZXMpCj4gIHsKPiAgCWlmIChjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4gMjcwMDAwKSB7 Cj4gLQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUodGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9u c19kcF9oYnIyKTsKPiAtCQlyZXR1cm4gdGdsX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9o YnIyOwo+ICsJCSpuX2VudHJpZXMgPSB0Z2xfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hi cjIubnVtX2VudHJpZXM7Cj4gKwkJcmV0dXJuIHRnbF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNf ZHBfaGJyMi5lbnRyaWVzOwo+ICAJfSBlbHNlIHsKPiAtCQkqbl9lbnRyaWVzID0gQVJSQVlfU0la RSh0Z2xfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicik7Cj4gLQkJcmV0dXJuIHRnbF9k a2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyOwo+ICsJCSpuX2VudHJpZXMgPSB0Z2xfZGts X3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hici5udW1fZW50cmllczsKPiArCQlyZXR1cm4gdGds X2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIuZW50cmllczsKPiAgCX0KPiAgfQo+ICAK PiBAQCAtMTM5OCwxMSArMTY2MywxMSBAQCBhZGxwX2dldF9ka2xfYnVmX3RyYW5zX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4g IAlpZiAoY3J0Y19zdGF0ZS0+cG9ydF9jbG9jayA+IDI3MDAwMCkgewo+IC0JCSpuX2VudHJpZXMg PSBBUlJBWV9TSVpFKGFkbHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJyMyk7 Cj4gLQkJcmV0dXJuIGFkbHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGJyMzsK PiArCQkqbl9lbnRyaWVzID0gYWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyMl9o YnIzLm51bV9lbnRyaWVzOwo+ICsJCXJldHVybiBhZGxwX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9u c19kcF9oYnIyX2hicjMuZW50cmllczsKPiAgCX0gZWxzZSB7Cj4gLQkJKm5fZW50cmllcyA9IEFS UkFZX1NJWkUoYWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyKTsKPiAtCQlyZXR1 cm4gYWRscF9ka2xfcGh5X2RkaV90cmFuc2xhdGlvbnNfZHBfaGJyOwo+ICsJCSpuX2VudHJpZXMg PSBhZGxwX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIubnVtX2VudHJpZXM7Cj4gKwkJ cmV0dXJuIGFkbHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hici5lbnRyaWVzOwo+ICAJ fQo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RkaV9idWZfdHJhbnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGRpX2J1Zl90cmFucy5oCj4gaW5kZXggNDg3YTRmODE1NDcwLi5hYTYxMjcyNWQ1MTAgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5z LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJh bnMuaAo+IEBAIC01Myw2ICs1MywxMSBAQCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 IHsKPiAgCXN0cnVjdCB0Z2xfZGtsX3BoeV9kZGlfYnVmX3RyYW5zIGRrbDsKPiAgfTsKPiAgCj4g K3N0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIHsKPiArCWNvbnN0IHVuaW9uIGludGVsX2RkaV9i dWZfdHJhbnNfZW50cnkgKmVudHJpZXM7Cj4gKwl1OCBudW1fZW50cmllczsKPiArfTsKPiArCj4g IGJvb2wgaXNfaG9ibF9idWZfdHJhbnMoY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19l bnRyeSAqdGFibGUpOwo+ICAKPiAgaW50IGludGVsX2RkaV9oZG1pX251bV9lbnRyaWVzKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNv dXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==