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=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 9F8E0C433DB for ; Wed, 20 Jan 2021 03:51:31 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 B623623119 for ; Wed, 20 Jan 2021 03:51:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B623623119 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l24Wn-0006Uc-Ku for qemu-devel@archiver.kernel.org; Tue, 19 Jan 2021 22:51:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47702) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l24CH-0007xx-1O for qemu-devel@nongnu.org; Tue, 19 Jan 2021 22:30:18 -0500 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:35229) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1l24C7-0007VL-Eh for qemu-devel@nongnu.org; Tue, 19 Jan 2021 22:30:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1611113407; x=1642649407; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=EN+/RLAzC+6O1+zqmC5tBTpspdMp0JYvdIDYDeY2gq4=; b=CQzjO5911sTirJRGm6JQKZ94Rt+9l+w0/JyRWW4ZbaQvaKiKMq2yyptd puN9mOh7O1lvd5TlNO4iym8q6J1JGXGckfDjJb4wsb/55qP5Q8O4gZjcf WBrs/E2aCNFSQlz5NG46FXHZLmlEIJe5nI8wfi4mxKn74BAY8Iklqs55y M=; Received: from unknown (HELO ironmsg03-sd.qualcomm.com) ([10.53.140.143]) by alexa-out-sd-01.qualcomm.com with ESMTP; 19 Jan 2021 19:29:27 -0800 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg03-sd.qualcomm.com with ESMTP; 19 Jan 2021 19:29:26 -0800 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 3D5C42854; Tue, 19 Jan 2021 21:29:26 -0600 (CST) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v7 18/35] Hexagon (target/hexagon/imported) arch import Date: Tue, 19 Jan 2021 21:28:51 -0600 Message-Id: <1611113349-24906-19-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1611113349-24906-1-git-send-email-tsimpson@quicinc.com> References: <1611113349-24906-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=199.106.114.38; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-01.qualcomm.com X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.248, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ale@rev.ng, bcain@quicinc.com, philmd@redhat.com, richard.henderson@linaro.org, laurent@vivier.eu, tsimpson@quicinc.com, alex.bennee@linaro.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" SW1wb3J0ZWQgZnJvbSB0aGUgSGV4YWdvbiBhcmNoaXRlY3R1cmUgbGlicmFyeQogICAgaW1wb3J0 ZWQvbWFjcm9zLmRlZgogICAgICAgIFRoZSBtYWNybyBkZWZpbml0aW9ucyBzcGVjaWZ5IGluc3Ry dWN0aW9uIGF0dHJpYnV0ZXMgdGhhdCBhcmUgYXBwbGllZAogICAgICAgIHRvIGVhY2ggaW5zdHJ1 Y3Rpb24gdGhhdCByZWZlcmVuY2VzIHRoZSBtYWNyby4gVGhlIGdlbmVyYXRvciB3aWxsCiAgICAg ICAgcmVjdXJzaXZlbHkgYXBwbHkgYXR0cmlidXRlcyB0byBlYWNoIGluc3RydWN0aW9uIHRoYXQg dXNlZCB0aGUgbWFjcm8uCiAgICBpbXBvcnRlZC9hbGxpZGVmcy5kZWYKICAgICAgICBUb3AgbGV2 ZWwgaW5zdHJ1Y3Rpb24gZGVmaW5pdGlvbiBmaWxlCiAgICBpbXBvcnRlZC8qLmlkZWYKICAgICAg ICBJbnN0cnVjdGlvbiBkZWZpbml0aW9uIGZpbGVzCiAgICAgICAgVGhlc2UgZmlsZXMgYXJlIGlu cHV0IHRvIHRoZSBmaXJzdCBwaGFzZSBvZiB0aGUgZ2VuZXJhdG9yCiAgICAgICAgKGdlbl9zZW1h bnRpY3MuYykgdG8gY3JlYXRlIGEgcHl0aG9uIGluY2x1ZGUgZmlsZSB3aXRoIHRoZQogICAgICAg IGluc3RydWN0aW9uIHNlbWFudGljcyBhbmQgYXR0cmlidXRlcy4gIFRoZSBweXRob24gaW5jbHVk ZQogICAgICAgIGZpbGUgaXMgZmVkIHRvIHRoZSBzZWNvbmQgcGhhc2UgdG8gZ2VuZXJhdGUgdmFy aW91cyBoZWFkZXIgZmlsZXMuCiAgICBpbXBvcnRlZC9lbmNvZGUqLmRlZgogICAgICAgIEluc3Ry dWN0aW9uIGVuY29kaW5nIGJpdCBwYXR0ZXJucyBmb3IgZXZlcnkgaW5zdHJ1Y3Rpb24KClNpZ25l ZC1vZmYtYnk6IFRheWxvciBTaW1wc29uIDx0c2ltcHNvbkBxdWljaW5jLmNvbT4KQWNrZWQtYnk6 IFJpY2hhcmQgSGVuZGVyc29uIDxyaWNoYXJkLmhlbmRlcnNvbkBsaW5hcm8ub3JnPgotLS0KIHRh cmdldC9oZXhhZ29uL2ltcG9ydGVkL2FsbGlkZWZzLmRlZiAgICAgICB8ICAgMzAgKwogdGFyZ2V0 L2hleGFnb24vaW1wb3J0ZWQvYWx1LmlkZWYgICAgICAgICAgIHwgMTI1OCArKysrKysrKysrKysr KysrKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvYnJhbmNoLmlkZWYgICAgICAgIHwgIDMyNiAr KysrKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvY29tcGFyZS5pZGVmICAgICAgIHwgIDYxOSAr KysrKysrKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlLmRlZiAgICAgICAgIHwgIDEy NCArKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlX3BwLmRlZiAgICAgIHwgMjExMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9lbmNv ZGVfc3ViaW5zbi5kZWYgfCAgMTQ5ICsrCiB0YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9mbG9hdC5p ZGVmICAgICAgICAgfCAgMzEyICsrKysKIHRhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2xkc3QuaWRl ZiAgICAgICAgICB8ICAyODYgKysrKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvbWFjcm9zLmRl ZiAgICAgICAgIHwgMTUyNiArKysrKysrKysrKysrKysrKysrKwogdGFyZ2V0L2hleGFnb24vaW1w b3J0ZWQvbXB5LmlkZWYgICAgICAgICAgIHwgMTIwOCArKysrKysrKysrKysrKysrCiB0YXJnZXQv aGV4YWdvbi9pbXBvcnRlZC9zaGlmdC5pZGVmICAgICAgICAgfCAxMDY2ICsrKysrKysrKysrKysr CiB0YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9zdWJpbnNucy5pZGVmICAgICAgfCAgMTQ5ICsrCiB0 YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9zeXN0ZW0uaWRlZiAgICAgICAgfCAgIDY1ICsKIDE0IGZp bGVzIGNoYW5nZWQsIDkyMjggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdl dC9oZXhhZ29uL2ltcG9ydGVkL2FsbGlkZWZzLmRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdl dC9oZXhhZ29uL2ltcG9ydGVkL2FsdS5pZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hl eGFnb24vaW1wb3J0ZWQvYnJhbmNoLmlkZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJnZXQvaGV4 YWdvbi9pbXBvcnRlZC9jb21wYXJlLmlkZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJnZXQvaGV4 YWdvbi9pbXBvcnRlZC9lbmNvZGUuZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hleGFn b24vaW1wb3J0ZWQvZW5jb2RlX3BwLmRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhh Z29uL2ltcG9ydGVkL2VuY29kZV9zdWJpbnNuLmRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdl dC9oZXhhZ29uL2ltcG9ydGVkL2Zsb2F0LmlkZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJnZXQv aGV4YWdvbi9pbXBvcnRlZC9sZHN0LmlkZWYKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0YXJnZXQvaGV4 YWdvbi9pbXBvcnRlZC9tYWNyb3MuZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hleGFn b24vaW1wb3J0ZWQvbXB5LmlkZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJnZXQvaGV4YWdvbi9p bXBvcnRlZC9zaGlmdC5pZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hleGFnb24vaW1w b3J0ZWQvc3ViaW5zbnMuaWRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhhZ29uL2lt cG9ydGVkL3N5c3RlbS5pZGVmCgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQv YWxsaWRlZnMuZGVmIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvYWxsaWRlZnMuZGVmCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhYWNlMjkKLS0tIC9kZXYvbnVsbAorKysg Yi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9hbGxpZGVmcy5kZWYKQEAgLTAsMCArMSwzMCBAQAor LyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIxIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVy LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg KiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKyAqLworCisvKgorICogVG9wIGxldmVsIGluc3RydWN0aW9uIGRlZmlu aXRpb24gZmlsZQorICovCisKKyNpbmNsdWRlICJicmFuY2guaWRlZiIKKyNpbmNsdWRlICJsZHN0 LmlkZWYiCisjaW5jbHVkZSAiY29tcGFyZS5pZGVmIgorI2luY2x1ZGUgIm1weS5pZGVmIgorI2lu Y2x1ZGUgImFsdS5pZGVmIgorI2luY2x1ZGUgImZsb2F0LmlkZWYiCisjaW5jbHVkZSAic2hpZnQu aWRlZiIKKyNpbmNsdWRlICJzeXN0ZW0uaWRlZiIKKyNpbmNsdWRlICJzdWJpbnNucy5pZGVmIgpk aWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvYWx1LmlkZWYgYi90YXJnZXQvaGV4 YWdvbi9pbXBvcnRlZC9hbHUuaWRlZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li40NWNjNTI5Ci0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvYWx1 LmlkZWYKQEAgLTAsMCArMSwxMjU4IEBACisvKgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjEg UXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq CisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKy8qCisgKiBB TFUgSW5zdHJ1Y3Rpb25zCisgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKy8qIEFkZC9TdWIgaW5zdHJ1Y3Rpb25zICAgICAgICAgICAgICAg ICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisKK1E2SU5TTihBMl9hZGQsIlJkMzI9YWRkKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJB ZGQgMzItYml0IHJlZ2lzdGVycyIsCit7IFJkVj1Sc1YrUnRWO30pCisKK1E2SU5TTihBMl9zdWIs IlJkMzI9c3ViKFJ0MzIsUnMzMikiLEFUVFJJQlMoKSwKKyJTdWJ0cmFjdCAzMi1iaXQgcmVnaXN0 ZXJzIiwKK3sgUmRWPVJ0Vi1Sc1Y7fSkKKworI2RlZmluZSBDT05EX0FMVShUQUcsT1BFUixERVND UixTRU1BTlRJQ1MpXAorUTZJTlNOKFRBRyMjdCwiaWYgKFB1NCkgIk9QRVIsQVRUUklCUyhBX0FS Q0hWMiksREVTQ1Ise2lmKGZMU0JPTEQoUHVWKSl7U0VNQU5USUNTO30gZWxzZSB7Q0FOQ0VMO319 KVwKK1E2SU5TTihUQUcjI2YsImlmICghUHU0KSAiT1BFUixBVFRSSUJTKEFfQVJDSFYyKSxERVND Uix7aWYoZkxTQk9MRE5PVChQdVYpKXtTRU1BTlRJQ1M7fSBlbHNlIHtDQU5DRUw7fX0pXAorUTZJ TlNOKFRBRyMjdG5ldywiaWYgKFB1NC5uZXcpICIgT1BFUixBVFRSSUJTKEFfQVJDSFYyKSxERVND Uix7aWYoZkxTQk5FVyhQdU4pKXtTRU1BTlRJQ1M7fSBlbHNlIHtDQU5DRUw7fX0pXAorUTZJTlNO KFRBRyMjZm5ldywiaWYgKCFQdTQubmV3KSAiT1BFUixBVFRSSUJTKEFfQVJDSFYyKSxERVNDUix7 aWYoZkxTQk5FV05PVChQdU4pKXtTRU1BTlRJQ1M7fSBlbHNlIHtDQU5DRUw7fX0pCisKK0NPTkRf QUxVKEEyX3BhZGQsIlJkMzI9YWRkKFJzMzIsUnQzMikiLCJDb25kaXRpb25hbGx5IEFkZCAzMi1i aXQgcmVnaXN0ZXJzIixSZFY9UnNWK1J0VikKK0NPTkRfQUxVKEEyX3BzdWIsIlJkMzI9c3ViKFJ0 MzIsUnMzMikiLCJDb25kaXRpb25hbGx5IFN1YnRyYWN0IDMyLWJpdCByZWdpc3RlcnMiLFJkVj1S dFYtUnNWKQorQ09ORF9BTFUoQTJfcGFkZGksIlJkMzI9YWRkKFJzMzIsI3M4KSIsIkNvbmRpdGlv bmFsbHkgQWRkIFJlZ2lzdGVyIGFuZCBpbW1lZGlhdGUiLGZJTU1FWFQoc2lWKTsgUmRWPVJzVitz aVYpCitDT05EX0FMVShBMl9weG9yLCJSZDMyPXhvcihSczMyLFJ0MzIpIiwiQ29uZGl0aW9uYWxs eSBYT1IgcmVnaXN0ZXJzIixSZFY9UnNWXlJ0VikKK0NPTkRfQUxVKEEyX3BhbmQsIlJkMzI9YW5k KFJzMzIsUnQzMikiLCJDb25kaXRpb25hbGx5IEFORCByZWdpc3RlcnMiLFJkVj1Sc1YmUnRWKQor Q09ORF9BTFUoQTJfcG9yLCJSZDMyPW9yKFJzMzIsUnQzMikiLCJDb25kaXRpb25hbGx5IE9SIHJl Z2lzdGVycyIsUmRWPVJzVnxSdFYpCisKK0NPTkRfQUxVKEE0X3BzeHRiLCJSZDMyPXN4dGIoUnMz MikiLCJDb25kaXRpb25hbGx5IHNpZ24tZXh0ZW5kIGJ5dGUiLCBSZFY9ZlNYVE4oOCwzMixSc1Yp KQorQ09ORF9BTFUoQTRfcHp4dGIsIlJkMzI9enh0YihSczMyKSIsIkNvbmRpdGlvbmFsbHkgemVy by1leHRlbmQgYnl0ZSIsIFJkVj1mWlhUTig4LDMyLFJzVikpCitDT05EX0FMVShBNF9wc3h0aCwi UmQzMj1zeHRoKFJzMzIpIiwiQ29uZGl0aW9uYWxseSBzaWduLWV4dGVuZCBoYWxmd29yZCIsIFJk Vj1mU1hUTigxNiwzMixSc1YpKQorQ09ORF9BTFUoQTRfcHp4dGgsIlJkMzI9enh0aChSczMyKSIs IkNvbmRpdGlvbmFsbHkgemVyby1leHRlbmQgaGFsZndvcmQiLCBSZFY9ZlpYVE4oMTYsMzIsUnNW KSkKK0NPTkRfQUxVKEE0X3Bhc2xoLCJSZDMyPWFzbGgoUnMzMikiLCJDb25kaXRpb25hbGx5IHpl cm8tZXh0ZW5kIGhhbGZ3b3JkIiwgUmRWPVJzVjw8MTYpCitDT05EX0FMVShBNF9wYXNyaCwiUmQz Mj1hc3JoKFJzMzIpIiwiQ29uZGl0aW9uYWxseSB6ZXJvLWV4dGVuZCBoYWxmd29yZCIsIFJkVj1S c1Y+PjE2KQorCisKK1E2SU5TTihBMl9hZGRzYXQsIlJkMzI9YWRkKFJzMzIsUnQzMik6c2F0IixB VFRSSUJTKCksCisiQWRkIDMyLWJpdCByZWdpc3RlcnMgd2l0aCBzYXR1cmF0aW9uIiwKK3sgUmRW PWZTQVQoZlNFMzJfNjQoUnNWKStmU0UzMl82NChSdFYpKTsgfSkKKworUTZJTlNOKEEyX3N1YnNh dCwiUmQzMj1zdWIoUnQzMixSczMyKTpzYXQiLEFUVFJJQlMoKSwKKyJTdWJ0cmFjdCAzMi1iaXQg cmVnaXN0ZXJzIHdpdGggc2F0dXJhdGlvbiIsCit7IFJkVj1mU0FUKGZTRTMyXzY0KFJ0VikgLSBm U0UzMl82NChSc1YpKTsgfSkKKworCitRNklOU04oQTJfYWRkaSwiUmQzMj1hZGQoUnMzMiwjczE2 KSIsQVRUUklCUygpLAorIkFkZCBhIHNpZ25lZCBpbW1lZGlhdGUgdG8gYSByZWdpc3RlciIsCit7 IGZJTU1FWFQoc2lWKTsgUmRWPVJzVitzaVY7fSkKKworCitRNklOU04oQzRfYWRkaXBjLCJSZDMy PWFkZChwYywjdTYpIixBVFRSSUJTKCksCisiQWRkIGltbWVkaWF0ZSB0byBQQyIsCit7IFJkVj1m UkVBRF9QQygpK2ZJTU1FWFQodWlWKTt9KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCisvKiBTaW5nbGUtcHJlY2lzaW9uIEhMIGZvcm1zICAg ICAgICAgICAgICAgICAgKi8KKy8qIFRoZXNlIGluc25zIGFuZCB0aGUgU1AgbXB5IGFyZSB0aGUg b25lcyAgICAqLworLyogdGhhdCBjYW4gZG8gLkhMIHN0dWZmICAgICAgICAgICAgICAgICAgICAg ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNk ZWZpbmUgU1REX0hMX0lOU04oVEFHLE9QRVIsQU9QRVIsQVRSLFNFTSlcCitRNklOU04oQTJfIyNU QUcjI19sbCwgT1BFUiIoUnQuTDMyLFJzLkwzMikiQU9QRVIsICAgIEFUUiwiIix7U0VNKGZHRVRI QUxGKDAsUnRWKSxmR0VUSEFMRigwLFJzVikpO30pXAorUTZJTlNOKEEyXyMjVEFHIyNfbGgsIE9Q RVIiKFJ0LkwzMixScy5IMzIpIkFPUEVSLCAgICBBVFIsIiIse1NFTShmR0VUSEFMRigwLFJ0Viks ZkdFVEhBTEYoMSxSc1YpKTt9KVwKK1E2SU5TTihBMl8jI1RBRyMjX2hsLCBPUEVSIihSdC5IMzIs UnMuTDMyKSJBT1BFUiwgICAgQVRSLCIiLHtTRU0oZkdFVEhBTEYoMSxSdFYpLGZHRVRIQUxGKDAs UnNWKSk7fSlcCitRNklOU04oQTJfIyNUQUcjI19oaCwgT1BFUiIoUnQuSDMyLFJzLkgzMikiQU9Q RVIsICAgIEFUUiwiIix7U0VNKGZHRVRIQUxGKDEsUnRWKSxmR0VUSEFMRigxLFJzVikpO30pCisK KyNkZWZpbmUgU1VCU1REX0hMX0lOU04oVEFHLE9QRVIsQU9QRVIsQVRSLFNFTSlcCitRNklOU04o QTJfIyNUQUcjI19sbCwgT1BFUiIoUnQuTDMyLFJzLkwzMikiQU9QRVIsICAgIEFUUiwiIix7U0VN KGZHRVRIQUxGKDAsUnRWKSxmR0VUSEFMRigwLFJzVikpO30pXAorUTZJTlNOKEEyXyMjVEFHIyNf aGwsIE9QRVIiKFJ0LkwzMixScy5IMzIpIkFPUEVSLCAgICBBVFIsIiIse1NFTShmR0VUSEFMRigw LFJ0ViksZkdFVEhBTEYoMSxSc1YpKTt9KQorCisKKyN1bmRlZiBITFNFTQorI2RlZmluZSBITFNF TShBLEIpIFJkVj1mU1hUTigxNiwzMiwoQStCKSkKK1NVQlNURF9ITF9JTlNOKGFkZGhfbDE2LCJS ZDMyPWFkZCIsIiIsQVRUUklCUygpLEhMU0VNKQorCisjdW5kZWYgSExTRU0KKyNkZWZpbmUgSExT RU0oQSxCKSBSZFY9ZlNBVEgoQStCKQorU1VCU1REX0hMX0lOU04oYWRkaF9sMTZfc2F0LCJSZDMy PWFkZCIsIjpzYXQiLEFUVFJJQlMoKSxITFNFTSkKKworI3VuZGVmIEhMU0VNCisjZGVmaW5lIEhM U0VNKEEsQikgUmRWPWZTWFROKDE2LDMyLChBLUIpKQorU1VCU1REX0hMX0lOU04oc3ViaF9sMTYs IlJkMzI9c3ViIiwiIixBVFRSSUJTKCksSExTRU0pCisKKyN1bmRlZiBITFNFTQorI2RlZmluZSBI TFNFTShBLEIpIFJkVj1mU0FUSChBLUIpCitTVUJTVERfSExfSU5TTihzdWJoX2wxNl9zYXQsIlJk MzI9c3ViIiwiOnNhdCIsQVRUUklCUygpLEhMU0VNKQorCisjdW5kZWYgSExTRU0KKyNkZWZpbmUg SExTRU0oQSxCKSBSZFY9KEErQik8PDE2CitTVERfSExfSU5TTihhZGRoX2gxNiwiUmQzMj1hZGQi LCI6PDwxNiIsQVRUUklCUygpLEhMU0VNKQorCisjdW5kZWYgSExTRU0KKyNkZWZpbmUgSExTRU0o QSxCKSBSZFY9KGZTQVRIKEErQikpPDwxNgorU1REX0hMX0lOU04oYWRkaF9oMTZfc2F0LCJSZDMy PWFkZCIsIjpzYXQ6PDwxNiIsQVRUUklCUygpLEhMU0VNKQorCisjdW5kZWYgSExTRU0KKyNkZWZp bmUgSExTRU0oQSxCKSBSZFY9KEEtQik8PDE2CitTVERfSExfSU5TTihzdWJoX2gxNiwiUmQzMj1z dWIiLCI6PDwxNiIsQVRUUklCUygpLEhMU0VNKQorCisjdW5kZWYgSExTRU0KKyNkZWZpbmUgSExT RU0oQSxCKSBSZFY9KGZTQVRIKEEtQikpPDwxNgorU1REX0hMX0lOU04oc3ViaF9oMTZfc2F0LCJS ZDMyPXN1YiIsIjpzYXQ6PDwxNiIsQVRUUklCUygpLEhMU0VNKQorCisKKworCitRNklOU04oQTJf YXNsaCwiUmQzMj1hc2xoKFJzMzIpIixBVFRSSUJTKCksCisiQXJpdGhtZXRpYyBTaGlmdCBMZWZ0 IGJ5IEhhbGZ3b3JkIix7IFJkVj1Sc1Y8PDE2OyB9KQorCitRNklOU04oQTJfYXNyaCwiUmQzMj1h c3JoKFJzMzIpIixBVFRSSUJTKCksCisiQXJpdGhtZXRpYyBTaGlmdCBSaWdodCBieSBIYWxmd29y ZCIseyBSZFY9UnNWPj4xNjsgfSkKKworCisvKiA2NC1iaXQgdmVyc2lvbnMgKi8KKworUTZJTlNO KEEyX2FkZHAsIlJkZDMyPWFkZChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJBZGQiLAoreyBS ZGRWPVJzc1YrUnR0Vjt9KQorCitRNklOU04oQTJfYWRkcHNhdCwiUmRkMzI9YWRkKFJzczMyLFJ0 dDMyKTpzYXQiLEFUVFJJQlMoQV9BUkNIVjMpLAorIkFkZCIsCit7IGZBRERTQVQ2NChSZGRWLFJz c1YsUnR0Vik7fSkKKworUTZJTlNOKEEyX2FkZHNwbCwiUmRkMzI9YWRkKFJzczMyLFJ0dDMyKTpy YXc6bG8iLEFUVFJJQlMoQV9BUkNIVjMpLAorIkFkZCIsCit7IFJkZFY9UnR0VitmU1hUTigzMiw2 NCxmR0VUV09SRCgwLFJzc1YpKTt9KQorCitRNklOU04oQTJfYWRkc3BoLCJSZGQzMj1hZGQoUnNz MzIsUnR0MzIpOnJhdzpoaSIsQVRUUklCUyhBX0FSQ0hWMyksCisiQWRkIiwKK3sgUmRkVj1SdHRW K2ZTWFROKDMyLDY0LGZHRVRXT1JEKDEsUnNzVikpO30pCisKK1E2SU5TTihBMl9zdWJwLCJSZGQz Mj1zdWIoUnR0MzIsUnNzMzIpIixBVFRSSUJTKCksCisiU3ViIiwKK3sgUmRkVj1SdHRWLVJzc1Y7 fSkKKworLyogTkVHIGFuZCBBQlMgKi8KKworUTZJTlNOKEEyX25lZ3NhdCwiUmQzMj1uZWcoUnMz Mik6c2F0IixBVFRSSUJTKCksCisiQXJpdGhtZXRpYyBuZWdhdGUgcmVnaXN0ZXIiLCB7IFJkViA9 IGZTQVQoLWZDQVNUOHMoUnNWKSk7IH0pCisKK1E2SU5TTihBMl9hYnMsIlJkMzI9YWJzKFJzMzIp IixBVFRSSUJTKCksCisiQWJzb2x1dGUgVmFsdWUgcmVnaXN0ZXIiLCB7IFJkViA9IGZBQlMoUnNW KTsgfSkKKworUTZJTlNOKEEyX2Fic3NhdCwiUmQzMj1hYnMoUnMzMik6c2F0IixBVFRSSUJTKCks CisiQXJpdGhtZXRpYyBuZWdhdGUgcmVnaXN0ZXIiLCB7IFJkViA9IGZTQVQoZkFCUyhmQ0FTVDRf OHMoUnNWKSkpOyB9KQorCitRNklOU04oQTJfdmNvbmosIlJkZDMyPXZjb25qKFJzczMyKTpzYXQi LEFUVFJJQlMoQV9BUkNIVjIpLAorIlZlY3RvciBDb21wbGV4IGNvbmp1Z2F0ZSBvZiBSc3MiLAor eyAgZlNFVEhBTEYoMSxSZGRWLGZTQVROKDE2LC1mR0VUSEFMRigxLFJzc1YpKSk7CisgICBmU0VU SEFMRigwLFJkZFYsZkdFVEhBTEYoMCxSc3NWKSk7CisgICBmU0VUSEFMRigzLFJkZFYsZlNBVE4o MTYsLWZHRVRIQUxGKDMsUnNzVikpKTsKKyAgIGZTRVRIQUxGKDIsUmRkVixmR0VUSEFMRigyLFJz c1YpKTsKK30pCisKKworLyogNjQtYml0IHZlcnNpb25zICovCisKK1E2SU5TTihBMl9uZWdwLCJS ZGQzMj1uZWcoUnNzMzIpIixBVFRSSUJTKCksCisiQXJpdGhtZXRpYyBuZWdhdGUgcmVnaXN0ZXIi LCB7IFJkZFYgPSAtUnNzVjsgfSkKKworUTZJTlNOKEEyX2Fic3AsIlJkZDMyPWFicyhSc3MzMiki LEFUVFJJQlMoKSwKKyJBYnNvbHV0ZSBWYWx1ZSByZWdpc3RlciIsIHsgUmRkViA9IGZBQlMoUnNz Vik7IH0pCisKKworLyogTUlOIGFuZCBNQVggIFIgKi8KKworUTZJTlNOKEEyX21heCwiUmQzMj1t YXgoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIk1heGltdW0gb2YgdHdvIHJlZ2lzdGVycyIsCit7 IFJkViA9IGZNQVgoUnNWLFJ0Vik7IH0pCisKK1E2SU5TTihBMl9tYXh1LCJSZDMyPW1heHUoUnMz MixSdDMyKSIsQVRUUklCUygpLAorIk1heGltdW0gb2YgdHdvIHJlZ2lzdGVycyAodW5zaWduZWQp IiwKK3sgUmRWID0gZk1BWChmQ0FTVDR1KFJzViksZkNBU1Q0dShSdFYpKTsgfSkKKworUTZJTlNO KEEyX21pbiwiUmQzMj1taW4oUnQzMixSczMyKSIsQVRUUklCUygpLAorIk1pbmltdW0gb2YgdHdv IHJlZ2lzdGVycyIsCit7IFJkViA9IGZNSU4oUnRWLFJzVik7IH0pCisKK1E2SU5TTihBMl9taW51 LCJSZDMyPW1pbnUoUnQzMixSczMyKSIsQVRUUklCUygpLAorIk1pbmltdW0gb2YgdHdvIHJlZ2lz dGVycyAodW5zaWduZWQpIiwKK3sgUmRWID0gZk1JTihmQ0FTVDR1KFJ0ViksZkNBU1Q0dShSc1Yp KTsgfSkKKworLyogTUlOIGFuZCBNQVggUGFpcnMgKi8KKyNpZiAxCitRNklOU04oQTJfbWF4cCwi UmRkMzI9bWF4KFJzczMyLFJ0dDMyKSIsQVRUUklCUyhBX0FSQ0hWMyksCisiTWF4aW11bSBvZiB0 d28gcmVnaXN0ZXIgcGFpcnMiLAoreyBSZGRWID0gZk1BWChSc3NWLFJ0dFYpOyB9KQorCitRNklO U04oQTJfbWF4dXAsIlJkZDMyPW1heHUoUnNzMzIsUnR0MzIpIixBVFRSSUJTKEFfQVJDSFYzKSwK KyJNYXhpbXVtIG9mIHR3byByZWdpc3RlciBwYWlycyAodW5zaWduZWQpIiwKK3sgUmRkViA9IGZN QVgoZkNBU1Q4dShSc3NWKSxmQ0FTVDh1KFJ0dFYpKTsgfSkKKworUTZJTlNOKEEyX21pbnAsIlJk ZDMyPW1pbihSdHQzMixSc3MzMikiLEFUVFJJQlMoQV9BUkNIVjMpLAorIk1pbmltdW0gb2YgdHdv IHJlZ2lzdGVyIHBhaXJzIiwKK3sgUmRkViA9IGZNSU4oUnR0VixSc3NWKTsgfSkKKworUTZJTlNO KEEyX21pbnVwLCJSZGQzMj1taW51KFJ0dDMyLFJzczMyKSIsQVRUUklCUyhBX0FSQ0hWMyksCisi TWluaW11bSBvZiB0d28gcmVnaXN0ZXIgcGFpcnMgKHVuc2lnbmVkKSIsCit7IFJkZFYgPSBmTUlO KGZDQVNUOHUoUnR0ViksZkNBU1Q4dShSc3NWKSk7IH0pCisjZW5kaWYKKworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBSZWdpc3RlciBhbmQgSW1t ZWRpYXRlIFRyYW5zZmVycyAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oQTJfbm9wLCJub3AiLEFUVFJJQlMoQV9J VF9OT1ApLAorIk5vcCAoMzItYml0IGVuY29kaW5nKSIsCisgZkhJREUoIHsgfSAgKSkKKworCitR NklOU04oQTRfZXh0LCJpbW1leHQoI3UyNjo2KSIsQVRUUklCUyhBX0lUX0VYVEVOREVSKSwKKyJU aGlzIGluc3RydWN0aW9uIGNhcnJpZXMgdGhlIDI2IG1vc3Qtc2lnbmlmaWNhbnQgaW1tZWRpYXRl IGJpdHMgZm9yIHRoZSBuZXh0IGluc3RydWN0aW9uIiwKK3sgZkhJREUoKTsgfSkKKworCitRNklO U04oQTJfdGZyLCJSZDMyPVJzMzIiLEFUVFJJQlMoKSwKKyJ0ZnIgcmVnaXN0ZXIiLHsgUmRWPVJz Vjt9KQorCitRNklOU04oQTJfdGZyc2ksIlJkMzI9I3MxNiIsQVRUUklCUygpLAorInRyYW5zZmVy IHNpZ25lZCBpbW1lZGlhdGUgdG8gcmVnaXN0ZXIiLHsgZklNTUVYVChzaVYpOyBSZFY9c2lWO30p CisKK1E2SU5TTihBMl9zeHRiLCJSZDMyPXN4dGIoUnMzMikiLEFUVFJJQlMoKSwKKyJTaWduIGV4 dGVuZCBieXRlIiwge1JkViA9IGZTWFROKDgsMzIsUnNWKTt9KQorCitRNklOU04oQTJfenh0aCwi UmQzMj16eHRoKFJzMzIpIixBVFRSSUJTKCksCisiWmVybyBleHRlbmQgaGFsZiIsIHtSZFYgPSBm WlhUTigxNiwzMixSc1YpO30pCisKK1E2SU5TTihBMl9zeHRoLCJSZDMyPXN4dGgoUnMzMikiLEFU VFJJQlMoKSwKKyJTaWduIGV4dGVuZCBoYWxmIiwge1JkViA9IGZTWFROKDE2LDMyLFJzVik7fSkK KworUTZJTlNOKEEyX2NvbWJpbmV3LCJSZGQzMj1jb21iaW5lKFJzMzIsUnQzMikiLEFUVFJJQlMo KSwKKyJDb21iaW5lIHR3byB3b3JkcyBpbnRvIGEgcmVnaXN0ZXIgcGFpciIsCit7IGZTRVRXT1JE KDAsUmRkVixSdFYpOworICBmU0VUV09SRCgxLFJkZFYsUnNWKTsKK30pCisKK1E2SU5TTihBNF9j b21iaW5lcmksIlJkZDMyPWNvbWJpbmUoUnMzMiwjczgpIixBVFRSSUJTKCksCisiQ29tYmluZSBh IHdvcmQgYW5kIGFuIGltbWVkaWF0ZSBpbnRvIGEgcmVnaXN0ZXIgcGFpciIsCit7IGZJTU1FWFQo c2lWKTsgZlNFVFdPUkQoMCxSZGRWLHNpVik7CisgIGZTRVRXT1JEKDEsUmRkVixSc1YpOworfSkK KworUTZJTlNOKEE0X2NvbWJpbmVpciwiUmRkMzI9Y29tYmluZSgjczgsUnMzMikiLEFUVFJJQlMo KSwKKyJDb21iaW5lIGEgd29yZCBhbmQgYW4gaW1tZWRpYXRlIGludG8gYSByZWdpc3RlciBwYWly IiwKK3sgZklNTUVYVChzaVYpOyBmU0VUV09SRCgwLFJkZFYsUnNWKTsKKyAgZlNFVFdPUkQoMSxS ZGRWLHNpVik7Cit9KQorCisKKworUTZJTlNOKEEyX2NvbWJpbmVpaSwiUmRkMzI9Y29tYmluZSgj czgsI1M4KSIsQVRUUklCUyhBX0FSQ0hWMiksCisiU2V0IHR3byBzbWFsbCBpbW1lZGlhdGVzIiwK K3sgZklNTUVYVChzaVYpOyBmU0VUV09SRCgwLFJkZFYsU2lWKTsgZlNFVFdPUkQoMSxSZGRWLHNp Vik7IH0pCisKK1E2SU5TTihBNF9jb21iaW5laWksIlJkZDMyPWNvbWJpbmUoI3M4LCNVNikiLEFU VFJJQlMoKSwiU2V0IHR3byBzbWFsbCBpbW1lZGlhdGVzIiwKK3sgZklNTUVYVChVaVYpOyBmU0VU V09SRCgwLFJkZFYsVWlWKTsgZlNFVFdPUkQoMSxSZGRWLHNpVik7IH0pCisKKworUTZJTlNOKEEy X2NvbWJpbmVfaGgsIlJkMzI9Y29tYmluZShSdC5IMzIsUnMuSDMyKSIsQVRUUklCUygpLAorIkNv bWJpbmUgdHdvIGhhbGZzIGludG8gYSByZWdpc3RlciIsIHtSZFYgPSAoZkdFVFVIQUxGKDEsUnRW KTw8MTYpIHwgZkdFVFVIQUxGKDEsUnNWKTt9KQorCitRNklOU04oQTJfY29tYmluZV9obCwiUmQz Mj1jb21iaW5lKFJ0LkgzMixScy5MMzIpIixBVFRSSUJTKCksCisiQ29tYmluZSB0d28gaGFsZnMg aW50byBhIHJlZ2lzdGVyIiwge1JkViA9IChmR0VUVUhBTEYoMSxSdFYpPDwxNikgfCBmR0VUVUhB TEYoMCxSc1YpO30pCisKK1E2SU5TTihBMl9jb21iaW5lX2xoLCJSZDMyPWNvbWJpbmUoUnQuTDMy LFJzLkgzMikiLEFUVFJJQlMoKSwKKyJDb21iaW5lIHR3byBoYWxmcyBpbnRvIGEgcmVnaXN0ZXIi LCB7UmRWID0gKGZHRVRVSEFMRigwLFJ0Vik8PDE2KSB8IGZHRVRVSEFMRigxLFJzVik7fSkKKwor UTZJTlNOKEEyX2NvbWJpbmVfbGwsIlJkMzI9Y29tYmluZShSdC5MMzIsUnMuTDMyKSIsQVRUUklC UygpLAorIkNvbWJpbmUgdHdvIGhhbGZzIGludG8gYSByZWdpc3RlciIsIHtSZFYgPSAoZkdFVFVI QUxGKDAsUnRWKTw8MTYpIHwgZkdFVFVIQUxGKDAsUnNWKTt9KQorCitRNklOU04oQTJfdGZyaWws IlJ4LkwzMj0jdTE2IixBVFRSSUJTKCksCisiU2V0IGxvdyAxNi1iaXRzLCBsZWF2ZSB1cHBlciAx NiB1bmNoYW5nZWQiLHsgZlNFVEhBTEYoMCxSeFYsdWlWKTt9KQorCitRNklOU04oQTJfdGZyaWgs IlJ4LkgzMj0jdTE2IixBVFRSSUJTKCksCisiU2V0IGhpZ2ggMTYtYml0cywgbGVhdmUgbG93IDE2 IHVuY2hhbmdlZCIseyBmU0VUSEFMRigxLFJ4Vix1aVYpO30pCisKK1E2SU5TTihBMl90ZnJjcnIs IlJkMzI9Q3MzMiIsQVRUUklCUygpLAorInRyYW5zZmVyIGNvbnRyb2wgcmVnaXN0ZXIgdG8gZ2Vu ZXJhbCByZWdpc3RlciIseyBSZFY9Q3NWO30pCisKK1E2SU5TTihBMl90ZnJyY3IsIkNkMzI9UnMz MiIsQVRUUklCUygpLAorInRyYW5zZmVyIGdlbmVyYWwgcmVnaXN0ZXIgdG8gY29udHJvbCByZWdp c3RlciIseyBDZFY9UnNWO30pCisKK1E2SU5TTihBNF90ZnJjcHAsIlJkZDMyPUNzczMyIixBVFRS SUJTKCksCisidHJhbnNmZXIgY29udHJvbCByZWdpc3RlciB0byBnZW5lcmFsIHJlZ2lzdGVyIix7 IFJkZFY9Q3NzVjt9KQorCitRNklOU04oQTRfdGZycGNwLCJDZGQzMj1Sc3MzMiIsQVRUUklCUygp LAorInRyYW5zZmVyIGdlbmVyYWwgcmVnaXN0ZXIgdG8gY29udHJvbCByZWdpc3RlciIseyBDZGRW PVJzc1Y7fSkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKy8qIExvZ2ljYWxzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5T TihBMl9hbmQsIlJkMzI9YW5kKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJsb2dpY2FsIEFORCIs eyBSZFY9UnNWJlJ0Vjt9KQorCitRNklOU04oQTJfb3IsIlJkMzI9b3IoUnMzMixSdDMyKSIsQVRU UklCUygpLAorImxvZ2ljYWwgT1IiLHsgUmRWPVJzVnxSdFY7fSkKKworUTZJTlNOKEEyX3hvciwi UmQzMj14b3IoUnMzMixSdDMyKSIsQVRUUklCUygpLAorImxvZ2ljYWwgWE9SIix7IFJkVj1Sc1Ze UnRWO30pCisKK1E2SU5TTihNMl94b3JfeGFjYywiUngzMl49eG9yKFJzMzIsUnQzMikiLEFUVFJJ QlMoQV9BUkNIVjIpLAorImxvZ2ljYWwgWE9SIHdpdGggWE9SIGFjY3VtdWxhdGlvbiIseyBSeFZe PVJzVl5SdFY7fSkKKworUTZJTlNOKE00X3hvcl94YWNjLCJSeHgzMl49eG9yKFJzczMyLFJ0dDMy KSIsLAorImxvZ2ljYWwgWE9SIHdpdGggWE9SIGFjY3VtdWxhdGlvbiIseyBSeHhWXj1Sc3NWXlJ0 dFY7fSkKKworCisKK1E2SU5TTihBNF9hbmRuLCJSZDMyPWFuZChSdDMyLH5SczMyKSIsLAorIkFu ZC1Ob3QiLCB7IFJkViA9IChSdFYgJiB+UnNWKTsgfSkKKworUTZJTlNOKEE0X29ybiwiUmQzMj1v cihSdDMyLH5SczMyKSIsLAorIk9yLU5vdCIsIHsgUmRWID0gKFJ0ViB8IH5Sc1YpOyB9KQorCisK K1E2SU5TTihBNF9hbmRucCwiUmRkMzI9YW5kKFJ0dDMyLH5Sc3MzMikiLCwKKyJBbmQtTm90Iiwg eyBSZGRWID0gKFJ0dFYgJiB+UnNzVik7IH0pCisKK1E2SU5TTihBNF9vcm5wLCJSZGQzMj1vcihS dHQzMix+UnNzMzIpIiwsCisiT3ItTm90IiwgeyBSZGRWID0gKFJ0dFYgfCB+UnNzVik7IH0pCisK KworCisKKy8qKioqKioqKioqKioqKioqKioqKi8KKy8qIENvbXBvdW5kIGFkZC1hZGQgKi8KKy8q KioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKFM0X2FkZGFkZGksIlJkMzI9YWRkKFJzMzIs YWRkKFJ1MzIsI3M2KSkiLEFUVFJJQlMoKSwKKyAgICAgICAgIjMtaW5wdXQgYWRkIiwKKyAgICAg ICAgeyBSZFYgPSBSc1YgKyBSdVYgKyBmSU1NRVhUKHNpVik7IH0pCisKKworUTZJTlNOKFM0X3N1 YmFkZGksIlJkMzI9YWRkKFJzMzIsc3ViKCNzNixSdTMyKSkiLEFUVFJJQlMoKSwKKyAgICAgICAg IjMtaW5wdXQgc3ViIiwKKyAgICAgICAgeyBSZFYgPSBSc1YgLSBSdVYgKyBmSU1NRVhUKHNpVik7 IH0pCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIENvbXBvdW5kIGxv Z2ljYWwtbG9naWNhbCAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5T TihNNF9hbmRfYW5kLCJSeDMyJj1hbmQoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBvdW5k IEFuZC1BbmQiLCB7IFJ4ViAmPSAoUnNWICYgUnRWKTsgfSkKKworUTZJTlNOKE00X2FuZF9hbmRu LCJSeDMyJj1hbmQoUnMzMix+UnQzMikiLEFUVFJJQlMoKSwKKyJDb21wb3VuZCBBbmQtQW5kbiIs IHsgUnhWICY9IChSc1YgJiB+UnRWKTsgfSkKKworUTZJTlNOKE00X2FuZF9vciwiUngzMiY9b3Io UnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBvdW5kIEFuZC1PciIsIHsgUnhWICY9IChSc1Yg fCBSdFYpOyB9KQorCitRNklOU04oTTRfYW5kX3hvciwiUngzMiY9eG9yKFJzMzIsUnQzMikiLEFU VFJJQlMoKSwKKyJDb21wb3VuZCBBbmQteG9yIiwgeyBSeFYgJj0gKFJzViBeIFJ0Vik7IH0pCisK KworCitRNklOU04oTTRfb3JfYW5kLCJSeDMyfD1hbmQoUnMzMixSdDMyKSIsQVRUUklCUygpLAor IkNvbXBvdW5kIE9yLUFuZCIsIHsgUnhWIHw9IChSc1YgJiBSdFYpOyB9KQorCitRNklOU04oTTRf b3JfYW5kbiwiUngzMnw9YW5kKFJzMzIsflJ0MzIpIixBVFRSSUJTKCksCisiQ29tcG91bmQgT3It QW5kTiIsIHsgUnhWIHw9IChSc1YgJiB+UnRWKTsgfSkKKworUTZJTlNOKE00X29yX29yLCJSeDMy fD1vcihSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiQ29tcG91bmQgT3ItT3IiLCB7IFJ4ViB8PSAo UnNWIHwgUnRWKTsgfSkKKworUTZJTlNOKE00X29yX3hvciwiUngzMnw9eG9yKFJzMzIsUnQzMiki LEFUVFJJQlMoKSwKKyJDb21wb3VuZCBPci14b3IiLCB7IFJ4ViB8PSAoUnNWIF4gUnRWKTsgfSkK KworCitRNklOU04oUzRfb3JfYW5kaXgsIlJ4MzI9b3IoUnUzMixhbmQoUngzMiwjczEwKSkiLEFU VFJJQlMoKSwKKyJDb21wb3VuZCBPci1BbmQiLCB7IFJ4ViA9IFJ1ViB8IChSeFYgJiBmSU1NRVhU KHNpVikpOyB9KQorCitRNklOU04oUzRfb3JfYW5kaSwiUngzMnw9YW5kKFJzMzIsI3MxMCkiLEFU VFJJQlMoKSwKKyJDb21wb3VuZCBPci1BbmQiLCB7IFJ4ViA9IFJ4ViB8IChSc1YgJiBmSU1NRVhU KHNpVikpOyB9KQorCitRNklOU04oUzRfb3Jfb3JpLCJSeDMyfD1vcihSczMyLCNzMTApIixBVFRS SUJTKCksCisiQ29tcG91bmQgT3ItQW5kIiwgeyBSeFYgPSBSeFYgfCAoUnNWIHwgZklNTUVYVChz aVYpKTsgfSkKKworCisKKworUTZJTlNOKE00X3hvcl9hbmQsIlJ4MzJePWFuZChSczMyLFJ0MzIp IixBVFRSSUJTKCksCisiQ29tcG91bmQgWG9yLUFuZCIsIHsgUnhWIF49IChSc1YgJiBSdFYpOyB9 KQorCitRNklOU04oTTRfeG9yX29yLCJSeDMyXj1vcihSczMyLFJ0MzIpIixBVFRSSUJTKCksCisi Q29tcG91bmQgWG9yLU9yIiwgeyBSeFYgXj0gKFJzViB8IFJ0Vik7IH0pCisKK1E2SU5TTihNNF94 b3JfYW5kbiwiUngzMl49YW5kKFJzMzIsflJ0MzIpIixBVFRSSUJTKCksCisiQ29tcG91bmQgWG9y LUFuZCIsIHsgUnhWIF49IChSc1YgJiB+UnRWKTsgfSkKKworCisKKworCisKK1E2SU5TTihBMl9z dWJyaSwiUmQzMj1zdWIoI3MxMCxSczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiU3VidHJhY3Qg cmVnaXN0ZXIgZnJvbSBpbW1lZGlhdGUiLHsgZklNTUVYVChzaVYpOyBSZFY9c2lWLVJzVjt9KQor CitRNklOU04oQTJfYW5kaXIsIlJkMzI9YW5kKFJzMzIsI3MxMCkiLEFUVFJJQlMoQV9BUkNIVjIp LAorImxvZ2ljYWwgQU5EIHdpdGggaW1tZWRpYXRlIix7IGZJTU1FWFQoc2lWKTsgUmRWPVJzViZz aVY7fSkKKworUTZJTlNOKEEyX29yaXIsIlJkMzI9b3IoUnMzMiwjczEwKSIsQVRUUklCUyhBX0FS Q0hWMiksCisibG9naWNhbCBPUiB3aXRoIGltbWVkaWF0ZSIseyBmSU1NRVhUKHNpVik7IFJkVj1S c1Z8c2lWO30pCisKKworCisKK1E2SU5TTihBMl9hbmRwLCJSZGQzMj1hbmQoUnNzMzIsUnR0MzIp IixBVFRSSUJTKCksCisibG9naWNhbCBBTkQgcGFpciIseyBSZGRWPVJzc1YmUnR0Vjt9KQorCitR NklOU04oQTJfb3JwLCJSZGQzMj1vcihSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJsb2dpY2Fs IE9SIHBhaXIiLHsgUmRkVj1Sc3NWfFJ0dFY7fSkKKworUTZJTlNOKEEyX3hvcnAsIlJkZDMyPXhv cihSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJsb2dpY2FsIGVYY2x1c2l2ZSBPUiBwYWlyIix7 IFJkZFY9UnNzVl5SdHRWO30pCisKK1E2SU5TTihBMl9ub3RwLCJSZGQzMj1ub3QoUnNzMzIpIixB VFRSSUJTKCksCisibG9naWNhbCBOT1QgcGFpciIseyBSZGRWPX5Sc3NWO30pCisKK1E2SU5TTihB Ml9zeHR3LCJSZGQzMj1zeHR3KFJzMzIpIixBVFRSSUJTKCksCisiU2lnbiBleHRlbmQgMzItYml0 IHdvcmQgdG8gNjQtYml0IHBhaXIiLAoreyBSZGRWID0gZkNBU1Q0XzhzKFJzVik7IH0pCisKK1E2 SU5TTihBMl9zYXQsIlJkMzI9c2F0KFJzczMyKSIsQVRUUklCUygpLAorIlNhdHVyYXRlIHRvIDMy LWJpdCBTaWduZWQiLAoreyBSZFYgPSBmU0FUKFJzc1YpOyB9KQorCitRNklOU04oQTJfcm91bmRz YXQsIlJkMzI9cm91bmQoUnNzMzIpOnNhdCIsQVRUUklCUygpLAorIlJvdW5kICYgU2F0dXJhdGUg dG8gMzItYml0IFNpZ25lZCIsCit7IGZISURFKHNpemU4c190IHRtcDspIGZBRERTQVQ2NCh0bXAs UnNzViwweDA4MDAwMDAwMFVMTCk7IFJkViA9IGZHRVRXT1JEKDEsdG1wKTsgfSkKKworUTZJTlNO KEEyX3NhdGgsIlJkMzI9c2F0aChSczMyKSIsQVRUUklCUygpLAorIlNhdHVyYXRlIHRvIDE2LWJp dCBTaWduZWQiLAoreyBSZFYgPSBmU0FUSChSc1YpOyB9KQorCitRNklOU04oQTJfc2F0dWgsIlJk MzI9c2F0dWgoUnMzMikiLEFUVFJJQlMoKSwKKyJTYXR1cmF0ZSB0byAxNi1iaXQgVW5zaWduZWQi LAoreyBSZFYgPSBmU0FUVUgoUnNWKTsgfSkKKworUTZJTlNOKEEyX3NhdHViLCJSZDMyPXNhdHVi KFJzMzIpIixBVFRSSUJTKCksCisiU2F0dXJhdGUgdG8gOC1iaXQgVW5zaWduZWQiLAoreyBSZFYg PSBmU0FUVUIoUnNWKTsgfSkKKworUTZJTlNOKEEyX3NhdGIsIlJkMzI9c2F0YihSczMyKSIsQVRU UklCUyhBX0FSQ0hWMiksCisiU2F0dXJhdGUgdG8gOC1iaXQgU2lnbmVkIiwKK3sgUmRWID0gZlNB VEIoUnNWKTsgfSkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisvKiBWZWN0b3IgQWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitRNklO U04oQTJfdmFkZHViLCJSZGQzMj12YWRkdWIoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQWRk IHZlY3RvciBvZiBieXRlcyIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9y IChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICAgICAgZlNFVEJZVEUoaSxSZGRWLChmR0VU VUJZVEUoaSxSc3NWKStmR0VUVUJZVEUoaSxSdHRWKSkpOworICAgICAgICB9Cit9KQorCitRNklO U04oQTJfdmFkZHVicywiUmRkMzI9dmFkZHViKFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwK KyJBZGQgdmVjdG9yIG9mIGJ5dGVzIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgICAgICBmU0VUQllURShpLFJkZFYs ZlNBVFVOKDgsZkdFVFVCWVRFKGksUnNzVikrZkdFVFVCWVRFKGksUnR0VikpKTsKKyAgICAgICAg fQorfSkKKworUTZJTlNOKEEyX3ZhZGRoLCJSZGQzMj12YWRkaChSc3MzMixSdHQzMikiLEFUVFJJ QlMoKSwKKyJBZGQgdmVjdG9yIG9mIGhhbGYgaW50ZWdlcnMiLAoreworICAgICAgICBmSElERShp bnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgICAgIGZTRVRIQUxG KGksUmRkVixmR0VUSEFMRihpLFJzc1YpK2ZHRVRIQUxGKGksUnR0VikpOworICAgICAgICB9Cit9 KQorCitRNklOU04oQTJfdmFkZGhzLCJSZGQzMj12YWRkaChSc3MzMixSdHQzMik6c2F0IixBVFRS SUJTKCksCisiQWRkIHZlY3RvciBvZiBoYWxmIGludGVnZXJzIHdpdGggc2F0dXJhdGlvbiIsCit7 CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTw0O2krKykgeworICAg ICAgICAgICAgZlNFVEhBTEYoaSxSZGRWLGZTQVROKDE2LGZHRVRIQUxGKGksUnNzVikrZkdFVEhB TEYoaSxSdHRWKSkpOworICAgICAgICB9Cit9KQorCitRNklOU04oQTJfdmFkZHVocywiUmRkMzI9 dmFkZHVoKFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwKKyJBZGQgdmVjdG9yIG9mIHVuc2ln bmVkIGhhbGYgaW50ZWdlcnMgd2l0aCBzYXR1cmF0aW9uIiwKK3sKKyAgICAgICAgZkhJREUoaW50 IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgICAgICBmU0VUSEFMRihp LFJkZFYsZlNBVFVOKDE2LGZHRVRVSEFMRihpLFJzc1YpK2ZHRVRVSEFMRihpLFJ0dFYpKSk7Cisg ICAgICAgIH0KK30pCisKK1E2SU5TTihBNV92YWRkaHVicywiUmQzMj12YWRkaHViKFJzczMyLFJ0 dDMyKTpzYXQiLEFUVFJJQlMoKSwKKyJBZGQgdmVjdG9yIG9mIGhhbGYgaW50ZWdlcnMgd2l0aCBz YXR1cmF0aW9uIGFuZCBwYWNrIHRvIHVuc2lnbmVkIGJ5dGVzIiwKK3sKKyAgICAgICAgZkhJREUo aW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgICAgICBmU0VUQllU RShpLFJkVixmU0FUVUIoZkdFVEhBTEYoaSxSc3NWKStmR0VUSEFMRihpLFJ0dFYpKSk7CisgICAg ICAgIH0KK30pCisKK1E2SU5TTihBMl92YWRkdywiUmRkMzI9dmFkZHcoUnNzMzIsUnR0MzIpIixB VFRSSUJTKCksCisiQWRkIHZlY3RvciBvZiB3b3JkcyIsCit7CisgICAgICAgIGZISURFKGludCBp OykKKyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworICAgICAgICAgICAgZlNFVFdPUkQoaSxS ZGRWLGZHRVRXT1JEKGksUnNzVikrZkdFVFdPUkQoaSxSdHRWKSk7CisgICAgICAgIH0KK30pCisK K1E2SU5TTihBMl92YWRkd3MsIlJkZDMyPXZhZGR3KFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMo KSwKKyJBZGQgdmVjdG9yIG9mIHdvcmRzIHdpdGggc2F0dXJhdGlvbiIsCit7CisgICAgICAgIGZI SURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworICAgICAgICAgICAgZlNF VFdPUkQoaSxSZGRWLGZTQVROKDMyLGZHRVRXT1JEKGksUnNzVikrZkdFVFdPUkQoaSxSdHRWKSkp OworICAgICAgICB9Cit9KQorCisKKworUTZJTlNOKFM0X3Z4YWRkc3VidywiUmRkMzI9dnhhZGRz dWJ3KFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwKKyJDcm9zcyB2ZWN0b3IgYWRkLXN1YiB3 b3JkcyB3aXRoIHNhdHVyYXRpb24iLAoreworICAgICAgICBmU0VUV09SRCgwLFJkZFYsZlNBVChm R0VUV09SRCgwLFJzc1YpK2ZHRVRXT1JEKDEsUnR0VikpKTsKKyAgICAgICAgZlNFVFdPUkQoMSxS ZGRWLGZTQVQoZkdFVFdPUkQoMSxSc3NWKS1mR0VUV09SRCgwLFJ0dFYpKSk7Cit9KQorUTZJTlNO KFM0X3Z4c3ViYWRkdywiUmRkMzI9dnhzdWJhZGR3KFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMo KSwKKyJDcm9zcyB2ZWN0b3Igc3ViLWFkZCB3b3JkcyB3aXRoIHNhdHVyYXRpb24iLAoreworICAg ICAgICBmU0VUV09SRCgwLFJkZFYsZlNBVChmR0VUV09SRCgwLFJzc1YpLWZHRVRXT1JEKDEsUnR0 VikpKTsKKyAgICAgICAgZlNFVFdPUkQoMSxSZGRWLGZTQVQoZkdFVFdPUkQoMSxSc3NWKStmR0VU V09SRCgwLFJ0dFYpKSk7Cit9KQorCisKKworUTZJTlNOKFM0X3Z4YWRkc3ViaCwiUmRkMzI9dnhh ZGRzdWJoKFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwKKyJDcm9zcyB2ZWN0b3IgYWRkLXN1 YiBoYWxmd29yZHMgd2l0aCBzYXR1cmF0aW9uIiwKK3sKKyAgICAgICAgZlNFVEhBTEYoMCxSZGRW LGZTQVRIKGZHRVRIQUxGKDAsUnNzVikrZkdFVEhBTEYoMSxSdHRWKSkpOworICAgICAgICBmU0VU SEFMRigxLFJkZFYsZlNBVEgoZkdFVEhBTEYoMSxSc3NWKS1mR0VUSEFMRigwLFJ0dFYpKSk7CisK KyAgICAgICAgZlNFVEhBTEYoMixSZGRWLGZTQVRIKGZHRVRIQUxGKDIsUnNzVikrZkdFVEhBTEYo MyxSdHRWKSkpOworICAgICAgICBmU0VUSEFMRigzLFJkZFYsZlNBVEgoZkdFVEhBTEYoMyxSc3NW KS1mR0VUSEFMRigyLFJ0dFYpKSk7CisKK30pCitRNklOU04oUzRfdnhzdWJhZGRoLCJSZGQzMj12 eHN1YmFkZGgoUnNzMzIsUnR0MzIpOnNhdCIsQVRUUklCUygpLAorIkNyb3NzIHZlY3RvciBzdWIt YWRkIGhhbGZ3b3JkcyB3aXRoIHNhdHVyYXRpb24iLAoreworICAgICAgICBmU0VUSEFMRigwLFJk ZFYsZlNBVEgoZkdFVEhBTEYoMCxSc3NWKS1mR0VUSEFMRigxLFJ0dFYpKSk7CisgICAgICAgIGZT RVRIQUxGKDEsUmRkVixmU0FUSChmR0VUSEFMRigxLFJzc1YpK2ZHRVRIQUxGKDAsUnR0VikpKTsK KworICAgICAgICBmU0VUSEFMRigyLFJkZFYsZlNBVEgoZkdFVEhBTEYoMixSc3NWKS1mR0VUSEFM RigzLFJ0dFYpKSk7CisgICAgICAgIGZTRVRIQUxGKDMsUmRkVixmU0FUSChmR0VUSEFMRigzLFJz c1YpK2ZHRVRIQUxGKDIsUnR0VikpKTsKK30pCisKKworCisKK1E2SU5TTihTNF92eGFkZHN1Ymhy LCJSZGQzMj12eGFkZHN1YmgoUnNzMzIsUnR0MzIpOnJuZDo+PjE6c2F0IixBVFRSSUJTKCksCisi Q3Jvc3MgdmVjdG9yIGFkZC1zdWIgaGFsZndvcmRzIHdpdGggc2hpZnQsIHJvdW5kLCBhbmQgc2F0 dXJhdGlvbiIsCit7CisgICAgICAgIGZTRVRIQUxGKDAsUmRkVixmU0FUSCgoZkdFVEhBTEYoMCxS c3NWKStmR0VUSEFMRigxLFJ0dFYpKzEpPj4xKSk7CisgICAgICAgIGZTRVRIQUxGKDEsUmRkVixm U0FUSCgoZkdFVEhBTEYoMSxSc3NWKS1mR0VUSEFMRigwLFJ0dFYpKzEpPj4xKSk7CisKKyAgICAg ICAgZlNFVEhBTEYoMixSZGRWLGZTQVRIKChmR0VUSEFMRigyLFJzc1YpK2ZHRVRIQUxGKDMsUnR0 VikrMSk+PjEpKTsKKyAgICAgICAgZlNFVEhBTEYoMyxSZGRWLGZTQVRIKChmR0VUSEFMRigzLFJz c1YpLWZHRVRIQUxGKDIsUnR0VikrMSk+PjEpKTsKKworfSkKK1E2SU5TTihTNF92eHN1YmFkZGhy LCJSZGQzMj12eHN1YmFkZGgoUnNzMzIsUnR0MzIpOnJuZDo+PjE6c2F0IixBVFRSSUJTKCksCisi Q3Jvc3MgdmVjdG9yIHN1Yi1hZGQgaGFsZndvcmRzIHdpdGggc2hpZnQsIHJvdW5kLCBhbmQgc2F0 dXJhdGlvbiIsCit7CisgICAgICAgIGZTRVRIQUxGKDAsUmRkVixmU0FUSCgoZkdFVEhBTEYoMCxS c3NWKS1mR0VUSEFMRigxLFJ0dFYpKzEpPj4xKSk7CisgICAgICAgIGZTRVRIQUxGKDEsUmRkVixm U0FUSCgoZkdFVEhBTEYoMSxSc3NWKStmR0VUSEFMRigwLFJ0dFYpKzEpPj4xKSk7CisKKyAgICAg ICAgZlNFVEhBTEYoMixSZGRWLGZTQVRIKChmR0VUSEFMRigyLFJzc1YpLWZHRVRIQUxGKDMsUnR0 VikrMSk+PjEpKTsKKyAgICAgICAgZlNFVEhBTEYoMyxSZGRWLGZTQVRIKChmR0VUSEFMRigzLFJz c1YpK2ZHRVRIQUxGKDIsUnR0VikrMSk+PjEpKTsKK30pCisKKworCisKKworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAxLzIgVmVjdG9yIG9wZXJh dGlvbnMgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworCisKK1E2SU5TTihBMl9zdmF2Z2gsIlJkMzI9dmF2Z2go UnMzMixSdDMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQXZnIHZlY3RvciBvZiBoYWxmIGludGVn ZXJzIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsr KSB7CisgICAgICAgICAgICBmU0VUSEFMRihpLFJkViwoKGZHRVRIQUxGKGksUnNWKStmR0VUSEFM RihpLFJ0VikpPj4xKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihBMl9zdmF2Z2hzLCJSZDMy PXZhdmdoKFJzMzIsUnQzMik6cm5kIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBdmcgdmVjdG9yIG9m IGhhbGYgaW50ZWdlcnMgd2l0aCByb3VuZGluZyIsCit7CisgICAgICAgIGZISURFKGludCBpOykK KyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworICAgICAgICAgICAgZlNFVEhBTEYoaSxSZFYs KChmR0VUSEFMRihpLFJzVikrZkdFVEhBTEYoaSxSdFYpKzEpPj4xKSk7CisgICAgICAgIH0KK30p CisKKworCitRNklOU04oQTJfc3ZuYXZnaCwiUmQzMj12bmF2Z2goUnQzMixSczMyKSIsQVRUUklC UyhBX0FSQ0hWMiksCisiQXZnIHZlY3RvciBvZiBoYWxmIGludGVnZXJzIiwKK3sKKyAgICAgICAg ZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBm U0VUSEFMRihpLFJkViwoKGZHRVRIQUxGKGksUnRWKS1mR0VUSEFMRihpLFJzVikpPj4xKSk7Cisg ICAgICAgIH0KK30pCisKKworUTZJTlNOKEEyX3N2YWRkaCwiUmQzMj12YWRkaChSczMyLFJ0MzIp IixBVFRSSUJTKCksCisiQWRkIHZlY3RvciBvZiBoYWxmIGludGVnZXJzIiwKK3sKKyAgICAgICAg ZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBm U0VUSEFMRihpLFJkVixmR0VUSEFMRihpLFJzVikrZkdFVEhBTEYoaSxSdFYpKTsKKyAgICAgICAg fQorfSkKKworUTZJTlNOKEEyX3N2YWRkaHMsIlJkMzI9dmFkZGgoUnMzMixSdDMyKTpzYXQiLEFU VFJJQlMoKSwKKyJBZGQgdmVjdG9yIG9mIGhhbGYgaW50ZWdlcnMgd2l0aCBzYXR1cmF0aW9uIiwK K3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7Cisg ICAgICAgICAgICBmU0VUSEFMRihpLFJkVixmU0FUTigxNixmR0VUSEFMRihpLFJzVikrZkdFVEhB TEYoaSxSdFYpKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihBMl9zdmFkZHVocywiUmQzMj12 YWRkdWgoUnMzMixSdDMyKTpzYXQiLEFUVFJJQlMoKSwKKyJBZGQgdmVjdG9yIG9mIHVuc2lnbmVk IGhhbGYgaW50ZWdlcnMgd2l0aCBzYXR1cmF0aW9uIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7 KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBmU0VUSEFMRihpLFJk VixmU0FUVU4oMTYsZkdFVFVIQUxGKGksUnNWKStmR0VUVUhBTEYoaSxSdFYpKSk7CisgICAgICAg IH0KK30pCisKKworUTZJTlNOKEEyX3N2c3ViaCwiUmQzMj12c3ViaChSdDMyLFJzMzIpIixBVFRS SUJTKCksCisiU3ViIHZlY3RvciBvZiBoYWxmIGludGVnZXJzIiwKK3sKKyAgICAgICAgZkhJREUo aW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBmU0VUSEFM RihpLFJkVixmR0VUSEFMRihpLFJ0ViktZkdFVEhBTEYoaSxSc1YpKTsKKyAgICAgICAgfQorfSkK KworUTZJTlNOKEEyX3N2c3ViaHMsIlJkMzI9dnN1YmgoUnQzMixSczMyKTpzYXQiLEFUVFJJQlMo KSwKKyJTdWIgdmVjdG9yIG9mIGhhbGYgaW50ZWdlcnMgd2l0aCBzYXR1cmF0aW9uIiwKK3sKKyAg ICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAg ICAgICBmU0VUSEFMRihpLFJkVixmU0FUTigxNixmR0VUSEFMRihpLFJ0ViktZkdFVEhBTEYoaSxS c1YpKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihBMl9zdnN1YnVocywiUmQzMj12c3VidWgo UnQzMixSczMyKTpzYXQiLEFUVFJJQlMoKSwKKyJTdWIgdmVjdG9yIG9mIHVuc2lnbmVkIGhhbGYg aW50ZWdlcnMgd2l0aCBzYXR1cmF0aW9uIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAg ICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBmU0VUSEFMRihpLFJkVixmU0FU VU4oMTYsZkdFVFVIQUxGKGksUnRWKS1mR0VUVUhBTEYoaSxSc1YpKSk7CisgICAgICAgIH0KK30p CisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LworLyogVmVjdG9yIFJlZHVjZSBBZGQgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKEEy X3ZyYWRkdWIsIlJkZDMyPXZyYWRkdWIoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiU3VtOiB0 d28gdmVjdG9ycyBvZiB1bnNpZ25lZCBieXRlcyIsCit7CisgICAgICAgIGZISURFKGludCBpOykK KyAgICAgICAgUmRkViA9IDA7CisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAg ICAgIGZTRVRXT1JEKDAsUmRkViwoZkdFVFdPUkQoMCxSZGRWKSArIChmR0VUVUJZVEUoaSxSc3NW KStmR0VUVUJZVEUoaSxSdHRWKSkpKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGk9NDtpPDg7 aSsrKSB7CisgICAgICAgICAgICBmU0VUV09SRCgxLFJkZFYsKGZHRVRXT1JEKDEsUmRkVikgKyAo ZkdFVFVCWVRFKGksUnNzVikrZkdFVFVCWVRFKGksUnR0VikpKSk7CisgICAgICAgIH0KK30pCisK K1E2SU5TTihBMl92cmFkZHViX2FjYywiUnh4MzIrPXZyYWRkdWIoUnNzMzIsUnR0MzIpIixBVFRS SUJTKCksCisiU3VtOiB0d28gdmVjdG9ycyBvZiB1bnNpZ25lZCBieXRlcyIsCit7CisgICAgICAg IGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAg ICAgICAgZlNFVFdPUkQoMCxSeHhWLChmR0VUV09SRCgwLFJ4eFYpICsgKGZHRVRVQllURShpLFJz c1YpK2ZHRVRVQllURShpLFJ0dFYpKSkpOworICAgICAgICB9CisgICAgICAgIGZvciAoaSA9IDQ7 IGkgPCA4OyBpKyspIHsKKyAgICAgICAgICAgIGZTRVRXT1JEKDEsUnh4ViwoZkdFVFdPUkQoMSxS eHhWKSArIChmR0VUVUJZVEUoaSxSc3NWKStmR0VUVUJZVEUoaSxSdHRWKSkpKTsKKyAgICAgICAg fQorfSkKKworCisKK1E2SU5TTihNMl92cmFkZGgsIlJkMzI9dnJhZGRoKFJzczMyLFJ0dDMyKSIs QVRUUklCUyhBX0FSQ0hWMyksCisiU3VtOiB0d28gdmVjdG9ycyBvZiBoYWx2ZXMiLAoreworICAg ICAgICBmSElERShpbnQgaTspCisgICAgICAgIFJkViA9IDA7CisgICAgICAgIGZvciAoaT0wO2k8 NDtpKyspIHsKKyAgICAgICAgICAgIFJkViArPSAoZkdFVEhBTEYoaSxSc3NWKStmR0VUSEFMRihp LFJ0dFYpKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKE0yX3ZyYWRkdWgsIlJkMzI9dnJhZGR1 aChSc3MzMixSdHQzMikiLEFUVFJJQlMoQV9BUkNIVjMpLAorIlN1bTogdHdvIHZlY3RvcnMgb2Yg dW5zaWduZWQgaGFsdmVzIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBSZFYg PSAwOworICAgICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgICAgICBSZFYgKz0gKGZH RVRVSEFMRihpLFJzc1YpK2ZHRVRVSEFMRihpLFJ0dFYpKTsKKyAgICAgICAgfQorfSkKKworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBWZWN0b3Ig U3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oQTJfdnN1YnViLCJSZGQz Mj12c3VidWIoUnR0MzIsUnNzMzIpIixBVFRSSUJTKCksCisiU3ViIHZlY3RvciBvZiBieXRlcyIs Cit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDg7IGkr KykgeworICAgICAgICAgICAgZlNFVEJZVEUoaSxSZGRWLChmR0VUVUJZVEUoaSxSdHRWKS1mR0VU VUJZVEUoaSxSc3NWKSkpOworICAgICAgICB9Cit9KQorCitRNklOU04oQTJfdnN1YnVicywiUmRk MzI9dnN1YnViKFJ0dDMyLFJzczMyKTpzYXQiLEFUVFJJQlMoKSwKKyJTdWIgdmVjdG9yIG9mIGJ5 dGVzIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwg ODsgaSsrKSB7CisgICAgICAgICAgICBmU0VUQllURShpLFJkZFYsZlNBVFVOKDgsZkdFVFVCWVRF KGksUnR0ViktZkdFVFVCWVRFKGksUnNzVikpKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKEEy X3ZzdWJoLCJSZGQzMj12c3ViaChSdHQzMixSc3MzMikiLEFUVFJJQlMoKSwKKyJTdWIgdmVjdG9y IG9mIGhhbGYgaW50ZWdlcnMiLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZv ciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgICAgIGZTRVRIQUxGKGksUmRkVixmR0VUSEFMRihp LFJ0dFYpLWZHRVRIQUxGKGksUnNzVikpOworICAgICAgICB9Cit9KQorCitRNklOU04oQTJfdnN1 YmhzLCJSZGQzMj12c3ViaChSdHQzMixSc3MzMik6c2F0IixBVFRSSUJTKCksCisiU3ViIHZlY3Rv ciBvZiBoYWxmIGludGVnZXJzIHdpdGggc2F0dXJhdGlvbiIsCit7CisgICAgICAgIGZISURFKGlu dCBpOykKKyAgICAgICAgZm9yIChpPTA7aTw0O2krKykgeworICAgICAgICAgICAgZlNFVEhBTEYo aSxSZGRWLGZTQVROKDE2LGZHRVRIQUxGKGksUnR0ViktZkdFVEhBTEYoaSxSc3NWKSkpOworICAg ICAgICB9Cit9KQorCitRNklOU04oQTJfdnN1YnVocywiUmRkMzI9dnN1YnVoKFJ0dDMyLFJzczMy KTpzYXQiLEFUVFJJQlMoKSwKKyJTdWIgdmVjdG9yIG9mIHVuc2lnbmVkIGhhbGYgaW50ZWdlcnMg d2l0aCBzYXR1cmF0aW9uIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3Ig KGk9MDtpPDQ7aSsrKSB7CisgICAgICAgICAgICBmU0VUSEFMRihpLFJkZFYsZlNBVFVOKDE2LGZH RVRVSEFMRihpLFJ0dFYpLWZHRVRVSEFMRihpLFJzc1YpKSk7CisgICAgICAgIH0KK30pCisKK1E2 SU5TTihBMl92c3VidywiUmRkMzI9dnN1YncoUnR0MzIsUnNzMzIpIixBVFRSSUJTKCksCisiU3Vi IHZlY3RvciBvZiB3b3JkcyIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9y IChpPTA7aTwyO2krKykgeworICAgICAgICAgICAgZlNFVFdPUkQoaSxSZGRWLGZHRVRXT1JEKGks UnR0ViktZkdFVFdPUkQoaSxSc3NWKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihBMl92c3Vi d3MsIlJkZDMyPXZzdWJ3KFJ0dDMyLFJzczMyKTpzYXQiLEFUVFJJQlMoKSwKKyJTdWIgdmVjdG9y IG9mIHdvcmRzIHdpdGggc2F0dXJhdGlvbiIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAg ICAgICAgZm9yIChpPTA7aTwyO2krKykgeworICAgICAgICAgICAgZlNFVFdPUkQoaSxSZGRWLGZT QVROKDMyLGZHRVRXT1JEKGksUnR0ViktZkdFVFdPUkQoaSxSc3NWKSkpOworICAgICAgICB9Cit9 KQorCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qIFZlY3RvciBBYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihB Ml92YWJzaCwiUmRkMzI9dmFic2goUnNzMzIpIixBVFRSSUJTKCksCisiTmVnYXRlIHZlY3RvciBv ZiBoYWxmIGludGVnZXJzIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3Ig KGk9MDtpPDQ7aSsrKSB7CisgICAgICAgICAgICBmU0VUSEFMRihpLFJkZFYsZkFCUyhmR0VUSEFM RihpLFJzc1YpKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihBMl92YWJzaHNhdCwiUmRkMzI9 dmFic2goUnNzMzIpOnNhdCIsQVRUUklCUygpLAorIk5lZ2F0ZSB2ZWN0b3Igb2YgaGFsZiBpbnRl Z2VycyIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTw0O2kr KykgeworICAgICAgICAgICAgZlNFVEhBTEYoaSxSZGRWLGZTQVRIKGZBQlMoZkdFVEhBTEYoaSxS c3NWKSkpKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKEEyX3ZhYnN3LCJSZGQzMj12YWJzdyhS c3MzMikiLEFUVFJJQlMoKSwKKyJBYnNvbHV0ZSBWYWx1ZSB2ZWN0b3Igb2Ygd29yZHMiLAorewor ICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8MjtpKyspIHsKKyAgICAg ICAgICAgIGZTRVRXT1JEKGksUmRkVixmQUJTKGZHRVRXT1JEKGksUnNzVikpKTsKKyAgICAgICAg fQorfSkKKworUTZJTlNOKEEyX3ZhYnN3c2F0LCJSZGQzMj12YWJzdyhSc3MzMik6c2F0IixBVFRS SUJTKCksCisiQWJzb2x1dGUgVmFsdWUgdmVjdG9yIG9mIHdvcmRzIiwKK3sKKyAgICAgICAgZkhJ REUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBmU0VU V09SRChpLFJkZFYsZlNBVChmQUJTKGZHRVRXT1JEKGksUnNzVikpKSk7CisgICAgICAgIH0KK30p CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyog VmVjdG9yIFNBRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCitRNklOU04oTTJfdmFi c2RpZmZ3LCJSZGQzMj12YWJzZGlmZncoUnR0MzIsUnNzMzIpIixBVFRSSUJTKEFfQVJDSFYyKSwK KyJBYnNvbHV0ZSBEaWZmZXJlbmNlczogdmVjdG9yIG9mIHdvcmRzIiwKK3sKKyAgICAgICAgZkhJ REUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBmU0VU V09SRChpLFJkZFYsZkFCUyhmR0VUV09SRChpLFJ0dFYpIC0gZkdFVFdPUkQoaSxSc3NWKSkpOwor ICAgICAgICB9Cit9KQorCitRNklOU04oTTJfdmFic2RpZmZoLCJSZGQzMj12YWJzZGlmZmgoUnR0 MzIsUnNzMzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBYnNvbHV0ZSBEaWZmZXJlbmNlczogdmVj dG9yIG9mIGhhbGZ3b3JkcyIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9y IChpPTA7aTw0O2krKykgeworICAgICAgICAgICAgZlNFVEhBTEYoaSxSZGRWLGZBQlMoZkdFVEhB TEYoaSxSdHRWKSAtIGZHRVRIQUxGKGksUnNzVikpKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNO KE02X3ZhYnNkaWZmYiwiUmRkMzI9dmFic2RpZmZiKFJ0dDMyLFJzczMyKSIsQVRUUklCUygpLAor IkFic29sdXRlIERpZmZlcmVuY2VzOiB2ZWN0b3Igb2YgaGFsZndvcmRzIiwKK3sKKyAgICAgICAg ZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDg7aSsrKSB7CisgICAgICAgICAgICBm U0VUQllURShpLFJkZFYsZkFCUyhmR0VUQllURShpLFJ0dFYpIC0gZkdFVEJZVEUoaSxSc3NWKSkp OworICAgICAgICB9Cit9KQorCitRNklOU04oTTZfdmFic2RpZmZ1YiwiUmRkMzI9dmFic2RpZmZ1 YihSdHQzMixSc3MzMikiLEFUVFJJQlMoKSwKKyJBYnNvbHV0ZSBEaWZmZXJlbmNlczogdmVjdG9y IG9mIGhhbGZ3b3JkcyIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChp PTA7aTw4O2krKykgeworICAgICAgICAgICAgZlNFVEJZVEUoaSxSZGRWLGZBQlMoZkdFVFVCWVRF KGksUnR0VikgLSBmR0VUVUJZVEUoaSxSc3NWKSkpOworICAgICAgICB9Cit9KQorCisKKworUTZJ TlNOKEEyX3Zyc2FkdWIsIlJkZDMyPXZyc2FkdWIoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisi U3VtIG9mIEFic29sdXRlIERpZmZlcmVuY2VzOiB2ZWN0b3Igb2YgdW5zaWduZWQgYnl0ZXMiLAor eworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIFJkZFYgPSAwOworICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgICAgICBmU0VUV09SRCgwLFJkZFYsKGZHRVRX T1JEKDAsUmRkVikgKyBmQUJTKChmR0VUVUJZVEUoaSxSc3NWKSAtIGZHRVRVQllURShpLFJ0dFYp KSkpKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSA0OyBpIDwgODsgaSsrKSB7CisgICAg ICAgICAgICBmU0VUV09SRCgxLFJkZFYsKGZHRVRXT1JEKDEsUmRkVikgKyBmQUJTKChmR0VUVUJZ VEUoaSxSc3NWKSAtIGZHRVRVQllURShpLFJ0dFYpKSkpKTsKKyAgICAgICAgfQorfSkKKworUTZJ TlNOKEEyX3Zyc2FkdWJfYWNjLCJSeHgzMis9dnJzYWR1YihSc3MzMixSdHQzMikiLEFUVFJJQlMo KSwKKyJTdW0gb2YgQWJzb2x1dGUgRGlmZmVyZW5jZXM6IHZlY3RvciBvZiB1bnNpZ25lZCBieXRl cyIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7 IGkrKykgeworICAgICAgICAgICAgZlNFVFdPUkQoMCxSeHhWLChmR0VUV09SRCgwLFJ4eFYpICsg ZkFCUygoZkdFVFVCWVRFKGksUnNzVikgLSBmR0VUVUJZVEUoaSxSdHRWKSkpKSk7CisgICAgICAg IH0KKyAgICAgICAgZm9yIChpID0gNDsgaSA8IDg7IGkrKykgeworICAgICAgICAgICAgZlNFVFdP UkQoMSxSeHhWLChmR0VUV09SRCgxLFJ4eFYpICsgZkFCUygoZkdFVFVCWVRFKGksUnNzVikgLSBm R0VUVUJZVEUoaSxSdHRWKSkpKSk7CisgICAgICAgIH0KK30pCisKKworLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBWZWN0b3IgQXZlcmFnZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworCitRNklOU04oQTJfdmF2Z3ViLCJSZGQzMj12YXZndWIoUnNz MzIsUnR0MzIpIixBVFRSSUJTKCksCisiQXZlcmFnZSB2ZWN0b3Igb2YgdW5zaWduZWQgYnl0ZXMi LAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA4OyBp KyspIHsKKyAgICAgICAgICAgIGZTRVRCWVRFKGksUmRkViwoKGZHRVRVQllURShpLFJzc1YpICsg ZkdFVFVCWVRFKGksUnR0VikpPj4xKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihBMl92YXZn dWgsIlJkZDMyPXZhdmd1aChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJBdmVyYWdlIHZlY3Rv ciBvZiB1bnNpZ25lZCBoYWxmd29yZHMiLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAg ICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgICAgIGZTRVRIQUxGKGksUmRkViwoZkdF VFVIQUxGKGksUnNzVikrZkdFVFVIQUxGKGksUnR0VikpPj4xKTsKKyAgICAgICAgfQorfSkKKwor UTZJTlNOKEEyX3ZhdmdoLCJSZGQzMj12YXZnaChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJB dmVyYWdlIHZlY3RvciBvZiBoYWxmd29yZHMiLAoreworICAgICAgICBmSElERShpbnQgaTspCisg ICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgICAgIGZTRVRIQUxGKGksUmRkViwo ZkdFVEhBTEYoaSxSc3NWKStmR0VUSEFMRihpLFJ0dFYpKT4+MSk7CisgICAgICAgIH0KK30pCisK K1E2SU5TTihBMl92bmF2Z2gsIlJkZDMyPXZuYXZnaChSdHQzMixSc3MzMikiLEFUVFJJQlMoKSwK KyJOZWdhdGl2ZSBBdmVyYWdlIHZlY3RvciBvZiBoYWxmd29yZHMiLAoreworICAgICAgICBmSElE RShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgICAgIGZTRVRI QUxGKGksUmRkViwoZkdFVEhBTEYoaSxSdHRWKS1mR0VUSEFMRihpLFJzc1YpKT4+MSk7CisgICAg ICAgIH0KK30pCisKK1E2SU5TTihBMl92YXZndywiUmRkMzI9dmF2Z3coUnNzMzIsUnR0MzIpIixB VFRSSUJTKCksCisiQXZlcmFnZSB2ZWN0b3Igb2Ygd29yZHMiLAoreworICAgICAgICBmSElERShp bnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8MjtpKyspIHsKKyAgICAgICAgICAgIGZTRVRXT1JE KGksUmRkViwoZlNYVE4oMzIsMzMsZkdFVFdPUkQoaSxSc3NWKSkrZlNYVE4oMzIsMzMsZkdFVFdP UkQoaSxSdHRWKSkpPj4xKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKEEyX3ZuYXZndywiUmRk MzI9dm5hdmd3KFJ0dDMyLFJzczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQXZlcmFnZSB2ZWN0 b3Igb2Ygd29yZHMiLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0w O2k8MjtpKyspIHsKKyAgICAgICAgICAgIGZTRVRXT1JEKGksUmRkViwoZlNYVE4oMzIsMzMsZkdF VFdPUkQoaSxSdHRWKSktZlNYVE4oMzIsMzMsZkdFVFdPUkQoaSxSc3NWKSkpPj4xKTsKKyAgICAg ICAgfQorfSkKKworUTZJTlNOKEEyX3Zhdmd3ciwiUmRkMzI9dmF2Z3coUnNzMzIsUnR0MzIpOnJu ZCIsQVRUUklCUygpLAorIkF2ZXJhZ2UgdmVjdG9yIG9mIHdvcmRzIiwKK3sKKyAgICAgICAgZkhJ REUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBmU0VU V09SRChpLFJkZFYsKGZTWFROKDMyLDMzLGZHRVRXT1JEKGksUnNzVikpK2ZTWFROKDMyLDMzLGZH RVRXT1JEKGksUnR0VikpKzEpPj4xKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKEEyX3ZuYXZn d3IsIlJkZDMyPXZuYXZndyhSdHQzMixSc3MzMik6cm5kOnNhdCIsQVRUUklCUyhBX0FSQ0hWMiks CisiQXZlcmFnZSB2ZWN0b3Igb2Ygd29yZHMiLAoreworICAgICAgICBmSElERShpbnQgaTspCisg ICAgICAgIGZvciAoaT0wO2k8MjtpKyspIHsKKyAgICAgICAgICAgIGZTRVRXT1JEKGksUmRkVixm U0FUKChmU1hUTigzMiwzMyxmR0VUV09SRChpLFJ0dFYpKS1mU1hUTigzMiwzMyxmR0VUV09SRChp LFJzc1YpKSsxKT4+MSkpOworICAgICAgICB9Cit9KQorCitRNklOU04oQTJfdmF2Z3djciwiUmRk MzI9dmF2Z3coUnNzMzIsUnR0MzIpOmNybmQiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkF2ZXJhZ2Ug dmVjdG9yIG9mIHdvcmRzIHdpdGggY29udmVyZ2VudCByb3VuZGluZyIsCit7CisgICAgICAgIGZI SURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworICAgICAgICAgICAgZlNF VFdPUkQoaSxSZGRWLChmQ1JORChmU1hUTigzMiwzMyxmR0VUV09SRChpLFJzc1YpKStmU1hUTigz MiwzMyxmR0VUV09SRChpLFJ0dFYpKSk+PjEpKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKEEy X3ZuYXZnd2NyLCJSZGQzMj12bmF2Z3coUnR0MzIsUnNzMzIpOmNybmQ6c2F0IixBVFRSSUJTKEFf QVJDSFYyKSwKKyJBdmVyYWdlIG5lZ2F0aXZlIHZlY3RvciBvZiB3b3JkcyB3aXRoIGNvbnZlcmdl bnQgcm91bmRpbmciLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0w O2k8MjtpKyspIHsKKyAgICAgICAgICAgIGZTRVRXT1JEKGksUmRkVixmU0FUKGZDUk5EKGZTWFRO KDMyLDMzLGZHRVRXT1JEKGksUnR0VikpLWZTWFROKDMyLDMzLGZHRVRXT1JEKGksUnNzVikpKT4+ MSkpOworICAgICAgICB9Cit9KQorCitRNklOU04oQTJfdmF2Z2hjciwiUmRkMzI9dmF2Z2goUnNz MzIsUnR0MzIpOmNybmQiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkF2ZXJhZ2UgdmVjdG9yIG9mIGhh bGZ3b3JkcyB3aXRoIGNvbnYgcm91bmRpbmciLAoreworICAgICAgICBmSElERShpbnQgaTspCisg ICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgICAgIGZTRVRIQUxGKGksUmRkVixm Q1JORChmR0VUSEFMRihpLFJzc1YpK2ZHRVRIQUxGKGksUnR0VikpPj4xKTsKKyAgICAgICAgfQor fSkKKworUTZJTlNOKEEyX3ZuYXZnaGNyLCJSZGQzMj12bmF2Z2goUnR0MzIsUnNzMzIpOmNybmQ6 c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBdmVyYWdlIG5lZ2F0aXZlIHZlY3RvciBvZiBoYWxm d29yZHMgd2l0aCBjb252IHJvdW5kaW5nIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAg ICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgICAgICBmU0VUSEFMRihpLFJkZFYsZlNB VEgoZkNSTkQoZkdFVEhBTEYoaSxSdHRWKS1mR0VUSEFMRihpLFJzc1YpKT4+MSkpOworICAgICAg ICB9Cit9KQorCisKK1E2SU5TTihBMl92YXZndXcsIlJkZDMyPXZhdmd1dyhSc3MzMixSdHQzMiki LEFUVFJJQlMoKSwKKyJBdmVyYWdlIHZlY3RvciBvZiB1bnNpZ25lZCB3b3JkcyIsCit7CisgICAg ICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworICAgICAgICAg ICAgZlNFVFdPUkQoaSxSZGRWLChmWlhUTigzMiwzMyxmR0VUVVdPUkQoaSxSc3NWKSkrZlpYVE4o MzIsMzMsZkdFVFVXT1JEKGksUnR0VikpKT4+MSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihB Ml92YXZndXdyLCJSZGQzMj12YXZndXcoUnNzMzIsUnR0MzIpOnJuZCIsQVRUUklCUygpLAorIkF2 ZXJhZ2UgdmVjdG9yIG9mIHVuc2lnbmVkIHdvcmRzIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7 KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgICAgICBmU0VUV09SRChpLFJk ZFYsKGZaWFROKDMyLDMzLGZHRVRVV09SRChpLFJzc1YpKStmWlhUTigzMiwzMyxmR0VUVVdPUkQo aSxSdHRWKSkrMSk+PjEpOworICAgICAgICB9Cit9KQorCitRNklOU04oQTJfdmF2Z3ViciwiUmRk MzI9dmF2Z3ViKFJzczMyLFJ0dDMyKTpybmQiLEFUVFJJQlMoKSwKKyJBdmVyYWdlIHZlY3RvciBv ZiB1bnNpZ25lZCBieXRlcyIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9y IChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICAgICAgZlNFVEJZVEUoaSxSZGRWLCgoZkdF VFVCWVRFKGksUnNzVikrZkdFVFVCWVRFKGksUnR0VikrMSk+PjEpKTsKKyAgICAgICAgfQorfSkK KworUTZJTlNOKEEyX3Zhdmd1aHIsIlJkZDMyPXZhdmd1aChSc3MzMixSdHQzMik6cm5kIixBVFRS SUJTKCksCisiQXZlcmFnZSB2ZWN0b3Igb2YgdW5zaWduZWQgaGFsZndvcmRzIHdpdGggcm91bmRp bmciLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKysp IHsKKyAgICAgICAgICAgIGZTRVRIQUxGKGksUmRkViwoZkdFVFVIQUxGKGksUnNzVikrZkdFVFVI QUxGKGksUnR0VikrMSk+PjEpOworICAgICAgICB9Cit9KQorCitRNklOU04oQTJfdmF2Z2hyLCJS ZGQzMj12YXZnaChSc3MzMixSdHQzMik6cm5kIixBVFRSSUJTKCksCisiQXZlcmFnZSB2ZWN0b3Ig b2YgaGFsZndvcmRzIHdpdGggcm91bmRpbmciLAoreworICAgICAgICBmSElERShpbnQgaTspCisg ICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgICAgIGZTRVRIQUxGKGksUmRkViwo ZkdFVEhBTEYoaSxSc3NWKStmR0VUSEFMRihpLFJ0dFYpKzEpPj4xKTsKKyAgICAgICAgfQorfSkK KworUTZJTlNOKEEyX3ZuYXZnaHIsIlJkZDMyPXZuYXZnaChSdHQzMixSc3MzMik6cm5kOnNhdCIs QVRUUklCUyhBX0FSQ0hWMiksCisiTmVnYXRpdmUgQXZlcmFnZSB2ZWN0b3Igb2YgaGFsZndvcmRz IHdpdGggcm91bmRpbmciLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAo aT0wO2k8NDtpKyspIHsKKyAgICAgICAgICAgIGZTRVRIQUxGKGksUmRkVixmU0FUSCgoZkdFVEhB TEYoaSxSdHRWKS1mR0VUSEFMRihpLFJzc1YpKzEpPj4xKSk7CisgICAgICAgIH0KK30pCisKKwor LyogUm91bmRpbmcgSW5zdHJ1Y3Rpb24gKi8KKworUTZJTlNOKEE0X3JvdW5kX3JpLCJSZDMyPXJv dW5kKFJzMzIsI3U1KSIsQVRUUklCUygpLCJSb3VuZCIsIHtSZFYgPSBmUk5ETihSc1YsdWlWKT4+ dWlWOyB9KQorUTZJTlNOKEE0X3JvdW5kX3JyLCJSZDMyPXJvdW5kKFJzMzIsUnQzMikiLEFUVFJJ QlMoKSwiUm91bmQiLCB7UmRWID0gZlJORE4oUnNWLGZaWFROKDUsMzIsUnRWKSk+PmZaWFROKDUs MzIsUnRWKTsgfSkKK1E2SU5TTihBNF9yb3VuZF9yaV9zYXQsIlJkMzI9cm91bmQoUnMzMiwjdTUp OnNhdCIsQVRUUklCUygpLCJSb3VuZCIsIHtSZFYgPSAoZlNBVChmUk5ETihSc1YsdWlWKSkpPj51 aVY7IH0pCitRNklOU04oQTRfcm91bmRfcnJfc2F0LCJSZDMyPXJvdW5kKFJzMzIsUnQzMik6c2F0 IixBVFRSSUJTKCksIlJvdW5kIiwge1JkViA9IChmU0FUKGZSTkROKFJzVixmWlhUTig1LDMyLFJ0 VikpKSk+PmZaWFROKDUsMzIsUnRWKTsgfSkKKworCitRNklOU04oQTRfY3JvdW5kX3JpLCJSZDMy PWNyb3VuZChSczMyLCN1NSkiLEFUVFJJQlMoKSwiQ29udmVyZ2VudCBSb3VuZCIsIHtSZFYgPSBm Q1JORE4oUnNWLHVpVik7IH0pCitRNklOU04oQTRfY3JvdW5kX3JyLCJSZDMyPWNyb3VuZChSczMy LFJ0MzIpIixBVFRSSUJTKCksIkNvbnZlcmdlbnQgUm91bmQiLCB7UmRWID0gZkNSTkROKFJzVixm WlhUTig1LDMyLFJ0VikpOyB9KQorCisKKyNkZWZpbmUgQ1JPVU5EKERTVCxTUkMsU0hJRlQpIFwK KyAgICAgICAgZkhJREUoc2l6ZTE2c190IHJuZGJpdF8xMjg7KVwKKyAgICAgICAgZkhJREUoc2l6 ZTE2c190IHRtcDEyODspXAorICAgICAgICBmSElERShzaXplMTZzX3Qgc3JjXzEyODspXAorICAg ICAgICBpZiAoU0hJRlQgPT0gMCkgeyBcCisgICAgICAgICAgICBEU1QgPSBTUkM7XAorICAgICAg ICB9IGVsc2UgaWYgKChTUkMgJiAoc2l6ZThzX3QpKCgxTEwgPDwgKFNISUZUIC0gMSkpIC0gMUxM KSkgPT0gMCkgeyBcCisgICAgICAgICAgICBzcmNfMTI4ID0gZkNBU1Q4U18xNlMoU1JDKTtcCisg ICAgICAgICAgICBybmRiaXRfMTI4ID0gZkNBU1Q4U18xNlMoMUxMKTtcCisgICAgICAgICAgICBy bmRiaXRfMTI4ID0gZlNISUZUTDEyOChybmRiaXRfMTI4LCBTSElGVCk7XAorICAgICAgICAgICAg cm5kYml0XzEyOCA9IGZBTkQxMjgocm5kYml0XzEyOCwgc3JjXzEyOCk7XAorICAgICAgICAgICAg cm5kYml0XzEyOCA9IGZTSElGVFIxMjgocm5kYml0XzEyOCwgMSk7XAorICAgICAgICAgICAgdG1w MTI4ID0gZkFERDEyOChzcmNfMTI4LCBybmRiaXRfMTI4KTtcCisgICAgICAgICAgICB0bXAxMjgg PSBmU0hJRlRSMTI4KHRtcDEyOCwgU0hJRlQpO1wKKyAgICAgICAgICAgIERTVCA9ICBmQ0FTVDE2 U184Uyh0bXAxMjgpO1wKKyAgICAgICAgfSBlbHNlIHtcCisgICAgICAgICAgICBzaXplMTZzX3Qg cm5kYml0XzEyOCA9ICBmQ0FTVDhTXzE2UygoMUxMIDw8IChTSElGVCAtIDEpKSk7IFwKKyAgICAg ICAgICAgIHNpemUxNnNfdCBzcmNfMTI4ID0gIGZDQVNUOFNfMTZTKFNSQyk7IFwKKyAgICAgICAg ICAgIHNpemUxNnNfdCB0bXAxMjggPSBmQUREMTI4KHNyY18xMjgsIHJuZGJpdF8xMjgpO1wKKyAg ICAgICAgICAgIHRtcDEyOCA9IGZTSElGVFIxMjgodG1wMTI4LCBTSElGVCk7XAorICAgICAgICAg ICAgRFNUID0gIGZDQVNUMTZTXzhTKHRtcDEyOCk7XAorICAgICAgICB9CisKK1E2SU5TTihBN19j cm91bmRkX3JpLCJSZGQzMj1jcm91bmQoUnNzMzIsI3U2KSIsQVRUUklCUygpLCJDb252ZXJnZW50 IFJvdW5kIiwKK3sKK0NST1VORChSZGRWLFJzc1YsdWlWKTsKK30pCisKK1E2SU5TTihBN19jcm91 bmRkX3JyLCJSZGQzMj1jcm91bmQoUnNzMzIsUnQzMikiLEFUVFJJQlMoKSwiQ29udmVyZ2VudCBS b3VuZCIsCit7CitDUk9VTkQoUmRkVixSc3NWLGZaWFROKDYsMzIsUnRWKSk7Cit9KQorCisKKwor CisKKworCisKKworUTZJTlNOKEE3X2NsaXAsIlJkMzI9Y2xpcChSczMyLCN1NSkiLEFUVFJJQlMo KSwiQ2xpcCB0byAgI3M1IiwgeyAgIGZDTElQKFJkVixSc1YsdWlWKTt9KQorUTZJTlNOKEE3X3Zj bGlwLCJSZGQzMj12Y2xpcChSc3MzMiwjdTUpIixBVFRSSUJTKCksIkNsaXAgdG8gICNzNSIsCit7 CitmSElERShzaXplNHNfdCB0bXA7KQorZkNMSVAodG1wLCBmR0VUV09SRCgwLCBSc3NWKSwgdWlW KTsKK2ZTRVRXT1JEKDAsIFJkZFYsIHRtcCk7CitmQ0xJUCh0bXAsZkdFVFdPUkQoMSwgUnNzViks IHVpVik7CitmU0VUV09SRCgxLCBSZGRWLCB0bXApOworfQorKQorCisKKworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBWNDogQ3Jvc3MgVmVjdG9y IE1pbi9NYXggICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworCisKKyNkZWZpbmUgVlJNSU5PUk1BWChUQUcsU1RSLE9Q LFNIT1JUVFlQRSxTRVRUWVBFLEdFVFRZUEUsTkVMLFNISUZUKSBcCitRNklOU04oQTRfdnIjI1RB RyMjU0hPUlRUWVBFLCJSeHgzMj12ciIjVEFHI1NIT1JUVFlQRSIoUnNzMzIsUnUzMikiLEFUVFJJ QlMoKSwgXAorIkNob29zZSAiIFNUUiAiIGVsZW1lbnRzIG9mIGEgdmVjdG9yIiwgXAoreyBcCisg ICAgICAgIGZISURFKGludCBpOyBzaXplOHNfdCBUQUc7IHNpemU0c190IGFkZHI7KSBcCisgICAg ICAgIFRBRyA9IGZHRVQjI0dFVFRZUEUoMCxSeHhWKTsgXAorICAgICAgICBhZGRyID0gZkdFVFdP UkQoMSxSeHhWKTsgXAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgTkVMOyBpKyspIHsgXAorICAg ICAgICAgICAgaWYgKFRBRyBPUCBmR0VUIyNHRVRUWVBFKGksUnNzVikpIHsgXAorICAgICAgICAg ICAgICAgIFRBRyA9IGZHRVQjI0dFVFRZUEUoaSxSc3NWKTsgXAorICAgICAgICAgICAgICAgIGFk ZHIgPSBSdVYgfCBpPDxTSElGVDsgXAorICAgICAgICAgICAgfSBcCisgICAgICAgIH0gXAorICAg ICAgICBmU0VUV09SRCgwLFJ4eFYsVEFHKTsgXAorICAgICAgICBmU0VUV09SRCgxLFJ4eFYsYWRk cik7IFwKK30pCisKKyNkZWZpbmUgUk1JTk1BWChTSE9SVFRZUEUsU0VUVFlQRSxHRVRUWVBFLE5F TCxTSElGVCkgXAorVlJNSU5PUk1BWChtaW4sIm1pbmltdW0iLD4sU0hPUlRUWVBFLFNFVFRZUEUs R0VUVFlQRSxORUwsU0hJRlQpIFwKK1ZSTUlOT1JNQVgobWF4LCJtYXhpbXVtIiw8LFNIT1JUVFlQ RSxTRVRUWVBFLEdFVFRZUEUsTkVMLFNISUZUKQorCisKK1JNSU5NQVgoaCxIQUxGLEhBTEYsNCwx KQorUk1JTk1BWCh1aCxIQUxGLFVIQUxGLDQsMSkKK1JNSU5NQVgodyxXT1JELFdPUkQsMiwyKQor Uk1JTk1BWCh1dyxXT1JELFVXT1JELDIsMikKKworI3VuZGVmIFJNSU5NQVgKKyN1bmRlZiBWUk1J Tk9STUFYCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LworLyogVmVjdG9yIE1pbi9NYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBW TUlOT1JNQVgoVEFHLFNUUixGVU5DLFNIT1JUVFlQRSxTRVRUWVBFLEdFVFRZUEUsTkVMKSBcCitR NklOU04oQTJfdiMjVEFHIyNTSE9SVFRZUEUsIlJkZDMyPXYiI1RBRyNTSE9SVFRZUEUiKFJ0dDMy LFJzczMyKSIsQVRUUklCUygpLCBcCisiQ2hvb3NlICIgU1RSICIgZWxlbWVudHMgb2YgdHdvIHZl Y3RvcnMiLCBcCit7IFwKKyAgICAgICAgZkhJREUoaW50IGk7KSBcCisgICAgICAgIGZvciAoaSA9 IDA7IGkgPCBORUw7IGkrKykgeyBcCisgICAgICAgICAgICBmU0VUIyNTRVRUWVBFKGksUmRkVixG VU5DKGZHRVQjI0dFVFRZUEUoaSxSdHRWKSxmR0VUIyNHRVRUWVBFKGksUnNzVikpKTsgXAorICAg ICAgICB9IFwKK30pCisKKyNkZWZpbmUgVk1JTk9STUFYMyhUQUcsU1RSLEZVTkMsU0hPUlRUWVBF LFNFVFRZUEUsR0VUVFlQRSxORUwpIFwKK1E2SU5TTihBNl92IyNUQUcjI1NIT1JUVFlQRSMjMywi Unh4MzI9diIjVEFHI1NIT1JUVFlQRSIzKFJ0dDMyLFJzczMyKSIsQVRUUklCUygpLCBcCisiQ2hv b3NlICIgU1RSICIgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMiLCBcCit7IFwKKyAgICAgICAgZkhJ REUoaW50IGk7KSBcCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBORUw7IGkrKykgeyBcCisgICAg ICAgICAgICBmU0VUIyNTRVRUWVBFKGksUnh4VixGVU5DKGZHRVQjI0dFVFRZUEUoaSxSeHhWKSxG VU5DKGZHRVQjI0dFVFRZUEUoaSxSdHRWKSxmR0VUIyNHRVRUWVBFKGksUnNzVikpKSk7IFwKKyAg ICAgICAgfSBcCit9KQorCisjZGVmaW5lIE1JTk1BWChTSE9SVFRZUEUsU0VUVFlQRSxHRVRUWVBF LE5FTCkgXAorVk1JTk9STUFYKG1pbiwibWluaW11bSIsZk1JTixTSE9SVFRZUEUsU0VUVFlQRSxH RVRUWVBFLE5FTCkgXAorVk1JTk9STUFYKG1heCwibWF4aW11bSIsZk1BWCxTSE9SVFRZUEUsU0VU VFlQRSxHRVRUWVBFLE5FTCkKKworTUlOTUFYKGIsQllURSxCWVRFLDgpCitNSU5NQVgodWIsQllU RSxVQllURSw4KQorTUlOTUFYKGgsSEFMRixIQUxGLDQpCitNSU5NQVgodWgsSEFMRixVSEFMRiw0 KQorTUlOTUFYKHcsV09SRCxXT1JELDIpCitNSU5NQVgodXcsV09SRCxVV09SRCwyKQorCisjdW5k ZWYgTUlOTUFYCisjdW5kZWYgVk1JTk9STUFYCisjdW5kZWYgVk1JTk9STUFYMworCisKKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogVmVjdG9yIE1p bi9NYXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCitRNklOU04oQTRfbW9kd3JhcHUsIlJk MzI9bW9kd3JhcChSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiV3JhcCB0byBhbiB1bnNpZ25lZCBt b2R1bG8gYnVmZmVyIiwKK3sKKyAgICAgICAgaWYgKFJzViA8IDApIHsKKyAgICAgICAgICAgIFJk ViA9IFJzViArIGZDQVNUNHUoUnRWKTsKKyAgICAgICAgfSBlbHNlIGlmIChmQ0FTVDR1KFJzVikg Pj0gZkNBU1Q0dShSdFYpKSB7CisgICAgICAgICAgICBSZFYgPSBSc1YgLSBmQ0FTVDR1KFJ0Vik7 CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBSZFYgPSBSc1Y7CisgICAgICAgIH0KK30p CmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9icmFuY2guaWRlZiBiL3Rhcmdl dC9oZXhhZ29uL2ltcG9ydGVkL2JyYW5jaC5pZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjg4ZjVmNDgKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9pbXBv cnRlZC9icmFuY2guaWRlZgpAQCAtMCwwICsxLDMyNiBAQAorLyoKKyAqICBDb3B5cmlnaHQoYykg MjAxOS0yMDIxIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVz ZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv cgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLwor CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBK dW1wIGluc3RydWN0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBBX0pESVIgQV9K VU1QCisjZGVmaW5lIEFfQ0pORVdESVIgQV9KVU1QCisjZGVmaW5lIEFfQ0pPTERESVIgQV9KVU1Q CisjZGVmaW5lIEFfTkVXVkFMVUVKIEFfSlVNUCxBX0RPVE5FV1ZBTFVFLEFfTUVNTElLRV9QQUNL RVRfUlVMRVMKKyNkZWZpbmUgQV9KSU5ESVIgQV9KVU1QLEFfSU5ESVJFQ1QKKyNkZWZpbmUgQV9K SU5ESVJORVcgQV9KVU1QLEFfSU5ESVJFQ1QKKyNkZWZpbmUgQV9KSU5ESVJPTEQgQV9KVU1QLEFf SU5ESVJFQ1QKKworUTZJTlNOKEoyX2p1bXAsImp1bXAgI3IyMjoyIixBVFRSSUJTKEFfSkRJUiks ICJkaXJlY3QgdW5jb25kaXRpb25hbCBqdW1wIiwKK3tmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJp Vik7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7fSkKKworUTZJTlNOKEoy X2p1bXByLCJqdW1wciBSczMyIixBVFRSSUJTKEFfSklORElSKSwgImluZGlyZWN0IHVuY29uZGl0 aW9uYWwganVtcCIsCit7ZkpVTVBSKFJzTixSc1YsQ09GX1RZUEVfSlVNUFIpO30pCisKKyNkZWZp bmUgT0xEQ09ORF9KVU1QKFRBRyxPUEVSLE9QRVIyLEFUVFJJQixERVNDUixTRU1BTlRJQ1MpIFwK K1E2SU5TTihUQUcjI3QsImlmIChQdTQpICJPUEVSIjpudCAiT1BFUjIsQVRUUklCLERFU0NSLHtm QlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCT0xEKFB1ViksLFNQRUNVTEFURV9OT1RfVEFLRU4s MTIsMCk7IGlmIChmTFNCT0xEKFB1VikpIHsgU0VNQU5USUNTOyB9fSkgXAorUTZJTlNOKFRBRyMj ZiwiaWYgKCFQdTQpICJPUEVSIjpudCAiT1BFUjIsQVRUUklCLERFU0NSLHtmQlJBTkNIX1NQRUNV TEFURV9TVEFMTChmTFNCT0xETk9UKFB1ViksLFNQRUNVTEFURV9OT1RfVEFLRU4sMTIsMCk7IGlm IChmTFNCT0xETk9UKFB1VikpIHsgU0VNQU5USUNTOyB9fSkgXAorUTZJTlNOKFRBRyMjdHB0LCJp ZiAoUHU0KSAiT1BFUiI6dCAiT1BFUjIsQVRUUklCLERFU0NSLHtmQlJBTkNIX1NQRUNVTEFURV9T VEFMTChmTFNCT0xEKFB1ViksLFNQRUNVTEFURV9UQUtFTiwxMiwwKTsgaWYgKGZMU0JPTEQoUHVW KSkgeyBTRU1BTlRJQ1M7IH19KSBcCitRNklOU04oVEFHIyNmcHQsImlmICghUHU0KSAiT1BFUiI6 dCAiT1BFUjIsQVRUUklCLERFU0NSLHtmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCT0xETk9U KFB1ViksLFNQRUNVTEFURV9UQUtFTiwxMiwwKTsgaWYgKGZMU0JPTEROT1QoUHVWKSkgeyBTRU1B TlRJQ1M7IH19KQorCitPTERDT05EX0pVTVAoSjJfanVtcCwianVtcCIsIiNyMTU6MiIsQVRUUklC UyhBX0NKT0xERElSKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAiLAorZklNTUVYVChyaVYpO2ZQ Q0FMSUdOKHJpVik7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7KQorCitP TERDT05EX0pVTVAoSjJfanVtcHIsImp1bXByIiwiUnMzMiIsQVRUUklCUyhBX0pJTkRJUk9MRCks ImluZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAiLAorZkpVTVBSKFJzTixSc1YsQ09GX1RZUEVfSlVN UFIpOykKKworI2RlZmluZSBORVdDT05EX0pVTVAoVEFHLE9QRVIsT1BFUjIsQVRUUklCLERFU0NS LFNFTUFOVElDUylcCitRNklOU04oVEFHIyN0bmV3LCJpZiAoUHU0Lm5ldykgIk9QRVIiOm50ICJP UEVSMixBVFRSSUIsREVTQ1Ise2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JORVcoUHVOKSws IFNQRUNVTEFURV9OT1RfVEFLRU4gLCAxMiwwKX0ge2lmKGZMU0JORVcoUHVOKSl7U0VNQU5USUNT O319KVwKK1E2SU5TTihUQUcjI2ZuZXcsImlmICghUHU0Lm5ldykgIk9QRVIiOm50ICJPUEVSMixB VFRSSUIsREVTQ1Ise2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JORVdOT1QoUHVOKSwsIFNQ RUNVTEFURV9OT1RfVEFLRU4gLCAxMiwwKX0ge2lmKGZMU0JORVdOT1QoUHVOKSl7U0VNQU5USUNT O319KVwKK1E2SU5TTihUQUcjI3RuZXdwdCwiaWYgKFB1NC5uZXcpICJPUEVSIjp0ICJPUEVSMixB VFRSSUIsREVTQ1Ise2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JORVcoUHVOKSwsIFNQRUNV TEFURV9UQUtFTiAsIDEyLDApfSB7aWYoZkxTQk5FVyhQdU4pKXtTRU1BTlRJQ1M7fX0pXAorUTZJ TlNOKFRBRyMjZm5ld3B0LCJpZiAoIVB1NC5uZXcpICJPUEVSIjp0ICJPUEVSMixBVFRSSUIsREVT Q1Ise2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JORVdOT1QoUHVOKSwsIFNQRUNVTEFURV9U QUtFTiAsIDEyLDApfSB7aWYoZkxTQk5FV05PVChQdU4pKXtTRU1BTlRJQ1M7fX0pCisKK05FV0NP TkRfSlVNUChKMl9qdW1wLCJqdW1wIiwiI3IxNToyIixBVFRSSUJTKEFfQ0pORVdESVIsQV9BUkNI VjIpLCJkaXJlY3QgY29uZGl0aW9uYWwganVtcCIsCitmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJp Vik7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUE5FVyk7KQorCitORVdDT05E X0pVTVAoSjJfanVtcHIsImp1bXByIiwiUnMzMiIsQVRUUklCUyhBX0pJTkRJUk5FVyxBX0FSQ0hW MyksImluZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAiLAorZkpVTVBSKFJzTixSc1YsQ09GX1RZUEVf SlVNUFIpOykKKworCisKK1E2SU5TTihKNF9oaW50anVtcHIsImhpbnRqcihSczMyKSIsQVRUUklC UyhBX0pJTkRJUiksImhpbnQgaW5kaXJlY3QgY29uZGl0aW9uYWwganVtcCIsCit7ZkhJTlRKUihS c1YpO30pCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qIENvbXBvdW5kIENvbXBhcmUtSnVtcHMgICAgICAgICAgICAgICAgICAgICovCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworUTZJTlNOKEoyX2p1 bXByeiwiaWYgKFJzMzIhPSMwKSBqdW1wOm50ICNyMTM6MiIsQVRUUklCUyhBX0NKTkVXRElSLEFf QVJDSFYzKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAgaWYgcmVnaXN0ZXIgdHJ1ZSIsCit7ZkJS QU5DSF9TUEVDVUxBVEVfU1RBTEwoKFJzViE9MCksICwgU1BFQ1VMQVRFX05PVF9UQUtFTiwxMiww KSBpZiAoUnNWICE9IDApIHsgZkJSQU5DSChmUkVBRF9QQygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9 fSkKKworUTZJTlNOKEoyX2p1bXBybnosImlmIChSczMyPT0jMCkganVtcDpudCAjcjEzOjIiLEFU VFJJQlMoQV9DSk5FV0RJUixBX0FSQ0hWMyksImRpcmVjdCBjb25kaXRpb25hbCBqdW1wIGlmIHJl Z2lzdGVyIGZhbHNlIiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTCgoUnNWPT0wKSwgLCBTUEVD VUxBVEVfTk9UX1RBS0VOLDEyLDApIGlmIChSc1YgPT0gMCkge2ZCUkFOQ0goZlJFQURfUEMoKSty aVYsQ09GX1RZUEVfSlVNUCk7fX0pCisKK1E2SU5TTihKMl9qdW1wcnpwdCwiaWYgKFJzMzIhPSMw KSBqdW1wOnQgI3IxMzoyIixBVFRSSUJTKEFfQ0pORVdESVIsQV9BUkNIVjMpLCJkaXJlY3QgY29u ZGl0aW9uYWwganVtcCBpZiByZWdpc3RlciB0cnVlIiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFM TCgoUnNWIT0wKSwgLCBTUEVDVUxBVEVfVEFLRU4sMTIsMCkgaWYgKFJzViAhPSAwKSB7IGZCUkFO Q0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7fX0pCisKK1E2SU5TTihKMl9qdW1wcm56 cHQsImlmIChSczMyPT0jMCkganVtcDp0ICNyMTM6MiIsQVRUUklCUyhBX0NKTkVXRElSLEFfQVJD SFYzKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAgaWYgcmVnaXN0ZXIgZmFsc2UiLAore2ZCUkFO Q0hfU1BFQ1VMQVRFX1NUQUxMKChSc1Y9PTApLCAsIFNQRUNVTEFURV9UQUtFTiwxMiwwKSBpZiAo UnNWID09IDApIHtmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENPRl9UWVBFX0pVTVApO319KQorCitR NklOU04oSjJfanVtcHJndGV6LCJpZiAoUnMzMj49IzApIGp1bXA6bnQgI3IxMzoyIixBVFRSSUJT KEFfQ0pORVdESVIsQV9BUkNIVjMpLCJkaXJlY3QgY29uZGl0aW9uYWwganVtcCBpZiByZWdpc3Rl ciBncmVhdGVyIG9yIGVxdWFsIHRvIHplcm8iLAore2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKChS c1Y+PTApLCAsIFNQRUNVTEFURV9OT1RfVEFLRU4sMTIsMCkgaWYgKFJzVj49MCkgeyBmQlJBTkNI KGZSRUFEX1BDKCkrcmlWLENPRl9UWVBFX0pVTVApO319KQorCitRNklOU04oSjJfanVtcHJndGV6 cHQsImlmIChSczMyPj0jMCkganVtcDp0ICNyMTM6MiIsQVRUUklCUyhBX0NKTkVXRElSLEFfQVJD SFYzKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAgaWYgcmVnaXN0ZXIgZ3JlYXRlciBvciBlcXVh bCB0byB6ZXJvIiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTCgoUnNWPj0wKSwgLCBTUEVDVUxB VEVfVEFLRU4sMTIsMCkgaWYgKFJzVj49MCkgeyBmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENPRl9U WVBFX0pVTVApO319KQorCitRNklOU04oSjJfanVtcHJsdGV6LCJpZiAoUnMzMjw9IzApIGp1bXA6 bnQgI3IxMzoyIixBVFRSSUJTKEFfQ0pORVdESVIsQV9BUkNIVjMpLCJkaXJlY3QgY29uZGl0aW9u YWwganVtcCBpZiByZWdpc3RlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gemVybyIsCit7ZkJSQU5D SF9TUEVDVUxBVEVfU1RBTEwoKFJzVjw9MCksICwgU1BFQ1VMQVRFX05PVF9UQUtFTiwxMiwwKSBp ZiAoUnNWPD0wKSB7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7fX0pCisK K1E2SU5TTihKMl9qdW1wcmx0ZXpwdCwiaWYgKFJzMzI8PSMwKSBqdW1wOnQgI3IxMzoyIixBVFRS SUJTKEFfQ0pORVdESVIsQV9BUkNIVjMpLCJkaXJlY3QgY29uZGl0aW9uYWwganVtcCBpZiByZWdp c3RlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gemVybyIsCit7ZkJSQU5DSF9TUEVDVUxBVEVfU1RB TEwoKFJzVjw9MCksICwgU1BFQ1VMQVRFX1RBS0VOLDEyLDApIGlmIChSc1Y8PTApIHsgZkJSQU5D SChmUkVBRF9QQygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9fSkKKworCisKKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBWNCBDb21wb3VuZCBDb21wYXJl LUp1bXBzICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworCisvKiBWNCBjb21wb3VuZCBjb21wYXJlIGp1bXBzIChDSikg Ki8KKyNkZWZpbmUgU1REX0NNUEpVTVAoVEFHLFRTVCxUU1RTRU0pXAorUTZJTlNOKEo0XyMjVEFH IyNfdHAwX2p1bXBfbnQsICJwMD0iVFNUIjsgaWYgKHAwLm5ldykganVtcDpudCAjcjk6MiIsIEFU VFJJQlMoQV9DSk5FV0RJUixBX05FV0NNUEpVTVApLCJjb21wb3VuZCBjb21wYXJlLWp1bXAiLCB7 ZlBBUlQxKGZXUklURV9QMChmOEJJVFNPRihUU1RTRU0pKSkgIGZCUkFOQ0hfU1BFQ1VMQVRFX1NU QUxMKGZMU0JORVcwLCxTUEVDVUxBVEVfTk9UX1RBS0VOLDEzLDApICBpZiAoZkxTQk5FVzApIHtm SU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJpVik7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZ UEVfSlVNUCk7fX0pXAorUTZJTlNOKEo0XyMjVEFHIyNfZnAwX2p1bXBfbnQsICJwMD0iVFNUIjsg aWYgKCFwMC5uZXcpIGp1bXA6bnQgI3I5OjIiLCBBVFRSSUJTKEFfQ0pORVdESVIsQV9ORVdDTVBK VU1QKSwiY29tcG91bmQgY29tcGFyZS1qdW1wIix7ZlBBUlQxKGZXUklURV9QMChmOEJJVFNPRihU U1RTRU0pKSkgIGZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JORVcwTk9ULCxTUEVDVUxBVEVf Tk9UX1RBS0VOLDEzLDApIGlmIChmTFNCTkVXME5PVCkge2ZJTU1FWFQocmlWKTsgZlBDQUxJR04o cmlWKTsgZkJSQU5DSChmUkVBRF9QQygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9fSlcCitRNklOU04o SjRfIyNUQUcjI190cDBfanVtcF90LCAgInAwPSJUU1QiOyBpZiAocDAubmV3KSBqdW1wOnQgI3I5 OjIiLCBBVFRSSUJTKEFfQ0pORVdESVIsQV9ORVdDTVBKVU1QKSwiY29tcG91bmQgY29tcGFyZS1q dW1wIiwgIHtmUEFSVDEoZldSSVRFX1AwKGY4QklUU09GKFRTVFNFTSkpKSAgZkJSQU5DSF9TUEVD VUxBVEVfU1RBTEwoZkxTQk5FVzAsLFNQRUNVTEFURV9UQUtFTiwxMywwKSAgICAgIGlmIChmTFNC TkVXMCkge2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkJSQU5DSChmUkVBRF9QQygpK3Jp VixDT0ZfVFlQRV9KVU1QKTt9fSlcCitRNklOU04oSjRfIyNUQUcjI19mcDBfanVtcF90LCAgInAw PSJUU1QiOyBpZiAoIXAwLm5ldykganVtcDp0ICNyOToyIiwgQVRUUklCUyhBX0NKTkVXRElSLEFf TkVXQ01QSlVNUCksImNvbXBvdW5kIGNvbXBhcmUtanVtcCIsIHtmUEFSVDEoZldSSVRFX1AwKGY4 QklUU09GKFRTVFNFTSkpKSAgZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoZkxTQk5FVzBOT1QsLFNQ RUNVTEFURV9UQUtFTiwxMywwKSAgICAgaWYgKGZMU0JORVcwTk9UKSB7ZklNTUVYVChyaVYpOyBm UENBTElHTihyaVYpOyBmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENPRl9UWVBFX0pVTVApO319KVwK K1E2SU5TTihKNF8jI1RBRyMjX3RwMV9qdW1wX250LCAicDE9IlRTVCI7IGlmIChwMS5uZXcpIGp1 bXA6bnQgI3I5OjIiLCBBVFRSSUJTKEFfQ0pORVdESVIsQV9ORVdDTVBKVU1QKSwiY29tcG91bmQg Y29tcGFyZS1qdW1wIiwge2ZQQVJUMShmV1JJVEVfUDEoZjhCSVRTT0YoVFNUU0VNKSkpICBmQlJB TkNIX1NQRUNVTEFURV9TVEFMTChmTFNCTkVXMSwsU1BFQ1VMQVRFX05PVF9UQUtFTiwxMywwKSAg aWYgKGZMU0JORVcxKSB7ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBmQlJBTkNIKGZSRUFE X1BDKCkrcmlWLENPRl9UWVBFX0pVTVApO319KVwKK1E2SU5TTihKNF8jI1RBRyMjX2ZwMV9qdW1w X250LCAicDE9IlRTVCI7IGlmICghcDEubmV3KSBqdW1wOm50ICNyOToyIiwgQVRUUklCUyhBX0NK TkVXRElSLEFfTkVXQ01QSlVNUCksImNvbXBvdW5kIGNvbXBhcmUtanVtcCIse2ZQQVJUMShmV1JJ VEVfUDEoZjhCSVRTT0YoVFNUU0VNKSkpICBmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCTkVX MU5PVCwsU1BFQ1VMQVRFX05PVF9UQUtFTiwxMywwKSBpZiAoZkxTQk5FVzFOT1QpIHtmSU1NRVhU KHJpVik7IGZQQ0FMSUdOKHJpVik7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVN UCk7fX0pXAorUTZJTlNOKEo0XyMjVEFHIyNfdHAxX2p1bXBfdCwgICJwMT0iVFNUIjsgaWYgKHAx Lm5ldykganVtcDp0ICNyOToyIiwgQVRUUklCUyhBX0NKTkVXRElSLEFfTkVXQ01QSlVNUCksImNv bXBvdW5kIGNvbXBhcmUtanVtcCIsICB7ZlBBUlQxKGZXUklURV9QMShmOEJJVFNPRihUU1RTRU0p KSkgIGZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JORVcxLCxTUEVDVUxBVEVfVEFLRU4sMTMs MCkgICAgICBpZiAoZkxTQk5FVzEpIHtmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJpVik7IGZCUkFO Q0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7fX0pXAorUTZJTlNOKEo0XyMjVEFHIyNf ZnAxX2p1bXBfdCwgICJwMT0iVFNUIjsgaWYgKCFwMS5uZXcpIGp1bXA6dCAjcjk6MiIsIEFUVFJJ QlMoQV9DSk5FV0RJUixBX05FV0NNUEpVTVApLCJjb21wb3VuZCBjb21wYXJlLWp1bXAiLCB7ZlBB UlQxKGZXUklURV9QMShmOEJJVFNPRihUU1RTRU0pKSkgIGZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxM KGZMU0JORVcxTk9ULCxTUEVDVUxBVEVfVEFLRU4sMTMsMCkgICAgIGlmIChmTFNCTkVXMU5PVCkg e2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkJSQU5DSChmUkVBRF9QQygpK3JpVixDT0Zf VFlQRV9KVU1QKTt9fSkKKworCitTVERfQ01QSlVNUChjbXBlcWksImNtcC5lcShSczE2LCNVNSki LChSc1Y9PVVpVikpCitTVERfQ01QSlVNUChjbXBndGksImNtcC5ndChSczE2LCNVNSkiLChSc1Y+ VWlWKSkKK1NURF9DTVBKVU1QKGNtcGd0dWksImNtcC5ndHUoUnMxNiwjVTUpIiwoZkNBU1Q0dShS c1YpPlVpVikpCisKK1NURF9DTVBKVU1QKGNtcGVxbjEsImNtcC5lcShSczE2LCMtMSkiLChSc1Y9 PS0xKSkKK1NURF9DTVBKVU1QKGNtcGd0bjEsImNtcC5ndChSczE2LCMtMSkiLChSc1Y+LTEpKQor U1REX0NNUEpVTVAodHN0Yml0MCwidHN0Yml0KFJzMTYsIzApIiwoUnNWICYgMSkpCisKK1NURF9D TVBKVU1QKGNtcGVxLCJjbXAuZXEoUnMxNixSdDE2KSIsKFJzVj09UnRWKSkKK1NURF9DTVBKVU1Q KGNtcGd0LCJjbXAuZ3QoUnMxNixSdDE2KSIsKFJzVj5SdFYpKQorU1REX0NNUEpVTVAoY21wZ3R1 LCJjbXAuZ3R1KFJzMTYsUnQxNikiLChmQ0FTVDR1KFJzVik+UnRWKSkKKworCisKKy8qIFY0IGp1 bXAgYW5kIHRyYW5zZmVyIChDSikgKi8KK1E2SU5TTihKNF9qdW1wc2V0aSwiUmQxNj0jVTYgOyBq dW1wICNyOToyIixBVFRSSUJTKEFfSkRJUiksICJkaXJlY3QgdW5jb25kaXRpb25hbCBqdW1wIGFu ZCBzZXQgcmVnaXN0ZXIgdG8gaW1tZWRpYXRlIiwKK3tmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJp Vik7IFJkVj1VaVY7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7fSkKKwor UTZJTlNOKEo0X2p1bXBzZXRyLCJSZDE2PVJzMTYgOyBqdW1wICNyOToyIixBVFRSSUJTKEFfSkRJ UiksICJkaXJlY3QgdW5jb25kaXRpb25hbCBqdW1wIGFuZCB0cmFuc2ZlciByZWdpc3RlciIsCit7 ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBSZFY9UnNWOyBmQlJBTkNIKGZSRUFEX1BDKCkr cmlWLENPRl9UWVBFX0pVTVApO30pCisKKworLyogVjQgbmV3LXZhbHVlIGp1bXBzIChOQ0opICov CisjZGVmaW5lIFNURF9DTVBKVU1QTkVXUlMoVEFHLFRTVCxUU1RTRU0pXAorUTZJTlNOKEo0XyMj VEFHIyNfanVtcG52X3QsICJpZiAoIlRTVCIpIGp1bXA6dCAjcjk6MiIsIEFUVFJJQlMoQV9ORVdW QUxVRUopLCJjb21wb3VuZCBjb21wYXJlLWp1bXAiLHtmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChU U1RTRU0sLFNQRUNVTEFURV9UQUtFTiwxMywwKTtpZiAoVFNUU0VNKSB7ZklNTUVYVChyaVYpOyBm UENBTElHTihyaVYpOyBmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENPRl9UWVBFX0pVTVApO319KVwK K1E2SU5TTihKNF8jI1RBRyMjX2p1bXBudl9udCwiaWYgKCJUU1QiKSBqdW1wOm50ICNyOToyIixB VFRSSUJTKEFfTkVXVkFMVUVKKSwiY29tcG91bmQgY29tcGFyZS1qdW1wIix7ZkJSQU5DSF9TUEVD VUxBVEVfU1RBTEwoVFNUU0VNLCxTUEVDVUxBVEVfTk9UX1RBS0VOLDEzLDApOyBpZiAoVFNUU0VN KSB7ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENP Rl9UWVBFX0pVTVApO319KQorCisKKworCitTVERfQ01QSlVNUE5FV1JTKGNtcGVxaV90LCJjbXAu ZXEoTnM4Lm5ldywjVTUpIiwoZk5FV1JFRyhOc04pPT0oVWlWKSkpCitTVERfQ01QSlVNUE5FV1JT KGNtcGVxaV9mLCIhY21wLmVxKE5zOC5uZXcsI1U1KSIsKGZORVdSRUcoTnNOKSE9KFVpVikpKQor U1REX0NNUEpVTVBORVdSUyhjbXBndGlfdCwiY21wLmd0KE5zOC5uZXcsI1U1KSIsKGZORVdSRUco TnNOKT4oVWlWKSkpCitTVERfQ01QSlVNUE5FV1JTKGNtcGd0aV9mLCIhY21wLmd0KE5zOC5uZXcs I1U1KSIsIShmTkVXUkVHKE5zTik+KFVpVikpKQorU1REX0NNUEpVTVBORVdSUyhjbXBndHVpX3Qs ImNtcC5ndHUoTnM4Lm5ldywjVTUpIiwoZkNBU1Q0dShmTkVXUkVHKE5zTikpPihVaVYpKSkKK1NU RF9DTVBKVU1QTkVXUlMoY21wZ3R1aV9mLCIhY21wLmd0dShOczgubmV3LCNVNSkiLCEoZkNBU1Q0 dShmTkVXUkVHKE5zTikpPihVaVYpKSkKKworCitTVERfQ01QSlVNUE5FV1JTKGNtcGVxbjFfdCwi Y21wLmVxKE5zOC5uZXcsIy0xKSIsKGZORVdSRUcoTnNOKT09KC0xKSkpCitTVERfQ01QSlVNUE5F V1JTKGNtcGVxbjFfZiwiIWNtcC5lcShOczgubmV3LCMtMSkiLChmTkVXUkVHKE5zTikhPSgtMSkp KQorU1REX0NNUEpVTVBORVdSUyhjbXBndG4xX3QsImNtcC5ndChOczgubmV3LCMtMSkiLChmTkVX UkVHKE5zTik+KC0xKSkpCitTVERfQ01QSlVNUE5FV1JTKGNtcGd0bjFfZiwiIWNtcC5ndChOczgu bmV3LCMtMSkiLCEoZk5FV1JFRyhOc04pPigtMSkpKQorU1REX0NNUEpVTVBORVdSUyh0c3RiaXQw X3QsInRzdGJpdChOczgubmV3LCMwKSIsKChmTkVXUkVHKE5zTikpICYgMSkpCitTVERfQ01QSlVN UE5FV1JTKHRzdGJpdDBfZiwiIXRzdGJpdChOczgubmV3LCMwKSIsISgoZk5FV1JFRyhOc04pKSAm IDEpKQorCisKK1NURF9DTVBKVU1QTkVXUlMoY21wZXFfdCwgImNtcC5lcShOczgubmV3LFJ0MzIp IiwgKGZORVdSRUcoTnNOKT09UnRWKSkKK1NURF9DTVBKVU1QTkVXUlMoY21wZ3RfdCwgImNtcC5n dChOczgubmV3LFJ0MzIpIiwgKGZORVdSRUcoTnNOKT5SdFYpKQorU1REX0NNUEpVTVBORVdSUyhj bXBndHVfdCwiY21wLmd0dShOczgubmV3LFJ0MzIpIiwoZkNBU1Q0dShmTkVXUkVHKE5zTikpPmZD QVNUNHUoUnRWKSkpCitTVERfQ01QSlVNUE5FV1JTKGNtcGx0X3QsICJjbXAuZ3QoUnQzMixOczgu bmV3KSIsIChSdFY+Zk5FV1JFRyhOc04pKSkKK1NURF9DTVBKVU1QTkVXUlMoY21wbHR1X3QsImNt cC5ndHUoUnQzMixOczgubmV3KSIsKGZDQVNUNHUoUnRWKT5mQ0FTVDR1KGZORVdSRUcoTnNOKSkp KQorU1REX0NNUEpVTVBORVdSUyhjbXBlcV9mLCAiIWNtcC5lcShOczgubmV3LFJ0MzIpIiwgKGZO RVdSRUcoTnNOKSE9UnRWKSkKK1NURF9DTVBKVU1QTkVXUlMoY21wZ3RfZiwgIiFjbXAuZ3QoTnM4 Lm5ldyxSdDMyKSIsICEoZk5FV1JFRyhOc04pPlJ0VikpCitTVERfQ01QSlVNUE5FV1JTKGNtcGd0 dV9mLCIhY21wLmd0dShOczgubmV3LFJ0MzIpIiwhKGZDQVNUNHUoZk5FV1JFRyhOc04pKT5mQ0FT VDR1KFJ0VikpKQorU1REX0NNUEpVTVBORVdSUyhjbXBsdF9mLCAiIWNtcC5ndChSdDMyLE5zOC5u ZXcpIiwgIShSdFY+Zk5FV1JFRyhOc04pKSkKK1NURF9DTVBKVU1QTkVXUlMoY21wbHR1X2YsIiFj bXAuZ3R1KFJ0MzIsTnM4Lm5ldykiLCEoZkNBU1Q0dShSdFYpPmZDQVNUNHUoZk5FV1JFRyhOc04p KSkpCisKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKy8qIFN1YnJvdXRpbmUgQ2FsbCBpbnN0cnVjdGlvbnMgICAgICAgICAgICAgICovCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5l IENESVJfU1REICAgQV9DQUxMCisjZGVmaW5lIENJTkRJUl9TVEQgQV9DQUxMLEFfSU5ESVJFQ1QK KworUTZJTlNOKEoyX2NhbGwsImNhbGwgI3IyMjoyIixBVFRSSUJTKENESVJfU1REKSwgImRpcmVj dCB1bmNvbmRpdGlvbmFsIGNhbGwiLAore2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkNB TEwoZlJFQURfUEMoKStyaVYpOyB9KQorCitRNklOU04oSjJfY2FsbHQsImlmIChQdTQpIGNhbGwg I3IxNToyIixBVFRSSUJTKENESVJfU1REKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGNhbGwgaWYgdHJ1 ZSIsCit7ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBmQlJBTkNIX1NQRUNVTEFURV9TVEFM TChmTFNCT0xEKFB1ViksLFNQRUNVTEFURV9OT1RfVEFLRU4sMTIsMCk7IGlmIChmTFNCT0xEKFB1 VikpIHsgZkNBTEwoZlJFQURfUEMoKStyaVYpOyB9fSkKKworUTZJTlNOKEoyX2NhbGxmLCJpZiAo IVB1NCkgY2FsbCAjcjE1OjIiLEFUVFJJQlMoQ0RJUl9TVEQpLCJkaXJlY3QgY29uZGl0aW9uYWwg Y2FsbCBpZiBmYWxzZSIsCit7ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBmQlJBTkNIX1NQ RUNVTEFURV9TVEFMTChmTFNCT0xETk9UKFB1ViksLFNQRUNVTEFURV9OT1RfVEFLRU4sMTIsMCk7 aWYgKGZMU0JPTEROT1QoUHVWKSkgeyBmQ0FMTChmUkVBRF9QQygpK3JpVik7IH19KQorCitRNklO U04oSjJfY2FsbHIsImNhbGxyIFJzMzIiLEFUVFJJQlMoQ0lORElSX1NURCksICJpbmRpcmVjdCB1 bmNvbmRpdGlvbmFsIGNhbGwiLAoreyBmQ0FMTFIoUnNWKTsgfSkKKworUTZJTlNOKEoyX2NhbGxy dCwiaWYgKFB1NCkgY2FsbHIgUnMzMiIsQVRUUklCUyhDSU5ESVJfU1REKSwiaW5kaXJlY3QgY29u ZGl0aW9uYWwgY2FsbCBpZiB0cnVlIiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCT0xE KFB1ViksLFNQRUNVTEFURV9OT1RfVEFLRU4sMTIsMCk7aWYgKGZMU0JPTEQoUHVWKSkgeyBmQ0FM TFIoUnNWKTsgfX0pCisKK1E2SU5TTihKMl9jYWxscmYsImlmICghUHU0KSBjYWxsciBSczMyIixB VFRSSUJTKENJTkRJUl9TVEQpLCJpbmRpcmVjdCBjb25kaXRpb25hbCBjYWxsIGlmIGZhbHNlIiwK K3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCT0xETk9UKFB1ViksLFNQRUNVTEFURV9OT1Rf VEFLRU4sMTIsMCk7aWYgKGZMU0JPTEROT1QoUHVWKSkgeyBmQ0FMTFIoUnNWKTsgfX0pCisKKwor CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBI VyBMb29wIGluc3RydWN0aW9ucyAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKEoyX2xvb3Awciwi bG9vcDAoI3I3OjIsUnMzMikiLEFUVFJJQlMoKSwiSW5pdGlhbGl6ZSBIVyBsb29wIDAiLAoreyBm SU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJpVik7CisgIGZXUklURV9MT09QX1JFR1MwKC8qc2EsbGMq LyBmUkVBRF9QQygpK3JpViwgUnNWKTsKKyAgZlNFVF9MUENGRygwKTsKK30pCisKK1E2SU5TTihK Ml9sb29wMXIsImxvb3AxKCNyNzoyLFJzMzIpIixBVFRSSUJTKCksIkluaXRpYWxpemUgSFcgbG9v cCAxIiwKK3sgZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOworICBmV1JJVEVfTE9PUF9SRUdT MSgvKnNhLGxjKi8gZlJFQURfUEMoKStyaVYsIFJzVik7Cit9KQorCitRNklOU04oSjJfbG9vcDBp LCJsb29wMCgjcjc6MiwjVTEwKSIsQVRUUklCUygpLCJJbml0aWFsaXplIEhXIGxvb3AgMCIsCit7 IGZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsKKyAgZldSSVRFX0xPT1BfUkVHUzAoLypzYSxs YyovIGZSRUFEX1BDKCkrcmlWLCBVaVYpOworICBmU0VUX0xQQ0ZHKDApOworfSkKKworUTZJTlNO KEoyX2xvb3AxaSwibG9vcDEoI3I3OjIsI1UxMCkiLEFUVFJJQlMoKSwiSW5pdGlhbGl6ZSBIVyBs b29wIDEiLAoreyBmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJpVik7CisgIGZXUklURV9MT09QX1JF R1MxKC8qc2EsbGMqLyBmUkVBRF9QQygpK3JpViwgVWlWKTsKK30pCisKKworUTZJTlNOKEoyX3Bs b29wMXNyLCJwMz1zcDFsb29wMCgjcjc6MixSczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksIkluaXRp YWxpemUgSFcgbG9vcCAwIiwKK3sgZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOworICBmV1JJ VEVfTE9PUF9SRUdTMCgvKnNhLGxjKi8gZlJFQURfUEMoKStyaVYsIFJzVik7CisgIGZTRVRfTFBD RkcoMSk7CisgIGZXUklURV9QMygwKTsKK30pCitRNklOU04oSjJfcGxvb3Axc2ksInAzPXNwMWxv b3AwKCNyNzoyLCNVMTApIixBVFRSSUJTKEFfQVJDSFYyKSwiSW5pdGlhbGl6ZSBIVyBsb29wIDAi LAoreyBmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJpVik7CisgIGZXUklURV9MT09QX1JFR1MwKC8q c2EsbGMqLyBmUkVBRF9QQygpK3JpViwgVWlWKTsKKyAgZlNFVF9MUENGRygxKTsKKyAgZldSSVRF X1AzKDApOworfSkKKworUTZJTlNOKEoyX3Bsb29wMnNyLCJwMz1zcDJsb29wMCgjcjc6MixSczMy KSIsQVRUUklCUyhBX0FSQ0hWMiksIkluaXRpYWxpemUgSFcgbG9vcCAwIiwKK3sgZklNTUVYVChy aVYpOyBmUENBTElHTihyaVYpOworICBmV1JJVEVfTE9PUF9SRUdTMCgvKnNhLGxjKi8gZlJFQURf UEMoKStyaVYsIFJzVik7CisgIGZTRVRfTFBDRkcoMik7CisgIGZXUklURV9QMygwKTsKK30pCitR NklOU04oSjJfcGxvb3Ayc2ksInAzPXNwMmxvb3AwKCNyNzoyLCNVMTApIixBVFRSSUJTKEFfQVJD SFYyKSwiSW5pdGlhbGl6ZSBIVyBsb29wIDAiLAoreyBmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJp Vik7CisgIGZXUklURV9MT09QX1JFR1MwKC8qc2EsbGMqLyBmUkVBRF9QQygpK3JpViwgVWlWKTsK KyAgZlNFVF9MUENGRygyKTsKKyAgZldSSVRFX1AzKDApOworfSkKKworUTZJTlNOKEoyX3Bsb29w M3NyLCJwMz1zcDNsb29wMCgjcjc6MixSczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksIkluaXRpYWxp emUgSFcgbG9vcCAwIiwKK3sgZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOworICBmV1JJVEVf TE9PUF9SRUdTMCgvKnNhLGxjKi8gZlJFQURfUEMoKStyaVYsIFJzVik7CisgIGZTRVRfTFBDRkco Myk7CisgIGZXUklURV9QMygwKTsKK30pCitRNklOU04oSjJfcGxvb3Azc2ksInAzPXNwM2xvb3Aw KCNyNzoyLCNVMTApIixBVFRSSUJTKEFfQVJDSFYyKSwiSW5pdGlhbGl6ZSBIVyBsb29wIDAiLAor eyBmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJpVik7CisgIGZXUklURV9MT09QX1JFR1MwKC8qc2Es bGMqLyBmUkVBRF9QQygpK3JpViwgVWlWKTsKKyAgZlNFVF9MUENGRygzKTsKKyAgZldSSVRFX1Az KDApOworfSkKKworCisKK1E2SU5TTihKMl9lbmRsb29wMDEsImVuZGxvb3AwMSIsQVRUUklCUyhB X0hXTE9PUDBfRU5ELEFfSFdMT09QMV9FTkQpLCJMb29wZW5kIGZvciBpbm5lciBhbmQgb3V0ZXIg bG9vcCIsCit7CisKKyAgLyogVjI6IFdpdGggcHJlZGljYXRlIGNvbnRyb2wgKi8KKyAgaWYgKGZH RVRfTFBDRkcpIHsKKyAgICBmSElERSggaWYgKGZHRVRfTFBDRkcgPj0gMikgeyAvKiBOb3RoaW5n ICovIH0gZWxzZSApCisgICAgaWYgKGZHRVRfTFBDRkc9PTEpIHsKKyAgICAgICBmV1JJVEVfUDMo MHhmZik7CisgICAgfQorICAgIGZTRVRfTFBDRkcoZkdFVF9MUENGRy0xKTsKKyAgfQorCisgIC8q IGNoZWNrIGlmIGl0ZXJhdGUgKi8KKyAgaWYgKGZSRUFEX0xDMD4xKSB7CisgICAgZkJSQU5DSChm UkVBRF9TQTAsQ09GX1RZUEVfTE9PUEVORDApOworICAgIC8qIGRlY3JlbWVudCBsb29wIGNvdW50 ICovCisgICAgZldSSVRFX0xDMChmUkVBRF9MQzAtMSk7CisgIH0gZWxzZSB7CisgICAgLyogY2hl Y2sgaWYgaXRlcmF0ZSAqLworICAgIGlmIChmUkVBRF9MQzE+MSkgeworICAgICAgZkJSQU5DSChm UkVBRF9TQTEsQ09GX1RZUEVfTE9PUEVORDEpOworICAgICAgLyogZGVjcmVtZW50IGxvb3AgY291 bnQgKi8KKyAgICAgIGZXUklURV9MQzEoZlJFQURfTEMxLTEpOworICAgIH0KKyAgfQorCit9KQor CitRNklOU04oSjJfZW5kbG9vcDAsImVuZGxvb3AwIixBVFRSSUJTKEFfSFdMT09QMF9FTkQpLCJM b29wZW5kIGZvciBpbm5lciBsb29wIiwKK3sKKworICAvKiBWMjogV2l0aCBwcmVkaWNhdGUgY29u dHJvbCAqLworICBpZiAoZkdFVF9MUENGRykgeworICAgIGZISURFKCBpZiAoZkdFVF9MUENGRyA+ PSAyKSB7IC8qIE5vdGhpbmcgKi8gfSBlbHNlICkKKyAgICBpZiAoZkdFVF9MUENGRz09MSkgewor ICAgICAgIGZXUklURV9QMygweGZmKTsKKyAgICB9CisgICAgZlNFVF9MUENGRyhmR0VUX0xQQ0ZH LTEpOworICB9CisKKyAgLyogY2hlY2sgaWYgaXRlcmF0ZSAqLworICBpZiAoZlJFQURfTEMwPjEp IHsKKyAgICBmQlJBTkNIKGZSRUFEX1NBMCxDT0ZfVFlQRV9MT09QRU5EMCk7CisgICAgLyogZGVj cmVtZW50IGxvb3AgY291bnQgKi8KKyAgICBmV1JJVEVfTEMwKGZSRUFEX0xDMC0xKTsKKyAgfQor fSkKKworUTZJTlNOKEoyX2VuZGxvb3AxLCJlbmRsb29wMSIsQVRUUklCUyhBX0hXTE9PUDFfRU5E KSwiTG9vcGVuZCBmb3Igb3V0ZXIgbG9vcCIsCit7CisgIC8qIGNoZWNrIGlmIGl0ZXJhdGUgKi8K KyAgaWYgKGZSRUFEX0xDMT4xKSB7CisgICAgZkJSQU5DSChmUkVBRF9TQTEsQ09GX1RZUEVfTE9P UEVORDEpOworICAgIC8qIGRlY3JlbWVudCBsb29wIGNvdW50ICovCisgICAgZldSSVRFX0xDMShm UkVBRF9MQzEtMSk7CisgIH0KK30pCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRl ZC9jb21wYXJlLmlkZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9jb21wYXJlLmlkZWYKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU1MTQ2NwotLS0gL2Rldi9udWxsCisr KyBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2NvbXBhcmUuaWRlZgpAQCAtMCwwICsxLDYxOSBA QAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIxIFF1YWxjb21tIElubm92YXRpb24gQ2Vu dGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisvKgorICogQ29tcGFyZSBJbnN0cnVjdGlvbnMKKyAq LworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K Ky8qIFNjYWxhciBjb21wYXJlIGluc3RydWN0aW9ucyAgICAgICAgICAgICAgICovCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oQzJfY21w ZXEsIlBkND1jbXAuZXEoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgZm9yIEVxdWFs IiwKK3tQZFY9ZjhCSVRTT0YoUnNWPT1SdFYpO30pCisKK1E2SU5TTihDMl9jbXBndCwiUGQ0PWNt cC5ndChSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBmb3Igc2lnbmVkIEdyZWF0ZXIg VGhhbiIsCit7UGRWPWY4QklUU09GKFJzVj5SdFYpO30pCisKK1E2SU5TTihDMl9jbXBndHUsIlBk ND1jbXAuZ3R1KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGZvciBHcmVhdGVyIFRo YW4gVW5zaWduZWQiLAore1BkVj1mOEJJVFNPRihmQ0FTVDR1KFJzVik+ZkNBU1Q0dShSdFYpKTt9 KQorCitRNklOU04oQzJfY21wZXFwLCJQZDQ9Y21wLmVxKFJzczMyLFJ0dDMyKSIsQVRUUklCUygp LAorIkNvbXBhcmUgZm9yIEVxdWFsIiwKK3tQZFY9ZjhCSVRTT0YoUnNzVj09UnR0Vik7fSkKKwor UTZJTlNOKEMyX2NtcGd0cCwiUGQ0PWNtcC5ndChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJD b21wYXJlIGZvciBzaWduZWQgR3JlYXRlciBUaGFuIiwKK3tQZFY9ZjhCSVRTT0YoUnNzVj5SdHRW KTt9KQorCitRNklOU04oQzJfY21wZ3R1cCwiUGQ0PWNtcC5ndHUoUnNzMzIsUnR0MzIpIixBVFRS SUJTKCksCisiQ29tcGFyZSBmb3IgR3JlYXRlciBUaGFuIFVuc2lnbmVkIiwKK3tQZFY9ZjhCSVRT T0YoZkNBU1Q4dShSc3NWKT5mQ0FTVDh1KFJ0dFYpKTt9KQorCisKKworCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQ29tcGFyZSBhbmQgcHV0IHJl c3VsdCBpbiBHUFIgICAgICAgICAgICAgKi8KKy8qICB0eXBpY2FsbHkgZm9yIGZ1bmN0aW9uIEkv TyAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworCitRNklOU04oQTRfcmNtcGVxaSwiUmQzMj1jbXAuZXEoUnMzMiwjczgpIixB VFRSSUJTKCksCisiQ29tcGFyZSBmb3IgRXF1YWwiLAore2ZJTU1FWFQoc2lWKTsgUmRWPShSc1Y9 PXNpVik7IH0pCisKK1E2SU5TTihBNF9yY21wbmVxaSwiUmQzMj0hY21wLmVxKFJzMzIsI3M4KSIs QVRUUklCUygpLAorIkNvbXBhcmUgZm9yIEVxdWFsIiwKK3tmSU1NRVhUKHNpVik7IFJkVj0oUnNW IT1zaVYpOyB9KQorCisKK1E2SU5TTihBNF9yY21wZXEsIlJkMzI9Y21wLmVxKFJzMzIsUnQzMiki LEFUVFJJQlMoKSwKKyJDb21wYXJlIGZvciBFcXVhbCIsCit7UmRWPShSc1Y9PVJ0Vik7IH0pCisK K1E2SU5TTihBNF9yY21wbmVxLCJSZDMyPSFjbXAuZXEoUnMzMixSdDMyKSIsQVRUUklCUygpLAor IkNvbXBhcmUgZm9yIEVxdWFsIiwKK3tSZFY9KFJzViE9UnRWKTsgfSkKKworCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBTY2FsYXIgY29tcGFy ZSBpbnN0cnVjdGlvbnMgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KKworCitRNklOU04oQzJfYml0c3NldCwiUGQ0PWJpdHNz ZXQoUnMzMixSdDMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQ29tcGFyZSBmb3Igc2VsZWN0ZWQg Yml0cyBzZXQiLAore1BkVj1mOEJJVFNPRigoUnNWJlJ0Vik9PVJ0Vik7fSkKKworUTZJTlNOKEMy X2JpdHNjbHIsIlBkND1iaXRzY2xyKFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkNv bXBhcmUgZm9yIHNlbGVjdGVkIGJpdHMgY2xlYXIiLAore1BkVj1mOEJJVFNPRigoUnNWJlJ0Vik9 PTApO30pCisKKworUTZJTlNOKEM0X25iaXRzc2V0LCJQZDQ9IWJpdHNzZXQoUnMzMixSdDMyKSIs QVRUUklCUyhBX0FSQ0hWMiksCisiQ29tcGFyZSBmb3Igc2VsZWN0ZWQgYml0cyBzZXQiLAore1Bk Vj1mOEJJVFNPRigoUnNWJlJ0VikhPVJ0Vik7fSkKKworUTZJTlNOKEM0X25iaXRzY2xyLCJQZDQ9 IWJpdHNjbHIoUnMzMixSdDMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQ29tcGFyZSBmb3Igc2Vs ZWN0ZWQgYml0cyBjbGVhciIsCit7UGRWPWY4QklUU09GKChSc1YmUnRWKSE9MCk7fSkKKworCisK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBTY2Fs YXIgY29tcGFyZSBpbnN0cnVjdGlvbnMgVy8gaW1tZWRpYXRlICAqLworLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKEMyX2NtcGVxaSwiUGQ0 PWNtcC5lcShSczMyLCNzMTApIixBVFRSSUJTKCksCisiQ29tcGFyZSBmb3IgRXF1YWwiLAore2ZJ TU1FWFQoc2lWKTsgUGRWPWY4QklUU09GKFJzVj09c2lWKTt9KQorCitRNklOU04oQzJfY21wZ3Rp LCJQZDQ9Y21wLmd0KFJzMzIsI3MxMCkiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGZvciBzaWduZWQg R3JlYXRlciBUaGFuIiwKK3tmSU1NRVhUKHNpVik7IFBkVj1mOEJJVFNPRihSc1Y+c2lWKTt9KQor CitRNklOU04oQzJfY21wZ3R1aSwiUGQ0PWNtcC5ndHUoUnMzMiwjdTkpIixBVFRSSUJTKCksCisi Q29tcGFyZSBmb3IgR3JlYXRlciBUaGFuIFVuc2lnbmVkIiwKK3tmSU1NRVhUKHVpVik7IFBkVj1m OEJJVFNPRihmQ0FTVDR1KFJzVik+ZkNBU1Q0dSh1aVYpKTt9KQorCitRNklOU04oQzJfYml0c2Ns cmksIlBkND1iaXRzY2xyKFJzMzIsI3U2KSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQ29tcGFyZSBm b3Igc2VsZWN0ZWQgYml0cyBjbGVhciIsCit7UGRWPWY4QklUU09GKChSc1YmdWlWKT09MCk7fSkK KworUTZJTlNOKEM0X25iaXRzY2xyaSwiUGQ0PSFiaXRzY2xyKFJzMzIsI3U2KSIsQVRUUklCUyhB X0FSQ0hWMiksCisiQ29tcGFyZSBmb3Igc2VsZWN0ZWQgYml0cyBjbGVhciIsCit7UGRWPWY4QklU U09GKChSc1YmdWlWKSE9MCk7fSkKKworCisKKworUTZJTlNOKEM0X2NtcG5lcWksIlBkND0hY21w LmVxKFJzMzIsI3MxMCkiLEFUVFJJQlMoKSwgIkNvbXBhcmUgZm9yIE5vdCBFcXVhbCIsIHtmSU1N RVhUKHNpVik7IFBkVj1mOEJJVFNPRihSc1YhPXNpVik7fSkKK1E2SU5TTihDNF9jbXBsdGVpLCJQ ZDQ9IWNtcC5ndChSczMyLCNzMTApIixBVFRSSUJTKCksICJDb21wYXJlIGZvciBMZXNzIFRoYW4g b3IgRXF1YWwiLCB7ZklNTUVYVChzaVYpOyBQZFY9ZjhCSVRTT0YoUnNWPD1zaVYpO30pCitRNklO U04oQzRfY21wbHRldWksIlBkND0hY21wLmd0dShSczMyLCN1OSkiLEFUVFJJQlMoKSwgIkNvbXBh cmUgZm9yIExlc3MgVGhhbiBvciBFcXVhbCBVbnNpZ25lZCIsIHtmSU1NRVhUKHVpVik7IFBkVj1m OEJJVFNPRihmQ0FTVDR1KFJzVik8PWZDQVNUNHUodWlWKSk7fSkKKworUTZJTlNOKEM0X2NtcG5l cSwiUGQ0PSFjbXAuZXEoUnMzMixSdDMyKSIsQVRUUklCUygpLCAiQW5kLUNvbXBhcmUgZm9yIEVx dWFsIiwge1BkVj1mOEJJVFNPRihSc1YhPVJ0Vik7fSkKK1E2SU5TTihDNF9jbXBsdGUsIlBkND0h Y21wLmd0KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwgIkFuZC1Db21wYXJlIGZvciBzaWduZWQgR3Jl YXRlciBUaGFuIiwge1BkVj1mOEJJVFNPRihSc1Y8PVJ0Vik7fSkKK1E2SU5TTihDNF9jbXBsdGV1 LCJQZDQ9IWNtcC5ndHUoUnMzMixSdDMyKSIsQVRUUklCUygpLCAiQW5kLUNvbXBhcmUgZm9yIEdy ZWF0ZXIgVGhhbiBVbnNpZ25lZCIsIHtQZFY9ZjhCSVRTT0YoZkNBU1Q0dShSc1YpPD1mQ0FTVDR1 KFJ0VikpO30pCisKKworCisKKworLyogUHJlZGljYXRlIExvZ2ljYWwgT3BlcmF0aW9ucyAqLwor CitRNklOU04oQzJfYW5kLCJQZDQ9YW5kKFB0NCxQczQpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAor IlByZWRpY2F0ZSBBTkQiLAore1BkVj1Qc1YgJiBQdFY7fSkKKworUTZJTlNOKEMyX29yLCJQZDQ9 b3IoUHQ0LFBzNCkiLEFUVFJJQlMoQV9DUlNMT1QyMyksCisiUHJlZGljYXRlIE9SIiwKK3tQZFY9 UHNWIHwgUHRWO30pCisKK1E2SU5TTihDMl94b3IsIlBkND14b3IoUHM0LFB0NCkiLEFUVFJJQlMo QV9DUlNMT1QyMyksCisiUHJlZGljYXRlIFhPUiIsCit7UGRWPVBzViBeIFB0Vjt9KQorCitRNklO U04oQzJfYW5kbiwiUGQ0PWFuZChQdDQsIVBzNCkiLEFUVFJJQlMoQV9DUlNMT1QyMyksCisiUHJl ZGljYXRlIEFORCBOT1QiLAore1BkVj1QdFYgJiAoflBzVik7fSkKKworUTZJTlNOKEMyX25vdCwi UGQ0PW5vdChQczQpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAorIkxvZ2ljYWwgTk9UIFByZWRpY2F0 ZSIsCit7UGRWPX5Qc1Y7fSkKKworUTZJTlNOKEMyX29ybiwiUGQ0PW9yKFB0NCwhUHM0KSIsQVRU UklCUyhBX0FSQ0hWMixBX0NSU0xPVDIzKSwKKyJQcmVkaWNhdGUgT1IgTk9UIiwKK3tQZFY9UHRW IHwgKH5Qc1YpO30pCisKKworCisKKworUTZJTlNOKEM0X2FuZF9hbmQsIlBkND1hbmQoUHM0LGFu ZChQdDQsUHU0KSkiLEFUVFJJQlMoQV9DUlNMT1QyMyksCisiQ29tcG91bmQgQW5kLUFuZCIsIHsg UGRWID0gUHNWICYgUHRWICYgUHVWOyB9KQorCitRNklOU04oQzRfYW5kX29yLCJQZDQ9YW5kKFBz NCxvcihQdDQsUHU0KSkiLEFUVFJJQlMoQV9DUlNMT1QyMyksCisiQ29tcG91bmQgQW5kLU9yIiwg eyBQZFYgPSBQc1YgJiAgKFB0ViB8IFB1Vik7IH0pCisKK1E2SU5TTihDNF9vcl9hbmQsIlBkND1v cihQczQsYW5kKFB0NCxQdTQpKSIsQVRUUklCUyhBX0NSU0xPVDIzKSwKKyJDb21wb3VuZCBPci1B bmQiLCB7IFBkViA9IFBzViB8IChQdFYgJiBQdVYpOyB9KQorCitRNklOU04oQzRfb3Jfb3IsIlBk ND1vcihQczQsb3IoUHQ0LFB1NCkpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAorIkNvbXBvdW5kIE9y LU9yIiwgeyBQZFYgPSBQc1YgfCBQdFYgfCBQdVY7IH0pCisKKworCitRNklOU04oQzRfYW5kX2Fu ZG4sIlBkND1hbmQoUHM0LGFuZChQdDQsIVB1NCkpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAorIkNv bXBvdW5kIEFuZC1BbmQiLCB7IFBkViA9IFBzViAmIFB0ViAmICh+UHVWKTsgfSkKKworUTZJTlNO KEM0X2FuZF9vcm4sIlBkND1hbmQoUHM0LG9yKFB0NCwhUHU0KSkiLEFUVFJJQlMoQV9DUlNMT1Qy MyksCisiQ29tcG91bmQgQW5kLU9yIiwgeyBQZFYgPSBQc1YgJiAgKFB0ViB8ICh+UHVWKSk7IH0p CisKK1E2SU5TTihDNF9vcl9hbmRuLCJQZDQ9b3IoUHM0LGFuZChQdDQsIVB1NCkpIixBVFRSSUJT KEFfQ1JTTE9UMjMpLAorIkNvbXBvdW5kIE9yLUFuZCIsIHsgUGRWID0gUHNWIHwgKFB0ViAmICh+ UHVWKSk7IH0pCisKK1E2SU5TTihDNF9vcl9vcm4sIlBkND1vcihQczQsb3IoUHQ0LCFQdTQpKSIs QVRUUklCUyhBX0NSU0xPVDIzKSwKKyJDb21wb3VuZCBPci1PciIsIHsgUGRWID0gUHNWIHwgUHRW IHwgKH5QdVYpOyB9KQorCisKK1E2SU5TTihDMl9hbnk4LCJQZDQ9YW55OChQczQpIixBVFRSSUJT KEFfQ1JTTE9UMjMpLAorIkxvZ2ljYWwgQU5ZIG9mIGxvdyA4IHByZWRpY2F0ZSBiaXRzIiwKK3sg UHNWID8gKFBkVj0weGZmKSA6IChQZFY9MHgwMCk7IH0pCisKK1E2SU5TTihDMl9hbGw4LCJQZDQ9 YWxsOChQczQpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAorIkxvZ2ljYWwgQUxMIG9mIGxvdyA4IHBy ZWRpY2F0ZSBiaXRzIiwKK3sgKFBzVj09MHhmZikgPyAoUGRWPTB4ZmYpIDogKFBkVj0weDAwKTsg fSkKKworUTZJTlNOKEMyX3ZpdHBhY2ssIlJkMzI9dml0cGFjayhQczQsUHQ0KSIsQVRUUklCUygp LAorIlBhY2sgdGhlIG9kZCBhbmQgZXZlbiBiaXRzIG9mIHR3byBwcmVkaWNhdGUgcmVnaXN0ZXJz IiwKK3sgUmRWID0gKFBzViYweDU1KSB8IChQdFYmMHhBQSk7IH0pCisKKy8qIE11eCBpbnN0cnVj dGlvbnMgKi8KKworUTZJTlNOKEMyX211eCwiUmQzMj1tdXgoUHU0LFJzMzIsUnQzMikiLEFUVFJJ QlMoKSwKKyJTY2FsYXIgTVVYIiwKK3sgKGZMU0JPTEQoUHVWKSkgPyAoUmRWPVJzVik6KFJkVj1S dFYpOyB9KQorCisKK1E2SU5TTihDMl9jbW92ZW5ld2l0LCJpZiAoUHU0Lm5ldykgUmQzMj0jczEy IixBVFRSSUJTKEFfQVJDSFYyKSwKKyJTY2FsYXIgY29uZGl0aW9uYWwgbW92ZSIsCit7IGZJTU1F WFQoc2lWKTsgaWYgKGZMU0JORVcoUHVOKSkgUmRWPXNpVjsgZWxzZSBDQU5DRUw7fSkKKworUTZJ TlNOKEMyX2Ntb3ZlbmV3aWYsImlmICghUHU0Lm5ldykgUmQzMj0jczEyIixBVFRSSUJTKEFfQVJD SFYyKSwKKyJTY2FsYXIgY29uZGl0aW9uYWwgbW92ZSIsCit7IGZJTU1FWFQoc2lWKTsgaWYgKGZM U0JORVdOT1QoUHVOKSkgUmRWPXNpVjsgZWxzZSBDQU5DRUw7fSkKKworUTZJTlNOKEMyX2Ntb3Zl aXQsImlmIChQdTQpIFJkMzI9I3MxMiIsQVRUUklCUyhBX0FSQ0hWMiksCisiU2NhbGFyIGNvbmRp dGlvbmFsIG1vdmUiLAoreyBmSU1NRVhUKHNpVik7IGlmIChmTFNCT0xEKFB1VikpIFJkVj1zaVY7 IGVsc2UgQ0FOQ0VMO30pCisKK1E2SU5TTihDMl9jbW92ZWlmLCJpZiAoIVB1NCkgUmQzMj0jczEy IixBVFRSSUJTKEFfQVJDSFYyKSwKKyJTY2FsYXIgY29uZGl0aW9uYWwgbW92ZSIsCit7IGZJTU1F WFQoc2lWKTsgaWYgKGZMU0JPTEROT1QoUHVWKSkgUmRWPXNpVjsgZWxzZSBDQU5DRUw7fSkKKwor CisKK1E2SU5TTihDMl9jY29tYmluZXduZXd0LCJpZiAoUHU0Lm5ldykgUmRkMzI9Y29tYmluZShS czMyLFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJDb25kaXRpb25hbGx5IGNvbWJpbmUgdHdv IHdvcmRzIGludG8gYSByZWdpc3RlciBwYWlyIiwKK3sgaWYgKGZMU0JORVcoUHVOKSkgeworICAg IGZTRVRXT1JEKDAsUmRkVixSdFYpOworICAgIGZTRVRXT1JEKDEsUmRkVixSc1YpOworICB9IGVs c2Uge0NBTkNFTDt9Cit9KQorCitRNklOU04oQzJfY2NvbWJpbmV3bmV3ZiwiaWYgKCFQdTQubmV3 KSBSZGQzMj1jb21iaW5lKFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkNvbmRpdGlv bmFsbHkgY29tYmluZSB0d28gd29yZHMgaW50byBhIHJlZ2lzdGVyIHBhaXIiLAoreyBpZiAoZkxT Qk5FV05PVChQdU4pKSB7CisgICAgZlNFVFdPUkQoMCxSZGRWLFJ0Vik7CisgICAgZlNFVFdPUkQo MSxSZGRWLFJzVik7CisgIH0gZWxzZSB7Q0FOQ0VMO30KK30pCisKK1E2SU5TTihDMl9jY29tYmlu ZXd0LCJpZiAoUHU0KSBSZGQzMj1jb21iaW5lKFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIp LAorIkNvbmRpdGlvbmFsbHkgY29tYmluZSB0d28gd29yZHMgaW50byBhIHJlZ2lzdGVyIHBhaXIi LAoreyBpZiAoZkxTQk9MRChQdVYpKSB7CisgICAgZlNFVFdPUkQoMCxSZGRWLFJ0Vik7CisgICAg ZlNFVFdPUkQoMSxSZGRWLFJzVik7CisgIH0gZWxzZSB7Q0FOQ0VMO30KK30pCisKK1E2SU5TTihD Ml9jY29tYmluZXdmLCJpZiAoIVB1NCkgUmRkMzI9Y29tYmluZShSczMyLFJ0MzIpIixBVFRSSUJT KEFfQVJDSFYyKSwKKyJDb25kaXRpb25hbGx5IGNvbWJpbmUgdHdvIHdvcmRzIGludG8gYSByZWdp c3RlciBwYWlyIiwKK3sgaWYgKGZMU0JPTEROT1QoUHVWKSkgeworICAgIGZTRVRXT1JEKDAsUmRk VixSdFYpOworICAgIGZTRVRXT1JEKDEsUmRkVixSc1YpOworICB9IGVsc2Uge0NBTkNFTDt9Cit9 KQorCisKKworUTZJTlNOKEMyX211eGlpLCJSZDMyPW11eChQdTQsI3M4LCNTOCkiLEFUVFJJQlMo QV9BUkNIVjIpLAorIlNjYWxhciBNVVggaW1tZWRpYXRlcyIsCit7IGZJTU1FWFQoc2lWKTsgKGZM U0JPTEQoUHVWKSkgPyAoUmRWPXNpVik6KFJkVj1TaVYpOyB9KQorCisKKworUTZJTlNOKEMyX211 eGlyLCJSZDMyPW11eChQdTQsUnMzMiwjczgpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJTY2FsYXIg TVVYIHJlZ2lzdGVyIGltbWVkaWF0ZSIsCit7IGZJTU1FWFQoc2lWKTsgKGZMU0JPTEQoUHVWKSkg PyAoUmRWPVJzVik6KFJkVj1zaVYpOyB9KQorCisKK1E2SU5TTihDMl9tdXhyaSwiUmQzMj1tdXgo UHU0LCNzOCxSczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiU2NhbGFyIE1VWCByZWdpc3RlciBp bW1lZGlhdGUiLAoreyBmSU1NRVhUKHNpVik7IChmTFNCT0xEKFB1VikpID8gKFJkVj1zaVYpOihS ZFY9UnNWKTsgfSkKKworCisKK1E2SU5TTihDMl92bXV4LCJSZGQzMj12bXV4KFB1NCxSc3MzMixS dHQzMikiLEFUVFJJQlMoKSwKKyJWZWN0b3IgTVVYIiwKK3sKKyAgICBmSElERShpbnQgaTspCisg ICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICBmU0VUQllURShpLFJkZFYsKGZH RVRCSVQoaSxQdVYpPyhmR0VUQllURShpLFJzc1YpKTooZkdFVEJZVEUoaSxSdHRWKSkpKTsKKyAg ICB9Cit9KQorCitRNklOU04oQzJfbWFzaywiUmRkMzI9bWFzayhQdDQpIixBVFRSSUJTKCksCisi VmVjdG9yIE1hc2sgR2VuZXJhdGlvbiIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAo aSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgICAgZlNFVEJZVEUoaSxSZGRWLChmR0VUQklUKGks UHRWKT8oMHhmZik6KDB4MDApKSk7CisgICAgfQorfSkKKworLyogVkNNUCAqLworCitRNklOU04o QTJfdmNtcGJlcSwiUGQ0PXZjbXBiLmVxKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkNvbXBh cmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sKKyAgICBmSElERShpbnQgaTspCisgICAg Zm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICBmU0VUQklUKGksUGRWLChmR0VUQllU RShpLFJzc1YpID09IGZHRVRCWVRFKGksUnR0VikpKTsKKyAgICB9Cit9KQorCitRNklOU04oQTRf dmNtcGJlcWksIlBkND12Y21wYi5lcShSc3MzMiwjdTgpIixBVFRSSUJTKCksCisiQ29tcGFyZSBl bGVtZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3Ig KGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgIGZTRVRCSVQoaSxQZFYsKGZHRVRVQllURShp LFJzc1YpID09IHVpVikpOworICAgIH0KK30pCisKK1E2SU5TTihBNF92Y21wYmVxX2FueSwiUGQ0 PWFueTgodmNtcGIuZXEoUnNzMzIsUnR0MzIpKSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVu dHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sKKyAgICBmSElERShpbnQgaTspCisgICAgUGRWID0gMDsK KyAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgIGlmIChmR0VUQllURShpLFJz c1YpID09IGZHRVRCWVRFKGksUnR0VikpIFBkViA9IDB4ZmY7CisgICAgfQorfSkKKworUTZJTlNO KEE2X3ZjbXBiZXFfbm90YW55LCJQZDQ9IWFueTgodmNtcGIuZXEoUnNzMzIsUnR0MzIpKSIsQVRU UklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sKKyAgICBmSElE RShpbnQgaTspCisgICAgUGRWID0gMDsKKyAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Cisg ICAgICAgIGlmIChmR0VUQllURShpLFJzc1YpID09IGZHRVRCWVRFKGksUnR0VikpIFBkViA9IDB4 ZmY7CisgICAgfQorICAgIFBkViA9IH5QZFY7Cit9KQorCitRNklOU04oQTJfdmNtcGJndHUsIlBk ND12Y21wYi5ndHUoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBlbGVtZW50cyBv ZiB0d28gdmVjdG9ycyAiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGkgPSAwOyBp IDwgODsgaSsrKSB7CisgICAgICAgIGZTRVRCSVQoaSxQZFYsKGZHRVRVQllURShpLFJzc1YpID4g ZkdFVFVCWVRFKGksUnR0VikpKTsKKyAgICB9Cit9KQorCitRNklOU04oQTRfdmNtcGJndHVpLCJQ ZDQ9dmNtcGIuZ3R1KFJzczMyLCN1NykiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGVsZW1lbnRzIG9m IHR3byB2ZWN0b3JzICIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAoaSA9IDA7IGkg PCA4OyBpKyspIHsKKyAgICAgICAgZlNFVEJJVChpLFBkViwoZkdFVFVCWVRFKGksUnNzVikgPiB1 aVYpKTsKKyAgICB9Cit9KQorCitRNklOU04oQTRfdmNtcGJndCwiUGQ0PXZjbXBiLmd0KFJzczMy LFJ0dDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwK K3sKKyAgICBmSElERShpbnQgaTspCisgICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAg ICAgICBmU0VUQklUKGksUGRWLChmR0VUQllURShpLFJzc1YpID4gZkdFVEJZVEUoaSxSdHRWKSkp OworICAgIH0KK30pCisKK1E2SU5TTihBNF92Y21wYmd0aSwiUGQ0PXZjbXBiLmd0KFJzczMyLCNz OCkiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzICIsCit7Cisg ICAgZkhJREUoaW50IGk7KQorICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgICAg ZlNFVEJJVChpLFBkViwoZkdFVEJZVEUoaSxSc3NWKSA+IHNpVikpOworICAgIH0KK30pCisKKwor CitRNklOU04oQTRfY21wYmVxLCJQZDQ9Y21wYi5lcShSczMyLFJ0MzIpIixBVFRSSUJTKCksCisi Q29tcGFyZSBieXRlcyAiLAoreworICAgIFBkVj1mOEJJVFNPRihmR0VUQllURSgwLFJzVikgPT0g ZkdFVEJZVEUoMCxSdFYpKTsKK30pCisKK1E2SU5TTihBNF9jbXBiZXFpLCJQZDQ9Y21wYi5lcShS czMyLCN1OCkiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGJ5dGVzICIsCit7CisgICAgUGRWPWY4QklU U09GKGZHRVRVQllURSgwLFJzVikgPT0gdWlWKTsKK30pCisKK1E2SU5TTihBNF9jbXBiZ3R1LCJQ ZDQ9Y21wYi5ndHUoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgYnl0ZXMgIiwKK3sK KyAgICBQZFY9ZjhCSVRTT0YoZkdFVFVCWVRFKDAsUnNWKSA+IGZHRVRVQllURSgwLFJ0VikpOwor fSkKKworUTZJTlNOKEE0X2NtcGJndHVpLCJQZDQ9Y21wYi5ndHUoUnMzMiwjdTcpIixBVFRSSUJT KCksCisiQ29tcGFyZSBieXRlcyAiLAoreworICAgIGZJTU1FWFQodWlWKTsKKyAgICBQZFY9ZjhC SVRTT0YoZkdFVFVCWVRFKDAsUnNWKSA+IGZDQVNUNHUodWlWKSk7Cit9KQorCitRNklOU04oQTRf Y21wYmd0LCJQZDQ9Y21wYi5ndChSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBieXRl cyAiLAoreworICAgIFBkVj1mOEJJVFNPRihmR0VUQllURSgwLFJzVikgPiBmR0VUQllURSgwLFJ0 VikpOworfSkKKworUTZJTlNOKEE0X2NtcGJndGksIlBkND1jbXBiLmd0KFJzMzIsI3M4KSIsQVRU UklCUygpLAorIkNvbXBhcmUgYnl0ZXMgIiwKK3sKKyAgICBQZFY9ZjhCSVRTT0YoZkdFVEJZVEUo MCxSc1YpID4gc2lWKTsKK30pCisKK1E2SU5TTihBMl92Y21waGVxLCJQZDQ9dmNtcGguZXEoUnNz MzIsUnR0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyAi LAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7Cisg ICAgICAgIGZTRVRCSVQoaSoyLFBkViwgIChmR0VUSEFMRihpLFJzc1YpID09IGZHRVRIQUxGKGks UnR0VikpKTsKKyAgICAgICAgZlNFVEJJVChpKjIrMSxQZFYsKGZHRVRIQUxGKGksUnNzVikgPT0g ZkdFVEhBTEYoaSxSdHRWKSkpOworICAgIH0KK30pCisKK1E2SU5TTihBMl92Y21waGd0LCJQZDQ9 dmNtcGguZ3QoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBlbGVtZW50cyBvZiB0 d28gdmVjdG9ycyAiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGkgPSAwOyBpIDwg NDsgaSsrKSB7CisgICAgICAgIGZTRVRCSVQoaSoyLCAgUGRWLCAgKGZHRVRIQUxGKGksUnNzVikg PiBmR0VUSEFMRihpLFJ0dFYpKSk7CisgICAgICAgIGZTRVRCSVQoaSoyKzEsUGRWLCAgKGZHRVRI QUxGKGksUnNzVikgPiBmR0VUSEFMRihpLFJ0dFYpKSk7CisgICAgfQorfSkKKworUTZJTlNOKEEy X3ZjbXBoZ3R1LCJQZDQ9dmNtcGguZ3R1KFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkNvbXBh cmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sKKyAgICBmSElERShpbnQgaTspCisgICAg Zm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAgICBmU0VUQklUKGkqMiwgIFBkViwgIChm R0VUVUhBTEYoaSxSc3NWKSA+IGZHRVRVSEFMRihpLFJ0dFYpKSk7CisgICAgICAgIGZTRVRCSVQo aSoyKzEsUGRWLCAgKGZHRVRVSEFMRihpLFJzc1YpID4gZkdFVFVIQUxGKGksUnR0VikpKTsKKyAg ICB9Cit9KQorCitRNklOU04oQTRfdmNtcGhlcWksIlBkND12Y21waC5lcShSc3MzMiwjczgpIixB VFRSSUJTKCksCisiQ29tcGFyZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworICAgIGZI SURFKGludCBpOykKKyAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgIGZTRVRC SVQoaSoyLFBkViwgIChmR0VUSEFMRihpLFJzc1YpID09IHNpVikpOworICAgICAgICBmU0VUQklU KGkqMisxLFBkViwoZkdFVEhBTEYoaSxSc3NWKSA9PSBzaVYpKTsKKyAgICB9Cit9KQorCitRNklO U04oQTRfdmNtcGhndGksIlBkND12Y21waC5ndChSc3MzMiwjczgpIixBVFRSSUJTKCksCisiQ29t cGFyZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworICAgIGZISURFKGludCBpOykKKyAg ICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgIGZTRVRCSVQoaSoyLCAgUGRWLCAg KGZHRVRIQUxGKGksUnNzVikgPiBzaVYpKTsKKyAgICAgICAgZlNFVEJJVChpKjIrMSxQZFYsICAo ZkdFVEhBTEYoaSxSc3NWKSA+IHNpVikpOworICAgIH0KK30pCisKKworUTZJTlNOKEE0X3ZjbXBo Z3R1aSwiUGQ0PXZjbXBoLmd0dShSc3MzMiwjdTcpIixBVFRSSUJTKCksCisiQ29tcGFyZSBlbGVt ZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGkg PSAwOyBpIDwgNDsgaSsrKSB7CisgICAgICAgIGZTRVRCSVQoaSoyLCAgUGRWLCAgKGZHRVRVSEFM RihpLFJzc1YpID4gdWlWKSk7CisgICAgICAgIGZTRVRCSVQoaSoyKzEsUGRWLCAgKGZHRVRVSEFM RihpLFJzc1YpID4gdWlWKSk7CisgICAgfQorfSkKKworUTZJTlNOKEE0X2NtcGhlcSwiUGQ0PWNt cGguZXEoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgaGFsZndvcmRzICIsCit7Cisg ICAgUGRWPWY4QklUU09GKGZHRVRIQUxGKDAsUnNWKSA9PSBmR0VUSEFMRigwLFJ0VikpOworfSkK KworUTZJTlNOKEE0X2NtcGhndCwiUGQ0PWNtcGguZ3QoUnMzMixSdDMyKSIsQVRUUklCUygpLAor IkNvbXBhcmUgaGFsZndvcmRzICIsCit7CisgICAgUGRWPWY4QklUU09GKGZHRVRIQUxGKDAsUnNW KSA+IGZHRVRIQUxGKDAsUnRWKSk7Cit9KQorCitRNklOU04oQTRfY21waGd0dSwiUGQ0PWNtcGgu Z3R1KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGhhbGZ3b3JkcyAiLAoreworICAg IFBkVj1mOEJJVFNPRihmR0VUVUhBTEYoMCxSc1YpID4gZkdFVFVIQUxGKDAsUnRWKSk7Cit9KQor CitRNklOU04oQTRfY21waGVxaSwiUGQ0PWNtcGguZXEoUnMzMiwjczgpIixBVFRSSUJTKCksCisi Q29tcGFyZSBoYWxmd29yZHMgIiwKK3sKKyAgICBmSU1NRVhUKHNpVik7CisgICAgUGRWPWY4QklU U09GKGZHRVRIQUxGKDAsUnNWKSA9PSBzaVYpOworfSkKKworUTZJTlNOKEE0X2NtcGhndGksIlBk ND1jbXBoLmd0KFJzMzIsI3M4KSIsQVRUUklCUygpLAorIkNvbXBhcmUgaGFsZndvcmRzICIsCit7 CisgICAgZklNTUVYVChzaVYpOworICAgIFBkVj1mOEJJVFNPRihmR0VUSEFMRigwLFJzVikgPiBz aVYpOworfSkKKworUTZJTlNOKEE0X2NtcGhndHVpLCJQZDQ9Y21waC5ndHUoUnMzMiwjdTcpIixB VFRSSUJTKCksCisiQ29tcGFyZSBoYWxmd29yZHMgIiwKK3sKKyAgICBmSU1NRVhUKHVpVik7Cisg ICAgUGRWPWY4QklUU09GKGZHRVRVSEFMRigwLFJzVikgPiBmQ0FTVDR1KHVpVikpOworfSkKKwor UTZJTlNOKEEyX3ZjbXB3ZXEsIlBkND12Y21wdy5lcShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwK KyJDb21wYXJlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzICIsCit7CisgICAgZlNFVEJJVFMoMyww LFBkViwoZkdFVFdPUkQoMCxSc3NWKT09ZkdFVFdPUkQoMCxSdHRWKSkpOworICAgIGZTRVRCSVRT KDcsNCxQZFYsKGZHRVRXT1JEKDEsUnNzVik9PWZHRVRXT1JEKDEsUnR0VikpKTsKK30pCisKK1E2 SU5TTihBMl92Y21wd2d0LCJQZDQ9dmNtcHcuZ3QoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisi Q29tcGFyZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworICAgIGZTRVRCSVRTKDMsMCxQ ZFYsKGZHRVRXT1JEKDAsUnNzVik+ZkdFVFdPUkQoMCxSdHRWKSkpOworICAgIGZTRVRCSVRTKDcs NCxQZFYsKGZHRVRXT1JEKDEsUnNzVik+ZkdFVFdPUkQoMSxSdHRWKSkpOworfSkKKworUTZJTlNO KEEyX3ZjbXB3Z3R1LCJQZDQ9dmNtcHcuZ3R1KFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkNv bXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sKKyAgICBmU0VUQklUUygzLDAsUGRW LChmR0VUVVdPUkQoMCxSc3NWKT5mR0VUVVdPUkQoMCxSdHRWKSkpOworICAgIGZTRVRCSVRTKDcs NCxQZFYsKGZHRVRVV09SRCgxLFJzc1YpPmZHRVRVV09SRCgxLFJ0dFYpKSk7Cit9KQorCitRNklO U04oQTRfdmNtcHdlcWksIlBkND12Y21wdy5lcShSc3MzMiwjczgpIixBVFRSSUJTKCksCisiQ29t cGFyZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworICAgIGZTRVRCSVRTKDMsMCxQZFYs KGZHRVRXT1JEKDAsUnNzVik9PXNpVikpOworICAgIGZTRVRCSVRTKDcsNCxQZFYsKGZHRVRXT1JE KDEsUnNzVik9PXNpVikpOworfSkKKworUTZJTlNOKEE0X3ZjbXB3Z3RpLCJQZDQ9dmNtcHcuZ3Qo UnNzMzIsI3M4KSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMg IiwKK3sKKyAgICBmU0VUQklUUygzLDAsUGRWLChmR0VUV09SRCgwLFJzc1YpPnNpVikpOworICAg IGZTRVRCSVRTKDcsNCxQZFYsKGZHRVRXT1JEKDEsUnNzVik+c2lWKSk7Cit9KQorCitRNklOU04o QTRfdmNtcHdndHVpLCJQZDQ9dmNtcHcuZ3R1KFJzczMyLCN1NykiLEFUVFJJQlMoKSwKKyJDb21w YXJlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzICIsCit7CisgICAgZlNFVEJJVFMoMywwLFBkViwo ZkdFVFVXT1JEKDAsUnNzVik+ZkNBU1Q0dSh1aVYpKSk7CisgICAgZlNFVEJJVFMoNyw0LFBkViwo ZkdFVFVXT1JEKDEsUnNzVik+ZkNBU1Q0dSh1aVYpKSk7Cit9KQorCitRNklOU04oQTRfYm91bmRz Y2hlY2tfaGksIlBkND1ib3VuZHNjaGVjayhSc3MzMixSdHQzMik6cmF3OmhpIixBVFRSSUJTKCks CisiRGV0ZWN0IGlmIGEgcmVnaXN0ZXIgaXMgd2l0aGluIGJvdW5kcyIsCit7CisgICAgZkhJREUo c2l6ZTR1X3Qgc3JjOykKKyAgICBzcmMgPSBmR0VUVVdPUkQoMSxSc3NWKTsKKyAgICBQZFYgPSBm OEJJVFNPRigoZkNBU1Q0dShzcmMpID49IGZHRVRVV09SRCgwLFJ0dFYpKSAmJiAoZkNBU1Q0dShz cmMpIDwgZkdFVFVXT1JEKDEsUnR0VikpKTsKK30pCisKK1E2SU5TTihBNF9ib3VuZHNjaGVja19s bywiUGQ0PWJvdW5kc2NoZWNrKFJzczMyLFJ0dDMyKTpyYXc6bG8iLEFUVFJJQlMoKSwKKyJEZXRl Y3QgaWYgYSByZWdpc3RlciBpcyB3aXRoaW4gYm91bmRzIiwKK3sKKyAgICBmSElERShzaXplNHVf dCBzcmM7KQorICAgIHNyYyA9IGZHRVRVV09SRCgwLFJzc1YpOworICAgIFBkViA9IGY4QklUU09G KChmQ0FTVDR1KHNyYykgPj0gZkdFVFVXT1JEKDAsUnR0VikpICYmIChmQ0FTVDR1KHNyYykgPCBm R0VUVVdPUkQoMSxSdHRWKSkpOworfSkKKworUTZJTlNOKEE0X3RsYm1hdGNoLCJQZDQ9dGxibWF0 Y2goUnNzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJEZXRlY3QgaWYgYSBWQS9BU0lEIG1hdGNoZXMg YSBUTEIgZW50cnkiLAoreworICAgIGZISURFKHNpemU0dV90IFRMQkhJOyBzaXplNHVfdCBUTEJM Tzsgc2l6ZTR1X3QgTUFTSzsgc2l6ZTR1X3QgU0laRTspCisgICAgTUFTSyA9IDB4MDdmZmZmZmY7 CisgICAgVExCTE8gPSBmR0VUVVdPUkQoMCxSc3NWKTsKKyAgICBUTEJISSA9IGZHRVRVV09SRCgx LFJzc1YpOworICAgIFNJWkUgPSBmTUlOKDYsZkNMMV80KH5mQlJFVl80KFRMQkxPKSkpOworICAg IE1BU0sgJj0gKDB4ZmZmZmZmZmYgPDwgMipTSVpFKTsKKyAgICBQZFYgPSBmOEJJVFNPRihmR0VU QklUKDMxLFRMQkhJKSAmJiAoKFRMQkhJICYgTUFTSykgPT0gKFJ0ViAmIE1BU0spKSk7Cit9KQor CitRNklOU04oQzJfdGZycHIsIlJkMzI9UHM0IixBVFRSSUJTKCksCisiVHJhbnNmZXIgcHJlZGlj YXRlIHRvIGdlbmVyYWwgcmVnaXN0ZXIiLCB7IFJkViA9IGZaWFROKDgsMzIsUHNWKTsgfSkKKwor UTZJTlNOKEMyX3RmcnJwLCJQZDQ9UnMzMiIsQVRUUklCUygpLAorIlRyYW5zZmVyIGdlbmVyYWwg cmVnaXN0ZXIgdG8gUHJlZGljYXRlIiwgeyBQZFYgPSBmR0VUVUJZVEUoMCxSc1YpOyB9KQorCitR NklOU04oQzRfZmFzdGNvcm5lcjksIlBkND1mYXN0Y29ybmVyOShQczQsUHQ0KSIsQVRUUklCUyhB X0NSU0xPVDIzKSwKKyJEZXRlcm1pbmUgd2hldGhlciB0aGUgcHJlZGljYXRlIHNvdXJjZXMgZGVm aW5lIGEgY29ybmVyIiwKK3sKKyAgICBmSElERShzaXplNHVfdCB0bXAgPSAwOyBzaXplNHVfdCBp OykKKyAgICBmU0VUSEFMRigwLHRtcCwoUHNWPDw4KXxQdFYpOworICAgIGZTRVRIQUxGKDEsdG1w LChQc1Y8PDgpfFB0Vik7CisgICAgZm9yIChpID0gMTsgaSA8IDk7IGkrKykgeworICAgICAgICB0 bXAgJj0gdG1wID4+IDE7CisgICAgfQorICAgIFBkViA9IGY4QklUU09GKHRtcCAhPSAwKTsKK30p CisKK1E2SU5TTihDNF9mYXN0Y29ybmVyOV9ub3QsIlBkND0hZmFzdGNvcm5lcjkoUHM0LFB0NCki LEFUVFJJQlMoQV9DUlNMT1QyMyksCisiRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHByZWRpY2F0ZSBz b3VyY2VzIGRlZmluZSBhIGNvcm5lciIsCit7CisgICAgZkhJREUoc2l6ZTR1X3QgdG1wID0gMDsg c2l6ZTR1X3QgaTspCisgICAgZlNFVEhBTEYoMCx0bXAsKFBzVjw8OCl8UHRWKTsKKyAgICBmU0VU SEFMRigxLHRtcCwoUHNWPDw4KXxQdFYpOworICAgIGZvciAoaSA9IDE7IGkgPCA5OyBpKyspIHsK KyAgICAgICAgdG1wICY9IHRtcCA+PiAxOworICAgIH0KKyAgICBQZFYgPSBmOEJJVFNPRih0bXAg PT0gMCk7Cit9KQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlLmRl ZiBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2VuY29kZS5kZWYKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYjkzNjhkMQotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9oZXhh Z29uL2ltcG9ydGVkL2VuY29kZS5kZWYKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiAgQ29weXJp Z2h0KGMpIDIwMTktMjAyMSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmln aHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq ICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisgKi8KKworLyoKKyAqIFRoaXMganVzdCBpbmNsdWRlcyBhbGwgZW5jb2RpbmcgZmlsZXMKKyAq LworCisjaWZuZGVmIERFRl9GSUVMRDMyCisjZGVmaW5lIF9fU0VMRl9ERUZfRklFTEQzMgorI2Rl ZmluZSBERUZfRklFTEQzMiguLi4pIC8qIG5vdGhpbmcgKi8KKyNlbmRpZgorCisjaWZuZGVmIERF Rl9DTEFTUzMyCisjZGVmaW5lIF9fU0VMRl9ERUZfQ0xBU1MzMgorI2RlZmluZSBERUZfQ0xBU1Mz MiguLi4pIC8qIG5vdGhpbmcgKi8KKyNlbmRpZgorCisjaWZuZGVmIERFRl9BTlRJQ0xBU1MzMgor I2RlZmluZSBfX1NFTEZfREVGX0FOVElDTEFTUzMyCisjZGVmaW5lIERFRl9BTlRJQ0xBU1MzMigu Li4pIC8qIG5vdGhpbmcgKi8KKyNlbmRpZgorCisjaWZuZGVmIExFR0FDWV9ERUZfRU5DMzIKKyNk ZWZpbmUgX19TRUxGX0RFRl9MRUdBQ1lfREVGX0VOQzMyCisjZGVmaW5lIExFR0FDWV9ERUZfRU5D MzIoLi4uKSAvKiBub3RoaW5nICovCisjZW5kaWYKKworI2lmbmRlZiBERUZfRklFTERST1dfREVT QzMyCisjZGVmaW5lIF9fU0VMRl9ERUZfRklFTERST1dfREVTQzMyCisjZGVmaW5lIERFRl9GSUVM RFJPV19ERVNDMzIoLi4uKSAvKiBub3RoaW5nICovCisjZW5kaWYKKworI2lmbmRlZiBERUZfRU5D MzIKKyNkZWZpbmUgX19TRUxGX0RFRl9FTkMzMgorI2RlZmluZSBERUZfRU5DMzIoLi4uKSAvKiBu b3RoaW5nICovCisjZW5kaWYKKworI2lmbmRlZiBERUZfUEFDS0VEMzIKKyNkZWZpbmUgX19TRUxG X0RFRl9QQUNLRUQzMgorI2RlZmluZSBERUZfUEFDS0VEMzIoLi4uKSAvKiBub3RoaW5nICovCisj ZW5kaWYKKworI2lmbmRlZiBERUZfRU5DX1NVQklOU04KKyNkZWZpbmUgX19TRUxGX0RFRl9FTkNf U1VCSU5TTgorI2RlZmluZSBERUZfRU5DX1NVQklOU04oLi4uKSAvKiBub3RoaW5nICovCisjZW5k aWYKKworI2lmbmRlZiBERUZfRVhUX0VOQworI2RlZmluZSBfX1NFTEZfREVGX0VYVF9FTkMKKyNk ZWZpbmUgREVGX0VYVF9FTkMoLi4uKSAvKiBub3RoaW5nICovCisjZW5kaWYKKworI2lmbmRlZiBE RUZfRVhUX1NQQUNFCisjZGVmaW5lIF9fU0VMRl9ERUZfRVhUX1NQQUNFCisjZGVmaW5lIERFRl9F WFRfU1BBQ0UoLi4uKSAvKiBub3RoaW5nICovCisjZW5kaWYKKworI2luY2x1ZGUgImVuY29kZV9w cC5kZWYiCisjaW5jbHVkZSAiZW5jb2RlX3N1Ymluc24uZGVmIgorCisjaWZkZWYgX19TRUxGX0RF Rl9GSUVMRDMyCisjdW5kZWYgX19TRUxGX0RFRl9GSUVMRDMyCisjdW5kZWYgREVGX0ZJRUxEMzIK KyNlbmRpZgorCisjaWZkZWYgX19TRUxGX0RFRl9DTEFTUzMyCisjdW5kZWYgX19TRUxGX0RFRl9D TEFTUzMyCisjdW5kZWYgREVGX0NMQVNTMzIKKyNlbmRpZgorCisjaWZkZWYgX19TRUxGX0RFRl9B TlRJQ0xBU1MzMgorI3VuZGVmIF9fU0VMRl9ERUZfQU5USUNMQVNTMzIKKyN1bmRlZiBERUZfQU5U SUNMQVNTMzIKKyNlbmRpZgorCisjaWZkZWYgX19TRUxGX0RFRl9MRUdBQ1lfREVGX0VOQzMyCisj dW5kZWYgX19TRUxGX0RFRl9MRUdBQ1lfREVGX0VOQzMyCisjdW5kZWYgTEVHQUNZX0RFRl9FTkMz MgorI2VuZGlmCisKKyNpZmRlZiBfX1NFTEZfREVGX0ZJRUxEUk9XX0RFU0MzMgorI3VuZGVmIF9f U0VMRl9ERUZfRklFTERST1dfREVTQzMyCisjdW5kZWYgREVGX0ZJRUxEUk9XX0RFU0MzMgorI2Vu ZGlmCisKKyNpZmRlZiBfX1NFTEZfREVGX0VOQzMyCisjdW5kZWYgX19TRUxGX0RFRl9FTkMzMgor I3VuZGVmIERFRl9FTkMzMgorI2VuZGlmCisKKyNpZmRlZiBfX1NFTEZfREVGX0VYVF9TUEFDRQor I3VuZGVmIF9fU0VMRl9ERUZfRVhUX1NQQUNFCisjdW5kZWYgREVGX0VYVF9TUEFDRQorI2VuZGlm CisKKworI2lmZGVmIF9fU0VMRl9ERUZfUEFDS0VEMzIKKyN1bmRlZiBfX1NFTEZfREVGX1BBQ0tF RDMyCisjdW5kZWYgREVGX1BBQ0tFRDMyCisjZW5kaWYKKworI2lmZGVmIF9fU0VMRl9ERUZfRU5D X1NVQklOU04KKyN1bmRlZiBfX1NFTEZfREVGX0VOQ19TVUJJTlNOCisjdW5kZWYgREVGX0VOQ19T VUJJTlNOCisjZW5kaWYKKworI2lmZGVmIF9fU0VMRl9ERUZfRVhUX0VOQworI3VuZGVmIF9fU0VM Rl9ERUZfRVhUX0VOQworI3VuZGVmIERFRl9FWFRfRU5DCisjZW5kaWYKZGlmZiAtLWdpdCBhL3Rh cmdldC9oZXhhZ29uL2ltcG9ydGVkL2VuY29kZV9wcC5kZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBv cnRlZC9lbmNvZGVfcHAuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJm Yzc5NTkKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9lbmNvZGVf cHAuZGVmCkBAIC0wLDAgKzEsMjExMCBAQAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIx IFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg KgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisvKgorICog RW5jb2RpbmdzIGZvciAzMiBiaXQgaW5zdHJ1Y3Rpb25zCisgKgorICovCisKKworCisKK0RFRl9D TEFTUzMyKCItLS0tIC0tLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEFMTF9QUCkKK0RF Rl9GSUVMRDMyKCItLS0tIC0tLS0gLS0tLS0tLS0gISEtLS0tLS0gLS0tLS0tLS0iLFBhcnNlLCJQ YWNrZXQvTG9vcCBwYXJzZSBiaXRzIikKK0RFRl9GSUVMRDMyKCIhISEhIC0tLS0gLS0tLS0tLS0g UFAtLS0tLS0gLS0tLS0tLS0iLElDTEFTUywiSW5zdHJ1Y3Rpb24gQ2xhc3MiKQorCisjZGVmaW5l IElDTEFTU19FWFRFTkRFUiAgICIwMDAwIgorI2RlZmluZSBJQ0xBU1NfQ0ogICAgICAgICAiMDAw MSIKKyNkZWZpbmUgSUNMQVNTX05DSiAgICAgICAgIjAwMTAiCisjZGVmaW5lIElDTEFTU19WNExE U1QgICAgICIwMDExIgorI2RlZmluZSBJQ0xBU1NfVjJMRFNUICAgICAiMDEwMCIKKyNkZWZpbmUg SUNMQVNTX0ogICAgICAgICAgIjAxMDEiCisjZGVmaW5lIElDTEFTU19DUiAgICAgICAgICIwMTEw IgorI2RlZmluZSBJQ0xBU1NfQUxVMm9wICAgICAiMDExMSIKKyNkZWZpbmUgSUNMQVNTX1Myb3Ag ICAgICAgIjEwMDAiCisjZGVmaW5lIElDTEFTU19MRCAgICAgICAgICIxMDAxIgorI2RlZmluZSBJ Q0xBU1NfU1QgICAgICAgICAiMTAxMCIKKyNkZWZpbmUgSUNMQVNTX0FEREkgICAgICAgIjEwMTEi CisjZGVmaW5lIElDTEFTU19TM29wICAgICAgICIxMTAwIgorI2RlZmluZSBJQ0xBU1NfQUxVNjQg ICAgICAiMTEwMSIKKyNkZWZpbmUgSUNMQVNTX00gICAgICAgICAgIjExMTAiCisjZGVmaW5lIElD TEFTU19BTFUzb3AgICAgICIxMTExIgorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqLworLyogICAgIFY0IEltbWVkaWF0ZSBQYXlsb2FkICAgICovCisv KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0RFRl9DTEFT UzMyKElDTEFTU19FWFRFTkRFUiIgLS0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsRVhU RU5ERVIpCitERUZfRU5DMzIoQTRfZXh0LCBJQ0xBU1NfRVhURU5ERVIgImlpaWkgaWlpaWlpaWkg UFBpaWlpaWkgaWlpaWlpaWkiKQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLworLyogICAgIFYyIFBSRURJQ0FURUQgTEQvU1QgICAgICovCisvKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0RFRl9DTEFTUzMy KElDTEFTU19WMkxEU1QiIC0tLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFYyTERTVCkK K0RFRl9DTEFTUzMyKElDTEFTU19WMkxEU1QiIC0tLTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0t LS0iLFYyTEQpCitERUZfQ0xBU1MzMihJQ0xBU1NfVjJMRFNUIiAtLS0wIC0tLS0tLS0tIFBQLS0t LS0tIC0tLS0tLS0tIixWMlNUKQorREVGX0NMQVNTMzIoSUNMQVNTX1YyTERTVCIgMC0tMSAtLS0t LS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsUExEKQorREVGX0NMQVNTMzIoSUNMQVNTX1YyTERTVCIg MC0tMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsUFNUKQorREVGX0NMQVNTMzIoSUNMQVNT X1YyTERTVCIgMS0tMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsR1BMRCkKK0RFRl9DTEFT UzMyKElDTEFTU19WMkxEU1QiIDEtLTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEdQU1Qp CisKK0RFRl9GSUVMRDMyKElDTEFTU19WMkxEU1QiIDAhLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0t LS0tLS0iLFBNRU1fU2Vuc2UsIlNlbnNlIikKK0RFRl9GSUVMRDMyKElDTEFTU19WMkxEU1QiIDAt IS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFBNRU1fUHJlZE5ldywiUHJlZE5ldyIpCitE RUZfRklFTEQzMihJQ0xBU1NfVjJMRFNUIiAtLS0xICEhLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0t IixQTUVNTF9UeXBlLCJUeXBlIikKK0RFRl9GSUVMRDMyKElDTEFTU19WMkxEU1QiIC0tLTEgLS0h LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFBNRU1MX1VOLCJVbnNpZ25lZCIpCitERUZfRklFTEQz MihJQ0xBU1NfVjJMRFNUIiAtLS0wICEhIS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixQTUVNU19U eXBlLCJUeXBlIikKKworI2RlZmluZSBTVERfUExEX0lPRU5DKFRBRyxPUEMpIFwKK0RFRl9FTkMz MihMMl9wbG9hZCMjVEFHIyN0X2lvLCAgIElDTEFTU19WMkxEU1QiIDAwMDEgIk9QQyIgIHNzc3Nz ICBQUDB0dGlpaSAgaWlpZGRkZGQiKVwKK0RFRl9FTkMzMihMMl9wbG9hZCMjVEFHIyNmX2lvLCAg IElDTEFTU19WMkxEU1QiIDAxMDEgIk9QQyIgIHNzc3NzICBQUDB0dGlpaSAgaWlpZGRkZGQiKVwK K0RFRl9FTkMzMihMMl9wbG9hZCMjVEFHIyN0bmV3X2lvLElDTEFTU19WMkxEU1QiIDAwMTEgIk9Q QyIgIHNzc3NzICBQUDB0dGlpaSAgaWlpZGRkZGQiKVwKK0RFRl9FTkMzMihMMl9wbG9hZCMjVEFH IyNmbmV3X2lvLElDTEFTU19WMkxEU1QiIDAxMTEgIk9QQyIgIHNzc3NzICBQUDB0dGlpaSAgaWlp ZGRkZGQiKQorCitTVERfUExEX0lPRU5DKHJiLCAgIjAwMCIpCitTVERfUExEX0lPRU5DKHJ1Yiwg IjAwMSIpCitTVERfUExEX0lPRU5DKHJoLCAgIjAxMCIpCitTVERfUExEX0lPRU5DKHJ1aCwgIjAx MSIpCitTVERfUExEX0lPRU5DKHJpLCAgIjEwMCIpCitTVERfUExEX0lPRU5DKHJkLCAgIjExMCIp IC8qIG5vdGUgZGVzdCByZWcgZmllbGQgTFNCPTAsIDEgaXMgcmVzZXJ2ZWQgKi8KKworCisKKyNk ZWZpbmUgU1REX1BTVF9JT0VOQyhUQUcsT1BDLFNSQykgXAorREVGX0VOQzMyKFMyX3BzdG9yZSMj VEFHIyN0X2lvLCAgIElDTEFTU19WMkxEU1QiIDAwMDAgIk9QQyIgIHNzc3NzICBQUGkiU1JDIiAg aWlpaWkwdnYiKVwKK0RFRl9FTkMzMihTMl9wc3RvcmUjI1RBRyMjZl9pbywgICBJQ0xBU1NfVjJM RFNUIiAwMTAwICJPUEMiICBzc3NzcyAgUFBpIlNSQyIgIGlpaWlpMHZ2IilcCitERUZfRU5DMzIo UzRfcHN0b3JlIyNUQUcjI3RuZXdfaW8sSUNMQVNTX1YyTERTVCIgMDAxMCAiT1BDIiAgc3Nzc3Mg IFBQaSJTUkMiICBpaWlpaTB2diIpXAorREVGX0VOQzMyKFM0X3BzdG9yZSMjVEFHIyNmbmV3X2lv LElDTEFTU19WMkxEU1QiIDAxMTAgIk9QQyIgIHNzc3NzICBQUGkiU1JDIiAgaWlpaWkwdnYiKQor CitTVERfUFNUX0lPRU5DKHJiLCAgICAiMDAwIiwidHR0dHQiKQorU1REX1BTVF9JT0VOQyhyaCwg ICAgIjAxMCIsInR0dHR0IikKK1NURF9QU1RfSU9FTkMocmYsICAgICIwMTEiLCJ0dHR0dCIpCitT VERfUFNUX0lPRU5DKHJpLCAgICAiMTAwIiwidHR0dHQiKQorU1REX1BTVF9JT0VOQyhyZCwgICAg IjExMCIsInR0dHR0IikKK1NURF9QU1RfSU9FTkMocmJuZXcsICIxMDEiLCIwMHR0dCIpCitTVERf UFNUX0lPRU5DKHJobmV3LCAiMTAxIiwiMDF0dHQiKQorU1REX1BTVF9JT0VOQyhyaW5ldywgIjEw MSIsIjEwdHR0IikKKworCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K Ky8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKiAgICAgVjIgR1AtUkVMQVRJVkUgTEQvU1QgICAgKi8KKy8qICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgU1REX0xEX0dQ KFRBRyxPUEMpIFwKK0RFRl9FTkMzMihMMl9sb2FkIyNUQUcjI2dwLCAgIElDTEFTU19WMkxEU1Qi IDFpaTEgIk9QQyIgIGlpaWlpICBQUGlpaWlpaSAgaWlpZGRkZGQiKQorCitTVERfTERfR1AocmIs ICAiMDAwIikKK1NURF9MRF9HUChydWIsICIwMDEiKQorU1REX0xEX0dQKHJoLCAgIjAxMCIpCitT VERfTERfR1AocnVoLCAiMDExIikKK1NURF9MRF9HUChyaSwgICIxMDAiKQorU1REX0xEX0dQKHJk LCAgIjExMCIpIC8qIG5vdGUgZGVzdCByZWcgZmllbGQgTFNCPTAsIDEgaXMgcmVzZXJ2ZWQgKi8K KworI2RlZmluZSBTVERfU1RfR1AoVEFHLE9QQyxTUkMpIFwKK0RFRl9FTkMzMihTMl9zdG9yZSMj VEFHIyNncCwgIElDTEFTU19WMkxEU1QiIDFpaTAgIk9QQyIgIGlpaWlpICBQUGkiU1JDIiAgaWlp aWlpaWkiKQorCitTVERfU1RfR1AocmIsICAgIjAwMCIsInR0dHR0IikKK1NURF9TVF9HUChyaCwg ICAiMDEwIiwidHR0dHQiKQorU1REX1NUX0dQKHJmLCAgICIwMTEiLCJ0dHR0dCIpCitTVERfU1Rf R1AocmksICAgIjEwMCIsInR0dHR0IikKK1NURF9TVF9HUChyZCwgICAiMTEwIiwidHR0dHQiKQor U1REX1NUX0dQKHJibmV3LCIxMDEiLCIwMHR0dCIpCitTVERfU1RfR1AocmhuZXcsIjEwMSIsIjAx dHR0IikKK1NURF9TVF9HUChyaW5ldywiMTAxIiwiMTB0dHQiKQorCisKKworCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICBWNExEU1QgICAg ICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworCisKK0RFRl9DTEFTUzMyKElDTEFTU19WNExEU1QiIC0tLS0gLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLFY0TERTVCkKK0RFRl9DTEFTUzMyKElDTEFTU19WNExEU1QiIDAtLS0g LS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFByZWRfUnBsdXNSKQorREVGX0NMQVNTMzIoSUNM QVNTX1Y0TERTVCIgMTAwLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsUHJlZF9TdG9yZUlt bWVkKQorREVGX0NMQVNTMzIoSUNMQVNTX1Y0TERTVCIgMTAxLSAtLS0tLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsUnBsdXNSKQorREVGX0NMQVNTMzIoSUNMQVNTX1Y0TERTVCIgMTEwLSAtLS0tLS0t LSBQUC0tLS0tLSAtLS0tLS0tLSIsU3RvcmVJbW1lZCkKK0RFRl9DTEFTUzMyKElDTEFTU19WNExE U1QiIDExMS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLE1lbU9wKQorCisKKworCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgIFByZWQgKFIrUikgICAgICAgICAg ICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgU1RE X1BMRF9SUkVOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIoTDRfcGxvYWQjI1RBRyMjdF9yciwgICBJ Q0xBU1NfVjRMRFNUIiAwMCAwMCAiT1BDIiAgc3Nzc3MgIFBQaXR0dHR0ICBpdnZkZGRkZCIpXAor REVGX0VOQzMyKEw0X3Bsb2FkIyNUQUcjI2ZfcnIsICAgSUNMQVNTX1Y0TERTVCIgMDAgMDEgIk9Q QyIgIHNzc3NzICBQUGl0dHR0dCAgaXZ2ZGRkZGQiKVwKK0RFRl9FTkMzMihMNF9wbG9hZCMjVEFH IyN0bmV3X3JyLElDTEFTU19WNExEU1QiIDAwIDEwICJPUEMiICBzc3NzcyAgUFBpdHR0dHQgIGl2 dmRkZGRkIilcCitERUZfRU5DMzIoTDRfcGxvYWQjI1RBRyMjZm5ld19ycixJQ0xBU1NfVjRMRFNU IiAwMCAxMSAiT1BDIiAgc3Nzc3MgIFBQaXR0dHR0ICBpdnZkZGRkZCIpCisKK1NURF9QTERfUlJF TkMocmIsICAiMDAwIikKK1NURF9QTERfUlJFTkMocnViLCAiMDAxIikKK1NURF9QTERfUlJFTkMo cmgsICAiMDEwIikKK1NURF9QTERfUlJFTkMocnVoLCAiMDExIikKK1NURF9QTERfUlJFTkMocmks ICAiMTAwIikKK1NURF9QTERfUlJFTkMocmQsICAiMTEwIikKKworI2RlZmluZSBTVERfUFNUX1JS RU5DKFRBRyxPUEMsU1JDKSBcCitERUZfRU5DMzIoUzRfcHN0b3JlIyNUQUcjI3RfcnIsICAgSUNM QVNTX1Y0TERTVCIgMDEgMDAgIk9QQyIgIHNzc3NzICBQUGl1dXV1dSAgaXZ2IlNSQylcCitERUZf RU5DMzIoUzRfcHN0b3JlIyNUQUcjI2ZfcnIsICAgSUNMQVNTX1Y0TERTVCIgMDEgMDEgIk9QQyIg IHNzc3NzICBQUGl1dXV1dSAgaXZ2IlNSQylcCitERUZfRU5DMzIoUzRfcHN0b3JlIyNUQUcjI3Ru ZXdfcnIsSUNMQVNTX1Y0TERTVCIgMDEgMTAgIk9QQyIgIHNzc3NzICBQUGl1dXV1dSAgaXZ2IlNS QylcCitERUZfRU5DMzIoUzRfcHN0b3JlIyNUQUcjI2ZuZXdfcnIsSUNMQVNTX1Y0TERTVCIgMDEg MTEgIk9QQyIgIHNzc3NzICBQUGl1dXV1dSAgaXZ2IlNSQykKKworU1REX1BTVF9SUkVOQyhyYiwg ICAgIjAwMCIsInR0dHR0IikKK1NURF9QU1RfUlJFTkMocmgsICAgICIwMTAiLCJ0dHR0dCIpCitT VERfUFNUX1JSRU5DKHJmLCAgICAiMDExIiwidHR0dHQiKQorU1REX1BTVF9SUkVOQyhyaSwgICAg IjEwMCIsInR0dHR0IikKK1NURF9QU1RfUlJFTkMocmQsICAgICIxMTAiLCJ0dHR0dCIpCitTVERf UFNUX1JSRU5DKHJibmV3LCAiMTAxIiwiMDB0dHQiKQorU1REX1BTVF9SUkVOQyhyaG5ldywgIjEw MSIsIjAxdHR0IikKK1NURF9QU1RfUlJFTkMocmluZXcsICIxMDEiLCIxMHR0dCIpCisKKworCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICBQcmVkIFN0b3JlIGltbWVk aWF0ZXMgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUg VjRfUFNUSShUQUcsT1BDKSBcCitERUZfRU5DMzIoUzRfc3RvcmVpIyNUQUcjI3RfaW8sICAgIElD TEFTU19WNExEU1QiIDEwMCAwMCAgIk9QQyIgIHNzc3NzICBQUElpaWlpaSAgaXZ2SUlJSUkiKVwK K0RFRl9FTkMzMihTNF9zdG9yZWkjI1RBRyMjZl9pbywgICAgSUNMQVNTX1Y0TERTVCIgMTAwIDAx ICAiT1BDIiAgc3Nzc3MgIFBQSWlpaWlpICBpdnZJSUlJSSIpXAorREVGX0VOQzMyKFM0X3N0b3Jl aSMjVEFHIyN0bmV3X2lvLCBJQ0xBU1NfVjRMRFNUIiAxMDAgMTAgICJPUEMiICBzc3NzcyAgUFBJ aWlpaWkgIGl2dklJSUlJIilcCitERUZfRU5DMzIoUzRfc3RvcmVpIyNUQUcjI2ZuZXdfaW8sIElD TEFTU19WNExEU1QiIDEwMCAxMSAgIk9QQyIgIHNzc3NzICBQUElpaWlpaSAgaXZ2SUlJSUkiKQor CitWNF9QU1RJKHJiLCAiMDAiKQorVjRfUFNUSShyaCwgIjAxIikKK1Y0X1BTVEkocmksICIxMCIp CisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgIChSK1IpICAg ICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisK KyNkZWZpbmUgU1REX0xEX1JSRU5DKFRBRyxPUEMpIFwKK0RFRl9FTkMzMihMNF9sb2FkIyNUQUcj I19yciwgICAgIElDTEFTU19WNExEU1QiIDEwMTAgIk9QQyIgIHNzc3NzICBQUGl0dHR0dCAgaS0t ZGRkZGQiKQorCitTVERfTERfUlJFTkMocmIsICAiMDAwIikKK1NURF9MRF9SUkVOQyhydWIsICIw MDEiKQorU1REX0xEX1JSRU5DKHJoLCAgIjAxMCIpCitTVERfTERfUlJFTkMocnVoLCAiMDExIikK K1NURF9MRF9SUkVOQyhyaSwgICIxMDAiKQorU1REX0xEX1JSRU5DKHJkLCAgIjExMCIpCisKKyNk ZWZpbmUgU1REX1NUX1JSRU5DKFRBRyxPUEMsU1JDKSBcCitERUZfRU5DMzIoUzRfc3RvcmUjI1RB RyMjX3JyLCAgICAgSUNMQVNTX1Y0TERTVCIgMTAxMSAiT1BDIiAgc3Nzc3MgIFBQaXV1dXV1ICBp LS0iU1JDKQorCitTVERfU1RfUlJFTkMocmIsICAgICIwMDAiLCJ0dHR0dCIpCitTVERfU1RfUlJF TkMocmgsICAgICIwMTAiLCJ0dHR0dCIpCitTVERfU1RfUlJFTkMocmYsICAgICIwMTEiLCJ0dHR0 dCIpCitTVERfU1RfUlJFTkMocmksICAgICIxMDAiLCJ0dHR0dCIpCitTVERfU1RfUlJFTkMocmQs ICAgICIxMTAiLCJ0dHR0dCIpCitTVERfU1RfUlJFTkMocmJuZXcsICIxMDEiLCIwMHR0dCIpCitT VERfU1RfUlJFTkMocmhuZXcsICIxMDEiLCIwMXR0dCIpCitTVERfU1RfUlJFTkMocmluZXcsICIx MDEiLCIxMHR0dCIpCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor LyogICAgIFN0b3JlIGltbWVkaWF0ZXMgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworI2RlZmluZSBWNF9TVEkoVEFHLE9QQykgXAorREVGX0VOQzMyKFM0X3N0 b3JlaSMjVEFHIyNfaW8sICAgICBJQ0xBU1NfVjRMRFNUIiAxMTAgLS0gIk9QQyIgIHNzc3NzICBQ UElpaWlpaSAgaUlJSUlJSUkiKQorCisKK1Y0X1NUSShyYiwgIjAwIikKK1Y0X1NUSShyaCwgIjAx IikKK1Y0X1NUSShyaSwgIjEwIikKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qICAgICBNZW1vcHMgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKworI2RlZmluZSBNRU1PUEVOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIo TDRfYWRkXyMjVEFHIyNfaW8sICAgICAgICAgSUNMQVNTX1Y0TERTVCIgMTExIDAtICIgT1BDICJz c3NzcyAgUFAwaWlpaWkgIGkwMHR0dHR0IilcCitERUZfRU5DMzIoTDRfc3ViXyMjVEFHIyNfaW8s ICAgICAgICAgSUNMQVNTX1Y0TERTVCIgMTExIDAtICIgT1BDICJzc3NzcyAgUFAwaWlpaWkgIGkw MXR0dHR0IilcCitERUZfRU5DMzIoTDRfYW5kXyMjVEFHIyNfaW8sICAgICAgICAgSUNMQVNTX1Y0 TERTVCIgMTExIDAtICIgT1BDICJzc3NzcyAgUFAwaWlpaWkgIGkxMHR0dHR0IilcCitERUZfRU5D MzIoTDRfb3JfIyNUQUcjI19pbywgICAgICAgICAgSUNMQVNTX1Y0TERTVCIgMTExIDAtICIgT1BD ICJzc3NzcyAgUFAwaWlpaWkgIGkxMXR0dHR0IilcCitcCitERUZfRU5DMzIoTDRfaWFkZF8jI1RB RyMjX2lvLCAgICAgICAgSUNMQVNTX1Y0TERTVCIgMTExIDEtICIgT1BDICJzc3NzcyAgUFAwaWlp aWkgIGkwMElJSUlJIilcCitERUZfRU5DMzIoTDRfaXN1Yl8jI1RBRyMjX2lvLCAgICAgICAgSUNM QVNTX1Y0TERTVCIgMTExIDEtICIgT1BDICJzc3NzcyAgUFAwaWlpaWkgIGkwMUlJSUlJIilcCitE RUZfRU5DMzIoTDRfaWFuZF8jI1RBRyMjX2lvLCAgICAgICAgSUNMQVNTX1Y0TERTVCIgMTExIDEt ICIgT1BDICJzc3NzcyAgUFAwaWlpaWkgIGkxMElJSUlJIilcCitERUZfRU5DMzIoTDRfaW9yXyMj VEFHIyNfaW8sICAgICAgICAgSUNMQVNTX1Y0TERTVCIgMTExIDEtICIgT1BDICJzc3NzcyAgUFAw aWlpaWkgIGkxMUlJSUlJIikKKworCisKK01FTU9QRU5DKG1lbW9wdywiMTAiKQorTUVNT1BFTkMo bWVtb3BoLCIwMSIpCitNRU1PUEVOQyhtZW1vcGIsIjAwIikKKworCisKKworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K Ky8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgIExPQUQgICAg ICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCitERUZfQ0xBU1MzMihJQ0xBU1NfTEQiIC0tLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0t LS0iLExEKQorCisKK0RFRl9DTEFTUzMyKElDTEFTU19MRCIgMC0tLSAtLS0tLS0tLSBQUC0tLS0t LSAtLS0tLS0tLSIsTERfQUREUl9ST0ZGU0VUKQorREVGX0NMQVNTMzIoSUNMQVNTX0xEIiAxMDEt IC0tLS0tLS0tIFBQMDAtLS0tIC0tLS0tLS0tIixMRF9BRERSX1BPU1RfSU1NRUQpCitERUZfQ0xB U1MzMihJQ0xBU1NfTEQiIDEwMS0gLS0tLS0tLS0gUFAwMS0tLS0gLS0tLS0tLS0iLExEX0FERFJf QUJTX1VQREFURV9WNCkKK0RFRl9DTEFTUzMyKElDTEFTU19MRCIgMTAxLSAtLS0tLS0tLSBQUDEt LS0tLSAtLS0tLS0tLSIsTERfQUREUl9QT1NUX0lNTUVEX1BSRURfVjIpCitERUZfQ0xBU1MzMihJ Q0xBU1NfTEQiIDExMC0gLS0tLS0tLS0gUFAtMC0tLS0gMC0tLS0tLS0iLExEX0FERFJfUE9TVF9S RUcpCitERUZfQ0xBU1MzMihJQ0xBU1NfTEQiIDExMC0gLS0tLS0tLS0gUFAtMS0tLS0gLS0tLS0t LS0iLExEX0FERFJfQUJTX1BMVVNfUkVHX1Y0KQorREVGX0NMQVNTMzIoSUNMQVNTX0xEIiAxMDAt IC0tLS0tLS0tIFBQLS0tLTEtIC0tLS0tLS0tIixMRF9BRERSX1BPU1RfQ1JFR19WMikKK0RFRl9D TEFTUzMyKElDTEFTU19MRCIgMTExLSAtLS0tLS0tLSBQUC0tLS0tLSAxLS0tLS0tLSIsTERfQURE Ul9QUkVEX0FCU19WNCkKKworREVGX0ZJRUxEMzIoSUNMQVNTX0xEIiAhISEtIC0tLS0tLS0tIFBQ LS0tLS0tIC0tLS0tLS0tIixMRF9BbW9kZSwiQW1vZGUiKQorREVGX0ZJRUxEMzIoSUNMQVNTX0xE IiAtLS0hICEhLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixMRF9UeXBlLCJUeXBlIikKK0RFRl9G SUVMRDMyKElDTEFTU19MRCIgLS0tLSAtLSEtLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsTERfVU4s IlVuc2lnbmVkIikKKworI2RlZmluZSBTVERfTERfRU5DKFRBRyxPUEMpIFwKK0RFRl9FTkMzMihM Ml9sb2FkIyNUQUcjI19pbywgICBJQ0xBU1NfTEQiIDAgaWkgIk9QQyIgIHNzc3NzICBQUGlpaWlp aSAgaWlpZGRkZGQiKVwKK0RFRl9FTkMzMihMMl9sb2FkIyNUQUcjI19waSwgICBJQ0xBU1NfTEQi IDEgMDEgIk9QQyIgIHh4eHh4ICBQUDAwLS0taSAgaWlpZGRkZGQiKVwKK0RFRl9FTkMzMihMNF9s b2FkIyNUQUcjI19hcCwgICBJQ0xBU1NfTEQiIDEgMDEgIk9QQyIgIGVlZWVlICBQUDAxSUlJSSAg LUlJZGRkZGQiKVwKK0RFRl9FTkMzMihMMl9sb2FkIyNUQUcjI19wciwgICBJQ0xBU1NfTEQiIDEg MTAgIk9QQyIgIHh4eHh4ICBQUHUwLS0tLSAgMC0tZGRkZGQiKVwKK0RFRl9FTkMzMihMNF9sb2Fk IyNUQUcjI191ciwgICBJQ0xBU1NfTEQiIDEgMTAgIk9QQyIgIHR0dHR0ICBQUGkxSUlJSSAgaUlJ ZGRkZGQiKVwKKworCisjZGVmaW5lIFNURF9MRFhfRU5DKFRBRyxPUEMpIFwKK0RFRl9FTkMzMihM Ml9sb2FkIyNUQUcjI19pbywgICBJQ0xBU1NfTEQiIDAgaWkgIk9QQyIgIHNzc3NzICBQUGlpaWlp aSAgaWlpeXl5eXkiKVwKK0RFRl9FTkMzMihMMl9sb2FkIyNUQUcjI19waSwgICBJQ0xBU1NfTEQi IDEgMDEgIk9QQyIgIHh4eHh4ICBQUDAwLS0taSAgaWlpeXl5eXkiKVwKK0RFRl9FTkMzMihMNF9s b2FkIyNUQUcjI19hcCwgICBJQ0xBU1NfTEQiIDEgMDEgIk9QQyIgIGVlZWVlICBQUDAxSUlJSSAg LUlJeXl5eXkiKVwKK0RFRl9FTkMzMihMMl9sb2FkIyNUQUcjI19wciwgICBJQ0xBU1NfTEQiIDEg MTAgIk9QQyIgIHh4eHh4ICBQUHUwLS0tLSAgMC0teXl5eXkiKVwKK0RFRl9FTkMzMihMNF9sb2Fk IyNUQUcjI191ciwgICBJQ0xBU1NfTEQiIDEgMTAgIk9QQyIgIHR0dHR0ICBQUGkxSUlJSSAgaUlJ eXl5eXkiKVwKKworCisjZGVmaW5lIFNURF9QTERfRU5DKFRBRyxPUEMpIFwKK0RFRl9FTkMzMihM Ml9wbG9hZCMjVEFHIyN0X3BpLCAgICBJQ0xBU1NfTEQiIDEgMDEgIk9QQyIgIHh4eHh4ICBQUDEw MHR0aSAgaWlpZGRkZGQiKVwKK0RFRl9FTkMzMihMMl9wbG9hZCMjVEFHIyNmX3BpLCAgICBJQ0xB U1NfTEQiIDEgMDEgIk9QQyIgIHh4eHh4ICBQUDEwMXR0aSAgaWlpZGRkZGQiKVwKK0RFRl9FTkMz MihMMl9wbG9hZCMjVEFHIyN0bmV3X3BpLCBJQ0xBU1NfTEQiIDEgMDEgIk9QQyIgIHh4eHh4ICBQ UDExMHR0aSAgaWlpZGRkZGQiKVwKK0RFRl9FTkMzMihMMl9wbG9hZCMjVEFHIyNmbmV3X3BpLCBJ Q0xBU1NfTEQiIDEgMDEgIk9QQyIgIHh4eHh4ICBQUDExMXR0aSAgaWlpZGRkZGQiKVwKK0RFRl9F TkMzMihMNF9wbG9hZCMjVEFHIyN0X2FicywgICBJQ0xBU1NfTEQiIDEgMTEgIk9QQyIgIGlpaWlp ICBQUDEwMHR0aSAgMS0tZGRkZGQiKVwKK0RFRl9FTkMzMihMNF9wbG9hZCMjVEFHIyNmX2Ficywg ICBJQ0xBU1NfTEQiIDEgMTEgIk9QQyIgIGlpaWlpICBQUDEwMXR0aSAgMS0tZGRkZGQiKVwKK0RF Rl9FTkMzMihMNF9wbG9hZCMjVEFHIyN0bmV3X2FicyxJQ0xBU1NfTEQiIDEgMTEgIk9QQyIgIGlp aWlpICBQUDExMHR0aSAgMS0tZGRkZGQiKVwKK0RFRl9FTkMzMihMNF9wbG9hZCMjVEFHIyNmbmV3 X2FicyxJQ0xBU1NfTEQiIDEgMTEgIk9QQyIgIGlpaWlpICBQUDExMXR0aSAgMS0tZGRkZGQiKQor CisKKy8qICAgICAgICAgICAgICAgMCAwMDAgIG1pc2M6IGRlYWxsb2MsbG9hZHdfbG9ja2VkLGRj ZmV0Y2ggICAgICAqLworU1REX0xEX0VOQyhyYiwgICIxIDAwMCIpCitTVERfTERfRU5DKHJ1Yiwg IjEgMDAxIikKK1NURF9MRF9FTkMocmgsICAiMSAwMTAiKQorU1REX0xEX0VOQyhydWgsICIxIDAx MSIpCitTVERfTERfRU5DKHJpLCAgIjEgMTAwIikKK1NURF9MRF9FTkMocmQsICAiMSAxMTAiKSAv KiBub3RlIGRlc3QgcmVnIGZpZWxkIExTQj0wLCAxIGlzIHJlc2VydmVkICovCisKK1NURF9QTERf RU5DKHJiLCAgIjEgMDAwIikKK1NURF9QTERfRU5DKHJ1YiwgIjEgMDAxIikKK1NURF9QTERfRU5D KHJoLCAgIjEgMDEwIikKK1NURF9QTERfRU5DKHJ1aCwgIjEgMDExIikKK1NURF9QTERfRU5DKHJp LCAgIjEgMTAwIikKK1NURF9QTERfRU5DKHJkLCAgIjEgMTEwIikgLyogbm90ZSBkZXN0IHJlZyBm aWVsZCBMU0I9MCwgMSBpcyByZXNlcnZlZCAqLworCisKK0RFRl9DTEFTUzMyKCAgICBJQ0xBU1Nf TEQiIDAtLTAgMDAwLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLExEX01JU0MpCitERUZfQU5USUNM QVNTMzIoSUNMQVNTX0xEIiAwLS0wIDAwMC0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixMRF9BRERS X1JPRkZTRVQpCitERUZfQU5USUNMQVNTMzIoSUNMQVNTX0xEIiAxMDEwIDAwMC0tLS0tIFBQLS0t LS0tIC0tLS0tLS0tIixMRF9BRERSX1BPU1RfSU1NRUQpCitERUZfQU5USUNMQVNTMzIoSUNMQVNT X0xEIiAxMTAwIDAwMC0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixMRF9BRERSX1BPU1RfUkVHKQor REVGX0FOVElDTEFTUzMyKElDTEFTU19MRCIgMTExMCAwMDAtLS0tLSBQUC0tLS0tLSAtLS0tLS0t LSIsTERfQUREUl9QT1NUX1JFRykKKworREVGX0VOQzMyKEwyX2RlYWxsb2NmcmFtZSwgICAgSUNM QVNTX0xEIiAwMDAgMCAwMDAgc3Nzc3MgUFAwLS0tLS0gLS0tZGRkZGQiKQorREVGX0VOQzMyKEw0 X3JldHVybiwgICAgICAgICAgSUNMQVNTX0xEIiAwMTEgMCAwMDAgc3Nzc3MgUFAwMDAwLS0gLS0t ZGRkZGQiKQorREVGX0VOQzMyKEw0X3JldHVybl90LCAgICAgICAgSUNMQVNTX0xEIiAwMTEgMCAw MDAgc3Nzc3MgUFAwMTAwdnYgLS0tZGRkZGQiKQorREVGX0VOQzMyKEw0X3JldHVybl9mLCAgICAg ICAgSUNMQVNTX0xEIiAwMTEgMCAwMDAgc3Nzc3MgUFAxMTAwdnYgLS0tZGRkZGQiKQorREVGX0VO QzMyKEw0X3JldHVybl90bmV3X3B0LCAgSUNMQVNTX0xEIiAwMTEgMCAwMDAgc3Nzc3MgUFAwMTEw dnYgLS0tZGRkZGQiKQorREVGX0VOQzMyKEw0X3JldHVybl9mbmV3X3B0LCAgSUNMQVNTX0xEIiAw MTEgMCAwMDAgc3Nzc3MgUFAxMTEwdnYgLS0tZGRkZGQiKQorREVGX0VOQzMyKEw0X3JldHVybl90 bmV3X3BudCwgSUNMQVNTX0xEIiAwMTEgMCAwMDAgc3Nzc3MgUFAwMDEwdnYgLS0tZGRkZGQiKQor REVGX0VOQzMyKEw0X3JldHVybl9mbmV3X3BudCwgSUNMQVNTX0xEIiAwMTEgMCAwMDAgc3Nzc3Mg UFAxMDEwdnYgLS0tZGRkZGQiKQorCitERUZfRU5DMzIoTDJfbG9hZHdfbG9ja2VkLElDTEFTU19M RCIgMDAxIDAgMDAwIHNzc3NzIFBQMDAtLS0tIC0wMGRkZGRkIikKKworCisKKworCisKK0RFRl9F TkMzMihMNF9sb2FkZF9sb2NrZWQsSUNMQVNTX0xEIiAwMDEgMCAwMDAgc3Nzc3MgUFAwMS0tLS0g LTAwZGRkZGQiKQorREVGX0VYVF9TUEFDRShFWFRSQUNUVywgICBJQ0xBU1NfTEQiIDAwMSAwIDAw MCBpaWlpaSBQUDBpaWlpaSAtMDFpaWlpaSIpCitERUZfRU5DMzIoWTJfZGNmZXRjaGJvLCAgIElD TEFTU19MRCIgMDEwIDAgMDAwIHNzc3NzIFBQMC0taWlpIGlpaWlpaWlpIikKKworCisKKworCisK KworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAg ICAgICAgICAgU1RPUkUgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKworREVGX0NMQVNTMzIoSUNMQVNTX1NUIiAtLS0tIC0tLS0t LS0tIFBQLS0tLS0tIC0tLS0tLS0tIixTVCkKKworREVGX0ZJRUxEMzIoSUNMQVNTX1NUIiAhISEt IC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixTVF9BbW9kZSwiQW1vZGUiKQorREVGX0ZJRUxE MzIoSUNMQVNTX1NUIiAtLS0hICEhLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixTVF9UeXBlLCJU eXBlIikKK0RFRl9GSUVMRDMyKElDTEFTU19TVCIgLS0tLSAtLSEtLS0tLSBQUC0tLS0tLSAtLS0t LS0tLSIsU1RfVU4sIlVuc2lnbmVkIikKKworREVGX0NMQVNTMzIoSUNMQVNTX1NUIiAwLS0xIC0t LS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixTVF9BRERSX1JPRkZTRVQpCitERUZfQ0xBU1MzMihJ Q0xBU1NfU1QiIDEwMTEgLS0tLS0tLS0gUFAwLS0tLS0gMC0tLS0tMC0iLFNUX0FERFJfUE9TVF9J TU1FRCkKK0RFRl9DTEFTUzMyKElDTEFTU19TVCIgMTAxMSAtLS0tLS0tLSBQUDAtLS0tLSAxLS0t LS0tLSIsU1RfQUREUl9BQlNfVVBEQVRFX1Y0KQorREVGX0NMQVNTMzIoSUNMQVNTX1NUIiAxMDEx IC0tLS0tLS0tIFBQMS0tLS0tIC0tLS0tLS0tIixTVF9BRERSX1BPU1RfSU1NRURfUFJFRF9WMikK K0RFRl9DTEFTUzMyKElDTEFTU19TVCIgMTExMSAtLS0tLS0tLSBQUC0tLS0tLSAxLS0tLS0tLSIs U1RfQUREUl9QUkVEX0FCU19WNCkKK0RFRl9DTEFTUzMyKElDTEFTU19TVCIgMTEwMSAtLS0tLS0t LSBQUC0tLS0tLSAwLS0tLS0tLSIsU1RfQUREUl9QT1NUX1JFRykKK0RFRl9DTEFTUzMyKElDTEFT U19TVCIgMTEwMSAtLS0tLS0tLSBQUC0tLS0tLSAxLS0tLS0tLSIsU1RfQUREUl9BQlNfUExVU19S RUdfVjQpCitERUZfQ0xBU1MzMihJQ0xBU1NfU1QiIDEwMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0t LS0tMS0iLFNUX0FERFJfUE9TVF9DUkVHX1YyKQorREVGX0NMQVNTMzIoSUNMQVNTX1NUIiAwLS0w IDEtLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixTVF9NSVNDX1NUT1JFTElLRSkKK0RFRl9DTEFT UzMyKElDTEFTU19TVCIgMS0tMCAwLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsU1RfTUlTQ19C VVNPUCkKK0RFRl9DTEFTUzMyKElDTEFTU19TVCIgMC0tMCAwLS0tLS0tLSBQUC0tLS0tLSAtLS0t LS0tLSIsU1RfTUlTQ19DQUNIRU9QKQorCisKKyNkZWZpbmUgU1REX1NUX0VOQyhUQUcsT1BDLFNS QykgXAorREVGX0VOQzMyKFMyX3N0b3JlIyNUQUcjI19pbywgICBJQ0xBU1NfU1QiIDAgaWkgIk9Q QyIgIHNzc3NzICBQUGkiU1JDIiAgaWlpaWlpaWkiKVwKK0RFRl9FTkMzMihTMl9zdG9yZSMjVEFH IyNfcGksICAgSUNMQVNTX1NUIiAxIDAxICJPUEMiICB4eHh4eCAgUFAwIlNSQyIgIDBpaWlpLTAt IilcCitERUZfRU5DMzIoUzRfc3RvcmUjI1RBRyMjX2FwLCAgIElDTEFTU19TVCIgMSAwMSAiT1BD IiAgZWVlZWUgIFBQMCJTUkMiICAxLUlJSUlJSSIpXAorREVGX0VOQzMyKFMyX3N0b3JlIyNUQUcj I19wciwgICBJQ0xBU1NfU1QiIDEgMTAgIk9QQyIgIHh4eHh4ICBQUHUiU1JDIiAgMC0tLS0tLS0i KVwKK0RFRl9FTkMzMihTNF9zdG9yZSMjVEFHIyNfdXIsICAgSUNMQVNTX1NUIiAxIDEwICJPUEMi ICB1dXV1dSAgUFBpIlNSQyIgIDFpSUlJSUlJIilcCisKKworI2RlZmluZSBTVERfUFNUX0VOQyhU QUcsT1BDLFNSQykgXAorREVGX0VOQzMyKFMyX3BzdG9yZSMjVEFHIyN0X3BpLCAgICBJQ0xBU1Nf U1QiIDEgMDEgIk9QQyIgIHh4eHh4ICBQUDEiU1JDIiAgMGlpaWkwdnYiKVwKK0RFRl9FTkMzMihT Ml9wc3RvcmUjI1RBRyMjZl9waSwgICAgSUNMQVNTX1NUIiAxIDAxICJPUEMiICB4eHh4eCAgUFAx IlNSQyIgIDBpaWlpMXZ2IilcCitERUZfRU5DMzIoUzJfcHN0b3JlIyNUQUcjI3RuZXdfcGksIElD TEFTU19TVCIgMSAwMSAiT1BDIiAgeHh4eHggIFBQMSJTUkMiICAxaWlpaTB2diIpXAorREVGX0VO QzMyKFMyX3BzdG9yZSMjVEFHIyNmbmV3X3BpLCBJQ0xBU1NfU1QiIDEgMDEgIk9QQyIgIHh4eHh4 ICBQUDEiU1JDIiAgMWlpaWkxdnYiKVwKK0RFRl9FTkMzMihTNF9wc3RvcmUjI1RBRyMjdF9hYnMs ICAgSUNMQVNTX1NUIiAxIDExICJPUEMiICAtLS1paSAgUFAwIlNSQyIgIDFpaWlpMHZ2IilcCitE RUZfRU5DMzIoUzRfcHN0b3JlIyNUQUcjI2ZfYWJzLCAgIElDTEFTU19TVCIgMSAxMSAiT1BDIiAg LS0taWkgIFBQMCJTUkMiICAxaWlpaTF2diIpXAorREVGX0VOQzMyKFM0X3BzdG9yZSMjVEFHIyN0 bmV3X2FicyxJQ0xBU1NfU1QiIDEgMTEgIk9QQyIgIC0tLWlpICBQUDEiU1JDIiAgMWlpaWkwdnYi KVwKK0RFRl9FTkMzMihTNF9wc3RvcmUjI1RBRyMjZm5ld19hYnMsSUNMQVNTX1NUIiAxIDExICJP UEMiICAtLS1paSAgUFAxIlNSQyIgIDFpaWlpMXZ2IikKKworCisvKiAgICAgICAgICAgICAgICAg MCAwLS0gIFN0b3JlIE1pc2MgKi8KKy8qICAgICAgICAgICAgICAgICAwIDF4eCAgQXZhaWxhYmxl ICovCitTVERfU1RfRU5DKHJiLCAgICAiMSAwMDAiLCJ0dHR0dCIpCitTVERfU1RfRU5DKHJoLCAg ICAiMSAwMTAiLCJ0dHR0dCIpCitTVERfU1RfRU5DKHJmLCAgICAiMSAwMTEiLCJ0dHR0dCIpCitT VERfU1RfRU5DKHJpLCAgICAiMSAxMDAiLCJ0dHR0dCIpCitTVERfU1RfRU5DKHJkLCAgICAiMSAx MTAiLCJ0dHR0dCIpCitTVERfU1RfRU5DKHJibmV3LCAiMSAxMDEiLCIwMHR0dCIpCitTVERfU1Rf RU5DKHJobmV3LCAiMSAxMDEiLCIwMXR0dCIpCitTVERfU1RfRU5DKHJpbmV3LCAiMSAxMDEiLCIx MHR0dCIpCisKK1NURF9QU1RfRU5DKHJiLCAgICAiMSAwMDAiLCJ0dHR0dCIpCitTVERfUFNUX0VO QyhyaCwgICAgIjEgMDEwIiwidHR0dHQiKQorU1REX1BTVF9FTkMocmYsICAgICIxIDAxMSIsInR0 dHR0IikKK1NURF9QU1RfRU5DKHJpLCAgICAiMSAxMDAiLCJ0dHR0dCIpCitTVERfUFNUX0VOQyhy ZCwgICAgIjEgMTEwIiwidHR0dHQiKQorU1REX1BTVF9FTkMocmJuZXcsICIxIDEwMSIsIjAwdHR0 IikKK1NURF9QU1RfRU5DKHJobmV3LCAiMSAxMDEiLCIwMXR0dCIpCitTVERfUFNUX0VOQyhyaW5l dywgIjEgMTAxIiwiMTB0dHQiKQorCisKKworLyogVXNlciAqLworLyogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHh4IC0gc3RfbWlzYyAqLworLyogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeCBidXMvY2FjaGUgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHggc3RvcmUvY2FjaGUgICAgICovCitERUZfRU5DMzIoUzJfYWxsb2NmcmFtZSwg ICBJQ0xBU1NfU1QiIDAwMCAwMSAwMHh4eHh4IFBQMDAwaWlpIGlpaWlpaWlpIikKK0RFRl9FTkMz MihTMl9zdG9yZXdfbG9ja2VkLElDTEFTU19TVCIgMDAwIDAxIDAxc3Nzc3MgUFAtdHR0dHQgLS0t LS0tZGQiKQorREVGX0VOQzMyKFM0X3N0b3JlZF9sb2NrZWQsSUNMQVNTX1NUIiAwMDAgMDEgMTFz c3NzcyBQUDB0dHR0dCAtLS0tLS1kZCIpCitERUZfRU5DMzIoWTJfZGN6ZXJvYSwgICAgICBJQ0xB U1NfU1QiIDAwMCAwMSAxMHNzc3NzIFBQMC0tLS0tIC0tLS0tLS0tIikKKworCitERUZfRU5DMzIo WTJfYmFycmllciwgICAgICBJQ0xBU1NfU1QiIDEwMCAwMCAwMC0tLS0tIFBQLS0tLS0tIDAwMC0t LS0tIikKK0RFRl9FTkMzMihZMl9zeW5jaHQsICAgICAgIElDTEFTU19TVCIgMTAwIDAwIDEwLS0t LS0gUFAtLS0tLS0gLS0tLS0tLS0iKQorCisKKworREVGX0VOQzMyKFkyX2RjY2xlYW5hLCAgICAg SUNMQVNTX1NUIiAwMDAgMDAgMDBzc3NzcyBQUC0tLS0tLSAtLS0tLS0tLSIpCitERUZfRU5DMzIo WTJfZGNpbnZhLCAgICAgICBJQ0xBU1NfU1QiIDAwMCAwMCAwMXNzc3NzIFBQLS0tLS0tIC0tLS0t LS0tIikKK0RFRl9FTkMzMihZMl9kY2NsZWFuaW52YSwgIElDTEFTU19TVCIgMDAwIDAwIDEwc3Nz c3MgUFAtLS0tLS0gLS0tLS0tLS0iKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgSlVNUCAgICAgICAgICAgICAgKi8KKy8qICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworREVGX0NMQVNTMzIo SUNMQVNTX0oiIC0tLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEopCitERUZfQ0xBU1Mz MihJQ0xBU1NfSiIgMC0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsSlVNUFJfTUlTQykK K0RFRl9DTEFTUzMyKElDTEFTU19KIiAxMC0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixV Q0pVTVApCitERUZfQ0xBU1MzMihJQ0xBU1NfSiIgMTEwLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0t LS0tLSIsQ0pVTVApCitERUZfRklFTEQzMihJQ0xBU1NfSiIgMTEwLSAtLS0tLS0tLSBQUC0tIS0t LSAtLS0tLS0tLSIsSl9ETiwiRG90LW5ldyIpCitERUZfRklFTEQzMihJQ0xBU1NfSiIgMTEwLSAt LS0tLS0tLSBQUC0hLS0tLSAtLS0tLS0tLSIsSl9QVCwiUHJlZGljdC10YWtlbiIpCisKKworCitE RUZfRklFTERST1dfREVTQzMyKElDTEFTU19KIiAwMDAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0t LS0tIiwiWyMwXSBQQz0oUnMpLCBSMzE9cmV0dXJuIikKK0RFRl9FTkMzMihKMl9jYWxsciwgICAg IElDTEFTU19KIiAwMDAwICAxMDFzc3NzcyAgUFAtLS0tLS0gIC0tLS0tLS0tIikKKworREVGX0ZJ RUxEUk9XX0RFU0MzMihJQ0xBU1NfSiIgMDAwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIs IlsjMV0gaWYgKFB1KSBQQz0oUnMpLCBSMzE9cmV0dXJuIikKK0RFRl9FTkMzMihKMl9jYWxscnQs ICAgIElDTEFTU19KIiAwMDAxICAwMDBzc3NzcyAgUFAtLS0tdXUgIC0tLS0tLS0tIikKK0RFRl9F TkMzMihKMl9jYWxscmYsICAgIElDTEFTU19KIiAwMDAxICAwMDFzc3NzcyAgUFAtLS0tdXUgIC0t LS0tLS0tIikKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfSiIgMDAxMCAtLS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsIlsjMl0gUEM9KFJzKTsgIikKK0RFRl9FTkMzMihKMl9qdW1wciwg ICAgICBJQ0xBU1NfSiIgMDAxMCAgMTAwc3Nzc3MgIFBQLS0tLS0tICAtLS0tLS0tLSIpCitERUZf RU5DMzIoSjRfaGludGp1bXByLCAgSUNMQVNTX0oiIDAwMTAgIDEwMXNzc3NzICBQUC0tLS0tLSAg LS0tLS0tLS0iKQorCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19KIiAwMDExIC0tLS0tLS0t IFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMzXSBpZiAoUHUpIFBDPShScykgIikKK0RFRl9FTkMzMihK Ml9qdW1wcnQsICAgSUNMQVNTX0oiIDAwMTEgIDAxMHNzc3NzICBQUC0wMC11dSAgLS0tLS0tLS0i KQorREVGX0VOQzMyKEoyX2p1bXByZiwgICBJQ0xBU1NfSiIgMDAxMSAgMDExc3Nzc3MgIFBQLTAw LXV1ICAtLS0tLS0tLSIpCitERUZfRU5DMzIoSjJfanVtcHJ0cHQsICAgIElDTEFTU19KIiAwMDEx ICAwMTBzc3NzcyAgUFAtMTAtdXUgIC0tLS0tLS0tIikKK0RFRl9FTkMzMihKMl9qdW1wcmZwdCwg ICAgSUNMQVNTX0oiIDAwMTEgIDAxMXNzc3NzICBQUC0xMC11dSAgLS0tLS0tLS0iKQorREVGX0VO QzMyKEoyX2p1bXBydG5ldywgICBJQ0xBU1NfSiIgMDAxMSAgMDEwc3Nzc3MgIFBQLTAxLXV1ICAt LS0tLS0tLSIpCitERUZfRU5DMzIoSjJfanVtcHJmbmV3LCAgIElDTEFTU19KIiAwMDExICAwMTFz c3NzcyAgUFAtMDEtdXUgIC0tLS0tLS0tIikKK0RFRl9FTkMzMihKMl9qdW1wcnRuZXdwdCwgSUNM QVNTX0oiIDAwMTEgIDAxMHNzc3NzICBQUC0xMS11dSAgLS0tLS0tLS0iKQorREVGX0VOQzMyKEoy X2p1bXByZm5ld3B0LCBJQ0xBU1NfSiIgMDAxMSAgMDExc3Nzc3MgIFBQLTExLXV1ICAtLS0tLS0t LSIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0oiIDAxMDAgLS0tLS0tLS0gUFAtLS0t LS0gLS0tLS0tLS0iLCJbIzRdICgjdTgpICIpCitERUZfRU5DMzIoSjJfdHJhcDAsICAgICBJQ0xB U1NfSiIgMDEwMCAgMDAtLS0tLS0gIFBQLWlpaWlpICAtLS1paWktLSIpCisKK0RFRl9GSUVMRFJP V19ERVNDMzIoSUNMQVNTX0oiIDAxMTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzZd IGljb3AoUnMpICIpCitERUZfRU5DMzIoWTJfaWNpbnZhLCAgICBJQ0xBU1NfSiIgMDExMCAgMTEw c3Nzc3MgIFBQMDAwLS0tICAtLS0tLS0tLSIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNT X0oiIDAxMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzddICgpICIpCitERUZfRU5D MzIoWTJfaXN5bmMsICAgICBJQ0xBU1NfSiIgMDExMSAgMTEwMDAwMDAgIFBQMC0tLTAwICAwMDAw MDAxMCIpCisKKy8qIEpVTVAgKi8KK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0oiIDEwMC0g LS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzgsOV0gUEM9KCNyMjIpIikKK0RFRl9FTkMz MihKMl9qdW1wLCAgICAgIElDTEFTU19KIiAxMDBpICBpaWlpaWlpaSAgUFBpaWlpaWkgIGlpaWlp aWktIikKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfSiIgMTAxLSAtLS0tLS0tLSBQUC0t LS0tLSAtLS0tLS0tLSIsIlsjMTAsMTFdIFBDPSgjcjIyKSwgUjMxPXJldHVybiIpCitERUZfRU5D MzIoSjJfY2FsbCwgICAgICBJQ0xBU1NfSiIgMTAxaSAgaWlpaWlpaWkgIFBQaWlpaWlpICBpaWlp aWlpMCIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0oiIDExMDAgLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLCJbIzEyXSBpZiAoUHUpIFBDPSgjcjE1KSIpCitERUZfRU5DMzIoSjJf anVtcHQsICBJQ0xBU1NfSiIgMTEwMCAgaWkwaWlpaWkgIFBQaTAwLXV1ICBpaWlpaWlpLSIpCitE RUZfRU5DMzIoSjJfanVtcGYsICBJQ0xBU1NfSiIgMTEwMCAgaWkxaWlpaWkgIFBQaTAwLXV1ICBp aWlpaWlpLSIpCitERUZfRU5DMzIoSjJfanVtcHRwdCwgICBJQ0xBU1NfSiIgMTEwMCAgaWkwaWlp aWkgIFBQaTEwLXV1ICBpaWlpaWlpLSIpCitERUZfRU5DMzIoSjJfanVtcGZwdCwgICBJQ0xBU1Nf SiIgMTEwMCAgaWkxaWlpaWkgIFBQaTEwLXV1ICBpaWlpaWlpLSIpCitERUZfRU5DMzIoSjJfanVt cHRuZXcsICBJQ0xBU1NfSiIgMTEwMCAgaWkwaWlpaWkgIFBQaTAxLXV1ICBpaWlpaWlpLSIpCitE RUZfRU5DMzIoSjJfanVtcGZuZXcsICBJQ0xBU1NfSiIgMTEwMCAgaWkxaWlpaWkgIFBQaTAxLXV1 ICBpaWlpaWlpLSIpCitERUZfRU5DMzIoSjJfanVtcHRuZXdwdCxJQ0xBU1NfSiIgMTEwMCAgaWkw aWlpaWkgIFBQaTExLXV1ICBpaWlpaWlpLSIpCitERUZfRU5DMzIoSjJfanVtcGZuZXdwdCxJQ0xB U1NfSiIgMTEwMCAgaWkxaWlpaWkgIFBQaTExLXV1ICBpaWlpaWlpLSIpCisKK0RFRl9GSUVMRFJP V19ERVNDMzIoSUNMQVNTX0oiIDExMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEz XSBpZiAoUHUpIFBDPSgjcjE1KSwgUjMxPXJldHVybiIpCitERUZfRU5DMzIoSjJfY2FsbHQsICAg ICBJQ0xBU1NfSiIgMTEwMSAgaWkwaWlpaWkgIFBQaS0wLXV1ICBpaWlpaWlpLSIpCitERUZfRU5D MzIoSjJfY2FsbGYsICAgICBJQ0xBU1NfSiIgMTEwMSAgaWkxaWlpaWkgIFBQaS0wLXV1ICBpaWlp aWlpLSIpCisKKworCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgVjQgICAgICAgICAg ICAgICAgICAgKi8KKy8qICAgQ09NUE9VTkQgQ09NUEFSRS1KVU1QUyAgICAqLworLyogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qIEVKUDogdGhpcyBo YXMgdG8gbWF0Y2ggd2hhdCB3ZSBoYXZlIGluIGh0bWxkb2NzLnB5Li4uIHNvIEkgd2lsbCBjYWxs IGl0IENKLCB3ZSBjYW4gY2hhbmdlIGl0ICovCitERUZfQ0xBU1MzMihJQ0xBU1NfQ0oiIDAtLS0g LS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLENKKQorCitERUZfRklFTERST1dfREVTQzMyKElD TEFTU19DSiIgMDAtLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSIsIlsjMC0zXSAgcGQ9Y21w Lnh4KFIsI3U1KSA7IGlmIChbIV1wMC5uZXcpIGp1bXA6W2hdICNzOToyICIpCitERUZfRklFTERS T1dfREVTQzMyKElDTEFTU19DSiIgMDEwLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSIsIlsj NCw1XSAgcGQ9Y21wLmVxKFIsUikgOyBpZiAoWyFdcDAubmV3KSBqdW1wOltoXSAjczk6MiAiKQor REVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQ0oiIDAxMTAgLS0tLS0tLS0gLS0tLS0tLS0gLS0t LS0tLS0iLCJbIzZdICAgIFJkPSN1NiA7IGp1bXAgI3M5OjIgIikKK0RFRl9GSUVMRFJPV19ERVND MzIoSUNMQVNTX0NKIiAwMTExIC0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIiwiWyM3XSAgICBS ZD1ScyA7IGp1bXAgI3M5OjIgIikKKworCisjZGVmaW5lIENNUEpNUElfRU5DKFRBRyxPUEMpIFwK K0RFRl9FTkMzMihUQUcjI2lfdHAwX2p1bXBfdCwgICAgICBJQ0xBU1NfQ0oiIDAwIDAgIk9QQyIg IDBpaXNzc3MgIFBQMUlJSUlJICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI2lfZnAwX2p1 bXBfdCwgICAgICBJQ0xBU1NfQ0oiIDAwIDAgIk9QQyIgIDFpaXNzc3MgIFBQMUlJSUlJICBpaWlp aWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI2lfdHAwX2p1bXBfbnQsICAgICBJQ0xBU1NfQ0oiIDAw IDAgIk9QQyIgIDBpaXNzc3MgIFBQMElJSUlJICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcj I2lfZnAwX2p1bXBfbnQsICAgICBJQ0xBU1NfQ0oiIDAwIDAgIk9QQyIgIDFpaXNzc3MgIFBQMElJ SUlJICBpaWlpaWlpLSIpIFwKK1wKK0RFRl9FTkMzMihUQUcjI2lfdHAxX2p1bXBfdCwgICAgICBJ Q0xBU1NfQ0oiIDAwIDEgIk9QQyIgIDBpaXNzc3MgIFBQMUlJSUlJICBpaWlpaWlpLSIpIFwKK0RF Rl9FTkMzMihUQUcjI2lfZnAxX2p1bXBfdCwgICAgICBJQ0xBU1NfQ0oiIDAwIDEgIk9QQyIgIDFp aXNzc3MgIFBQMUlJSUlJICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI2lfdHAxX2p1bXBf bnQsICAgICBJQ0xBU1NfQ0oiIDAwIDEgIk9QQyIgIDBpaXNzc3MgIFBQMElJSUlJICBpaWlpaWlp LSIpIFwKK0RFRl9FTkMzMihUQUcjI2lfZnAxX2p1bXBfbnQsICAgICBJQ0xBU1NfQ0oiIDAwIDEg Ik9QQyIgIDFpaXNzc3MgIFBQMElJSUlJICBpaWlpaWlpLSIpCisKK0NNUEpNUElfRU5DKEo0X2Nt cGVxLCIwMCIpCitDTVBKTVBJX0VOQyhKNF9jbXBndCwiMDEiKQorQ01QSk1QSV9FTkMoSjRfY21w Z3R1LCIxMCIpCisKKworI2RlZmluZSBDTVBKTVAxSV9FTkMoVEFHLE9QQykgXAorREVGX0VOQzMy KFRBRyMjX3RwMF9qdW1wX3QsICAgICAgSUNMQVNTX0NKIiAwMCAwICAxMSAgMGlpc3NzcyAgUFAx LS0tIk9QQyIgIGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRBRyMjX2ZwMF9qdW1wX3QsICAgICAg SUNMQVNTX0NKIiAwMCAwICAxMSAgMWlpc3NzcyAgUFAxLS0tIk9QQyIgIGlpaWlpaWktIikgXAor REVGX0VOQzMyKFRBRyMjX3RwMF9qdW1wX250LCAgICAgSUNMQVNTX0NKIiAwMCAwICAxMSAgMGlp c3NzcyAgUFAwLS0tIk9QQyIgIGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRBRyMjX2ZwMF9qdW1w X250LCAgICAgSUNMQVNTX0NKIiAwMCAwICAxMSAgMWlpc3NzcyAgUFAwLS0tIk9QQyIgIGlpaWlp aWktIikgXAorXAorREVGX0VOQzMyKFRBRyMjX3RwMV9qdW1wX3QsICAgICAgSUNMQVNTX0NKIiAw MCAxICAxMSAgMGlpc3NzcyAgUFAxLS0tIk9QQyIgIGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRB RyMjX2ZwMV9qdW1wX3QsICAgICAgSUNMQVNTX0NKIiAwMCAxICAxMSAgMWlpc3NzcyAgUFAxLS0t Ik9QQyIgIGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRBRyMjX3RwMV9qdW1wX250LCAgICAgSUNM QVNTX0NKIiAwMCAxICAxMSAgMGlpc3NzcyAgUFAwLS0tIk9QQyIgIGlpaWlpaWktIikgXAorREVG X0VOQzMyKFRBRyMjX2ZwMV9qdW1wX250LCAgICAgSUNMQVNTX0NKIiAwMCAxICAxMSAgMWlpc3Nz cyAgUFAwLS0tIk9QQyIgIGlpaWlpaWktIikKKworQ01QSk1QMUlfRU5DKEo0X2NtcGVxbjEsIjAw IikKK0NNUEpNUDFJX0VOQyhKNF9jbXBndG4xLCIwMSIpCitDTVBKTVAxSV9FTkMoSjRfdHN0Yml0 MCwiMTEiKQorCisKKworI2RlZmluZSBDTVBKTVBSX0VOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIo VEFHIyNfdHAwX2p1bXBfdCwgICAgICAgSUNMQVNTX0NKIiAwMSAwICJPUEMiICAwaWlzc3NzICBQ UDEwdHR0dCAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNfZnAwX2p1bXBfdCwgICAgICAg SUNMQVNTX0NKIiAwMSAwICJPUEMiICAxaWlzc3NzICBQUDEwdHR0dCAgaWlpaWlpaS0iKSBcCitE RUZfRU5DMzIoVEFHIyNfdHAwX2p1bXBfbnQsICAgICAgSUNMQVNTX0NKIiAwMSAwICJPUEMiICAw aWlzc3NzICBQUDAwdHR0dCAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNfZnAwX2p1bXBf bnQsICAgICAgSUNMQVNTX0NKIiAwMSAwICJPUEMiICAxaWlzc3NzICBQUDAwdHR0dCAgaWlpaWlp aS0iKSBcCitcCitERUZfRU5DMzIoVEFHIyNfdHAxX2p1bXBfdCwgICAgICAgSUNMQVNTX0NKIiAw MSAwICJPUEMiICAwaWlzc3NzICBQUDExdHR0dCAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFH IyNfZnAxX2p1bXBfdCwgICAgICAgSUNMQVNTX0NKIiAwMSAwICJPUEMiICAxaWlzc3NzICBQUDEx dHR0dCAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNfdHAxX2p1bXBfbnQsICAgICAgSUNM QVNTX0NKIiAwMSAwICJPUEMiICAwaWlzc3NzICBQUDAxdHR0dCAgaWlpaWlpaS0iKSBcCitERUZf RU5DMzIoVEFHIyNfZnAxX2p1bXBfbnQsICAgICAgSUNMQVNTX0NKIiAwMSAwICJPUEMiICAxaWlz c3NzICBQUDAxdHR0dCAgaWlpaWlpaS0iKQorCitDTVBKTVBSX0VOQyhKNF9jbXBlcSwiMDAiKQor Q01QSk1QUl9FTkMoSjRfY21wZ3QsIjAxIikKK0NNUEpNUFJfRU5DKEo0X2NtcGd0dSwiMTAiKQor CisKK0RFRl9FTkMzMihKNF9qdW1wc2V0aSwgICAgICAgICAgICBJQ0xBU1NfQ0oiIDAxMTAgIC0t aWlkZGRkICBQUElJSUlJSSAgaWlpaWlpaS0iKQorREVGX0VOQzMyKEo0X2p1bXBzZXRyLCAgICAg ICAgICAgIElDTEFTU19DSiIgMDExMSAgLS1paXNzc3MgIFBQLS1kZGRkICBpaWlpaWlpLSIpCisK KworREVGX0VYVF9TUEFDRShFWFRfQ0osICAgICAgICAgICAgIElDTEFTU19DSiIxIGlpaSAgaWlp aWlpaWkgIFBQaWlpaWlpICBpaWlpaWlpaSIpCisKKworCitERUZfQ0xBU1MzMihJQ0xBU1NfTkNK IiAwLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixOQ0opCitERUZfRklFTERST1dfREVT QzMyKElDTEFTU19OQ0oiIDAwLS0gLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0iLCJbIzAtM10g aWYgKGNtcC54eChSLm5ldyxSKSkganVtcDpbaF0gI3M5OjIgIikKK0RFRl9GSUVMRFJPV19ERVND MzIoSUNMQVNTX05DSiIgMDEtLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSIsIlsjNC03XSBp ZiAoY21wLnh4KFIubmV3LCNVNSkpIGp1bXA6W2hdICNzOToyICIpCisKKyNkZWZpbmUgT1BSSk1Q X0VOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIoVEFHIyNfdF9qdW1wbnZfdCwgICAgICAgSUNMQVNT X05DSiIgMDAgIk9QQyIgIDBpaS1zc3MgIFBQMXR0dHR0ICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMz MihUQUcjI19mX2p1bXBudl90LCAgICAgICBJQ0xBU1NfTkNKIiAwMCAiT1BDIiAgMWlpLXNzcyAg UFAxdHR0dHQgIGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRBRyMjX3RfanVtcG52X250LCAgICAg IElDTEFTU19OQ0oiIDAwICJPUEMiICAwaWktc3NzICBQUDB0dHR0dCAgaWlpaWlpaS0iKSBcCitE RUZfRU5DMzIoVEFHIyNfZl9qdW1wbnZfbnQsICAgICAgSUNMQVNTX05DSiIgMDAgIk9QQyIgIDFp aS1zc3MgIFBQMHR0dHR0ICBpaWlpaWlpLSIpCisKK09QUkpNUF9FTkMoSjRfY21wZXEsICAgIjAw MCIpCitPUFJKTVBfRU5DKEo0X2NtcGd0LCAgICIwMDEiKQorT1BSSk1QX0VOQyhKNF9jbXBndHUs ICAiMDEwIikKK09QUkpNUF9FTkMoSjRfY21wbHQsICAgIjAxMSIpCitPUFJKTVBfRU5DKEo0X2Nt cGx0dSwgICIxMDAiKQorCisKKyNkZWZpbmUgT1BJSk1QX0VOQyhUQUcsT1BDKSBcCitERUZfRU5D MzIoVEFHIyNfdF9qdW1wbnZfdCwgICAgICAgSUNMQVNTX05DSiIgMDEgIk9QQyIgIDBpaS1zc3Mg IFBQMUlJSUlJICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI19mX2p1bXBudl90LCAgICAg ICBJQ0xBU1NfTkNKIiAwMSAiT1BDIiAgMWlpLXNzcyAgUFAxSUlJSUkgIGlpaWlpaWktIikgXAor REVGX0VOQzMyKFRBRyMjX3RfanVtcG52X250LCAgICAgIElDTEFTU19OQ0oiIDAxICJPUEMiICAw aWktc3NzICBQUDBJSUlJSSAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNfZl9qdW1wbnZf bnQsICAgICAgSUNMQVNTX05DSiIgMDEgIk9QQyIgIDFpaS1zc3MgIFBQMElJSUlJICBpaWlpaWlp LSIpCisKK09QSUpNUF9FTkMoSjRfY21wZXFpLCAgIjAwMCIpCitPUElKTVBfRU5DKEo0X2NtcGd0 aSwgICIwMDEiKQorT1BJSk1QX0VOQyhKNF9jbXBndHVpLCAiMDEwIikKKworCisjZGVmaW5lIE9Q STFKTVBfRU5DKFRBRyxPUEMpIFwKK0RFRl9FTkMzMihUQUcjI190X2p1bXBudl90LCAgICAgICBJ Q0xBU1NfTkNKIiAwMSAiT1BDIiAgMGlpLXNzcyAgUFAxLS0tLS0gIGlpaWlpaWktIikgXAorREVG X0VOQzMyKFRBRyMjX2ZfanVtcG52X3QsICAgICAgIElDTEFTU19OQ0oiIDAxICJPUEMiICAxaWkt c3NzICBQUDEtLS0tLSAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNfdF9qdW1wbnZfbnQs ICAgICAgSUNMQVNTX05DSiIgMDEgIk9QQyIgIDBpaS1zc3MgIFBQMC0tLS0tICBpaWlpaWlpLSIp IFwKK0RFRl9FTkMzMihUQUcjI19mX2p1bXBudl9udCwgICAgICBJQ0xBU1NfTkNKIiAwMSAiT1BD IiAgMWlpLXNzcyAgUFAwLS0tLS0gIGlpaWlpaWktIikKKworT1BJMUpNUF9FTkMoSjRfY21wZXFu MSwgICIxMDAiKQorT1BJMUpNUF9FTkMoSjRfY21wZ3RuMSwgICIxMDEiKQorT1BJMUpNUF9FTkMo SjRfdHN0Yml0MCwgICIwMTEiKQorCisKK0RFRl9FWFRfU1BBQ0UoRVhUX05DSiwgICAgICAgICAg ICAgSUNMQVNTX05DSiIxIGlpaSAgaWlpaWlpaWkgIFBQaWlpaWlpICBpaWlpaWlpaSIpCisKKwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAg ICAgICAgQ1IgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworCisKK0RFRl9DTEFTUzMyKElDTEFTU19DUiIgLS0tLSAtLS0t LS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsQ1IpCitERUZfQ0xBU1MzMihJQ0xBU1NfQ1IiIC0wLS0g LS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLENSVVNFUikKK0RFRl9DTEFTUzMyKElDTEFTU19D UiIgLTEtLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsQ1JTVVBFUikKKworREVGX0ZJRUxE MzIoSUNMQVNTX0NSIiAtIS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixDUl9zbSwiU3Vw ZXJ2aXNvciBtb2RlIG9ubHkiKQorCisvKiBVc2VyIENSIG9wcyAqLworCitERUZfRklFTERST1df REVTQzMyKCAgICBJQ0xBU1NfQ1IiIDAwMDAgIC0tLS0tLS0tICBQUC0tLS0tLSAgLS0tLS0tLS0i LCJbIzBdIChScywjcjgpIikKK0RFRl9FTkMzMihKMl9sb29wMHIsICAgIElDTEFTU19DUiIgMDAw MCAgMDAwc3Nzc3MgIFBQLWlpaWlpICAtLS1paS0tLSIpCitERUZfRU5DMzIoSjJfbG9vcDFyLCAg ICBJQ0xBU1NfQ1IiIDAwMDAgIDAwMXNzc3NzICBQUC1paWlpaSAgLS0taWktLS0iKQorREVGX0VO QzMyKEoyX3Bsb29wMXNyLCAgSUNMQVNTX0NSIiAwMDAwICAxMDFzc3NzcyAgUFAtaWlpaWkgIC0t LWlpLS0tIikKK0RFRl9FTkMzMihKMl9wbG9vcDJzciwgIElDTEFTU19DUiIgMDAwMCAgMTEwc3Nz c3MgIFBQLWlpaWlpICAtLS1paS0tLSIpCitERUZfRU5DMzIoSjJfcGxvb3Azc3IsICBJQ0xBU1Nf Q1IiIDAwMDAgIDExMXNzc3NzICBQUC1paWlpaSAgLS0taWktLS0iKQorCitERUZfRklFTERST1df REVTQzMyKCAgICAgSUNMQVNTX0NSIiAwMDAxICAtLS0tLS0tLSAgUFAtLS0tLS0gIC0tLS0tLS0t IiwiWyMxXSAoUnMsI3IxMykiKQorREVGX0VOQzMyKEoyX2p1bXByeiwgICAgIElDTEFTU19DUiIg MDAwMSAgMDBpc3Nzc3MgIFBQaTBpaWlpICBpaWlpaWlpLSIpCitERUZfRU5DMzIoSjJfanVtcHJ6 cHQsICAgSUNMQVNTX0NSIiAwMDAxICAwMGlzc3NzcyAgUFBpMWlpaWkgIGlpaWlpaWktIikKK0RF Rl9FTkMzMihKMl9qdW1wcm56LCAgICBJQ0xBU1NfQ1IiIDAwMDEgIDEwaXNzc3NzICBQUGkwaWlp aSAgaWlpaWlpaS0iKQorREVGX0VOQzMyKEoyX2p1bXBybnpwdCwgIElDTEFTU19DUiIgMDAwMSAg MTBpc3Nzc3MgIFBQaTFpaWlpICBpaWlpaWlpLSIpCisKK0RFRl9FTkMzMihKMl9qdW1wcmd0ZXos ICBJQ0xBU1NfQ1IiIDAwMDEgIDAxaXNzc3NzICBQUGkwaWlpaSAgaWlpaWlpaS0iKQorREVGX0VO QzMyKEoyX2p1bXByZ3RlenB0LElDTEFTU19DUiIgMDAwMSAgMDFpc3Nzc3MgIFBQaTFpaWlpICBp aWlpaWlpLSIpCitERUZfRU5DMzIoSjJfanVtcHJsdGV6LCAgSUNMQVNTX0NSIiAwMDAxICAxMWlz c3NzcyAgUFBpMGlpaWkgIGlpaWlpaWktIikKK0RFRl9FTkMzMihKMl9qdW1wcmx0ZXpwdCxJQ0xB U1NfQ1IiIDAwMDEgIDExaXNzc3NzICBQUGkxaWlpaSAgaWlpaWlpaS0iKQorCitERUZfRklFTERS T1dfREVTQzMyKCAgICBJQ0xBU1NfQ1IiIDAwMTAgIC0tLS0tLS0tICBQUC0tLS0tLSAgLS0tLS0t LS0iLCJbIzJdIENkPVJzICIpCitERUZfRU5DMzIoQTJfdGZycmNyLCAgICBJQ0xBU1NfQ1IiIDAw MTAgIDAwMXNzc3NzICBQUC0tLS0tLSAgLS0tZGRkZGQiKQorCitERUZfRklFTERST1dfREVTQzMy KCAgICBJQ0xBU1NfQ1IiIDAwMTEgIC0tLS0tLS0tICBQUC0tLS0tLSAgLS0tLS0tLS0iLCJbIzNd IENkZD1Sc3MgIikKK0RFRl9FTkMzMihBNF90ZnJwY3AsICAgIElDTEFTU19DUiIgMDAxMSAgMDAx c3Nzc3MgIFBQLS0tLS0tICAtLS1kZGRkZCIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoICAgIElD TEFTU19DUiIgMTAwMCAgLS0tLS0tLS0gIFBQLS0tLS0tICAtLS0tLS0tLSIsIlsjOF0gUmRkPUNz cyAiKQorREVGX0VOQzMyKEE0X3RmcmNwcCwgICAgSUNMQVNTX0NSIiAxMDAwICAwMDBzc3NzcyAg UFAtLS0tLS0gIC0tLWRkZGRkIikKKworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0NS IiAxMDAxICAtLS0tLS0tLSAgUFAtLS0tLS0gIC0tLS0tLS0tIiwiWyM5XSAoI3I4LCNVMTApIikK K0RFRl9FTkMzMihKMl9wbG9vcDFzaSwgIElDTEFTU19DUiIgMTAwMSAgMTAxSUlJSUkgIFBQLWlp aWlpICBJSUlpaS1JSSIpCitERUZfRU5DMzIoSjJfcGxvb3Ayc2ksICBJQ0xBU1NfQ1IiIDEwMDEg IDExMElJSUlJICBQUC1paWlpaSAgSUlJaWktSUkiKQorREVGX0VOQzMyKEoyX3Bsb29wM3NpLCAg SUNMQVNTX0NSIiAxMDAxICAxMTFJSUlJSSAgUFAtaWlpaWkgIElJSWlpLUlJIikKK0RFRl9FTkMz MihKMl9sb29wMGksICAgIElDTEFTU19DUiIgMTAwMSAgMDAwSUlJSUkgIFBQLWlpaWlpICBJSUlp aS1JSSIpCitERUZfRU5DMzIoSjJfbG9vcDFpLCAgICBJQ0xBU1NfQ1IiIDEwMDEgIDAwMUlJSUlJ ICBQUC1paWlpaSAgSUlJaWktSUkiKQorCitERUZfRklFTERST1dfREVTQzMyKCAgICBJQ0xBU1Nf Q1IiIDEwMTAgIC0tLS0tLS0tICBQUC0tLS0tLSAgLS0tLS0tLS0iLCJbIzEwXSBSZD1DcyAiKQor REVGX0VOQzMyKEEyX3RmcmNyciwgICAgSUNMQVNTX0NSIiAxMDEwICAwMDBzc3NzcyAgUFAtLS0t LS0gIC0tLWRkZGRkIikKK0RFRl9FTkMzMihDNF9hZGRpcGMsICAgIElDTEFTU19DUiIgMTAxMCAg MDEwMDEwMDEgIFBQLWlpaWlpICBpLS1kZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMigg ICAgSUNMQVNTX0NSIiAxMDExICAtLS0tLS0tLSAgUFAwLS0tLS0gIC0tLS0tLS0tIiwiWyMxMV0g UGQ9KFBzLFB0LFB1KSIpCitERUZfRU5DMzIoQzJfYW5kLCAgICAgICBJQ0xBU1NfQ1IiIDEwMTEg IDAwMDAtLXNzICBQUDAtLS10dCAgLS0tLS0tZGQiKQorREVGX0VOQzMyKEMyX29yLCAgICAgICAg SUNMQVNTX0NSIiAxMDExICAwMDEwLS1zcyAgUFAwLS0tdHQgIC0tLS0tLWRkIikKK0RFRl9FTkMz MihDMl94b3IsICAgICAgIElDTEFTU19DUiIgMTAxMSAgMDEwMC0tc3MgIFBQMC0tLXR0ICAtLS0t LS1kZCIpCitERUZfRU5DMzIoQzJfYW5kbiwgICAgICBJQ0xBU1NfQ1IiIDEwMTEgIDAxMTAtLXNz ICBQUDAtLS10dCAgLS0tLS0tZGQiKQorREVGX0VOQzMyKEMyX2FueTgsICAgICAgSUNMQVNTX0NS IiAxMDExICAxMDAwLS1zcyAgUFAwLS0tLS0gIC0tLS0tLWRkIikKK0RFRl9FTkMzMihDMl9hbGw4 LCAgICAgIElDTEFTU19DUiIgMTAxMSAgMTAxMC0tc3MgIFBQMC0tLS0tICAtLS0tLS1kZCIpCitE RUZfRU5DMzIoQzJfbm90LCAgICAgICBJQ0xBU1NfQ1IiIDEwMTEgIDExMDAtLXNzICBQUDAtLS0t LSAgLS0tLS0tZGQiKQorREVGX0VOQzMyKEMyX29ybiwgICAgICAgSUNMQVNTX0NSIiAxMDExICAx MTEwLS1zcyAgUFAwLS0tdHQgIC0tLS0tLWRkIikKKworREVGX0VOQzMyKEM0X2FuZF9hbmQsICAg SUNMQVNTX0NSIiAxMDExICAwMDAxLS1zcyAgUFAwLS0tdHQgIHV1LS0tLWRkIikKK0RFRl9FTkMz MihDNF9hbmRfb3IsICAgIElDTEFTU19DUiIgMTAxMSAgMDAxMS0tc3MgIFBQMC0tLXR0ICB1dS0t LS1kZCIpCitERUZfRU5DMzIoQzRfb3JfYW5kLCAgICBJQ0xBU1NfQ1IiIDEwMTEgIDAxMDEtLXNz ICBQUDAtLS10dCAgdXUtLS0tZGQiKQorREVGX0VOQzMyKEM0X29yX29yLCAgICAgSUNMQVNTX0NS IiAxMDExICAwMTExLS1zcyAgUFAwLS0tdHQgIHV1LS0tLWRkIikKK0RFRl9FTkMzMihDNF9hbmRf YW5kbiwgIElDTEFTU19DUiIgMTAxMSAgMTAwMS0tc3MgIFBQMC0tLXR0ICB1dS0tLS1kZCIpCitE RUZfRU5DMzIoQzRfYW5kX29ybiwgICBJQ0xBU1NfQ1IiIDEwMTEgIDEwMTEtLXNzICBQUDAtLS10 dCAgdXUtLS0tZGQiKQorREVGX0VOQzMyKEM0X29yX2FuZG4sICAgSUNMQVNTX0NSIiAxMDExICAx MTAxLS1zcyAgUFAwLS0tdHQgIHV1LS0tLWRkIikKK0RFRl9FTkMzMihDNF9vcl9vcm4sICAgIElD TEFTU19DUiIgMTAxMSAgMTExMS0tc3MgIFBQMC0tLXR0ICB1dS0tLS1kZCIpCisKK0RFRl9FTkMz MihDNF9mYXN0Y29ybmVyOSwgICAgICAgSUNMQVNTX0NSIjEwMTEgMDAwMC0tc3MgIFBQMS0tLXR0 IDEtLTEtLWRkIikKK0RFRl9FTkMzMihDNF9mYXN0Y29ybmVyOV9ub3QsICAgSUNMQVNTX0NSIjEw MTEgMDAwMS0tc3MgIFBQMS0tLXR0IDEtLTEtLWRkIikKKworCisKKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICBNICAgICAgICAgICAg ICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor CisKK0RFRl9DTEFTUzMyKElDTEFTU19NIiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0t IixNKQorREVGX0ZJRUxEMzIoSUNMQVNTX00iICEhISEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0t LS0iLE1fUmVnVHlwZSwiUmVnaXN0ZXIgVHlwZSIpCitERUZfRklFTEQzMihJQ0xBU1NfTSIgLS0t LSAhISEtLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsTV9NYWpPcCwiTWFqb3IgT3Bjb2RlIikKK0RF Rl9GSUVMRDMyKElDTEFTU19NIiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tICEhIS0tLS0tIixNX01p bk9wLCJNaW5vciBPcGNvZGUiKQorCisKKworI2RlZmluZSBTUF9NUFkoVEFHLFJFR1RZUEUsRFNU Q0hBUlMsU0FULFJORCxVTlMpXAorREVGX0VOQzMyKFRBRyMjX2xsX3MwLCBJQ0xBU1NfTSAgUkVH VFlQRSAiMCIgIFVOUyBSTkQic3Nzc3MgIFBQLXR0dHR0ICJTQVQiMDAiICAgRFNUQ0hBUlMpXAor REVGX0VOQzMyKFRBRyMjX2xoX3MwLCBJQ0xBU1NfTSAgUkVHVFlQRSAiMCIgIFVOUyBSTkQic3Nz c3MgIFBQLXR0dHR0ICJTQVQiMDEiICAgRFNUQ0hBUlMpXAorREVGX0VOQzMyKFRBRyMjX2hsX3Mw LCBJQ0xBU1NfTSAgUkVHVFlQRSAiMCIgIFVOUyBSTkQic3Nzc3MgIFBQLXR0dHR0ICJTQVQiMTAi ICAgRFNUQ0hBUlMpXAorREVGX0VOQzMyKFRBRyMjX2hoX3MwLCBJQ0xBU1NfTSAgUkVHVFlQRSAi MCIgIFVOUyBSTkQic3Nzc3MgIFBQLXR0dHR0ICJTQVQiMTEiICAgRFNUQ0hBUlMpXAorREVGX0VO QzMyKFRBRyMjX2xsX3MxLCBJQ0xBU1NfTSAgUkVHVFlQRSAiMSIgIFVOUyBSTkQic3Nzc3MgIFBQ LXR0dHR0ICJTQVQiMDAiICAgRFNUQ0hBUlMpXAorREVGX0VOQzMyKFRBRyMjX2xoX3MxLCBJQ0xB U1NfTSAgUkVHVFlQRSAiMSIgIFVOUyBSTkQic3Nzc3MgIFBQLXR0dHR0ICJTQVQiMDEiICAgRFNU Q0hBUlMpXAorREVGX0VOQzMyKFRBRyMjX2hsX3MxLCBJQ0xBU1NfTSAgUkVHVFlQRSAiMSIgIFVO UyBSTkQic3Nzc3MgIFBQLXR0dHR0ICJTQVQiMTAiICAgRFNUQ0hBUlMpXAorREVGX0VOQzMyKFRB RyMjX2hoX3MxLCBJQ0xBU1NfTSAgUkVHVFlQRSAiMSIgIFVOUyBSTkQic3Nzc3MgIFBQLXR0dHR0 ICJTQVQiMTEiICAgRFNUQ0hBUlMpCisKKy8qIERvdWJsZSBwcmVjaXNpb24gICAgICAgICAgICAg ICAgICAgKi8KKyNkZWZpbmUgTVBZX0VOQyhUQUcsUkVHVFlQRSxEU1RDSEFSUyxTQVQsUk5ETkFD LFVOUyxTSEZULFZNSU4yKVwKK0RFRl9FTkMzMihUQUcsIElDTEFTU19NIFJFR1RZUEUgU0hGVCBV TlMgUk5ETkFDInNzc3NzICBQUDB0dHR0dCAiU0FUIFZNSU4yIERTVENIQVJTKQorCisjZGVmaW5l IE1QWUlfRU5DKFRBRyxSRUdUWVBFLERTVENIQVJTLFJORE5BQyxVTlMsU0hGVClcCitERUZfRU5D MzIoVEFHLCBJQ0xBU1NfTSBSRUdUWVBFIFNIRlQgVU5TIFJORE5BQyJzc3NzcyAgUFAwaWlpaWkg aWlpIiBEU1RDSEFSUykKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19NIiAwMDAwIC0t LS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMwXSBSZD0oUnMsI3U4KSIpCitNUFlJX0VOQyhN Ml9tcHlzaXAsICAgICAgICAgICIwMDAwIiwiZGRkZGQiLCItIiwiLSIsIjAiICAgICApCitNUFlJ X0VOQyhNMl9tcHlzaW4sICAgICAgICAgICIwMDAwIiwiZGRkZGQiLCItIiwiLSIsIjEiICAgICAp CisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfTSIgMDAwMSAtLS0tLS0tLSBQUC0tLS0t LSAtLS0tLS0tLSIsIlsjMV0gUng9KFJzLCN1OCkiKQorTVBZSV9FTkMoTTJfbWFjc2lwLCAgICAg ICAgICAiMDAwMSIsInh4eHh4IiwiLSIsIi0iLCIwIiAgICAgKQorTVBZSV9FTkMoTTJfbWFjc2lu LCAgICAgICAgICAiMDAwMSIsInh4eHh4IiwiLSIsIi0iLCIxIiAgICAgKQorCisKK0RFRl9GSUVM RFJPV19ERVNDMzIoSUNMQVNTX00iIDAwMTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJb IzJdIFJ4PShScywjczgpIikKK01QWUlfRU5DKE0yX2FjY2lpLCAgICAgICAgICAgIjAwMTAiLCJ4 eHh4eCIsIi0iLCItIiwiMCIgICAgICkKK01QWUlfRU5DKE0yX25hY2NpaSwgICAgICAgICAgIjAw MTAiLCJ4eHh4eCIsIi0iLCItIiwiMSIgICAgICkKKworCitERUZfRklFTERST1dfREVTQzMyKElD TEFTU19NIiAwMDExIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMzXSBSeT0oUnUsKFJz LFJ5KSkgIikKK0RFRl9FTkMzMihNNF9tcHlycl9hZGRyLElDTEFTU19NIiAwMDExIDAwMHNzc3Nz IFBQLXl5eXl5IC0tLXV1dXV1IikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19NIiAw MTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM0XSBSZGQ9KFJzLFJ0KSIpCitERUZf RklFTEQzMihJQ0xBU1NfTSIgICAgICAgICAwMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tIS0tLS0t IixNYV90SCwiUnQgaXMgSGlnaCIpIC8qUnQgaGlnaCAqLworREVGX0ZJRUxEMzIoSUNMQVNTX00i ICAgICAgICAgMDEwMCAtLS0tLS0tLSBQUC0tLS0tLSAtIS0tLS0tLSIsTWFfc0gsIlJzIGlzIEhp Z2giKSAvKiBScyBoaWdoICovCitTUF9NUFkoTTJfbXB5ZCwgICAgICAgICAgICAgICIwMTAwIiwi ZGRkZGQiLCItIiwiMCIsIjAiKQorU1BfTVBZKE0yX21weWRfcm5kLCAgICAgICAgICAiMDEwMCIs ImRkZGRkIiwiLSIsIjEiLCIwIikKK1NQX01QWShNMl9tcHl1ZCwgICAgICAgICAgICAgIjAxMDAi LCJkZGRkZCIsIi0iLCIwIiwiMSIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfTSIg MDEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjNV0gUmRkPShScyxSdCkiKQorTVBZ X0VOQyhNMl9kcG1weXNzX3MwLCAgICAgICAiMDEwMSIsImRkZGRkIiwiMCIsIjAiLCIwIiwiMCIs IjAwIikKK01QWV9FTkMoTTJfZHBtcHl1dV9zMCwgICAgICAgIjAxMDEiLCJkZGRkZCIsIjAiLCIw IiwiMSIsIjAiLCIwMCIpCitNUFlfRU5DKE0yX3ZtcHkyc19zMCwgICAgICAgICIwMTAxIiwiZGRk ZGQiLCIxIiwiMCIsIjAiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl92bXB5MnNfczEsICAgICAgICAi MDEwMSIsImRkZGRkIiwiMSIsIjAiLCIwIiwiMSIsIjAxIikKK01QWV9FTkMoTTJfY21weWlfczAs ICAgICAgICAgIjAxMDEiLCJkZGRkZCIsIjAiLCIwIiwiMCIsIjAiLCIwMSIpCitNUFlfRU5DKE0y X2NtcHlyX3MwLCAgICAgICAgICIwMTAxIiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIwIiwiMTAiKQor TVBZX0VOQyhNMl9jbXB5c19zMCwgICAgICAgICAiMDEwMSIsImRkZGRkIiwiMSIsIjAiLCIwIiwi MCIsIjEwIikKK01QWV9FTkMoTTJfY21weXNfczEsICAgICAgICAgIjAxMDEiLCJkZGRkZCIsIjEi LCIwIiwiMCIsIjEiLCIxMCIpCitNUFlfRU5DKE0yX2NtcHlzY19zMCwgICAgICAgICIwMTAxIiwi ZGRkZGQiLCIxIiwiMCIsIjEiLCIwIiwiMTAiKQorTVBZX0VOQyhNMl9jbXB5c2NfczEsICAgICAg ICAiMDEwMSIsImRkZGRkIiwiMSIsIjAiLCIxIiwiMSIsIjEwIikKK01QWV9FTkMoTTJfdm1weTJz dV9zMCwgICAgICAgIjAxMDEiLCJkZGRkZCIsIjEiLCIwIiwiMCIsIjAiLCIxMSIpCitNUFlfRU5D KE0yX3ZtcHkyc3VfczEsICAgICAgICIwMTAxIiwiZGRkZGQiLCIxIiwiMCIsIjAiLCIxIiwiMTEi KQorTVBZX0VOQyhNNF9wbXB5dywgICAgICAgICAgICAiMDEwMSIsImRkZGRkIiwiMSIsIjAiLCIx IiwiMCIsIjExIikKK01QWV9FTkMoTTRfdnBtcHloLCAgICAgICAgICAgIjAxMDEiLCJkZGRkZCIs IjEiLCIwIiwiMSIsIjEiLCIxMSIpCitNUFlfRU5DKE01X3ZtcHlidXUsICAgICAgICAgICIwMTAx IiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIxIiwiMDEiKQorTVBZX0VOQyhNNV92bXB5YnN1LCAgICAg ICAgICAiMDEwMSIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMCIsIjAxIikKKworCisKKworREVGX0ZJ RUxEUk9XX0RFU0MzMihJQ0xBU1NfTSIgMDExMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIs IlsjNl0gUnh4PShScyxSdCkiKQorREVGX0ZJRUxEMzIoSUNMQVNTX00iICAgICAgICAgMDExMCAt LS0tLS0tLSBQUC0tLS0tLSAtLSEtLS0tLSIsTWJfdEgsIlJ0IGlzIEhpZ2giKSAvKlJ0IGhpZ2gg Ki8KK0RFRl9GSUVMRDMyKElDTEFTU19NIiAgICAgICAgIDAxMTAgLS0tLS0tLS0gUFAtLS0tLS0g LSEtLS0tLS0iLE1iX3NILCJScyBpcyBIaWdoIikgLyogUnMgaGlnaCAqLworU1BfTVBZKE0yX21w eWRfYWNjLCAgICAgICAgICAiMDExMCIsInh4eHh4IiwiMCIsIjAiLCIwIikKK1NQX01QWShNMl9t cHl1ZF9hY2MsICAgICAgICAgIjAxMTAiLCJ4eHh4eCIsIjAiLCIwIiwiMSIpCitTUF9NUFkoTTJf bXB5ZF9uYWMsICAgICAgICAgICIwMTEwIiwieHh4eHgiLCIwIiwiMSIsIjAiKQorU1BfTVBZKE0y X21weXVkX25hYywgICAgICAgICAiMDExMCIsInh4eHh4IiwiMCIsIjEiLCIxIikKKworCitERUZf RklFTERST1dfREVTQzMyKElDTEFTU19NIiAwMTExIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0t IiwiWyM3XSBSeHg9KFJzLFJ0KSIpCitNUFlfRU5DKE0yX2RwbXB5c3NfYWNjX3MwLCAgICIwMTEx IiwieHh4eHgiLCIwIiwiMCIsIjAiLCIwIiwiMDAiKQorTVBZX0VOQyhNMl9kcG1weXNzX25hY19z MCwgICAiMDExMSIsInh4eHh4IiwiMCIsIjEiLCIwIiwiMCIsIjAwIikKK01QWV9FTkMoTTJfZHBt cHl1dV9hY2NfczAsICAgIjAxMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMSIsIjAiLCIwMCIpCitNUFlf RU5DKE0yX2RwbXB5dXVfbmFjX3MwLCAgICIwMTExIiwieHh4eHgiLCIwIiwiMSIsIjEiLCIwIiwi MDAiKQorTVBZX0VOQyhNMl92bWFjMnNfczAsICAgICAgICAiMDExMSIsInh4eHh4IiwiMSIsIjAi LCIwIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfdm1hYzJzX3MxLCAgICAgICAgIjAxMTEiLCJ4eHh4 eCIsIjEiLCIwIiwiMCIsIjEiLCIwMSIpCitNUFlfRU5DKE0yX2NtYWNpX3MwLCAgICAgICAgICIw MTExIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9jbWFjcl9zMCwg ICAgICAgICAiMDExMSIsInh4eHh4IiwiMCIsIjAiLCIwIiwiMCIsIjEwIikKK01QWV9FTkMoTTJf Y21hY3NfczAsICAgICAgICAgIjAxMTEiLCJ4eHh4eCIsIjEiLCIwIiwiMCIsIjAiLCIxMCIpCitN UFlfRU5DKE0yX2NtYWNzX3MxLCAgICAgICAgICIwMTExIiwieHh4eHgiLCIxIiwiMCIsIjAiLCIx IiwiMTAiKQorTVBZX0VOQyhNMl9jbWFjc2NfczAsICAgICAgICAiMDExMSIsInh4eHh4IiwiMSIs IjAiLCIxIiwiMCIsIjEwIikKK01QWV9FTkMoTTJfY21hY3NjX3MxLCAgICAgICAgIjAxMTEiLCJ4 eHh4eCIsIjEiLCIwIiwiMSIsIjEiLCIxMCIpCitNUFlfRU5DKE0yX3ZtYWMyLCAgICAgICAgICAg ICIwMTExIiwieHh4eHgiLCIwIiwiMSIsIjAiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9jbmFjc19z MCwgICAgICAgICAiMDExMSIsInh4eHh4IiwiMSIsIjAiLCIwIiwiMCIsIjExIikKK01QWV9FTkMo TTJfY25hY3NfczEsICAgICAgICAgIjAxMTEiLCJ4eHh4eCIsIjEiLCIwIiwiMCIsIjEiLCIxMSIp CitNUFlfRU5DKE0yX2NuYWNzY19zMCwgICAgICAgICIwMTExIiwieHh4eHgiLCIxIiwiMCIsIjEi LCIwIiwiMTEiKQorTVBZX0VOQyhNMl9jbmFjc2NfczEsICAgICAgICAiMDExMSIsInh4eHh4Iiwi MSIsIjAiLCIxIiwiMSIsIjExIikKK01QWV9FTkMoTTJfdm1hYzJzdV9zMCwgICAgICAgIjAxMTEi LCJ4eHh4eCIsIjEiLCIxIiwiMSIsIjAiLCIwMSIpCitNUFlfRU5DKE0yX3ZtYWMyc3VfczEsICAg ICAgICIwMTExIiwieHh4eHgiLCIxIiwiMSIsIjEiLCIxIiwiMDEiKQorTVBZX0VOQyhNNF9wbXB5 d19hY2MsICAgICAgICAiMDExMSIsInh4eHh4IiwiMSIsIjEiLCIwIiwiMCIsIjExIikKK01QWV9F TkMoTTRfdnBtcHloX2FjYywgICAgICAgIjAxMTEiLCJ4eHh4eCIsIjEiLCIxIiwiMCIsIjEiLCIx MSIpCitNUFlfRU5DKE01X3ZtYWNidXUsICAgICAgICAgICIwMTExIiwieHh4eHgiLCIwIiwiMCIs IjAiLCIxIiwiMDEiKQorTVBZX0VOQyhNNV92bWFjYnN1LCAgICAgICAgICAiMDExMSIsInh4eHh4 IiwiMCIsIjAiLCIxIiwiMSIsIjAxIikKKworCisKKworCitERUZfRklFTERST1dfREVTQzMyKElD TEFTU19NIiAxMDAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM4XSBSZGQ9KFJzcyxS dHQpIikKK01QWV9FTkMoTTJfdnJjbXB5aV9zMCwgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIw IiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE0yX3ZkbXB5c19zMCwgICAgICAgICIxMDAwIiwiZGRk ZGQiLCIxIiwiMCIsIjAiLCIwIiwiMDAiKQorTVBZX0VOQyhNMl92ZG1weXNfczEsICAgICAgICAi MTAwMCIsImRkZGRkIiwiMSIsIjAiLCIwIiwiMSIsIjAwIikKK01QWV9FTkMoTTJfdnJjbXB5aV9z MGMsICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIwIiwiMSIsIjAiLCIwMCIpCitNUFlfRU5DKE0y X3ZhYnNkaWZmdywgICAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMSIsIjAiLCIwIiwiMDAiKQor TVBZX0VOQyhNNl92YWJzZGlmZnViLCAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjEiLCIwIiwi MSIsIjAwIikKK01QWV9FTkMoTTJfdmFic2RpZmZoLCAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAi LCIxIiwiMSIsIjAiLCIwMCIpCitNUFlfRU5DKE02X3ZhYnNkaWZmYiwgICAgICAgICIxMDAwIiwi ZGRkZGQiLCIwIiwiMSIsIjEiLCIxIiwiMDAiKQorTVBZX0VOQyhNMl92cmNtcHlzX3MxX2gsICAg ICAiMTAwMCIsImRkZGRkIiwiMSIsIjEiLCIwIiwiMSIsIjAwIikKK01QWV9FTkMoTTJfdnJjbXB5 c19zMV9sLCAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIxIiwiMSIsIjEiLCIwMCIpCitNUFlfRU5D KE0yX3ZyY21weXJfczBjLCAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMSIsIjEiLCIwIiwiMDEi KQorTVBZX0VOQyhNMl92cmNtcHlyX3MwLCAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjAiLCIw IiwiMCIsIjAxIikKK01QWV9FTkMoQTJfdnJhZGR1YiwgICAgICAgICAgIjEwMDAiLCJkZGRkZCIs IjAiLCIwIiwiMSIsIjAiLCIwMSIpCitNUFlfRU5DKE0yX21tcHlsX3MwLCAgICAgICAgICIxMDAw IiwiZGRkZGQiLCIxIiwiMCIsIjAiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9tbXB5bF9zMSwgICAg ICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjAiLCIwIiwiMSIsIjAxIikKK01QWV9FTkMoTTJfbW1w eWxfcnMwLCAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIxIiwiMCIsIjAiLCIwMSIpCitNUFlf RU5DKE0yX21tcHlsX3JzMSwgICAgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMSIsIjAiLCIxIiwi MDEiKQorTVBZX0VOQyhNMl9tbXB5dWxfczAsICAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjAi LCIxIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfbW1weXVsX3MxLCAgICAgICAgIjEwMDAiLCJkZGRk ZCIsIjEiLCIwIiwiMSIsIjEiLCIwMSIpCitNUFlfRU5DKE0yX21tcHl1bF9yczAsICAgICAgICIx MDAwIiwiZGRkZGQiLCIxIiwiMSIsIjEiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9tbXB5dWxfcnMx LCAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjEiLCIxIiwiMSIsIjAxIikKK01QWV9FTkMoTTJf dnJtcHlfczAsICAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIwIiwiMCIsIjAiLCIxMCIpCitN UFlfRU5DKEEyX3Zyc2FkdWIsICAgICAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMCIsIjEiLCIw IiwiMTAiKQorTVBZX0VOQyhNMl92bXB5MmVzX3MwLCAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIs IjAiLCIwIiwiMCIsIjEwIikKK01QWV9FTkMoTTJfdm1weTJlc19zMSwgICAgICAgIjEwMDAiLCJk ZGRkZCIsIjEiLCIwIiwiMCIsIjEiLCIxMCIpCitNUFlfRU5DKE0yX3ZjbXB5X3MwX3NhdF9pLCAg ICIxMDAwIiwiZGRkZGQiLCIxIiwiMCIsIjEiLCIwIiwiMTAiKQorTVBZX0VOQyhNMl92Y21weV9z MF9zYXRfciwgICAiMTAwMCIsImRkZGRkIiwiMSIsIjEiLCIwIiwiMCIsIjEwIikKK01QWV9FTkMo TTJfdmNtcHlfczFfc2F0X2ksICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIwIiwiMSIsIjEiLCIxMCIp CitNUFlfRU5DKE0yX3ZjbXB5X3MxX3NhdF9yLCAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMSIsIjAi LCIxIiwiMTAiKQorCitNUFlfRU5DKE0yX21tcHloX3MwLCAgICAgICAgICIxMDAwIiwiZGRkZGQi LCIxIiwiMCIsIjAiLCIwIiwiMTEiKQorTVBZX0VOQyhNMl9tbXB5aF9zMSwgICAgICAgICAiMTAw MCIsImRkZGRkIiwiMSIsIjAiLCIwIiwiMSIsIjExIikKK01QWV9FTkMoTTJfbW1weWhfcnMwLCAg ICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIxIiwiMCIsIjAiLCIxMSIpCitNUFlfRU5DKE0yX21t cHloX3JzMSwgICAgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMSIsIjAiLCIxIiwiMTEiKQorTVBZ X0VOQyhNMl9tbXB5dWhfczAsICAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjAiLCIxIiwiMCIs IjExIikKK01QWV9FTkMoTTJfbW1weXVoX3MxLCAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIw IiwiMSIsIjEiLCIxMSIpCitNUFlfRU5DKE0yX21tcHl1aF9yczAsICAgICAgICIxMDAwIiwiZGRk ZGQiLCIxIiwiMSIsIjEiLCIwIiwiMTEiKQorTVBZX0VOQyhNMl9tbXB5dWhfcnMxLCAgICAgICAi MTAwMCIsImRkZGRkIiwiMSIsIjEiLCIxIiwiMSIsIjExIikKKworTVBZX0VOQyhNNF92cm1weWVo X3MwLCAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjAiLCIxIiwiMCIsIjAwIikKK01QWV9FTkMo TTRfdnJtcHllaF9zMSwgICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIwIiwiMSIsIjEiLCIwMCIp CitNUFlfRU5DKE00X3ZybXB5b2hfczAsICAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMSIsIjAi LCIwIiwiMTAiKQorTVBZX0VOQyhNNF92cm1weW9oX3MxLCAgICAgICAiMTAwMCIsImRkZGRkIiwi MCIsIjEiLCIwIiwiMSIsIjEwIikKK01QWV9FTkMoTTVfdnJtcHlidXUsICAgICAgICAgIjEwMDAi LCJkZGRkZCIsIjAiLCIwIiwiMCIsIjEiLCIwMSIpCitNUFlfRU5DKE01X3ZybXB5YnN1LCAgICAg ICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMCIsIjEiLCIxIiwiMDEiKQorTVBZX0VOQyhNNV92ZG1w eWJzdSwgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjEiLCIwIiwiMSIsIjAxIikKKworTVBZ X0VOQyhGMl9kZmFkZCwgICAgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjAiLCIwIiwiMCIs IjExIikKK01QWV9FTkMoRjJfZGZzdWIsICAgICAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIw IiwiMCIsIjEiLCIxMSIpCitNUFlfRU5DKEYyX2RmbXB5Zml4LCAgICAgICAgICIxMDAwIiwiZGRk ZGQiLCIwIiwiMCIsIjEiLCIwIiwiMTEiKQorTVBZX0VOQyhGMl9kZm1pbiwgICAgICAgICAgICAi MTAwMCIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMSIsIjExIikKK01QWV9FTkMoRjJfZGZtYXgsICAg ICAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIxIiwiMCIsIjAiLCIxMSIpCitNUFlfRU5DKEYy X2RmbXB5bGwsICAgICAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMSIsIjAiLCIxIiwiMTEiKQor I2lmZGVmIEFERF9EUF9PUFMKK01QWV9FTkMoRjJfZGZkaXZjaGVhdCwgICAgICAgIjEwMDAiLCJk ZGRkZCIsIjAiLCIwIiwiMCIsIjEiLCIwMCIpCisKK01QWV9FTkMoRjJfZGZmaXh1cG4sICAgICAg ICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIxIiwiMCIsIjEiLCIxMSIpCitNUFlfRU5DKEYyX2RmZml4 dXBkLCAgICAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMSIsIjEiLCIwIiwiMTEiKQorTVBZX0VO QyhGMl9kZnJlY2lwYSwgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjEiLCIxIiwiMSIsImVl IikKKyNlbmRpZgorCitNUFlfRU5DKE03X2RjbXB5cncsICAgICAgICAgICIxMDAwIiwiZGRkZGQi LCIwIiwiMCIsIjAiLCIxIiwiMTAiKQorTVBZX0VOQyhNN19kY21weXJ3YywgICAgICAgICAiMTAw MCIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMSIsIjEwIikKK01QWV9FTkMoTTdfZGNtcHlpdywgICAg ICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIxIiwiMSIsIjAiLCIxMCIpCitNUFlfRU5DKE03X2Rj bXB5aXdjLCAgICAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMSIsIjEiLCIxIiwiMTAiKQorCisK KworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfTSIgMTAwMSAtLS0tLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsIlsjOV0gUmQ9KFJzcyxSdHQpIikKK01QWV9FTkMoTTJfdmRtcHlyc19zMCwgICAg ICAgIjEwMDEiLCJkZGRkZCIsIjAiLCIwIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE0yX3ZkbXB5 cnNfczEsICAgICAgICIxMDAxIiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIxIiwiMDAiKQorCitNUFlf RU5DKE03X3djbXB5cncsICAgICAgICAgICIxMDAxIiwiZGRkZGQiLCIwIiwiMCIsIjEiLCIwIiwi MDAiKQorTVBZX0VOQyhNN193Y21weXJ3X3JuZCwgICAgICAiMTAwMSIsImRkZGRkIiwiMCIsIjAi LCIxIiwiMSIsIjAwIikKK01QWV9FTkMoTTdfd2NtcHlpdywgICAgICAgICAgIjEwMDEiLCJkZGRk ZCIsIjAiLCIxIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE03X3djbXB5aXdfcm5kLCAgICAgICIx MDAxIiwiZGRkZGQiLCIwIiwiMSIsIjAiLCIxIiwiMDAiKQorCitNUFlfRU5DKE03X3djbXB5cndj LCAgICAgICAgICIxMDAxIiwiZGRkZGQiLCIwIiwiMSIsIjEiLCIwIiwiMDAiKQorTVBZX0VOQyhN N193Y21weXJ3Y19ybmQsICAgICAiMTAwMSIsImRkZGRkIiwiMCIsIjEiLCIxIiwiMSIsIjAwIikK K01QWV9FTkMoTTdfd2NtcHlpd2MsICAgICAgICAgIjEwMDEiLCJkZGRkZCIsIjEiLCIwIiwiMCIs IjAiLCIwMCIpCitNUFlfRU5DKE03X3djbXB5aXdjX3JuZCwgICAgICIxMDAxIiwiZGRkZGQiLCIx IiwiMCIsIjAiLCIxIiwiMDAiKQorCisKKworTVBZX0VOQyhNMl92cmFkZHVoLCAgICAgICAgICAi MTAwMSIsImRkZGRkIiwiLSIsIi0iLCItIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfdnJjbXB5c19z MXJwX2gsICAgIjEwMDEiLCJkZGRkZCIsIjEiLCIxIiwiLSIsIjEiLCIxMCIpCitNUFlfRU5DKE0y X3ZyY21weXNfczFycF9sLCAgICIxMDAxIiwiZGRkZGQiLCIxIiwiMSIsIi0iLCIxIiwiMTEiKQor TVBZX0VOQyhNMl92cmFkZGgsICAgICAgICAgICAiMTAwMSIsImRkZGRkIiwiMSIsIjEiLCItIiwi MCIsIjExIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19NIiAxMDEwIC0tLS0tLS0t IFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMF0gUnh4PShSc3MsUnR0KSIpCitNUFlfRU5DKE0yX3Zy Y21hY2lfczAsICAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIwIiwiMDAiKQorTVBZ X0VOQyhNMl92ZG1hY3NfczAsICAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIwIiwiMCIs IjAwIikKK01QWV9FTkMoTTJfdmRtYWNzX3MxLCAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIw IiwiMCIsIjEiLCIwMCIpCitNUFlfRU5DKE0yX3ZyY21hY2lfczBjLCAgICAgICIxMDEwIiwieHh4 eHgiLCIwIiwiMCIsIjEiLCIwIiwiMDAiKQorTVBZX0VOQyhNMl92Y21hY19zMF9zYXRfaSwgICAi MTAxMCIsInh4eHh4IiwiMSIsIjAiLCIxIiwiMCIsIjAwIikKK01QWV9FTkMoTTJfdmNtYWNfczBf c2F0X3IsICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIxIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE0y X3ZyY21weXNfYWNjX3MxX2gsICIxMDEwIiwieHh4eHgiLCIxIiwiMSIsIjAiLCIxIiwiMDAiKQor TVBZX0VOQyhNMl92cmNtcHlzX2FjY19zMV9sLCAiMTAxMCIsInh4eHh4IiwiMSIsIjEiLCIxIiwi MSIsIjAwIikKK01QWV9FTkMoTTJfdnJjbWFjcl9zMCwgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjAi LCIwIiwiMCIsIjAiLCIwMSIpCitNUFlfRU5DKEEyX3ZyYWRkdWJfYWNjLCAgICAgICIxMDEwIiwi eHh4eHgiLCIwIiwiMCIsIjEiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9tbWFjbHNfczAsICAgICAg ICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIwIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfbW1hY2xz X3MxLCAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIwIiwiMCIsIjEiLCIwMSIpCitNUFlfRU5D KE0yX21tYWNsc19yczAsICAgICAgICIxMDEwIiwieHh4eHgiLCIxIiwiMSIsIjAiLCIwIiwiMDEi KQorTVBZX0VOQyhNMl9tbWFjbHNfcnMxLCAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjEiLCIw IiwiMSIsIjAxIikKK01QWV9FTkMoTTJfbW1hY3Vsc19zMCwgICAgICAgIjEwMTAiLCJ4eHh4eCIs IjEiLCIwIiwiMSIsIjAiLCIwMSIpCitNUFlfRU5DKE0yX21tYWN1bHNfczEsICAgICAgICIxMDEw IiwieHh4eHgiLCIxIiwiMCIsIjEiLCIxIiwiMDEiKQorTVBZX0VOQyhNMl9tbWFjdWxzX3JzMCwg ICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjEiLCIxIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfbW1h Y3Vsc19yczEsICAgICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIxIiwiMSIsIjEiLCIwMSIpCitNUFlf RU5DKE0yX3ZyY21hY3JfczBjLCAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMSIsIjEiLCIwIiwi MDEiKQorTVBZX0VOQyhNMl92cm1hY19zMCwgICAgICAgICAiMTAxMCIsInh4eHh4IiwiMCIsIjAi LCIwIiwiMCIsIjEwIikKK01QWV9FTkMoQTJfdnJzYWR1Yl9hY2MsICAgICAgIjEwMTAiLCJ4eHh4 eCIsIjAiLCIwIiwiMSIsIjAiLCIxMCIpCitNUFlfRU5DKE0yX3ZtYWMyZXNfczAsICAgICAgICIx MDEwIiwieHh4eHgiLCIxIiwiMCIsIjAiLCIwIiwiMTAiKQorTVBZX0VOQyhNMl92bWFjMmVzX3Mx LCAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIwIiwiMSIsIjEwIikKK01QWV9FTkMoTTJf dm1hYzJlcywgICAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIxIiwiMCIsIjAiLCIxMCIpCitN UFlfRU5DKE0yX21tYWNoc19zMCwgICAgICAgICIxMDEwIiwieHh4eHgiLCIxIiwiMCIsIjAiLCIw IiwiMTEiKQorTVBZX0VOQyhNMl9tbWFjaHNfczEsICAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIs IjAiLCIwIiwiMSIsIjExIikKK01QWV9FTkMoTTJfbW1hY2hzX3JzMCwgICAgICAgIjEwMTAiLCJ4 eHh4eCIsIjEiLCIxIiwiMCIsIjAiLCIxMSIpCitNUFlfRU5DKE0yX21tYWNoc19yczEsICAgICAg ICIxMDEwIiwieHh4eHgiLCIxIiwiMSIsIjAiLCIxIiwiMTEiKQorTVBZX0VOQyhNMl9tbWFjdWhz X3MwLCAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIxIiwiMCIsIjExIikKK01QWV9FTkMo TTJfbW1hY3Voc19zMSwgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIwIiwiMSIsIjEiLCIxMSIp CitNUFlfRU5DKE0yX21tYWN1aHNfcnMwLCAgICAgICIxMDEwIiwieHh4eHgiLCIxIiwiMSIsIjEi LCIwIiwiMTEiKQorTVBZX0VOQyhNMl9tbWFjdWhzX3JzMSwgICAgICAiMTAxMCIsInh4eHh4Iiwi MSIsIjEiLCIxIiwiMSIsIjExIikKK01QWV9FTkMoTTRfdnJtcHllaF9hY2NfczAsICAgIjEwMTAi LCJ4eHh4eCIsIjEiLCIxIiwiMCIsIjAiLCIxMCIpCitNUFlfRU5DKE00X3ZybXB5ZWhfYWNjX3Mx LCAgICIxMDEwIiwieHh4eHgiLCIxIiwiMSIsIjAiLCIxIiwiMTAiKQorTVBZX0VOQyhNNF92cm1w eW9oX2FjY19zMCwgICAiMTAxMCIsInh4eHh4IiwiMSIsIjEiLCIxIiwiMCIsIjEwIikKK01QWV9F TkMoTTRfdnJtcHlvaF9hY2NfczEsICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIxIiwiMSIsIjEiLCIx MCIpCitNUFlfRU5DKE01X3ZybWFjYnV1LCAgICAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMCIs IjAiLCIxIiwiMDEiKQorTVBZX0VOQyhNNV92cm1hY2JzdSwgICAgICAgICAiMTAxMCIsInh4eHh4 IiwiMCIsIjAiLCIxIiwiMSIsIjAxIikKK01QWV9FTkMoTTVfdmRtYWNic3UsICAgICAgICAgIjEw MTAiLCJ4eHh4eCIsIjAiLCIxIiwiMCIsIjAiLCIwMSIpCisKK01QWV9FTkMoRjJfZGZtcHlsaCwg ICAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIwIiwiMCIsIjAiLCIxMSIpCitNUFlfRU5DKEYy X2RmbXB5aGgsICAgICAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIxIiwiMTEiKQor I2lmZGVmIEFERF9EUF9PUFMKK01QWV9FTkMoRjJfZGZtcHloaCwgICAgICAgICAgIjEwMTAiLCJ4 eHh4eCIsIjAiLCIwIiwiMSIsIjAiLCIxMSIpCitNUFlfRU5DKEYyX2RmZm1hLCAgICAgICAgICAg ICIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIwIiwiMTEiKQorTVBZX0VOQyhGMl9kZmZtcywg ICAgICAgICAgICAiMTAxMCIsInh4eHh4IiwiMCIsIjAiLCIwIiwiMSIsIjExIikKKworTVBZX0VO QyhGMl9kZmZtYV9saWIsICAgICAgICAiMTAxMCIsInh4eHh4IiwiMCIsIjAiLCIxIiwiMCIsIjEx IikKK01QWV9FTkMoRjJfZGZmbXNfbGliLCAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIwIiwi MSIsIjEiLCIxMSIpCitNUFlfRU5DKEYyX2RmZm1hX3NjLCAgICAgICAgICIxMDEwIiwieHh4eHgi LCIwIiwiMSIsIjEiLCIxIiwidXUiKQorI2VuZGlmCisKKworTVBZX0VOQyhNN19kY21weXJ3X2Fj YywgICAgICAiMTAxMCIsInh4eHh4IiwiMCIsIjAiLCIwIiwiMSIsIjEwIikKK01QWV9FTkMoTTdf ZGNtcHlyd2NfYWNjLCAgICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIwIiwiMSIsIjEiLCIxMCIpCitN UFlfRU5DKE03X2RjbXB5aXdfYWNjLCAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMSIsIjEiLCIw IiwiMTAiKQorTVBZX0VOQyhNN19kY21weWl3Y19hY2MsICAgICAiMTAxMCIsInh4eHh4IiwiMSIs IjAiLCIxIiwiMCIsIjEwIikKKworCisKKworLyoKKyovCisKK0RFRl9GSUVMRFJPV19ERVNDMzIo SUNMQVNTX00iIDEwMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzExXSBSZXNlcnZl ZCIpCitNUFlfRU5DKEYyX3NmYWRkLCAgICAgICAgICAgICIxMDExIiwiZGRkZGQiLCIwIiwiMCIs IjAiLCIwIiwiMDAiKQorTVBZX0VOQyhGMl9zZnN1YiwgICAgICAgICAgICAiMTAxMSIsImRkZGRk IiwiMCIsIjAiLCIwIiwiMCIsIjAxIikKK01QWV9FTkMoRjJfc2ZtYXgsICAgICAgICAgICAgIjEw MTEiLCJkZGRkZCIsIjAiLCIwIiwiMCIsIjEiLCIwMCIpCitNUFlfRU5DKEYyX3NmbWluLCAgICAg ICAgICAgICIxMDExIiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIxIiwiMDEiKQorTVBZX0VOQyhGMl9z Zm1weSwgICAgICAgICAgICAiMTAxMSIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMCIsIjAwIikKK01Q WV9FTkMoRjJfc2ZmaXh1cG4sICAgICAgICAgIjEwMTEiLCJkZGRkZCIsIjAiLCIwIiwiMSIsIjEi LCIwMCIpCitNUFlfRU5DKEYyX3NmZml4dXBkLCAgICAgICAgICIxMDExIiwiZGRkZGQiLCIwIiwi MCIsIjEiLCIxIiwiMDEiKQorCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19NIiAxMTAwIC0t LS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMl0gUmQ9KFJzLFJ0KSIpCitERUZfRklFTEQz MihJQ0xBU1NfTSIgICAgICAgICAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tIS0tLS0tIixNY190 SCwiUnQgaXMgSGlnaCIpIC8qUnQgaGlnaCAqLworREVGX0ZJRUxEMzIoSUNMQVNTX00iICAgICAg ICAgMTEwMCAtLS0tLS0tLSBQUC0tLS0tLSAtIS0tLS0tLSIsTWNfc0gsIlJzIGlzIEhpZ2giKSAv KiBScyBoaWdoICovCitTUF9NUFkoTTJfbXB5LCAgICAgICAgICAgICAgICIxMTAwIiwiZGRkZGQi LCIwIiwiMCIsIjAiKQorU1BfTVBZKE0yX21weV9zYXQsICAgICAgICAgICAiMTEwMCIsImRkZGRk IiwiMSIsIjAiLCIwIikKK1NQX01QWShNMl9tcHlfcm5kLCAgICAgICAgICAgIjExMDAiLCJkZGRk ZCIsIjAiLCIxIiwiMCIpCitTUF9NUFkoTTJfbXB5X3NhdF9ybmQsICAgICAgICIxMTAwIiwiZGRk ZGQiLCIxIiwiMSIsIjAiKQorU1BfTVBZKE0yX21weXUsICAgICAgICAgICAgICAiMTEwMCIsImRk ZGRkIiwiMCIsIjAiLCIxIikKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfTSIgMTEwMSAt LS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTNdIFJkPShScyxSdCkiKQorLyogRUpQOiBz YW1lIGFzIG1weWkgTVBZX0VOQyhNMl9tcHl1aSwgICAgICAgICAgICAiMTEwMSIsImRkZGRkIiwi MCIsIjAiLCIxIiwiMCIsIjAwIikgKi8KK01QWV9FTkMoTTJfbXB5aSwgICAgICAgICAgICAgIjEx MDEiLCJkZGRkZCIsIjAiLCIwIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE0yX21weV91cCwgICAg ICAgICAgICIxMTAxIiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9t cHl1X3VwLCAgICAgICAgICAiMTEwMSIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMCIsIjAxIikKK01Q WV9FTkMoTTJfZHBtcHlzc19ybmRfczAsICAgIjExMDEiLCJkZGRkZCIsIjAiLCIxIiwiMCIsIjAi LCIwMSIpCitNUFlfRU5DKE0yX2NtcHlyc19zMCwgICAgICAgICIxMTAxIiwiZGRkZGQiLCIxIiwi MSIsIjAiLCIwIiwiMTAiKQorTVBZX0VOQyhNMl9jbXB5cnNfczEsICAgICAgICAiMTEwMSIsImRk ZGRkIiwiMSIsIjEiLCIwIiwiMSIsIjEwIikKK01QWV9FTkMoTTJfY21weXJzY19zMCwgICAgICAg IjExMDEiLCJkZGRkZCIsIjEiLCIxIiwiMSIsIjAiLCIxMCIpCitNUFlfRU5DKE0yX2NtcHlyc2Nf czEsICAgICAgICIxMTAxIiwiZGRkZGQiLCIxIiwiMSIsIjEiLCIxIiwiMTAiKQorTVBZX0VOQyhN Ml92bXB5MnNfczBwYWNrLCAgICAiMTEwMSIsImRkZGRkIiwiMSIsIjEiLCIwIiwiMCIsIjExIikK K01QWV9FTkMoTTJfdm1weTJzX3MxcGFjaywgICAgIjExMDEiLCJkZGRkZCIsIjEiLCIxIiwiMCIs IjEiLCIxMSIpCitNUFlfRU5DKE0yX2htbXB5aF9yczEsICAgICAgICIxMTAxIiwiZGRkZGQiLCIx IiwiMSIsIjAiLCIxIiwiMDAiKQorTVBZX0VOQyhNMl9obW1weWxfcnMxLCAgICAgICAiMTEwMSIs ImRkZGRkIiwiMSIsIjEiLCIxIiwiMSIsIjAwIikKKworTVBZX0VOQyhNMl9obW1weWhfczEsICAg ICAgICAiMTEwMSIsImRkZGRkIiwiMCIsIjEiLCIwIiwiMSIsIjAwIikKK01QWV9FTkMoTTJfaG1t cHlsX3MxLCAgICAgICAgIjExMDEiLCJkZGRkZCIsIjAiLCIxIiwiMCIsIjEiLCIwMSIpCitNUFlf RU5DKE0yX21weV91cF9zMSwgICAgICAgICIxMTAxIiwiZGRkZGQiLCIwIiwiMSIsIjAiLCIxIiwi MTAiKQorTVBZX0VOQyhNMl9tcHlfdXBfczFfc2F0LCAgICAiMTEwMSIsImRkZGRkIiwiMCIsIjEi LCIxIiwiMSIsIjAwIikKK01QWV9FTkMoTTJfbXB5c3VfdXAsICAgICAgICAgIjExMDEiLCJkZGRk ZCIsIjAiLCIxIiwiMSIsIjAiLCIwMSIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1Nf TSIgMTExMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTRdIFJ4PShScyxSdCkiKQor REVGX0ZJRUxEMzIoSUNMQVNTX00iICAgICAgICAgMTExMCAtLS0tLS0tLSBQUC0tLS0tLSAtLSEt LS0tLSIsTWRfdEgsIlJ0IGlzIEhpZ2giKSAvKlJ0IGhpZ2ggKi8KK0RFRl9GSUVMRDMyKElDTEFT U19NIiAgICAgICAgIDExMTAgLS0tLS0tLS0gUFAtLS0tLS0gLSEtLS0tLS0iLE1kX3NILCJScyBp cyBIaWdoIikgLyogUnMgaGlnaCAqLworU1BfTVBZKE0yX21weXVfYWNjLCAgICAgICAgICAiMTEx MCIsInh4eHh4IiwiMCIsIjAiLCIxIikKK1NQX01QWShNMl9tcHlfYWNjLCAgICAgICAgICAgIjEx MTAiLCJ4eHh4eCIsIjAiLCIwIiwiMCIpCitTUF9NUFkoTTJfbXB5X2FjY19zYXQsICAgICAgICIx MTEwIiwieHh4eHgiLCIxIiwiMCIsIjAiKQorU1BfTVBZKE0yX21weXVfbmFjLCAgICAgICAgICAi MTExMCIsInh4eHh4IiwiMCIsIjEiLCIxIikKK1NQX01QWShNMl9tcHlfbmFjLCAgICAgICAgICAg IjExMTAiLCJ4eHh4eCIsIjAiLCIxIiwiMCIpCitTUF9NUFkoTTJfbXB5X25hY19zYXQsICAgICAg ICIxMTEwIiwieHh4eHgiLCIxIiwiMSIsIjAiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNM QVNTX00iIDExMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzE1XSBSeD0oUnMsUnQp IikKK01QWV9FTkMoTTJfbWFjaSwgICAgICAgICAgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwi MCIsIjAiLCIwMCIpCitNUFlfRU5DKE0yX21uYWNpLCAgICAgICAgICAgICIxMTExIiwieHh4eHgi LCIwIiwiMCIsIjAiLCIxIiwiMDAiKQorTVBZX0VOQyhNMl9hY2NpLCAgICAgICAgICAgICAiMTEx MSIsInh4eHh4IiwiMCIsIjAiLCIwIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfbmFjY2ksICAgICAg ICAgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMCIsIjEiLCIwMSIpCitNUFlfRU5DKE0yX3hv cl94YWNjLCAgICAgICAgICIxMTExIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIxIiwiMTEiKQorTVBZ X0VOQyhNMl9zdWJhY2MsICAgICAgICAgICAiMTExMSIsInh4eHh4IiwiMCIsIjAiLCIwIiwiMCIs IjExIikKKworTVBZX0VOQyhNNF9tYWNfdXBfczFfc2F0LCAgICAiMTExMSIsInh4eHh4IiwiMCIs IjEiLCIxIiwiMCIsIjAwIikKK01QWV9FTkMoTTRfbmFjX3VwX3MxX3NhdCwgICAgIjExMTEiLCJ4 eHh4eCIsIjAiLCIxIiwiMSIsIjAiLCIwMSIpCisKK01QWV9FTkMoTTRfYW5kX2FuZCwgICAgICAg ICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMSIsIjAiLCIwMCIpCitNUFlfRU5DKE00X2FuZF9v ciwgICAgICAgICAgICIxMTExIiwieHh4eHgiLCIwIiwiMCIsIjEiLCIwIiwiMDEiKQorTVBZX0VO QyhNNF9hbmRfeG9yLCAgICAgICAgICAiMTExMSIsInh4eHh4IiwiMCIsIjAiLCIxIiwiMCIsIjEw IikKK01QWV9FTkMoTTRfb3JfYW5kLCAgICAgICAgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwi MSIsIjAiLCIxMSIpCitNUFlfRU5DKE00X29yX29yLCAgICAgICAgICAgICIxMTExIiwieHh4eHgi LCIwIiwiMCIsIjEiLCIxIiwiMDAiKQorTVBZX0VOQyhNNF9vcl94b3IsICAgICAgICAgICAiMTEx MSIsInh4eHh4IiwiMCIsIjAiLCIxIiwiMSIsIjAxIikKK01QWV9FTkMoTTRfeG9yX2FuZCwgICAg ICAgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMSIsIjEiLCIxMCIpCitNUFlfRU5DKE00X3hv cl9vciwgICAgICAgICAgICIxMTExIiwieHh4eHgiLCIwIiwiMCIsIjEiLCIxIiwiMTEiKQorCitN UFlfRU5DKE00X29yX2FuZG4sICAgICAgICAgICIxMTExIiwieHh4eHgiLCIwIiwiMSIsIjAiLCIw IiwiMDAiKQorTVBZX0VOQyhNNF9hbmRfYW5kbiwgICAgICAgICAiMTExMSIsInh4eHh4IiwiMCIs IjEiLCIwIiwiMCIsIjAxIikKK01QWV9FTkMoTTRfeG9yX2FuZG4sICAgICAgICAgIjExMTEiLCJ4 eHh4eCIsIjAiLCIxIiwiMCIsIjAiLCIxMCIpCisKK01QWV9FTkMoRjJfc2ZmbWEsICAgICAgICAg ICAgIjExMTEiLCJ4eHh4eCIsIjEiLCIwIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKEYyX3NmZm1z LCAgICAgICAgICAgICIxMTExIiwieHh4eHgiLCIxIiwiMCIsIjAiLCIwIiwiMDEiKQorCitNUFlf RU5DKEYyX3NmZm1hX2xpYiwgICAgICAgICIxMTExIiwieHh4eHgiLCIxIiwiMCIsIjAiLCIwIiwi MTAiKQorTVBZX0VOQyhGMl9zZmZtc19saWIsICAgICAgICAiMTExMSIsInh4eHh4IiwiMSIsIjAi LCIwIiwiMCIsIjExIikKKworTVBZX0VOQyhGMl9zZmZtYV9zYywgICAgICAgICAiMTExMSIsInh4 eHh4IiwiMSIsIjEiLCIxIiwiMCIsInV1IikKKworCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgQUxVMzJfMm9wICAgICAgICAgKi8K Ky8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0RFRl9DTEFT UzMyKElDTEFTU19BRERJIiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixBTFUzMl9B RERJKQorCitERUZfQ0xBU1MzMihJQ0xBU1NfQUxVMm9wIiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0t IC0tLS0tLS0tIixBTFUzMl8yb3ApCitERUZfRklFTEQzMihJQ0xBU1NfQUxVMm9wIiAhLS0tIC0t LS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixBMl9ScywiTm8gUnMgcmVhZCIpCitERUZfRklFTEQz MihJQ0xBU1NfQUxVMm9wIiAtISEhIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixBMl9NYWpP cCwiTWFqb3IgT3Bjb2RlIikKK0RFRl9GSUVMRDMyKElDTEFTU19BTFUyb3AiIC0tLS0gISEhLS0t LS0gUFAtLS0tLS0gLS0tLS0tLS0iLEEyX01pbk9wLCJNaW5vciBPcGNvZGUiKQorCitERUZfRklF TEQzMihJQ0xBU1NfQUxVM29wIiAtISEhIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixBM19N YWpPcCwiTWFqb3IgT3Bjb2RlIikKK0RFRl9GSUVMRDMyKElDTEFTU19BTFUzb3AiIC0tLS0gISEh LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEEzX01pbk9wLCJNaW5vciBPcGNvZGUiKQorREVGX0NM QVNTMzIoSUNMQVNTX0FMVTNvcCIgLS0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsQUxV MzJfM29wKQorREVGX0ZJRUxEMzIoSUNMQVNTX0FMVTNvcCIgIS0tLSAtLS0tLS0tLSBQUC0tLS0t LSAtLS0tLS0tLSIsQTNfUCwiUHJlZGljYXRlZCIpCitERUZfRklFTEQzMihJQ0xBU1NfQUxVM29w IiAtLS0tIC0tLS0tLS0tIFBQIS0tLS0tIC0tLS0tLS0tIixBM19ETiwiRG90LW5ldyIpCitERUZf RklFTEQzMihJQ0xBU1NfQUxVM29wIiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tICEtLS0tLS0tIixB M19QUywiUHJlZGljYXRlIHNlbnNlIikKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKi8K Ky8qIE91ciBnb29kIGZyaWVuZCBhZGRpICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKiov CitERUZfRU5DMzIoQTJfYWRkaSwgICAgSUNMQVNTX0FEREkiICBpaWlpIGlpaXNzc3NzIFBQaWlp aWlpIGlpaWRkZGRkIikKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8q IFN0YW5kYXJkIEFMVTMyIGluc25zICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisKKyNkZWZpbmUgQUxVMzJfSVJSX0VOQyhUQUcsTUFKNCxNSU4zLFNNT0QxLFZN SU4zLERTVENIQVJTKVwKK0RFRl9FTkMzMihUQUcsIElDTEFTU19BTFUyb3AiICJNQUo0IiAgIk1J TjMic3Nzc3MgIFBQIlNNT0QxImlpaWlpICJWTUlOMyBEU1RDSEFSUykKKworI2RlZmluZSBBTFUz Ml9SUl9FTkMoVEFHLE1BSjQsTUlOMyxTTU9EMSxWTUlOMyxEU1RDSEFSUylcCitERUZfRU5DMzIo VEFHLCBJQ0xBU1NfQUxVMm9wIiAiTUFKNCIgICJNSU4zInNzc3NzICBQUCJTTU9EMSItLS0tLSAi Vk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgQ09OREEzMl9SUl9FTkMoVEFHLE1BSjQsTUlOMyxT TU9EMSxWTUlOMyxEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHIyN0LCAgIElDTEFTU19BTFUyb3Ai ICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQIlNNT0QxIi0wMHV1ICJWTUlOMyBEU1RDSEFSUylcCitE RUZfRU5DMzIoVEFHIyNmLCAgIElDTEFTU19BTFUyb3AiICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQ IlNNT0QxIi0xMHV1ICJWTUlOMyBEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHIyN0bmV3LElDTEFT U19BTFUyb3AiICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQIlNNT0QxIi0wMXV1ICJWTUlOMyBEU1RD SEFSUylcCitERUZfRU5DMzIoVEFHIyNmbmV3LElDTEFTU19BTFUyb3AiICJNQUo0IiAgIk1JTjMi c3Nzc3MgIFBQIlNNT0QxIi0xMXV1ICJWTUlOMyBEU1RDSEFSUykKKworCitERUZfRklFTERST1df REVTQzMyKCAgICBJQ0xBU1NfQUxVMm9wIiAwMDAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0t IiwiWyMwXSAoUHUpIFJkPShScykiKQorREVGX0ZJRUxEMzIoICAgICAgICAgICAgSUNMQVNTX0FM VTJvcCIgMDAwMCAtLS0tLS0tLSBQUCEtLS0tLSAtLS0tLS0tLSIsQTMyYV9DLCJDb25kaXRpb25h bCIpCitERUZfRklFTEQzMiggICAgICAgICAgICBJQ0xBU1NfQUxVMm9wIiAwMDAwIC0tLS0tLS0t IFBQLS0hLS0tIC0tLS0tLS0tIixBMzJhX1MsIlByZWRpY2F0ZSBzZW5zZSIpCitERUZfRklFTEQz MiggICAgICAgICAgICBJQ0xBU1NfQUxVMm9wIiAwMDAwIC0tLS0tLS0tIFBQLS0tIS0tIC0tLS0t LS0tIixBMzJhX2RuLCJEb3QtbmV3IikKKworQUxVMzJfUlJfRU5DKEEyX2FzbGgsICAgICAgICAg ICAgICAgICAiMDAwMCIsIjAwMCIsIjAiLCItLS0iLCJkZGRkZCIpCitBTFUzMl9SUl9FTkMoQTJf YXNyaCwgICAgICAgICAgICAgICAgICIwMDAwIiwiMDAxIiwiMCIsIi0tLSIsImRkZGRkIikKK0FM VTMyX1JSX0VOQyhBMl90ZnIsICAgICAgICAgICAgICAgICAgIjAwMDAiLCIwMTEiLCIwIiwiLS0t IiwiZGRkZGQiKQorQUxVMzJfUlJfRU5DKEEyX3N4dGIsICAgICAgICAgICAgICAgICAiMDAwMCIs IjEwMSIsIjAiLCItLS0iLCJkZGRkZCIpCitBTFUzMl9SUl9FTkMoQTJfenh0aCwgICAgICAgICAg ICAgICAgICIwMDAwIiwiMTEwIiwiMCIsIi0tLSIsImRkZGRkIikKK0FMVTMyX1JSX0VOQyhBMl9z eHRoLCAgICAgICAgICAgICAgICAgIjAwMDAiLCIxMTEiLCIwIiwiLS0tIiwiZGRkZGQiKQorCitD T05EQTMyX1JSX0VOQyhBNF9wYXNsaCwgICAgICAgICAgICAgICAiMDAwMCIsIjAwMCIsIjEiLCIt LS0iLCJkZGRkZCIpCitDT05EQTMyX1JSX0VOQyhBNF9wYXNyaCwgICAgICAgICAgICAgICAiMDAw MCIsIjAwMSIsIjEiLCItLS0iLCJkZGRkZCIpCitDT05EQTMyX1JSX0VOQyhBNF9wenh0YiwgICAg ICAgICAgICAgICAiMDAwMCIsIjEwMCIsIjEiLCItLS0iLCJkZGRkZCIpCitDT05EQTMyX1JSX0VO QyhBNF9wc3h0YiwgICAgICAgICAgICAgICAiMDAwMCIsIjEwMSIsIjEiLCItLS0iLCJkZGRkZCIp CitDT05EQTMyX1JSX0VOQyhBNF9wenh0aCwgICAgICAgICAgICAgICAiMDAwMCIsIjExMCIsIjEi LCItLS0iLCJkZGRkZCIpCitDT05EQTMyX1JSX0VOQyhBNF9wc3h0aCwgICAgICAgICAgICAgICAi MDAwMCIsIjExMSIsIjEiLCItLS0iLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMigg ICAgSUNMQVNTX0FMVTJvcCIgMDAwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMV0g Ung9KCN1MTYpIikKK0RFRl9FTkMzMihBMl90ZnJpbCwgICAgIElDTEFTU19BTFUyb3AiIDAwMDEg aWkxeHh4eHggUFBpaWlpaWkgaWlpaWlpaWkiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoICAg IElDTEFTU19BTFUyb3AiIDAwMTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzJdIFJ4 PSgjdTE2KSIpCitERUZfRU5DMzIoQTJfdGZyaWgsICAgICBJQ0xBU1NfQUxVMm9wIiAwMDEwIGlp MXh4eHh4IFBQaWlpaWlpIGlpaWlpaWlpIikKKworCitERUZfRklFTERST1dfREVTQzMyKCAgICBJ Q0xBU1NfQUxVMm9wIiAwMDExIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMzXSBSZD0o UHUsUnMsI3M4KSIpCitERUZfRU5DMzIoQzJfbXV4aXIsICAgICBJQ0xBU1NfQUxVMm9wIiAwMDEx IDB1dXNzc3NzIFBQMGlpaWlpIGlpaWRkZGRkIikKK0RFRl9FTkMzMihDMl9tdXhyaSwgICAgIElD TEFTU19BTFUyb3AiIDAwMTEgMXV1c3Nzc3MgUFAwaWlpaWkgaWlpZGRkZGQiKQorCitERUZfRU5D MzIoQTRfY29tYmluZXJpLCBJQ0xBU1NfQUxVMm9wIiAwMDExIC0wMHNzc3NzIFBQMWlpaWlpIGlp aWRkZGRkIikgLyogUmRkID0gKFJzLCNzOCkgKi8KK0RFRl9FTkMzMihBNF9jb21iaW5laXIsIElD TEFTU19BTFUyb3AiIDAwMTEgLTAxc3Nzc3MgUFAxaWlpaWkgaWlpZGRkZGQiKSAvKiBSZGQgPSAo UnMsI3M4KSAqLworREVGX0VOQzMyKEE0X3JjbXBlcWksICAgSUNMQVNTX0FMVTJvcCIgMDAxMSAt MTBzc3NzcyBQUDFpaWlpaSBpaWlkZGRkZCIpIC8qIFJkID0gKFJzLCNzOCkgKi8KK0RFRl9FTkMz MihBNF9yY21wbmVxaSwgIElDTEFTU19BTFUyb3AiIDAwMTEgLTExc3Nzc3MgUFAxaWlpaWkgaWlp ZGRkZGQiKSAvKiBSZCA9IChScywjczgpICovCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAg SUNMQVNTX0FMVTJvcCIgMDEwMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjNF0gKFB1 KSBSZD0oUnMsI3M4KSIpCitERUZfRklFTEQzMiggICAgICAgICAgICBJQ0xBU1NfQUxVMm9wIiAw MTAwIC0tLS0tLS0tIFBQIS0tLS0tIC0tLS0tLS0tIixBMzJhX0ROLCJEb3QtbmV3IikKK0RFRl9G SUVMRDMyKCAgICAgICAgICAgIElDTEFTU19BTFUyb3AiIDAxMDAgIS0tLS0tLS0gUFAtLS0tLS0g LS0tLS0tLS0iLEEzMmFfUFMsIlByZWRpY2F0ZSBzZW5zZSIpCitERUZfRU5DMzIoQTJfcGFkZGl0 LCAgICBJQ0xBU1NfQUxVMm9wIiAwMTAwIDB1dXNzc3NzIFBQMGlpaWlpIGlpaWRkZGRkIikKK0RF Rl9FTkMzMihBMl9wYWRkaXRuZXcsIElDTEFTU19BTFUyb3AiIDAxMDAgMHV1c3Nzc3MgUFAxaWlp aWkgaWlpZGRkZGQiKQorREVGX0VOQzMyKEEyX3BhZGRpZiwgICAgSUNMQVNTX0FMVTJvcCIgMDEw MCAxdXVzc3NzcyBQUDBpaWlpaSBpaWlkZGRkZCIpCitERUZfRU5DMzIoQTJfcGFkZGlmbmV3LCBJ Q0xBU1NfQUxVMm9wIiAwMTAwIDF1dXNzc3NzIFBQMWlpaWlpIGlpaWRkZGRkIikKKworCitERUZf RklFTERST1dfREVTQzMyKCAgICAgSUNMQVNTX0FMVTJvcCIgMDEwMSAtLS0tLS0tLSBQUC0tLS0t LSAtLS0tLS0tLSIsIlsjNV0gUGQ9KFJzLCNzMTApIikKK0RFRl9FTkMzMihDMl9jbXBlcWksICAg ICBJQ0xBU1NfQUxVMm9wIiAwMTAxIDAwaXNzc3NzIFBQaWlpaWlpIGlpaTAwMGRkIikKK0RFRl9F TkMzMihDMl9jbXBndGksICAgICBJQ0xBU1NfQUxVMm9wIiAwMTAxIDAxaXNzc3NzIFBQaWlpaWlp IGlpaTAwMGRkIikKK0RFRl9FTkMzMihDMl9jbXBndHVpLCAgICBJQ0xBU1NfQUxVMm9wIiAwMTAx IDEwMHNzc3NzIFBQaWlpaWlpIGlpaTAwMGRkIikKKworREVGX0VOQzMyKEM0X2NtcG5lcWksICAg IElDTEFTU19BTFUyb3AiIDAxMDEgMDBpc3Nzc3MgUFBpaWlpaWkgaWlpMTAwZGQiKQorREVGX0VO QzMyKEM0X2NtcGx0ZWksICAgIElDTEFTU19BTFUyb3AiIDAxMDEgMDFpc3Nzc3MgUFBpaWlpaWkg aWlpMTAwZGQiKQorREVGX0VOQzMyKEM0X2NtcGx0ZXVpLCAgIElDTEFTU19BTFUyb3AiIDAxMDEg MTAwc3Nzc3MgUFBpaWlpaWkgaWlpMTAwZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoICAg IElDTEFTU19BTFUyb3AiIDAxMTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzZdIFJk PShScywjczEwKSIpCitBTFUzMl9JUlJfRU5DKEEyX2FuZGlyLCAgICAgICAgICAgICAgICIwMTEw IiwiMDBpIiwiaSIsImlpaSIsImRkZGRkIikKK0FMVTMyX0lSUl9FTkMoQTJfc3VicmksICAgICAg ICAgICAgICAgIjAxMTAiLCIwMWkiLCJpIiwiaWlpIiwiZGRkZGQiKQorQUxVMzJfSVJSX0VOQyhB Ml9vcmlyLCAgICAgICAgICAgICAgICAiMDExMCIsIjEwaSIsImkiLCJpaWkiLCJkZGRkZCIpCisK KworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0FMVTJvcCIgMDExMSAtLS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsIlsjN10gUmVzZXJ2ZWQiKQorCisKK0RFRl9GSUVMRFJPV19ERVND MzIoICAgIElDTEFTU19BTFUyb3AiIDEwMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJb IzhdIFJkPSNzMTYiKQorREVGX0VOQzMyKEEyX3RmcnNpLCAgICAgSUNMQVNTX0FMVTJvcCIgMTAw MCBpaS1paWlpaSBQUGlpaWlpaSBpaWlkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMigg ICAgSUNMQVNTX0FMVTJvcCIgMTAwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjOV0g UmVzZXJ2ZWQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoICAgIElDTEFTU19BTFUyb3AiIDEw MS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEwLCMxMV0gUmQ9KFB1LCNzOCwjUzgp IikKK0RFRl9FTkMzMihDMl9tdXhpaSwgICAgIElDTEFTU19BTFUyb3AiIDEwMXUgdUlJSUlJSUkg UFBJaWlpaWkgaWlpZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoICAgIElDTEFTU19B TFUyb3AiIDExMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEyXSBSZGQ9KCNzOCwj UzgpIikKK0RFRl9FTkMzMihBMl9jb21iaW5laWksIElDTEFTU19BTFUyb3AiIDExMDAgMElJSUlJ SUkgUFBJaWlpaWkgaWlpZGRkZGQiKQorREVGX0VOQzMyKEE0X2NvbWJpbmVpaSwgSUNMQVNTX0FM VTJvcCIgMTEwMCAxLS1JSUlJSSBQUElpaWlpaSBpaWlkZGRkZCIpCisKKworREVGX0ZJRUxEUk9X X0RFU0MzMiggICAgSUNMQVNTX0FMVTJvcCIgMTEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0t LSIsIlsjMTNdIFJlc2VydmVkIikKKworCitERUZfRklFTERST1dfREVTQzMyKCAgICBJQ0xBU1Nf QUxVMm9wIiAxMTEwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxNF0gKFB1KSBSZD0j czEyIikKK0RFRl9GSUVMRDMyKCAgICAgICAgICAgIElDTEFTU19BTFUyb3AiIDExMTAgLS0tMC0t LS0gUFAhLS0tLS0gLS0tLS0tLS0iLEEzMmNfRE4sIkRvdC1uZXciKQorREVGX0ZJRUxEMzIoICAg ICAgICAgICAgSUNMQVNTX0FMVTJvcCIgMTExMCAhLS0wLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIs QTMyY19QUywiUHJlZGljYXRlIHNlbnNlIikKK0RFRl9FTkMzMihDMl9jbW92ZW5ld2l0LElDTEFT U19BTFUyb3AiIDExMTAgMHV1MGlpaWkgUFAxaWlpaWkgaWlpZGRkZGQiKQorREVGX0VOQzMyKEMy X2Ntb3ZlbmV3aWYsSUNMQVNTX0FMVTJvcCIgMTExMCAxdXUwaWlpaSBQUDFpaWlpaSBpaWlkZGRk ZCIpCitERUZfRU5DMzIoQzJfY21vdmVpdCwgICBJQ0xBU1NfQUxVMm9wIiAxMTEwIDB1dTBpaWlp IFBQMGlpaWlpIGlpaWRkZGRkIikKK0RFRl9FTkMzMihDMl9jbW92ZWlmLCAgIElDTEFTU19BTFUy b3AiIDExMTAgMXV1MGlpaWkgUFAwaWlpaWkgaWlpZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19E RVNDMzIoICAgIElDTEFTU19BTFUyb3AiIDExMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0i LCJbIzE1XSBub3AiKQorREVGX0VOQzMyKEEyX25vcCwgICAgICAgSUNMQVNTX0FMVTJvcCIgMTEx MSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIpCisKKworCisKKworCisKKworCisKKworCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICBBTFUz Ml8zb3AgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq LworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKworCisjZGVmaW5lIFYyQTMyX1JSUl9FTkMoVEFHLE1BSjQsTUlOMyxT TU9EMSxWTUlOMyxEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHLCBJQ0xBU1NfQUxVM29wIiAiTUFK NCIgICJNSU4zInNzc3NzICBQUCJTTU9EMSJ0dHR0dCAiVk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZp bmUgVjJBMzJfUlJfRU5DKFRBRyxNQUo0LE1JTjMsU01PRDEsVk1JTjMsRFNUQ0hBUlMpXAorREVG X0VOQzMyKFRBRywgSUNMQVNTX0FMVTNvcCIgIk1BSjQiICAiTUlOMyJzc3NzcyAgUFAiU01PRDEi LS0tLS0gIlZNSU4zIERTVENIQVJTKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FM VTNvcCIgIDAwMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzBdIFJlc2VydmVkIikK KworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19BTFUzb3AiICAwMDAxIC0tLS0tLS0tIFBQ LS0tLS0tIC0tLS0tLS0tIiwiWyMxXSBSZD0oUnMsUnQpIikKK1YyQTMyX1JSUl9FTkMoQTJfYW5k LCAgICAgICAgICAgICAgIjAwMDEiLCIwMDAiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJS X0VOQyhBMl9vciwgICAgICAgICAgICAgICAiMDAwMSIsIjAwMSIsIi0iLCItLS0iLCJkZGRkZCIp CitWMkEzMl9SUlJfRU5DKEEyX3hvciwgICAgICAgICAgICAgICIwMDAxIiwiMDExIiwiLSIsIi0t LSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTRfYW5kbiwgICAgICAgICAgICAgIjAwMDEiLCIx MDAiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBNF9vcm4sICAgICAgICAgICAg ICAiMDAwMSIsIjEwMSIsIi0iLCItLS0iLCJkZGRkZCIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIo SUNMQVNTX0FMVTNvcCIgIDAwMTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzJdIFBk PShScyxSdCkiKQorVjJBMzJfUlJSX0VOQyhDMl9jbXBlcSwgICAgICAgICAgICAiMDAxMCIsIi0w MCIsIi0iLCItLS0iLCIwMDBkZCIpCitWMkEzMl9SUlJfRU5DKEMyX2NtcGd0LCAgICAgICAgICAg ICIwMDEwIiwiLTEwIiwiLSIsIi0tLSIsIjAwMGRkIikKK1YyQTMyX1JSUl9FTkMoQzJfY21wZ3R1 LCAgICAgICAgICAgIjAwMTAiLCItMTEiLCItIiwiLS0tIiwiMDAwZGQiKQorCitWMkEzMl9SUlJf RU5DKEM0X2NtcG5lcSwgICAgICAgICAgICIwMDEwIiwiLTAwIiwiLSIsIi0tLSIsIjEwMGRkIikK K1YyQTMyX1JSUl9FTkMoQzRfY21wbHRlLCAgICAgICAgICAgIjAwMTAiLCItMTAiLCItIiwiLS0t IiwiMTAwZGQiKQorVjJBMzJfUlJSX0VOQyhDNF9jbXBsdGV1LCAgICAgICAgICAiMDAxMCIsIi0x MSIsIi0iLCItLS0iLCIxMDBkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxV M29wIiAgMDAxMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjM10gUmQ9KFJzLFJ0KSIp CitWMkEzMl9SUlJfRU5DKEEyX2FkZCwgICAgICAgICAgICAgICIwMDExIiwiMDAwIiwiLSIsIi0t LSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfc3ViLCAgICAgICAgICAgICAgIjAwMTEiLCIw MDEiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9jb21iaW5lX2hoLCAgICAg ICAiMDAxMSIsIjEwMCIsIi0iLCItLS0iLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX2NvbWJp bmVfaGwsICAgICAgICIwMDExIiwiMTAxIiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9F TkMoQTJfY29tYmluZV9saCwgICAgICAgIjAwMTEiLCIxMTAiLCItIiwiLS0tIiwiZGRkZGQiKQor VjJBMzJfUlJSX0VOQyhBMl9jb21iaW5lX2xsLCAgICAgICAiMDAxMSIsIjExMSIsIi0iLCItLS0i LCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEE0X3JjbXBlcSwgICAgICAgICAgICIwMDExIiwiMDEw IiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTRfcmNtcG5lcSwgICAgICAgICAg IjAwMTEiLCIwMTEiLCItIiwiLS0tIiwiZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIo SUNMQVNTX0FMVTNvcCIgIDAxMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzRdIFJk PShQdSxScyxSdCkiKQorVjJBMzJfUlJSX0VOQyhDMl9tdXgsICAgICAgICAgICAgICAiMDEwMCIs Ii0tLSIsIi0iLCItdXUiLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1Nf QUxVM29wIiAgMDEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjNV0gUmRkPShScyxS dCkiKQorVjJBMzJfUlJSX0VOQyhBMl9jb21iaW5ldywgICAgICAgICAiMDEwMSIsIjAtLSIsIi0i LCItLS0iLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKFMyX3BhY2tobCwgICAgICAgICAgICIwMTAx IiwiMS0tIiwiLSIsIi0tLSIsImRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFT U19BTFUzb3AiICAwMTEwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM2XSBSZD0oUnMs UnQpIikKK1YyQTMyX1JSUl9FTkMoQTJfc3ZhZGRoLCAgICAgICAgICAgIjAxMTAiLCIwMDAiLCIt IiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9zdmFkZGhzLCAgICAgICAgICAiMDEx MCIsIjAwMSIsIi0iLCItLS0iLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3N2YWRkdWhzLCAg ICAgICAgICIwMTEwIiwiMDExIiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJf c3ZzdWJoLCAgICAgICAgICAgIjAxMTAiLCIxMDAiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJf UlJSX0VOQyhBMl9zdnN1YmhzLCAgICAgICAgICAiMDExMCIsIjEwMSIsIi0iLCItLS0iLCJkZGRk ZCIpCitWMkEzMl9SUlJfRU5DKEEyX3N2c3VidWhzLCAgICAgICAgICIwMTEwIiwiMTExIiwiLSIs Ii0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfYWRkc2F0LCAgICAgICAgICAgIjAxMTAi LCIwMTAiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9zdWJzYXQsICAgICAg ICAgICAiMDExMCIsIjExMCIsIi0iLCItLS0iLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RF U0MzMihJQ0xBU1NfQUxVM29wIiAgMDExMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsj N10gUmQ9KFJzLFJ0KSIpCitWMkEzMl9SUlJfRU5DKEEyX3N2YXZnaCwgICAgICAgICAgICIwMTEx IiwiLTAwIiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfc3ZhdmdocywgICAg ICAgICAgIjAxMTEiLCItMDEiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9z dm5hdmdoLCAgICAgICAgICAiMDExMSIsIi0xMSIsIi0iLCItLS0iLCJkZGRkZCIpCisKKworREVG X0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVM29wIiAgMTAwMCAtLS0tLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsIlsjOF0gUmVzZXJ2ZWQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNT X0FMVTNvcCIgIDEwMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzldIChQdSkgUmQ9 KFJzLFJ0KSIpCitWMkEzMl9SUlJfRU5DKEEyX3BhbmR0LCAgICAgICAgICAgICIxMDAxIiwiLTAw IiwiMCIsIjB1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfcGFuZHRuZXcsICAgICAgICAg IjEwMDEiLCItMDAiLCIxIiwiMHV1IiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9wYW5kZiwg ICAgICAgICAgICAiMTAwMSIsIi0wMCIsIjAiLCIxdXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5D KEEyX3BhbmRmbmV3LCAgICAgICAgICIxMDAxIiwiLTAwIiwiMSIsIjF1dSIsImRkZGRkIikKK1Yy QTMyX1JSUl9FTkMoQTJfcG9ydCwgICAgICAgICAgICAgIjEwMDEiLCItMDEiLCIwIiwiMHV1Iiwi ZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9wb3J0bmV3LCAgICAgICAgICAiMTAwMSIsIi0wMSIs IjEiLCIwdXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3BvcmYsICAgICAgICAgICAgICIx MDAxIiwiLTAxIiwiMCIsIjF1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfcG9yZm5ldywg ICAgICAgICAgIjEwMDEiLCItMDEiLCIxIiwiMXV1IiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhB Ml9weG9ydCwgICAgICAgICAgICAiMTAwMSIsIi0xMSIsIjAiLCIwdXUiLCJkZGRkZCIpCitWMkEz Ml9SUlJfRU5DKEEyX3B4b3J0bmV3LCAgICAgICAgICIxMDAxIiwiLTExIiwiMSIsIjB1dSIsImRk ZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfcHhvcmYsICAgICAgICAgICAgIjEwMDEiLCItMTEiLCIw IiwiMXV1IiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9weG9yZm5ldywgICAgICAgICAiMTAw MSIsIi0xMSIsIjEiLCIxdXUiLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xB U1NfQUxVM29wIiAgMTAxMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTBdIFJlc2Vy dmVkIikKKworCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTNvcCIgIDEwMTEgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzExXSAoUHUpIFJkPShScyxSdCkiKQorVjJBMzJf UlJSX0VOQyhBMl9wYWRkdCwgICAgICAgICAgICAiMTAxMSIsIjAtMCIsIjAiLCIwdXUiLCJkZGRk ZCIpCitWMkEzMl9SUlJfRU5DKEEyX3BhZGR0bmV3LCAgICAgICAgICIxMDExIiwiMC0wIiwiMSIs IjB1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfcGFkZGYsICAgICAgICAgICAgIjEwMTEi LCIwLTAiLCIwIiwiMXV1IiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9wYWRkZm5ldywgICAg ICAgICAiMTAxMSIsIjAtMCIsIjEiLCIxdXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3Bz dWJ0LCAgICAgICAgICAgICIxMDExIiwiMC0xIiwiMCIsIjB1dSIsImRkZGRkIikKK1YyQTMyX1JS Ul9FTkMoQTJfcHN1YnRuZXcsICAgICAgICAgIjEwMTEiLCIwLTEiLCIxIiwiMHV1IiwiZGRkZGQi KQorVjJBMzJfUlJSX0VOQyhBMl9wc3ViZiwgICAgICAgICAgICAiMTAxMSIsIjAtMSIsIjAiLCIx dXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3BzdWJmbmV3LCAgICAgICAgICIxMDExIiwi MC0xIiwiMSIsIjF1dSIsImRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19B TFUzb3AiICAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMl0gUmVzZXJ2ZWQi KQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTNvcCIgIDExMDEgLS0tLS0tLS0g UFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEzXSAoUHUpIFJkZD0oUnMsUnQpIikKK1YyQTMyX1JSUl9F TkMoQzJfY2NvbWJpbmV3bmV3dCwgICAgIjExMDEiLCIwMDAiLCIxIiwiMHV1IiwiZGRkZGQiKQor VjJBMzJfUlJSX0VOQyhDMl9jY29tYmluZXduZXdmLCAgICAiMTEwMSIsIjAwMCIsIjEiLCIxdXUi LCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEMyX2Njb21iaW5ld3QsICAgICAgICIxMTAxIiwiMDAw IiwiMCIsIjB1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQzJfY2NvbWJpbmV3ZiwgICAgICAg IjExMDEiLCIwMDAiLCIwIiwiMXV1IiwiZGRkZGQiKQorCisKKworCisKKworREVGX0ZJRUxEUk9X X0RFU0MzMihJQ0xBU1NfQUxVM29wIiAgMTExMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIs IlsjMTRdIFJlc2VydmVkIikKKworCisKKworCisKKworCisKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgIFMgICAgICAgICAgICAgICAgICAgICAg ICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitE RUZfQ0xBU1MzMihJQ0xBU1NfUzJvcCIgLS0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIs U18yb3ApCitERUZfRklFTEQzMihJQ0xBU1NfUzJvcCIgISEhISAtLS0tLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsU1RZUEVCX1JlZ1R5cGUsIlJlZ2lzdGVyIFR5cGUiKQorREVGX0ZJRUxEMzIoSUNM QVNTX1Myb3AiIC0tLS0gISEtLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFMyX01hak9wLCJNYWpv ciBPcGNvZGUiKQorREVGX0ZJRUxEMzIoSUNMQVNTX1Myb3AiIC0tLS0gLS0tLS0tLS0gUFAtLS0t LS0gISEhLS0tLS0iLFMyX01pbk9wLCJNaW5vciBPcGNvZGUiKQorCitERUZfQ0xBU1MzMihJQ0xB U1NfUzNvcCIgLS0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsU18zb3ApCitERUZfRklF TEQzMihJQ0xBU1NfUzNvcCIgISEhISAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsU1RZUEVB X1JlZ1R5cGUsIlJlZ2lzdGVyIFR5cGUiKQorREVGX0ZJRUxEMzIoSUNMQVNTX1Mzb3AiIC0tLS0g ISEtLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFMzX01haiwiTWFqb3IgT3Bjb2RlIikKK0RFRl9G SUVMRDMyKElDTEFTU19TM29wIiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tICEhLS0tLS0tIixTM19N aW4sIk1pbm9yIE9wY29kZSIpCisKKworI2RlZmluZSBTSF9SUlJfRU5DKFRBRyxNQUo0LE1JTjMs U01PRDEsVk1JTjMsRFNUQ0hBUlMpIFwKK0RFRl9FTkMzMihUQUcsSUNMQVNTX1Mzb3AiICJNQUo0 IiAgIk1JTjMic3Nzc3MgIFBQIlNNT0QxInR0dHR0ICJWTUlOMyBEU1RDSEFSUykKKworI2RlZmlu ZSBTSF9SUlJpRU5DKFRBRyxNQUo0LE1JTjMsU01PRDEsVk1JTjMsRFNUQ0hBUlMpIFwKK0RFRl9F TkMzMihUQUcsSUNMQVNTX1Mzb3AiICJNQUo0IiAgIk1JTjMiaWlpaWkgIFBQIlNNT0QxInR0dHR0 ICJWTUlOMyBEU1RDSEFSUykKKworI2RlZmluZSBTSF9SUlJfRU5DWChUQUcsTUFKNCxNSU4zLFNN T0QxLFZNSU4zLERTVENIQVJTKSBcCitERUZfRU5DMzIoVEFHLElDTEFTU19TM29wIiAiTUFKNCIg ICJNSU4zInNzc3NzICBQUCJTTU9EMSJ4eHh4eCAiVk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUg U0gzX1JSX0VOQyhUQUcsTUFKNCxNSU4zLFNNT0QxLFZNSU4zLERTVENIQVJTKSBcCitERUZfRU5D MzIoVEFHLElDTEFTU19TM29wIiAiTUFKNCIgICJNSU4zInNzc3NzICBQUCJTTU9EMSItLS0tLSAi Vk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgU0hfUFBQX0VOQyhUQUcsTUFKNCxNSU4zLFNNT0Qx LFZNSU4zLERTVENIQVJTKSBcCitERUZfRU5DMzIoVEFHLElDTEFTU19TM29wIiAiTUFKNCIgICJN SU4zIi0tLXNzICBQUCJTTU9EMSItLS10dCAiVk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgU0gy X1JSX0VOQyhUQUcsTUFKNCxNSU4zLFNNT0QxLFZNSU4zLERTVENIQVJTKSBcCitERUZfRU5DMzIo VEFHLElDTEFTU19TMm9wIiAiTUFKNCIgICJNSU4zInNzc3NzICBQUCJTTU9EMSItLS0tLSAiVk1J TjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgU0gyX1BQUF9FTkMoVEFHLE1BSjQsTUlOMyxTTU9EMSxW TUlOMyxEU1RDSEFSUykgXAorREVGX0VOQzMyKFRBRyxJQ0xBU1NfUzJvcCIgIk1BSjQiICAiTUlO MyItLS1zcyAgUFAiU01PRDEiLS0tdHQgIlZNSU4zIERTVENIQVJTKQorCisjZGVmaW5lIFNIX1JS STRfRU5DKFRBRyxNQUo0LE1JTjMsVk1JTjMsRFNUQ0hBUlMpIFwKK0RFRl9FTkMzMihUQUcsSUNM QVNTX1Myb3AiICJNQUo0IiAiTUlOMyAic3Nzc3MgUFAwMGlpaWkgIiBWTUlOMyBEU1RDSEFSUykK KworI2RlZmluZSBTSF9SUkk1X0VOQyhUQUcsTUFKNCxNSU4zLFZNSU4zLERTVENIQVJTKSBcCitE RUZfRU5DMzIoVEFHLElDTEFTU19TMm9wIiAiTUFKNCIgIk1JTjMgInNzc3NzIFBQMGlpaWlpICIg Vk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgU0hfUlJJNl9FTkMoVEFHLE1BSjQsTUlOMyxWTUlO MyxEU1RDSEFSUykgXAorREVGX0VOQzMyKFRBRyxJQ0xBU1NfUzJvcCIgIk1BSjQiICJNSU4zICJz c3NzcyBQUGlpaWlpaSAiIFZNSU4zIERTVENIQVJTKQorCisjZGVmaW5lIFJTSElGVFRZUEVTKFRB R0VORCxNQUo0LE1JTjMsU01PRDEsRE1PRDEsRFNUQ0hBUlMpIFwKK1NIX1JSUl9FTkMoUzJfYXNy X3JfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxLCIwMCJETU9EMSxEU1RDSEFSUykgXAorU0hfUlJS X0VOQyhTMl9sc3Jfcl8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEsIjAxIkRNT0QxLERTVENIQVJT KSBcCitTSF9SUlJfRU5DKFMyX2FzbF9yXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSwiMTAiRE1P RDEsRFNUQ0hBUlMpIFwKK1NIX1JSUl9FTkMoUzJfbHNsX3JfIyNUQUdFTkQsTUFKNCxNSU4zLFNN T0QxLCIxMSJETU9EMSxEU1RDSEFSUykKKworCisjZGVmaW5lIEk1U0hJRlRUWVBFUyhUQUdFTkQs TUFKNCxNSU4zLFNNT0QxLERTVENIQVJTKSBcCitTSF9SUkk1X0VOQyhTMl9hc3JfaV8jI1RBR0VO RCxNQUo0LE1JTjMsU01PRDEgIjAwIixEU1RDSEFSUykgXAorU0hfUlJJNV9FTkMoUzJfbHNyX2lf IyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxICIwMSIsRFNUQ0hBUlMpIFwKK1NIX1JSSTVfRU5DKFMy X2FzbF9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMTAiLERTVENIQVJTKSBcCitTSF9SUkk1 X0VOQyhTNl9yb2xfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEgIjExIixEU1RDSEFSUykKKwor I2RlZmluZSBJNVNISUZUVFlQRVNfTk9ST0woVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSxEU1RDSEFS UykgXAorU0hfUlJJNV9FTkMoUzJfYXNyX2lfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxICIwMCIs RFNUQ0hBUlMpIFwKK1NIX1JSSTVfRU5DKFMyX2xzcl9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9E MSAiMDEiLERTVENIQVJTKSBcCitTSF9SUkk1X0VOQyhTMl9hc2xfaV8jI1RBR0VORCxNQUo0LE1J TjMsU01PRDEgIjEwIixEU1RDSEFSUykKKworI2RlZmluZSBJNVNISUZUVFlQRVNfTk9BU1IoVEFH RU5ELE1BSjQsTUlOMyxTTU9EMSxEU1RDSEFSUykgXAorU0hfUlJJNV9FTkMoUzJfbHNyX2lfIyNU QUdFTkQsTUFKNCxNSU4zLFNNT0QxICIwMSIsRFNUQ0hBUlMpIFwKK1NIX1JSSTVfRU5DKFMyX2Fz bF9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMTAiLERTVENIQVJTKSBcCitTSF9SUkk1X0VO QyhTNl9yb2xfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEgIjExIixEU1RDSEFSUykKKworI2Rl ZmluZSBJNFNISUZUVFlQRVMoVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSxEU1RDSEFSUykgXAorU0hf UlJJNF9FTkMoUzJfYXNyX2lfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxICIwMCIsRFNUQ0hBUlMp IFwKK1NIX1JSSTRfRU5DKFMyX2xzcl9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMDEiLERT VENIQVJTKSBcCitTSF9SUkk0X0VOQyhTMl9hc2xfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEg IjEwIixEU1RDSEFSUykKKworI2RlZmluZSBJNUFTSElGVFRZUEVTKFRBR0VORCxNQUo0LE1JTjMs U01PRDEsRFNUQ0hBUlMpIFwKK1NIX1JSSTVfRU5DKFMyX2FzbF9pXyMjVEFHRU5ELE1BSjQsTUlO MyxTTU9EMSAiMTAiLERTVENIQVJTKQorCisjZGVmaW5lIEk0QVNISUZUVFlQRVMoVEFHRU5ELE1B SjQsTUlOMyxTTU9EMSxEU1RDSEFSUykgXAorU0hfUlJJNF9FTkMoUzJfYXNsX2lfIyNUQUdFTkQs TUFKNCxNSU4zLFNNT0QxICIxMCIsRFNUQ0hBUlMpCisKKyNkZWZpbmUgSTZTSElGVFRZUEVTKFRB R0VORCxNQUo0LE1JTjMsU01PRDEsRFNUQ0hBUlMpIFwKK1NIX1JSSTZfRU5DKFMyX2Fzcl9pXyMj VEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMDAiLERTVENIQVJTKSBcCitTSF9SUkk2X0VOQyhTMl9s c3JfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEgIjAxIixEU1RDSEFSUykgXAorU0hfUlJJNl9F TkMoUzJfYXNsX2lfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxICIxMCIsRFNUQ0hBUlMpIFwKK1NI X1JSSTZfRU5DKFM2X3JvbF9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMTEiLERTVENIQVJT KSBcCisKKyNkZWZpbmUgSTZTSElGVFRZUEVTX05PQVNSKFRBR0VORCxNQUo0LE1JTjMsU01PRDEs RFNUQ0hBUlMpIFwKK1NIX1JSSTZfRU5DKFMyX2xzcl9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9E MSAiMDEiLERTVENIQVJTKSBcCitTSF9SUkk2X0VOQyhTMl9hc2xfaV8jI1RBR0VORCxNQUo0LE1J TjMsU01PRDEgIjEwIixEU1RDSEFSUykgXAorU0hfUlJJNl9FTkMoUzZfcm9sX2lfIyNUQUdFTkQs TUFKNCxNSU4zLFNNT0QxICIxMSIsRFNUQ0hBUlMpCisKKworCitERUZfRklFTERST1dfREVTQzMy KElDTEFTU19TMm9wIiAwMDAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMwXSBSZGQ9 KFJzcywjdTYpIikKKy8qIEVKUDogdGhlcmUgaXMgYWN0dWFsbHkgcXVpdGUgYSBiaXQgb2Ygc3Bh Y2UgaGVyZSwgbG9vayBhdCB0aGUgcmVzZXJ2ZWQgYml0cyAqLworSTZTSElGVFRZUEVTKHAsICAg ICAgICAgICAgICAgICAiMDAwMCIsIjAwMCIsIjAiLCJkZGRkZCIpCitJNVNISUZUVFlQRVNfTk9S T0wodncsICAgICAgICAgICIwMDAwIiwiMDEwIiwiMCIsImRkZGRkIikKK0k0U0hJRlRUWVBFUyh2 aCwgICAgICAgICAgICAgICAgIjAwMDAiLCIxMDAiLCIwIiwiZGRkZGQiKQorCisKKworLyogRmFs c2UgYXNzdW1lIGFuIGltbWVkaWF0ZSAqLworU0gyX1JSX0VOQyhTMl92c2F0aHViX25vcGFjaywg IjAwMDAiLCIwMDAiLCItIiwiMSAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfdnNhdHd1aF9u b3BhY2ssICIwMDAwIiwiMDAwIiwiLSIsIjEgMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX3Zz YXR3aF9ub3BhY2ssICAiMDAwMCIsIjAwMCIsIi0iLCIxIDEwIiwiZGRkZGQiKQorU0gyX1JSX0VO QyhTMl92c2F0aGJfbm9wYWNrLCAgIjAwMDAiLCIwMDAiLCItIiwiMSAxMSIsImRkZGRkIikKKwor U0hfUlJJNF9FTkMoUzVfdmFzcmhybmQsICAgICAgIjAwMDAiLCIwMDEiLCAgICAiMCAwMCIsImRk ZGRkIikKKworU0gyX1JSX0VOQyhBMl92YWJzaCwgICAgICAgICAgIjAwMDAiLCIwMTAiLCItIiwi MSAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfdmFic2hzYXQsICAgICAgICIwMDAwIiwiMDEw IiwiLSIsIjEgMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEEyX3ZhYnN3LCAgICAgICAgICAiMDAw MCIsIjAxMCIsIi0iLCIxIDEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhBMl92YWJzd3NhdCwgICAg ICAgIjAwMDAiLCIwMTAiLCItIiwiMSAxMSIsImRkZGRkIikKKworU0gyX1JSX0VOQyhBMl9ub3Rw LCAgICAgICAgICAgIjAwMDAiLCIxMDAiLCItIiwiMSAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMo QTJfbmVncCwgICAgICAgICAgICIwMDAwIiwiMTAwIiwiLSIsIjEgMDEiLCJkZGRkZCIpCitTSDJf UlJfRU5DKEEyX2Fic3AsICAgICAgICAgICAiMDAwMCIsIjEwMCIsIi0iLCIxIDEwIiwiZGRkZGQi KQorU0gyX1JSX0VOQyhBMl92Y29uaiwgICAgICAgICAgIjAwMDAiLCIxMDAiLCItIiwiMSAxMSIs ImRkZGRkIikKKworU0gyX1JSX0VOQyhTMl9kZWludGVybGVhdmUsICAgIjAwMDAiLCIxMTAiLCIt IiwiMSAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfaW50ZXJsZWF2ZSwgICAgICIwMDAwIiwi MTEwIiwiLSIsIjEgMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX2JyZXZwLCAgICAgICAgICAi MDAwMCIsIjExMCIsIi0iLCIxIDEwIiwiZGRkZGQiKQorU0hfUlJJNl9FTkMoUzJfYXNyX2lfcF9y bmQsICAgIjAwMDAiLCIxMTAiLCAgICAiMSAxMSIsImRkZGRkIikKKworU0gyX1JSX0VOQyhGMl9j b252X2RmMmQsICAgICAgIjAwMDAiLCIxMTEiLCIwIiwiMCAwMCIsImRkZGRkIikKK1NIMl9SUl9F TkMoRjJfY29udl9kZjJ1ZCwgICAgICIwMDAwIiwiMTExIiwiMCIsIjAgMDEiLCJkZGRkZCIpCitT SDJfUlJfRU5DKEYyX2NvbnZfdWQyZGYsICAgICAiMDAwMCIsIjExMSIsIjAiLCIwIDEwIiwiZGRk ZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X2QyZGYsICAgICAgIjAwMDAiLCIxMTEiLCIwIiwiMCAx MSIsImRkZGRkIikKKyNpZmRlZiBBRERfRFBfT1BTCitTSDJfUlJfRU5DKEYyX2RmZml4dXByLCAg ICAgICAiMDAwMCIsIjExMSIsIjAiLCIxIDAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9kZnNx cnRjaGVhdCwgICAgIjAwMDAiLCIxMTEiLCIwIiwiMSAwMSIsImRkZGRkIikKKyNlbmRpZgorU0gy X1JSX0VOQyhGMl9jb252X2RmMmRfY2hvcCwgIjAwMDAiLCIxMTEiLCIwIiwiMSAxMCIsImRkZGRk IikKK1NIMl9SUl9FTkMoRjJfY29udl9kZjJ1ZF9jaG9wLCIwMDAwIiwiMTExIiwiMCIsIjEgMTEi LCJkZGRkZCIpCisjaWZkZWYgQUREX0RQX09QUworU0gyX1JSX0VOQyhGMl9kZmludnNxcnRhLCAg ICAgIjAwMDAiLCIxMTEiLCIxIiwiMCBlZSIsImRkZGRkIikKKyNlbmRpZgorCisKKworREVGX0ZJ RUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgICAgMDAwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0t LS0tLSIsIlsjMV0gUmRkPShSc3MsI3U2LCNVNikiKQorREVGX0VOQzMyKFMyX2V4dHJhY3R1cCxJ Q0xBU1NfUzJvcCIgMDAwMSBJSUlzc3NzcyBQUGlpaWlpaSBJSUlkZGRkZCIpCisKKworREVGX0ZJ RUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgMDAxMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0t LSIsIlsjMl0gUnh4PShSc3MsI3U2KSIpCitJNlNISUZUVFlQRVMocF9uYWMsICAgICAgICAgICAg ICIwMDEwIiwiMDAtIiwiMCIsInh4eHh4IikKK0k2U0hJRlRUWVBFUyhwX2FjYywgICAgICAgICAg ICAgIjAwMTAiLCIwMC0iLCIxIiwieHh4eHgiKQorSTZTSElGVFRZUEVTKHBfYW5kLCAgICAgICAg ICAgICAiMDAxMCIsIjAxLSIsIjAiLCJ4eHh4eCIpCitJNlNISUZUVFlQRVMocF9vciwgICAgICAg ICAgICAgICIwMDEwIiwiMDEtIiwiMSIsInh4eHh4IikKK0k2U0hJRlRUWVBFU19OT0FTUihwX3hh Y2MsICAgICAgIjAwMTAiLCIxMC0iLCIwIiwieHh4eHgiKQorCisKK0RFRl9GSUVMRFJPV19ERVND MzIoSUNMQVNTX1Myb3AiICAwMDExIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMzXSBS eHg9KFJzcywjdTYsI1U2KSIpCitERUZfRU5DMzIoUzJfaW5zZXJ0cCxJQ0xBU1NfUzJvcCIgMDAx MSBJSUlzc3NzcyBQUGlpaWlpaSBJSUl4eHh4eCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJ Q0xBU1NfUzJvcCIgIDAxMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzRdIFJkZD0o UnMpIikKK1NIMl9SUl9FTkMoUzJfdnN4dGJoLCAgICAgICAgICAgICIwMTAwIiwiMDAtIiwiLSIs IjAwLSIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfdnp4dGJoLCAgICAgICAgICAgICIwMTAwIiwi MDAtIiwiLSIsIjAxLSIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfdnN4dGh3LCAgICAgICAgICAg ICIwMTAwIiwiMDAtIiwiLSIsIjEwLSIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfdnp4dGh3LCAg ICAgICAgICAgICIwMTAwIiwiMDAtIiwiLSIsIjExLSIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJf c3h0dywgICAgICAgICAgICAgICIwMTAwIiwiMDEtIiwiLSIsIjAwLSIsImRkZGRkIikKK1NIMl9S Ul9FTkMoUzJfdnNwbGF0cmgsICAgICAgICAgICIwMTAwIiwiMDEtIiwiLSIsIjAxLSIsImRkZGRk IikKK1NIMl9SUl9FTkMoUzZfdnNwbGF0cmJwLCAgICAgICAgICIwMTAwIiwiMDEtIiwiLSIsIjEw LSIsImRkZGRkIikKKworU0gyX1JSX0VOQyhGMl9jb252X3NmMmRmLCAgICAgICAgIjAxMDAiLCIx LS0iLCItIiwiMDAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3V3MmRmLCAgICAgICAg IjAxMDAiLCIxLS0iLCItIiwiMDAxIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3cyZGYs ICAgICAgICAgIjAxMDAiLCIxLS0iLCItIiwiMDEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9j b252X3NmMnVkLCAgICAgICAgIjAxMDAiLCIxLS0iLCItIiwiMDExIiwiZGRkZGQiKQorU0gyX1JS X0VOQyhGMl9jb252X3NmMmQsICAgICAgICAgIjAxMDAiLCIxLS0iLCItIiwiMTAwIiwiZGRkZGQi KQorU0gyX1JSX0VOQyhGMl9jb252X3NmMnVkX2Nob3AsICAgIjAxMDAiLCIxLS0iLCItIiwiMTAx IiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3NmMmRfY2hvcCwgICAgIjAxMDAiLCIxLS0i LCItIiwiMTEwIiwiZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Myb3Ai ICAgMDEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjNV0gUGQ9KFJzLCN1NikiKQor REVGX0VOQzMyKFMyX3RzdGJpdF9pLElDTEFTU19TMm9wIiAwMTAxIDAwMHNzc3NzIFBQMGlpaWlp IC0tLS0tLWRkIikKK0RFRl9FTkMzMihDMl90ZnJycCwgICBJQ0xBU1NfUzJvcCIgMDEwMSAwMTBz c3NzcyBQUC0tLS0tLSAtLS0tLS1kZCIpCitERUZfRU5DMzIoQzJfYml0c2NscmksSUNMQVNTX1My b3AiIDAxMDEgMTAwc3Nzc3MgUFBpaWlpaWkgLS0tLS0tZGQiKQorREVGX0VOQzMyKFM0X250c3Ri aXRfaSxJQ0xBU1NfUzJvcCIwMTAxIDAwMXNzc3NzIFBQMGlpaWlpIC0tLS0tLWRkIikKK0RFRl9F TkMzMihDNF9uYml0c2NscmksSUNMQVNTX1Myb3AiMDEwMSAxMDFzc3NzcyBQUGlpaWlpaSAtLS0t LS1kZCIpCitERUZfRU5DMzIoRjJfc2ZjbGFzcywgIElDTEFTU19TMm9wIjAxMDEgMTExc3Nzc3Mg UFAwaWlpaWkgLS0tLS0tZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Myb3Ai ICAgMDExMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjNl0gUmRkPShQdCkiKQorREVG X0VOQzMyKEMyX21hc2ssIElDTEFTU19TMm9wIiAgICAwMTEwICAgLS0tIC0tLS0tICBQUC0tLS10 dCAtLS0gZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Myb3AiICAgIDAx MTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzddIFJ4PShScywjdTQsI1M2KSIpCitE RUZfRU5DMzIoUzJfdGFibGVpZHhiLElDTEFTU19TMm9wIiAwMTExIDAwaXNzc3NzIFBQSUlJSUlJ IGlpaXh4eHh4IikKK0RFRl9FTkMzMihTMl90YWJsZWlkeGgsSUNMQVNTX1Myb3AiIDAxMTEgMDFp c3Nzc3MgUFBJSUlJSUkgaWlpeHh4eHgiKQorREVGX0VOQzMyKFMyX3RhYmxlaWR4dyxJQ0xBU1Nf UzJvcCIgMDExMSAxMGlzc3NzcyBQUElJSUlJSSBpaWl4eHh4eCIpCitERUZfRU5DMzIoUzJfdGFi bGVpZHhkLElDTEFTU19TMm9wIiAwMTExIDExaXNzc3NzIFBQSUlJSUlJIGlpaXh4eHh4IikKKwor CitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19TMm9wIiAgIDEwMDAgLS0tLS0tLS0gUFAtLS0t LS0gLS0tLS0tLS0iLCJbIzhdIFJkPShSc3MsI3U2KSIpCitTSDJfUlJfRU5DKFMyX3ZzYXRodWIs ICAgICAgICAgICAgIjEwMDAiLCIwMDAiLCItIiwiMDAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhT Ml92c2F0d2gsICAgICAgICAgICAgICIxMDAwIiwiMDAwIiwiLSIsIjAxMCIsImRkZGRkIikKK1NI Ml9SUl9FTkMoUzJfdnNhdHd1aCwgICAgICAgICAgICAiMTAwMCIsIjAwMCIsIi0iLCIxMDAiLCJk ZGRkZCIpCitTSDJfUlJfRU5DKFMyX3ZzYXRoYiwgICAgICAgICAgICAgIjEwMDAiLCIwMDAiLCIt IiwiMTEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl9jbGJwLCAgICAgICAgICAgICAgICIxMDAw IiwiMDEwIiwiLSIsIjAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfY2wwcCwgICAgICAgICAg ICAgICAiMTAwMCIsIjAxMCIsIi0iLCIwMTAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX2NsMXAs ICAgICAgICAgICAgICAgIjEwMDAiLCIwMTAiLCItIiwiMTAwIiwiZGRkZGQiKQorU0gyX1JSX0VO QyhTMl9jdDBwLCAgICAgICAgICAgICAgICIxMDAwIiwiMTExIiwiLSIsIjAxMCIsImRkZGRkIikK K1NIMl9SUl9FTkMoUzJfY3QxcCwgICAgICAgICAgICAgICAiMTAwMCIsIjExMSIsIi0iLCIxMDAi LCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX3Z0cnVub2hiLCAgICAgICAgICAgIjEwMDAiLCIxMDAi LCItIiwiMDAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl92dHJ1bmVoYiwgICAgICAgICAgICIx MDAwIiwiMTAwIiwiLSIsIjAxMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfdnJuZHBhY2t3aCwg ICAgICAgICAiMTAwMCIsIjEwMCIsIi0iLCIxMDAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX3Zy bmRwYWNrd2hzLCAgICAgICAgIjEwMDAiLCIxMDAiLCItIiwiMTEwIiwiZGRkZGQiKQorU0gyX1JS X0VOQyhBMl9zYXQsICAgICAgICAgICAgICAgICIxMDAwIiwiMTEwIiwiLSIsIjAwMCIsImRkZGRk IikKK1NIMl9SUl9FTkMoQTJfcm91bmRzYXQsICAgICAgICAgICAiMTAwMCIsIjExMCIsIi0iLCIw MDEiLCJkZGRkZCIpCitTSF9SUkk1X0VOQyhTMl9hc3JfaV9zdndfdHJ1biwgICAgIjEwMDAiLCIx MTAiLCAgICAiMDEwIiwiZGRkZGQiKQorU0hfUlJJNV9FTkMoQTRfYml0c3BsaXRpLCAgICAgICAg ICIxMDAwIiwiMTEwIiwgICAgIjEwMCIsImRkZGRkIikKKworU0hfUlJJNV9FTkMoQTdfY2xpcCwg ICAgICAgICAgICAgICIxMDAwIiwiMTEwIiwgICAgIjEwMSIsImRkZGRkIikKK1NIX1JSSTVfRU5D KEE3X3ZjbGlwLCAgICAgICAgICAgICAiMTAwMCIsIjExMCIsICAgICIxMTAiLCJkZGRkZCIpCisK KworU0gyX1JSX0VOQyhTNF9jbGJwbm9ybSwgICAgICAgICAgICIxMDAwIiwiMDExIiwiLSIsIjAw MCIsImRkZGRkIikKK1NIX1JSSTZfRU5DKFM0X2NsYnBhZGRpLCAgICAgICAgICAiMTAwMCIsIjAx MSIsICAgICIwMTAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFM1X3BvcGNvdW50cCwgICAgICAgICAg IjEwMDAiLCIwMTEiLCItIiwiMDExIiwiZGRkZGQiKQorCitTSF9SUkk0X0VOQyhTNV9hc3JodWJf cm5kX3NhdCwgICAgIjEwMDAiLCIwMTEiLCAgICAiMTAwIiwiZGRkZGQiKQorU0hfUlJJNF9FTkMo UzVfYXNyaHViX3NhdCwgICAgICAgICIxMDAwIiwiMDExIiwgICAgIjEwMSIsImRkZGRkIikKKwor U0gyX1JSX0VOQyhGMl9jb252X2RmMnNmLCAgICAgICAgICIxMDAwIiwiMDAwIiwiLSIsIjAwMSIs ImRkZGRkIikKK1NIMl9SUl9FTkMoRjJfY29udl91ZDJzZiwgICAgICAgICAiMTAwMCIsIjAwMSIs Ii0iLCIwMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEYyX2NvbnZfZDJzZiwgICAgICAgICAgIjEw MDAiLCIwMTAiLCItIiwiMDAxIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X2RmMnV3LCAg ICAgICAgICIxMDAwIiwiMDExIiwiLSIsIjAwMSIsImRkZGRkIikKK1NIMl9SUl9FTkMoRjJfY29u dl9kZjJ3LCAgICAgICAgICAiMTAwMCIsIjEwMCIsIi0iLCIwMDEiLCJkZGRkZCIpCitTSDJfUlJf RU5DKEYyX2NvbnZfZGYydXdfY2hvcCwgICAgIjEwMDAiLCIxMDEiLCItIiwiMDAxIiwiZGRkZGQi KQorU0gyX1JSX0VOQyhGMl9jb252X2RmMndfY2hvcCwgICAgICIxMDAwIiwiMTExIiwiLSIsIjAw MSIsImRkZGRkIikKKworCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Myb3AiICAgMTAw MSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjOV0gUmQ9KFBzLFB0KSIpCitERUZfRU5D MzIoQzJfdml0cGFjaywgSUNMQVNTX1Myb3AiIDEwMDEgICAtMDAgLS0tc3MgIFBQLS0tLXR0IC0t LSBkZGRkZCIpCitERUZfRU5DMzIoQzJfdGZycHIsICAgSUNMQVNTX1Myb3AiIDEwMDEgICAtMS0g LS0tc3MgIFBQLS0tLS0tIC0tLSBkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xB U1NfUzJvcCIgICAxMDEwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMF0gUmRkPShS c3MsI3U2LCNVNikiKQorREVGX0VOQzMyKFM0X2V4dHJhY3RwLElDTEFTU19TMm9wIiAxMDEwIElJ SXNzc3NzIFBQaWlpaWlpIElJSWRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFT U19TMm9wIiAgIDEwMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzExXSBSZD0oUnMp IikKK1NIMl9SUl9FTkMoRjJfY29udl91dzJzZiwgICAgICAgICAiMTAxMSIsIjAwMSIsIi0iLCIw MDAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEYyX2NvbnZfdzJzZiwgICAgICAgICAgIjEwMTEiLCIw MTAiLCItIiwiMDAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3NmMnV3LCAgICAgICAg ICIxMDExIiwiMDExIiwiLSIsIjAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoRjJfY29udl9zZjJ3 LCAgICAgICAgICAiMTAxMSIsIjEwMCIsIi0iLCIwMDAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEYy X2NvbnZfc2YydXdfY2hvcCwgICAgIjEwMTEiLCIwMTEiLCItIiwiMDAxIiwiZGRkZGQiKQorU0gy X1JSX0VOQyhGMl9jb252X3NmMndfY2hvcCwgICAgICIxMDExIiwiMTAwIiwiLSIsIjAwMSIsImRk ZGRkIikKK1NIMl9SUl9FTkMoRjJfc2ZmaXh1cHIsICAgICAgICAgICAiMTAxMSIsIjEwMSIsIi0i LCIwMDAiLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgICAg ICAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMl0gUmQ9KFJzLCN1NikiKQor STVTSElGVFRZUEVTKHIsICAgICAgICAgICAgICAgICAgICAgICIxMTAwIiwiMDAwIiwgICAgICAg ICAgICAiMCAgIiwiZGRkZGQiKQorU0hfUlJJNV9FTkMoUzJfYXNsX2lfcl9zYXQsICAgICAgICAg ICIxMTAwIiwiMDEwIiwgICAgICAgICAgICAiMDEwIiwiZGRkZGQiKQorU0hfUlJJNV9FTkMoUzJf YXNyX2lfcl9ybmQsICAgICAgICAgICIxMTAwIiwiMDEwIiwgICAgICAgICAgICAiMDAwIiwiZGRk ZGQiKQorCitTSDJfUlJfRU5DKFMyX3N2c2F0aGIsICAgICAgICAgICAgICAgIjExMDAiLCIxMC0i LCItIiwgICAgICAgICIwMC0iLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX3N2c2F0aHViLCAgICAg ICAgICAgICAgIjExMDAiLCIxMC0iLCItIiwgICAgICAgICIwMS0iLCJkZGRkZCIpCisKK1NIX1JS STVfRU5DKEE0X2Nyb3VuZF9yaSwgICAgICAgICAgICAiMTEwMCIsIjExMSIsICAgICAgICAgICAg IjAwLSIsImRkZGRkIikKK1NIX1JSSTZfRU5DKEE3X2Nyb3VuZGRfcmksICAgICAgICAgICAiMTEw MCIsIjExMSIsICAgICAgICAgICAgIjAxLSIsImRkZGRkIikKK1NIX1JSSTVfRU5DKEE0X3JvdW5k X3JpLCAgICAgICAgICAgICAiMTEwMCIsIjExMSIsICAgICAgICAgICAgIjEwLSIsImRkZGRkIikK K1NIX1JSSTVfRU5DKEE0X3JvdW5kX3JpX3NhdCwgICAgICAgICAiMTEwMCIsIjExMSIsICAgICAg ICAgICAgIjExLSIsImRkZGRkIikKKworREVGX0VOQzMyKFMyX3NldGJpdF9pLCAgIElDTEFTU19T Mm9wIiAxMTAwICAgMTEwc3Nzc3MgUFAwaWlpaWkgMDAwZGRkZGQiKQorREVGX0VOQzMyKFMyX2Ns cmJpdF9pLCAgIElDTEFTU19TMm9wIiAxMTAwICAgMTEwc3Nzc3MgUFAwaWlpaWkgMDAxZGRkZGQi KQorREVGX0VOQzMyKFMyX3RvZ2dsZWJpdF9pLElDTEFTU19TMm9wIiAxMTAwICAgMTEwc3Nzc3Mg UFAwaWlpaWkgMDEwZGRkZGQiKQorREVGX0VOQzMyKFM0X2xzbGkgICAgICAgLElDTEFTU19TMm9w IiAxMTAwICAgMTEwc3Nzc3MgUFBpaWlpaWkgMDExZGRkZGQiKQorCitERUZfRU5DMzIoUzRfY2xi YWRkaSAgICAsSUNMQVNTX1Myb3AiIDExMDAgICAwMDFzc3NzcyBQUGlpaWlpaSAwMDBkZGRkZCIp CisKKworCisvKiBGYWxzZSByZWFkICN1NiAqLworU0gyX1JSX0VOQyhTMl9jbGIsICAgICAgICAg ICAgICAgICAgICIxMTAwIiwiMDAwIiwiLSIsIjEgMDAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMy X2NsMCwgICAgICAgICAgICAgICAgICAgIjExMDAiLCIwMDAiLCItIiwiMSAwMSIsImRkZGRkIikK K1NIMl9SUl9FTkMoUzJfY2wxLCAgICAgICAgICAgICAgICAgICAiMTEwMCIsIjAwMCIsIi0iLCIx IDEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl9jbGJub3JtLCAgICAgICAgICAgICAgICIxMTAw IiwiMDAwIiwiLSIsIjEgMTEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX2N0MCwgICAgICAgICAg ICAgICAgICAgIjExMDAiLCIwMTAiLCItIiwiMSAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJf Y3QxLCAgICAgICAgICAgICAgICAgICAiMTEwMCIsIjAxMCIsIi0iLCIxIDAxIiwiZGRkZGQiKQor U0gyX1JSX0VOQyhTMl9icmV2LCAgICAgICAgICAgICAgICAgICIxMTAwIiwiMDEwIiwiLSIsIjEg MTAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX3ZzcGxhdHJiLCAgICAgICAgICAgICAgIjExMDAi LCIwMTAiLCItIiwiMSAxMSIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfYWJzLCAgICAgICAgICAg ICAgICAgICAiMTEwMCIsIjEwMCIsIi0iLCIxIDAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhBMl9h YnNzYXQsICAgICAgICAgICAgICAgICIxMTAwIiwiMTAwIiwiLSIsIjEgMDEiLCJkZGRkZCIpCitT SDJfUlJfRU5DKEEyX25lZ3NhdCwgICAgICAgICAgICAgICAgIjExMDAiLCIxMDAiLCItIiwiMSAx MCIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfc3dpeiwgICAgICAgICAgICAgICAgICAiMTEwMCIs IjEwMCIsIi0iLCIxIDExIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhBMl9zYXRoLCAgICAgICAgICAg ICAgICAgICIxMTAwIiwiMTEwIiwiLSIsIjEgMDAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEEyX3Nh dHVoLCAgICAgICAgICAgICAgICAgIjExMDAiLCIxMTAiLCItIiwiMSAwMSIsImRkZGRkIikKK1NI Ml9SUl9FTkMoQTJfc2F0dWIsICAgICAgICAgICAgICAgICAiMTEwMCIsIjExMCIsIi0iLCIxIDEw IiwiZGRkZGQiKQorU0gyX1JSX0VOQyhBMl9zYXRiLCAgICAgICAgICAgICAgICAgICIxMTAwIiwi MTEwIiwiLSIsIjEgMTEiLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1Nf UzJvcCIgICAgIDExMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEzXSBSZD0oUnMs I3U2LCNVNikiKQorREVGX0VOQzMyKFMyX2V4dHJhY3R1LCAgSUNMQVNTX1Myb3AiIDExMDEgMElJ c3Nzc3MgUFAwaWlpaWkgSUlJZGRkZGQiKQorREVGX0VOQzMyKFM0X2V4dHJhY3QsICAgSUNMQVNT X1Myb3AiIDExMDEgMUlJc3Nzc3MgUFAwaWlpaWkgSUlJZGRkZGQiKQorREVGX0VOQzMyKFMyX21h c2ssICAgIElDTEFTU19TMm9wIiAgIDExMDEgMElJLS0tLS0gUFAxaWlpaWkgSUlJZGRkZGQiKQor CisKKworCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgICAgIDExMTAgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzE0XSBSeD0oUnMsI3U2KSIpCitJNVNISUZUVFlQ RVMocl9uYWMsICAgICAgICIxMTEwIiwiMDAtIiwiMCIsInh4eHh4IikKK0k1U0hJRlRUWVBFUyhy X2FjYywgICAgICAgIjExMTAiLCIwMC0iLCIxIiwieHh4eHgiKQorSTVTSElGVFRZUEVTKHJfYW5k LCAgICAgICAiMTExMCIsIjAxLSIsIjAiLCJ4eHh4eCIpCitJNVNISUZUVFlQRVMocl9vciwgICAg ICAgICIxMTEwIiwiMDEtIiwiMSIsInh4eHh4IikKK0k1U0hJRlRUWVBFU19OT0FTUihyX3hhY2Ms IjExMTAiLCIxMC0iLCIwIiwieHh4eHgiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNT X1Myb3AiICAgICAxMTExIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxNV0gUnM9KFJz LCN1NiwjVTYpIikKK0RFRl9FTkMzMihTMl9pbnNlcnQsICAgIElDTEFTU19TMm9wIiAxMTExIDBJ SXNzc3NzIFBQMGlpaWlpIElJSXh4eHh4IikKKworCisKKworCisvKioqKioqKioqKioqKioqKioq KioqKioqKi8KKy8qIFNfM19vcGVyYW5kICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioq KioqKioqKiovCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzNvcCIgMDAwMCAtLS0t LS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMF0gUmRkPShSc3MsUnR0LCN1MykiKQorU0hfUlJS X0VOQyhTMl92YWxpZ25pYiwgICAgICAgICAiMDAwMCIsIjAtLSIsIi0iLCJpaWkiLCJkZGRkZCIp CitTSF9SUlJfRU5DKFMyX3ZzcGxpY2VpYiwgICAgICAgICIwMDAwIiwiMS0tIiwiLSIsImlpaSIs ImRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19TM29wIiAwMDAxIC0tLS0t LS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxXSBSZGQ9KFJzcyxSdHQpIikKK1NIX1JSUl9FTkMo UzJfZXh0cmFjdHVwX3JwLCAgICAgIjAwMDEiLCIwMC0iLCItIiwiMDAtIiwiZGRkZGQiKQorU0hf UlJSX0VOQyhTMl9zaHVmZmViLCAgICAgICAgICAiMDAwMSIsIjAwLSIsIi0iLCIwMS0iLCJkZGRk ZCIpCitTSF9SUlJfRU5DKFMyX3NodWZmb2IsICAgICAgICAgICIwMDAxIiwiMDAtIiwiLSIsIjEw LSIsImRkZGRkIikKK1NIX1JSUl9FTkMoUzJfc2h1ZmZlaCwgICAgICAgICAgIjAwMDEiLCIwMC0i LCItIiwiMTEtIiwiZGRkZGQiKQorCitTSF9SUlJfRU5DKFMyX3NodWZmb2gsICAgICAgICAgICIw MDAxIiwiMTAtIiwiLSIsIjAwMCIsImRkZGRkIikKK1NIX1JSUl9FTkMoUzJfdnRydW5ld2gsICAg ICAgICAgIjAwMDEiLCIxMC0iLCItIiwiMDEwIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTNl92dHJ1 bmVoYl9wcHAsICAgICAiMDAwMSIsIjEwLSIsIi0iLCIwMTEiLCJkZGRkZCIpCitTSF9SUlJfRU5D KFMyX3Z0cnVub3doLCAgICAgICAgICIwMDAxIiwiMTAtIiwiLSIsIjEwMCIsImRkZGRkIikKK1NI X1JSUl9FTkMoUzZfdnRydW5vaGJfcHBwLCAgICAgIjAwMDEiLCIxMC0iLCItIiwiMTAxIiwiZGRk ZGQiKQorU0hfUlJSX0VOQyhTMl9sZnNwLCAgICAgICAgICAgICAiMDAwMSIsIjEwLSIsIi0iLCIx MTAiLCJkZGRkZCIpCisKK1NIX1JSUl9FTkMoUzRfdnhhZGRzdWJ3LCAgICAgICAgIjAwMDEiLCIw MS0iLCItIiwiMDAwIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhBNV92YWRkaHVicywgICAgICAgICAi MDAwMSIsIjAxLSIsIi0iLCIwMDEiLCJkZGRkZCIpCitTSF9SUlJfRU5DKFM0X3Z4c3ViYWRkdywg ICAgICAgICIwMDAxIiwiMDEtIiwiLSIsIjAxMCIsImRkZGRkIikKK1NIX1JSUl9FTkMoUzRfdnhh ZGRzdWJoLCAgICAgICAgIjAwMDEiLCIwMS0iLCItIiwiMTAwIiwiZGRkZGQiKQorU0hfUlJSX0VO QyhTNF92eHN1YmFkZGgsICAgICAgICAiMDAwMSIsIjAxLSIsIi0iLCIxMTAiLCJkZGRkZCIpCisK K1NIX1JSUl9FTkMoUzRfdnhhZGRzdWJociwgICAgICAgIjAwMDEiLCIxMS0iLCItIiwiMDAtIiwi ZGRkZGQiKQorU0hfUlJSX0VOQyhTNF92eHN1YmFkZGhyLCAgICAgICAiMDAwMSIsIjExLSIsIi0i LCIwMS0iLCJkZGRkZCIpCitTSF9SUlJfRU5DKFM0X2V4dHJhY3RwX3JwLCAgICAgICIwMDAxIiwi MTEtIiwiLSIsIjEwLSIsImRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19T M29wIiAwMDEwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMyXSBSZGQ9KFJzcyxSdHQs UHUpIikKK1NIX1JSUl9FTkMoUzJfdmFsaWducmIsICAgICAgICAgIjAwMTAiLCIwLS0iLCItIiwi LXV1IiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTMl92c3BsaWNlcmIsICAgICAgICAiMDAxMCIsIjEw MCIsIi0iLCItdXUiLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzNv cCIgMDAxMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjM10gUmRkPShSc3MsUnQpIikK K1JTSElGVFRZUEVTKHZ3LCAgICAgICAgICAgICAgICAgIjAwMTEiLCIwMC0iLCItIiwiLSIsImRk ZGRkIikKK1JTSElGVFRZUEVTKHZoLCAgICAgICAgICAgICAgICAgIjAwMTEiLCIwMS0iLCItIiwi LSIsImRkZGRkIikKK1JTSElGVFRZUEVTKHAsICAgICAgICAgICAgICAgICAgIjAwMTEiLCIxMC0i LCItIiwiLSIsImRkZGRkIikKK1NIX1JSUl9FTkMoUzJfdmNyb3RhdGUsICAgICAgICAgIjAwMTEi LCIxMS0iLCItIiwiMDAtIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTMl92Y25lZ2gsICAgICAgICAg ICAiMDAxMSIsIjExLSIsIi0iLCIwMS0iLCJkZGRkZCIpCitTSF9SUlJfRU5DKFM0X3ZyY3JvdGF0 ZSwgICAgICAgICIwMDExIiwiMTEtIiwiaSIsIjExaSIsImRkZGRkIikKKworCitERUZfRklFTERS T1dfREVTQzMyKElDTEFTU19TM29wIiAwMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwi WyM0XSBSZD0oUnMsUnQsI3UzKSIpCitERUZfRU5DMzIoUzJfYWRkYXNsX3JycmksIElDTEFTU19T M29wIiAwMTAwICAgMDAwIHNzc3NzIFBQMHR0dHR0IGlpaWRkZGRkIikKKworCisKK0RFRl9GSUVM RFJPV19ERVNDMzIoSUNMQVNTX1Mzb3AiIDAxMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0i LCJbIzVdIFJkPShSc3MsUnQpIikKK1NIX1JSUl9FTkMoUzJfYXNyX3Jfc3Z3X3RydW4sICAgIjAx MDEiLCItLS0iLCItIiwiMDEwIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhNNF9jbXB5aV93aCwgICAg ICAgICAiMDEwMSIsIi0tLSIsIi0iLCIxMDAiLCJkZGRkZCIpCitTSF9SUlJfRU5DKE00X2NtcHly X3doLCAgICAgICAgICIwMTAxIiwiLS0tIiwiLSIsIjExMCIsImRkZGRkIikKK1NIX1JSUl9FTkMo TTRfY21weWlfd2hjLCAgICAgICAgIjAxMDEiLCItLS0iLCItIiwiMTAxIiwiZGRkZGQiKQorU0hf UlJSX0VOQyhNNF9jbXB5cl93aGMsICAgICAgICAiMDEwMSIsIi0tLSIsIi0iLCIxMTEiLCJkZGRk ZCIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Mzb3AiIDAxMTAgLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLCJbIzZdIFJkPShScyxSdCkiKQorU0hfUlJSX0VOQyhTMl9hc3Jfcl9y X3NhdCwgICAgICAiMDExMCIsIjAwLSIsIi0iLCIwMC0iLCJkZGRkZCIpIFwKK1NIX1JSUl9FTkMo UzJfYXNsX3Jfcl9zYXQsICAgICAgIjAxMTAiLCIwMC0iLCItIiwiMTAtIiwiZGRkZGQiKQorCitS U0hJRlRUWVBFUyhyLCAgICAgICAgICAgICAgICAgICIwMTEwIiwiMDEtIiwiLSIsIi0iLCJkZGRk ZCIpCisKK1NIX1JSUl9FTkMoUzJfc2V0Yml0X3IsICAgICAgICAgIjAxMTAiLCIxMC0iLCItIiwi MDAtIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTMl9jbHJiaXRfciwgICAgICAgICAiMDExMCIsIjEw LSIsIi0iLCIwMS0iLCJkZGRkZCIpCitTSF9SUlJfRU5DKFMyX3RvZ2dsZWJpdF9yLCAgICAgICIw MTEwIiwiMTAtIiwiLSIsIjEwLSIsImRkZGRkIikKK1NIX1JSUmlFTkMoUzRfbHNsaSwgICAgICAg ICAgICAgIjAxMTAiLCIxMC0iLCItIiwiMTFpIiwiZGRkZGQiKQorCitTSF9SUlJfRU5DKEE0X2Ny b3VuZF9yciwgICAgICAgICIwMTEwIiwiMTEtIiwiLSIsIjAwLSIsImRkZGRkIikKK1NIX1JSUl9F TkMoQTdfY3JvdW5kZF9yciwgICAgICAgIjAxMTAiLCIxMS0iLCItIiwiMDEtIiwiZGRkZGQiKQor U0hfUlJSX0VOQyhBNF9yb3VuZF9yciwgICAgICAgICAiMDExMCIsIjExLSIsIi0iLCIxMC0iLCJk ZGRkZCIpCitTSF9SUlJfRU5DKEE0X3JvdW5kX3JyX3NhdCwgICAgICIwMTEwIiwiMTEtIiwiLSIs IjExLSIsImRkZGRkIikKKworCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzNvcCIg MDExMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjN10gUGQ9KFJzLFJ0KSIpCitTSF9S UlJfRU5DKFMyX3RzdGJpdF9yLCAgICAgICAgICIwMTExIiwiMDAwIiwiLSIsIi0tLSIsIi0tLWRk IikKK1NIX1JSUl9FTkMoQzJfYml0c3NldCwgICAgICAgICAgIjAxMTEiLCIwMTAiLCItIiwiLS0t IiwiLS0tZGQiKQorU0hfUlJSX0VOQyhDMl9iaXRzY2xyLCAgICAgICAgICAiMDExMSIsIjEwMCIs Ii0iLCItLS0iLCItLS1kZCIpCitTSF9SUlJfRU5DKEE0X2NtcGhlcSwgICAgICAgICAgICIwMTEx IiwiMTEwIiwiLSIsIjAxMSIsIi0tLWRkIikKK1NIX1JSUl9FTkMoQTRfY21waGd0LCAgICAgICAg ICAgIjAxMTEiLCIxMTAiLCItIiwiMTAwIiwiLS0tZGQiKQorU0hfUlJSX0VOQyhBNF9jbXBoZ3R1 LCAgICAgICAgICAiMDExMSIsIjExMCIsIi0iLCIxMDEiLCItLS1kZCIpCitTSF9SUlJfRU5DKEE0 X2NtcGJlcSwgICAgICAgICAgICIwMTExIiwiMTEwIiwiLSIsIjExMCIsIi0tLWRkIikKK1NIX1JS Ul9FTkMoQTRfY21wYmd0dSwgICAgICAgICAgIjAxMTEiLCIxMTAiLCItIiwiMTExIiwiLS0tZGQi KQorU0hfUlJSX0VOQyhBNF9jbXBiZ3QsICAgICAgICAgICAiMDExMSIsIjExMCIsIi0iLCIwMTAi LCItLS1kZCIpCitTSF9SUlJfRU5DKFM0X250c3RiaXRfciwgICAgICAgICIwMTExIiwiMDAxIiwi LSIsIi0tLSIsIi0tLWRkIikKK1NIX1JSUl9FTkMoQzRfbmJpdHNzZXQsICAgICAgICAgIjAxMTEi LCIwMTEiLCItIiwiLS0tIiwiLS0tZGQiKQorU0hfUlJSX0VOQyhDNF9uYml0c2NsciwgICAgICAg ICAiMDExMSIsIjEwMSIsIi0iLCItLS0iLCItLS1kZCIpCisKK1NIX1JSUl9FTkMoRjJfc2ZjbXBn ZSwgICAgICAgICAgIjAxMTEiLCIxMTEiLCItIiwiMDAwIiwiLS0tZGQiKQorU0hfUlJSX0VOQyhG Ml9zZmNtcHVvLCAgICAgICAgICAiMDExMSIsIjExMSIsIi0iLCIwMDEiLCItLS1kZCIpCitTSF9S UlJfRU5DKEYyX3NmY21wZXEsICAgICAgICAgICIwMTExIiwiMTExIiwiLSIsIjAxMSIsIi0tLWRk IikKK1NIX1JSUl9FTkMoRjJfc2ZjbXBndCwgICAgICAgICAgIjAxMTEiLCIxMTEiLCItIiwiMTAw IiwiLS0tZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Mzb3AiIDEwMDAgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzhdIFJ4PShScyxSdHQpIikKK1NIX1JSUl9FTkMo UzJfaW5zZXJ0X3JwLCAgICAgICAgIjEwMDAiLCItLS0iLCItIiwiLS0tIiwieHh4eHgiKQorCisK K0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Mzb3AiIDEwMDEgLS0tLS0tLS0gUFAtLS0tLS0g LS0tLS0tLS0iLCJbIzldIFJkPShScyxSdHQpIikKK1NIX1JSUl9FTkMoUzJfZXh0cmFjdHVfcnAs ICAgICAgIjEwMDEiLCIwMC0iLCItIiwiMDAtIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTNF9leHRy YWN0X3JwLCAgICAgICAiMTAwMSIsIjAwLSIsIi0iLCIwMS0iLCJkZGRkZCIpCisKKworREVGX0ZJ RUxEUk9XX0RFU0MzMihJQ0xBU1NfUzNvcCIgMTAxMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0t LSIsIlsjMTBdIFJ4eD0oUnNzLFJ0dCkiKQorU0hfUlJSX0VOQyhTMl9pbnNlcnRwX3JwLCAgICAg ICAiMTAxMCIsIjAtLSIsIjAiLCItLS0iLCJ4eHh4eCIpCitTSF9SUlJfRU5DKE00X3hvcl94YWNj LCAgICAgICAgICIxMDEwIiwiMTAtIiwiMCIsIjAwMCIsInh4eHh4IikKKworREVGX0ZJRUxEUk9X X0RFU0MzMihJQ0xBU1NfUzNvcCIgMTAxMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsj MTFdIFJ4eD0oUnNzLFJ0KSIpCitSU0hJRlRUWVBFUyhwX29yLCAgICAgICAgICAgICAgICIxMDEx IiwiMDAwIiwiLSIsIi0iLCJ4eHh4eCIpCitSU0hJRlRUWVBFUyhwX2FuZCwgICAgICAgICAgICAg ICIxMDExIiwiMDEwIiwiLSIsIi0iLCJ4eHh4eCIpCitSU0hJRlRUWVBFUyhwX25hYywgICAgICAg ICAgICAgICIxMDExIiwiMTAwIiwiLSIsIi0iLCJ4eHh4eCIpCitSU0hJRlRUWVBFUyhwX2FjYywg ICAgICAgICAgICAgICIxMDExIiwiMTEwIiwiLSIsIi0iLCJ4eHh4eCIpCitSU0hJRlRUWVBFUyhw X3hvciwgICAgICAgICAgICAgICIxMDExIiwiMDExIiwiLSIsIi0iLCJ4eHh4eCIpCisKK1NIX1JS Ul9FTkNYKEE0X3ZybWF4aCwgICAgICAgICAgIjEwMTEiLCIwMDEiLCIwIiwiMDAxIiwidXV1dXUi KQorU0hfUlJSX0VOQ1goQTRfdnJtYXh1aCwgICAgICAgICAiMTAxMSIsIjAwMSIsIjEiLCIwMDEi LCJ1dXV1dSIpCitTSF9SUlJfRU5DWChBNF92cm1heHcsICAgICAgICAgICIxMDExIiwiMDAxIiwi MCIsIjAxMCIsInV1dXV1IikKK1NIX1JSUl9FTkNYKEE0X3ZybWF4dXcsICAgICAgICAgIjEwMTEi LCIwMDEiLCIxIiwiMDEwIiwidXV1dXUiKQorCitTSF9SUlJfRU5DWChBNF92cm1pbmgsICAgICAg ICAgICIxMDExIiwiMDAxIiwiMCIsIjEwMSIsInV1dXV1IikKK1NIX1JSUl9FTkNYKEE0X3ZybWlu dWgsICAgICAgICAgIjEwMTEiLCIwMDEiLCIxIiwiMTAxIiwidXV1dXUiKQorU0hfUlJSX0VOQ1go QTRfdnJtaW53LCAgICAgICAgICAiMTAxMSIsIjAwMSIsIjAiLCIxMTAiLCJ1dXV1dSIpCitTSF9S UlJfRU5DWChBNF92cm1pbnV3LCAgICAgICAgICIxMDExIiwiMDAxIiwiMSIsIjExMCIsInV1dXV1 IikKKworU0hfUlJSX0VOQyhTMl92cmNuZWdoLCAgICAgICAgICAiMTAxMSIsIjAwMSIsIjEiLCIx MTEiLCJ4eHh4eCIpCisKK1NIX1JSUl9FTkMoUzRfdnJjcm90YXRlX2FjYywgICAgIjEwMTEiLCIx MDEiLCJpIiwiLS1pIiwieHh4eHgiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Mz b3AiIDExMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEyXSBSeD0oUnMsUnQpIikK K1JTSElGVFRZUEVTKHJfb3IsICAgICAgICAgICAgICAgIjExMDAiLCIwMC0iLCItIiwiLSIsInh4 eHh4IikKK1JTSElGVFRZUEVTKHJfYW5kLCAgICAgICAgICAgICAgIjExMDAiLCIwMS0iLCItIiwi LSIsInh4eHh4IikKK1JTSElGVFRZUEVTKHJfbmFjLCAgICAgICAgICAgICAgIjExMDAiLCIxMC0i LCItIiwiLSIsInh4eHh4IikKK1JTSElGVFRZUEVTKHJfYWNjLCAgICAgICAgICAgICAgIjExMDAi LCIxMS0iLCItIiwiLSIsInh4eHh4IikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19T M29wIiAxMTAxIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxM10gUmVzZXJ2ZWQiKQor REVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzNvcCIgMTExMCAtLS0tLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsIlsjMTRdIFJlc2VydmVkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFT U19TM29wIiAxMTExIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxNF0gVXNlciBJbnN0 cnVjdGlvbiIpCisKKworCisKKworCisKKworCisKKworCisKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICBBTFU2NCAgICAgICAgICAg ICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworREVG X0NMQVNTMzIoSUNMQVNTX0FMVTY0IiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixB TFU2NCkKK0RFRl9GSUVMRDMyKElDTEFTU19BTFU2NCIgISEhISAtLS0tLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsQUxVNjRfUmVnVHlwZSwiUmVnaXN0ZXIgVHlwZSIpCitERUZfRklFTEQzMihJQ0xB U1NfQUxVNjQiIDAtLS0gISEhLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEFfTWFqT3AsIk1ham9y IE9wY29kZSIpCitERUZfRklFTEQzMihJQ0xBU1NfQUxVNjQiIDAtLS0gLS0tLS0tLS0gUFAtLS0t LS0gISEhLS0tLS0iLEFfTWluT3AsIk1pbm9yIE9wY29kZSIpCitERUZfRklFTEQzMihJQ0xBU1Nf QUxVNjQiIDExLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tISEhISEiLEFfTWFqT3AsIk1ham9yIE9w Y29kZSIpCisKKworCisjZGVmaW5lIEFMVTY0X1JSUl9FTkMoVEFHLE1BSjQsTUlOMyxTTU9EMSxW TUlOMyxEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHLCBJQ0xBU1NfQUxVNjQiICJNQUo0IiAgIk1J TjMic3Nzc3MgIFBQIlNNT0QxInR0dHR0ICJWTUlOMyBEU1RDSEFSUykKKworI2RlZmluZSBMRUdB Q1lfQUxVNjRfUlJSX0VOQyhUQUcsTUFKNCxNSU4zLFNNT0QxLFZNSU4zLERTVENIQVJTKVwKK0xF R0FDWV9ERUZfRU5DMzIoVEFHLCBJQ0xBU1NfQUxVNjQiICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQ IlNNT0QxInR0dHR0ICJWTUlOMyBEU1RDSEFSUykKKworCitERUZfRklFTERST1dfREVTQzMyKElD TEFTU19BTFU2NCIgMDAwMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMF0gUmQ9KFJz cyxSdHQpIikKK0FMVTY0X1JSUl9FTkMoUzJfcGFyaXR5cCwgICAgICAgICIwMDAwIiwiLS0tIiwi LSIsIi0tLSIsImRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19BTFU2NCIg MDAwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMV0gUmRkPShQdSxSc3MsUnR0KSIp CitBTFU2NF9SUlJfRU5DKEMyX3ZtdXgsICAgICAgICAgICAiMDAwMSIsIi0tLSIsIi0iLCItdXUi LCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVNjQiIDAwMTAgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzJdIFBkPShSc3MsUnR0KSIpCitBTFU2NF9SUlJf RU5DKEEyX3ZjbXB3ZXEsICAgICAgICAiMDAxMCIsIjAtLSIsIjAiLCIwMDAiLCItLS1kZCIpCitB TFU2NF9SUlJfRU5DKEEyX3ZjbXB3Z3QsICAgICAgICAiMDAxMCIsIjAtLSIsIjAiLCIwMDEiLCIt LS1kZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZjbXB3Z3R1LCAgICAgICAiMDAxMCIsIjAtLSIsIjAi LCIwMTAiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZjbXBoZXEsICAgICAgICAiMDAxMCIs IjAtLSIsIjAiLCIwMTEiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZjbXBoZ3QsICAgICAg ICAiMDAxMCIsIjAtLSIsIjAiLCIxMDAiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZjbXBo Z3R1LCAgICAgICAiMDAxMCIsIjAtLSIsIjAiLCIxMDEiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5D KEEyX3ZjbXBiZXEsICAgICAgICAiMDAxMCIsIjAtLSIsIjAiLCIxMTAiLCItLS1kZCIpCitBTFU2 NF9SUlJfRU5DKEEyX3ZjbXBiZ3R1LCAgICAgICAiMDAxMCIsIjAtLSIsIjAiLCIxMTEiLCItLS1k ZCIpCisKK0FMVTY0X1JSUl9FTkMoQTRfdmNtcGJlcV9hbnksICAgICIwMDEwIiwiMC0tIiwiMSIs IjAwMCIsIi0tLWRkIikKK0FMVTY0X1JSUl9FTkMoQTZfdmNtcGJlcV9ub3RhbnksICIwMDEwIiwi MC0tIiwiMSIsIjAwMSIsIi0tLWRkIikKK0FMVTY0X1JSUl9FTkMoQTRfdmNtcGJndCwgICAgICAg ICIwMDEwIiwiMC0tIiwiMSIsIjAxMCIsIi0tLWRkIikKK0FMVTY0X1JSUl9FTkMoQTRfdGxibWF0 Y2gsICAgICAgICIwMDEwIiwiMC0tIiwiMSIsIjAxMSIsIi0tLWRkIikKK0FMVTY0X1JSUl9FTkMo QTRfYm91bmRzY2hlY2tfbG8sICIwMDEwIiwiMC0tIiwiMSIsIjEwMCIsIi0tLWRkIikKK0FMVTY0 X1JSUl9FTkMoQTRfYm91bmRzY2hlY2tfaGksICIwMDEwIiwiMC0tIiwiMSIsIjEwMSIsIi0tLWRk IikKKworQUxVNjRfUlJSX0VOQyhDMl9jbXBlcXAsICAgICAgICAgIjAwMTAiLCIxMDAiLCItIiwi MDAwIiwiLS0tZGQiKQorQUxVNjRfUlJSX0VOQyhDMl9jbXBndHAsICAgICAgICAgIjAwMTAiLCIx MDAiLCItIiwiMDEwIiwiLS0tZGQiKQorQUxVNjRfUlJSX0VOQyhDMl9jbXBndHVwLCAgICAgICAg IjAwMTAiLCIxMDAiLCItIiwiMTAwIiwiLS0tZGQiKQorCitBTFU2NF9SUlJfRU5DKEYyX2RmY21w ZXEsICAgICAgICAiMDAxMCIsIjExMSIsIi0iLCIwMDAiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5D KEYyX2RmY21wZ3QsICAgICAgICAiMDAxMCIsIjExMSIsIi0iLCIwMDEiLCItLS1kZCIpCitBTFU2 NF9SUlJfRU5DKEYyX2RmY21wZ2UsICAgICAgICAiMDAxMCIsIjExMSIsIi0iLCIwMTAiLCItLS1k ZCIpCitBTFU2NF9SUlJfRU5DKEYyX2RmY21wdW8sICAgICAgICAiMDAxMCIsIjExMSIsIi0iLCIw MTEiLCItLS1kZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVNjQiIDAwMTEg LS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzNdIFJkZD0oUnNzLFJ0dCkiKQorQUxVNjRf UlJSX0VOQyhBMl92YWRkdWIsICAgICAgICAgIjAwMTEiLCIwMDAiLCItIiwiMDAwIiwiZGRkZGQi KQorQUxVNjRfUlJSX0VOQyhBMl92YWRkdWJzLCAgICAgICAgIjAwMTEiLCIwMDAiLCItIiwiMDAx IiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92YWRkaCwgICAgICAgICAgIjAwMTEiLCIwMDAi LCItIiwiMDEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92YWRkaHMsICAgICAgICAgIjAw MTEiLCIwMDAiLCItIiwiMDExIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92YWRkdWhzLCAg ICAgICAgIjAwMTEiLCIwMDAiLCItIiwiMTAwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92 YWRkdywgICAgICAgICAgIjAwMTEiLCIwMDAiLCItIiwiMTAxIiwiZGRkZGQiKQorQUxVNjRfUlJS X0VOQyhBMl92YWRkd3MsICAgICAgICAgIjAwMTEiLCIwMDAiLCItIiwiMTEwIiwiZGRkZGQiKQor QUxVNjRfUlJSX0VOQyhBMl9hZGRwLCAgICAgICAgICAgIjAwMTEiLCIwMDAiLCItIiwiMTExIiwi ZGRkZGQiKQorCitBTFU2NF9SUlJfRU5DKEEyX3ZzdWJ1YiwgICAgICAgICAiMDAxMSIsIjAwMSIs Ii0iLCIwMDAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZzdWJ1YnMsICAgICAgICAiMDAx MSIsIjAwMSIsIi0iLCIwMDEiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZzdWJoLCAgICAg ICAgICAiMDAxMSIsIjAwMSIsIi0iLCIwMTAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3Zz dWJocywgICAgICAgICAiMDAxMSIsIjAwMSIsIi0iLCIwMTEiLCJkZGRkZCIpCitBTFU2NF9SUlJf RU5DKEEyX3ZzdWJ1aHMsICAgICAgICAiMDAxMSIsIjAwMSIsIi0iLCIxMDAiLCJkZGRkZCIpCitB TFU2NF9SUlJfRU5DKEEyX3ZzdWJ3LCAgICAgICAgICAiMDAxMSIsIjAwMSIsIi0iLCIxMDEiLCJk ZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZzdWJ3cywgICAgICAgICAiMDAxMSIsIjAwMSIsIi0i LCIxMTAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3N1YnAsICAgICAgICAgICAiMDAxMSIs IjAwMSIsIi0iLCIxMTEiLCJkZGRkZCIpCisKK0FMVTY0X1JSUl9FTkMoQTJfdmF2Z3ViLCAgICAg ICAgICIwMDExIiwiMDEwIiwiLSIsIjAwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmF2 Z3ViciwgICAgICAgICIwMDExIiwiMDEwIiwiLSIsIjAwMSIsImRkZGRkIikKK0FMVTY0X1JSUl9F TkMoQTJfdmF2Z2gsICAgICAgICAgICIwMDExIiwiMDEwIiwiLSIsIjAxMCIsImRkZGRkIikKK0FM VTY0X1JSUl9FTkMoQTJfdmF2Z2hyLCAgICAgICAgICIwMDExIiwiMDEwIiwiLSIsIjAxMSIsImRk ZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmF2Z2hjciwgICAgICAgICIwMDExIiwiMDEwIiwiLSIs IjEwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmF2Z3VoLCAgICAgICAgICIwMDExIiwi MDEwIiwiLSIsIjEwMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmF2Z3VociwgICAgICAg ICIwMDExIiwiMDEwIiwiLSIsIjExLSIsImRkZGRkIikKKworQUxVNjRfUlJSX0VOQyhBMl92YXZn dywgICAgICAgICAgIjAwMTEiLCIwMTEiLCItIiwiMDAwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VO QyhBMl92YXZnd3IsICAgICAgICAgIjAwMTEiLCIwMTEiLCItIiwiMDAxIiwiZGRkZGQiKQorQUxV NjRfUlJSX0VOQyhBMl92YXZnd2NyLCAgICAgICAgIjAwMTEiLCIwMTEiLCItIiwiMDEwIiwiZGRk ZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92YXZndXcsICAgICAgICAgIjAwMTEiLCIwMTEiLCItIiwi MDExIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92YXZndXdyLCAgICAgICAgIjAwMTEiLCIw MTEiLCItIiwiMTAwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9hZGRwc2F0LCAgICAgICAg IjAwMTEiLCIwMTEiLCItIiwiMTAxIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9hZGRzcGws ICAgICAgICAgIjAwMTEiLCIwMTEiLCItIiwiMTEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhB Ml9hZGRzcGgsICAgICAgICAgIjAwMTEiLCIwMTEiLCItIiwiMTExIiwiZGRkZGQiKQorCitBTFU2 NF9SUlJfRU5DKEEyX3ZuYXZnaCwgICAgICAgICAiMDAxMSIsIjEwMCIsIi0iLCIwMDAiLCJkZGRk ZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZuYXZnaHIsICAgICAgICAiMDAxMSIsIjEwMCIsIi0iLCIw MDEiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZuYXZnaGNyLCAgICAgICAiMDAxMSIsIjEw MCIsIi0iLCIwMTAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZuYXZndywgICAgICAgICAi MDAxMSIsIjEwMCIsIi0iLCIwMTEiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZuYXZnd3Is ICAgICAgICAiMDAxMSIsIjEwMCIsIi0iLCIxMC0iLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEy X3ZuYXZnd2NyLCAgICAgICAiMDAxMSIsIjEwMCIsIi0iLCIxMS0iLCJkZGRkZCIpCisKK0FMVTY0 X1JSUl9FTkMoQTJfdm1pbnViLCAgICAgICAgICIwMDExIiwiMTAxIiwiLSIsIjAwMCIsImRkZGRk IikKK0FMVTY0X1JSUl9FTkMoQTJfdm1pbmgsICAgICAgICAgICIwMDExIiwiMTAxIiwiLSIsIjAw MSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdm1pbnVoLCAgICAgICAgICIwMDExIiwiMTAx IiwiLSIsIjAxMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdm1pbncsICAgICAgICAgICIw MDExIiwiMTAxIiwiLSIsIjAxMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdm1pbnV3LCAg ICAgICAgICIwMDExIiwiMTAxIiwiLSIsIjEwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJf dm1heHV3LCAgICAgICAgICIwMDExIiwiMTAxIiwiLSIsIjEwMSIsImRkZGRkIikKK0FMVTY0X1JS Ul9FTkMoQTJfbWlucCwgICAgICAgICAgICIwMDExIiwiMTAxIiwiLSIsIjExMCIsImRkZGRkIikK K0FMVTY0X1JSUl9FTkMoQTJfbWludXAsICAgICAgICAgICIwMDExIiwiMTAxIiwiLSIsIjExMSIs ImRkZGRkIikKKworQUxVNjRfUlJSX0VOQyhBMl92bWF4dWIsICAgICAgICAgIjAwMTEiLCIxMTAi LCItIiwiMDAwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92bWF4aCwgICAgICAgICAgIjAw MTEiLCIxMTAiLCItIiwiMDAxIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92bWF4dWgsICAg ICAgICAgIjAwMTEiLCIxMTAiLCItIiwiMDEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92 bWF4dywgICAgICAgICAgIjAwMTEiLCIxMTAiLCItIiwiMDExIiwiZGRkZGQiKQorQUxVNjRfUlJS X0VOQyhBMl9tYXhwLCAgICAgICAgICAgIjAwMTEiLCIxMTAiLCItIiwiMTAwIiwiZGRkZGQiKQor QUxVNjRfUlJSX0VOQyhBMl9tYXh1cCwgICAgICAgICAgIjAwMTEiLCIxMTAiLCItIiwiMTAxIiwi ZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92bWF4YiwgICAgICAgICAgIjAwMTEiLCIxMTAiLCIt IiwiMTEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92bWluYiwgICAgICAgICAgIjAwMTEi LCIxMTAiLCItIiwiMTExIiwiZGRkZGQiKQorCitBTFU2NF9SUlJfRU5DKEEyX2FuZHAsICAgICAg ICAgICAiMDAxMSIsIjExMSIsIi0iLCIwMDAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX29y cCwgICAgICAgICAgICAiMDAxMSIsIjExMSIsIi0iLCIwMTAiLCJkZGRkZCIpCitBTFU2NF9SUlJf RU5DKEEyX3hvcnAsICAgICAgICAgICAiMDAxMSIsIjExMSIsIi0iLCIxMDAiLCJkZGRkZCIpCitB TFU2NF9SUlJfRU5DKEE0X2FuZG5wLCAgICAgICAgICAiMDAxMSIsIjExMSIsIi0iLCIwMDEiLCJk ZGRkZCIpCitBTFU2NF9SUlJfRU5DKEE0X29ybnAsICAgICAgICAgICAiMDAxMSIsIjExMSIsIi0i LCIwMTEiLCJkZGRkZCIpCisKK0FMVTY0X1JSUl9FTkMoQTRfbW9kd3JhcHUsICAgICAgICIwMDEx IiwiMTExIiwiLSIsIjExMSIsImRkZGRkIikKKworCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNM QVNTX0FMVTY0IiAwMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM0XSBSZGQ9KFJz LFJ0KSIpCitMRUdBQ1lfQUxVNjRfUlJSX0VOQyhTMl9wYWNraGwsICAiMDEwMCIsIi0tMCIsIi0i LCItLS0iLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEE0X2JpdHNwbGl0LCAgICAgICAiMDEwMCIs Ii0tMSIsIi0iLCItLS0iLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1Nf QUxVNjQiIDAxMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzVdIFJkPShScyxSdCki KQorQUxVNjRfUlJSX0VOQyhBMl9hZGRoX2wxNl9sbCwgICAgIjAxMDEiLCIwMDAiLCItIiwiMDAt IiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9hZGRoX2wxNl9obCwgICAgIjAxMDEiLCIwMDAi LCItIiwiMDEtIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9hZGRoX2wxNl9zYXRfbGwsIjAx MDEiLCIwMDAiLCItIiwiMTAtIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9hZGRoX2wxNl9z YXRfaGwsIjAxMDEiLCIwMDAiLCItIiwiMTEtIiwiZGRkZGQiKQorCitBTFU2NF9SUlJfRU5DKEEy X3N1YmhfbDE2X2xsLCAgICAiMDEwMSIsIjAwMSIsIi0iLCIwMC0iLCJkZGRkZCIpCitBTFU2NF9S UlJfRU5DKEEyX3N1YmhfbDE2X2hsLCAgICAiMDEwMSIsIjAwMSIsIi0iLCIwMS0iLCJkZGRkZCIp CitBTFU2NF9SUlJfRU5DKEEyX3N1YmhfbDE2X3NhdF9sbCwiMDEwMSIsIjAwMSIsIi0iLCIxMC0i LCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3N1YmhfbDE2X3NhdF9obCwiMDEwMSIsIjAwMSIs Ii0iLCIxMS0iLCJkZGRkZCIpCisKK0FMVTY0X1JSUl9FTkMoQTJfYWRkaF9oMTZfbGwsICAgICIw MTAxIiwiMDEwIiwiLSIsIjAwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfYWRkaF9oMTZf bGgsICAgICIwMTAxIiwiMDEwIiwiLSIsIjAwMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJf YWRkaF9oMTZfaGwsICAgICIwMTAxIiwiMDEwIiwiLSIsIjAxMCIsImRkZGRkIikKK0FMVTY0X1JS Ul9FTkMoQTJfYWRkaF9oMTZfaGgsICAgICIwMTAxIiwiMDEwIiwiLSIsIjAxMSIsImRkZGRkIikK K0FMVTY0X1JSUl9FTkMoQTJfYWRkaF9oMTZfc2F0X2xsLCIwMTAxIiwiMDEwIiwiLSIsIjEwMCIs ImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfYWRkaF9oMTZfc2F0X2xoLCIwMTAxIiwiMDEwIiwi LSIsIjEwMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfYWRkaF9oMTZfc2F0X2hsLCIwMTAx IiwiMDEwIiwiLSIsIjExMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfYWRkaF9oMTZfc2F0 X2hoLCIwMTAxIiwiMDEwIiwiLSIsIjExMSIsImRkZGRkIikKKworQUxVNjRfUlJSX0VOQyhBMl9z dWJoX2gxNl9sbCwgICAgIjAxMDEiLCIwMTEiLCItIiwiMDAwIiwiZGRkZGQiKQorQUxVNjRfUlJS X0VOQyhBMl9zdWJoX2gxNl9saCwgICAgIjAxMDEiLCIwMTEiLCItIiwiMDAxIiwiZGRkZGQiKQor QUxVNjRfUlJSX0VOQyhBMl9zdWJoX2gxNl9obCwgICAgIjAxMDEiLCIwMTEiLCItIiwiMDEwIiwi ZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9zdWJoX2gxNl9oaCwgICAgIjAxMDEiLCIwMTEiLCIt IiwiMDExIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9zdWJoX2gxNl9zYXRfbGwsIjAxMDEi LCIwMTEiLCItIiwiMTAwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9zdWJoX2gxNl9zYXRf bGgsIjAxMDEiLCIwMTEiLCItIiwiMTAxIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9zdWJo X2gxNl9zYXRfaGwsIjAxMDEiLCIwMTEiLCItIiwiMTEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VO QyhBMl9zdWJoX2gxNl9zYXRfaGgsIjAxMDEiLCIwMTEiLCItIiwiMTExIiwiZGRkZGQiKQorCitM RUdBQ1lfQUxVNjRfUlJSX0VOQyhBMl9hZGRzYXQsICAiMDEwMSIsIjEwMCIsIi0iLCIwLS0iLCJk ZGRkZCIpCitMRUdBQ1lfQUxVNjRfUlJSX0VOQyhBMl9zdWJzYXQsICAiMDEwMSIsIjEwMCIsIi0i LCIxLS0iLCJkZGRkZCIpCisKK0FMVTY0X1JSUl9FTkMoQTJfbWluLCAgICAgICAgICAgICIwMTAx IiwiMTAxIiwiLSIsIjAtLSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfbWludSwgICAgICAg ICAgICIwMTAxIiwiMTAxIiwiLSIsIjEtLSIsImRkZGRkIikKKworQUxVNjRfUlJSX0VOQyhBMl9t YXgsICAgICAgICAgICAgIjAxMDEiLCIxMTAiLCItIiwiMC0tIiwiZGRkZGQiKQorQUxVNjRfUlJS X0VOQyhBMl9tYXh1LCAgICAgICAgICAgIjAxMDEiLCIxMTAiLCItIiwiMS0tIiwiZGRkZGQiKQor CitBTFU2NF9SUlJfRU5DKFM0X3Bhcml0eSwgICAgICAgICAiMDEwMSIsIjExMSIsIi0iLCItLS0i LCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVNjQiIDAxMTAgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzZdIFJkPSN1MTAgIikKK0RFRl9FTkMzMihGMl9z ZmltbV9wLCAgICAgSUNMQVNTX0FMVTY0IiAwMTEwICAgMDBpIC0tLS0tIFBQaWlpaWlpIGlpaWRk ZGRkIikKK0RFRl9FTkMzMihGMl9zZmltbV9uLCAgICAgSUNMQVNTX0FMVTY0IiAwMTEwICAgMDFp IC0tLS0tIFBQaWlpaWlpIGlpaWRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFT U19BTFU2NCIgMDExMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjN10gUmQ9KFJzLFJ0 LCN1NikiKQorREVGX0VOQzMyKE00X21weXJyX2FkZGksICBJQ0xBU1NfQUxVNjQiIDAxMTEgICAw aWkgc3Nzc3MgUFBpdHR0dHQgaWlpZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNM QVNTX0FMVTY0IiAxMDAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM4XSBSZD0oUnMs I3U2LCNVNikiKQorREVGX0VOQzMyKE00X21weXJpX2FkZGksICBJQ0xBU1NfQUxVNjQiIDEwMDAg ICBJaWkgc3Nzc3MgUFBpZGRkZGQgaWlpSUlJSUkiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIo SUNMQVNTX0FMVTY0IiAxMDAxIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM5XSBSZGQ9 I3UxMCAiKQorREVGX0VOQzMyKEYyX2RmaW1tX3AsICAgICBJQ0xBU1NfQUxVNjQiIDEwMDEgICAw MGkgLS0tLS0gUFBpaWlpaWkgaWlpZGRkZGQiKQorREVGX0VOQzMyKEYyX2RmaW1tX24sICAgICBJ Q0xBU1NfQUxVNjQiIDEwMDEgICAwMWkgLS0tLS0gUFBpaWlpaWkgaWlpZGRkZGQiKQorCisKK0RF Rl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTY0IiAxMDEwIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIiwiWyMxMF0gUng9KFJzLFJ4LCNzMTApIikKK0RFRl9FTkMzMihTNF9vcl9hbmRpeCwg ICAgSUNMQVNTX0FMVTY0IiAxMDEwICAgMDFpIHh4eHh4IFBQaWlpaWlpIGlpaXV1dXV1IikKK0RF Rl9FTkMzMihTNF9vcl9hbmRpLCAgICAgSUNMQVNTX0FMVTY0IiAxMDEwICAgMDBpIHNzc3NzIFBQ aWlpaWlpIGlpaXh4eHh4IikKK0RFRl9FTkMzMihTNF9vcl9vcmksICAgICAgSUNMQVNTX0FMVTY0 IiAxMDEwICAgMTBpIHNzc3NzIFBQaWlpaWlpIGlpaXh4eHh4IikKKworCitERUZfRklFTERST1df REVTQzMyKElDTEFTU19BTFU2NCIgMTAxMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsj MTFdIFJkPShScyxSZCwjczYpIikKK0RFRl9FTkMzMihTNF9hZGRhZGRpLCAgICAgSUNMQVNTX0FM VTY0IiAxMDExICAgMGlpIHNzc3NzIFBQaWRkZGRkIGlpaXV1dXV1IikKK0RFRl9FTkMzMihTNF9z dWJhZGRpLCAgICAgSUNMQVNTX0FMVTY0IiAxMDExICAgMWlpIHNzc3NzIFBQaWRkZGRkIGlpaXV1 dXV1IikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19BTFU2NCIgICAgIDExMDAgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEyXSBQZD0oUnNzLCNzOCkiKQorREVGX0VOQzMy KEE0X3ZjbXBiZXFpLCAgIElDTEFTU19BTFU2NCIxMTAwIDAwMHNzc3NzIFBQLWlpaWlpIGlpaTAw LWRkIikKK0RFRl9FTkMzMihBNF92Y21wYmd0aSwgICBJQ0xBU1NfQUxVNjQiMTEwMCAwMDFzc3Nz cyBQUC1paWlpaSBpaWkwMC1kZCIpCitERUZfRU5DMzIoQTRfdmNtcGJndHVpLCAgSUNMQVNTX0FM VTY0IjExMDAgMDEwc3Nzc3MgUFAtMGlpaWkgaWlpMDAtZGQiKQorREVGX0VOQzMyKEE0X3ZjbXBo ZXFpLCAgIElDTEFTU19BTFU2NCIxMTAwIDAwMHNzc3NzIFBQLWlpaWlpIGlpaTAxLWRkIikKK0RF Rl9FTkMzMihBNF92Y21waGd0aSwgICBJQ0xBU1NfQUxVNjQiMTEwMCAwMDFzc3NzcyBQUC1paWlp aSBpaWkwMS1kZCIpCitERUZfRU5DMzIoQTRfdmNtcGhndHVpLCAgSUNMQVNTX0FMVTY0IjExMDAg MDEwc3Nzc3MgUFAtMGlpaWkgaWlpMDEtZGQiKQorREVGX0VOQzMyKEE0X3ZjbXB3ZXFpLCAgIElD TEFTU19BTFU2NCIxMTAwIDAwMHNzc3NzIFBQLWlpaWlpIGlpaTEwLWRkIikKK0RFRl9FTkMzMihB NF92Y21wd2d0aSwgICBJQ0xBU1NfQUxVNjQiMTEwMCAwMDFzc3NzcyBQUC1paWlpaSBpaWkxMC1k ZCIpCitERUZfRU5DMzIoQTRfdmNtcHdndHVpLCAgSUNMQVNTX0FMVTY0IjExMDAgMDEwc3Nzc3Mg UFAtMGlpaWkgaWlpMTAtZGQiKQorCitERUZfRU5DMzIoRjJfZGZjbGFzcywgICAgSUNMQVNTX0FM VTY0IjExMDAgMTAwc3Nzc3MgUFAtMDAwaWkgaWlpMTAtZGQiKQorCisKK0RFRl9GSUVMRFJPV19E RVNDMzIoSUNMQVNTX0FMVTY0IiAxMTAxIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMx M10gUGQ9KFJzLCNzOCkiKQorREVGX0VOQzMyKEE0X2NtcGJlcWksICAgIElDTEFTU19BTFU2NCIx MTAxIC0wMHNzc3NzIFBQLWlpaWlpIGlpaTAwLWRkIikKK0RFRl9FTkMzMihBNF9jbXBiZ3RpLCAg ICBJQ0xBU1NfQUxVNjQiMTEwMSAtMDFzc3NzcyBQUC1paWlpaSBpaWkwMC1kZCIpCitERUZfRU5D MzIoQTRfY21wYmd0dWksICAgSUNMQVNTX0FMVTY0IjExMDEgLTEwc3Nzc3MgUFAtMGlpaWkgaWlp MDAtZGQiKQorREVGX0VOQzMyKEE0X2NtcGhlcWksICAgIElDTEFTU19BTFU2NCIxMTAxIC0wMHNz c3NzIFBQLWlpaWlpIGlpaTAxLWRkIikKK0RFRl9FTkMzMihBNF9jbXBoZ3RpLCAgICBJQ0xBU1Nf QUxVNjQiMTEwMSAtMDFzc3NzcyBQUC1paWlpaSBpaWkwMS1kZCIpCitERUZfRU5DMzIoQTRfY21w aGd0dWksICAgSUNMQVNTX0FMVTY0IjExMDEgLTEwc3Nzc3MgUFAtMGlpaWkgaWlpMDEtZGQiKQor CisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTY0IiAxMTEwIC0tLS0tLS0tIFBQLS0t LS0tIC0tLS0tLS0tIiwiWyMxNF0gUng9KCN1OSxvcChSeCwjdTUpKSIpCisKKyNkZWZpbmUgT1Bf T1BJX1JJKFRBRyxPUEIpXAorREVGX0VOQzMyKFM0X2FuZGlfIyNUQUcjI19yaSxJQ0xBU1NfQUxV NjQiIDExMTAgaWlpeHh4eHggUFBpSUlJSUkgaWlpIk9QQiJpMDAtIilcCitERUZfRU5DMzIoUzRf b3JpXyMjVEFHIyNfcmksIElDTEFTU19BTFU2NCIgMTExMCBpaWl4eHh4eCBQUGlJSUlJSSBpaWki T1BCImkwMS0iKVwKK0RFRl9FTkMzMihTNF9hZGRpXyMjVEFHIyNfcmksSUNMQVNTX0FMVTY0IiAx MTEwIGlpaXh4eHh4IFBQaUlJSUlJIGlpaSJPUEIiaTEwLSIpXAorREVGX0VOQzMyKFM0X3N1Ymlf IyNUQUcjI19yaSxJQ0xBU1NfQUxVNjQiIDExMTAgaWlpeHh4eHggUFBpSUlJSUkgaWlpIk9QQiJp MTEtIikKKworT1BfT1BJX1JJKGFzbCwiMCIpCitPUF9PUElfUkkobHNyLCIxIikKKworCitERUZf RklFTERST1dfREVTQzMyKElDTEFTU19BTFU2NCIgMTExMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0t LS0tLSIsIlsjMTVdIFJkPShScyxSdSwjdTY6MikiKQorREVGX0VOQzMyKE00X21weXJpX2FkZHJf dTIsIElDTEFTU19BTFU2NCIgMTExMSAgIDBpaSBzc3NzcyBQUGlkZGRkZCBpaWl1dXV1dSIpCitE RUZfRU5DMzIoTTRfbXB5cmlfYWRkciwgICAgSUNMQVNTX0FMVTY0IiAxMTExICAgMWlpIHNzc3Nz IFBQaWRkZGRkIGlpaXV1dXV1IikKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVk L2VuY29kZV9zdWJpbnNuLmRlZiBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2VuY29kZV9zdWJp bnNuLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDJmYjUwCi0tLSAv ZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlX3N1Ymluc24uZGVm CkBAIC0wLDAgKzEsMTQ5IEBACisvKgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjEgUXVhbGNv bW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKworLyogREVGX0VOQ19T VUJJTlNOKFRBRywgQ0xBU1MsIEVOQ1NUUikgKi8KKworCisKKworLyoqKioqKioqKioqKioqKioq KioqKi8KKy8qIExkMS10eXBlIHN1Ymluc25zICovCisvKioqKioqKioqKioqKioqKioqKioqLwor REVGX0VOQ19TVUJJTlNOKFNMMV9sb2FkcmlfaW8sICAgU1VCSU5TTl9MMSwgIjBpaWlpc3Nzc2Rk ZGQiKQorREVGX0VOQ19TVUJJTlNOKFNMMV9sb2FkcnViX2lvLCAgU1VCSU5TTl9MMSwgIjFpaWlp c3Nzc2RkZGQiKQorCisvKioqKioqKioqKioqKioqKioqKioqLworLyogU3QxLXR5cGUgc3ViaW5z bnMgKi8KKy8qKioqKioqKioqKioqKioqKioqKiovCitERUZfRU5DX1NVQklOU04oU1MxX3N0b3Jl d19pbywgIFNVQklOU05fUzEsICIwaWkgaWlzc3NzdHR0dCIpCitERUZfRU5DX1NVQklOU04oU1Mx X3N0b3JlYl9pbywgIFNVQklOU05fUzEsICIxaWkgaWlzc3NzdHR0dCIpCisKKworLyoqKioqKioq KioqKioqKioqKioqKi8KKy8qIExkMi10eXBlIHN1Ymluc25zICovCisvKioqKioqKioqKioqKioq KioqKioqLworREVGX0VOQ19TVUJJTlNOKFNMMl9sb2FkcmhfaW8sICAgU1VCSU5TTl9MMiwgIjAw aSBpaXNzc3NkZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTTDJfbG9hZHJ1aF9pbywgIFNVQklOU05f TDIsICIwMWkgaWlzc3NzZGRkZCIpCitERUZfRU5DX1NVQklOU04oU0wyX2xvYWRyYl9pbywgICBT VUJJTlNOX0wyLCAiMTBpIGlpc3Nzc2RkZGQiKQorREVGX0VOQ19TVUJJTlNOKFNMMl9sb2Fkcmlf c3AsICAgU1VCSU5TTl9MMiwgIjExMSAwaWlpaWlkZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTTDJf bG9hZHJkX3NwLCAgIFNVQklOU05fTDIsICIxMTEgMTBpaWlpaWRkZCIpCisKK0RFRl9FTkNfU1VC SU5TTihTTDJfZGVhbGxvY2ZyYW1lLFNVQklOU05fTDIsICIxMTEgMTEwMC0tLTAtLSIpCisKK0RF Rl9FTkNfU1VCSU5TTihTTDJfcmV0dXJuLCAgICAgIFNVQklOU05fTDIsICIxMTEgMTEwMS0tLTAt LSIpCitERUZfRU5DX1NVQklOU04oU0wyX3JldHVybl90LCAgICBTVUJJTlNOX0wyLCAiMTExIDEx MDEtLS0xMDAiKQorREVGX0VOQ19TVUJJTlNOKFNMMl9yZXR1cm5fZiwgICAgU1VCSU5TTl9MMiwg IjExMSAxMTAxLS0tMTAxIikKK0RFRl9FTkNfU1VCSU5TTihTTDJfcmV0dXJuX3RuZXcsIFNVQklO U05fTDIsICIxMTEgMTEwMS0tLTExMCIpCitERUZfRU5DX1NVQklOU04oU0wyX3JldHVybl9mbmV3 LCBTVUJJTlNOX0wyLCAiMTExIDExMDEtLS0xMTEiKQorCitERUZfRU5DX1NVQklOU04oU0wyX2p1 bXByMzEsICAgICBTVUJJTlNOX0wyLCAiMTExIDExMTEtLS0wLS0iKQorREVGX0VOQ19TVUJJTlNO KFNMMl9qdW1wcjMxX3QsICAgU1VCSU5TTl9MMiwgIjExMSAxMTExLS0tMTAwIikKK0RFRl9FTkNf U1VCSU5TTihTTDJfanVtcHIzMV9mLCAgIFNVQklOU05fTDIsICIxMTEgMTExMS0tLTEwMSIpCitE RUZfRU5DX1NVQklOU04oU0wyX2p1bXByMzFfdG5ldyxTVUJJTlNOX0wyLCAiMTExIDExMTEtLS0x MTAiKQorREVGX0VOQ19TVUJJTlNOKFNMMl9qdW1wcjMxX2ZuZXcsU1VCSU5TTl9MMiwgIjExMSAx MTExLS0tMTExIikKKworCisvKioqKioqKioqKioqKioqKioqKioqLworLyogU3QyLXR5cGUgc3Vi aW5zbnMgKi8KKy8qKioqKioqKioqKioqKioqKioqKiovCitERUZfRU5DX1NVQklOU04oU1MyX3N0 b3JlaF9pbywgICBTVUJJTlNOX1MyLCAiMDBpIGlpc3Nzc3R0dHQiKQorREVGX0VOQ19TVUJJTlNO KFNTMl9zdG9yZXdfc3AsICAgU1VCSU5TTl9TMiwgIjAxMCAwaWlpaWl0dHR0IikKK0RFRl9FTkNf U1VCSU5TTihTUzJfc3RvcmVkX3NwLCAgIFNVQklOU05fUzIsICIwMTAgMWlpaWlpaXR0dCIpCisK K0RFRl9FTkNfU1VCSU5TTihTUzJfc3RvcmV3aTAsICAgIFNVQklOU05fUzIsICIxMDAgMDBzc3Nz aWlpaSIpCitERUZfRU5DX1NVQklOU04oU1MyX3N0b3Jld2kxLCAgICBTVUJJTlNOX1MyLCAiMTAw IDAxc3Nzc2lpaWkiKQorREVGX0VOQ19TVUJJTlNOKFNTMl9zdG9yZWJpMCwgICAgU1VCSU5TTl9T MiwgIjEwMCAxMHNzc3NpaWlpIikKK0RFRl9FTkNfU1VCSU5TTihTUzJfc3RvcmViaTEsICAgIFNV QklOU05fUzIsICIxMDAgMTFzc3NzaWlpaSIpCisKK0RFRl9FTkNfU1VCSU5TTihTUzJfYWxsb2Nm cmFtZSwgIFNVQklOU05fUzIsICIxMTEgMGlpaWlpLS0tLSIpCisKKworCisvKioqKioqKioqKioq KioqKioqKi8KKy8qIEEtdHlwZSBzdWJpbnNucyAqLworLyoqKioqKioqKioqKioqKioqKiovCitE RUZfRU5DX1NVQklOU04oU0ExX2FkZGksICAgICAgIFNVQklOU05fQSwgIjAwaSBpaWlpaWl4eHh4 IikKK0RFRl9FTkNfU1VCSU5TTihTQTFfc2V0aSwgICAgICAgU1VCSU5TTl9BLCAiMDEwIGlpaWlp aWRkZGQiKQorREVGX0VOQ19TVUJJTlNOKFNBMV9hZGRzcCwgICAgICBTVUJJTlNOX0EsICIwMTEg aWlpaWlpZGRkZCIpCisKK0RFRl9FTkNfU1VCSU5TTihTQTFfdGZyLCAgICAgICAgU1VCSU5TTl9B LCAiMTAwIDAwc3Nzc2RkZGQiKQorREVGX0VOQ19TVUJJTlNOKFNBMV9pbmMsICAgICAgICBTVUJJ TlNOX0EsICIxMDAgMDFzc3NzZGRkZCIpCitERUZfRU5DX1NVQklOU04oU0ExX2FuZDEsICAgICAg IFNVQklOU05fQSwgIjEwMCAxMHNzc3NkZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTQTFfZGVjLCAg ICAgICAgU1VCSU5TTl9BLCAiMTAwIDExc3Nzc2RkZGQiKQorCitERUZfRU5DX1NVQklOU04oU0Ex X3N4dGgsICAgICAgIFNVQklOU05fQSwgIjEwMSAwMHNzc3NkZGRkIikKK0RFRl9FTkNfU1VCSU5T TihTQTFfc3h0YiwgICAgICAgU1VCSU5TTl9BLCAiMTAxIDAxc3Nzc2RkZGQiKQorREVGX0VOQ19T VUJJTlNOKFNBMV96eHRoLCAgICAgICBTVUJJTlNOX0EsICIxMDEgMTBzc3NzZGRkZCIpCitERUZf RU5DX1NVQklOU04oU0ExX3p4dGIsICAgICAgIFNVQklOU05fQSwgIjEwMSAxMXNzc3NkZGRkIikK KworCitERUZfRU5DX1NVQklOU04oU0ExX2FkZHJ4LCAgICAgIFNVQklOU05fQSwgIjExMCAwMHNz c3N4eHh4IikKK0RFRl9FTkNfU1VCSU5TTihTQTFfY21wZXFpLCAgICAgU1VCSU5TTl9BLCAiMTEw IDAxc3Nzcy0taWkiKQorREVGX0VOQ19TVUJJTlNOKFNBMV9zZXRpbjEsICAgICBTVUJJTlNOX0Es ICIxMTAgMS0tMC0tZGRkZCIpCitERUZfRU5DX1NVQklOU04oU0ExX2NscnRuZXcsICAgIFNVQklO U05fQSwgIjExMCAxLS0xMDBkZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTQTFfY2xyZm5ldywgICAg U1VCSU5TTl9BLCAiMTEwIDEtLTEwMWRkZGQiKQorREVGX0VOQ19TVUJJTlNOKFNBMV9jbHJ0LCAg ICAgICBTVUJJTlNOX0EsICIxMTAgMS0tMTEwZGRkZCIpCitERUZfRU5DX1NVQklOU04oU0ExX2Ns cmYsICAgICAgIFNVQklOU05fQSwgIjExMCAxLS0xMTFkZGRkIikKKworCitERUZfRU5DX1NVQklO U04oU0ExX2NvbWJpbmUwaSwgIFNVQklOU05fQSwgIjExMSAtMC1paTAwZGRkIikKK0RFRl9FTkNf U1VCSU5TTihTQTFfY29tYmluZTFpLCAgU1VCSU5TTl9BLCAiMTExIC0wLWlpMDFkZGQiKQorREVG X0VOQ19TVUJJTlNOKFNBMV9jb21iaW5lMmksICBTVUJJTlNOX0EsICIxMTEgLTAtaWkxMGRkZCIp CitERUZfRU5DX1NVQklOU04oU0ExX2NvbWJpbmUzaSwgIFNVQklOU05fQSwgIjExMSAtMC1paTEx ZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTQTFfY29tYmluZXpyLCAgU1VCSU5TTl9BLCAiMTExIC0x c3NzczBkZGQiKQorREVGX0VOQ19TVUJJTlNOKFNBMV9jb21iaW5lcnosICBTVUJJTlNOX0EsICIx MTEgLTFzc3NzMWRkZCIpCisKKworCisKKy8qIG1heWJlIFI9Y21wZXEgPyAqLworCisKKy8qIEFk ZCBhIGdyb3VwIG9mIE5DSjogaWYgKFIubmV3PT0jMCkganVtcDpoaW50ICNyOSAqLworLyogQWRk IGEgZ3JvdXAgb2YgTkNKOiBpZiAoUi5uZXchPSMwKSBqdW1wOmhpbnQgI3I5ICovCisvKiBOQ0og Z29lcyB3aXRoIExEMSwgTEQyICovCisKKworCisKK0RFRl9GSUVMRDMyKCItLS0hICEhISEgISEh ISEhISEgRUUtLS0tLS0gLS0tLS0tLS0iLFNVQkZJRUxEX0JfU0xPVDEsIkI6IFNsb3QxIEluc3Ry dWN0aW9uIikKK0RFRl9GSUVMRDMyKCItLS0tIC0tLS0gLS0tLS0tLS0gRUUtISEhISEgISEhISEh ISEiLFNVQkZJRUxEX0FfU0xPVDAsIkE6IFNsb3QwIEluc3RydWN0aW9uIikKKworCisvKiBERUZf UEFDS0VEMzIoVEFHLCBDTEFTU0EsIENMQVNTQiwgRU5DU1RSKSAqLworCitERUZfUEFDS0VEMzIo UDJfUEFDS0VEX0wxX0wxLCBTVUJJTlNOX0wxLCBTVUJJTlNOX0wxLCAiMDAwQiBCQkJCIEJCQkIg QkJCQiBFRTBBIEFBQUEgQUFBQSBBQUFBIikKK0RFRl9QQUNLRUQzMihQMl9QQUNLRURfTDFfTDIs IFNVQklOU05fTDIsIFNVQklOU05fTDEsICIwMDBCIEJCQkIgQkJCQiBCQkJCIEVFMUEgQUFBQSBB QUFBIEFBQUEiKQorREVGX1BBQ0tFRDMyKFAyX1BBQ0tFRF9MMl9MMiwgU1VCSU5TTl9MMiwgU1VC SU5TTl9MMiwgIjAwMUIgQkJCQiBCQkJCIEJCQkIgRUUwQSBBQUFBIEFBQUEgQUFBQSIpCitERUZf UEFDS0VEMzIoUDJfUEFDS0VEX0FfQSwgICBTVUJJTlNOX0EsICBTVUJJTlNOX0EsICAiMDAxQiBC QkJCIEJCQkIgQkJCQiBFRTFBIEFBQUEgQUFBQSBBQUFBIikKKworREVGX1BBQ0tFRDMyKFAyX1BB Q0tFRF9MMV9BLCAgU1VCSU5TTl9MMSwgU1VCSU5TTl9BLCAgIjAxMEIgQkJCQiBCQkJCIEJCQkIg RUUwQSBBQUFBIEFBQUEgQUFBQSIpCitERUZfUEFDS0VEMzIoUDJfUEFDS0VEX0wyX0EsICBTVUJJ TlNOX0wyLCBTVUJJTlNOX0EsICAiMDEwQiBCQkJCIEJCQkIgQkJCQiBFRTFBIEFBQUEgQUFBQSBB QUFBIikKK0RFRl9QQUNLRUQzMihQMl9QQUNLRURfUzFfQSwgIFNVQklOU05fUzEsIFNVQklOU05f QSwgICIwMTFCIEJCQkIgQkJCQiBCQkJCIEVFMEEgQUFBQSBBQUFBIEFBQUEiKQorREVGX1BBQ0tF RDMyKFAyX1BBQ0tFRF9TMl9BLCAgU1VCSU5TTl9TMiwgU1VCSU5TTl9BLCAgIjAxMUIgQkJCQiBC QkJCIEJCQkIgRUUxQSBBQUFBIEFBQUEgQUFBQSIpCisKK0RFRl9QQUNLRUQzMihQMl9QQUNLRURf UzFfTDEsIFNVQklOU05fUzEsIFNVQklOU05fTDEsICIxMDBCIEJCQkIgQkJCQiBCQkJCIEVFMEEg QUFBQSBBQUFBIEFBQUEiKQorREVGX1BBQ0tFRDMyKFAyX1BBQ0tFRF9TMV9MMiwgU1VCSU5TTl9T MSwgU1VCSU5TTl9MMiwgIjEwMEIgQkJCQiBCQkJCIEJCQkIgRUUxQSBBQUFBIEFBQUEgQUFBQSIp CitERUZfUEFDS0VEMzIoUDJfUEFDS0VEX1MxX1MxLCBTVUJJTlNOX1MxLCBTVUJJTlNOX1MxLCAi MTAxQiBCQkJCIEJCQkIgQkJCQiBFRTBBIEFBQUEgQUFBQSBBQUFBIikKK0RFRl9QQUNLRUQzMihQ Ml9QQUNLRURfUzFfUzIsIFNVQklOU05fUzIsIFNVQklOU05fUzEsICIxMDFCIEJCQkIgQkJCQiBC QkJCIEVFMUEgQUFBQSBBQUFBIEFBQUEiKQorCitERUZfUEFDS0VEMzIoUDJfUEFDS0VEX1MyX0wx LCBTVUJJTlNOX1MyLCBTVUJJTlNOX0wxLCAiMTEwQiBCQkJCIEJCQkIgQkJCQiBFRTBBIEFBQUEg QUFBQSBBQUFBIikKK0RFRl9QQUNLRUQzMihQMl9QQUNLRURfUzJfTDIsIFNVQklOU05fUzIsIFNV QklOU05fTDIsICIxMTBCIEJCQkIgQkJCQiBCQkJCIEVFMUEgQUFBQSBBQUFBIEFBQUEiKQorREVG X1BBQ0tFRDMyKFAyX1BBQ0tFRF9TMl9TMiwgU1VCSU5TTl9TMiwgU1VCSU5TTl9TMiwgIjExMUIg QkJCQiBCQkJCIEJCQkIgRUUwQSBBQUFBIEFBQUEgQUFBQSIpCisKK0RFRl9QQUNLRUQzMihQMl9Q QUNLRURfUkVTRVJWRUQsIFNVQklOU05fSU5WQUxJRCwgU1VCSU5TTl9JTlZBTElELCAiMTExQiBC QkJCIEJCQkIgQkJCQiBFRTFBIEFBQUEgQUFBQSBBQUFBIikKZGlmZiAtLWdpdCBhL3RhcmdldC9o ZXhhZ29uL2ltcG9ydGVkL2Zsb2F0LmlkZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9mbG9h dC5pZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2Y2VjZmUKLS0tIC9k ZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9mbG9hdC5pZGVmCkBAIC0wLDAg KzEsMzEyIEBACisvKgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjEgUXVhbGNvbW0gSW5ub3Zh dGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKy8qCisgKiBGbG9hdGluZy1Qb2ludCBJ bnN0cnVjdGlvbnMKKyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qIFNjYWxhciBGUCAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCitRNklOU04oRjJfc2ZhZGQsIlJkMzI9c2ZhZGQo UnMzMixSdDMyKSIsQVRUUklCUygpLAorIkZsb2F0aW5nLVBvaW50IEFkZCIsCit7IFJkVj1mVU5G TE9BVChmRkxPQVQoUnNWKStmRkxPQVQoUnRWKSk7fSkKKworUTZJTlNOKEYyX3Nmc3ViLCJSZDMy PXNmc3ViKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJGbG9hdGluZy1Qb2ludCBTdWJ0cmFjdCIs Cit7IFJkVj1mVU5GTE9BVChmRkxPQVQoUnNWKS1mRkxPQVQoUnRWKSk7fSkKKworUTZJTlNOKEYy X3NmbXB5LCJSZDMyPXNmbXB5KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJGbG9hdGluZy1Qb2lu dCBNdWx0aXBseSIsCit7IFJkVj1mVU5GTE9BVChmU0ZNUFkoZkZMT0FUKFJzViksZkZMT0FUKFJ0 VikpKTt9KQorCitRNklOU04oRjJfc2ZmbWEsIlJ4MzIrPXNmbXB5KFJzMzIsUnQzMikiLEFUVFJJ QlMoKSwKKyJGbG9hdGluZy1Qb2ludCBGdXNlZCBNdWx0aXBseSBBZGQiLAoreyBSeFY9ZlVORkxP QVQoZkZNQUYoZkZMT0FUKFJzViksZkZMT0FUKFJ0ViksZkZMT0FUKFJ4VikpKTt9KQorCitRNklO U04oRjJfc2ZmbWFfc2MsIlJ4MzIrPXNmbXB5KFJzMzIsUnQzMixQdTQpOnNjYWxlIixBVFRSSUJT KCksCisiRmxvYXRpbmctUG9pbnQgRnVzZWQgTXVsdGlwbHkgQWRkIHcvIEFkZGl0aW9uYWwgU2Nh bGluZyAoMioqUHUpIiwKK3sKKyAgICBmSElERShzaXplNHNfdCB0bXA7KQorICAgIGZDSEVDS1NG TkFOMyhSeFYsUnhWLFJzVixSdFYpOworICAgIHRtcD1mVU5GTE9BVChmRk1BRlgoZkZMT0FUKFJz ViksZkZMT0FUKFJ0ViksZkZMT0FUKFJ4ViksUHVWKSk7CisgICAgaWYgKCEoKGZGTE9BVChSeFYp ID09IDAuMCkgJiYgZklTWkVST1BST0QoZkZMT0FUKFJzViksZkZMT0FUKFJ0VikpKSkgUnhWID0g dG1wOworfSkKKworUTZJTlNOKEYyX3NmZm1zLCJSeDMyLT1zZm1weShSczMyLFJ0MzIpIixBVFRS SUJTKCksCisiRmxvYXRpbmctUG9pbnQgRnVzZWQgTXVsdGlwbHkgQWRkIiwKK3sgUnhWPWZVTkZM T0FUKGZGTUFGKC1mRkxPQVQoUnNWKSxmRkxPQVQoUnRWKSxmRkxPQVQoUnhWKSkpOyB9KQorCitR NklOU04oRjJfc2ZmbWFfbGliLCJSeDMyKz1zZm1weShSczMyLFJ0MzIpOmxpYiIsQVRUUklCUygp LAorIkZsb2F0aW5nLVBvaW50IEZ1c2VkIE11bHRpcGx5IEFkZCBmb3IgTGlicmFyeSBSb3V0aW5l cyIsCit7IGZGUFNFVFJPVU5EX05FQVJFU1QoKTsgZkhJREUoaW50IGluZmlucDsgaW50IGluZm1p bnVzaW5mOyBzaXplNHNfdCB0bXA7KQorICBpbmZtaW51c2luZiA9ICgoaXNpbmYoZkZMT0FUKFJ4 VikpKSAmJgorICAgICAgICAgICAgICAgICAoZklTSU5GUFJPRChmRkxPQVQoUnNWKSxmRkxPQVQo UnRWKSkpICYmCisgICAgICAgICAgICAgICAgIChmR0VUQklUKDMxLFJzViBeIFJ4ViBeIFJ0Vikg IT0gMCkpOworICBpbmZpbnAgPSAoaXNpbmYoZkZMT0FUKFJ4VikpKSB8fCAoaXNpbmYoZkZMT0FU KFJ0VikpKSB8fCAoaXNpbmYoZkZMT0FUKFJzVikpKTsKKyAgZkNIRUNLU0ZOQU4zKFJ4VixSeFYs UnNWLFJ0Vik7CisgIHRtcD1mVU5GTE9BVChmRk1BRihmRkxPQVQoUnNWKSxmRkxPQVQoUnRWKSxm RkxPQVQoUnhWKSkpOworICBpZiAoISgoZkZMT0FUKFJ4VikgPT0gMC4wKSAmJiBmSVNaRVJPUFJP RChmRkxPQVQoUnNWKSxmRkxPQVQoUnRWKSkpKSBSeFYgPSB0bXA7CisgIGZGUENBTkNFTEZMQUdT KCk7CisgIGlmIChpc2luZihmRkxPQVQoUnhWKSkgJiYgIWluZmlucCkgUnhWID0gUnhWIC0gMTsK KyAgaWYgKGluZm1pbnVzaW5mKSBSeFYgPSAwOworfSkKKworUTZJTlNOKEYyX3NmZm1zX2xpYiwi UngzMi09c2ZtcHkoUnMzMixSdDMyKTpsaWIiLEFUVFJJQlMoKSwKKyJGbG9hdGluZy1Qb2ludCBG dXNlZCBNdWx0aXBseSBBZGQgZm9yIExpYnJhcnkgUm91dGluZXMiLAoreyBmRlBTRVRST1VORF9O RUFSRVNUKCk7IGZISURFKGludCBpbmZpbnA7IGludCBpbmZtaW51c2luZjsgc2l6ZTRzX3QgdG1w OykKKyAgaW5mbWludXNpbmYgPSAoKGlzaW5mKGZGTE9BVChSeFYpKSkgJiYKKyAgICAgICAgICAg ICAgICAgKGZJU0lORlBST0QoZkZMT0FUKFJzViksZkZMT0FUKFJ0VikpKSAmJgorICAgICAgICAg ICAgICAgICAoZkdFVEJJVCgzMSxSc1YgXiBSeFYgXiBSdFYpID09IDApKTsKKyAgaW5maW5wID0g KGlzaW5mKGZGTE9BVChSeFYpKSkgfHwgKGlzaW5mKGZGTE9BVChSdFYpKSkgfHwgKGlzaW5mKGZG TE9BVChSc1YpKSk7CisgIGZDSEVDS1NGTkFOMyhSeFYsUnhWLFJzVixSdFYpOworICB0bXA9ZlVO RkxPQVQoZkZNQUYoLWZGTE9BVChSc1YpLGZGTE9BVChSdFYpLGZGTE9BVChSeFYpKSk7CisgIGlm ICghKChmRkxPQVQoUnhWKSA9PSAwLjApICYmIGZJU1pFUk9QUk9EKGZGTE9BVChSc1YpLGZGTE9B VChSdFYpKSkpIFJ4ViA9IHRtcDsKKyAgZkZQQ0FOQ0VMRkxBR1MoKTsKKyAgaWYgKGlzaW5mKGZG TE9BVChSeFYpKSAmJiAhaW5maW5wKSBSeFYgPSBSeFYgLSAxOworICBpZiAoaW5mbWludXNpbmYp IFJ4ViA9IDA7Cit9KQorCisKK1E2SU5TTihGMl9zZmNtcGVxLCJQZDQ9c2ZjbXAuZXEoUnMzMixS dDMyKSIsQVRUUklCUygpLAorIkZsb2F0aW5nIFBvaW50IENvbXBhcmUgZm9yIEVxdWFsIiwKK3tQ ZFY9ZjhCSVRTT0YoZkZMT0FUKFJzVik9PWZGTE9BVChSdFYpKTt9KQorCitRNklOU04oRjJfc2Zj bXBndCwiUGQ0PXNmY21wLmd0KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJGbG9hdGluZy1Qb2lu dCBDb21wYXJlIGZvciBHcmVhdGVyIFRoYW4iLAore1BkVj1mOEJJVFNPRihmRkxPQVQoUnNWKT5m RkxPQVQoUnRWKSk7fSkKKworLyogY21wZ2UgaXMgbm90IHRoZSBzYW1lIGFzICFjbXBndChzd2Fw b3BzKSBpbiBJRUVFICovCisKK1E2SU5TTihGMl9zZmNtcGdlLCJQZDQ9c2ZjbXAuZ2UoUnMzMixS dDMyKSIsQVRUUklCUygpLAorIkZsb2F0aW5nLVBvaW50IENvbXBhcmUgZm9yIEdyZWF0ZXIgVGhh biAvIEVxdWFsIFRvIiwKK3tQZFY9ZjhCSVRTT0YoZkZMT0FUKFJzVik+PWZGTE9BVChSdFYpKTt9 KQorCisvKiBFdmVyeW9uZSBzZWVtcyB0byBoYXZlIHRoaXMuLi4gKi8KKworUTZJTlNOKEYyX3Nm Y21wdW8sIlBkND1zZmNtcC51byhSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiRmxvYXRpbmctUG9p bnQgQ29tcGFyZSBmb3IgVW5vcmRlcmVkIiwKK3tQZFY9ZjhCSVRTT0YoaXN1bm9yZGVyZWQoZkZM T0FUKFJzViksZkZMT0FUKFJ0VikpKTt9KQorCisKK1E2SU5TTihGMl9zZm1heCwiUmQzMj1zZm1h eChSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiTWF4aW11bSBvZiBGbG9hdGluZy1Qb2ludCB2YWx1 ZXMiLAoreyBSZFYgPSBmVU5GTE9BVChmU0ZfTUFYKGZGTE9BVChSc1YpLGZGTE9BVChSdFYpKSk7 IH0pCisKK1E2SU5TTihGMl9zZm1pbiwiUmQzMj1zZm1pbihSczMyLFJ0MzIpIixBVFRSSUJTKCks CisiTWluaW11bSBvZiBGbG9hdGluZy1Qb2ludCB2YWx1ZXMiLAoreyBSZFYgPSBmVU5GTE9BVChm U0ZfTUlOKGZGTE9BVChSc1YpLGZGTE9BVChSdFYpKSk7IH0pCisKKworUTZJTlNOKEYyX3NmY2xh c3MsIlBkND1zZmNsYXNzKFJzMzIsI3U1KSIsQVRUUklCUygpLAorIkNsYXNzaWZ5IEZsb2F0aW5n LVBvaW50IFZhbHVlIiwKK3sKKyAgICBmSElERShpbnQgY2xhc3M7KQorICAgIFBkViA9IDA7Cisg ICAgY2xhc3MgPSBmcGNsYXNzaWZ5KGZGTE9BVChSc1YpKTsKKyAgICAvKiBJcyB0aGUgdmFsdWUg emVybz8gKi8KKyAgICBpZiAoZkdFVEJJVCgwLHVpVikgJiYgKGNsYXNzID09IEZQX1pFUk8pKSBQ ZFYgPSAweGZmOworICAgIGlmIChmR0VUQklUKDEsdWlWKSAmJiAoY2xhc3MgPT0gRlBfTk9STUFM KSkgUGRWID0gMHhmZjsKKyAgICBpZiAoZkdFVEJJVCgyLHVpVikgJiYgKGNsYXNzID09IEZQX1NV Qk5PUk1BTCkpIFBkViA9IDB4ZmY7CisgICAgaWYgKGZHRVRCSVQoMyx1aVYpICYmIChjbGFzcyA9 PSBGUF9JTkZJTklURSkpIFBkViA9IDB4ZmY7CisgICAgaWYgKGZHRVRCSVQoNCx1aVYpICYmIChj bGFzcyA9PSBGUF9OQU4pKSBQZFYgPSAweGZmOworICAgIGZGUENBTkNFTEZMQUdTKCk7Cit9KQor CisvKiBSYW5nZTogKy8tICgxLjAgLi4gMSsoNjMvNjQpKSAqIDIqKigtNiAuLiArOSkgKi8KKy8q IE1vcmUgaW1tZWRpYXRlIGJpdHMgc2hvdWxkIHByb2JhYmx5IGJlIHVzZWQgZm9yIG1vcmUgcHJl Y2lzaW9uPyAqLworCitRNklOU04oRjJfc2ZpbW1fcCwiUmQzMj1zZm1ha2UoI3UxMCk6cG9zIixB VFRSSUJTKCksCisiTWFrZSBGbG9hdGluZyBQb2ludCBWYWx1ZSIsCit7CisgICAgUmRWID0gKDEy NyAtIDYpIDw8IDIzOworICAgIFJkViArPSB1aVYgPDwgMTc7Cit9KQorCitRNklOU04oRjJfc2Zp bW1fbiwiUmQzMj1zZm1ha2UoI3UxMCk6bmVnIixBVFRSSUJTKCksCisiTWFrZSBGbG9hdGluZyBQ b2ludCBWYWx1ZSIsCit7CisgICAgUmRWID0gKDEyNyAtIDYpIDw8IDIzOworICAgIFJkViArPSAo dWlWIDw8IDE3KTsKKyAgICBSZFYgfD0gKDEgPDwgMzEpOworfSkKKworCitRNklOU04oRjJfc2Zm aXh1cG4sIlJkMzI9c2ZmaXh1cG4oUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkZpeCBVcCBOdW1l cmF0b3IiLAoreworICAgIGZISURFKGludCBhZGp1c3Q7KQorICAgIGZTRl9SRUNJUF9DT01NT04o UnNWLFJ0VixSZFYsYWRqdXN0KTsKKyAgICBSZFYgPSBSc1Y7Cit9KQorCitRNklOU04oRjJfc2Zm aXh1cGQsIlJkMzI9c2ZmaXh1cGQoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkZpeCBVcCBEZW5v bWluYXRvciIsCit7CisgICAgZkhJREUoaW50IGFkanVzdDspCisgICAgZlNGX1JFQ0lQX0NPTU1P TihSc1YsUnRWLFJkVixhZGp1c3QpOworICAgIFJkViA9IFJ0VjsKK30pCisKK1E2SU5TTihGMl9z ZmZpeHVwciwiUmQzMj1zZmZpeHVwcihSczMyKSIsQVRUUklCUygpLAorIkZpeCBVcCBSYWRpY2Fu ZCIsCit7CisgICAgZkhJREUoaW50IGFkanVzdDspCisgICAgZlNGX0lOVlNRUlRfQ09NTU9OKFJz VixSZFYsYWRqdXN0KTsKKyAgICBSZFYgPSBSc1Y7Cit9KQorCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKy8qIFNjYWxhciBEUCAgICAgICAgICAgICAgICAgICAgICAg ICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitRNklOU04oRjJf ZGZhZGQsIlJkZDMyPWRmYWRkKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkZsb2F0aW5nLVBv aW50IEFkZCIsCit7IFJkZFY9ZlVORE9VQkxFKGZET1VCTEUoUnNzVikrZkRPVUJMRShSdHRWKSk7 fSkKKworUTZJTlNOKEYyX2Rmc3ViLCJSZGQzMj1kZnN1YihSc3MzMixSdHQzMikiLEFUVFJJQlMo KSwKKyJGbG9hdGluZy1Qb2ludCBTdWJ0cmFjdCIsCit7IFJkZFY9ZlVORE9VQkxFKGZET1VCTEUo UnNzViktZkRPVUJMRShSdHRWKSk7fSkKKworUTZJTlNOKEYyX2RmbWF4LCJSZGQzMj1kZm1heChS c3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJNYXhpbXVtIG9mIEZsb2F0aW5nLVBvaW50IHZhbHVl cyIsCit7IFJkZFYgPSBmVU5ET1VCTEUoZkRGX01BWChmRE9VQkxFKFJzc1YpLGZET1VCTEUoUnR0 VikpKTsgfSkKKworUTZJTlNOKEYyX2RmbWluLCJSZGQzMj1kZm1pbihSc3MzMixSdHQzMikiLEFU VFJJQlMoKSwKKyJNaW5pbXVtIG9mIEZsb2F0aW5nLVBvaW50IHZhbHVlcyIsCit7IFJkZFYgPSBm VU5ET1VCTEUoZkRGX01JTihmRE9VQkxFKFJzc1YpLGZET1VCTEUoUnR0VikpKTsgfSkKKworUTZJ TlNOKEYyX2RmbXB5Zml4LCJSZGQzMj1kZm1weWZpeChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwK KyJGaXggVXAgTXVsdGlwbGljYW5kIGZvciBNdWx0aXBsaWNhdGlvbiIsCit7CisgICAgaWYgKGZE Rl9JU0RFTk9STShSc3NWKSAmJiBmREZfSVNCSUcoUnR0VikgJiYgZkRGX0lTTk9STUFMKFJ0dFYp KSBSZGRWID0gZlVORE9VQkxFKGZET1VCTEUoUnNzVikgKiAweDEuMHA1Mik7CisgICAgZWxzZSBp ZiAoZkRGX0lTREVOT1JNKFJ0dFYpICYmIGZERl9JU0JJRyhSc3NWKSAmJiBmREZfSVNOT1JNQUwo UnNzVikpIFJkZFYgPSBmVU5ET1VCTEUoZkRPVUJMRShSc3NWKSAqIDB4MS4wcC01Mik7CisgICAg ZWxzZSBSZGRWID0gUnNzVjsKK30pCisKK1E2SU5TTihGMl9kZm1weWxsLCJSZGQzMj1kZm1weWxs KFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIk11bHRpcGx5IGxvdypsb3cgYW5kIHNoaWZ0IG9m ZiBsb3cgMzIgYml0cyBpbnRvIHN0aWNreSAoaW4gTVNCKSIsCit7CisgICAgZkhJREUoc2l6ZTh1 X3QgcHJvZDspCisgICAgcHJvZCA9IGZNUFkzMlVVKGZHRVRVV09SRCgwLFJzc1YpLGZHRVRVV09S RCgwLFJ0dFYpKTsKKyAgICBSZGRWID0gKHByb2QgPj4gMzIpIDw8IDE7CisgICAgaWYgKGZHRVRV V09SRCgwLHByb2QpICE9IDApIGZTRVRCSVQoMCxSZGRWLDEpOworfSkKKworUTZJTlNOKEYyX2Rm bXB5bGgsIlJ4eDMyKz1kZm1weWxoKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIk11bHRpcGx5 IGxvdypoaWdoIGFuZCBhY2N1bXVsYXRlIiwKK3sKKyAgICBSeHhWICs9IChmR0VUVVdPUkQoMCxS c3NWKSAqICgweDAwMTAwMDAwIHwgZlpYVE4oMjAsNjQsZkdFVFVXT1JEKDEsUnR0VikpKSkgPDwg MTsKK30pCisKK1E2SU5TTihGMl9kZm1weWhoLCJSeHgzMis9ZGZtcHloaChSc3MzMixSdHQzMiki LEFUVFJJQlMoKSwKKyJNdWx0aXBseSBoaWdoKmhpZ2ggYW5kIGFjY3VtdWxhdGUgd2l0aCBMKkgg dmFsdWUiLAoreworICAgIFJ4eFYgPSBmVU5ET1VCTEUoZkRGX01QWV9ISChmRE9VQkxFKFJzc1Yp LGZET1VCTEUoUnR0ViksUnh4VikpOworfSkKKworCisKK1E2SU5TTihGMl9kZmNtcGVxLCJQZDQ9 ZGZjbXAuZXEoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiRmxvYXRpbmcgUG9pbnQgQ29tcGFy ZSBmb3IgRXF1YWwiLAore1BkVj1mOEJJVFNPRihmRE9VQkxFKFJzc1YpPT1mRE9VQkxFKFJ0dFYp KTt9KQorCitRNklOU04oRjJfZGZjbXBndCwiUGQ0PWRmY21wLmd0KFJzczMyLFJ0dDMyKSIsQVRU UklCUygpLAorIkZsb2F0aW5nLVBvaW50IENvbXBhcmUgZm9yIEdyZWF0ZXIgVGhhbiIsCit7UGRW PWY4QklUU09GKGZET1VCTEUoUnNzVik+ZkRPVUJMRShSdHRWKSk7fSkKKworCisvKiBjbXBnZSBp cyBub3QgdGhlIHNhbWUgYXMgIWNtcGd0KHN3YXBvcHMpIGluIElFRUUgKi8KKworUTZJTlNOKEYy X2RmY21wZ2UsIlBkND1kZmNtcC5nZShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJGbG9hdGlu Zy1Qb2ludCBDb21wYXJlIGZvciBHcmVhdGVyIFRoYW4gLyBFcXVhbCBUbyIsCit7UGRWPWY4QklU U09GKGZET1VCTEUoUnNzVik+PWZET1VCTEUoUnR0VikpO30pCisKKy8qIEV2ZXJ5b25lIHNlZW1z IHRvIGhhdmUgdGhpcy4uLiAqLworCitRNklOU04oRjJfZGZjbXB1bywiUGQ0PWRmY21wLnVvKFJz czMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkZsb2F0aW5nLVBvaW50IENvbXBhcmUgZm9yIFVub3Jk ZXJlZCIsCit7UGRWPWY4QklUU09GKGlzdW5vcmRlcmVkKGZET1VCTEUoUnNzViksZkRPVUJMRShS dHRWKSkpO30pCisKKworUTZJTlNOKEYyX2RmY2xhc3MsIlBkND1kZmNsYXNzKFJzczMyLCN1NSki LEFUVFJJQlMoKSwKKyJDbGFzc2lmeSBGbG9hdGluZy1Qb2ludCBWYWx1ZSIsCit7CisgICAgZkhJ REUoaW50IGNsYXNzOykKKyAgICBQZFYgPSAwOworICAgIGNsYXNzID0gZnBjbGFzc2lmeShmRE9V QkxFKFJzc1YpKTsKKyAgICAvKiBJcyB0aGUgdmFsdWUgemVybz8gKi8KKyAgICBpZiAoZkdFVEJJ VCgwLHVpVikgJiYgKGNsYXNzID09IEZQX1pFUk8pKSBQZFYgPSAweGZmOworICAgIGlmIChmR0VU QklUKDEsdWlWKSAmJiAoY2xhc3MgPT0gRlBfTk9STUFMKSkgUGRWID0gMHhmZjsKKyAgICBpZiAo ZkdFVEJJVCgyLHVpVikgJiYgKGNsYXNzID09IEZQX1NVQk5PUk1BTCkpIFBkViA9IDB4ZmY7Cisg ICAgaWYgKGZHRVRCSVQoMyx1aVYpICYmIChjbGFzcyA9PSBGUF9JTkZJTklURSkpIFBkViA9IDB4 ZmY7CisgICAgaWYgKGZHRVRCSVQoNCx1aVYpICYmIChjbGFzcyA9PSBGUF9OQU4pKSBQZFYgPSAw eGZmOworICAgIGZGUENBTkNFTEZMQUdTKCk7Cit9KQorCisKKy8qIFJhbmdlOiArLy0gKDEuMCAu LiAxKyg2My82NCkpICogMioqKC02IC4uICs5KSAqLworLyogTW9yZSBpbW1lZGlhdGUgYml0cyBz aG91bGQgcHJvYmFibHkgYmUgdXNlZCBmb3IgbW9yZSBwcmVjaXNpb24/ICovCisKK1E2SU5TTihG Ml9kZmltbV9wLCJSZGQzMj1kZm1ha2UoI3UxMCk6cG9zIixBVFRSSUJTKCksCisiTWFrZSBGbG9h dGluZyBQb2ludCBWYWx1ZSIsCit7CisgICAgUmRkViA9ICgxMDIzVUxMIC0gNikgPDwgNTI7Cisg ICAgUmRkViArPSAoZkhJREUoKHNpemU4dV90KSl1aVYpIDw8IDQ2OworfSkKKworUTZJTlNOKEYy X2RmaW1tX24sIlJkZDMyPWRmbWFrZSgjdTEwKTpuZWciLEFUVFJJQlMoKSwKKyJNYWtlIEZsb2F0 aW5nIFBvaW50IFZhbHVlIiwKK3sKKyAgICBSZGRWID0gKDEwMjNVTEwgLSA2KSA8PCA1MjsKKyAg ICBSZGRWICs9IChmSElERSgoc2l6ZTh1X3QpKXVpVikgPDwgNDY7CisgICAgUmRkViB8PSAoKDFV TEwpIDw8IDYzKTsKK30pCisKKworLyogQ09OVkVSU0lPTiAqLworCisjZGVmaW5lIENPTlZFUlQo VEFHLERFU1QsREVTVFYsU1JDLFNSQ1YsT1VUQ0FTVCxPVVRUWVBFLElOQ0FTVCxJTlRZUEUsTU9E RVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKKyAgICBRNklOU04oRjJfY29udl8jI1RBRyMjTU9ERVRB RywjREVTVCI9Y29udmVydF8iI1RBRyIoIiNTUkMiKSIjTU9ERVNZTixBVFRSSUJTKCksIFwKKyAg ICAiRmxvYXRpbmcgcG9pbnQgZm9ybWF0IGNvbnZlcnNpb24iLCBcCisgICAgeyBNT0RFQkVIIERF U1RWID0gT1VUQ0FTVChjb252XyMjSU5UWVBFIyNfdG9fIyNPVVRUWVBFKElOQ0FTVChTUkNWKSkp OyB9KQorCitDT05WRVJUKHNmMmRmLFJkZDMyLFJkZFYsUnMzMixSc1YsZlVORE9VQkxFLGRmLGZG TE9BVCxzZiwsLCkKK0NPTlZFUlQoZGYyc2YsUmQzMixSZFYsUnNzMzIsUnNzVixmVU5GTE9BVCxz ZixmRE9VQkxFLGRmLCwsKQorCisjZGVmaW5lIEFMTElOVERTVChUQUdTVEFSVCxTUkMsU1JDVixJ TkNBU1QsSU5UWVBFLE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitDT05WRVJUKFRBR1NUQVJU IyN1dyxSZDMyLFJkVixTUkMsU1JDVixmQ0FTVDR1LDR1LElOQ0FTVCxJTlRZUEUsTU9ERVRBRyxN T0RFU1lOLE1PREVCRUgpIFwKK0NPTlZFUlQoVEFHU1RBUlQjI3csUmQzMixSZFYsU1JDLFNSQ1Ys ZkNBU1Q0cyw0cyxJTkNBU1QsSU5UWVBFLE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitDT05W RVJUKFRBR1NUQVJUIyN1ZCxSZGQzMixSZGRWLFNSQyxTUkNWLGZDQVNUOHUsOHUsSU5DQVNULElO VFlQRSxNT0RFVEFHLE1PREVTWU4sTU9ERUJFSCkgXAorQ09OVkVSVChUQUdTVEFSVCMjZCxSZGQz MixSZGRWLFNSQyxTUkNWLGZDQVNUOHMsOHMsSU5DQVNULElOVFlQRSxNT0RFVEFHLE1PREVTWU4s TU9ERUJFSCkKKworI2RlZmluZSBBTExGUERTVChUQUdTVEFSVCxTUkMsU1JDVixJTkNBU1QsSU5U WVBFLE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitDT05WRVJUKFRBR1NUQVJUIyNzZixSZDMy LFJkVixTUkMsU1JDVixmVU5GTE9BVCxzZixJTkNBU1QsSU5UWVBFLE1PREVUQUcsTU9ERVNZTixN T0RFQkVIKSBcCitDT05WRVJUKFRBR1NUQVJUIyNkZixSZGQzMixSZGRWLFNSQyxTUkNWLGZVTkRP VUJMRSxkZixJTkNBU1QsSU5UWVBFLE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKQorCisjZGVmaW5l IEFMTElOVFNSQyhHRU4sTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0dFTih1dyMjMixSczMy LFJzVixmQ0FTVDR1LDR1LE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitHRU4odyMjMixSczMy LFJzVixmQ0FTVDRzLDRzLE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitHRU4odWQjIzIsUnNz MzIsUnNzVixmQ0FTVDh1LDh1LE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitHRU4oZCMjMixS c3MzMixSc3NWLGZDQVNUOHMsOHMsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpCisKKyNkZWZpbmUg QUxMRlBTUkMoR0VOLE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitHRU4oc2YjIzIsUnMzMixS c1YsZkZMT0FULHNmLE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitHRU4oZGYjIzIsUnNzMzIs UnNzVixmRE9VQkxFLGRmLE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKQorCitBTExJTlRTUkMoQUxM RlBEU1QsLCwpCitBTExGUFNSQyhBTExJTlREU1QsLCwpCitBTExGUFNSQyhBTExJTlREU1QsX2No b3AsOmNob3AsZkZQU0VUUk9VTkRfQ0hPUCgpOykKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29u L2ltcG9ydGVkL2xkc3QuaWRlZiBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2xkc3QuaWRlZgpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGEyZWE0Ci0tLSAvZGV2L251bGwK KysrIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvbGRzdC5pZGVmCkBAIC0wLDAgKzEsMjg2IEBA CisvKgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjEgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50 ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorICovCisKKy8qCisgKiBMb2FkIGFuZCBTdG9yZSBpbnN0cnVjdGlv biBkZWZpbml0aW9ucworICovCisKKy8qIFRoZSBzZXQgb2YgYWRkcmVzc2luZyBtb2RlcyBzdGFu ZGFyZCB0byBhbGwgTG9hZCBpbnN0cnVjdGlvbnMgKi8KKyNkZWZpbmUgU1REX0xEX0FNT0RFUyhU QUcsT1BFUixERVNDUixBVFRSSUIsU0hGVCxTRU1BTlRJQ1MsU0NBTEUpXAorUTZJTlNOKEwyXyMj VEFHIyNfaW8sICBPUEVSIihSczMyKyNzMTE6IlNIRlQiKSIsICAgICAgICAgIEFUVFJJQixERVND Uix7ZklNTUVYVChzaVYpOyBmRUFfUkkoUnNWLHNpVik7IFNFTUFOVElDUzsgfSlcCitRNklOU04o TDRfIyNUQUcjI191ciwgIE9QRVIiKFJ0MzI8PCN1MisjVTYpIiwgICAgICAgICAgICAgQVRUUklC LERFU0NSLHtmTVVTVF9JTU1FWFQoVWlWKTsgZkVBX0lScyhVaVYsUnRWLHVpVik7IFNFTUFOVElD Uzt9KVwKK1E2SU5TTihMNF8jI1RBRyMjX2FwLCAgT1BFUiIoUmUzMj0jVTYpIiwgICAgICAgICAg ICAgICAgICBBVFRSSUIsREVTQ1Ise2ZNVVNUX0lNTUVYVChVaVYpOyBmRUFfSU1NKFVpVik7IFNF TUFOVElDUzsgUmVWPVVpVjsgfSlcCitRNklOU04oTDJfIyNUQUcjI19wciwgIE9QRVIiKFJ4MzIr K011MikiLCAgICAgICAgICAgICAgICAgQVRUUklCLERFU0NSLHtmRUFfUkVHKFJ4Vik7IGZQTV9N KFJ4VixNdVYpOyBTRU1BTlRJQ1M7fSlcCitRNklOU04oTDJfIyNUQUcjI19waSwgIE9QRVIiKFJ4 MzIrKyNzNDoiU0hGVCIpIiwgICAgICAgICAgQVRUUklCLERFU0NSLHtmRUFfUkVHKFJ4Vik7IGZQ TV9JKFJ4VixzaVYpOyBTRU1BTlRJQ1M7fSlcCisKKy8qIFRoZSBzZXQgb2YgMzItYml0IGxvYWQg aW5zdHJ1Y3Rpb25zICovCitTVERfTERfQU1PREVTKGxvYWRydWIsIlJkMzI9bWVtdWIiLCJMb2Fk IFVuc2lnbmVkIEJ5dGUiLEFUVFJJQlMoQV9MT0FEKSwiMCIsZkxPQUQoMSwxLHUsRUEsUmRWKSww KQorU1REX0xEX0FNT0RFUyhsb2FkcmIsICJSZDMyPW1lbWIiLCAiTG9hZCBzaWduZWQgQnl0ZSIs QVRUUklCUyhBX0xPQUQpLCIwIixmTE9BRCgxLDEscyxFQSxSZFYpLDApCitTVERfTERfQU1PREVT KGxvYWRydWgsIlJkMzI9bWVtdWgiLCJMb2FkIHVuc2lnbmVkIEhhbGYgaW50ZWdlciIsQVRUUklC UyhBX0xPQUQpLCIxIixmTE9BRCgxLDIsdSxFQSxSZFYpLDEpCitTVERfTERfQU1PREVTKGxvYWRy aCwgIlJkMzI9bWVtaCIsICJMb2FkIHNpZ25lZCBIYWxmIGludGVnZXIiLEFUVFJJQlMoQV9MT0FE KSwiMSIsZkxPQUQoMSwyLHMsRUEsUmRWKSwxKQorU1REX0xEX0FNT0RFUyhsb2FkcmksICJSZDMy PW1lbXciLCAiTG9hZCBXb3JkIixBVFRSSUJTKEFfTE9BRCksIjIiLGZMT0FEKDEsNCx1LEVBLFJk ViksMikKK1NURF9MRF9BTU9ERVMobG9hZHJkLCAiUmRkMzI9bWVtZCIsIkxvYWQgRG91YmxlIGlu dGVnZXIiLEFUVFJJQlMoQV9MT0FEKSwiMyIsZkxPQUQoMSw4LHUsRUEsUmRkViksMykKKworLyog VGhlIHNldCBvZiBhZGRyZXNzaW5nIG1vZGVzIHN0YW5kYXJkIHRvIGFsbCBTdG9yZSBpbnN0cnVj dGlvbnMgKi8KKyNkZWZpbmUgU1REX1NUX0FNT0RFUyhUQUcsREVTVCxPUEVSLERFU0NSLEFUVFJJ QixTSEZULFNFTUFOVElDUyxTQ0FMRSlcCitRNklOU04oUzJfIyNUQUcjI19pbywgIE9QRVIiKFJz MzIrI3MxMToiU0hGVCIpPSJERVNULCAgICAgQVRUUklCLERFU0NSLHtmSU1NRVhUKHNpVik7IGZF QV9SSShSc1Ysc2lWKTsgU0VNQU5USUNTOyB9KVwKK1E2SU5TTihTMl8jI1RBRyMjX3BpLCAgT1BF UiIoUngzMisrI3M0OiJTSEZUIik9IkRFU1QsICAgICBBVFRSSUIsREVTQ1Ise2ZFQV9SRUcoUnhW KTsgZlBNX0koUnhWLHNpVik7IFNFTUFOVElDUzsgfSlcCitRNklOU04oUzRfIyNUQUcjI19hcCwg IE9QRVIiKFJlMzI9I1U2KT0iREVTVCwgICAgICAgICAgICAgQVRUUklCLERFU0NSLHtmTVVTVF9J TU1FWFQoVWlWKTsgZkVBX0lNTShVaVYpOyBTRU1BTlRJQ1M7IFJlVj1VaVY7IH0pXAorUTZJTlNO KFMyXyMjVEFHIyNfcHIsICBPUEVSIihSeDMyKytNdTIpPSJERVNULCAgICAgICAgICAgIEFUVFJJ QixERVNDUix7ZkVBX1JFRyhSeFYpOyBmUE1fTShSeFYsTXVWKTsgU0VNQU5USUNTOyB9KVwKK1E2 SU5TTihTNF8jI1RBRyMjX3VyLCAgT1BFUiIoUnUzMjw8I3UyKyNVNik9IkRFU1QsICAgICAgICAg ICAgQVRUUklCLERFU0NSLHtmTVVTVF9JTU1FWFQoVWlWKTsgZkVBX0lScyhVaVYsUnVWLHVpVik7 IFNFTUFOVElDUzt9KVwKKworCisvKiBUaGUgc2V0IG9mIDMyLWJpdCBzdG9yZSBpbnN0cnVjdGlv bnMgKi8KK1NURF9TVF9BTU9ERVMoc3RvcmVyYiwgIlJ0MzIiLCAibWVtYiIsIlN0b3JlIEJ5dGUi LEFUVFJJQlMoQV9TVE9SRSksIjAiLGZTVE9SRSgxLDEsRUEsZkdFVEJZVEUoMCxSdFYpKSwwKQor U1REX1NUX0FNT0RFUyhzdG9yZXJoLCAiUnQzMiIsICJtZW1oIiwiU3RvcmUgSGFsZiBpbnRlZ2Vy IixBVFRSSUJTKEFfU1RPUkUpLCIxIixmU1RPUkUoMSwyLEVBLGZHRVRIQUxGKDAsUnRWKSksMSkK K1NURF9TVF9BTU9ERVMoc3RvcmVyZiwgIlJ0LkgzMiIsICJtZW1oIiwiU3RvcmUgVXBwZXIgSGFs ZiBpbnRlZ2VyIixBVFRSSUJTKEFfU1RPUkUpLCIxIixmU1RPUkUoMSwyLEVBLGZHRVRIQUxGKDEs UnRWKSksMSkKK1NURF9TVF9BTU9ERVMoc3RvcmVyaSwgIlJ0MzIiLCAibWVtdyIsIlN0b3JlIFdv cmQiLEFUVFJJQlMoQV9TVE9SRSksIjIiLGZTVE9SRSgxLDQsRUEsUnRWKSwyKQorU1REX1NUX0FN T0RFUyhzdG9yZXJkLCAiUnR0MzIiLCJtZW1kIiwiU3RvcmUgRG91YmxlIGludGVnZXIiLEFUVFJJ QlMoQV9TVE9SRSksIjMiLGZTVE9SRSgxLDgsRUEsUnR0ViksMykKK1NURF9TVF9BTU9ERVMoc3Rv cmVyaW5ldywgIk50OC5uZXciLCAibWVtdyIsIlN0b3JlIFdvcmQiLEFUVFJJQlMoQV9TVE9SRSks IjIiLGZTVE9SRSgxLDQsRUEsZk5FV1JFR19TVChOdE4pKSwyKQorU1REX1NUX0FNT0RFUyhzdG9y ZXJibmV3LCAiTnQ4Lm5ldyIsICJtZW1iIiwiU3RvcmUgQnl0ZSIsQVRUUklCUyhBX1NUT1JFKSwi MCIsZlNUT1JFKDEsMSxFQSxmR0VUQllURSgwLGZORVdSRUdfU1QoTnROKSkpLDApCitTVERfU1Rf QU1PREVTKHN0b3JlcmhuZXcsICJOdDgubmV3IiwgIm1lbWgiLCJTdG9yZSBIYWxmIGludGVnZXIi LEFUVFJJQlMoQV9TVE9SRSksIjEiLGZTVE9SRSgxLDIsRUEsZkdFVEhBTEYoMCxmTkVXUkVHX1NU KE50TikpKSwxKQorCisKK1E2SU5TTihTMl9hbGxvY2ZyYW1lLCJhbGxvY2ZyYW1lKFJ4MzIsI3Ux MTozKTpyYXciLCBBVFRSSUJTKEFfU1RPUkUsQV9SRVNUUklDVF9TTE9UME9OTFkpLCAiQWxsb2Nh dGUgc3RhY2sgZnJhbWUiLAoreyBmRUFfUkkoUnhWLC04KTsgZlNUT1JFKDEsOCxFQSxmRlJBTUVf U0NSQU1CTEUoKGZDQVNUOF84dShmUkVBRF9MUigpKSA8PCAzMikgfCBmQ0FTVDRfNHUoZlJFQURf RlAoKSkpKTsgZldSSVRFX0ZQKEVBKTsgZkZSQU1FQ0hFQ0soRUEtdWlWLEVBKTsgUnhWID0gRUEt dWlWOyB9KQorCisjZGVmaW5lIEFfUkVUVVJOIEFfUkVTVFJJQ1RfU0xPVDBPTkxZCisKK1E2SU5T TihMMl9kZWFsbG9jZnJhbWUsIlJkZDMyPWRlYWxsb2NmcmFtZShSczMyKTpyYXciLCBBVFRSSUJT KEFfTE9BRCksICJEZWFsbG9jYXRlIHN0YWNrIGZyYW1lIiwKK3sgZkhJREUoc2l6ZTh1X3QgdG1w OykgZkVBX1JFRyhSc1YpOworICBmTE9BRCgxLDgsdSxFQSx0bXApOworICBSZGRWID0gZkZSQU1F X1VOU0NSQU1CTEUodG1wKTsKKyAgZldSSVRFX1NQKEVBKzgpOyB9KQorCitRNklOU04oTDRfcmV0 dXJuLCJSZGQzMj1kZWFsbG9jX3JldHVybihSczMyKTpyYXciLCBBVFRSSUJTKEFfSklORElSLEFf TE9BRCxBX1JFVFVSTiksICJEZWFsbG9jYXRlIHN0YWNrIGZyYW1lIGFuZCByZXR1cm4iLAoreyBm SElERShzaXplOHVfdCB0bXA7KSBmRUFfUkVHKFJzVik7CisgIGZMT0FEKDEsOCx1LEVBLHRtcCk7 CisgIFJkZFYgPSBmRlJBTUVfVU5TQ1JBTUJMRSh0bXApOworICBmV1JJVEVfU1AoRUErOCk7Cisg IGZKVU1QUihSRUdfTFIsZkdFVFdPUkQoMSxSZGRWKSxDT0ZfVFlQRV9KVU1QUik7fSkKKworI2Rl ZmluZSBDT05EU0VNKFNSQ1JFRyxTVEFMTEJJVFMwLFNUQUxMQklUUzEsUFJFREZVTkMsUFJFREFS RyxTVEFMTFNQRUMsUFJFRENPTkQpIFwKK3sgXAorICAgIGZISURFKHNpemU4dV90IHRtcDspIFwK KyAgICBmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChQUkVERlVOQyMjUFJFRENPTkQoUFJFREFSRyks LFNUQUxMU1BFQyxTVEFMTEJJVFMwLFNUQUxMQklUUzEpOyBcCisgICAgZkVBX1JFRyhTUkNSRUcp OyBcCisgICAgaWYgKFBSRURGVU5DIyNQUkVEQ09ORChQUkVEQVJHKSkgeyBcCisgICAgICAgIGZM T0FEKDEsOCx1LEVBLHRtcCk7IFwKKyAgICAgICAgUmRkViA9IGZGUkFNRV9VTlNDUkFNQkxFKHRt cCk7IFwKKyAgICAgICAgZldSSVRFX1NQKEVBKzgpOyBcCisgICAgICAgIGZKVU1QUihSRUdfTFIs ZkdFVFdPUkQoMSxSZGRWKSxDT0ZfVFlQRV9KVU1QUik7IFwKKyAgICB9IGVsc2UgeyBcCisgICAg ICAgIExPQURfQ0FOQ0VMKEVBKTsgXAorICAgIH0gXAorfQorCisjZGVmaW5lIENPTkRfUkVUVVJO X1RGKFRHLFRHMixET1RORVcsU1RBTExCSVRTMCxTVEFMTEJJVFMxLFNUQUxMU1BFQyxBVFRSSUJT LFBSRURGVU5DLFBSRURBUkcsVF9OVCkgXAorICAgIFE2SU5TTihURyMjX3QjI1RHMiwiaWYgKFB2 NCJET1RORVciKSBSZGQzMj1kZWFsbG9jX3JldHVybihSczMyKSJUX05UIjpyYXciLEFUVFJJQlMs ImRlYWxsb2NhdGUgc3RhY2sgZnJhbWUgYW5kIHJldHVybiIsIFwKKyAgICBDT05EU0VNKFJzVixT VEFMTEJJVFMwLFNUQUxMQklUUzEsUFJFREZVTkMsUFJFREFSRyxTVEFMTFNQRUMsKSkgXAorICAg IFE2SU5TTihURyMjX2YjI1RHMiwiaWYgKCFQdjQiRE9UTkVXIikgUmRkMzI9ZGVhbGxvY19yZXR1 cm4oUnMzMikiVF9OVCI6cmF3IixBVFRSSUJTLCJkZWFsbG9jYXRlIHN0YWNrIGZyYW1lIGFuZCBy ZXR1cm4iLCBcCisgICAgQ09ORFNFTShSc1YsU1RBTExCSVRTMCxTVEFMTEJJVFMxLFBSRURGVU5D IyNOT1QsUFJFREFSRyxTVEFMTFNQRUMsKSkKKworI2RlZmluZSBDT05EX1JFVFVSTl9ORVcoVEcs U1RBTExCSVRTMCxTVEFMTEJJVFMxLEFUVFJJQlMpIFwKKyAgICBDT05EX1JFVFVSTl9URihURyxu ZXdfcHQsIi5uZXciLDEyLDAsU1BFQ1VMQVRFX1RBS0VOLEFUVFJJQlMsZkxTQk5FVyxQdk4sIjp0 IikgXAorICAgIENPTkRfUkVUVVJOX1RGKFRHLG5ld19wbnQsIi5uZXciLDEyLDAsU1BFQ1VMQVRF X05PVF9UQUtFTixBVFRSSUJTLGZMU0JORVcsUHZOLCI6bnQiKSBcCisKKyNkZWZpbmUgUkVUVVJO X0FUVFJJQlMgQV9MT0FELEFfUkVUVVJOCisKK0NPTkRfUkVUVVJOX1RGKEw0X3JldHVybiwsLDcs MCxTUEVDVUxBVEVfTk9UX1RBS0VOLEFUVFJJQlMoUkVUVVJOX0FUVFJJQlMsQV9KSU5ESVJPTEQp LGZMU0JPTEQsUHZWLCkKK0NPTkRfUkVUVVJOX05FVyhMNF9yZXR1cm4sMTIsMCxBVFRSSUJTKFJF VFVSTl9BVFRSSUJTLEFfSklORElSTkVXKSkKKworCisKKworUTZJTlNOKEwyX2xvYWR3X2xvY2tl ZCwiUmQzMj1tZW13X2xvY2tlZChSczMyKSIsIEFUVFJJQlMoQV9MT0FELEFfUkVTVFJJQ1RfU0xP VDBPTkxZKSwgIkxvYWQgd29yZCB3aXRoIGxvY2siLAoreyBmRUFfUkVHKFJzVik7IGZMT0FEX0xP Q0tFRCgxLDQsdSxFQSxSZFYpIH0pCisKKworUTZJTlNOKFMyX3N0b3Jld19sb2NrZWQsIm1lbXdf bG9ja2VkKFJzMzIsUGQ0KT1SdDMyIiwgQVRUUklCUyhBX1NUT1JFLEFfUkVTVFJJQ1RfU0xPVDBP TkxZKSwgIlN0b3JlIHdvcmQgd2l0aCBsb2NrIiwKK3sgZkVBX1JFRyhSc1YpOyBmU1RPUkVfTE9D S0VEKDEsNCxFQSxSdFYsUGRWKSB9KQorCisKK1E2SU5TTihMNF9sb2FkZF9sb2NrZWQsIlJkZDMy PW1lbWRfbG9ja2VkKFJzMzIpIiwgQVRUUklCUyhBX0xPQUQsQV9SRVNUUklDVF9TTE9UME9OTFkp LCAiTG9hZCBkb3VibGUgd2l0aCBsb2NrIiwKK3sgZkVBX1JFRyhSc1YpOyBmTE9BRF9MT0NLRUQo MSw4LHUsRUEsUmRkVikgfSkKKworUTZJTlNOKFM0X3N0b3JlZF9sb2NrZWQsIm1lbWRfbG9ja2Vk KFJzMzIsUGQ0KT1SdHQzMiIsIEFUVFJJQlMoQV9TVE9SRSxBX1JFU1RSSUNUX1NMT1QwT05MWSks ICJTdG9yZSB3b3JkIHdpdGggbG9jayIsCit7IGZFQV9SRUcoUnNWKTsgZlNUT1JFX0xPQ0tFRCgx LDgsRUEsUnR0VixQZFYpIH0pCisKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyog ICAgICAgICAgICAgICAgICAgICAgIFByZWRpY2F0ZWQgTERTVCAgICAgICAgICAgICAgICAgICAg ICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFNURF9QTERfQU1PREVT KFRBRyxPUEVSLERFU0NSLEFUVFJJQixTSEZULFNIRlROVU0sU0VNQU5USUNTKVwKK1E2SU5TTihM NF8jI1RBRyMjX3JyLCAgT1BFUiIoUnMzMitSdDMyPDwjdTIpIiwgICAgICAgICAgICBBVFRSSUIs REVTQ1Ise2ZFQV9SUnMoUnNWLFJ0Vix1aVYpOyBTRU1BTlRJQ1M7fSlcCitRNklOU04oTDJfcCMj VEFHIyN0X2lvLCAiaWYgKFB0NCkgIk9QRVIiKFJzMzIrI3U2OiJTSEZUIikiLCAgICAgICAgICAg IEFUVFJJQixERVNDUix7ZklNTUVYVCh1aVYpOyBmRUFfUkkoUnNWLHVpVik7IGlmKGZMU0JPTEQo UHRWKSl7U0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMMl9w IyNUQUcjI3RfcGksICJpZiAoUHQ0KSAiT1BFUiIoUngzMisrI3M0OiJTSEZUIikiLCAgICAgICAg ICAgQVRUUklCLERFU0NSLHtmRUFfUkVHKFJ4Vik7IGlmKGZMU0JPTEQoUHRWKSl7IGZQTV9JKFJ4 VixzaVYpOyBTRU1BTlRJQ1M7fSBlbHNlIHtMT0FEX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKEwy X3AjI1RBRyMjZl9pbywgImlmICghUHQ0KSAiT1BFUiIoUnMzMisjdTY6IlNIRlQiKSIsICAgICAg ICAgICBBVFRSSUIsREVTQ1Ise2ZJTU1FWFQodWlWKTsgZkVBX1JJKFJzVix1aVYpOyBpZihmTFNC T0xETk9UKFB0VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2 SU5TTihMMl9wIyNUQUcjI2ZfcGksICJpZiAoIVB0NCkgIk9QRVIiKFJ4MzIrKyNzNDoiU0hGVCIp IiwgICAgICAgICAgQVRUUklCLERFU0NSLHtmRUFfUkVHKFJ4Vik7IGlmKGZMU0JPTEROT1QoUHRW KSl7IGZQTV9JKFJ4VixzaVYpOyBTRU1BTlRJQ1M7fSBlbHNlIHtMT0FEX0NBTkNFTChFQSk7fX0p XAorUTZJTlNOKEwyX3AjI1RBRyMjdG5ld19pbywiaWYgKFB0NC5uZXcpICJPUEVSIihSczMyKyN1 NjoiU0hGVCIpIixBVFRSSUIsREVTQ1Ise2ZJTU1FWFQodWlWKTsgZkVBX1JJKFJzVix1aVYpOyBp ZiAoZkxTQk5FVyhQdE4pKSAgeyBTRU1BTlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319 KVwKK1E2SU5TTihMMl9wIyNUQUcjI2ZuZXdfaW8sImlmICghUHQ0Lm5ldykgIk9QRVIiKFJzMzIr I3U2OiJTSEZUIikiLEFUVFJJQixERVNDUix7ZklNTUVYVCh1aVYpOyBmRUFfUkkoUnNWLHVpVik7 IGlmIChmTFNCTkVXTk9UKFB0TikpIHsgU0VNQU5USUNTOyB9IGVsc2Uge0xPQURfQ0FOQ0VMKEVB KTt9fSlcCitRNklOU04oTDRfcCMjVEFHIyN0X3JyLCAiaWYgKFB2NCkgIk9QRVIiKFJzMzIrUnQz Mjw8I3UyKSIsICAgICAgICAgICAgQVRUUklCLERFU0NSLHtmRUFfUlJzKFJzVixSdFYsdWlWKTsg aWYoZkxTQk9MRChQdlYpKXsgU0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwK K1E2SU5TTihMNF9wIyNUQUcjI2ZfcnIsICJpZiAoIVB2NCkgIk9QRVIiKFJzMzIrUnQzMjw8I3Uy KSIsICAgICAgICAgICBBVFRSSUIsREVTQ1Ise2ZFQV9SUnMoUnNWLFJ0Vix1aVYpOyBpZihmTFNC T0xETk9UKFB2VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2 SU5TTihMNF9wIyNUQUcjI3RuZXdfcnIsImlmIChQdjQubmV3KSAiT1BFUiIoUnMzMitSdDMyPDwj dTIpIixBVFRSSUIsREVTQ1Ise2ZFQV9SUnMoUnNWLFJ0Vix1aVYpOyBpZiAoZkxTQk5FVyhQdk4p KSAgeyBTRU1BTlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMNF9w IyNUQUcjI2ZuZXdfcnIsImlmICghUHY0Lm5ldykgIk9QRVIiKFJzMzIrUnQzMjw8I3UyKSIsQVRU UklCLERFU0NSLHtmRUFfUlJzKFJzVixSdFYsdWlWKTsgaWYgKGZMU0JORVdOT1QoUHZOKSkgeyBT RU1BTlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMMl9wIyNUQUcj I3RuZXdfcGksICJpZiAoUHQ0Lm5ldykgIk9QRVIiKFJ4MzIrKyNzNDoiU0hGVCIpIiwgICAgICAg ICAgIEFUVFJJQixERVNDUix7ZkVBX1JFRyhSeFYpOyBpZihmTFNCTkVXKFB0TikpeyBmUE1fSShS eFYsc2lWKTsgU0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihM Ml9wIyNUQUcjI2ZuZXdfcGksICJpZiAoIVB0NC5uZXcpICJPUEVSIihSeDMyKysjczQ6IlNIRlQi KSIsICAgICAgICAgIEFUVFJJQixERVNDUix7ZkVBX1JFRyhSeFYpOyBpZihmTFNCTkVXTk9UKFB0 TikpeyBmUE1fSShSeFYsc2lWKTsgU0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319 KVwKK1E2SU5TTihMNF9wIyNUQUcjI3RfYWJzLCAiaWYgKFB0NCkgIk9QRVIiKCN1NikiLCAgICAg ICAgICAgIEFUVFJJQixERVNDUix7Zk1VU1RfSU1NRVhUKHVpVik7IGZFQV9JTU0odWlWKTsgaWYo ZkxTQk9MRChQdFYpKXsgU0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2 SU5TTihMNF9wIyNUQUcjI2ZfYWJzLCAiaWYgKCFQdDQpICJPUEVSIigjdTYpIiwgICAgICAgICAg IEFUVFJJQixERVNDUix7Zk1VU1RfSU1NRVhUKHVpVik7IGZFQV9JTU0odWlWKTsgaWYoZkxTQk9M RE5PVChQdFYpKXsgU0VNQU5USUNTOyB9IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9fSlcCitRNklO U04oTDRfcCMjVEFHIyN0bmV3X2FicywiaWYgKFB0NC5uZXcpICJPUEVSIigjdTYpIixBVFRSSUIs REVTQ1Ise2ZNVVNUX0lNTUVYVCh1aVYpOyBmRUFfSU1NKHVpVik7aWYgKGZMU0JORVcoUHROKSkg IHsgU0VNQU5USUNTOyB9IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9fSlcCitRNklOU04oTDRfcCMj VEFHIyNmbmV3X2FicywiaWYgKCFQdDQubmV3KSAiT1BFUiIoI3U2KSIsQVRUUklCLERFU0NSLHtm TVVTVF9JTU1FWFQodWlWKTsgZkVBX0lNTSh1aVYpO2lmIChmTFNCTkVXTk9UKFB0TikpIHsgU0VN QU5USUNTOyB9IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9fSkKKworCisKKy8qIFRoZSBzZXQgb2Yg MzItYml0IHByZWRpY2F0ZWQgbG9hZCBpbnN0cnVjdGlvbnMgKi8KK1NURF9QTERfQU1PREVTKGxv YWRydWIsIlJkMzI9bWVtdWIiLCJMb2FkIFVuc2lnbmVkIEJ5dGUiLEFUVFJJQlMoQV9BUkNIVjIs QV9MT0FEKSwiMCIsMCxmTE9BRCgxLDEsdSxFQSxSZFYpKQorU1REX1BMRF9BTU9ERVMobG9hZHJi LCAiUmQzMj1tZW1iIiwgIkxvYWQgc2lnbmVkIEJ5dGUiLEFUVFJJQlMoQV9BUkNIVjIsQV9MT0FE KSwiMCIsMCxmTE9BRCgxLDEscyxFQSxSZFYpKQorU1REX1BMRF9BTU9ERVMobG9hZHJ1aCwiUmQz Mj1tZW11aCIsIkxvYWQgdW5zaWduZWQgSGFsZiBpbnRlZ2VyIixBVFRSSUJTKEFfQVJDSFYyLEFf TE9BRCksIjEiLDEsZkxPQUQoMSwyLHUsRUEsUmRWKSkKK1NURF9QTERfQU1PREVTKGxvYWRyaCwg IlJkMzI9bWVtaCIsICJMb2FkIHNpZ25lZCBIYWxmIGludGVnZXIiLEFUVFJJQlMoQV9BUkNIVjIs QV9MT0FEKSwiMSIsMSxmTE9BRCgxLDIscyxFQSxSZFYpKQorU1REX1BMRF9BTU9ERVMobG9hZHJp LCAiUmQzMj1tZW13IiwgIkxvYWQgV29yZCIsQVRUUklCUyhBX0FSQ0hWMixBX0xPQUQpLCIyIiwy LGZMT0FEKDEsNCx1LEVBLFJkVikpCitTVERfUExEX0FNT0RFUyhsb2FkcmQsICJSZGQzMj1tZW1k IiwiTG9hZCBEb3VibGUgaW50ZWdlciIsQVRUUklCUyhBX0FSQ0hWMixBX0xPQUQpLCIzIiwzLGZM T0FEKDEsOCx1LEVBLFJkZFYpKQorCisvKiBUaGUgc2V0IG9mIGFkZHJlc3NpbmcgbW9kZXMgc3Rh bmRhcmQgdG8gYWxsIHByZWRpY2F0ZWQgc3RvcmUgaW5zdHJ1Y3Rpb25zICovCisjZGVmaW5lIFNU RF9QU1RfQU1PREVTKFRBRyxERVNULE9QRVIsREVTQ1IsQVRUUklCLFNIRlQsU0hGVE5VTSxTRU1B TlRJQ1MpXAorUTZJTlNOKFM0XyMjVEFHIyNfcnIsICBPUEVSIihSczMyK1J1MzI8PCN1Mik9IkRF U1QsICAgICAgICAgICAgQVRUUklCLERFU0NSLHtmRUFfUlJzKFJzVixSdVYsdWlWKTsgU0VNQU5U SUNTO30pXAorUTZJTlNOKFMyX3AjI1RBRyMjdF9pbywgImlmIChQdjQpICJPUEVSIihSczMyKyN1 NjoiU0hGVCIpPSJERVNULCAgICAgQVRUUklCLERFU0NSLHtmSU1NRVhUKHVpVik7IGZFQV9SSShS c1YsdWlWKTsgaWYgKGZMU0JPTEQoUHZWKSl7IFNFTUFOVElDUzsgfSBlbHNlIHtTVE9SRV9DQU5D RUwoRUEpO319KVwKK1E2SU5TTihTMl9wIyNUQUcjI3RfcGksICJpZiAoUHY0KSAiT1BFUiIoUngz MisrI3M0OiJTSEZUIik9IkRFU1QsICAgICBBVFRSSUIsREVTQ1Ise2ZFQV9SRUcoUnhWKTsgaWYg KGZMU0JPTEQoUHZWKSl7IGZQTV9JKFJ4VixzaVYpOyBTRU1BTlRJQ1M7fSBlbHNlIHtTVE9SRV9D QU5DRUwoRUEpO319KVwKK1E2SU5TTihTMl9wIyNUQUcjI2ZfaW8sICJpZiAoIVB2NCkgIk9QRVIi KFJzMzIrI3U2OiJTSEZUIik9IkRFU1QsICAgICBBVFRSSUIsREVTQ1Ise2ZJTU1FWFQodWlWKTsg ZkVBX1JJKFJzVix1aVYpOyBpZiAoZkxTQk9MRE5PVChQdlYpKXsgU0VNQU5USUNTOyB9IGVsc2Ug e1NUT1JFX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKFMyX3AjI1RBRyMjZl9waSwgImlmICghUHY0 KSAiT1BFUiIoUngzMisrI3M0OiJTSEZUIik9IkRFU1QsICAgICBBVFRSSUIsREVTQ1Ise2ZFQV9S RUcoUnhWKTsgaWYgKGZMU0JPTEROT1QoUHZWKSl7IGZQTV9JKFJ4VixzaVYpOyBTRU1BTlRJQ1M7 fSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTNF9wIyNUQUcjI3RfcnIsICJp ZiAoUHY0KSAiT1BFUiIoUnMzMitSdTMyPDwjdTIpPSJERVNULCAgICAgQVRUUklCLERFU0NSLHtm RUFfUlJzKFJzVixSdVYsdWlWKTsgaWYgKGZMU0JPTEQoUHZWKSl7IFNFTUFOVElDUzsgfSBlbHNl IHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTNF9wIyNUQUcjI2ZfcnIsICJpZiAoIVB2 NCkgIk9QRVIiKFJzMzIrUnUzMjw8I3UyKT0iREVTVCwgICAgIEFUVFJJQixERVNDUix7ZkVBX1JS cyhSc1YsUnVWLHVpVik7IGlmIChmTFNCT0xETk9UKFB2VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7 U1RPUkVfQ0FOQ0VMKEVBKTt9fSlcCitRNklOU04oUzRfcCMjVEFHIyN0bmV3X2lvLCJpZiAoUHY0 Lm5ldykgIk9QRVIiKFJzMzIrI3U2OiJTSEZUIik9IkRFU1QsQVRUUklCLERFU0NSLHtmSU1NRVhU KHVpVik7IGZFQV9SSShSc1YsdWlWKTsgaWYgKCBmTFNCTkVXKFB2TikpIHsgU0VNQU5USUNTOyB9 IGVsc2Uge1NUT1JFX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKFM0X3AjI1RBRyMjZm5ld19pbywi aWYgKCFQdjQubmV3KSAiT1BFUiIoUnMzMisjdTY6IlNIRlQiKT0iREVTVCxBVFRSSUIsREVTQ1Is e2ZJTU1FWFQodWlWKTsgZkVBX1JJKFJzVix1aVYpOyBpZiAoZkxTQk5FV05PVChQdk4pKSB7IFNF TUFOVElDUzsgfSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTNF9wIyNUQUcj I3RuZXdfcnIsImlmIChQdjQubmV3KSAiT1BFUiIoUnMzMitSdTMyPDwjdTIpPSJERVNULEFUVFJJ QixERVNDUix7ZkVBX1JScyhSc1YsUnVWLHVpVik7IGlmICggZkxTQk5FVyhQdk4pKSB7IFNFTUFO VElDUzsgfSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTNF9wIyNUQUcjI2Zu ZXdfcnIsImlmICghUHY0Lm5ldykgIk9QRVIiKFJzMzIrUnUzMjw8I3UyKT0iREVTVCxBVFRSSUIs REVTQ1Ise2ZFQV9SUnMoUnNWLFJ1Vix1aVYpOyBpZiAoZkxTQk5FV05PVChQdk4pKSB7IFNFTUFO VElDUzsgfSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTMl9wIyNUQUcjI3Ru ZXdfcGksICJpZiAoUHY0Lm5ldykgIk9QRVIiKFJ4MzIrKyNzNDoiU0hGVCIpPSJERVNULCAgICAg QVRUUklCLERFU0NSLHtmRUFfUkVHKFJ4Vik7IGlmIChmTFNCTkVXKFB2TikpeyBmUE1fSShSeFYs c2lWKTsgU0VNQU5USUNTO30gZWxzZSB7U1RPUkVfQ0FOQ0VMKEVBKTt9fSlcCitRNklOU04oUzJf cCMjVEFHIyNmbmV3X3BpLCAiaWYgKCFQdjQubmV3KSAiT1BFUiIoUngzMisrI3M0OiJTSEZUIik9 IkRFU1QsICAgICBBVFRSSUIsREVTQ1Ise2ZFQV9SRUcoUnhWKTsgaWYgKGZMU0JORVdOT1QoUHZO KSl7IGZQTV9JKFJ4VixzaVYpOyBTRU1BTlRJQ1M7fSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319 KVwKK1E2SU5TTihTNF9wIyNUQUcjI3RfYWJzLCAiaWYgKFB2NCkgIk9QRVIiKCN1Nik9IkRFU1Qs ICAgICBBVFRSSUIsREVTQ1Ise2ZNVVNUX0lNTUVYVCh1aVYpOyBmRUFfSU1NKHVpVik7IGlmIChm TFNCT0xEKFB2VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7U1RPUkVfQ0FOQ0VMKEVBKTt9fSlcCitR NklOU04oUzRfcCMjVEFHIyNmX2FicywgImlmICghUHY0KSAiT1BFUiIoI3U2KT0iREVTVCwgICAg IEFUVFJJQixERVNDUix7Zk1VU1RfSU1NRVhUKHVpVik7ZkVBX0lNTSh1aVYpOyBpZiAoZkxTQk9M RE5PVChQdlYpKXsgU0VNQU5USUNTOyB9IGVsc2Uge1NUT1JFX0NBTkNFTChFQSk7fX0pXAorUTZJ TlNOKFM0X3AjI1RBRyMjdG5ld19hYnMsImlmIChQdjQubmV3KSAiT1BFUiIoI3U2KT0iREVTVCxB VFRSSUIsREVTQ1Ise2ZNVVNUX0lNTUVYVCh1aVYpO2ZFQV9JTU0odWlWKTsgaWYgKCBmTFNCTkVX KFB2TikpIHsgU0VNQU5USUNTOyB9IGVsc2Uge1NUT1JFX0NBTkNFTChFQSk7fX0pXAorUTZJTlNO KFM0X3AjI1RBRyMjZm5ld19hYnMsImlmICghUHY0Lm5ldykgIk9QRVIiKCN1Nik9IkRFU1QsQVRU UklCLERFU0NSLHtmTVVTVF9JTU1FWFQodWlWKTtmRUFfSU1NKHVpVik7IGlmIChmTFNCTkVXTk9U KFB2TikpIHsgU0VNQU5USUNTOyB9IGVsc2Uge1NUT1JFX0NBTkNFTChFQSk7fX0pCisKKworCisK Ky8qIFRoZSBzZXQgb2YgMzItYml0IHByZWRpY2F0ZWQgc3RvcmUgaW5zdHJ1Y3Rpb25zICovCitT VERfUFNUX0FNT0RFUyhzdG9yZXJiLCJSdDMyIiwibWVtYiIsIlN0b3JlIEJ5dGUiLEFUVFJJQlMo QV9BUkNIVjIsQV9TVE9SRSksIjAiLDAsZlNUT1JFKDEsMSxFQSxmR0VUQllURSgwLFJ0VikpKQor U1REX1BTVF9BTU9ERVMoc3RvcmVyaCwiUnQzMiIsIm1lbWgiLCJTdG9yZSBIYWxmIGludGVnZXIi LEFUVFJJQlMoQV9BUkNIVjIsQV9TVE9SRSksIjEiLDEsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigw LFJ0VikpKQorU1REX1BTVF9BTU9ERVMoc3RvcmVyZiwiUnQuSDMyIiwibWVtaCIsIlN0b3JlIFVw cGVyIEhhbGYgaW50ZWdlciIsQVRUUklCUyhBX0FSQ0hWMixBX1NUT1JFKSwiMSIsMSxmU1RPUkUo MSwyLEVBLGZHRVRIQUxGKDEsUnRWKSkpCitTVERfUFNUX0FNT0RFUyhzdG9yZXJpLCJSdDMyIiwi bWVtdyIsIlN0b3JlIFdvcmQiLEFUVFJJQlMoQV9BUkNIVjIsQV9TVE9SRSksIjIiLDIsZlNUT1JF KDEsNCxFQSxSdFYpKQorU1REX1BTVF9BTU9ERVMoc3RvcmVyZCwiUnR0MzIiLCJtZW1kIiwiU3Rv cmUgRG91YmxlIGludGVnZXIiLEFUVFJJQlMoQV9BUkNIVjIsQV9TVE9SRSksIjMiLDMsZlNUT1JF KDEsOCxFQSxSdHRWKSkKK1NURF9QU1RfQU1PREVTKHN0b3JlcmluZXcsIk50OC5uZXciLCJtZW13 IiwiU3RvcmUgV29yZCIsQVRUUklCUyhBX0FSQ0hWMixBX1NUT1JFKSwiMiIsMixmU1RPUkUoMSw0 LEVBLGZORVdSRUdfU1QoTnROKSkpCitTVERfUFNUX0FNT0RFUyhzdG9yZXJibmV3LCJOdDgubmV3 IiwibWVtYiIsIlN0b3JlIEJ5dGUiLEFUVFJJQlMoQV9BUkNIVjIsQV9TVE9SRSksIjAiLDAsZlNU T1JFKDEsMSxFQSxmR0VUQllURSgwLGZORVdSRUdfU1QoTnROKSkpKQorU1REX1BTVF9BTU9ERVMo c3RvcmVyaG5ldywiTnQ4Lm5ldyIsIm1lbWgiLCJTdG9yZSBIYWxmIGludGVnZXIiLEFUVFJJQlMo QV9BUkNIVjIsQV9TVE9SRSksIjEiLDEsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigwLGZORVdSRUdf U1QoTnROKSkpKQorCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAg ICAgICAgICAgICAgTWVtLU9wcyAoTG9hZC1vcC1TdG9yZSkgICAgICAgICAgICAgICAgICovCisv KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisKKy8qIFRoZSBzZXQgb2YgMzItYml0IG5vbi1wcmVkaWNh dGVkIG1lbS1vcHMgKi8KKyNkZWZpbmUgU1REX01FTU9QX0FNT0RFUyhUQUcsT1BFUixERVNDUixT RU1BTlRJQ1MpXAorUTZJTlNOKEw0XyMjVEFHIyN3X2lvLCAgIm1lbXcoUnMzMisjdTY6MikiT1BF UiwgICAgIEFUVFJJQlMoQV9SRVNUUklDVF9TTE9UME9OTFkpLERFU0NSLHtmSU1NRVhUKHVpVik7 IGZFQV9SSShSc1YsdWlWKTsgZkhJREUoc2l6ZTRzX3QgdG1wOykgZkxPQUQoMSw0LHMsRUEsdG1w KTsgU0VNQU5USUNTOyAgZlNUT1JFKDEsNCxFQSx0bXApOyB9KVwKK1E2SU5TTihMNF8jI1RBRyMj Yl9pbywgICJtZW1iKFJzMzIrI3U2OjApIk9QRVIsICAgICBBVFRSSUJTKEFfUkVTVFJJQ1RfU0xP VDBPTkxZKSxERVNDUix7ZklNTUVYVCh1aVYpOyBmRUFfUkkoUnNWLHVpVik7IGZISURFKHNpemU0 c190IHRtcDspIGZMT0FEKDEsMSxzLEVBLHRtcCk7IFNFTUFOVElDUzsgIGZTVE9SRSgxLDEsRUEs dG1wKTsgfSlcCitRNklOU04oTDRfIyNUQUcjI2hfaW8sICAibWVtaChSczMyKyN1NjoxKSJPUEVS LCAgICAgQVRUUklCUyhBX1JFU1RSSUNUX1NMT1QwT05MWSksREVTQ1Ise2ZJTU1FWFQodWlWKTsg ZkVBX1JJKFJzVix1aVYpOyBmSElERShzaXplNHNfdCB0bXA7KSBmTE9BRCgxLDIscyxFQSx0bXAp OyBTRU1BTlRJQ1M7ICBmU1RPUkUoMSwyLEVBLHRtcCk7IH0pCisKKworCitTVERfTUVNT1BfQU1P REVTKGFkZF9tZW1vcCwgIis9UnQzMiIsICJBZGQgUmVnaXN0ZXIgdG8gTWVtb3J5IFdvcmQiLCB0 bXAgKz0gUnRWKQorU1REX01FTU9QX0FNT0RFUyhzdWJfbWVtb3AsICItPVJ0MzIiLCAiU3ViIFJl Z2lzdGVyIGZyb20gTWVtb3J5IFdvcmQiLCB0bXAgLT0gUnRWKQorU1REX01FTU9QX0FNT0RFUyhh bmRfbWVtb3AsICImPVJ0MzIiLCAiTG9naWNhbCBBTkQgUmVnaXN0ZXIgdG8gTWVtb3J5IFdvcmQi LCB0bXAgJj0gUnRWKQorU1REX01FTU9QX0FNT0RFUyhvcl9tZW1vcCwgInw9UnQzMiIsICJMb2dp Y2FsIE9SIFJlZ2lzdGVyIHRvIE1lbW9yeSBXb3JkIiwgdG1wIHw9IFJ0VikKKworCitTVERfTUVN T1BfQU1PREVTKGlhZGRfbWVtb3AsICIrPSNVNSIsICJBZGQgSW1tZWRpYXRlIHRvIE1lbW9yeSBX b3JkIiwgdG1wICs9IFVpVikKK1NURF9NRU1PUF9BTU9ERVMoaXN1Yl9tZW1vcCwgIi09I1U1Iiwg IlN1YiBJbW1lZGlhdGUgdG8gTWVtb3J5IFdvcmQiLCB0bXAgLT0gVWlWKQorU1REX01FTU9QX0FN T0RFUyhpYW5kX21lbW9wLCAiPWNscmJpdCgjVTUpIiwgIkNsZWFyIGEgYml0IGluIG1lbW9yeSIs IHRtcCAmPSAofigxPDxVaVYpKSkKK1NURF9NRU1PUF9BTU9ERVMoaW9yX21lbW9wLCAgIj1zZXRi aXQoI1U1KSIsICJTZXQgYSBiaXQgaW4gbWVtb3J5IiwgdG1wIHw9ICgxPDxVaVYpKQorCisKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgVjQgc3RvcmUgaW1tZWRp YXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K Ky8qIFByZWRpY2F0ZWQgU3RvcmUgaW1tZWRpYXRlcyAqLworI2RlZmluZSBWNF9QU1RJX0FNT0RF UyhUQUcsREVTVCxPUEVSLERFU0NSLEFUVFJJQixTSEZULFNFTUFOVElDUylcCitRNklOU04oUzRf IyNUQUcjI3RfaW8sImlmIChQdjQpICJPUEVSIihSczMyKyN1NjoiU0hGVCIpPSJERVNULEFUVFJJ QixERVNDUix7ZkVBX1JJKFJzVix1aVYpOyBpZiAoZkxTQk9MRChQdlYpKXsgU0VNQU5USUNTOyB9 IGVsc2Uge1NUT1JFX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKFM0XyMjVEFHIyNmX2lvLCJpZiAo IVB2NCkgIk9QRVIiKFJzMzIrI3U2OiJTSEZUIik9IkRFU1QsQVRUUklCLERFU0NSLHtmRUFfUkko UnNWLHVpVik7IGlmIChmTFNCT0xETk9UKFB2VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7U1RPUkVf Q0FOQ0VMKEVBKTt9fSlcCitRNklOU04oUzRfIyNUQUcjI3RuZXdfaW8sImlmIChQdjQubmV3KSAi T1BFUiIoUnMzMisjdTY6IlNIRlQiKT0iREVTVCxBVFRSSUIsREVTQ1Ise2ZFQV9SSShSc1YsdWlW KTsgaWYgKGZMU0JORVcoUHZOKSl7IFNFTUFOVElDUzsgfSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEp O319KVwKK1E2SU5TTihTNF8jI1RBRyMjZm5ld19pbywiaWYgKCFQdjQubmV3KSAiT1BFUiIoUnMz MisjdTY6IlNIRlQiKT0iREVTVCxBVFRSSUIsREVTQ1Ise2ZFQV9SSShSc1YsdWlWKTsgaWYgKGZM U0JORVdOT1QoUHZOKSl7IFNFTUFOVElDUzsgfSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KQor CisvKiBUaGUgc2V0IG9mIDMyLWJpdCBzdG9yZSBpbW1lZGlhdGUgaW5zdHJ1Y3Rpb25zICovCitW NF9QU1RJX0FNT0RFUyhzdG9yZWlyYiwiI1M2IiwibWVtYiIsIlN0b3JlIEltbWVkaWF0ZSBCeXRl IixBVFRSSUJTKEFfQVJDSFYyLEFfU1RPUkUpLCIwIixmSU1NRVhUKFNpVik7IGZTVE9SRSgxLDEs RUEsU2lWKSkKK1Y0X1BTVElfQU1PREVTKHN0b3JlaXJoLCIjUzYiLCJtZW1oIiwiU3RvcmUgSW1t ZWRpYXRlIEhhbGYgaW50ZWdlciIsQVRUUklCUyhBX0FSQ0hWMixBX1NUT1JFKSwiMSIsZklNTUVY VChTaVYpOyBmU1RPUkUoMSwyLEVBLFNpVikpCitWNF9QU1RJX0FNT0RFUyhzdG9yZWlyaSwiI1M2 IiwibWVtdyIsIlN0b3JlIEltbWVkaWF0ZSBXb3JkIixBVFRSSUJTKEFfQVJDSFYyLEFfU1RPUkUp LCIyIixmSU1NRVhUKFNpVik7IGZTVE9SRSgxLDQsRUEsU2lWKSkKKworCisvKiBOb24tcHJlZGlj YXRlZCBzdG9yZSBpbW1lZGlhdGVzICovCisjZGVmaW5lIFY0X1NUSV9BTU9ERVMoVEFHLERFU1Qs T1BFUixERVNDUixBVFRSSUIsU0hGVCxTRU1BTlRJQ1MpXAorUTZJTlNOKFM0XyMjVEFHIyNfaW8s ICBPUEVSIihSczMyKyN1NjoiU0hGVCIpPSJERVNULCAgQVRUUklCLERFU0NSLHtmRUFfUkkoUnNW LHVpVik7IFNFTUFOVElDUzsgfSkKKworLyogVGhlIHNldCBvZiAzMi1iaXQgc3RvcmUgaW1tZWRp YXRlIGluc3RydWN0aW9ucyAqLworVjRfU1RJX0FNT0RFUyhzdG9yZWlyYiwiI1M4IiwibWVtYiIs IlN0b3JlIEltbWVkaWF0ZSBCeXRlIixBVFRSSUJTKEFfQVJDSFYyLEFfU1RPUkUpLCIwIixmSU1N RVhUKFNpVik7IGZTVE9SRSgxLDEsRUEsU2lWKSkKK1Y0X1NUSV9BTU9ERVMoc3RvcmVpcmgsIiNT OCIsIm1lbWgiLCJTdG9yZSBJbW1lZGlhdGUgSGFsZiBpbnRlZ2VyIixBVFRSSUJTKEFfQVJDSFYy LEFfU1RPUkUpLCIxIixmSU1NRVhUKFNpVik7IGZTVE9SRSgxLDIsRUEsU2lWKSkKK1Y0X1NUSV9B TU9ERVMoc3RvcmVpcmksIiNTOCIsIm1lbXciLCJTdG9yZSBJbW1lZGlhdGUgV29yZCIsQVRUUklC UyhBX0FSQ0hWMixBX1NUT1JFKSwiMiIsZklNTUVYVChTaVYpOyBmU1RPUkUoMSw0LEVBLFNpVikp CisKKworCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAg ICAgVjIgR1AtcmVsYXRpdmUgTEQvU1QgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBTVERfR1BMRF9BTU9ERVMoVEFHLE9QRVIsREVT Q1IsQVRUUklCLFNIRlQsU0VNQU5USUNTKVwKK1E2SU5TTihMMl8jI1RBRyMjZ3AsIE9QRVIiKGdw KyN1MTY6IlNIRlQiKSIsICAgQVRUUklCLERFU0NSLHtmSU1NRVhUKHVpVik7IGZFQV9HUEkodWlW KTsgU0VNQU5USUNTOyB9KQorCisvKiBUaGUgc2V0IG9mIDMyLWJpdCBsb2FkIGluc3RydWN0aW9u cyAqLworU1REX0dQTERfQU1PREVTKGxvYWRydWIsIlJkMzI9bWVtdWIiLCJMb2FkIFVuc2lnbmVk IEJ5dGUiLEFUVFJJQlMoQV9MT0FELEFfQVJDSFYyKSwiMCIsZkxPQUQoMSwxLHUsRUEsUmRWKSkK K1NURF9HUExEX0FNT0RFUyhsb2FkcmIsICJSZDMyPW1lbWIiLCAiTG9hZCBzaWduZWQgQnl0ZSIs QVRUUklCUyhBX0xPQUQsQV9BUkNIVjIpLCIwIixmTE9BRCgxLDEscyxFQSxSZFYpKQorU1REX0dQ TERfQU1PREVTKGxvYWRydWgsIlJkMzI9bWVtdWgiLCJMb2FkIHVuc2lnbmVkIEhhbGYgaW50ZWdl ciIsQVRUUklCUyhBX0xPQUQsQV9BUkNIVjIpLCIxIixmTE9BRCgxLDIsdSxFQSxSZFYpKQorU1RE X0dQTERfQU1PREVTKGxvYWRyaCwgIlJkMzI9bWVtaCIsICJMb2FkIHNpZ25lZCBIYWxmIGludGVn ZXIiLEFUVFJJQlMoQV9MT0FELEFfQVJDSFYyKSwiMSIsZkxPQUQoMSwyLHMsRUEsUmRWKSkKK1NU RF9HUExEX0FNT0RFUyhsb2FkcmksICJSZDMyPW1lbXciLCAiTG9hZCBXb3JkIixBVFRSSUJTKEFf TE9BRCxBX0FSQ0hWMiksIjIiLGZMT0FEKDEsNCx1LEVBLFJkVikpCitTVERfR1BMRF9BTU9ERVMo bG9hZHJkLCAiUmRkMzI9bWVtZCIsIkxvYWQgRG91YmxlIGludGVnZXIiLEFUVFJJQlMoQV9MT0FE LEFfQVJDSFYyKSwiMyIsZkxPQUQoMSw4LHUsRUEsUmRkVikpCisKKworI2RlZmluZSBTVERfR1BT VF9BTU9ERVMoVEFHLERFU1QsT1BFUixERVNDUixBVFRSSUIsU0hGVCxTRU1BTlRJQ1MpXAorUTZJ TlNOKFMyXyMjVEFHIyNncCwgT1BFUiIoZ3ArI3UxNjoiU0hGVCIpPSJERVNULCBBVFRSSUIsREVT Q1Ise2ZJTU1FWFQodWlWKTsgZkVBX0dQSSh1aVYpOyBTRU1BTlRJQ1M7IH0pCisKKy8qIFRoZSBz ZXQgb2YgMzItYml0IHN0b3JlIGluc3RydWN0aW9ucyAqLworU1REX0dQU1RfQU1PREVTKHN0b3Jl cmIsICJSdDMyIiwgIm1lbWIiLCJTdG9yZSBCeXRlIixBVFRSSUJTKEFfU1RPUkUsQV9BUkNIVjIp LCIwIixmU1RPUkUoMSwxLEVBLGZHRVRCWVRFKDAsUnRWKSkpCitTVERfR1BTVF9BTU9ERVMoc3Rv cmVyaCwgIlJ0MzIiLCAibWVtaCIsIlN0b3JlIEhhbGYgaW50ZWdlciIsQVRUUklCUyhBX1NUT1JF LEFfQVJDSFYyKSwiMSIsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigwLFJ0VikpKQorU1REX0dQU1Rf QU1PREVTKHN0b3JlcmYsICJSdC5IMzIiLCAibWVtaCIsIlN0b3JlIFVwcGVyIEhhbGYgaW50ZWdl ciIsQVRUUklCUyhBX1NUT1JFLEFfQVJDSFYyKSwiMSIsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigx LFJ0VikpKQorU1REX0dQU1RfQU1PREVTKHN0b3JlcmksICJSdDMyIiwgIm1lbXciLCJTdG9yZSBX b3JkIixBVFRSSUJTKEFfU1RPUkUsQV9BUkNIVjIpLCIyIixmU1RPUkUoMSw0LEVBLFJ0VikpCitT VERfR1BTVF9BTU9ERVMoc3RvcmVyZCwgIlJ0dDMyIiwibWVtZCIsIlN0b3JlIERvdWJsZSBpbnRl Z2VyIixBVFRSSUJTKEFfU1RPUkUsQV9BUkNIVjIpLCIzIixmU1RPUkUoMSw4LEVBLFJ0dFYpKQor U1REX0dQU1RfQU1PREVTKHN0b3JlcmluZXcsICJOdDgubmV3IiwgIm1lbXciLCJTdG9yZSBXb3Jk IixBVFRSSUJTKEFfU1RPUkUsQV9BUkNIVjIpLCIyIixmU1RPUkUoMSw0LEVBLGZORVdSRUdfU1Qo TnROKSkpCitTVERfR1BTVF9BTU9ERVMoc3RvcmVyYm5ldywgIk50OC5uZXciLCAibWVtYiIsIlN0 b3JlIEJ5dGUiLEFUVFJJQlMoQV9TVE9SRSxBX0FSQ0hWMiksIjAiLGZTVE9SRSgxLDEsRUEsZkdF VEJZVEUoMCxmTkVXUkVHX1NUKE50TikpKSkKK1NURF9HUFNUX0FNT0RFUyhzdG9yZXJobmV3LCAi TnQ4Lm5ldyIsICJtZW1oIiwiU3RvcmUgSGFsZiBpbnRlZ2VyIixBVFRSSUJTKEFfU1RPUkUsQV9B UkNIVjIpLCIxIixmU1RPUkUoMSwyLEVBLGZHRVRIQUxGKDAsZk5FV1JFR19TVChOdE4pKSkpCmRp ZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tYWNyb3MuZGVmIGIvdGFyZ2V0L2hl eGFnb24vaW1wb3J0ZWQvbWFjcm9zLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw MDAwLi42ZDY1OGUyCi0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQv bWFjcm9zLmRlZgpAQCAtMCwwICsxLDE1MjYgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTkt MjAyMSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk LgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAq ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworREVG X01BQ1JPKAorICAgIExJS0VMWSwgICAgLyogTkFNRSAqLworICAgIF9fYnVpbHRpbl9leHBlY3Qo KFgpLDEpLCAvKiBCRUggKi8KKyAgICAoKSAgICAvKiBhdHRyaWJzICovCispCisKK0RFRl9NQUNS TygKKyAgICBVTkxJS0VMWSwgICAgLyogTkFNRSAqLworICAgIF9fYnVpbHRpbl9leHBlY3QoKFgp LDApLCAvKiBCRUggKi8KKyAgICAoKSAgICAvKiBhdHRyaWJzICovCispCisKK0RFRl9NQUNSTygK KyAgICBDQU5DRUwsIC8qIG1hY3JvIG5hbWUgKi8KKyAgICB7aWYgKHRocmVhZC0+bGFzdF9wa3Qp IHRocmVhZC0+bGFzdF9wa3QtPnNsb3RfY2FuY2VsbGVkIHw9ICgxPDxpbnNuLT5zbG90KTsgcmV0 dXJuO30gLCAvKiBiZWhhdmlvciAqLworICAgIChBX0NPTkRFWEVDKQorKQorCitERUZfTUFDUk8o CisgICAgTE9BRF9DQU5DRUwsIC8qIG1hY3JvIG5hbWUgKi8KKyAgICB7bWVtX2dlbmVyYWxfbG9h ZF9jYW5jZWxsZWQodGhyZWFkLEVBLGluc24pO0NBTkNFTDt9ICwgLyogYmVoYXZpb3IgKi8KKyAg ICAoQV9DT05ERVhFQykKKykKKworREVGX01BQ1JPKAorICAgIFNUT1JFX0NBTkNFTCwgLyogbWFj cm8gbmFtZSAqLworICAgIHttZW1fZ2VuZXJhbF9zdG9yZV9jYW5jZWxsZWQodGhyZWFkLEVBLGlu c24pO0NBTkNFTDt9ICwgLyogYmVoYXZpb3IgKi8KKyAgICAoQV9DT05ERVhFQykKKykKKworREVG X01BQ1JPKAorICAgIGZNQVgsIC8qIG1hY3JvIG5hbWUgKi8KKyAgICAoKChBKSA+IChCKSkgPyAo QSkgOiAoQikpLCAvKiBiZWhhdmlvciAqLworICAgIC8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8K KykKKworREVGX01BQ1JPKAorICAgIGZNSU4sIC8qIG1hY3JvIG5hbWUgKi8KKyAgICAoKChBKSA8 IChCKSkgPyAoQSkgOiAoQikpLCAvKiBiZWhhdmlvciAqLworICAgIC8qIG9wdGlvbmFsIGF0dHJp YnV0ZXMgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZBQlMsIC8qIG1hY3JvIG5hbWUgKi8KKyAg ICAoKChBKTwwKT8oLShBKSk6KEEpKSwgLyogYmVoYXZpb3IgKi8KKyAgICAvKiBvcHRpb25hbCBh dHRyaWJ1dGVzICovCispCisKKworLyogQml0IGluc2VydCAqLworREVGX01BQ1JPKAorICAgIGZJ TlNFUlRfQklUUywKKyAgICAgICAgeworICAgICAgICAgICAgUkVHID0gKChSRUcpICYgfigoKGZD T05TVExMKDEpPDwoV0lEVEgpKS0xKTw8KE9GRlNFVCkpKSB8ICgoKElOVkFMKSAmICgoZkNPTlNU TEwoMSk8PChXSURUSCkpLTEpKSA8PCAoT0ZGU0VUKSk7CisgICAgICAgIH0sCisgICAgLyogYXR0 cmlicyAqLworKQorCisvKiBCaXQgZXh0cmFjdCAqLworREVGX01BQ1JPKAorICAgIGZFWFRSQUNU VV9CSVRTLAorICAgIChmWlhUTihXSURUSCwzMiwoSU5SRUcgPj4gT0ZGU0VUKSkpLAorICAgIC8q IGF0dHJpYnMgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZFWFRSQUNUVV9CSURJUiwKKyAgICAo ZlpYVE4oV0lEVEgsMzIsZkJJRElSX0xTSElGVFIoKElOUkVHKSwoT0ZGU0VUKSw0XzgpKSksCisg ICAgLyogYXR0cmlicyAqLworKQorCitERUZfTUFDUk8oCisgICAgZkVYVFJBQ1RVX1JBTkdFLAor ICAgIChmWlhUTigoSElCSVQtTE9XQklUKzEpLDMyLChJTlJFRyA+PiBMT1dCSVQpKSksCisgICAg LyogYXR0cmlicyAqLworKQorCitERUZfTUFDUk8oCisgICAgZjhCSVRTT0YsCisgICAgKCAoVkFM KSA/IDB4ZmYgOiAweDAwKSwKKyAgICAvKiBhdHRyaWJzICovCispCisKK0RFRl9NQUNSTygKKyAg ICBmTFNCT0xELAorICAgICgoVkFMKSAmIDEpLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAg ICBmTFNCTkVXLAorICAgIHByZWRsb2dfcmVhZCh0aHJlYWQsUE5VTSksCisgICAgKCkKKykKKwor REVGX01BQ1JPKAorICAgIGZMU0JORVcwLAorICAgIHByZWRsb2dfcmVhZCh0aHJlYWQsMCksCisg ICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZMU0JORVcxLAorICAgIHByZWRsb2dfcmVhZCh0 aHJlYWQsMSksCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZMU0JPTEROT1QsCisgICAg KCFmTFNCT0xEKFZBTCkpLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmTFNCTkVXTk9U LAorICAgICghZkxTQk5FVyhQTlVNKSksCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZM U0JORVcwTk9ULAorICAgICghZkxTQk5FVzApLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAg ICBmTFNCTkVXMU5PVCwKKyAgICAoIWZMU0JORVcxKSwKKyAgICAoKQorKQorCitERUZfTUFDUk8o CisgICAgZk5FV1JFRywKKyAgICAoe2lmIChuZXd2YWx1ZV9taXNzaW5nKHRocmVhZCxSTlVNKSB8 fAorICAgICAgSVNfQ0FOQ0VMTEVEKGluc24tPm5ld192YWx1ZV9wcm9kdWNlcl9zbG90KSkgQ0FO Q0VMOyByZWdsb2dfcmVhZCh0aHJlYWQsUk5VTSk7fSksCisgICAgKEFfRE9UTkVXVkFMVUUsQV9S RVNUUklDVF9TTE9UME9OTFkpCispCisvLyBTdG9yZSBuZXcgd2l0aCBhIG1pc3NpbmcgbmV3dmFs dWUgb3IgY2FuY2VsbGVkIGdvZXMgb3V0IGFzIGEgemVybyBieXRlIHN0b3JlIGluIFY2NQorLy8g dGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCByZWdsb2dfcmVhZCByZXR1cm5zIHplcm8g Zm9yIG5vdCB2YWxpZCBybnVtCitERUZfTUFDUk8oCisgICAgZk5FV1JFR19TVCwKKyAgICAoe2lm IChuZXd2YWx1ZV9taXNzaW5nKHRocmVhZCxSTlVNKSB8fAorICAgICAgSVNfQ0FOQ0VMTEVEKGlu c24tPm5ld192YWx1ZV9wcm9kdWNlcl9zbG90KSkgeyBTVE9SRV9aRVJPOyBSTlVNID0gLTE7IH07 IHJlZ2xvZ19yZWFkKHRocmVhZCxSTlVNKTt9KSwKKyAgICAoQV9ET1RORVdWQUxVRSxBX1JFU1RS SUNUX1NMT1QwT05MWSkKKykKKworREVGX01BQ1JPKAorICAgIGZTQVRVVkFMTiwKKyAgICAoe2ZT RVRfT1ZFUkZMT1coKTsgKChWQUwpIDwgMCkgPyAwIDogKCgxTEw8PChOKSktMSk7fSksCisgICAg KCkKKykKKworREVGX01BQ1JPKAorICAgIGZTQVRWQUxOLAorICAgICh7ZlNFVF9PVkVSRkxPVygp OyAoKFZBTCkgPCAwKSA/ICgtKDFMTDw8KChOKS0xKSkpIDogKCgxTEw8PCgoTiktMSkpLTEpO30p LAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmWlhUTiwgLyogbWFjcm8gbmFtZSAqLwor ICAgICgoVkFMKSAmICgoMUxMPDwoTikpLTEpKSwKKyAgICAvKiBhdHRyaWJzICovCispCisKK0RF Rl9NQUNSTygKKyAgICBmU1hUTiwgLyogbWFjcm8gbmFtZSAqLworICAgICgoZlpYVE4oTixNLFZB TCkgXiAoMUxMPDwoKE4pLTEpKSkgLSAoMUxMPDwoKE4pLTEpKSksCisgICAgLyogYXR0cmlicyAq LworKQorCitERUZfTUFDUk8oCisgICAgZlNBVE4sCisgICAgKChmU1hUTihOLDY0LFZBTCkgPT0g KFZBTCkpID8gKFZBTCkgOiBmU0FUVkFMTihOLFZBTCkpLAorICAgICgpCispCisKK0RFRl9NQUNS TygKKyAgICBmQUREU0FUNjQsCisgICAgeworICAgICAgICBzaXplOHVfdCBfX2EgPSBmQ0FTVDh1 KEEpOworICAgICAgICBzaXplOHVfdCBfX2IgPSBmQ0FTVDh1KEIpOworICAgICAgICBzaXplOHVf dCBfX3N1bSA9IF9fYSArIF9fYjsKKyAgICAgICAgc2l6ZTh1X3QgX194b3IgPSBfX2EgXiBfX2I7 CisgICAgICAgIGNvbnN0IHNpemU4dV90IF9fbWFzayA9IDB4ODAwMDAwMDAwMDAwMDAwMFVMTDsK KyAgICAgICAgaWYgKF9feG9yICYgX19tYXNrKSB7CisgICAgICAgICAgICAvKiBPcHBvc2l0ZSBz aWducywgT0sgKi8KKyAgICAgICAgICAgIERTVCA9IF9fc3VtOworICAgICAgICB9IGVsc2UgaWYg KChfX2EgXiBfX3N1bSkgJiBfX21hc2spIHsKKyAgICAgICAgICAgIC8qIFNpZ25zIG1pc21hdGNo ICovCisgICAgICAgICAgICBpZiAoX19zdW0gJiBfX21hc2spIHsKKyAgICAgICAgICAgICAgICAv KiBvdmVyZmxvd2VkIHRvIG5lZ2F0aXZlLCBtYWtlIG1heCBwb3MgKi8KKyAgICAgICAgICAgICAg ICBEU1Q9MHg3RkZGRkZGRkZGRkZGRkZGTEw7IGZTRVRfT1ZFUkZMT1coKTsKKyAgICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogb3ZlcmZsb3dlZCB0byBwb3NpdGl2ZSwgbWFr ZSBtYXggbmVnICovCisgICAgICAgICAgICAgICAgRFNUPTB4ODAwMDAwMDAwMDAwMDAwMExMOyBm U0VUX09WRVJGTE9XKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICAvKiBzaWducyBkaWQgbm90IG1pc21hdGNoLCBPSyAqLworICAgICAgICAgICAgRFNUID0g X19zdW07CisgICAgICAgIH0KKyAgICB9LAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBm U0FUVU4sCisgICAgKChmWlhUTihOLDY0LFZBTCkgPT0gKFZBTCkpID8gKFZBTCkgOiBmU0FUVVZB TE4oTixWQUwpKSwKKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZlNBVEgsCisgICAgKGZT QVROKDE2LFZBTCkpLAorICAgICgpCispCisKKworREVGX01BQ1JPKAorICAgIGZTQVRVSCwKKyAg ICAoZlNBVFVOKDE2LFZBTCkpLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmU0FUVUIs CisgICAgKGZTQVRVTig4LFZBTCkpLAorICAgICgpCispCitERUZfTUFDUk8oCisgICAgZlNBVEIs CisgICAgKGZTQVROKDgsVkFMKSksCisgICAgKCkKKykKKworCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKy8qIGltbWVkaWF0ZSBleHRlbnNpb24gICAgICAgICAgICAg ICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0RFRl9NQUNS TygKKyAgICBmSU1NRVhULAorICAgIChJTU0gPSBJTU0pLAorICAgIChBX0VYVEVOREFCTEUpCisp CisKK0RFRl9NQUNSTygKKyAgICBmTVVTVF9JTU1FWFQsCisgICAgZklNTUVYVChJTU0pLAorICAg IChBX0VYVEVOREFCTEUpCispCisKK0RFRl9NQUNSTygKKyAgICBmUENBTElHTiwKKyAgICBJTU09 KElNTSAmIH5QQ0FMSUdOX01BU0spLAorICAgIChBX0VYVEVOREFCTEUpCispCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogUmVhZCBhbmQgV3JpdGUgSW1wbGlj aXQgUmVncyAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K KworREVGX01BQ1JPKAorICAgIGZSRUFEX0xSLCAvKiByZWFkIGxpbmsgcmVnaXN0ZXIgKi8KKyAg ICAoUkVBRF9SUkVHKFJFR19MUikpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworICAgICgpCisp CisKK0RFRl9NQUNSTygKKyAgICBmV1JJVEVfTFIsIC8qIHdyaXRlIGxyICovCisgICAgV1JJVEVf UlJFRyhSRUdfTFIsQSksICAgICAgICAgIC8qIGJlaGF2aW9yICovCisgICAgKEFfSU1QTElDSVRf V1JJVEVTX0xSKQorKQorCitERUZfTUFDUk8oCisgICAgZldSSVRFX0ZQLCAvKiB3cml0ZSBzcCAq LworICAgIFdSSVRFX1JSRUcoUkVHX0ZQLEEpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworICAg IChBX0lNUExJQ0lUX1dSSVRFU19GUCkKKykKKworREVGX01BQ1JPKAorICAgIGZXUklURV9TUCwg Lyogd3JpdGUgc3AgKi8KKyAgICBXUklURV9SUkVHKFJFR19TUCxBKSwgICAgICAgICAgLyogYmVo YXZpb3IgKi8KKyAgICAoQV9JTVBMSUNJVF9XUklURVNfU1ApCispCisKK0RFRl9NQUNSTygKKyAg ICBmUkVBRF9TUCwgLyogcmVhZCBzdGFjayBwb2ludGVyICovCisgICAgKFJFQURfUlJFRyhSRUdf U1ApKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoKQorKQorCitERUZfTUFDUk8oCisg ICAgZlJFQURfTEMwLCAvKiByZWFkIGxvb3AgY291bnQgKi8KKyAgICAoUkVBRF9SUkVHKFJFR19M QzApKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoKQorKQorCitERUZfTUFDUk8oCisg ICAgZlJFQURfTEMxLCAvKiByZWFkIGxvb3AgY291bnQgKi8KKyAgICAoUkVBRF9SUkVHKFJFR19M QzEpKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoKQorKQorCitERUZfTUFDUk8oCisg ICAgZlJFQURfU0EwLCAvKiByZWFkIHN0YXJ0IGFkZHIgKi8KKyAgICAoUkVBRF9SUkVHKFJFR19T QTApKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoKQorKQorCitERUZfTUFDUk8oCisg ICAgZlJFQURfU0ExLCAvKiByZWFkIHN0YXJ0IGFkZHIgKi8KKyAgICAoUkVBRF9SUkVHKFJFR19T QTEpKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoKQorKQorCisKK0RFRl9NQUNSTygK KyAgICBmUkVBRF9GUCwgLyogcmVhZCBmcmFtZSBwb2ludGVyICovCisgICAgKFJFQURfUlJFRyhS RUdfRlApKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoKQorKQorCitERUZfTUFDUk8o CisgICAgZlJFQURfR1AsIC8qIHJlYWQgZ2xvYmFsIHBvaW50ZXIgKi8KKyAgICAoaW5zbi0+ZXh0 ZW5zaW9uX3ZhbGlkID8gMCA6IFJFQURfUlJFRyhSRUdfR1ApKSwgICAgICAgICAgLyogYmVoYXZp b3IgKi8KKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZlJFQURfUEMsIC8qIHJlYWQgUEMg Ki8KKyAgICAoUkVBRF9SUkVHKFJFR19QQykpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworICAg ICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmUkVBRF9OUEMsIC8qIHJlYWQgbmV4dCBQQyAqLwor ICAgICh0aHJlYWQtPm5leHRfUEMgJiAoMHhmZmZmZmZmZSkpLCAgICAgICAgICAvKiBiZWhhdmlv ciAqLworICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmUkVBRF9QMCwgLyogcmVhZCBQcmVk aWNhdGUgMCAqLworICAgIChSRUFEX1BSRUcoMCkpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLwor ICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmUkVBRF9QMywgLyogcmVhZCBQcmVkaWNhdGUg MyAqLworICAgIChSRUFEX1BSRUcoMykpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworICAgICgp CispCisKK0RFRl9NQUNSTygKKyAgICBmQ0hFQ0tfUENBTElHTiwKKyAgICBpZiAoKChBKSAmIFBD QUxJR05fTUFTSykpIHsKKyAgICAgICAgcmVnaXN0ZXJfZXJyb3JfZXhjZXB0aW9uKHRocmVhZCxQ UkVDSVNFX0NBVVNFX1BDX05PVF9BTElHTkVELHRocmVhZC0+UmVnc1tSRUdfQkFEVkEwXSx0aHJl YWQtPlJlZ3NbUkVHX0JBRFZBMV0sR0VUX1NTUl9GSUVMRChTU1JfQlZTKSxHRVRfU1NSX0ZJRUxE KFNTUl9WMCksR0VUX1NTUl9GSUVMRChTU1JfVjEpLDApOworICAgIH0sCisgICAgKCkKKykKKwor REVGX01BQ1JPKAorICAgIGZXUklURV9OUEMsIC8qIHdyaXRlIG5leHQgUEMgKi8KKyAgICBpZiAo IXRocmVhZC0+YnJhbmNoX3Rha2VuKSB7CisgICAgICAgIGlmIChBICE9IHRocmVhZC0+bmV4dF9Q QykgeworICAgICAgICAgICAgdGhyZWFkLT5uZXh0X3BrdF9ndWVzcz10aHJlYWQtPmxhc3RfcGt0 LT50YWtlbl9wdHI7CisgICAgICAgIH0KKyAgICAgICAgZkNIRUNLX1BDQUxJR04oQSk7CisgICAg ICAgIHRocmVhZC0+YnJhbmNoZWQgPSAxOyB0aHJlYWQtPmJyYW5jaF90YWtlbiA9IDE7IHRocmVh ZC0+bmV4dF9QQyA9IEE7IFwKKyAgICAgICAgdGhyZWFkLT5icmFuY2hfb2Zmc2V0ID0gaW5zbi0+ ZW5jb2Rpbmdfb2Zmc2V0OyB0aHJlYWQtPmJyYW5jaF9vcGNvZGUgPSBpbnNuLT5vcGNvZGU7Cisg ICAgfSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoQV9DT0YpCispCisKK0RFRl9NQUNS TygKKyAgICBmQlJBTkNILAorICAgIGZXUklURV9OUEMoTE9DKTsgZkNPRl9DQUxMQkFDSyhMT0Ms VFlQRSksCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZKVU1QUiwgICAgLyogQSBqdW1w ciBoYXMgZXhlY3V0ZWQgKi8KKyAgICB7ZkJSQU5DSChUQVJHRVQsQ09GX1RZUEVfSlVNUFIpO30s CisgICAgKEFfSU5ESVJFQ1QpCispCisKK0RFRl9NQUNSTygKKyAgICBmSElOVEpSLCAgICAvKiBB IGhpbnRqciBpbnN0cnVjdGlvbiBoYXMgZXhlY3V0ZWQgKi8KKyAgICB7IH0sCispCisKK0RFRl9N QUNSTygKKyAgICBmQ0FMTCwgICAgLyogRG8gYSBjYWxsICovCisgICAgaWYgKCF0aHJlYWQtPmJy YW5jaF90YWtlbikge2ZCUF9SQVNfQ0FMTChBKTsgZldSSVRFX0xSKGZSRUFEX05QQygpKTsgZkJS QU5DSChBLENPRl9UWVBFX0NBTEwpO30sCisgICAgKEFfQ09GLEFfSU1QTElDSVRfV1JJVEVTX0xS LEFfQ0FMTCkKKykKKworREVGX01BQ1JPKAorICAgIGZDQUxMUiwgICAgLyogRG8gYSBjYWxsIFJl Z2lzdGVyICovCisgICAgaWYgKCF0aHJlYWQtPmJyYW5jaF90YWtlbikge2ZCUF9SQVNfQ0FMTChB KTsgZldSSVRFX0xSKGZSRUFEX05QQygpKTsgZkJSQU5DSChBLENPRl9UWVBFX0NBTExSKTt9LAor ICAgIChBX0NPRixBX0lNUExJQ0lUX1dSSVRFU19MUixBX0NBTEwpCispCisKK0RFRl9NQUNSTygK KyAgICBmV1JJVEVfTE9PUF9SRUdTMCwgLyogd3JpdGUgbG4sc2EsZWEsbGMgKi8KKyAgICB7V1JJ VEVfUlJFRyhSRUdfTEMwLENPVU5UKTsKKyAgICAgV1JJVEVfUlJFRyhSRUdfU0EwLFNUQVJUKTt9 LAorICAgIChBX0lNUExJQ0lUX1dSSVRFU19MQzAsQV9JTVBMSUNJVF9XUklURVNfU0EwKQorKQor CitERUZfTUFDUk8oCisgICAgZldSSVRFX0xPT1BfUkVHUzEsIC8qIHdyaXRlIGxuLHNhLGVhLGxj ICovCisgICAge1dSSVRFX1JSRUcoUkVHX0xDMSxDT1VOVCk7CisgICAgIFdSSVRFX1JSRUcoUkVH X1NBMSxTVEFSVCk7fSwKKyAgICAoQV9JTVBMSUNJVF9XUklURVNfTEMxLEFfSU1QTElDSVRfV1JJ VEVTX1NBMSkKKykKKworREVGX01BQ1JPKAorICAgIGZXUklURV9MQzAsCisgICAgV1JJVEVfUlJF RyhSRUdfTEMwLFZBTCksCisgICAgKEFfSU1QTElDSVRfV1JJVEVTX0xDMCkKKykKKworREVGX01B Q1JPKAorICAgIGZXUklURV9MQzEsCisgICAgV1JJVEVfUlJFRyhSRUdfTEMxLFZBTCksCisgICAg KEFfSU1QTElDSVRfV1JJVEVTX0xDMSkKKykKKworREVGX01BQ1JPKAorICAgIGZDQVJSWV9GUk9N X0FERCwKKyAgICBjYXJyeV9mcm9tX2FkZDY0KEEsQixDKSwKKyAgICAvKiBOT1RISU5HICovCisp CisKK0RFRl9NQUNSTygKKyAgICBmU0VUX09WRVJGTE9XLAorICAgIFNFVF9VU1JfRklFTEQoVVNS X09WRiwxKSwKKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZlNFVF9MUENGRywKKyAgICBT RVRfVVNSX0ZJRUxEKFVTUl9MUENGRywoVkFMKSksCisgICAgKCkKKykKKworCitERUZfTUFDUk8o CisgICAgZkdFVF9MUENGRywKKyAgICAoR0VUX1VTUl9GSUVMRChVU1JfTFBDRkcpKSwKKyAgICAo KQorKQorCisKKworREVGX01BQ1JPKAorICAgIGZXUklURV9QMCwgLyogd3JpdGUgUHJlZGljYXRl IDAgKi8KKyAgICBXUklURV9QUkVHKDAsVkFMKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAg ICAoQV9JTVBMSUNJVF9XUklURVNfUDApCispCisKK0RFRl9NQUNSTygKKyAgICBmV1JJVEVfUDEs IC8qIHdyaXRlIFByZWRpY2F0ZSAwICovCisgICAgV1JJVEVfUFJFRygxLFZBTCksICAgICAgICAg IC8qIGJlaGF2aW9yICovCisgICAgKEFfSU1QTElDSVRfV1JJVEVTX1AxKQorKQorCitERUZfTUFD Uk8oCisgICAgZldSSVRFX1AyLCAvKiB3cml0ZSBQcmVkaWNhdGUgMCAqLworICAgIFdSSVRFX1BS RUcoMixWQUwpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworICAgIChBX0lNUExJQ0lUX1dSSVRF U19QMikKKykKKworREVGX01BQ1JPKAorICAgIGZXUklURV9QMywgLyogd3JpdGUgUHJlZGljYXRl IDAgKi8KKyAgICBXUklURV9QUkVHKDMsVkFMKSwgICAgIC8qIGJlaGF2aW9yICovCisgICAgKEFf SU1QTElDSVRfV1JJVEVTX1AzKQorKQorCitERUZfTUFDUk8oCisgICAgZlBBUlQxLCAvKiB3cml0 ZSBQcmVkaWNhdGUgMCAqLworICAgIGlmIChpbnNuLT5wYXJ0MSkgeyBXT1JLOyByZXR1cm47IH0s ICAgICAgICAgIC8qIGJlaGF2aW9yICovCisgICAgLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLwor KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQ2FzdGlu ZywgU2lnbi1aZXJvIGV4dGVuc2lvbiwgZXRjICovCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKworREVGX01BQ1JPKAorICAgIGZDQVNUNHUsIC8qIG1hY3JvIG5hbWUg Ki8KKyAgICAoKHNpemU0dV90KShBKSksICAgICAgICAgIC8qIGJlaGF2aW9yICovCisgICAgLyog b3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFDUk8oCisgICAgZkNBU1Q0cywgLyog bWFjcm8gbmFtZSAqLworICAgICgoc2l6ZTRzX3QpKEEpKSwgICAgICAgICAgLyogYmVoYXZpb3Ig Ki8KKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNSTygKKyAgICBm Q0FTVDh1LCAvKiBtYWNybyBuYW1lICovCisgICAgKChzaXplOHVfdCkoQSkpLCAgICAgICAgICAv KiBiZWhhdmlvciAqLworICAgIC8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01B Q1JPKAorICAgIGZDQVNUOHMsIC8qIG1hY3JvIG5hbWUgKi8KKyAgICAoKHNpemU4c190KShBKSks ICAgICAgICAgIC8qIGJlaGF2aW9yICovCisgICAgLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLwor KQorCitERUZfTUFDUk8oCisgICAgZkNBU1Q0XzRzLCAvKiBtYWNybyBuYW1lICovCisgICAgKChz aXplNHNfdCkoQSkpLAorICAgIC8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01B Q1JPKAorICAgIGZDQVNUNF80dSwgLyogbWFjcm8gbmFtZSAqLworICAgICgoc2l6ZTR1X3QpKEEp KSwKKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKKworREVGX01BQ1JPKAorICAg IGZDQVNUNF84cywgLyogbWFjcm8gbmFtZSAqLworICAgICgoc2l6ZThzX3QpKChzaXplNHNfdCko QSkpKSwKKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNSTygKKyAg ICBmQ0FTVDRfOHUsIC8qIG1hY3JvIG5hbWUgKi8KKyAgICAoKHNpemU4dV90KSgoc2l6ZTR1X3Qp KEEpKSksCisgICAgLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFDUk8oCisg ICAgZkNBU1Q4XzhzLCAvKiBtYWNybyBuYW1lICovCisgICAgKChzaXplOHNfdCkoQSkpLAorICAg IC8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZDQVNUOF84 dSwgLyogbWFjcm8gbmFtZSAqLworICAgICgoc2l6ZTh1X3QpKEEpKSwKKyAgICAvKiBvcHRpb25h bCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNSTygKKyAgICBmQ0FTVDJfOHMsIC8qIG1hY3Jv IG5hbWUgKi8KKyAgICAoKHNpemU4c190KSgoc2l6ZTJzX3QpKEEpKSksCisgICAgLyogb3B0aW9u YWwgYXR0cmlidXRlcyAqLworKQorREVGX01BQ1JPKAorICAgIGZDQVNUMl84dSwgLyogbWFjcm8g bmFtZSAqLworICAgICgoc2l6ZTh1X3QpKChzaXplMnVfdCkoQSkpKSwKKyAgICAvKiBvcHRpb25h bCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNSTygKKyAgICBmWkU4XzE2LCAvKiB6ZXJvLWV4 dGVuZCA4IHRvIDE2ICovCisgICAgKChzaXplMnNfdCkoKHNpemUxdV90KShBKSkpLAorICAgIC8q IG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKK0RFRl9NQUNSTygKKyAgICBmU0U4XzE2LCAvKiBz aWduLWV4dGVuZCA4IHRvIDE2ICovCisgICAgKChzaXplMnNfdCkoKHNpemUxc190KShBKSkpLAor ICAgIC8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworCitERUZfTUFDUk8oCisgICAgZlNF MTZfMzIsIC8qIHNpZ24tZXh0ZW5kIDE2IHRvIDMyICovCisgICAgKChzaXplNHNfdCkoKHNpemUy c190KShBKSkpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworICAgIC8qIG9wdGlvbmFsIGF0dHJp YnV0ZXMgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZaRTE2XzMyLCAvKiB6ZXJvLWV4dGVuZCAx NiB0byAzMiAqLworICAgICgoc2l6ZTR1X3QpKChzaXplMnVfdCkoQSkpKSwgICAgICAgICAgLyog YmVoYXZpb3IgKi8KKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNS TygKKyAgICBmU0UzMl82NCwKKyAgICAoIChzaXplOHNfdCkoKHNpemU0c190KShBKSkgKSwgICAg ICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisK K0RFRl9NQUNSTygKKyAgICBmWkUzMl82NCwKKyAgICAoIChzaXplOHVfdCkoKHNpemU0dV90KShB KSkgKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVz ICovCispCisKK0RFRl9NQUNSTygKKyAgICBmU0U4XzMyLCAvKiBzaWduLWV4dGVuZCA4IHRvIDMy ICovCisgICAgKChzaXplNHNfdCkoKHNpemUxc190KShBKSkpLAorICAgIC8qIG9wdGlvbmFsIGF0 dHJpYnV0ZXMgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZaRThfMzIsIC8qIHplcm8tZXh0ZW5k IDggdG8gMzIgKi8KKyAgICAoKHNpemU0c190KSgoc2l6ZTF1X3QpKEEpKSksCisgICAgLyogb3B0 aW9uYWwgYXR0cmlidXRlcyAqLworKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKy8qIERTUCBhcml0aG1ldGljIHN1cHBvcnQgICAgICAgICAgICAqLworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0RFRl9NQUNSTygKKyAgICBmTVBZOFVV LCAvKiBtdWx0aXBseSBoYWxmIGludGVnZXIgKi8KKyAgICAoaW50KShmWkU4XzE2KEEpKmZaRThf MTYoQikpLCAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoKQorKQorREVGX01BQ1JPKAorICAgIGZN UFk4VVMsIC8qIG11bHRpcGx5IGhhbGYgaW50ZWdlciAqLworICAgIChpbnQpKGZaRThfMTYoQSkq ZlNFOF8xNihCKSksICAgICAvKiBiZWhhdmlvciAqLworICAgICgpCispCitERUZfTUFDUk8oCisg ICAgZk1QWThTVSwgLyogbXVsdGlwbHkgaGFsZiBpbnRlZ2VyICovCisgICAgKGludCkoZlNFOF8x NihBKSpmWkU4XzE2KEIpKSwgICAgIC8qIGJlaGF2aW9yICovCisgICAgKCkKKykKKworREVGX01B Q1JPKAorICAgIGZNUFk4U1MsIC8qIG11bHRpcGx5IGhhbGYgaW50ZWdlciAqLworICAgIChpbnQp KChzaG9ydCkoQSkqKHNob3J0KShCKSksICAgICAvKiBiZWhhdmlvciAqLworICAgICgpCispCisK K0RFRl9NQUNSTygKKyAgICBmTVBZMTZTUywgLyogbXVsdGlwbHkgaGFsZiBpbnRlZ2VyICovCisg ICAgZlNFMzJfNjQoZlNFMTZfMzIoQSkqZlNFMTZfMzIoQikpLCAgICAgLyogYmVoYXZpb3IgKi8K KyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZk1QWTE2VVUsIC8qIG11bHRpcGx5IHVuc2ln bmVkIGhhbGYgaW50ZWdlciAqLworICAgIGZaRTMyXzY0KGZaRTE2XzMyKEEpKmZaRTE2XzMyKEIp KSwgICAgIC8qIGJlaGF2aW9yICovCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZNUFkx NlNVLCAvKiBtdWx0aXBseSBoYWxmIGludGVnZXIgKi8KKyAgICBmU0UzMl82NChmU0UxNl8zMihB KSpmWkUxNl8zMihCKSksICAgICAvKiBiZWhhdmlvciAqLworICAgICgpCispCisKK0RFRl9NQUNS TygKKyAgICBmTVBZMTZVUywgLyogbXVsdGlwbHkgaGFsZiBpbnRlZ2VyICovCisgICAgZk1QWTE2 U1UoQixBKSwKKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZk1QWTMyU1MsIC8qIG11bHRp cGx5IGhhbGYgaW50ZWdlciAqLworICAgIChmU0UzMl82NChBKSpmU0UzMl82NChCKSksICAgICAv KiBiZWhhdmlvciAqLworICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmTVBZMzJVVSwgLyog bXVsdGlwbHkgaGFsZiBpbnRlZ2VyICovCisgICAgKGZaRTMyXzY0KEEpKmZaRTMyXzY0KEIpKSwg ICAgIC8qIGJlaGF2aW9yICovCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZNUFkzMlNV LCAvKiBtdWx0aXBseSBoYWxmIGludGVnZXIgKi8KKyAgICAoZlNFMzJfNjQoQSkqZlpFMzJfNjQo QikpLCAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZk1Q WTMyMTZTUywgLyogbXVsdGlwbHkgbWl4ZWQgcHJlY2lzaW9uICovCisgICAgKGZTRTMyXzY0KEEp KmZTWFROKDE2LDY0LEIpKSwgICAgIC8qIGJlaGF2aW9yICovCisgICAgKCkKKykKKworREVGX01B Q1JPKAorICAgIGZNUFkzMjE2U1UsIC8qIG11bHRpcGx5IG1peGVkIHByZWNpc2lvbiAqLworICAg IChmU0UzMl82NChBKSpmWlhUTigxNiw2NCxCKSksICAgICAvKiBiZWhhdmlvciAqLworICAgICgp CispCisKK0RFRl9NQUNSTygKKyAgICBmUk9VTkQsIC8qIG9wdGlvbmFsIHJvdW5kaW5nICovCisg ICAgKEErMHg4MDAwKSwKKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9N QUNSTygKKyAgICBmQ0xJUCwgLyogb3B0aW9uYWwgcm91bmRpbmcgKi8KKyAgICB7IHNpemU0c190 IG1heHYgPSAoMTw8VSktMTsKKyAgICAgIHNpemU0c190IG1pbnYgPSAtKDE8PFUpOworICAgICAg RFNUID0gZk1JTihtYXh2LGZNQVgoU1JDLG1pbnYpKTsKKyAgICB9LAorICAgIC8qIG9wdGlvbmFs IGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZDUk5ELCAvKiBvcHRpb25hbCBy b3VuZGluZyAqLworICAgICgoKChBKSYweDMpPT0weDMpPygoQSkrMSk6KChBKSkpLAorICAgIC8q IG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZSTkROLCAvKiBS b3VuZGluZyB0byBhIGJvdW5kYXJ5ICovCisgICAgKCgoKE4pPT0wKT8oQSk6KCgoZlNFMzJfNjQo QSkpKygxPDwoKE4pLTEpKSkpKSksCisgICAgLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQor CitERUZfTUFDUk8oCisgICAgZkNSTkROLCAvKiBSb3VuZGluZyB0byBhIGJvdW5kYXJ5ICovCisg ICAgKGNvbnZfcm91bmQoQSxOKSksCisgICAgLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQor CitERUZfTUFDUk8oCisgICAgZkFERDEyOCwgLyogUm91bmRpbmcgdG8gYSBib3VuZGFyeSAqLwor ICAgIChhZGQxMjgoQSwgQikpLAorICAgIC8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKK0RF Rl9NQUNSTygKKyAgICBmU1VCMTI4LCAvKiBSb3VuZGluZyB0byBhIGJvdW5kYXJ5ICovCisgICAg KHN1YjEyOChBLCBCKSksCisgICAgLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorREVGX01B Q1JPKAorICAgIGZTSElGVFIxMjgsIC8qIFJvdW5kaW5nIHRvIGEgYm91bmRhcnkgKi8KKyAgICAo c2hpZnRyMTI4KEEsIEIpKSwKKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RF Rl9NQUNSTygKKyAgICBmU0hJRlRMMTI4LCAvKiBSb3VuZGluZyB0byBhIGJvdW5kYXJ5ICovCisg ICAgKHNoaWZ0bDEyOChBLCBCKSksCisgICAgLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQor CitERUZfTUFDUk8oCisgICAgZkFORDEyOCwgLyogUm91bmRpbmcgdG8gYSBib3VuZGFyeSAqLwor ICAgIChhbmQxMjgoQSwgQikpLAorICAgIC8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKwor REVGX01BQ1JPKAorICAgIGZDQVNUOFNfMTZTLCAvKiBSb3VuZGluZyB0byBhIGJvdW5kYXJ5ICov CisgICAgKGNhc3Q4c190b18xNnMoQSkpLAorICAgIC8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8K KykKK0RFRl9NQUNSTygKKyAgICBmQ0FTVDE2U184UywgLyogUm91bmRpbmcgdG8gYSBib3VuZGFy eSAqLworICAgIChjYXN0MTZzX3RvXzhzKEEpKSwKKyAgICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVz ICovCispCisKK0RFRl9NQUNSTygKKyAgICBmRUFfUkksIC8qIENhbGN1bGF0ZSBFQSB3aXRoIFJl Z2lzdGVyICsgSW1tZWRpYXRlIE9mZnNldCAqLworICAgIGRvIHsgRUE9UkVHK0lNTTsgZkRPQ0hL UEFHRUNST1NTKFJFRyxFQSk7IH0gd2hpbGUgKDApLAorICAgICgpCispCisKK0RFRl9NQUNSTygK KyAgICBmRUFfUlJzLCAvKiBDYWxjdWxhdGUgRUEgd2l0aCBSZWdpc3RlciArIFJlZ2lzdGVycyBz Y2FsZWQgT2Zmc2V0ICovCisgICAgZG8geyBFQT1SRUcrKFJFRzI8PFNDQUxFKTsgZkRPQ0hLUEFH RUNST1NTKFJFRyxFQSk7IH0gd2hpbGUgKDApLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAg ICBmRUFfSVJzLCAvKiBDYWxjdWxhdGUgRUEgd2l0aCBJbW1lZGlhdGUgKyBSZWdpc3RlcnMgc2Nh bGVkIE9mZnNldCAqLworICAgIGRvIHsgRUE9SU1NKyhSRUc8PFNDQUxFKTsgZkRPQ0hLUEFHRUNS T1NTKElNTSxFQSk7IH0gd2hpbGUgKDApLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBm RUFfSU1NLCAvKiBDYWxjdWxhdGUgRUEgd2l0aCBJbW1lZGlhdGUgKi8KKyAgICBFQT1JTU0sCisg ICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZFQV9SRUcsIC8qIENhbGN1bGF0ZSBFQSB3aXRo IFJFR0lTVEVSICovCisgICAgRUE9UkVHLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBm RUFfR1BJLCAvKiBDYWxjdWxhdGUgRUEgd2l0aCBHbG9iYWwgUG9pdG5lciArIEltbWVkaWF0ZSAq LworICAgIGRvIHsgRUE9ZlJFQURfR1AoKStJTU07IGZHUF9ET0NIS1BBR0VDUk9TUyhmUkVBRF9H UCgpLEVBKTsgfSB3aGlsZSAoMCksCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZQTV9J LCAvKiBQb3N0IE1vZGlmeSBSZWdpc3RlciBieSBJbW1lZGlhdGUqLworICAgIGRvIHsgUkVHID0g UkVHICsgSU1NOyB9IHdoaWxlICgwKSwKKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZlBN X00sIC8qIFBvc3QgTW9kaWZ5IFJlZ2lzdGVyIGJ5IE0gcmVnaXN0ZXIgKi8KKyAgICBkbyB7IFJF RyA9IFJFRyArIE1WQUw7IH0gd2hpbGUgKDApLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAg ICBmU0NBTEUsIC8qIHNjYWxlIGJ5IE4gKi8KKyAgICAoKChzaXplOHNfdCkoQSkpPDxOKSwKKyAg ICAvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNSTygKKyAgICBmU0FUVywg Lyogc2F0dXJhdGluZyB0byAzMi1iaXRzKi8KKyAgICBmU0FUTigzMiwoKGxvbmcgbG9uZylBKSks CisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZTQVQsIC8qIHNhdHVyYXRpbmcgdG8gMzIt Yml0cyovCisgICAgZlNBVE4oMzIsKEEpKSwKKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAg ZlNBVF9PUklHX1NITCwgLyogU2F0dXJhdGluZyB0byAzMi1iaXRzLCB3aXRoIG9yaWdpbmFsIHZh bHVlLCBmb3Igc2hpZnQgbGVmdCAqLworICAgICgoKChzaXplNHNfdCkoKGZTQVQoQSkpIF4gKChz aXplNHNfdCkoT1JJR19SRUcpKSkpIDwgMCkgPworICAgICAgICBmU0FUVkFMTigzMiwoKHNpemU0 c190KShPUklHX1JFRykpKSA6CisgICAgICAgICgoKChPUklHX1JFRykgPiAwKSAmJiAoKEEpID09 IDApKSA/CisgICAgICAgICAgICBmU0FUVkFMTigzMiwoT1JJR19SRUcpKSA6CisgICAgICAgICAg ICBmU0FUKEEpKSksCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZQQVNTLAorICAgIEEs CispCisKK0RFRl9NQUNSTygKKyAgICBmUk5ELCAvKiBzYXR1cmF0aW5nIHRvIDMyLWJpdHMqLwor ICAgICgoKEEpKzEpPj4xKSwKKykKKworCitERUZfTUFDUk8oCisgICAgZkJJRElSX1NISUZUTCwK KyAgICAoKChTSEFNVCkgPCAwKSA/ICgoZkNBU1QjI1JFR1NUWVBFKFNSQykgPj4gKCgtKFNIQU1U KSktMSkpID4+MSkgOiAoZkNBU1QjI1JFR1NUWVBFKFNSQykgPDwgKFNIQU1UKSkpLAorICAgICgp CispCisKK0RFRl9NQUNSTygKKyAgICBmQklESVJfQVNISUZUTCwKKyAgICBmQklESVJfU0hJRlRM KFNSQyxTSEFNVCxSRUdTVFlQRSMjcyksCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZC SURJUl9MU0hJRlRMLAorICAgIGZCSURJUl9TSElGVEwoU1JDLFNIQU1ULFJFR1NUWVBFIyN1KSwK KyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZkJJRElSX0FTSElGVExfU0FULAorICAgICgo KFNIQU1UKSA8IDApID8gKChmQ0FTVCMjUkVHU1RZUEUjI3MoU1JDKSA+PiAoKC0oU0hBTVQpKS0x KSkgPj4xKSA6IGZTQVRfT1JJR19TSEwoZkNBU1QjI1JFR1NUWVBFIyNzKFNSQykgPDwgKFNIQU1U KSwoU1JDKSkpLAorICAgICgpCispCisKKworREVGX01BQ1JPKAorICAgIGZCSURJUl9TSElGVFIs CisgICAgKCgoU0hBTVQpIDwgMCkgPyAoKGZDQVNUIyNSRUdTVFlQRShTUkMpIDw8ICgoLShTSEFN VCkpLTEpKSA8PCAxKSA6IChmQ0FTVCMjUkVHU1RZUEUoU1JDKSA+PiAoU0hBTVQpKSksCisgICAg KCkKKykKKworREVGX01BQ1JPKAorICAgIGZCSURJUl9BU0hJRlRSLAorICAgIGZCSURJUl9TSElG VFIoU1JDLFNIQU1ULFJFR1NUWVBFIyNzKSwKKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAg ZkJJRElSX0xTSElGVFIsCisgICAgZkJJRElSX1NISUZUUihTUkMsU0hBTVQsUkVHU1RZUEUjI3Up LAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmQklESVJfQVNISUZUUl9TQVQsCisgICAg KCgoU0hBTVQpIDwgMCkgPyBmU0FUX09SSUdfU0hMKChmQ0FTVCMjUkVHU1RZUEUjI3MoU1JDKSA8 PCAoKC0oU0hBTVQpKS0xKSkgPDwgMSwoU1JDKSkgOiAoZkNBU1QjI1JFR1NUWVBFIyNzKFNSQykg Pj4gKFNIQU1UKSkpLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmQVNISUZUUiwKKyAg ICAoZkNBU1QjI1JFR1NUWVBFIyNzKFNSQykgPj4gKFNIQU1UKSksCisgICAgLyogKi8KKykKKwor REVGX01BQ1JPKAorICAgIGZMU0hJRlRSLAorICAgICgoKFNIQU1UKSA+PSA2NCk/MDooZkNBU1Qj I1JFR1NUWVBFIyN1KFNSQykgPj4gKFNIQU1UKSkpLAorICAgIC8qICovCispCisKK0RFRl9NQUNS TygKKyAgICBmUk9UTCwKKyAgICAoKChTSEFNVCk9PTApID8gKFNSQykgOiAoKGZDQVNUIyNSRUdT VFlQRSMjdShTUkMpIDw8IChTSEFNVCkpIHwgXAorICAgICAgICAoKGZDQVNUIyNSRUdTVFlQRSMj dShTUkMpID4+ICgoc2l6ZW9mKFNSQykqOCktKFNIQU1UKSkpKSkpLAorICAgIC8qICovCispCisK K0RFRl9NQUNSTygKKyAgICBmUk9UUiwKKyAgICAoKChTSEFNVCk9PTApID8gKFNSQykgOiAoKGZD QVNUIyNSRUdTVFlQRSMjdShTUkMpID4+IChTSEFNVCkpIHwgXAorICAgICAgICAoKGZDQVNUIyNS RUdTVFlQRSMjdShTUkMpIDw8ICgoc2l6ZW9mKFNSQykqOCktKFNIQU1UKSkpKSkpLAorICAgIC8q ICovCispCisKK0RFRl9NQUNSTygKKyAgICBmQVNISUZUTCwKKyAgICAoKChTSEFNVCkgPj0gNjQp PzA6KGZDQVNUIyNSRUdTVFlQRSMjcyhTUkMpIDw8IChTSEFNVCkpKSwKKyAgICAvKiAqLworKQor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEZsb2F0aW5nLVBv aW50IFN1cHBvcnQgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKworREVGX01BQ1JPKAorICAgIGZGTE9BVCwgLyogbmFtZSAqLworICAgICh7IHVu aW9uIHsgZmxvYXQgZjsgc2l6ZTR1X3QgaTsgfSBfZmlwdW47IF9maXB1bi5pID0gKEEpOyBfZmlw dW4uZjsgfSksICAgICAvKiBiZWhhdmlvciAqLworICAgIChBX0ZQT1ApCispCisKK0RFRl9NQUNS TygKKyAgICBmVU5GTE9BVCwgLyogbXVsdGlwbHkgaGFsZiBpbnRlZ2VyICovCisgICAgKHsgdW5p b24geyBmbG9hdCBmOyBzaXplNHVfdCBpOyB9IF9maXB1bjsgX2ZpcHVuLmYgPSAoQSk7IGlzbmFu KF9maXB1bi5mKSA/IDB4RkZGRkZGRkZVIDogX2ZpcHVuLmk7IH0pLCAgICAgLyogYmVoYXZpb3Ig Ki8KKyAgICAoQV9GUE9QKQorKQorCitERUZfTUFDUk8oCisgICAgZlNGTkFOVkFMLAorICAgIDB4 ZmZmZmZmZmYsCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZTRklORlZBTCwKKyAgICAo KChBKSAmIDB4ODAwMDAwMDApIHwgMHg3ZjgwMDAwMCksCisgICAgKCkKKykKKworREVGX01BQ1JP KAorICAgIGZTRk9ORVZBTCwKKyAgICAoKChBKSAmIDB4ODAwMDAwMDApIHwgZlVORkxPQVQoMS4w KSksCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZDSEVDS1NGTkFOLAorICAgIGRvIHsK KyAgICAgICAgaWYgKGlzbmFuKGZGTE9BVChBKSkpIHsKKyAgICAgICAgICAgIGlmICgoZkdFVEJJ VCgyMixBKSkgPT0gMCkgZlJBSVNFRkxBR1MoRkVfSU5WQUxJRCk7CisgICAgICAgICAgICBEU1Qg PSBmU0ZOQU5WQUwoKTsKKyAgICAgICAgfQorICAgIH0gd2hpbGUgKDApLAorICAgICgpCispCisK K0RFRl9NQUNSTygKKyAgICBmQ0hFQ0tTRk5BTjMsCisgICAgZG8geworICAgICAgICBmQ0hFQ0tT Rk5BTihEU1QsQSk7CisgICAgICAgIGZDSEVDS1NGTkFOKERTVCxCKTsKKyAgICAgICAgZkNIRUNL U0ZOQU4oRFNULEMpOworICAgIH0gd2hpbGUgKDApLAorICAgICgpCispCisKK0RFRl9NQUNSTygK KyAgICBmU0ZfQklBUywKKyAgICAxMjcsCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZT Rl9NQU5UQklUUywKKyAgICAyMywKKyAgICAoKQorKQorCitERUZfTUFDUk8oCisgICAgZlNGX01V TF9QT1cyLAorICAgIChmVU5GTE9BVChmRkxPQVQoQSkgKiBmRkxPQVQoKGZTRl9CSUFTKCkgKyAo QikpIDw8IGZTRl9NQU5UQklUUygpKSkpLAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBm U0ZfR0VURVhQLAorICAgICgoKEEpID4+IGZTRl9NQU5UQklUUygpKSAmIDB4ZmYpLAorICAgICgp CispCisKK0RFRl9NQUNSTygKKyAgICBmU0ZfTUFYRVhQLAorICAgICgyNTQpLAorICAgICgpCisp CisKK0RFRl9NQUNSTygKKyAgICBmU0ZfUkVDSVBfQ09NTU9OLAorICAgIGFyY2hfc2ZfcmVjaXBf Y29tbW9uKCZOLCZELCZPLCZBKSwKKyAgICAoQV9GUE9QKQorKQorCitERUZfTUFDUk8oCisgICAg ZlNGX0lOVlNRUlRfQ09NTU9OLAorICAgIGFyY2hfc2ZfaW52c3FydF9jb21tb24oJk4sJk8sJkEp LAorICAgIChBX0ZQT1ApCispCisKK0RFRl9NQUNSTygKKyAgICBmRk1BRlgsCisgICAgaW50ZXJu YWxfZm1hZngoQSxCLEMsZlNYVE4oOCw2NCxBREopKSwKKyAgICAoKQorKQorCitERUZfTUFDUk8o CisgICAgZkZNQUYsCisgICAgaW50ZXJuYWxfZm1hZngoQSxCLEMsMCksCisgICAgKCkKKykKKwor REVGX01BQ1JPKAorICAgIGZTRk1QWSwKKyAgICBpbnRlcm5hbF9tcHlmKEEsQiksCisgICAgKCkK KykKKworREVGX01BQ1JPKAorICAgIGZNQUtFU0YsCisgICAgKCgoKFNJR04pICYgMSkgPDwgMzEp IHwgKCgoRVhQKSAmIDB4ZmYpIDw8IGZTRl9NQU5UQklUUygpKSB8CisgICAgICAgICgoTUFOVCkg JiAoKDE8PGZTRl9NQU5UQklUUygpKS0xKSkpLAorICAgICgpCispCisKKworREVGX01BQ1JPKAor ICAgIGZET1VCTEUsIC8qIG11bHRpcGx5IGhhbGYgaW50ZWdlciAqLworICAgICh7IHVuaW9uIHsg ZG91YmxlIGY7IHNpemU4dV90IGk7IH0gX2ZpcHVuOyBfZmlwdW4uaSA9IChBKTsgX2ZpcHVuLmY7 IH0pLCAgICAgLyogYmVoYXZpb3IgKi8KKyAgICAoQV9GUE9QKQorKQorCitERUZfTUFDUk8oCisg ICAgZlVORE9VQkxFLCAvKiBtdWx0aXBseSBoYWxmIGludGVnZXIgKi8KKyAgICAoeyB1bmlvbiB7 IGRvdWJsZSBmOyBzaXplOHVfdCBpOyB9IF9maXB1bjsgX2ZpcHVuLmYgPSAoQSk7IGlzbmFuKF9m aXB1bi5mKSA/IDB4RkZGRkZGRkZGRkZGRkZGRlVMTCA6IF9maXB1bi5pOyB9KSwgICAgIC8qIGJl aGF2aW9yICovCisgICAgKEFfRlBPUCkKKykKKworREVGX01BQ1JPKAorICAgIGZERk5BTlZBTCwK KyAgICAweGZmZmZmZmZmZmZmZmZmZmZVTEwsCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAg IGZERl9JU05PUk1BTCwKKyAgICAoZnBjbGFzc2lmeShmRE9VQkxFKFgpKSA9PSBGUF9OT1JNQUwp LAorICAgICgpCispCisKK0RFRl9NQUNSTygKKyAgICBmREZfSVNERU5PUk0sCisgICAgKGZwY2xh c3NpZnkoZkRPVUJMRShYKSkgPT0gRlBfU1VCTk9STUFMKSwKKyAgICAoKQorKQorCitERUZfTUFD Uk8oCisgICAgZkRGX0lTQklHLAorICAgIChmREZfR0VURVhQKFgpID49IDUxMiksCisgICAgKCkK KykKKworREVGX01BQ1JPKAorICAgIGZERl9NQU5UQklUUywKKyAgICA1MiwKKyAgICAoKQorKQor CitERUZfTUFDUk8oCisgICAgZkRGX0dFVEVYUCwKKyAgICAoKChBKSA+PiBmREZfTUFOVEJJVFMo KSkgJiAweDdmZiksCisgICAgKCkKKykKKworREVGX01BQ1JPKAorICAgIGZGTUEsCisgICAgaW50 ZXJuYWxfZm1hKEEsQixDKSwKKyAgICAvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNSTygKKyAg ICBmREZfTVBZX0hILAorICAgIGludGVybmFsX21weWhoKEEsQixBQ0MpLAorICAgIC8qIG5vdGhp bmcgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZGUE9QX1NUQVJULAorICAgIGFyY2hfZnBvcF9z dGFydCh0aHJlYWQpLAorICAgIC8qIG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZG UE9QX0VORCwKKyAgICBhcmNoX2Zwb3BfZW5kKHRocmVhZCksCisgICAgLyogbm90aGluZyAqLwor KQorCitERUZfTUFDUk8oCisgICAgZkZQU0VUUk9VTkRfTkVBUkVTVCwKKyAgICBmZXNldHJvdW5k KEZFX1RPTkVBUkVTVCksCisgICAgLyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oCisgICAg ZkZQU0VUUk9VTkRfQ0hPUCwKKyAgICBmZXNldHJvdW5kKEZFX1RPV0FSRFpFUk8pLAorICAgIC8q IG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKAorICAgIGZGUENBTkNFTEZMQUdTLAorICAgIGZl Y2xlYXJleGNlcHQoRkVfQUxMX0VYQ0VQVCksCisgICAgLyogbm90aGluZyAqLworKQorCitERUZf TUFDUk8oCisgICAgZklTSU5GUFJPRCwKKyAgICAoKGlzaW5mKEEpICYmIGlzaW5mKEIpKSB8fAor ICAgICAoaXNpbmYoQSkgJiYgaXNmaW5pdGUoQikgJiYgKChCKSAhPSAwLjApKSB8fAorICAgICAo aXNpbmYoQikgJiYgaXNmaW5pdGUoQSkgJiYgKChBKSAhPSAwLjApKSksCisgICAgLyogbm90aGlu ZyAqLworKQorCitERUZfTUFDUk8oCisgICAgZklTWkVST1BST0QsCisgICAgKCgoKEEpID09IDAu MCkgJiYgaXNmaW5pdGUoQikpIHx8ICgoKEIpID09IDAuMCkgJiYgaXNmaW5pdGUoQSkpKSwKKyAg ICAvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNSTygKKyAgICBmUkFJU0VGTEFHUywKKyAgICBh cmNoX3JhaXNlX2ZwZmxhZyhBKSwKKyAgICAvKiBOT1RISU5HICovCispCisKK0RFRl9NQUNSTygK KyAgICBmREZfTUFYLAorICAgICgoKEEpPT0oQikpCisgICAgPyBmRE9VQkxFKGZVTkRPVUJMRShB KSAmIGZVTkRPVUJMRShCKSkKKyAgICA6IGZtYXgoQSxCKSksCisgICAgKEFfRlBPUCkKKykKKwor REVGX01BQ1JPKAorICAgIGZERl9NSU4sCisgICAgKCgoQSk9PShCKSkKKyAgICA/IGZET1VCTEUo ZlVORE9VQkxFKEEpIHwgZlVORE9VQkxFKEIpKQorICAgIDogZm1pbihBLEIpKSwKKyAgICAoQV9G UE9QKQorKQorCitERUZfTUFDUk8oCisgICAgZlNGX01BWCwKKyAgICAoKChBKT09KEIpKQorICAg ID8gZkZMT0FUKGZVTkZMT0FUKEEpICYgZlVORkxPQVQoQikpCisgICAgOiBmbWF4ZihBLEIpKSwK KyAgICAoQV9GUE9QKQorKQorCitERUZfTUFDUk8oCisgICAgZlNGX01JTiwKKyAgICAoKChBKT09 KEIpKQorICAgID8gZkZMT0FUKGZVTkZMT0FUKEEpIHwgZlVORkxPQVQoQikpCisgICAgOiBmbWlu ZihBLEIpKSwKKyAgICAoQV9GUE9QKQorKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKy8qIExvYWQvU3RvcmUgc3VwcG9ydCAgICAgICAgICAgICAgICAqLworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0RFRl9NQUNSTyhmTE9BRCwK KyAgICB7IERTVCA9IChzaXplIyNTSVpFIyNTSUdOIyNfdClNRU1fTE9BRCMjU0laRSh0aHJlYWQs RUEsaW5zbik7IH0sCisgICAgKEFfTE9BRCxBX01FTUxJS0UpCispCisKK0RFRl9NQUNSTyhmTUVN T1AsCisgICAgeyBtZW1vcCMjU0laRSMjXyMjRk5UWVBFKHRocmVhZCxFQSxWQUxVRSk7IH0sCisg ICAgKEFfTE9BRCxBX1NUT1JFLEFfTUVNTElLRSkKKykKKworREVGX01BQ1JPKGZHRVRfRlJBTUVL RVksCisgICAgUkVBRF9SUkVHKFJFR19GUkFNRUtFWSksCisgICAgKCkKKykKKworREVGX01BQ1JP KGZGUkFNRV9TQ1JBTUJMRSwKKyAgICAoKFZBTCkgXiAoZkNBU1Q4dShmR0VUX0ZSQU1FS0VZKCkp IDw8IDMyKSksCisgICAgLyogQVRUUklCUyAqLworKQorCitERUZfTUFDUk8oZkZSQU1FX1VOU0NS QU1CTEUsCisgICAgZkZSQU1FX1NDUkFNQkxFKFZBTCksCisgICAgLyogQVRUUklCUyAqLworKQor CitERUZfTUFDUk8oZkZSQU1FQ0hFQ0ssCisgICAgc3lzX2NoZWNrX2ZyYW1lbGltaXQodGhyZWFk LEFERFIsRUEpLAorICAgICgpCispCisKK0RFRl9NQUNSTyhmTE9BRF9MT0NLRUQsCisgICAgeyAg ICAgRFNUID0gKHNpemUjI1NJWkUjI1NJR04jI190KW1lbV9sb2FkX2xvY2tlZCh0aHJlYWQsRUEs U0laRSxpbnNuKTsgfSwKKyAgICAoQV9MT0FELEFfTUVNTElLRSkKKykKKworREVGX01BQ1JPKGZT VE9SRSwKKyAgICB7IE1FTV9TVE9SRSMjU0laRSh0aHJlYWQsRUEsU1JDLGluc24pOyB9LAorICAg IChBX1NUT1JFLEFfTUVNTElLRSkKKykKKworCitERUZfTUFDUk8oZlNUT1JFX0xPQ0tFRCwKKyAg ICB7IFBSRUQgPSAobWVtX3N0b3JlX2NvbmRpdGlvbmFsKHRocmVhZCxFQSxTUkMsU0laRSxpbnNu KSA/IDB4ZmYgOiAwKTsgfSwKKyAgICAoQV9TVE9SRSxBX01FTUxJS0UpCispCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRnVuY3Rpb25zIHRvIGhlbHAgd2l0 aCBieXRlcyAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K KworREVGX01BQ1JPKGZHRVRCWVRFLAorICAgICgoc2l6ZTFzX3QpKChTUkM+PigoTikqOCkpJjB4 ZmYpKSwKKyAgICAvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNSTyhmR0VUVUJZVEUsCisgICAg KChzaXplMXVfdCkoKFNSQz4+KChOKSo4KSkmMHhmZikpLAorICAgIC8qIG5vdGhpbmcgKi8KKykK KworREVGX01BQ1JPKGZTRVRCWVRFLAorICAgIHsKKyAgICAgICAgRFNUID0gKERTVCAmIH4oMHgw ZmZMTDw8KChOKSo4KSkpIHwgKCgoc2l6ZTh1X3QpKChWQUwpICYgMHgwZmZMTCkpIDw8ICgoTikq OCkpOworICAgIH0sCisgICAgLyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oZkdFVEhBTEYs CisgICAgKChzaXplMnNfdCkoKFNSQz4+KChOKSoxNikpJjB4ZmZmZikpLAorICAgIC8qIG5vdGhp bmcgKi8KKykKKworREVGX01BQ1JPKGZHRVRVSEFMRiwKKyAgICAoKHNpemUydV90KSgoU1JDPj4o KE4pKjE2KSkmMHhmZmZmKSksCisgICAgLyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oZlNF VEhBTEYsCisgICAgeworICAgICAgICBEU1QgPSAoRFNUICYgfigweDBmZmZmTEw8PCgoTikqMTYp KSkgfCAoKChzaXplOHVfdCkoKFZBTCkgJiAweDBmZmZmKSkgPDwgKChOKSoxNikpOworICAgIH0s CisgICAgLyogbm90aGluZyAqLworKQorCisKKworREVGX01BQ1JPKGZHRVRXT1JELAorICAgICgo c2l6ZThzX3QpKChzaXplNHNfdCkoKFNSQz4+KChOKSozMikpJjB4MGZmZmZmZmZmTEwpKSksCisg ICAgLyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oZkdFVFVXT1JELAorICAgICgoc2l6ZTh1 X3QpKChzaXplNHVfdCkoKFNSQz4+KChOKSozMikpJjB4MGZmZmZmZmZmTEwpKSksCisgICAgLyog bm90aGluZyAqLworKQorCitERUZfTUFDUk8oZlNFVFdPUkQsCisgICAgeworICAgICAgICBEU1Qg PSAoRFNUICYgfigweDBmZmZmZmZmZkxMPDwoKE4pKjMyKSkpIHwgKCgoVkFMKSAmIDB4MGZmZmZm ZmZmTEwpIDw8ICgoTikqMzIpKTsKKyAgICB9LAorICAgIC8qIG5vdGhpbmcgKi8KKykKKworREVG X01BQ1JPKGZTRVRCSVQsCisgICAgeworICAgICAgICBEU1QgPSAoRFNUICYgfigxVUxMPDwoTikp KSB8ICgoKHNpemU4dV90KShWQUwpKTw8KE4pKTsKKyAgICB9LAorICAgIC8qIG5vdGhpbmcgKi8K KykKKworREVGX01BQ1JPKGZHRVRCSVQsCisgICAgKCgoU1JDKT4+TikmMSksCisgICAgLyogbm90 aGluZyAqLworKQorCisKK0RFRl9NQUNSTyhmU0VUQklUUywKKyAgICBkbyB7CisgICAgICAgIGlu dCBqOworICAgICAgICBmb3IgKGo9TE87ajw9SEk7aisrKSB7CisgICAgICAgICAgZlNFVEJJVChq LERTVCxWQUwpOworICAgICAgICB9CisgICAgfSB3aGlsZSAoMCksCisgICAgLyogbm90aGluZyAq LworKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFVzZWQg Zm9yIHBhcml0eSwgZXRjLi4uLi4uLi4gICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCitERUZfTUFDUk8oZkNPVU5UT05FU180LAorICAgIGNvdW50X29uZXNf NChWQUwpLAorICAgIC8qIG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKGZDT1VOVE9ORVNfOCwK KyAgICBjb3VudF9vbmVzXzgoVkFMKSwKKyAgICAvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNS TyhmQlJFVl84LAorICAgIHJldmVyc2VfYml0c184KFZBTCksCisgICAgLyogbm90aGluZyAqLwor KQorCitERUZfTUFDUk8oZkJSRVZfNCwKKyAgICByZXZlcnNlX2JpdHNfNChWQUwpLAorICAgIC8q IG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKGZDTDFfOCwKKyAgICBjb3VudF9sZWFkaW5nX29u ZXNfOChWQUwpLAorICAgIC8qIG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKGZDTDFfNCwKKyAg ICBjb3VudF9sZWFkaW5nX29uZXNfNChWQUwpLAorICAgIC8qIG5vdGhpbmcgKi8KKykKKworREVG X01BQ1JPKGZJTlRFUkxFQVZFLAorICAgIGludGVybGVhdmUoT0RELEVWRU4pLAorICAgIC8qIG5v dGhpbmcgKi8KKykKKworREVGX01BQ1JPKGZERUlOVEVSTEVBVkUsCisgICAgZGVpbnRlcmxlYXZl KE1JWEVEKSwKKyAgICAvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNSTyhmSElERSwKKyAgICBB LAorICAgICgpCispCisKK0RFRl9NQUNSTyhmQ09OU1RMTCwKKyAgICBBIyNMTCwKKykKKworLyog RG8gdGhlIHRoaW5ncyBpbiB0aGUgcGFyZW5zLCBidXQgZG9uJ3QgcHJpbnQgdGhlIHBhcmVucy4g Ki8KK0RFRl9NQUNSTyhmRUNITywKKyAgICAoQSksCisgICAgLyogbm90aGluZyAqLworKQorCisK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIE9TIGlu dGVyZmFjZSBhbmQgc3RvcC93YWl0ICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworREVGX01BQ1JPKGZUUkFQLAorICAgIHdh cm4oIlRyYXAgTlBDPSV4ICIsZlJFQURfTlBDKCkpOworICAgIHdhcm4oIlRyYXAgZXhjZXB0aW9u LCBQQ1lDTEU9JWxsZCBUWVBFPSVkIE5QQz0leCBJTU09MHgleCIsdGhyZWFkLT5wcm9jZXNzb3Jf cHRyLT5wc3RhdHNbcGN5Y2xlc10sVFJBUFRZUEUsZlJFQURfTlBDKCksSU1NKTsKKyAgICByZWdp c3Rlcl90cmFwX2V4Y2VwdGlvbih0aHJlYWQsZlJFQURfTlBDKCksVFJBUFRZUEUsSU1NKTssCisg ICAgKCkKKykKKworREVGX01BQ1JPKGZBTElHTl9SRUdfRklFTERfVkFMVUUsCisgICAgKChWQUwp PDxyZWdfZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0KSwKKyAgICAvKiAqLworKQorCitERUZfTUFD Uk8oZkdFVF9SRUdfRklFTERfTUFTSywKKyAgICAoKCgxPDxyZWdfZmllbGRfaW5mb1tGSUVMRF0u d2lkdGgpLTEpPDxyZWdfZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0KSwKKyAgICAvKiAqLworKQor CitERUZfTUFDUk8oZlJFQURfUkVHX0ZJRUxELAorICAgIGZFWFRSQUNUVV9CSVRTKHRocmVhZC0+ UmVnc1tSRUdfIyNSRUddLAorICAgICAgICByZWdfZmllbGRfaW5mb1tGSUVMRF0ud2lkdGgsCisg ICAgICAgIHJlZ19maWVsZF9pbmZvW0ZJRUxEXS5vZmZzZXQpLAorICAgIC8qIEFUVFJJQlMgKi8K KykKKworREVGX01BQ1JPKGZHRVRfRklFTEQsCisgICAgZkVYVFJBQ1RVX0JJVFMoVkFMLAorICAg ICAgICByZWdfZmllbGRfaW5mb1tGSUVMRF0ud2lkdGgsCisgICAgICAgIHJlZ19maWVsZF9pbmZv W0ZJRUxEXS5vZmZzZXQpLAorICAgIC8qIEFUVFJJQlMgKi8KKykKKworREVGX01BQ1JPKGZTRVRf RklFTEQsCisgICAgZklOU0VSVF9CSVRTKFZBTCwKKyAgICAgICAgcmVnX2ZpZWxkX2luZm9bRklF TERdLndpZHRoLAorICAgICAgICByZWdfZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0LAorICAgICAg ICAoTkVXVkFMKSksCisgICAgLyogQVRUUklCUyAqLworKQorCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBDYWNoZSBNYW5hZ2VtZW50ICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisKK0RFRl9NQUNSTyhmQkFSUklFUiwKKyAgICB7CisgICAgICAgIHN5c19iYXJy aWVyKHRocmVhZCwgaW5zbi0+c2xvdCk7CisgICAgfSwKKyAgICAoKQorKQorCitERUZfTUFDUk8o ZlNZTkNILAorICAgIHsKKyAgICAgICAgc3lzX3N5bmModGhyZWFkLCBpbnNuLT5zbG90KTsKKyAg ICB9LAorICAgICgpCispCisKK0RFRl9NQUNSTyhmSVNZTkMsCisgICAgeworICAgICAgICBzeXNf aXN5bmModGhyZWFkLCBpbnNuLT5zbG90KTsKKyAgICB9LAorICAgICgpCispCisKKworREVGX01B Q1JPKGZEQ0ZFVENILAorICAgIHN5c19kY2ZldGNoKHRocmVhZCwgKFJFRyksIGluc24tPnNsb3Qp LAorICAgIChBX01FTUxJS0UpCispCisKK0RFRl9NQUNSTyhmSUNJTlZBLAorICAgIHsKKyAgICAg ICAgYXJjaF9pbnRlcm5hbF9mbHVzaCh0aHJlYWQtPnByb2Nlc3Nvcl9wdHIsIDAsIDB4ZmZmZmZm ZmYpOworICAgICAgICBzeXNfaWNpbnZhKHRocmVhZCwgKFJFRyksaW5zbi0+c2xvdCk7CisgICAg fSwKKyAgICAoQV9JQ0lOVkEpCispCisKK0RFRl9NQUNSTyhmTDJGRVRDSCwKKyAgICBzeXNfbDJm ZXRjaCh0aHJlYWQsIEFERFIsSEVJR0hULFdJRFRILFNUUklERSxGTEFHUywgaW5zbi0+c2xvdCks CisgICAgKEFfTUVNTElLRSxBX0wyRkVUQ0gpCispCisKK0RFRl9NQUNSTyhmRENDTEVBTkEsCisg ICAgc3lzX2RjY2xlYW5hKHRocmVhZCwgKFJFRykpLAorICAgIChBX01FTUxJS0UpCispCisKK0RF Rl9NQUNSTyhmRENDTEVBTklOVkEsCisgICAgc3lzX2RjY2xlYW5pbnZhKHRocmVhZCwgKFJFRyks IGluc24tPnNsb3QpLAorICAgIChBX01FTUxJS0UsQV9EQ0NMRUFOSU5WQSkKKykKKworREVGX01B Q1JPKGZEQ1pFUk9BLAorICAgIHN5c19kY3plcm9hKHRocmVhZCwgKFJFRykpLAorICAgIChBX01F TUxJS0UpCispCisKK0RFRl9NQUNSTyhmQ0hFQ0tGT1JQUklWLAorICAgIHtzeXNfY2hlY2tfcHJp dnModGhyZWFkKTsgaWYgKEVYQ0VQVElPTl9ERVRFQ1RFRCkgcmV0dXJuOyB9LAorICAgICgpCisp CisKK0RFRl9NQUNSTyhmQ0hFQ0tGT1JHVUVTVCwKKyAgICB7c3lzX2NoZWNrX2d1ZXN0KHRocmVh ZCk7IGlmIChFWENFUFRJT05fREVURUNURUQpIHJldHVybjsgfSwKKyAgICAoKQorKQorCitERUZf TUFDUk8oZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwsCisgICAgeworICAgICAgICBzeXNfc3BlY3Vs YXRlX2JyYW5jaF9zdGFsbCh0aHJlYWQsIGluc24tPnNsb3QsIEpVTVBfQ09ORChKVU1QX1BSRURf U0VUKSwKKyAgICAgICAgICAgIFNQRUNfRElSLAorICAgICAgICAgICAgRE9UTkVXVkFMLAorICAg ICAgICAgICAgSElOVEJJVE5VTSwKKyAgICAgICAgICAgIFNUUkJJVE5VTSwKKyAgICAgICAgICAg IDAsCisgICAgICAgICAgICB0aHJlYWQtPmxhc3RfcGt0LT5wa3RfaGFzX2R1YWxfanVtcCwKKyAg ICAgICAgICAgIGluc24tPmlzXzJuZF9qdW1wLAorICAgICAgICAgICAgKHRocmVhZC0+ZmV0Y2hf YWNjZXNzLnZhZGRyICsgaW5zbi0+ZW5jb2Rpbmdfb2Zmc2V0KjQpKTsKKyAgICB9LAorICAgICgp CispCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tcHkuaWRlZiBiL3Rhcmdl dC9oZXhhZ29uL2ltcG9ydGVkL21weS5pZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjg3NDRmNjUKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRl ZC9tcHkuaWRlZgpAQCAtMCwwICsxLDEyMDggQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTkt MjAyMSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk LgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAq ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworLyoK KyAqIE11bHRpcGx5IEluc3RydWN0aW9ucworICovCisKKworI2RlZmluZSBTVERfU1BfTU9ERVMo VEFHLE9QRVIsQVRSLERTVCxBQ0NTRU0sU0VNLE9TRU0sU0FUU0VNLFJORFNFTSlcCitRNklOU04o TTJfIyNUQUcjI19oaF9zMCwgT1BFUiIoUnMuSDMyLFJ0LkgzMikiT1NFTSwgICAgICAgIEFUUiwi Iix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VUSEFMRigxLFJzViks ZkdFVEhBTEYoMSxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfaGhfczEsIE9QRVIiKFJz LkgzMixSdC5IMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1TQVRTRU0oUk5EU0VNKEFDQ1NF TSBmU0NBTEUoMSxTRU0oZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpKSk7fSlcCitR NklOU04oTTJfIyNUQUcjI19obF9zMCwgT1BFUiIoUnMuSDMyLFJ0LkwzMikiT1NFTSwgICAgICAg IEFUUiwiIix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VUSEFMRigx LFJzViksZkdFVEhBTEYoMCxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfaGxfczEsIE9Q RVIiKFJzLkgzMixSdC5MMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1TQVRTRU0oUk5EU0VN KEFDQ1NFTSBmU0NBTEUoMSxTRU0oZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDAsUnRWKSkpKSk7 fSlcCitRNklOU04oTTJfIyNUQUcjI19saF9zMCwgT1BFUiIoUnMuTDMyLFJ0LkgzMikiT1NFTSwg ICAgICAgIEFUUiwiIix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VU SEFMRigwLFJzViksZkdFVEhBTEYoMSxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfbGhf czEsIE9QRVIiKFJzLkwzMixSdC5IMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1TQVRTRU0o Uk5EU0VNKEFDQ1NFTSBmU0NBTEUoMSxTRU0oZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxGKDEsUnRW KSkpKSk7fSlcCitRNklOU04oTTJfIyNUQUcjI19sbF9zMCwgT1BFUiIoUnMuTDMyLFJ0LkwzMiki T1NFTSwgICAgICAgIEFUUiwiIix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAg ICBmR0VUSEFMRigwLFJzViksZkdFVEhBTEYoMCxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFH IyNfbGxfczEsIE9QRVIiKFJzLkwzMixSdC5MMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1T QVRTRU0oUk5EU0VNKEFDQ1NFTSBmU0NBTEUoMSxTRU0oZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxG KDAsUnRWKSkpKSk7fSkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworLyogbXVsdGlwbHkgMTZ4MTYtPjMyIHNpZ25lZCBpbnN0cnVjdGlv bnMgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworU1REX1NQX01PREVTKG1weV9hY2MsICAgICJSeDMyKz1tcHkiLCAs UnhWLFJ4VisgICAgLGZNUFkxNlNTLCAgICAgICAgICAsZlBBU1MsZlBBU1MpCitTVERfU1BfTU9E RVMobXB5X25hYywgICAgIlJ4MzItPW1weSIsICxSeFYsUnhWLSAgICAsZk1QWTE2U1MsICAgICAg ICAgICxmUEFTUyxmUEFTUykKK1NURF9TUF9NT0RFUyhtcHlfYWNjX3NhdCwiUngzMis9bXB5Iiwg LFJ4VixSeFYrICAgICxmTVBZMTZTUywiOnNhdCIgICAgLGZTQVQsIGZQQVNTKQorU1REX1NQX01P REVTKG1weV9uYWNfc2F0LCJSeDMyLT1tcHkiLCAsUnhWLFJ4Vi0gICAgLGZNUFkxNlNTLCI6c2F0 IiAgICAsZlNBVCwgZlBBU1MpCitTVERfU1BfTU9ERVMobXB5LCAgICAgICAgIlJkMzI9bXB5Iiwg ICxSZFYsICAgICAgICAsZk1QWTE2U1MsICAgICAgICAgICxmUEFTUyxmUEFTUykKK1NURF9TUF9N T0RFUyhtcHlfc2F0LCAgICAiUmQzMj1tcHkiLCAgLFJkViwgICAgICAgICxmTVBZMTZTUywiOnNh dCIgICAgLGZTQVQsIGZQQVNTKQorU1REX1NQX01PREVTKG1weV9ybmQsICAgICJSZDMyPW1weSIs ICAsUmRWLCAgICAgICAgLGZNUFkxNlNTLCI6cm5kIiAgICAsZlBBU1MsZlJPVU5EKQorU1REX1NQ X01PREVTKG1weV9zYXRfcm5kLCJSZDMyPW1weSIsICAsUmRWLCAgICAgICAgLGZNUFkxNlNTLCI6 cm5kOnNhdCIsZlNBVCwgZlJPVU5EKQorU1REX1NQX01PREVTKG1weWRfYWNjLCAgICJSeHgzMis9 bXB5IiwsUnh4VixSeHhWKyAgLGZNUFkxNlNTLCAgICAgICAgICAsZlBBU1MsZlBBU1MpCitTVERf U1BfTU9ERVMobXB5ZF9uYWMsICAgIlJ4eDMyLT1tcHkiLCxSeHhWLFJ4eFYtICAsZk1QWTE2U1Ms ICAgICAgICAgICxmUEFTUyxmUEFTUykKK1NURF9TUF9NT0RFUyhtcHlkLCAgICAgICAiUmRkMzI9 bXB5IiwgLFJkZFYsICAgICAgICxmTVBZMTZTUywgICAgICAgICAgLGZQQVNTLGZQQVNTKQorU1RE X1NQX01PREVTKG1weWRfcm5kLCAgICJSZGQzMj1tcHkiLCAsUmRkViwgICAgICAgLGZNUFkxNlNT LCI6cm5kIiAgICAsZlBBU1MsZlJPVU5EKQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIG11bHRpcGx5IDE2eDE2LT4zMiB1bnNp Z25lZCBpbnN0cnVjdGlvbnMgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgU1REX1VTUF9NT0RFUyhUQUcs T1BFUixBVFIsRFNULEFDQ1NFTSxTRU0sT1NFTSxTQVRTRU0sUk5EU0VNKVwKK1E2SU5TTihNMl8j I1RBRyMjX2hoX3MwLCBPUEVSIihScy5IMzIsUnQuSDMyKSJPU0VNLCAgICAgICAgQVRSLCIiLHtE U1Q9U0FUU0VNKFJORFNFTShBQ0NTRU0gU0VNKCAgICAgICAgIGZHRVRVSEFMRigxLFJzViksZkdF VFVIQUxGKDEsUnRWKSkpKTt9KVwKK1E2SU5TTihNMl8jI1RBRyMjX2hoX3MxLCBPUEVSIihScy5I MzIsUnQuSDMyKTo8PDEiT1NFTSwgICAgQVRSLCIiLHtEU1Q9U0FUU0VNKFJORFNFTShBQ0NTRU0g ZlNDQUxFKDEsU0VNKGZHRVRVSEFMRigxLFJzViksZkdFVFVIQUxGKDEsUnRWKSkpKSk7fSlcCitR NklOU04oTTJfIyNUQUcjI19obF9zMCwgT1BFUiIoUnMuSDMyLFJ0LkwzMikiT1NFTSwgICAgICAg IEFUUiwiIix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VUVUhBTEYo MSxSc1YpLGZHRVRVSEFMRigwLFJ0VikpKSk7fSlcCitRNklOU04oTTJfIyNUQUcjI19obF9zMSwg T1BFUiIoUnMuSDMyLFJ0LkwzMik6PDwxIk9TRU0sICAgIEFUUiwiIix7RFNUPVNBVFNFTShSTkRT RU0oQUNDU0VNIGZTQ0FMRSgxLFNFTShmR0VUVUhBTEYoMSxSc1YpLGZHRVRVSEFMRigwLFJ0Vikp KSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfbGhfczAsIE9QRVIiKFJzLkwzMixSdC5IMzIpIk9T RU0sICAgICAgICBBVFIsIiIse0RTVD1TQVRTRU0oUk5EU0VNKEFDQ1NFTSBTRU0oICAgICAgICAg ZkdFVFVIQUxGKDAsUnNWKSxmR0VUVUhBTEYoMSxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFH IyNfbGhfczEsIE9QRVIiKFJzLkwzMixSdC5IMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1T QVRTRU0oUk5EU0VNKEFDQ1NFTSBmU0NBTEUoMSxTRU0oZkdFVFVIQUxGKDAsUnNWKSxmR0VUVUhB TEYoMSxSdFYpKSkpKTt9KVwKK1E2SU5TTihNMl8jI1RBRyMjX2xsX3MwLCBPUEVSIihScy5MMzIs UnQuTDMyKSJPU0VNLCAgICAgICAgQVRSLCIiLHtEU1Q9U0FUU0VNKFJORFNFTShBQ0NTRU0gU0VN KCAgICAgICAgIGZHRVRVSEFMRigwLFJzViksZkdFVFVIQUxGKDAsUnRWKSkpKTt9KVwKK1E2SU5T TihNMl8jI1RBRyMjX2xsX3MxLCBPUEVSIihScy5MMzIsUnQuTDMyKTo8PDEiT1NFTSwgICAgQVRS LCIiLHtEU1Q9U0FUU0VNKFJORFNFTShBQ0NTRU0gZlNDQUxFKDEsU0VNKGZHRVRVSEFMRigwLFJz ViksZkdFVFVIQUxGKDAsUnRWKSkpKSk7fSkKKworU1REX1VTUF9NT0RFUyhtcHl1X2FjYywgICAg IlJ4MzIrPW1weXUiLCAsUnhWLFJ4VisgICxmTVBZMTZVVSwgICAgICAgICAgLGZQQVNTLGZQQVNT KQorU1REX1VTUF9NT0RFUyhtcHl1X25hYywgICAgIlJ4MzItPW1weXUiLCAsUnhWLFJ4Vi0gICxm TVBZMTZVVSwgICAgICAgICAgLGZQQVNTLGZQQVNTKQorU1REX1VTUF9NT0RFUyhtcHl1LCAgICAg ICAgIlJkMzI9bXB5dSIsICBBVFRSSUJTKCkgLFJkViwgICxmTVBZMTZVVSwgLGZQQVNTLGZQQVNT KQorU1REX1VTUF9NT0RFUyhtcHl1ZF9hY2MsICAgIlJ4eDMyKz1tcHl1IiwsUnh4VixSeHhWKyxm TVBZMTZVVSwgICAgICAgICAgLGZQQVNTLGZQQVNTKQorU1REX1VTUF9NT0RFUyhtcHl1ZF9uYWMs ICAgIlJ4eDMyLT1tcHl1IiwsUnh4VixSeHhWLSxmTVBZMTZVVSwgICAgICAgICAgLGZQQVNTLGZQ QVNTKQorU1REX1VTUF9NT0RFUyhtcHl1ZCwgICAgICAgIlJkZDMyPW1weXUiLCBBVFRSSUJTKCkg LFJkZFYsICxmTVBZMTZVVSwgLGZQQVNTLGZQQVNTKQorCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIG1weSAxNngjczgtPjMyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisKK1E2SU5TTihNMl9tcHlzaXAsIlJkMzI9K21weWkoUnMzMiwjdTgpIixB VFRSSUJTKEFfQVJDSFYyKSwKKyIzMi1iaXQgTXVsdGlwbHkgYnkgdW5zaWduZWQgaW1tZWRpYXRl IiwKK3sgZklNTUVYVCh1aVYpOyBSZFY9UnNWKnVpVjsgfSkKKworUTZJTlNOKE0yX21weXNpbiwi UmQzMj0tbXB5aShSczMyLCN1OCkiLEFUVFJJQlMoQV9BUkNIVjIpLAorIjMyLWJpdCBNdWx0aXBs eSBieSB1bnNpZ25lZCBpbW1lZGlhdGUsIG5lZ2F0ZSByZXN1bHQiLAoreyBSZFY9UnNWKi11aVY7 IH0pCisKK1E2SU5TTihNMl9tYWNzaXAsIlJ4MzIrPW1weWkoUnMzMiwjdTgpIixBVFRSSUJTKEFf QVJDSFYyKSwKKyIzMi1iaXQgTXVsdGlwbHktQWRkIGJ5IHVuc2lnbmVkIGltbWVkaWF0ZSIsCit7 IGZJTU1FWFQodWlWKTsgUnhWPVJ4ViArIChSc1YqdWlWKTt9KQorCitRNklOU04oTTJfbWFjc2lu LCJSeDMyLT1tcHlpKFJzMzIsI3U4KSIsQVRUUklCUyhBX0FSQ0hWMiksCisiMzItYml0IE11bHRp cGx5LVN1YnRyYWN0IGJ5IHVuc2lnbmVkIGltbWVkaWF0ZSIsCit7IGZJTU1FWFQodWlWKTsgUnhW PVJ4ViAtIChSc1YqdWlWKTt9KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworLyogbXVsdGlwbHkvbWFjICAzMngzMi0+NjQgaW5zdHJ1Y3Rpb25z ICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KK1E2SU5TTihNMl9kcG1weXNzX3MwLCAgICAiUmRkMzI9bXB5KFJzMzIsUnQzMikiLCBBVFRS SUJTKCksIk11bHRpcGx5IDMyeDMyIix7UmRkVj1mTVBZMzJTUyhSc1YsUnRWKTt9KQorUTZJTlNO KE0yX2RwbXB5c3NfYWNjX3MwLCJSeHgzMis9bXB5KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwiTXVs dGlwbHkgMzJ4MzIiLHtSeHhWPSBSeHhWICsgZk1QWTMyU1MoUnNWLFJ0Vik7fSkKK1E2SU5TTihN Ml9kcG1weXNzX25hY19zMCwiUnh4MzItPW1weShSczMyLFJ0MzIpIixBVFRSSUJTKCksIk11bHRp cGx5IDMyeDMyIix7Unh4Vj0gUnh4ViAtIGZNUFkzMlNTKFJzVixSdFYpO30pCisKK1E2SU5TTihN Ml9kcG1weXV1X3MwLCAgICAiUmRkMzI9bXB5dShSczMyLFJ0MzIpIiwgQVRUUklCUygpLCJNdWx0 aXBseSAzMngzMiIse1JkZFY9Zk1QWTMyVVUoZkNBU1Q0dShSc1YpLGZDQVNUNHUoUnRWKSk7fSkK K1E2SU5TTihNMl9kcG1weXV1X2FjY19zMCwiUnh4MzIrPW1weXUoUnMzMixSdDMyKSIsQVRUUklC UygpLCJNdWx0aXBseSAzMngzMiIse1J4eFY9IFJ4eFYgKyBmTVBZMzJVVShmQ0FTVDR1KFJzViks ZkNBU1Q0dShSdFYpKTt9KQorUTZJTlNOKE0yX2RwbXB5dXVfbmFjX3MwLCJSeHgzMi09bXB5dShS czMyLFJ0MzIpIixBVFRSSUJTKCksIk11bHRpcGx5IDMyeDMyIix7Unh4Vj0gUnh4ViAtIGZNUFkz MlVVKGZDQVNUNHUoUnNWKSxmQ0FTVDR1KFJ0VikpO30pCisKKworLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIG11bHRpcGx5L21hYyAg MzJ4MzItPjMyICh1cHBlcikgaW5zdHJ1Y3Rpb25zICAgICAgICovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworUTZJTlNOKE0yX21weV91 cCwgICAgICAgICJSZDMyPW1weShSczMyLFJ0MzIpIiwgQVRUUklCUygpLCJNdWx0aXBseSAzMngz MiIse1JkVj1mTVBZMzJTUyhSc1YsUnRWKT4+MzI7fSkKK1E2SU5TTihNMl9tcHlfdXBfczEsICAg ICAiUmQzMj1tcHkoUnMzMixSdDMyKTo8PDEiLCBBVFRSSUJTKCksIk11bHRpcGx5IDMyeDMyIix7 UmRWPWZNUFkzMlNTKFJzVixSdFYpPj4zMTt9KQorUTZJTlNOKE0yX21weV91cF9zMV9zYXQsICJS ZDMyPW1weShSczMyLFJ0MzIpOjw8MTpzYXQiLCBBVFRSSUJTKCksIk11bHRpcGx5IDMyeDMyIix7 UmRWPWZTQVQoZk1QWTMyU1MoUnNWLFJ0Vik+PjMxKTt9KQorUTZJTlNOKE0yX21weXVfdXAsICAg ICAgICJSZDMyPW1weXUoUnMzMixSdDMyKSIsIEFUVFJJQlMoKSwiTXVsdGlwbHkgMzJ4MzIiLHtS ZFY9Zk1QWTMyVVUoZkNBU1Q0dShSc1YpLGZDQVNUNHUoUnRWKSk+PjMyO30pCitRNklOU04oTTJf bXB5c3VfdXAsICAgICAgIlJkMzI9bXB5c3UoUnMzMixSdDMyKSIsIEFUVFJJQlMoKSwiTXVsdGlw bHkgMzJ4MzIiLHtSZFY9Zk1QWTMyU1UoUnNWLGZDQVNUNHUoUnRWKSk+PjMyO30pCitRNklOU04o TTJfZHBtcHlzc19ybmRfczAsIlJkMzI9bXB5KFJzMzIsUnQzMik6cm5kIiwgQVRUUklCUygpLCJN dWx0aXBseSAzMngzMiIse1JkVj0oZk1QWTMyU1MoUnNWLFJ0VikrZkNPTlNUTEwoMHg4MDAwMDAw MCkpPj4zMjt9KQorCitRNklOU04oTTRfbWFjX3VwX3MxX3NhdCwgIlJ4MzIrPW1weShSczMyLFJ0 MzIpOjw8MTpzYXQiLCBBVFRSSUJTKCksIk11bHRpcGx5IDMyeDMyIix7UnhWPWZTQVQoICAoZlNF MzJfNjQoUnhWKSkgKyAoZk1QWTMyU1MoUnNWLFJ0Vik+PjMxKSk7fSkKK1E2SU5TTihNNF9uYWNf dXBfczFfc2F0LCAiUngzMi09bXB5KFJzMzIsUnQzMik6PDwxOnNhdCIsIEFUVFJJQlMoKSwiTXVs dGlwbHkgMzJ4MzIiLHtSeFY9ZlNBVCggIChmU0UzMl82NChSeFYpKSAtIChmTVBZMzJTUyhSc1Ys UnRWKT4+MzEpKTt9KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworLyogMzJ4MzItPjMyIG11bHRpcGx5IChsb3dlcikgICAgICAgICAgICAgICAg ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor UTZJTlNOKE0yX21weWksIlJkMzI9bXB5aShSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiTXVsdGlw bHkgSW50ZWdlciIsCit7IFJkVj1Sc1YqUnRWO30pCisKK1E2SU5TTihNMl9tYWNpLCJSeDMyKz1t cHlpKFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIk11bHRpcGx5LUFjY3VtdWxhdGUg SW50ZWdlciIsCit7IFJ4Vj1SeFYgKyBSc1YqUnRWO30pCisKK1E2SU5TTihNMl9tbmFjaSwiUngz Mi09bXB5aShSczMyLFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJNdWx0aXBseS1OZWctQWNj dW11bGF0ZSBJbnRlZ2VyIiwKK3sgUnhWPVJ4ViAtIFJzVipSdFY7fSkKKworLyoqKioqKiBXSFkg QVJFIFRIRVNFIElOIE1QWS5JREVGPyAqKioqKioqKioqLworCitRNklOU04oTTJfYWNjaSwiUngz Mis9YWRkKFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkFkZCB3aXRoIGFjY3VtdWxh dGUiLAoreyBSeFY9UnhWICsgUnNWICsgUnRWO30pCisKK1E2SU5TTihNMl9hY2NpaSwiUngzMis9 YWRkKFJzMzIsI3M4KSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQWRkIHdpdGggYWNjdW11bGF0ZSIs Cit7IGZJTU1FWFQoc2lWKTsgUnhWPVJ4ViArIFJzViArIHNpVjt9KQorCitRNklOU04oTTJfbmFj Y2ksIlJ4MzItPWFkZChSczMyLFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBZGQgd2l0aCBu ZWcgYWNjdW11bGF0ZSIsCit7IFJ4Vj1SeFYgLSAoUnNWICsgUnRWKTt9KQorCitRNklOU04oTTJf bmFjY2lpLCJSeDMyLT1hZGQoUnMzMiwjczgpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBZGQgd2l0 aCBuZWcgYWNjdW11bGF0ZSIsCit7IGZJTU1FWFQoc2lWKTsgUnhWPVJ4ViAtIChSc1YgKyBzaVYp O30pCisKK1E2SU5TTihNMl9zdWJhY2MsIlJ4MzIrPXN1YihSdDMyLFJzMzIpIixBVFRSSUJTKEFf QVJDSFYyKSwKKyJTdWIgd2l0aCBhY2N1bXVsYXRlIiwKK3sgUnhWPVJ4ViArIFJ0ViAtIFJzVjt9 KQorCisKKworCitRNklOU04oTTRfbXB5cnJfYWRkciwiUnkzMj1hZGQoUnUzMixtcHlpKFJ5MzIs UnMzMikpIixBVFRSSUJTKCksCisiTXB5IGJ5IGltbWVkIGFuZCBhZGQgaW1tZWQiLAoreyBSeVYg PSBSdVYgKyBSc1YqUnlWO30pCisKK1E2SU5TTihNNF9tcHlyaV9hZGRyX3UyLCJSZDMyPWFkZChS dTMyLG1weWkoI3U2OjIsUnMzMikpIixBVFRSSUJTKCksCisiTXB5IGJ5IGltbWVkIGFuZCBhZGQg aW1tZWQiLAoreyBSZFYgPSBSdVYgKyBSc1YqdWlWO30pCisKK1E2SU5TTihNNF9tcHlyaV9hZGRy LCJSZDMyPWFkZChSdTMyLG1weWkoUnMzMiwjdTYpKSIsQVRUUklCUygpLAorIk1weSBieSBpbW1l ZCBhbmQgYWRkIGltbWVkIiwKK3sgZklNTUVYVCh1aVYpOyBSZFYgPSBSdVYgKyBSc1YqdWlWO30p CisKKworCitRNklOU04oTTRfbXB5cmlfYWRkaSwiUmQzMj1hZGQoI3U2LG1weWkoUnMzMiwjVTYp KSIsQVRUUklCUygpLAorIk1weSBieSBpbW1lZCBhbmQgYWRkIGltbWVkIiwKK3sgZklNTUVYVCh1 aVYpOyBSZFYgPSB1aVYgKyBSc1YqVWlWO30pCisKKworCitRNklOU04oTTRfbXB5cnJfYWRkaSwi UmQzMj1hZGQoI3U2LG1weWkoUnMzMixSdDMyKSkiLEFUVFJJQlMoKSwKKyJNcHkgYnkgaW1tZWQg YW5kIGFkZCBpbW1lZCIsCit7IGZJTU1FWFQodWlWKTsgUmRWID0gdWlWICsgUnNWKlJ0Vjt9KQor CisKKworCisKKworCisKKworCisKKworCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworLyogdmVjdG9yIG1hYyAgMnhbMTZ4MTYgLT4gMzJd ICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworI3VuZGVmIHZtYWNfc2VtYQorI2RlZmluZSB2bWFjX3NlbWEoTilcCit7 IGZTRVRXT1JEKDAsUmRkVixmU0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNWKSxm R0VUSEFMRigwLFJ0VikpKSkpO1wKKyAgZlNFVFdPUkQoMSxSZGRWLGZTQVQoZlNDQUxFKE4sZk1Q WTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpKSk7XAorfQorUTZJTlNOKE0y X3ZtcHkyc19zMCwiUmRkMzI9dm1weWgoUnMzMixSdDMyKTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9y IE11bHRpcGx5Iix2bWFjX3NlbWEoMCkpCitRNklOU04oTTJfdm1weTJzX3MxLCJSZGQzMj12bXB5 aChSczMyLFJ0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFjX3Nl bWEoMSkpCisKKworI3VuZGVmIHZtYWNfc2VtYQorI2RlZmluZSB2bWFjX3NlbWEoTilcCit7IGZT RVRXT1JEKDAsUnh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgKyBmU0NBTEUoTixmTVBZMTZTUyhm R0VUSEFMRigwLFJzViksZkdFVEhBTEYoMCxSdFYpKSkpKTtcCisgIGZTRVRXT1JEKDEsUnh4Vixm U0FUKGZHRVRXT1JEKDEsUnh4VikgKyBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigxLFJzViks ZkdFVEhBTEYoMSxSdFYpKSkpKTtcCit9CitRNklOU04oTTJfdm1hYzJzX3MwLCJSeHgzMis9dm1w eWgoUnMzMixSdDMyKTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFjX3NlbWEo MCkpCitRNklOU04oTTJfdm1hYzJzX3MxLCJSeHgzMis9dm1weWgoUnMzMixSdDMyKTo8PDE6c2F0 IixBVFRSSUJTKCksIlZlY3RvciBNdWx0aXBseSIsdm1hY19zZW1hKDEpKQorCisjdW5kZWYgdm1h Y19zZW1hCisjZGVmaW5lIHZtYWNfc2VtYShOKVwKK3sgZlNFVFdPUkQoMCxSZGRWLGZTQVQoZlND QUxFKE4sZk1QWTE2U1UoZkdFVEhBTEYoMCxSc1YpLGZHRVRVSEFMRigwLFJ0VikpKSkpO1wKKyAg ZlNFVFdPUkQoMSxSZGRWLGZTQVQoZlNDQUxFKE4sZk1QWTE2U1UoZkdFVEhBTEYoMSxSc1YpLGZH RVRVSEFMRigxLFJ0VikpKSkpO1wKK30KK1E2SU5TTihNMl92bXB5MnN1X3MwLCJSZGQzMj12bXB5 aHN1KFJzMzIsUnQzMik6c2F0IixBVFRSSUJTKCksIlZlY3RvciBNdWx0aXBseSIsdm1hY19zZW1h KDApKQorUTZJTlNOKE0yX3ZtcHkyc3VfczEsIlJkZDMyPXZtcHloc3UoUnMzMixSdDMyKTo8PDE6 c2F0IixBVFRSSUJTKCksIlZlY3RvciBNdWx0aXBseSIsdm1hY19zZW1hKDEpKQorCisKKyN1bmRl ZiB2bWFjX3NlbWEKKyNkZWZpbmUgdm1hY19zZW1hKE4pXAoreyBmU0VUV09SRCgwLFJ4eFYsZlNB VChmR0VUV09SRCgwLFJ4eFYpICsgZlNDQUxFKE4sZk1QWTE2U1UoZkdFVEhBTEYoMCxSc1YpLGZH RVRVSEFMRigwLFJ0VikpKSkpO1wKKyAgZlNFVFdPUkQoMSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxS eHhWKSArIGZTQ0FMRShOLGZNUFkxNlNVKGZHRVRIQUxGKDEsUnNWKSxmR0VUVUhBTEYoMSxSdFYp KSkpKTtcCit9CitRNklOU04oTTJfdm1hYzJzdV9zMCwiUnh4MzIrPXZtcHloc3UoUnMzMixSdDMy KTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFjX3NlbWEoMCkpCitRNklOU04o TTJfdm1hYzJzdV9zMSwiUnh4MzIrPXZtcHloc3UoUnMzMixSdDMyKTo8PDE6c2F0IixBVFRSSUJT KCksIlZlY3RvciBNdWx0aXBseSIsdm1hY19zZW1hKDEpKQorCisKKworI3VuZGVmIHZtYWNfc2Vt YQorI2RlZmluZSB2bWFjX3NlbWEoTilcCit7IGZTRVRIQUxGKDEsUmRWLGZHRVRIQUxGKDEsKGZT QVQoZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpICsg MHg4MDAwKSkpKTtcCisgIGZTRVRIQUxGKDAsUmRWLGZHRVRIQUxGKDEsKGZTQVQoZlNDQUxFKE4s Zk1QWTE2U1MoZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxGKDAsUnRWKSkpICsgMHg4MDAwKSkpKTtc Cit9CitRNklOU04oTTJfdm1weTJzX3MwcGFjaywiUmQzMj12bXB5aChSczMyLFJ0MzIpOnJuZDpz YXQiLEFUVFJJQlMoQV9BUkNIVjIpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgwKSkKK1E2 SU5TTihNMl92bXB5MnNfczFwYWNrLCJSZDMyPXZtcHloKFJzMzIsUnQzMik6PDwxOnJuZDpzYXQi LEFUVFJJQlMoQV9BUkNIVjIpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgxKSkKKworCisj dW5kZWYgdm1hY19zZW1hCisjZGVmaW5lIHZtYWNfc2VtYShOKVwKK3sgZlNFVFdPUkQoMCxSeHhW LGZHRVRXT1JEKDAsUnh4VikgKyBmTVBZMTZTUyhmR0VUSEFMRigwLFJzViksZkdFVEhBTEYoMCxS dFYpKSk7XAorICBmU0VUV09SRCgxLFJ4eFYsZkdFVFdPUkQoMSxSeHhWKSArIGZNUFkxNlNTKGZH RVRIQUxGKDEsUnNWKSxmR0VUSEFMRigxLFJ0VikpKTtcCit9CitRNklOU04oTTJfdm1hYzIsIlJ4 eDMyKz12bXB5aChSczMyLFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwiVmVjdG9yIE11bHRpcGx5 Iix2bWFjX3NlbWEoMCkpCisKKyN1bmRlZiB2bWFjX3NlbWEKKyNkZWZpbmUgdm1hY19zZW1hKE4p XAoreyBmU0VUV09SRCgwLFJkZFYsZlNBVChmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigwLFJz c1YpLGZHRVRIQUxGKDAsUnR0VikpKSkpO1wKKyAgZlNFVFdPUkQoMSxSZGRWLGZTQVQoZlNDQUxF KE4sZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkpKTtcCit9CitR NklOU04oTTJfdm1weTJlc19zMCwiUmRkMzI9dm1weWVoKFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJ QlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFjX3NlbWEoMCkpCitRNklOU04oTTJfdm1weTJlc19z MSwiUmRkMzI9dm1weWVoKFJzczMyLFJ0dDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIlZlY3RvciBN dWx0aXBseSIsdm1hY19zZW1hKDEpKQorCisjdW5kZWYgdm1hY19zZW1hCisjZGVmaW5lIHZtYWNf c2VtYShOKVwKK3sgZlNFVFdPUkQoMCxSeHhWLGZTQVQoZkdFVFdPUkQoMCxSeHhWKSArIGZTQ0FM RShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkpKSk7XAorICBm U0VUV09SRCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYpICsgZlNDQUxFKE4sZk1QWTE2U1Mo ZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkpKTtcCit9CitRNklOU04oTTJfdm1h YzJlc19zMCwiUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksIlZlY3Rv ciBNdWx0aXBseSIsdm1hY19zZW1hKDApKQorUTZJTlNOKE0yX3ZtYWMyZXNfczEsIlJ4eDMyKz12 bXB5ZWgoUnNzMzIsUnR0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2 bWFjX3NlbWEoMSkpCisKKyN1bmRlZiB2bWFjX3NlbWEKKyNkZWZpbmUgdm1hY19zZW1hKE4pXAor eyBmU0VUV09SRCgwLFJ4eFYsZkdFVFdPUkQoMCxSeHhWKSArIGZNUFkxNlNTKGZHRVRIQUxGKDAs UnNzViksZkdFVEhBTEYoMCxSdHRWKSkpO1wKKyAgZlNFVFdPUkQoMSxSeHhWLGZHRVRXT1JEKDEs Unh4VikgKyBmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpKTtcCit9 CitRNklOU04oTTJfdm1hYzJlcywiUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMikiLEFUVFJJQlMo QV9BUkNIVjIpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgwKSkKKworCisKKworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyog dnJtcHloLCBha2EgQmlnIE1hYywgYWthIE1hYyBEYWRkeSwgYWthIE1hYy1hYy1hYy1hYyAqLwor LyogdmVjdG9yIG1hYyAgNHhbMTZ4MTZdICsgNjQgLT42NCAgICAgICAgICAgICAgICAgICAgICAq LworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworCisKKyN1bmRlZiB2bWFjX3NlbWEKKyNkZWZpbmUgdm1hY19zZW1hKE4pXAoreyBSeHhW ID0gUnh4ViArIGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSlcCisg ICAgICAgICAgICAgICsgZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFMRigxLFJ0dFYp KVwKKyAgICAgICAgICAgICAgKyBmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDIs UnR0VikpXAorICAgICAgICAgICAgICArIGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhB TEYoMyxSdHRWKSk7XAorfQorUTZJTlNOKE0yX3ZybWFjX3MwLCJSeHgzMis9dnJtcHloKFJzczMy LFJ0dDMyKSIsQVRUUklCUygpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgwKSkKKworI3Vu ZGVmIHZtYWNfc2VtYQorI2RlZmluZSB2bWFjX3NlbWEoTilcCit7IFJkZFYgPSBmTVBZMTZTUyhm R0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpXAorICAgICAgICsgZk1QWTE2U1MoZkdF VEhBTEYoMSxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKVwKKyAgICAgICArIGZNUFkxNlNTKGZHRVRI QUxGKDIsUnNzViksZkdFVEhBTEYoMixSdHRWKSlcCisgICAgICAgKyBmTVBZMTZTUyhmR0VUSEFM RigzLFJzc1YpLGZHRVRIQUxGKDMsUnR0VikpO1wKK30KK1E2SU5TTihNMl92cm1weV9zMCwiUmRk MzI9dnJtcHloKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNf c2VtYSgwKSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCisvKiB2ZWN0b3IgZHVhbCBtYWNzLiBqdXN0IGxpa2UgY29tcGxleCAg ICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworCisvKiBXaXRoIHJvdW5kJnBhY2sgKi8KKyN1bmRlZiBkbXB5 X3NlbWEKKyNkZWZpbmUgZG1weV9zZW1hKE4pXAoreyBmU0VUSEFMRigwLFJkVixmR0VUSEFMRigx LChmU0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRW KSkpICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZNUFkx NlNTKGZHRVRIQUxGKDEsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkpICsgMHg4MDAwKSkpKTtcCisg IGZTRVRIQUxGKDEsUmRWLGZHRVRIQUxGKDEsKGZTQVQoZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhB TEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMyxSc3NWKSxmR0VUSEFMRigz LFJ0dFYpKSkgKyAweDgwMDApKSkpO1wKK30KK1E2SU5TTihNMl92ZG1weXJzX3MwLCJSZDMyPXZk bXB5KFJzczMyLFJ0dDMyKTpybmQ6c2F0IixBVFRSSUJTKCksICAgICJ2ZWN0b3IgZHVhbCBtYWMg dy8gcm91bmQmcGFjayIsZG1weV9zZW1hKDApKQorUTZJTlNOKE0yX3ZkbXB5cnNfczEsIlJkMzI9 dmRtcHkoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksInZlY3RvciBkdWFsIG1h YyB3LyByb3VuZCZwYWNrIixkbXB5X3NlbWEoMSkpCisKKworCisKKworLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIHZlY3RvciBieXRl IG11bHRpcGxpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK1E2SU5TTihN NV92cm1weWJ1dSwiUmRkMzI9dnJtcHlidShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyAidmVj dG9yIGR1YWwgbXB5IGJ5dGVzIiwKK3sKKyAgZlNFVFdPUkQoMCxSZGRWLChmTVBZMTZTUyhmR0VU VUJZVEUoMCxSc3NWKSxmR0VUVUJZVEUoMCxSdHRWKSkgKworICAgICAgICAgICAgICAgICAgIGZN UFkxNlNTKGZHRVRVQllURSgxLFJzc1YpLGZHRVRVQllURSgxLFJ0dFYpKSArCisgICAgICAgICAg ICAgICAgICAgZk1QWTE2U1MoZkdFVFVCWVRFKDIsUnNzViksZkdFVFVCWVRFKDIsUnR0VikpICsK KyAgICAgICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUVUJZVEUoMyxSc3NWKSxmR0VUVUJZVEUo MyxSdHRWKSkpKTsKKyAgZlNFVFdPUkQoMSxSZGRWLChmTVBZMTZTUyhmR0VUVUJZVEUoNCxSc3NW KSxmR0VUVUJZVEUoNCxSdHRWKSkgKworICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRV QllURSg1LFJzc1YpLGZHRVRVQllURSg1LFJ0dFYpKSArCisgICAgICAgICAgICAgICAgICAgZk1Q WTE2U1MoZkdFVFVCWVRFKDYsUnNzViksZkdFVFVCWVRFKDYsUnR0VikpICsKKyAgICAgICAgICAg ICAgICAgICBmTVBZMTZTUyhmR0VUVUJZVEUoNyxSc3NWKSxmR0VUVUJZVEUoNyxSdHRWKSkpKTsK KyB9KQorCitRNklOU04oTTVfdnJtYWNidXUsIlJ4eDMyKz12cm1weWJ1KFJzczMyLFJ0dDMyKSIs QVRUUklCUygpLAorICJ2ZWN0b3IgZHVhbCBtYWMgYnl0ZXMiLAoreworICBmU0VUV09SRCgwLFJ4 eFYsKGZHRVRXT1JEKDAsUnh4VikgKworICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRV QllURSgwLFJzc1YpLGZHRVRVQllURSgwLFJ0dFYpKSArCisgICAgICAgICAgICAgICAgICAgZk1Q WTE2U1MoZkdFVFVCWVRFKDEsUnNzViksZkdFVFVCWVRFKDEsUnR0VikpICsKKyAgICAgICAgICAg ICAgICAgICBmTVBZMTZTUyhmR0VUVUJZVEUoMixSc3NWKSxmR0VUVUJZVEUoMixSdHRWKSkgKwor ICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRVQllURSgzLFJzc1YpLGZHRVRVQllURSgz LFJ0dFYpKSkpOworICBmU0VUV09SRCgxLFJ4eFYsKGZHRVRXT1JEKDEsUnh4VikgKworICAgICAg ICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRVQllURSg0LFJzc1YpLGZHRVRVQllURSg0LFJ0dFYp KSArCisgICAgICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVFVCWVRFKDUsUnNzViksZkdFVFVC WVRFKDUsUnR0VikpICsKKyAgICAgICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUVUJZVEUoNixS c3NWKSxmR0VUVUJZVEUoNixSdHRWKSkgKworICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZH RVRVQllURSg3LFJzc1YpLGZHRVRVQllURSg3LFJ0dFYpKSkpOworIH0pCisKKworUTZJTlNOKE01 X3ZybXB5YnN1LCJSZGQzMj12cm1weWJzdShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyAidmVj dG9yIGR1YWwgbXB5IGJ5dGVzIiwKK3sKKyAgZlNFVFdPUkQoMCxSZGRWLChmTVBZMTZTUyhmR0VU QllURSgwLFJzc1YpLGZHRVRVQllURSgwLFJ0dFYpKSArCisgICAgICAgICAgICAgICAgICAgZk1Q WTE2U1MoZkdFVEJZVEUoMSxSc3NWKSxmR0VUVUJZVEUoMSxSdHRWKSkgKworICAgICAgICAgICAg ICAgICAgIGZNUFkxNlNTKGZHRVRCWVRFKDIsUnNzViksZkdFVFVCWVRFKDIsUnR0VikpICsKKyAg ICAgICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUQllURSgzLFJzc1YpLGZHRVRVQllURSgzLFJ0 dFYpKSkpOworICBmU0VUV09SRCgxLFJkZFYsKGZNUFkxNlNTKGZHRVRCWVRFKDQsUnNzViksZkdF VFVCWVRFKDQsUnR0VikpICsKKyAgICAgICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUQllURSg1 LFJzc1YpLGZHRVRVQllURSg1LFJ0dFYpKSArCisgICAgICAgICAgICAgICAgICAgZk1QWTE2U1Mo ZkdFVEJZVEUoNixSc3NWKSxmR0VUVUJZVEUoNixSdHRWKSkgKworICAgICAgICAgICAgICAgICAg IGZNUFkxNlNTKGZHRVRCWVRFKDcsUnNzViksZkdFVFVCWVRFKDcsUnR0VikpKSk7CisgfSkKKwor UTZJTlNOKE01X3ZybWFjYnN1LCJSeHgzMis9dnJtcHlic3UoUnNzMzIsUnR0MzIpIixBVFRSSUJT KCksCisgInZlY3RvciBkdWFsIG1hYyBieXRlcyIsCit7CisgIGZTRVRXT1JEKDAsUnh4ViwoZkdF VFdPUkQoMCxSeHhWKSArCisgICAgICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEJZVEUoMCxS c3NWKSxmR0VUVUJZVEUoMCxSdHRWKSkgKworICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZH RVRCWVRFKDEsUnNzViksZkdFVFVCWVRFKDEsUnR0VikpICsKKyAgICAgICAgICAgICAgICAgICBm TVBZMTZTUyhmR0VUQllURSgyLFJzc1YpLGZHRVRVQllURSgyLFJ0dFYpKSArCisgICAgICAgICAg ICAgICAgICAgZk1QWTE2U1MoZkdFVEJZVEUoMyxSc3NWKSxmR0VUVUJZVEUoMyxSdHRWKSkpKTsK KyAgZlNFVFdPUkQoMSxSeHhWLChmR0VUV09SRCgxLFJ4eFYpICsKKyAgICAgICAgICAgICAgICAg ICBmTVBZMTZTUyhmR0VUQllURSg0LFJzc1YpLGZHRVRVQllURSg0LFJ0dFYpKSArCisgICAgICAg ICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEJZVEUoNSxSc3NWKSxmR0VUVUJZVEUoNSxSdHRWKSkg KworICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRCWVRFKDYsUnNzViksZkdFVFVCWVRF KDYsUnR0VikpICsKKyAgICAgICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUQllURSg3LFJzc1Yp LGZHRVRVQllURSg3LFJ0dFYpKSkpOworIH0pCisKKworUTZJTlNOKE01X3ZtcHlidXUsIlJkZDMy PXZtcHlidShSczMyLFJ0MzIpIixBVFRSSUJTKCksCisgInZlY3RvciBtcHkgYnl0ZXMiLAorewor ICBmU0VUSEFMRigwLFJkZFYsKGZNUFkxNlNTKGZHRVRVQllURSgwLFJzViksZkdFVFVCWVRFKDAs UnRWKSkpKTsKKyAgZlNFVEhBTEYoMSxSZGRWLChmTVBZMTZTUyhmR0VUVUJZVEUoMSxSc1YpLGZH RVRVQllURSgxLFJ0VikpKSk7CisgIGZTRVRIQUxGKDIsUmRkViwoZk1QWTE2U1MoZkdFVFVCWVRF KDIsUnNWKSxmR0VUVUJZVEUoMixSdFYpKSkpOworICBmU0VUSEFMRigzLFJkZFYsKGZNUFkxNlNT KGZHRVRVQllURSgzLFJzViksZkdFVFVCWVRFKDMsUnRWKSkpKTsKKyB9KQorCitRNklOU04oTTVf dm1weWJzdSwiUmRkMzI9dm1weWJzdShSczMyLFJ0MzIpIixBVFRSSUJTKCksCisgInZlY3RvciBt cHkgYnl0ZXMiLAoreworICBmU0VUSEFMRigwLFJkZFYsKGZNUFkxNlNTKGZHRVRCWVRFKDAsUnNW KSxmR0VUVUJZVEUoMCxSdFYpKSkpOworICBmU0VUSEFMRigxLFJkZFYsKGZNUFkxNlNTKGZHRVRC WVRFKDEsUnNWKSxmR0VUVUJZVEUoMSxSdFYpKSkpOworICBmU0VUSEFMRigyLFJkZFYsKGZNUFkx NlNTKGZHRVRCWVRFKDIsUnNWKSxmR0VUVUJZVEUoMixSdFYpKSkpOworICBmU0VUSEFMRigzLFJk ZFYsKGZNUFkxNlNTKGZHRVRCWVRFKDMsUnNWKSxmR0VUVUJZVEUoMyxSdFYpKSkpOworIH0pCisK KworUTZJTlNOKE01X3ZtYWNidXUsIlJ4eDMyKz12bXB5YnUoUnMzMixSdDMyKSIsQVRUUklCUygp LAorICJ2ZWN0b3IgbWFjIGJ5dGVzIiwKK3sKKyAgZlNFVEhBTEYoMCxSeHhWLChmR0VUSEFMRigw LFJ4eFYpK2ZNUFkxNlNTKGZHRVRVQllURSgwLFJzViksZkdFVFVCWVRFKDAsUnRWKSkpKTsKKyAg ZlNFVEhBTEYoMSxSeHhWLChmR0VUSEFMRigxLFJ4eFYpK2ZNUFkxNlNTKGZHRVRVQllURSgxLFJz ViksZkdFVFVCWVRFKDEsUnRWKSkpKTsKKyAgZlNFVEhBTEYoMixSeHhWLChmR0VUSEFMRigyLFJ4 eFYpK2ZNUFkxNlNTKGZHRVRVQllURSgyLFJzViksZkdFVFVCWVRFKDIsUnRWKSkpKTsKKyAgZlNF VEhBTEYoMyxSeHhWLChmR0VUSEFMRigzLFJ4eFYpK2ZNUFkxNlNTKGZHRVRVQllURSgzLFJzViks ZkdFVFVCWVRFKDMsUnRWKSkpKTsKKyB9KQorCitRNklOU04oTTVfdm1hY2JzdSwiUnh4MzIrPXZt cHlic3UoUnMzMixSdDMyKSIsQVRUUklCUygpLAorICJ2ZWN0b3IgbWFjIGJ5dGVzIiwKK3sKKyAg ZlNFVEhBTEYoMCxSeHhWLChmR0VUSEFMRigwLFJ4eFYpK2ZNUFkxNlNTKGZHRVRCWVRFKDAsUnNW KSxmR0VUVUJZVEUoMCxSdFYpKSkpOworICBmU0VUSEFMRigxLFJ4eFYsKGZHRVRIQUxGKDEsUnh4 VikrZk1QWTE2U1MoZkdFVEJZVEUoMSxSc1YpLGZHRVRVQllURSgxLFJ0VikpKSk7CisgIGZTRVRI QUxGKDIsUnh4ViwoZkdFVEhBTEYoMixSeHhWKStmTVBZMTZTUyhmR0VUQllURSgyLFJzViksZkdF VFVCWVRFKDIsUnRWKSkpKTsKKyAgZlNFVEhBTEYoMyxSeHhWLChmR0VUSEFMRigzLFJ4eFYpK2ZN UFkxNlNTKGZHRVRCWVRFKDMsUnNWKSxmR0VUVUJZVEUoMyxSdFYpKSkpOworIH0pCisKKworCitR NklOU04oTTVfdmRtcHlic3UsIlJkZDMyPXZkbXB5YnN1KFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJ QlMoKSwKKyAidmVjdG9yIHF1YWQgbXB5IGJ5dGVzIiwKK3sKKyAgZlNFVEhBTEYoMCxSZGRWLGZT QVROKDE2LChmTVBZMTZTUyhmR0VUQllURSgwLFJzc1YpLGZHRVRVQllURSgwLFJ0dFYpKSArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEJZVEUoMSxSc3NWKSxmR0VU VUJZVEUoMSxSdHRWKSkpKSk7CisgIGZTRVRIQUxGKDEsUmRkVixmU0FUTigxNiwoZk1QWTE2U1Mo ZkdFVEJZVEUoMixSc3NWKSxmR0VUVUJZVEUoMixSdHRWKSkgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZNUFkxNlNTKGZHRVRCWVRFKDMsUnNzViksZkdFVFVCWVRFKDMsUnR0VikpKSkp OworICBmU0VUSEFMRigyLFJkZFYsZlNBVE4oMTYsKGZNUFkxNlNTKGZHRVRCWVRFKDQsUnNzViks ZkdFVFVCWVRFKDQsUnR0VikpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTVBZMTZT UyhmR0VUQllURSg1LFJzc1YpLGZHRVRVQllURSg1LFJ0dFYpKSkpKTsKKyAgZlNFVEhBTEYoMyxS ZGRWLGZTQVROKDE2LChmTVBZMTZTUyhmR0VUQllURSg2LFJzc1YpLGZHRVRVQllURSg2LFJ0dFYp KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEJZVEUoNyxSc3NW KSxmR0VUVUJZVEUoNyxSdHRWKSkpKSk7CisgfSkKKworCitRNklOU04oTTVfdmRtYWNic3UsIlJ4 eDMyKz12ZG1weWJzdShSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksCisgInZlY3RvciBxdWFk IG1hYyBieXRlcyIsCit7CisgIGZTRVRIQUxGKDAsUnh4VixmU0FUTigxNiwoZkdFVEhBTEYoMCxS eHhWKSArCisgICAgICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEJZVEUoMCxSc3NWKSxmR0VU VUJZVEUoMCxSdHRWKSkgKworICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRCWVRFKDEs UnNzViksZkdFVFVCWVRFKDEsUnR0VikpKSkpOworICBmU0VUSEFMRigxLFJ4eFYsZlNBVE4oMTYs KGZHRVRIQUxGKDEsUnh4VikgKworICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRCWVRF KDIsUnNzViksZkdFVFVCWVRFKDIsUnR0VikpICsKKyAgICAgICAgICAgICAgICAgICBmTVBZMTZT UyhmR0VUQllURSgzLFJzc1YpLGZHRVRVQllURSgzLFJ0dFYpKSkpKTsKKyAgZlNFVEhBTEYoMixS eHhWLGZTQVROKDE2LChmR0VUSEFMRigyLFJ4eFYpICsKKyAgICAgICAgICAgICAgICAgICBmTVBZ MTZTUyhmR0VUQllURSg0LFJzc1YpLGZHRVRVQllURSg0LFJ0dFYpKSArCisgICAgICAgICAgICAg ICAgICAgZk1QWTE2U1MoZkdFVEJZVEUoNSxSc3NWKSxmR0VUVUJZVEUoNSxSdHRWKSkpKSk7Cisg IGZTRVRIQUxGKDMsUnh4VixmU0FUTigxNiwoZkdFVEhBTEYoMyxSeHhWKSArCisgICAgICAgICAg ICAgICAgICAgZk1QWTE2U1MoZkdFVEJZVEUoNixSc3NWKSxmR0VUVUJZVEUoNixSdHRWKSkgKwor ICAgICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRCWVRFKDcsUnNzViksZkdFVFVCWVRFKDcs UnR0VikpKSkpOworIH0pCisKKworCisvKiBGdWxsIHZlcnNpb24gKi8KKyN1bmRlZiBkbXB5X3Nl bWEKKyNkZWZpbmUgZG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgwLFJ4eFYsZlNBVChmR0VUV09S RCgwLFJ4eFYpICsgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMCxSc3NWKSxmR0VUSEFMRigw LFJ0dFYpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZMTZTUyhmR0VU SEFMRigxLFJzc1YpLGZHRVRIQUxGKDEsUnR0VikpKSkpO1wKKyAgZlNFVFdPUkQoMSxSeHhWLGZT QVQoZkdFVFdPUkQoMSxSeHhWKSArIGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDIsUnNzViks ZkdFVEhBTEYoMixSdHRWKSkpICsgXAorICAgICAgICAgICAgICAgICAgICAgZlNDQUxFKE4sZk1Q WTE2U1MoZkdFVEhBTEYoMyxSc3NWKSxmR0VUSEFMRigzLFJ0dFYpKSkpKTtcCit9CitRNklOU04o TTJfdmRtYWNzX3MwLCJSeHgzMis9dmRtcHkoUnNzMzIsUnR0MzIpOnNhdCIsQVRUUklCUygpLCAg ICAiIixkbXB5X3NlbWEoMCkpCitRNklOU04oTTJfdmRtYWNzX3MxLCJSeHgzMis9dmRtcHkoUnNz MzIsUnR0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiIixkbXB5X3NlbWEoMSkpCisKKyN1bmRlZiBk bXB5X3NlbWEKKyNkZWZpbmUgZG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgwLFJkZFYsZlNBVChm U0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpKSArIFwK KyAgICAgICAgICAgICAgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFM RigxLFJ0dFYpKSkpKTtcCisgIGZTRVRXT1JEKDEsUmRkVixmU0FUKGZTQ0FMRShOLGZNUFkxNlNT KGZHRVRIQUxGKDIsUnNzViksZkdFVEhBTEYoMixSdHRWKSkpICsgXAorICAgICAgICAgICAgICBm U0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigzLFJzc1YpLGZHRVRIQUxGKDMsUnR0VikpKSkpO1wK K30KKworUTZJTlNOKE0yX3ZkbXB5c19zMCwiUmRkMzI9dmRtcHkoUnNzMzIsUnR0MzIpOnNhdCIs QVRUUklCUygpLCAgICAiIixkbXB5X3NlbWEoMCkpCitRNklOU04oTTJfdmRtcHlzX3MxLCJSZGQz Mj12ZG1weShSc3MzMixSdHQzMik6PDwxOnNhdCIsQVRUUklCUygpLCIiLGRtcHlfc2VtYSgxKSkK KworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisvKiBjb21wbGV4IG11bHRpcGx5L21hYyB3aXRoICAgICAgICAgICAgICAgICAgICAg ICAgICAqLworLyogcmVhbCZpbWFnIGFyZSBwYWNrZWQgdG9nZXRoZXIgYW5kIGFsd2F5cyBzYXR1 cmF0ZWQgKi8KKy8qIHRvIHByb3RlY3QgYWdhaW5zdCBvdmVyZmxvdy4gICAgICAgICAgICAgICAg ICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworCisjdW5kZWYgY21weV9zZW1hCisjZGVmaW5lIGNtcHlfc2VtYShOLENPTkpN SU5VUyxDT05KUExVUylcCit7IGZTRVRIQUxGKDEsUmRWLGZHRVRIQUxGKDEsKGZTQVQoZlNDQUxF KE4sZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDAsUnRWKSkpIENPTkpNSU5VUyBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNDQUxFKE4sZk1QWTE2U1MoZkdF VEhBTEYoMCxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpICsgMHg4MDAwKSkpKTtcCisgIGZTRVRIQUxG KDAsUmRWLGZHRVRIQUxGKDEsKGZTQVQoZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMCxSc1Yp LGZHRVRIQUxGKDAsUnRWKSkpIENPTkpQTFVTIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigxLFJzViksZkdFVEhBTEYoMSxSdFYp KSkgKyAweDgwMDApKSkpO1wKK30KK1E2SU5TTihNMl9jbXB5cnNfczAsIlJkMzI9Y21weShSczMy LFJ0MzIpOnJuZDpzYXQiLEFUVFJJQlMoKSwgICAgIkNvbXBsZXggTXVsdGlwbHkiLGNtcHlfc2Vt YSgwLCssLSkpCitRNklOU04oTTJfY21weXJzX3MxLCJSZDMyPWNtcHkoUnMzMixSdDMyKTo8PDE6 cm5kOnNhdCIsQVRUUklCUygpLCJDb21wbGV4IE11bHRpcGx5IixjbXB5X3NlbWEoMSwrLC0pKQor CisKK1E2SU5TTihNMl9jbXB5cnNjX3MwLCJSZDMyPWNtcHkoUnMzMixSdDMyKik6cm5kOnNhdCIs QVRUUklCUyhBX0FSQ0hWMiksICAgICJDb21wbGV4IE11bHRpcGx5IixjbXB5X3NlbWEoMCwtLCsp KQorUTZJTlNOKE0yX2NtcHlyc2NfczEsIlJkMzI9Y21weShSczMyLFJ0MzIqKTo8PDE6cm5kOnNh dCIsQVRUUklCUyhBX0FSQ0hWMiksIkNvbXBsZXggTXVsdGlwbHkiLGNtcHlfc2VtYSgxLC0sKykp CisKKworI3VuZGVmIGNtcHlfc2VtYQorI2RlZmluZSBjbXB5X3NlbWEoTixDT05KTUlOVVMsQ09O SlBMVVMpXAoreyBmU0VUV09SRCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYpICsgZlNDQUxF KE4sZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDAsUnRWKSkpIENPTkpNSU5VUyBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZ MTZTUyhmR0VUSEFMRigwLFJzViksZkdFVEhBTEYoMSxSdFYpKSkpKTtcCisgIGZTRVRXT1JEKDAs Unh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgKyBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigw LFJzViksZkdFVEhBTEYoMCxSdFYpKSkgQ09OSlBMVVMgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZH RVRIQUxGKDEsUnRWKSkpKSk7XAorfQorUTZJTlNOKE0yX2NtYWNzX3MwLCJSeHgzMis9Y21weShS czMyLFJ0MzIpOnNhdCIsQVRUUklCUygpLCAgICAiQ29tcGxleCBNdWx0aXBseSIsY21weV9zZW1h KDAsKywtKSkKK1E2SU5TTihNMl9jbWFjc19zMSwiUnh4MzIrPWNtcHkoUnMzMixSdDMyKTo8PDE6 c2F0IixBVFRSSUJTKCksIkNvbXBsZXggTXVsdGlwbHkiLGNtcHlfc2VtYSgxLCssLSkpCisKKy8q IEVKUDogTmVlZCBtYWMgdmVyc2lvbnMgdy8gQ09OSiBUPyAqLworUTZJTlNOKE0yX2NtYWNzY19z MCwiUnh4MzIrPWNtcHkoUnMzMixSdDMyKik6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwgICAgIkNv bXBsZXggTXVsdGlwbHkiLGNtcHlfc2VtYSgwLC0sKykpCitRNklOU04oTTJfY21hY3NjX3MxLCJS eHgzMis9Y21weShSczMyLFJ0MzIqKTo8PDE6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwiQ29tcGxl eCBNdWx0aXBseSIsY21weV9zZW1hKDEsLSwrKSkKKworCisjdW5kZWYgY21weV9zZW1hCisjZGVm aW5lIGNtcHlfc2VtYShOLENPTkpNSU5VUyxDT05KUExVUylcCit7IGZTRVRXT1JEKDEsUmRkVixm U0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNWKSxmR0VUSEFMRigwLFJ0VikpKSBD T05KTUlOVVMgXAorICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZMTZTUyhmR0VU SEFMRigwLFJzViksZkdFVEhBTEYoMSxSdFYpKSkpKTtcCisgIGZTRVRXT1JEKDAsUmRkVixmU0FU KGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNWKSxmR0VUSEFMRigwLFJ0VikpKSBDT05K UExVUyBcCisgICAgICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxG KDEsUnNWKSxmR0VUSEFMRigxLFJ0VikpKSkpO1wKK30KKworUTZJTlNOKE0yX2NtcHlzX3MwLCJS ZGQzMj1jbXB5KFJzMzIsUnQzMik6c2F0IixBVFRSSUJTKCksICAgICJDb21wbGV4IE11bHRpcGx5 IixjbXB5X3NlbWEoMCwrLC0pKQorUTZJTlNOKE0yX2NtcHlzX3MxLCJSZGQzMj1jbXB5KFJzMzIs UnQzMik6PDwxOnNhdCIsQVRUUklCUygpLCJDb21wbGV4IE11bHRpcGx5IixjbXB5X3NlbWEoMSwr LC0pKQorCitRNklOU04oTTJfY21weXNjX3MwLCJSZGQzMj1jbXB5KFJzMzIsUnQzMiopOnNhdCIs QVRUUklCUyhBX0FSQ0hWMiksICAgICJDb21wbGV4IE11bHRpcGx5IixjbXB5X3NlbWEoMCwtLCsp KQorUTZJTlNOKE0yX2NtcHlzY19zMSwiUmRkMzI9Y21weShSczMyLFJ0MzIqKTo8PDE6c2F0IixB VFRSSUJTKEFfQVJDSFYyKSwiQ29tcGxleCBNdWx0aXBseSIsY21weV9zZW1hKDEsLSwrKSkKKwor CisKKyN1bmRlZiBjbXB5X3NlbWEKKyNkZWZpbmUgY21weV9zZW1hKE4sQ09OSk1JTlVTLENPTkpQ TFVTKVwKK3sgZlNFVFdPUkQoMSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxSeHhWKSAtIChmU0NBTEUo TixmTVBZMTZTUyhmR0VUSEFMRigxLFJzViksZkdFVEhBTEYoMCxSdFYpKSkgQ09OSk1JTlVTIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZ MTZTUyhmR0VUSEFMRigwLFJzViksZkdFVEhBTEYoMSxSdFYpKSkpKSk7XAorICBmU0VUV09SRCgw LFJ4eFYsZlNBVChmR0VUV09SRCgwLFJ4eFYpIC0gKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxG KDAsUnNWKSxmR0VUSEFMRigwLFJ0VikpKSBDT05KUExVUyBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1Yp LGZHRVRIQUxGKDEsUnRWKSkpKSkpO1wKK30KK1E2SU5TTihNMl9jbmFjc19zMCwiUnh4MzItPWNt cHkoUnMzMixSdDMyKTpzYXQiLEFUVFJJQlMoQV9BUkNIVjIpLCAgICAiQ29tcGxleCBNdWx0aXBs eSIsY21weV9zZW1hKDAsKywtKSkKK1E2SU5TTihNMl9jbmFjc19zMSwiUnh4MzItPWNtcHkoUnMz MixSdDMyKTo8PDE6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwiQ29tcGxleCBNdWx0aXBseSIsY21w eV9zZW1hKDEsKywtKSkKKworLyogRUpQOiBuZWVkIENPTkogdmVyc2lvbnM/ICovCitRNklOU04o TTJfY25hY3NjX3MwLCJSeHgzMi09Y21weShSczMyLFJ0MzIqKTpzYXQiLEFUVFJJQlMoQV9BUkNI VjIpLCAgICAiQ29tcGxleCBNdWx0aXBseSIsY21weV9zZW1hKDAsLSwrKSkKK1E2SU5TTihNMl9j bmFjc2NfczEsIlJ4eDMyLT1jbXB5KFJzMzIsUnQzMiopOjw8MTpzYXQiLEFUVFJJQlMoQV9BUkNI VjIpLCJDb21wbGV4IE11bHRpcGx5IixjbXB5X3NlbWEoMSwtLCspKQorCisKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBjb21wbGV4 IGludGVycG9sYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogR2l2ZW4g YSBwYWlyIG9mIGNvbXBsZXggdmFsdWVzLCBzY2FsZSBieSBhLGIsIHN1bSAgKi8KKy8qIFNhdHVy YXRlL3NoaWZ0MSBhbmQgcm91bmQvcGFjayAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjdW5k ZWYgdnJjbXB5c19zZW1hCisjZGVmaW5lIHZyY21weXNfc2VtYShOLElOV09SRCkgXAoreyBmU0VU V09SRCgxLFJkZFYsZlNBVChmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigxLFJzc1YpLGZHRVRI QUxGKDAsSU5XT1JEKSkpICsgXAorICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZ MTZTUyhmR0VUSEFMRigzLFJzc1YpLGZHRVRIQUxGKDEsSU5XT1JEKSkpKSk7XAorICBmU0VUV09S RCgwLFJkZFYsZlNBVChmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxG KDAsSU5XT1JEKSkpICsgXAorICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZMTZT UyhmR0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDEsSU5XT1JEKSkpKSk7XAorfQorCisKKworUTZJ TlNOKE0yX3ZyY21weXNfczFfaCwiUmRkMzI9dnJjbXB5cyhSc3MzMixSdHQzMik6PDwxOnNhdDpy YXc6aGkiLEFUVFJJQlMoQV9BUkNIVjMpLCAiVmVjdG9yIFJlZHVjZSBDb21wbGV4IE11bHRpcGx5 IGJ5IFNjYWxhciIsdnJjbXB5c19zZW1hKDEsZkdFVFdPUkQoMSxSdHRWKSkpCitRNklOU04oTTJf dnJjbXB5c19zMV9sLCJSZGQzMj12cmNtcHlzKFJzczMyLFJ0dDMyKTo8PDE6c2F0OnJhdzpsbyIs QVRUUklCUyhBX0FSQ0hWMyksICJWZWN0b3IgUmVkdWNlIENvbXBsZXggTXVsdGlwbHkgYnkgU2Nh bGFyIix2cmNtcHlzX3NlbWEoMSxmR0VUV09SRCgwLFJ0dFYpKSkKKworI3VuZGVmIHZyY21weXNf c2VtYQorI2RlZmluZSB2cmNtcHlzX3NlbWEoTixJTldPUkQpIFwKK3sgZlNFVFdPUkQoMSxSeHhW LGZTQVQoZkdFVFdPUkQoMSxSeHhWKSArIGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNz ViksZkdFVEhBTEYoMCxJTldPUkQpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICAgIGZTQ0FM RShOLGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhBTEYoMSxJTldPUkQpKSkpKTtcCisg IGZTRVRXT1JEKDAsUnh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgKyBmU0NBTEUoTixmTVBZMTZT UyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsSU5XT1JEKSkpICsgXAorICAgICAgICAgICAg ICAgICAgICAgICBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDEs SU5XT1JEKSkpKSk7XAorfQorCisKKworUTZJTlNOKE0yX3ZyY21weXNfYWNjX3MxX2gsIlJ4eDMy Kz12cmNtcHlzKFJzczMyLFJ0dDMyKTo8PDE6c2F0OnJhdzpoaSIsQVRUUklCUyhBX0FSQ0hWMyks ICJWZWN0b3IgUmVkdWNlIENvbXBsZXggTXVsdGlwbHkgYnkgU2NhbGFyIix2cmNtcHlzX3NlbWEo MSxmR0VUV09SRCgxLFJ0dFYpKSkKK1E2SU5TTihNMl92cmNtcHlzX2FjY19zMV9sLCJSeHgzMis9 dnJjbXB5cyhSc3MzMixSdHQzMik6PDwxOnNhdDpyYXc6bG8iLEFUVFJJQlMoQV9BUkNIVjMpLCAi VmVjdG9yIFJlZHVjZSBDb21wbGV4IE11bHRpcGx5IGJ5IFNjYWxhciIsdnJjbXB5c19zZW1hKDEs ZkdFVFdPUkQoMCxSdHRWKSkpCisKKyN1bmRlZiB2cmNtcHlzX3NlbWEKKyNkZWZpbmUgdnJjbXB5 c19zZW1hKE4sSU5XT1JEKSBcCit7IGZTRVRIQUxGKDEsUmRWLGZHRVRIQUxGKDEsZlNBVChmU0NB TEUoTixmTVBZMTZTUyhmR0VUSEFMRigxLFJzc1YpLGZHRVRIQUxGKDAsSU5XT1JEKSkpICsgXAor ICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigzLFJzc1Yp LGZHRVRIQUxGKDEsSU5XT1JEKSkpICsgMHg4MDAwKSkpO1wKKyAgZlNFVEhBTEYoMCxSZFYsZkdF VEhBTEYoMSxmU0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYo MCxJTldPUkQpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZNUFkxNlNT KGZHRVRIQUxGKDIsUnNzViksZkdFVEhBTEYoMSxJTldPUkQpKSkgKyAweDgwMDApKSk7XAorfQor CitRNklOU04oTTJfdnJjbXB5c19zMXJwX2gsIlJkMzI9dnJjbXB5cyhSc3MzMixSdHQzMik6PDwx OnJuZDpzYXQ6cmF3OmhpIixBVFRSSUJTKEFfQVJDSFYzKSwgIlZlY3RvciBSZWR1Y2UgQ29tcGxl eCBNdWx0aXBseSBieSBTY2FsYXIiLHZyY21weXNfc2VtYSgxLGZHRVRXT1JEKDEsUnR0VikpKQor UTZJTlNOKE0yX3ZyY21weXNfczFycF9sLCJSZDMyPXZyY21weXMoUnNzMzIsUnR0MzIpOjw8MTpy bmQ6c2F0OnJhdzpsbyIsQVRUUklCUyhBX0FSQ0hWMyksICJWZWN0b3IgUmVkdWNlIENvbXBsZXgg TXVsdGlwbHkgYnkgU2NhbGFyIix2cmNtcHlzX3NlbWEoMSxmR0VUV09SRCgwLFJ0dFYpKSkKKwor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworLyogbWl4ZWQgbW9kZSAzMngxNiB2ZWN0b3IgZHVhbCBtdWx0aXBsaWVzICAgICAg ICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBTSUdORUQgMzIgeCBTSUdO RUQgMTYgKi8KKworCisjdW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilc Cit7IGZTRVRXT1JEKDEsUnh4VixmU0FUKGZHRVRXT1JEKDEsUnh4VikgKyAoKGZTQ0FMRShOLGZN UFkzMjE2U1MoZkdFVFdPUkQoMSxSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkpPj4xNikpICk7IFwK KyAgZlNFVFdPUkQoMCxSeHhWLGZTQVQoZkdFVFdPUkQoMCxSeHhWKSArICgoZlNDQUxFKE4sZk1Q WTMyMTZTUyhmR0VUV09SRCgwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpKSk+PjE2KSkgKTsgXAor fQorUTZJTlNOKE0yX21tYWNsc19zMCwiUnh4MzIrPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOnNhdCIs QVRUUklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgwKSkK K1E2SU5TTihNMl9tbWFjbHNfczEsIlJ4eDMyKz12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6c2F0 IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMSkpCisK KyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShOKVwKK3sgZlNFVFdPUkQo MSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxSeHhWKSArICgoZlNDQUxFKE4sZk1QWTMyMTZTUyhmR0VU V09SRCgxLFJzc1YpLGZHRVRIQUxGKDMsUnR0VikpKSk+PjE2KSApKTsgXAorICBmU0VUV09SRCgw LFJ4eFYsZlNBVChmR0VUV09SRCgwLFJ4eFYpICsgKChmU0NBTEUoTixmTVBZMzIxNlNTKGZHRVRX T1JEKDAsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkpKT4+MTYgKSkpOyBcCit9CitRNklOU04oTTJf bW1hY2hzX3MwLCJSeHgzMis9dm1weXdvaChSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksICAg ICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDApKQorUTZJTlNOKE0yX21t YWNoc19zMSwiUnh4MzIrPXZtcHl3b2goUnNzMzIsUnR0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwi TWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgxKSkKKworI3VuZGVmIG1peG1w eV9zZW1hCisjZGVmaW5lIG1peG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgxLFJkZFYsZlNBVCgo ZlNDQUxFKE4sZk1QWTMyMTZTUyhmR0VUV09SRCgxLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpKSk+ PjE2KSk7IFwKKyAgZlNFVFdPUkQoMCxSZGRWLGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1MoZkdF VFdPUkQoMCxSc3NWKSxmR0VUSEFMRigwLFJ0dFYpKSkpPj4xNikpOyBcCit9CitRNklOU04oTTJf bW1weWxfczAsIlJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOnNhdCIsQVRUUklCUygpLCAgICAi TWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgwKSkKK1E2SU5TTihNMl9tbXB5 bF9zMSwiUmRkMzI9dm1weXdlaChSc3MzMixSdHQzMik6PDwxOnNhdCIsQVRUUklCUygpLCJNaXhl ZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDEpKQorCisjdW5kZWYgbWl4bXB5X3Nl bWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDEsUmRkVixmU0FUKChmU0NB TEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhBTEYoMyxSdHRWKSkpKT4+MTYp KTsgXAorICBmU0VUV09SRCgwLFJkZFYsZlNBVCgoZlNDQUxFKE4sZk1QWTMyMTZTUyhmR0VUV09S RCgwLFJzc1YpLGZHRVRIQUxGKDEsUnR0VikpKSk+PjE2KSk7IFwKK30KK1E2SU5TTihNMl9tbXB5 aF9zMCwiUmRkMzI9dm1weXdvaChSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksICAgICJNaXhl ZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDApKQorUTZJTlNOKE0yX21tcHloX3Mx LCJSZGQzMj12bXB5d29oKFJzczMyLFJ0dDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIk1peGVkIFBy ZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMSkpCisKKworLyogV2l0aCByb3VuZGluZyAq LworCisjdW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRX T1JEKDEsUnh4VixmU0FUKGZHRVRXT1JEKDEsUnh4VikgKyAoKGZTQ0FMRShOLGZNUFkzMjE2U1Mo ZkdFVFdPUkQoMSxSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkrMHg4MDAwKT4+MTYpKSApOyBcCisg IGZTRVRXT1JEKDAsUnh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgKyAoKGZTQ0FMRShOLGZNUFkz MjE2U1MoZkdFVFdPUkQoMCxSc3NWKSxmR0VUSEFMRigwLFJ0dFYpKSkrMHg4MDAwKT4+MTYpKSAp OyBcCit9CitRNklOU04oTTJfbW1hY2xzX3JzMCwiUnh4MzIrPXZtcHl3ZWgoUnNzMzIsUnR0MzIp OnJuZDpzYXQiLEFUVFJJQlMoKSwgICAgIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5 X3NlbWEoMCkpCitRNklOU04oTTJfbW1hY2xzX3JzMSwiUnh4MzIrPXZtcHl3ZWgoUnNzMzIsUnR0 MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4 bXB5X3NlbWEoMSkpCisKKyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShO KVwKK3sgZlNFVFdPUkQoMSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxSeHhWKSArICgoZlNDQUxFKE4s Zk1QWTMyMTZTUyhmR0VUV09SRCgxLFJzc1YpLGZHRVRIQUxGKDMsUnR0VikpKSsweDgwMDApPj4x NikgKSk7IFwKKyAgZlNFVFdPUkQoMCxSeHhWLGZTQVQoZkdFVFdPUkQoMCxSeHhWKSArICgoZlND QUxFKE4sZk1QWTMyMTZTUyhmR0VUV09SRCgwLFJzc1YpLGZHRVRIQUxGKDEsUnR0VikpKSsweDgw MDApPj4xNiApKSk7IFwKK30KK1E2SU5TTihNMl9tbWFjaHNfcnMwLCJSeHgzMis9dm1weXdvaChS c3MzMixSdHQzMik6cm5kOnNhdCIsQVRUUklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRp cGx5IixtaXhtcHlfc2VtYSgwKSkKK1E2SU5TTihNMl9tbWFjaHNfcnMxLCJSeHgzMis9dm1weXdv aChSc3MzMixSdHQzMik6PDwxOnJuZDpzYXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9uIE11 bHRpcGx5IixtaXhtcHlfc2VtYSgxKSkKKworI3VuZGVmIG1peG1weV9zZW1hCisjZGVmaW5lIG1p eG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgxLFJkZFYsZlNBVCgoZlNDQUxFKE4sZk1QWTMyMTZT UyhmR0VUV09SRCgxLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpKSsweDgwMDApPj4xNikpOyBcCisg IGZTRVRXT1JEKDAsUmRkVixmU0FUKChmU0NBTEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDAsUnNz ViksZkdFVEhBTEYoMCxSdHRWKSkpKzB4ODAwMCk+PjE2KSk7IFwKK30KK1E2SU5TTihNMl9tbXB5 bF9yczAsIlJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOnJuZDpzYXQiLEFUVFJJQlMoKSwgICAg Ik1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMCkpCitRNklOU04oTTJfbW1w eWxfcnMxLCJSZGQzMj12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdCIsQVRUUklCUygp LCJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDEpKQorCisjdW5kZWYgbWl4 bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDEsUmRkVixmU0FU KChmU0NBTEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhBTEYoMyxSdHRWKSkp KzB4ODAwMCk+PjE2KSk7IFwKKyAgZlNFVFdPUkQoMCxSZGRWLGZTQVQoKGZTQ0FMRShOLGZNUFkz MjE2U1MoZkdFVFdPUkQoMCxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKSkrMHg4MDAwKT4+MTYpKTsg XAorfQorUTZJTlNOKE0yX21tcHloX3JzMCwiUmRkMzI9dm1weXdvaChSc3MzMixSdHQzMik6cm5k OnNhdCIsQVRUUklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2Vt YSgwKSkKK1E2SU5TTihNMl9tbXB5aF9yczEsIlJkZDMyPXZtcHl3b2goUnNzMzIsUnR0MzIpOjw8 MTpybmQ6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3Nl bWEoMSkpCisKKworI3VuZGVmIG1peG1weV9zZW1hCisjZGVmaW5lIG1peG1weV9zZW1hKERFU1Qs RVFVQUxTLE4pXAoreyBERVNUIEVRVUFMUyBmU0NBTEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDEs UnNzViksZkdFVEhBTEYoMixSdHRWKSkpICsgZlNDQUxFKE4sZk1QWTMyMTZTUyhmR0VUV09SRCgw LFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpKTt9CisKK1E2SU5TTihNNF92cm1weWVoX3MwLCJSZGQz Mj12cm1weXdlaChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwgICAgIk1peGVkIFByZWNpc2lvbiBN dWx0aXBseSIsbWl4bXB5X3NlbWEoUmRkViw9LDApKQorUTZJTlNOKE00X3ZybXB5ZWhfczEsIlJk ZDMyPXZybXB5d2VoKFJzczMyLFJ0dDMyKTo8PDEiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9u IE11bHRpcGx5IixtaXhtcHlfc2VtYShSZGRWLD0sMSkpCitRNklOU04oTTRfdnJtcHllaF9hY2Nf czAsIlJ4eDMyKz12cm1weXdlaChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwgICAgIk1peGVkIFBy ZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoUnh4ViwrPSwwKSkKK1E2SU5TTihNNF92cm1w eWVoX2FjY19zMSwiUnh4MzIrPXZybXB5d2VoKFJzczMyLFJ0dDMyKTo8PDEiLEFUVFJJQlMoKSwi TWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYShSeHhWLCs9LDEpKQorCisjdW5k ZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoREVTVCxFUVVBTFMsTilcCit7IERF U1QgRVFVQUxTIGZTQ0FMRShOLGZNUFkzMjE2U1MoZkdFVFdPUkQoMSxSc3NWKSxmR0VUSEFMRigz LFJ0dFYpKSkgKyBmU0NBTEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDAsUnNzViksZkdFVEhBTEYo MSxSdHRWKSkpO30KKworUTZJTlNOKE00X3ZybXB5b2hfczAsIlJkZDMyPXZybXB5d29oKFJzczMy LFJ0dDMyKSIsQVRUUklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlf c2VtYShSZGRWLD0sMCkpCitRNklOU04oTTRfdnJtcHlvaF9zMSwiUmRkMzI9dnJtcHl3b2goUnNz MzIsUnR0MzIpOjw8MSIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1w eV9zZW1hKFJkZFYsPSwxKSkKK1E2SU5TTihNNF92cm1weW9oX2FjY19zMCwiUnh4MzIrPXZybXB5 d29oKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5 IixtaXhtcHlfc2VtYShSeHhWLCs9LDApKQorUTZJTlNOKE00X3ZybXB5b2hfYWNjX3MxLCJSeHgz Mis9dnJtcHl3b2goUnNzMzIsUnR0MzIpOjw8MSIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24g TXVsdGlwbHkiLG1peG1weV9zZW1hKFJ4eFYsKz0sMSkpCisKKworCisKKworCisjdW5kZWYgbWl4 bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTixILFJORClcCit7ICBSZFYgPSBmU0FUKChm U0NBTEUoTixmTVBZMzIxNlNTKFJzVixmR0VUSEFMRihILFJ0VikpKVJORCk+PjE2KTsgXAorfQor UTZJTlNOKE0yX2htbXB5bF9yczEsIlJkMzI9bXB5KFJzMzIsUnQuTDMyKTo8PDE6cm5kOnNhdCIs QVRUUklCUyhBX0FSQ0hWMiksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEo MSwwLCsweDgwMDApKQorUTZJTlNOKE0yX2htbXB5aF9yczEsIlJkMzI9bXB5KFJzMzIsUnQuSDMy KTo8PDE6cm5kOnNhdCIsQVRUUklCUyhBX0FSQ0hWMiksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBs eSIsbWl4bXB5X3NlbWEoMSwxLCsweDgwMDApKQorUTZJTlNOKE0yX2htbXB5bF9zMSwiUmQzMj1t cHkoUnMzMixSdC5MMzIpOjw8MTpzYXQiLEFUVFJJQlMoQV9BUkNIVjIpLCJNaXhlZCBQcmVjaXNp b24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDEsMCwpKQorUTZJTlNOKE0yX2htbXB5aF9zMSwiUmQz Mj1tcHkoUnMzMixSdC5IMzIpOjw8MTpzYXQiLEFUVFJJQlMoQV9BUkNIVjIpLCJNaXhlZCBQcmVj aXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDEsMSwpKQorCisKKworCisKKworCisKKworLyog U0lHTkVEIDMyIHggVU5TSUdORUQgMTYgKi8KKworI3VuZGVmIG1peG1weV9zZW1hCisjZGVmaW5l IG1peG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYp ICsgKChmU0NBTEUoTixmTVBZMzIxNlNVKGZHRVRXT1JEKDEsUnNzViksZkdFVFVIQUxGKDIsUnR0 VikpKSk+PjE2KSkgKTsgXAorICBmU0VUV09SRCgwLFJ4eFYsZlNBVChmR0VUV09SRCgwLFJ4eFYp ICsgKChmU0NBTEUoTixmTVBZMzIxNlNVKGZHRVRXT1JEKDAsUnNzViksZkdFVFVIQUxGKDAsUnR0 VikpKSk+PjE2KSkgKTsgXAorfQorUTZJTlNOKE0yX21tYWN1bHNfczAsIlJ4eDMyKz12bXB5d2V1 aChSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlw bHkiLG1peG1weV9zZW1hKDApKQorUTZJTlNOKE0yX21tYWN1bHNfczEsIlJ4eDMyKz12bXB5d2V1 aChSc3MzMixSdHQzMik6PDwxOnNhdCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gTXVsdGlw bHkiLG1peG1weV9zZW1hKDEpKQorCisjdW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5 X3NlbWEoTilcCit7IGZTRVRXT1JEKDEsUnh4VixmU0FUKGZHRVRXT1JEKDEsUnh4VikgKyAoKGZT Q0FMRShOLGZNUFkzMjE2U1UoZkdFVFdPUkQoMSxSc3NWKSxmR0VUVUhBTEYoMyxSdHRWKSkpKT4+ MTYpICkpOyBcCisgIGZTRVRXT1JEKDAsUnh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgKyAoKGZT Q0FMRShOLGZNUFkzMjE2U1UoZkdFVFdPUkQoMCxSc3NWKSxmR0VUVUhBTEYoMSxSdHRWKSkpKT4+ MTYgKSkpOyBcCit9CitRNklOU04oTTJfbW1hY3Voc19zMCwiUnh4MzIrPXZtcHl3b3VoKFJzczMy LFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwgICAgIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4 bXB5X3NlbWEoMCkpCitRNklOU04oTTJfbW1hY3Voc19zMSwiUnh4MzIrPXZtcHl3b3VoKFJzczMy LFJ0dDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4 bXB5X3NlbWEoMSkpCisKKyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShO KVwKK3sgZlNFVFdPUkQoMSxSZGRWLGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1UoZkdFVFdPUkQo MSxSc3NWKSxmR0VUVUhBTEYoMixSdHRWKSkpKT4+MTYpKTsgXAorICBmU0VUV09SRCgwLFJkZFYs ZlNBVCgoZlNDQUxFKE4sZk1QWTMyMTZTVShmR0VUV09SRCgwLFJzc1YpLGZHRVRVSEFMRigwLFJ0 dFYpKSkpPj4xNikpOyBcCit9CitRNklOU04oTTJfbW1weXVsX3MwLCJSZGQzMj12bXB5d2V1aChS c3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHki LG1peG1weV9zZW1hKDApKQorUTZJTlNOKE0yX21tcHl1bF9zMSwiUmRkMzI9dm1weXdldWgoUnNz MzIsUnR0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5Iixt aXhtcHlfc2VtYSgxKSkKKworI3VuZGVmIG1peG1weV9zZW1hCisjZGVmaW5lIG1peG1weV9zZW1h KE4pXAoreyBmU0VUV09SRCgxLFJkZFYsZlNBVCgoZlNDQUxFKE4sZk1QWTMyMTZTVShmR0VUV09S RCgxLFJzc1YpLGZHRVRVSEFMRigzLFJ0dFYpKSkpPj4xNikpOyBcCisgIGZTRVRXT1JEKDAsUmRk VixmU0FUKChmU0NBTEUoTixmTVBZMzIxNlNVKGZHRVRXT1JEKDAsUnNzViksZkdFVFVIQUxGKDEs UnR0VikpKSk+PjE2KSk7IFwKK30KK1E2SU5TTihNMl9tbXB5dWhfczAsIlJkZDMyPXZtcHl3b3Vo KFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwgICAgIk1peGVkIFByZWNpc2lvbiBNdWx0aXBs eSIsbWl4bXB5X3NlbWEoMCkpCitRNklOU04oTTJfbW1weXVoX3MxLCJSZGQzMj12bXB5d291aChS c3MzMixSdHQzMik6PDwxOnNhdCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHki LG1peG1weV9zZW1hKDEpKQorCisKKy8qIFdpdGggcm91bmRpbmcgKi8KKworI3VuZGVmIG1peG1w eV9zZW1hCisjZGVmaW5lIG1peG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgxLFJ4eFYsZlNBVChm R0VUV09SRCgxLFJ4eFYpICsgKChmU0NBTEUoTixmTVBZMzIxNlNVKGZHRVRXT1JEKDEsUnNzViks ZkdFVFVIQUxGKDIsUnR0VikpKSsweDgwMDApPj4xNikpICk7IFwKKyAgZlNFVFdPUkQoMCxSeHhW LGZTQVQoZkdFVFdPUkQoMCxSeHhWKSArICgoZlNDQUxFKE4sZk1QWTMyMTZTVShmR0VUV09SRCgw LFJzc1YpLGZHRVRVSEFMRigwLFJ0dFYpKSkrMHg4MDAwKT4+MTYpKSApOyBcCit9CitRNklOU04o TTJfbW1hY3Vsc19yczAsIlJ4eDMyKz12bXB5d2V1aChSc3MzMixSdHQzMik6cm5kOnNhdCIsQVRU UklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgwKSkKK1E2 SU5TTihNMl9tbWFjdWxzX3JzMSwiUnh4MzIrPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTo8PDE6cm5k OnNhdCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDEp KQorCisjdW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRX T1JEKDEsUnh4VixmU0FUKGZHRVRXT1JEKDEsUnh4VikgKyAoKGZTQ0FMRShOLGZNUFkzMjE2U1Uo ZkdFVFdPUkQoMSxSc3NWKSxmR0VUVUhBTEYoMyxSdHRWKSkpKzB4ODAwMCk+PjE2KSApKTsgXAor ICBmU0VUV09SRCgwLFJ4eFYsZlNBVChmR0VUV09SRCgwLFJ4eFYpICsgKChmU0NBTEUoTixmTVBZ MzIxNlNVKGZHRVRXT1JEKDAsUnNzViksZkdFVFVIQUxGKDEsUnR0VikpKSsweDgwMDApPj4xNiAp KSk7IFwKK30KK1E2SU5TTihNMl9tbWFjdWhzX3JzMCwiUnh4MzIrPXZtcHl3b3VoKFJzczMyLFJ0 dDMyKTpybmQ6c2F0IixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1p eG1weV9zZW1hKDApKQorUTZJTlNOKE0yX21tYWN1aHNfcnMxLCJSeHgzMis9dm1weXdvdWgoUnNz MzIsUnR0MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBs eSIsbWl4bXB5X3NlbWEoMSkpCisKKyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlf c2VtYShOKVwKK3sgZlNFVFdPUkQoMSxSZGRWLGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1UoZkdF VFdPUkQoMSxSc3NWKSxmR0VUVUhBTEYoMixSdHRWKSkpKzB4ODAwMCk+PjE2KSk7IFwKKyAgZlNF VFdPUkQoMCxSZGRWLGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1UoZkdFVFdPUkQoMCxSc3NWKSxm R0VUVUhBTEYoMCxSdHRWKSkpKzB4ODAwMCk+PjE2KSk7IFwKK30KK1E2SU5TTihNMl9tbXB5dWxf cnMwLCJSZGQzMj12bXB5d2V1aChSc3MzMixSdHQzMik6cm5kOnNhdCIsQVRUUklCUygpLCAgICAi TWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgwKSkKK1E2SU5TTihNMl9tbXB5 dWxfcnMxLCJSZGQzMj12bXB5d2V1aChSc3MzMixSdHQzMik6PDwxOnJuZDpzYXQiLEFUVFJJQlMo KSwiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgxKSkKKworI3VuZGVmIG1p eG1weV9zZW1hCisjZGVmaW5lIG1peG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgxLFJkZFYsZlNB VCgoZlNDQUxFKE4sZk1QWTMyMTZTVShmR0VUV09SRCgxLFJzc1YpLGZHRVRVSEFMRigzLFJ0dFYp KSkrMHg4MDAwKT4+MTYpKTsgXAorICBmU0VUV09SRCgwLFJkZFYsZlNBVCgoZlNDQUxFKE4sZk1Q WTMyMTZTVShmR0VUV09SRCgwLFJzc1YpLGZHRVRVSEFMRigxLFJ0dFYpKSkrMHg4MDAwKT4+MTYp KTsgXAorfQorUTZJTlNOKE0yX21tcHl1aF9yczAsIlJkZDMyPXZtcHl3b3VoKFJzczMyLFJ0dDMy KTpybmQ6c2F0IixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1w eV9zZW1hKDApKQorUTZJTlNOKE0yX21tcHl1aF9yczEsIlJkZDMyPXZtcHl3b3VoKFJzczMyLFJ0 dDMyKTo8PDE6cm5kOnNhdCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1p eG1weV9zZW1hKDEpKQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIGNvbXBsZXggbWFjIHdpdGggZnVsbCA2NC1i aXQgYWNjdW0gLSBubyBzYXQsIG5vIHNoaWZ0ICAgICAgKi8KKy8qIGVpdGhlciBkbyByZWFsIG9y IGFjY3VtLCBuZXZlciBib3RoICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor UTZJTlNOKE0yX3ZyY21hY2lfczAsIlJ4eDMyKz12cmNtcHlpKFJzczMyLFJ0dDMyKSIsQVRUUklC UygpLCJWZWN0b3IgQ29tcGxleCBNYWMgSW1hZ2luYXJ5IiwKK3sKK1J4eFYgPSBSeHhWICsgZk1Q WTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFMRigwLFJ0dFYpKSArIFwKKyAgICAgICAgICAg ICAgZk1QWTE2U1MoZkdFVEhBTEYoMCxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKSArIFwKKyAgICAg ICAgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMyxSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSArIFwK KyAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigzLFJ0dFYp KTtcCit9KQorCitRNklOU04oTTJfdnJjbWFjcl9zMCwiUnh4MzIrPXZyY21weXIoUnNzMzIsUnR0 MzIpIixBVFRSSUJTKCksIlZlY3RvciBDb21wbGV4IE1hYyBSZWFsIiwKK3sgUnh4ViA9IFJ4eFYg KyBmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpIC0gXAorICAgICAg ICAgICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkgKyBc CisgICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0 dFYpKSAtIFwKKyAgICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigzLFJzc1YpLGZHRVRI QUxGKDMsUnR0VikpO1wKK30pCisKK1E2SU5TTihNMl92cmNtYWNpX3MwYywiUnh4MzIrPXZyY21w eWkoUnNzMzIsUnR0MzIqKSIsQVRUUklCUyhBX0FSQ0hWMiksIlZlY3RvciBDb21wbGV4IE1hYyBJ bWFnaW5hcnkiLAoreworUnh4ViA9IFJ4eFYgKyBmTVBZMTZTUyhmR0VUSEFMRigxLFJzc1YpLGZH RVRIQUxGKDAsUnR0VikpIC0gXAorICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigwLFJz c1YpLGZHRVRIQUxGKDEsUnR0VikpICsgXAorICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFM RigzLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpIC0gXAorICAgICAgICAgICAgICBmTVBZMTZTUyhm R0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDMsUnR0VikpO1wKK30pCisKK1E2SU5TTihNMl92cmNt YWNyX3MwYywiUnh4MzIrPXZyY21weXIoUnNzMzIsUnR0MzIqKSIsQVRUUklCUyhBX0FSQ0hWMiks IlZlY3RvciBDb21wbGV4IE1hYyBSZWFsIiwKK3sgUnh4ViA9IFJ4eFYgKyBmTVBZMTZTUyhmR0VU SEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpICsgXAorICAgICAgICAgICAgICAgIGZNUFkx NlNTKGZHRVRIQUxGKDEsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkgKyBcCisgICAgICAgICAgICAg ICAgZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSArIFwKKyAgICAg ICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigzLFJzc1YpLGZHRVRIQUxGKDMsUnR0VikpO1wK K30pCisKK1E2SU5TTihNMl9jbWFjaV9zMCwiUnh4MzIrPWNtcHlpKFJzMzIsUnQzMikiLEFUVFJJ QlMoKSwiVmVjdG9yIENvbXBsZXggTWFjIEltYWdpbmFyeSIsCit7CitSeHhWID0gUnh4ViArIGZN UFkxNlNTKGZHRVRIQUxGKDEsUnNWKSxmR0VUSEFMRigwLFJ0VikpICsgXAorICAgICAgICAgICAg ICBmTVBZMTZTUyhmR0VUSEFMRigwLFJzViksZkdFVEhBTEYoMSxSdFYpKTsKK30pCisKK1E2SU5T TihNMl9jbWFjcl9zMCwiUnh4MzIrPWNtcHlyKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwiVmVjdG9y IENvbXBsZXggTWFjIFJlYWwiLAoreyBSeHhWID0gUnh4ViArIGZNUFkxNlNTKGZHRVRIQUxGKDAs UnNWKSxmR0VUSEFMRigwLFJ0VikpIC0gXAorICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRI QUxGKDEsUnNWKSxmR0VUSEFMRigxLFJ0VikpOworfSkKKworCitRNklOU04oTTJfdnJjbXB5aV9z MCwiUmRkMzI9dnJjbXB5aShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwiVmVjdG9yIENvbXBsZXgg TXB5IEltYWdpbmFyeSIsCit7CitSZGRWID0gZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VU SEFMRigwLFJ0dFYpKSArIFwKKyAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRI QUxGKDEsUnR0VikpICsgXAorICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhB TEYoMixSdHRWKSkgKyBcCisgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFM RigzLFJ0dFYpKTtcCit9KQorCitRNklOU04oTTJfdnJjbXB5cl9zMCwiUmRkMzI9dnJjbXB5cihS c3MzMixSdHQzMikiLEFUVFJJQlMoKSwiVmVjdG9yIENvbXBsZXggTXB5IFJlYWwiLAoreyBSZGRW ID0gZk1QWTE2U1MoZkdFVEhBTEYoMCxSc3NWKSxmR0VUSEFMRigwLFJ0dFYpKSAtIFwKKyAgICAg ICAgIGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkgKyBcCisgICAg ICAgICBmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpIC0gXAorICAg ICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMyxSc3NWKSxmR0VUSEFMRigzLFJ0dFYpKTtcCit9KQor CitRNklOU04oTTJfdnJjbXB5aV9zMGMsIlJkZDMyPXZyY21weWkoUnNzMzIsUnR0MzIqKSIsQVRU UklCUyhBX0FSQ0hWMiksIlZlY3RvciBDb21wbGV4IE1weSBJbWFnaW5hcnkiLAoreworUmRkViA9 IGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkgLSBcCisgICAgICAg Zk1QWTE2U1MoZkdFVEhBTEYoMCxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKSArIFwKKyAgICAgICBm TVBZMTZTUyhmR0VUSEFMRigzLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpIC0gXAorICAgICAgIGZN UFkxNlNTKGZHRVRIQUxGKDIsUnNzViksZkdFVEhBTEYoMyxSdHRWKSk7XAorfSkKKworUTZJTlNO KE0yX3ZyY21weXJfczBjLCJSZGQzMj12cmNtcHlyKFJzczMyLFJ0dDMyKikiLEFUVFJJQlMoQV9B UkNIVjIpLCJWZWN0b3IgQ29tcGxleCBNcHkgUmVhbCIsCit7IFJkZFYgPSBmTVBZMTZTUyhmR0VU SEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpICsgXAorICAgICAgICAgZk1QWTE2U1MoZkdF VEhBTEYoMSxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKSArIFwKKyAgICAgICAgIGZNUFkxNlNTKGZH RVRIQUxGKDIsUnNzViksZkdFVEhBTEYoMixSdHRWKSkgKyBcCisgICAgICAgICBmTVBZMTZTUyhm R0VUSEFMRigzLFJzc1YpLGZHRVRIQUxGKDMsUnR0VikpO1wKK30pCisKK1E2SU5TTihNMl9jbXB5 aV9zMCwiUmRkMzI9Y21weWkoUnMzMixSdDMyKSIsQVRUUklCUygpLCJWZWN0b3IgQ29tcGxleCBN cHkgSW1hZ2luYXJ5IiwKK3sKK1JkZFYgPSBmTVBZMTZTUyhmR0VUSEFMRigxLFJzViksZkdFVEhB TEYoMCxSdFYpKSArIFwKKyAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigwLFJzViksZkdFVEhBTEYo MSxSdFYpKTsKK30pCisKK1E2SU5TTihNMl9jbXB5cl9zMCwiUmRkMzI9Y21weXIoUnMzMixSdDMy KSIsQVRUUklCUygpLCJWZWN0b3IgQ29tcGxleCBNcHkgUmVhbCIsCit7IFJkZFYgPSBmTVBZMTZT UyhmR0VUSEFMRigwLFJzViksZkdFVEhBTEYoMCxSdFYpKSAtIFwKKyAgICAgICAgIGZNUFkxNlNT KGZHRVRIQUxGKDEsUnNWKSxmR0VUSEFMRigxLFJ0VikpOworfSkKKworCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBD b21wbGV4IG1weS9tYWMgd2l0aCAyeDMyIGJpdCBhY2N1bSwgc2F0LCBzaGlmdCAgICAgICAgICAg ICovCisvKiAzMngxNiByZWFsIG9yIGltYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisKKyNpZiAxCisKK1E2SU5TTihNNF9jbXB5aV93aCwiUmQz Mj1jbXB5aXdoKFJzczMyLFJ0MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNp c2lvbiBDb21wbGV4IE11bHRpcGx5IiwKK3sKKyBSZFYgPSBmU0FUKCAgKCAgZk1QWTMyMTZTUyhm R0VUV09SRCgwLFJzc1YpLGZHRVRIQUxGKDEsUnRWKSkKKyAgICAgICAgICAgICAgICsgZk1QWTMy MTZTUyhmR0VUV09SRCgxLFJzc1YpLGZHRVRIQUxGKDAsUnRWKSkKKyAgICAgICAgICAgICAgICsg MHg0MDAwKT4+MTUpOworfSkKKworCitRNklOU04oTTRfY21weXJfd2gsIlJkMzI9Y21weXJ3aChS c3MzMixSdDMyKTo8PDE6cm5kOnNhdCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gQ29tcGxl eCBNdWx0aXBseSIsCit7CisgUmRWID0gZlNBVCggICggIGZNUFkzMjE2U1MoZkdFVFdPUkQoMCxS c3NWKSxmR0VUSEFMRigwLFJ0VikpCisgICAgICAgICAgICAgICAtIGZNUFkzMjE2U1MoZkdFVFdP UkQoMSxSc3NWKSxmR0VUSEFMRigxLFJ0VikpCisgICAgICAgICAgICAgICArIDB4NDAwMCk+PjE1 KTsKK30pCisKK1E2SU5TTihNNF9jbXB5aV93aGMsIlJkMzI9Y21weWl3aChSc3MzMixSdDMyKik6 PDwxOnJuZDpzYXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9uIENvbXBsZXggTXVsdGlwbHki LAoreworIFJkViA9IGZTQVQoICAoICBmTVBZMzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhB TEYoMCxSdFYpKQorICAgICAgICAgICAgICAgLSBmTVBZMzIxNlNTKGZHRVRXT1JEKDAsUnNzViks ZkdFVEhBTEYoMSxSdFYpKQorICAgICAgICAgICAgICAgKyAweDQwMDApPj4xNSk7Cit9KQorCisK K1E2SU5TTihNNF9jbXB5cl93aGMsIlJkMzI9Y21weXJ3aChSc3MzMixSdDMyKik6PDwxOnJuZDpz YXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9uIENvbXBsZXggTXVsdGlwbHkiLAoreworIFJk ViA9IGZTQVQoICAoICBmTVBZMzIxNlNTKGZHRVRXT1JEKDAsUnNzViksZkdFVEhBTEYoMCxSdFYp KQorICAgICAgICAgICAgICAgKyBmTVBZMzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhBTEYo MSxSdFYpKQorICAgICAgICAgICAgICAgKyAweDQwMDApPj4xNSk7Cit9KQorCisKKyNlbmRpZgor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisvKiBWZWN0b3IgbXB5L21hYyB3aXRoIDJ4MzIgYml0IGFjY3VtLCBzYXQsIHNo aWZ0ICAgICAgICAgICAgICovCisvKiBlaXRoZXIgZG8gcmVhbCBvciBpbWFnLCAgbmV2ZXIgYm90 aCAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyN1bmRlZiBWQ01QWVNFTUkK KyNkZWZpbmUgVkNNUFlTRU1JKERTVCxBQ0MwLEFDQzEsU0hJRlQsU0FUKSBcCisgICAgZlNFVFdP UkQoMCxEU1QsU0FUKEFDQzAgZlNDQUxFKFNISUZULGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNzViks ZkdFVEhBTEYoMCxSdHRWKSkgKyBcCisgICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViks ZkdFVEhBTEYoMSxSdHRWKSkpKSk7IFwKKyAgICBmU0VUV09SRCgxLERTVCxTQVQoQUNDMSBmU0NB TEUoU0hJRlQsZk1QWTE2U1MoZkdFVEhBTEYoMyxSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSArIFwK KyAgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigzLFJ0dFYpKSkpKTsg XAorCisjdW5kZWYgVkNNUFlTRU1SCisjZGVmaW5lIFZDTVBZU0VNUihEU1QsQUNDMCxBQ0MxLFNI SUZULFNBVCkgXAorICAgIGZTRVRXT1JEKDAsRFNULFNBVChBQ0MwIGZTQ0FMRShTSElGVCxmTVBZ MTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpIC0gXAorICAgICAgICBmTVBZ MTZTUyhmR0VUSEFMRigxLFJzc1YpLGZHRVRIQUxGKDEsUnR0VikpKSkpOyBcCisgICAgZlNFVFdP UkQoMSxEU1QsU0FUKEFDQzEgZlNDQUxFKFNISUZULGZNUFkxNlNTKGZHRVRIQUxGKDIsUnNzViks ZkdFVEhBTEYoMixSdHRWKSkgLSBcCisgICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViks ZkdFVEhBTEYoMyxSdHRWKSkpKSk7IFwKKworCisjdW5kZWYgVkNNUFlJUgorI2RlZmluZSBWQ01Q WUlSKFRBR0JBU0UsRFNUU1lOLERTVFZBTCxBQ0NTRU0sQUNDVkFMMCxBQ0NWQUwxLFNISUZUU1lO LFNISUZUVkFMLFNBVFNZTixTQVRWQUwpIFwKK1E2SU5TTihNMl8jI1RBR0JBU0UjI2ksRFNUU1lO IEFDQ1NFTSAidmNtcHlpKFJzczMyLFJ0dDMyKSIgU0hJRlRTWU4gU0FUU1lOLEFUVFJJQlMoQV9B UkNIVjIpLCBcCisgICAgIlZlY3RvciBDb21wbGV4IE11bHRpcGx5IEltYWdpbmFyeSIsIHsgVkNN UFlTRU1JKERTVFZBTCxBQ0NWQUwwLEFDQ1ZBTDEsU0hJRlRWQUwsU0FUVkFMKTsgfSkgXAorUTZJ TlNOKE0yXyMjVEFHQkFTRSMjcixEU1RTWU4gQUNDU0VNICJ2Y21weXIoUnNzMzIsUnR0MzIpIiBT SElGVFNZTiBTQVRTWU4sQVRUUklCUyhBX0FSQ0hWMiksIFwKKyAgICAiVmVjdG9yIENvbXBsZXgg TXVsdGlwbHkgSW1hZ2luYXJ5IiwgeyBWQ01QWVNFTVIoRFNUVkFMLEFDQ1ZBTDAsQUNDVkFMMSxT SElGVFZBTCxTQVRWQUwpOyB9KQorCisKK1ZDTVBZSVIodmNtcHlfczBfc2F0XywiUmRkMzIiLFJk ZFYsIj0iLCwsIiIsMCwiOnNhdCIsZlNBVCkKK1ZDTVBZSVIodmNtcHlfczFfc2F0XywiUmRkMzIi LFJkZFYsIj0iLCwsIjo8PDEiLDEsIjpzYXQiLGZTQVQpCitWQ01QWUlSKHZjbWFjX3MwX3NhdF8s IlJ4eDMyIixSeHhWLCIrPSIsZkdFVFdPUkQoMCxSeHhWKSArICxmR0VUV09SRCgxLFJ4eFYpICsg LCIiLDAsIjpzYXQiLGZTQVQpCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBSb3RhdGlvbiAgLS0g YnkgMCwgOTAsIDE4MCwgb3IgMjcwIG1lYW5zIG11bHQgYnkgMSwgSiwgLTEsIC1KICAgICAqCisg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworCitRNklOU04oUzJfdmNyb3RhdGUsIlJkZDMyPXZjcm90YXRlKFJzczMy LFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwiUm90YXRlIGNvbXBsZXggdmFsdWUgYnkgbXVsdGlw bGUgb2YgUEkvMiIsCit7CisgICAgZkhJREUoc2l6ZTF1X3QgdG1wOykKKyAgICB0bXAgPSBmRVhU UkFDVFVfUkFOR0UoUnRWLDEsMCk7CisgICAgaWYgKHRtcCA9PSAwKSB7IC8qIE5vIHJvdGF0aW9u ICovCisgICAgICAgIGZTRVRIQUxGKDAsUmRkVixmR0VUSEFMRigwLFJzc1YpKTsKKyAgICAgICAg ZlNFVEhBTEYoMSxSZGRWLGZHRVRIQUxGKDEsUnNzVikpOworICAgIH0gZWxzZSBpZiAodG1wID09 IDEpIHsgLyogTXVsdGlwbHkgYnkgLUogKi8KKyAgICAgICAgZlNFVEhBTEYoMCxSZGRWLGZHRVRI QUxGKDEsUnNzVikpOworICAgICAgICBmU0VUSEFMRigxLFJkZFYsZlNBVEgoLWZHRVRIQUxGKDAs UnNzVikpKTsKKyAgICB9IGVsc2UgaWYgKHRtcCA9PSAyKSB7IC8qIE11bHRpcGx5IGJ5IEogKi8K KyAgICAgICAgZlNFVEhBTEYoMCxSZGRWLGZTQVRIKC1mR0VUSEFMRigxLFJzc1YpKSk7CisgICAg ICAgIGZTRVRIQUxGKDEsUmRkVixmR0VUSEFMRigwLFJzc1YpKTsKKyAgICB9IGVsc2UgeyAvKiBN dWx0aXBseSBieSAtMSAqLworICAgICAgICBmSElERShpZiAodG1wICE9IDMpIGZhdGFsKCJDIGlz IGJyb2tlbiIpOykKKyAgICAgICAgZlNFVEhBTEYoMCxSZGRWLGZTQVRIKC1mR0VUSEFMRigwLFJz c1YpKSk7CisgICAgICAgIGZTRVRIQUxGKDEsUmRkVixmU0FUSCgtZkdFVEhBTEYoMSxSc3NWKSkp OworICAgIH0KKyAgICB0bXAgPSBmRVhUUkFDVFVfUkFOR0UoUnRWLDMsMik7CisgICAgaWYgKHRt cCA9PSAwKSB7IC8qIE5vIHJvdGF0aW9uICovCisgICAgICAgIGZTRVRIQUxGKDIsUmRkVixmR0VU SEFMRigyLFJzc1YpKTsKKyAgICAgICAgZlNFVEhBTEYoMyxSZGRWLGZHRVRIQUxGKDMsUnNzVikp OworICAgIH0gZWxzZSBpZiAodG1wID09IDEpIHsgLyogTXVsdGlwbHkgYnkgLUogKi8KKyAgICAg ICAgZlNFVEhBTEYoMixSZGRWLGZHRVRIQUxGKDMsUnNzVikpOworICAgICAgICBmU0VUSEFMRigz LFJkZFYsZlNBVEgoLWZHRVRIQUxGKDIsUnNzVikpKTsKKyAgICB9IGVsc2UgaWYgKHRtcCA9PSAy KSB7IC8qIE11bHRpcGx5IGJ5IEogKi8KKyAgICAgICAgZlNFVEhBTEYoMixSZGRWLGZTQVRIKC1m R0VUSEFMRigzLFJzc1YpKSk7CisgICAgICAgIGZTRVRIQUxGKDMsUmRkVixmR0VUSEFMRigyLFJz c1YpKTsKKyAgICB9IGVsc2UgeyAvKiBNdWx0aXBseSBieSAtMSAqLworICAgICAgICBmSElERShp ZiAodG1wICE9IDMpIGZhdGFsKCJDIGlzIGJyb2tlbiIpOykKKyAgICAgICAgZlNFVEhBTEYoMixS ZGRWLGZTQVRIKC1mR0VUSEFMRigyLFJzc1YpKSk7CisgICAgICAgIGZTRVRIQUxGKDMsUmRkVixm U0FUSCgtZkdFVEhBTEYoMyxSc3NWKSkpOworICAgIH0KK30pCisKKworUTZJTlNOKFM0X3ZyY3Jv dGF0ZV9hY2MsIlJ4eDMyKz12cmNyb3RhdGUoUnNzMzIsUnQzMiwjdTIpIixBVFRSSUJTKCksIlJv dGF0ZSBhbmQgUmVkdWNlIEJ5dGVzIiwKK3sKKyAgICBmSElERShpbnQgaTsgaW50IHRtcHI7IGlu dCB0bXBpOyB1bnNpZ25lZCBpbnQgY29udHJvbDspCisgICAgZkhJREUoaW50IHN1bXI7IGludCBz dW1pOykKKyAgICBzdW1yID0gMDsKKyAgICBzdW1pID0gMDsKKyAgICBjb250cm9sID0gZkdFVFVC WVRFKHVpVixSdFYpOworICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpICs9IDIpIHsKKyAgICAgICAg dG1wciA9IGZHRVRCWVRFKGkgICxSc3NWKTsKKyAgICAgICAgdG1waSA9IGZHRVRCWVRFKGkrMSxS c3NWKTsKKyAgICAgICAgc3dpdGNoIChjb250cm9sICYgMykgeworICAgICAgICBjYXNlIDA6IC8q IE5vIFJvdGF0aW9uICovCisgICAgICAgICAgICBzdW1yICs9IHRtcHI7CisgICAgICAgICAgICBz dW1pICs9IHRtcGk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOiAvKiBNdWx0 aXBseSBieSAtSiAqLworICAgICAgICAgICAgc3VtciArPSB0bXBpOworICAgICAgICAgICAgc3Vt aSAtPSB0bXByOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjogLyogTXVsdGlw bHkgYnkgSiAqLworICAgICAgICAgICAgc3VtciAtPSB0bXBpOworICAgICAgICAgICAgc3VtaSAr PSB0bXByOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzogLyogTXVsdGlwbHkg YnkgLTEgKi8KKyAgICAgICAgICAgIHN1bXIgLT0gdG1wcjsKKyAgICAgICAgICAgIHN1bWkgLT0g dG1waTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBmSElERShkZWZhdWx0OiBmYXRhbCgi QyBpcyBicm9rZW4hIik7KQorICAgICAgICB9CisgICAgICAgIGNvbnRyb2wgPSBjb250cm9sID4+ IDI7CisgICAgfQorICAgIGZTRVRXT1JEKDAsUnh4VixmR0VUV09SRCgwLFJ4eFYpICsgc3Vtcik7 CisgICAgZlNFVFdPUkQoMSxSeHhWLGZHRVRXT1JEKDEsUnh4VikgKyBzdW1pKTsKK30pCisKK1E2 SU5TTihTNF92cmNyb3RhdGUsIlJkZDMyPXZyY3JvdGF0ZShSc3MzMixSdDMyLCN1MikiLEFUVFJJ QlMoKSwiUm90YXRlIGFuZCBSZWR1Y2UgQnl0ZXMiLAoreworICAgIGZISURFKGludCBpOyBpbnQg dG1wcjsgaW50IHRtcGk7IHVuc2lnbmVkIGludCBjb250cm9sOykKKyAgICBmSElERShpbnQgc3Vt cjsgaW50IHN1bWk7KQorICAgIHN1bXIgPSAwOworICAgIHN1bWkgPSAwOworICAgIGNvbnRyb2wg PSBmR0VUVUJZVEUodWlWLFJ0Vik7CisgICAgZm9yIChpID0gMDsgaSA8IDg7IGkgKz0gMikgewor ICAgICAgICB0bXByID0gZkdFVEJZVEUoaSAgLFJzc1YpOworICAgICAgICB0bXBpID0gZkdFVEJZ VEUoaSsxLFJzc1YpOworICAgICAgICBzd2l0Y2ggKGNvbnRyb2wgJiAzKSB7CisgICAgICAgIGNh c2UgMDogLyogTm8gUm90YXRpb24gKi8KKyAgICAgICAgICAgIHN1bXIgKz0gdG1wcjsKKyAgICAg ICAgICAgIHN1bWkgKz0gdG1waTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6 IC8qIE11bHRpcGx5IGJ5IC1KICovCisgICAgICAgICAgICBzdW1yICs9IHRtcGk7CisgICAgICAg ICAgICBzdW1pIC09IHRtcHI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOiAv KiBNdWx0aXBseSBieSBKICovCisgICAgICAgICAgICBzdW1yIC09IHRtcGk7CisgICAgICAgICAg ICBzdW1pICs9IHRtcHI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOiAvKiBN dWx0aXBseSBieSAtMSAqLworICAgICAgICAgICAgc3VtciAtPSB0bXByOworICAgICAgICAgICAg c3VtaSAtPSB0bXBpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGZISURFKGRlZmF1bHQ6 IGZhdGFsKCJDIGlzIGJyb2tlbiEiKTspCisgICAgICAgIH0KKyAgICAgICAgY29udHJvbCA9IGNv bnRyb2wgPj4gMjsKKyAgICB9CisgICAgZlNFVFdPUkQoMCxSZGRWLHN1bXIpOworICAgIGZTRVRX T1JEKDEsUmRkVixzdW1pKTsKK30pCisKKworUTZJTlNOKFMyX3ZjbmVnaCwiUmRkMzI9dmNuZWdo KFJzczMyLFJ0MzIpIixBVFRSSUJTKCksIkNvbmRpdGlvbmFsIE5lZ2F0ZSBoYWxmd29yZHMiLAor eworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisgICAg ICAgIGlmIChmR0VUQklUKGksUnRWKSkgeworICAgICAgICAgICAgZlNFVEhBTEYoaSxSZGRWLGZT QVRIKC1mR0VUSEFMRihpLFJzc1YpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBm U0VUSEFMRihpLFJkZFYsZkdFVEhBTEYoaSxSc3NWKSk7CisgICAgICAgIH0KKyAgICB9Cit9KQor CitRNklOU04oUzJfdnJjbmVnaCwiUnh4MzIrPXZyY25lZ2goUnNzMzIsUnQzMikiLEFUVFJJQlMo KSwiVmVjdG9yIFJlZHVjZSBDb25kaXRpb25hbCBOZWdhdGUgaGFsZndvcmRzIiwKK3sKKyAgICBm SElERShpbnQgaTspCisgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAgICBpZiAo ZkdFVEJJVChpLFJ0VikpIHsKKyAgICAgICAgICAgIFJ4eFYgKz0gLWZHRVRIQUxGKGksUnNzVik7 CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBSeHhWICs9IGZHRVRIQUxGKGksUnNzVik7 CisgICAgICAgIH0KKyAgICB9Cit9KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgRmluaXRlLWZp ZWxkIG11bHRpcGxpZXMuICBXcml0dGVuIGJ5IERhdmlkIEhveWxlICAgICAgICAgICAgICAgICAg KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworUTZJTlNOKE00X3BtcHl3LCJSZGQzMj1wbXB5dyhSczMyLFJ0 MzIpIixBVFRSSUJTKCksIlBvbHlub21pYWwgMzJiaXQgTXVsdGlwbGljYXRpb24gd2l0aCBBZGRp dGlvbiBpbiBHRigyKSIsCit7CisgICAgICAgIGZISURFKGludCBpOyB1bnNpZ25lZCBpbnQgeTsp CisgICAgICAgIGZISURFKHVuc2lnbmVkIGxvbmcgbG9uZyB4OyB1bnNpZ25lZCBsb25nIGxvbmcg cHJvZDspCisgICAgICAgIHggPSBmR0VUVVdPUkQoMCwgUnNWKTsKKyAgICAgICAgeSA9IGZHRVRV V09SRCgwLCBSdFYpOworCisgICAgICAgIHByb2QgPSAwOworICAgICAgICBmb3IoaT0wOyBpIDwg MzI7IGkrKykgeworICAgICAgICAgICAgaWYoKHkgPj4gaSkgJiAxKSBwcm9kIF49ICh4IDw8IGkp OworICAgICAgICB9CisgICAgICAgIFJkZFYgPSBwcm9kOworfSkKKworUTZJTlNOKE00X3ZwbXB5 aCwiUmRkMzI9dnBtcHloKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwiRHVhbCBQb2x5bm9taWFsIDE2 Yml0IE11bHRpcGxpY2F0aW9uIHdpdGggQWRkaXRpb24gaW4gR0YoMikiLAoreworICAgICAgICBm SElERShpbnQgaTsgdW5zaWduZWQgaW50IHgwOyB1bnNpZ25lZCBpbnQgeDE7KQorICAgICAgICBm SElERSh1bnNpZ25lZCBpbnQgeTA7IHVuc2lnbmVkIGludCB5MTspCisgICAgICAgIGZISURFKHVu c2lnbmVkIGludCBwcm9kMDsgdW5zaWduZWQgaW50IHByb2QxOykKKworICAgICAgICB4MCA9IGZH RVRVSEFMRigwLCBSc1YpOworICAgICAgICB4MSA9IGZHRVRVSEFMRigxLCBSc1YpOworICAgICAg ICB5MCA9IGZHRVRVSEFMRigwLCBSdFYpOworICAgICAgICB5MSA9IGZHRVRVSEFMRigxLCBSdFYp OworCisgICAgICAgIHByb2QwID0gcHJvZDEgPSAwOworICAgICAgICBmb3IoaT0wOyBpIDwgMTY7 IGkrKykgeworICAgICAgICAgICAgaWYoKHkwID4+IGkpICYgMSkgcHJvZDAgXj0gKHgwIDw8IGkp OworICAgICAgICAgICAgaWYoKHkxID4+IGkpICYgMSkgcHJvZDEgXj0gKHgxIDw8IGkpOworICAg ICAgICB9CisgICAgICAgIGZTRVRIQUxGKDAsUmRkVixmR0VUVUhBTEYoMCxwcm9kMCkpOworICAg ICAgICBmU0VUSEFMRigxLFJkZFYsZkdFVFVIQUxGKDAscHJvZDEpKTsKKyAgICAgICAgZlNFVEhB TEYoMixSZGRWLGZHRVRVSEFMRigxLHByb2QwKSk7CisgICAgICAgIGZTRVRIQUxGKDMsUmRkVixm R0VUVUhBTEYoMSxwcm9kMSkpOworfSkKKworUTZJTlNOKE00X3BtcHl3X2FjYywiUnh4MzJePXBt cHl3KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwiUG9seW5vbWlhbCAzMmJpdCBNdWx0aXBsaWNhdGlv biB3aXRoIEFkZGl0aW9uIGluIEdGKDIpIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7IHVuc2ln bmVkIGludCB5OykKKyAgICAgICAgZkhJREUodW5zaWduZWQgbG9uZyBsb25nIHg7IHVuc2lnbmVk IGxvbmcgbG9uZyBwcm9kOykKKyAgICAgICAgeCA9IGZHRVRVV09SRCgwLCBSc1YpOworICAgICAg ICB5ID0gZkdFVFVXT1JEKDAsIFJ0Vik7CisKKyAgICAgICAgcHJvZCA9IDA7CisgICAgICAgIGZv cihpPTA7IGkgPCAzMjsgaSsrKSB7CisgICAgICAgICAgICBpZigoeSA+PiBpKSAmIDEpIHByb2Qg Xj0gKHggPDwgaSk7CisgICAgICAgIH0KKyAgICAgICAgUnh4ViBePSBwcm9kOworfSkKKworUTZJ TlNOKE00X3ZwbXB5aF9hY2MsIlJ4eDMyXj12cG1weWgoUnMzMixSdDMyKSIsQVRUUklCUygpLCJE dWFsIFBvbHlub21pYWwgMTZiaXQgTXVsdGlwbGljYXRpb24gd2l0aCBBZGRpdGlvbiBpbiBHRigy KSIsCit7CisgICAgICAgIGZISURFKGludCBpOyB1bnNpZ25lZCBpbnQgeDA7IHVuc2lnbmVkIGlu dCB4MTspCisgICAgICAgIGZISURFKHVuc2lnbmVkIGludCB5MDsgdW5zaWduZWQgaW50IHkxOykK KyAgICAgICAgZkhJREUodW5zaWduZWQgaW50IHByb2QwOyB1bnNpZ25lZCBpbnQgcHJvZDE7KQor CisgICAgICAgIHgwID0gZkdFVFVIQUxGKDAsIFJzVik7CisgICAgICAgIHgxID0gZkdFVFVIQUxG KDEsIFJzVik7CisgICAgICAgIHkwID0gZkdFVFVIQUxGKDAsIFJ0Vik7CisgICAgICAgIHkxID0g ZkdFVFVIQUxGKDEsIFJ0Vik7CisKKyAgICAgICAgcHJvZDAgPSBwcm9kMSA9IDA7CisgICAgICAg IGZvcihpPTA7IGkgPCAxNjsgaSsrKSB7CisgICAgICAgICAgICBpZigoeTAgPj4gaSkgJiAxKSBw cm9kMCBePSAoeDAgPDwgaSk7CisgICAgICAgICAgICBpZigoeTEgPj4gaSkgJiAxKSBwcm9kMSBe PSAoeDEgPDwgaSk7CisgICAgICAgIH0KKyAgICAgICAgZlNFVEhBTEYoMCxSeHhWLGZHRVRVSEFM RigwLFJ4eFYpIF4gZkdFVFVIQUxGKDAscHJvZDApKTsKKyAgICAgICAgZlNFVEhBTEYoMSxSeHhW LGZHRVRVSEFMRigxLFJ4eFYpIF4gZkdFVFVIQUxGKDAscHJvZDEpKTsKKyAgICAgICAgZlNFVEhB TEYoMixSeHhWLGZHRVRVSEFMRigyLFJ4eFYpIF4gZkdFVFVIQUxGKDEscHJvZDApKTsKKyAgICAg ICAgZlNFVEhBTEYoMyxSeHhWLGZHRVRVSEFMRigzLFJ4eFYpIF4gZkdFVFVIQUxGKDEscHJvZDEp KTsKK30pCisKKworLyogVjcwOiBUSU5ZIENPUkUgKi8KKworI2RlZmluZSBDTVBZNjQoVEFHLE5B TUUsREVTQyxPUEVSQU5EMSxPUCxXMCxXMSxXMixXMykgXAorUTZJTlNOKE03XyMjVEFHLCJSZGQz Mj0iIE5BTUUgIihSc3MzMiwiIE9QRVJBTkQxICIpIixBVFRSSUJTKEFfUkVTVFJJQ1RfU0xPVDNP TkxZKSwiQ29tcGxleCBNdWx0aXBseSA2NC1iaXQgIiBERVNDLCAgICB7IFJkZFYgID0gKGZNUFkz MlNTKGZHRVRXT1JEKFcwLCBSc3NWKSwgZkdFVFdPUkQoVzEsIFJ0dFYpKSBPUCBmTVBZMzJTUyhm R0VUV09SRChXMiwgUnNzViksIGZHRVRXT1JEKFczLCBSdHRWKSkpO30pXAorUTZJTlNOKE03XyMj VEFHIyNfYWNjLCJSeHgzMis9IiBOQU1FICIoUnNzMzIsIk9QRVJBTkQxIikiLEFUVFJJQlMoQV9S RVNUUklDVF9TTE9UM09OTFkpLCJDb21wbGV4IE11bHRpcGx5LUFjY3VtdWxhdGUgNjQtYml0ICIg REVTQywgeyBSeHhWICs9IChmTVBZMzJTUyhmR0VUV09SRChXMCwgUnNzViksIGZHRVRXT1JEKFcx LCBSdHRWKSkgT1AgZk1QWTMyU1MoZkdFVFdPUkQoVzIsIFJzc1YpLCBmR0VUV09SRChXMywgUnR0 VikpKTt9KQorCitDTVBZNjQoZGNtcHlydywgImNtcHlydyIsIlJlYWwiLCJSdHQzMiIgLC0sMCww LDEsMSkKK0NNUFk2NChkY21weXJ3YywiY21weXJ3IiwiUmVhbCIsIlJ0dDMyKiIsKywwLDAsMSwx KQorQ01QWTY0KGRjbXB5aXcsICJjbXB5aXciLCJJbWFnIiwiUnR0MzIiICwrLDAsMSwxLDApCitD TVBZNjQoZGNtcHlpd2MsImNtcHlpdyIsIkltYWciLCJSdHQzMioiLC0sMSwwLDAsMSkKKworI2Rl ZmluZSBDTVBZMTI4KFRBRywgTkFNRSwgT1BFUkFORDEsIFdPUkQwLCBXT1JEMSwgV09SRDIsIFdP UkQzLCBPUCkgXAorUTZJTlNOKE03XyMjVEFHLCJSZDMyPSIgTkFNRSAiKFJzczMyLCJPUEVSQU5E MSIpOjw8MTpzYXQiLEFUVFJJQlMoQV9SRVNUUklDVF9TTE9UM09OTFkpLCJDb21wbGV4IE11bHRp cGx5IDMyLWJpdCByZXN1bHQgcmVhbCIsICBcCit7IFwKK2ZISURFKHNpemUxNnNfdCBhY2MxMjg7 KVwKK2ZISURFKHNpemUxNnNfdCB0bXAxMjg7KVwKK2ZISURFKHNpemU4c190IGFjYzY0OylcCit0 bXAxMjggPSBmQ0FTVDhTXzE2UyhmTVBZMzJTUyhmR0VUV09SRChXT1JEMCwgUnNzViksIGZHRVRX T1JEKFdPUkQxLCBSdHRWKSkpO1wKK2FjYzEyOCA9IGZDQVNUOFNfMTZTKGZNUFkzMlNTKGZHRVRX T1JEKFdPUkQyLCBSc3NWKSwgZkdFVFdPUkQoV09SRDMsIFJ0dFYpKSk7XAorYWNjMTI4ID0gT1Ao dG1wMTI4LGFjYzEyOCk7XAorYWNjMTI4ID0gZlNISUZUUjEyOChhY2MxMjgsIDMxKTtcCithY2M2 NCA9ICBmQ0FTVDE2U184UyhhY2MxMjgpO1wKK1JkViA9IGZTQVRXKGFjYzY0KTtcCit9KQorCisK K0NNUFkxMjgod2NtcHlydywgImNtcHlydyIsICJSdHQzMiIsIDAsIDAsIDEsIDEsIGZTVUIxMjgp CitDTVBZMTI4KHdjbXB5cndjLCAiY21weXJ3IiwgIlJ0dDMyKiIsIDAsIDAsIDEsIDEsIGZBREQx MjgpCitDTVBZMTI4KHdjbXB5aXcsICJjbXB5aXciLCAiUnR0MzIiLCAwLCAxLCAxLCAwLCBmQURE MTI4KQorQ01QWTEyOCh3Y21weWl3YywgImNtcHlpdyIsICJSdHQzMioiLCAxLCAwLCAwLCAxLCBm U1VCMTI4KQorCisKKyNkZWZpbmUgQ01QWTEyOFJORChUQUcsIE5BTUUsIE9QRVJBTkQxLCBXT1JE MCwgV09SRDEsIFdPUkQyLCBXT1JEMywgT1ApIFwKK1E2SU5TTihNN18jI1RBRyMjX3JuZCwiUmQz Mj0iIE5BTUUgIihSc3MzMiwiT1BFUkFORDEiKTo8PDE6cm5kOnNhdCIsQVRUUklCUyhBX1JFU1RS SUNUX1NMT1QzT05MWSksIkNvbXBsZXggTXVsdGlwbHkgMzItYml0IHJlc3VsdCByZWFsIiwgIFwK K3sgXAorZkhJREUoc2l6ZTE2c190IGFjYzEyODspXAorZkhJREUoc2l6ZTE2c190IHRtcDEyODsp XAorZkhJREUoc2l6ZTE2c190IGNvbnN0MTI4OylcCitmSElERShzaXplOHNfdCBhY2M2NDspXAor dG1wMTI4ID0gZkNBU1Q4U18xNlMoZk1QWTMyU1MoZkdFVFdPUkQoV09SRDAsIFJzc1YpLCBmR0VU V09SRChXT1JEMSwgUnR0VikpKTtcCithY2MxMjggPSBmQ0FTVDhTXzE2UyhmTVBZMzJTUyhmR0VU V09SRChXT1JEMiwgUnNzViksIGZHRVRXT1JEKFdPUkQzLCBSdHRWKSkpO1wKK2NvbnN0MTI4ID0g ZkNBU1Q4U18xNlMoZkNPTlNUTEwoMHg0MDAwMDAwMCkpO1wKK2FjYzEyOCA9IE9QKHRtcDEyOCxh Y2MxMjgpO1wKK2FjYzEyOCA9IGZBREQxMjgoYWNjMTI4LGNvbnN0MTI4KTtcCithY2MxMjggPSBm U0hJRlRSMTI4KGFjYzEyOCwgMzEpO1wKK2FjYzY0ID0gIGZDQVNUMTZTXzhTKGFjYzEyOCk7XAor UmRWID0gZlNBVFcoYWNjNjQpO1wKK30pCisKK0NNUFkxMjhSTkQod2NtcHlydywgImNtcHlydyIs ICJSdHQzMiIsIDAsIDAsIDEsIDEsIGZTVUIxMjgpCitDTVBZMTI4Uk5EKHdjbXB5cndjLCAiY21w eXJ3IiwgIlJ0dDMyKiIsIDAsIDAsIDEsIDEsIGZBREQxMjgpCitDTVBZMTI4Uk5EKHdjbXB5aXcs ICJjbXB5aXciLCAiUnR0MzIiLCAwLCAxLCAxLCAwLCBmQUREMTI4KQorQ01QWTEyOFJORCh3Y21w eWl3YywgImNtcHlpdyIsICJSdHQzMioiLCAxLCAwLCAwLCAxLCBmU1VCMTI4KQpkaWZmIC0tZ2l0 IGEvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc2hpZnQuaWRlZiBiL3RhcmdldC9oZXhhZ29uL2lt cG9ydGVkL3NoaWZ0LmlkZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMy OGFiNwotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL3NoaWZ0Lmlk ZWYKQEAgLTAsMCArMSwxMDY2IEBACisvKgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjEgUXVh bGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg KiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKy8qCisgKiBTLXR5 cGUgSW5zdHJ1Y3Rpb25zCisgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCisvKiBTSElGVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LworCisvKiBOT1RFOiBSZGQgPSBScyAqcmlnaHQqIHNoaWZ0cyBkb24ndCBtYWtlIHNlbnNlICov CisvKiBOT1RFOiBSZFtkXSA9IFJzW3NdICpyaWdodCogc2hpZnRzIHdpdGggc2F0dXJhdGlvbiBk b24ndCBtYWtlIHNlbnNlICovCisKKworI2RlZmluZSBSU0hJRlRUWVBFUyhUQUdFTkQsUkVHRCxS RUdTLFJFR1NUWVBFLEFDQyxBQ0NTUkMsU0FULFNBVE9QVCxBVFRSUykgXAorUTZJTlNOKFMyX2Fz cl9yXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWFzcigiICNSRUdTICIzMixSdDMyKSIgI1NB VE9QVCxBVFRSSUJTKEFUVFJTKSwgXAorICAgICJBcml0aG1ldGljIFNoaWZ0IFJpZ2h0IGJ5IFJl Z2lzdGVyIiwgXAorICAgIHsgIFwKKyAgICAgICAgZkhJREUoc2l6ZTRzX3QpIHNoYW10PWZTWFRO KDcsMzIsUnRWKTtcCisgICAgICAgIFJFR0QjI1YgPSBTQVQoQUNDU1JDIEFDQyBmQklESVJfQVNI SUZUUihSRUdTIyNWLHNoYW10LFJFR1NUWVBFKSk7ICBcCisgICAgfSlcCitcCitRNklOU04oUzJf YXNsX3JfIyNUQUdFTkQsI1JFR0QgIjMyIiAjQUNDICI9YXNsKCIgI1JFR1MgIjMyLFJ0MzIpIiAj U0FUT1BULEFUVFJJQlMoQVRUUlMpLCBcCisgICAgIkFyaXRobWV0aWMgU2hpZnQgTGVmdCBieSBS ZWdpc3RlciIsIFwKKyAgICB7ICBcCisgICAgICAgIGZISURFKHNpemU0c190KSBzaGFtdD1mU1hU Tig3LDMyLFJ0Vik7XAorICAgICAgICBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkJJRElSX0FT SElGVEwoUkVHUyMjVixzaGFtdCxSRUdTVFlQRSkpOyAgXAorICAgIH0pXAorXAorUTZJTlNOKFMy X2xzcl9yXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWxzcigiICNSRUdTICIzMixSdDMyKSIg I1NBVE9QVCxBVFRSSUJTKEFUVFJTKSwgXAorICAgICJMb2dpY2FsIFNoaWZ0IFJpZ2h0IGJ5IFJl Z2lzdGVyIiwgXAorICAgIHsgIFwKKyAgICAgICAgZkhJREUoc2l6ZTRzX3QpIHNoYW10PWZTWFRO KDcsMzIsUnRWKTtcCisgICAgICAgIFJFR0QjI1YgPSBTQVQoQUNDU1JDIEFDQyBmQklESVJfTFNI SUZUUihSRUdTIyNWLHNoYW10LFJFR1NUWVBFKSk7ICBcCisgICAgfSlcCitcCitRNklOU04oUzJf bHNsX3JfIyNUQUdFTkQsI1JFR0QgIjMyIiAjQUNDICI9bHNsKCIgI1JFR1MgIjMyLFJ0MzIpIiAj U0FUT1BULEFUVFJJQlMoQVRUUlMpLCBcCisgICAgIkxvZ2ljYWwgU2hpZnQgTGVmdCBieSBSZWdp c3RlciIsIFwKKyAgICB7ICBcCisgICAgICAgIGZISURFKHNpemU0c190KSBzaGFtdD1mU1hUTig3 LDMyLFJ0Vik7XAorICAgICAgICBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkJJRElSX0xTSElG VEwoUkVHUyMjVixzaGFtdCxSRUdTVFlQRSkpOyAgXAorICAgIH0pCisKK1JTSElGVFRZUEVTKHIs UmQsUnMsNF84LCwsZkVDSE8sLCkKK1JTSElGVFRZUEVTKHAsUmRkLFJzcyw4XzgsLCxmRUNITyws KQorUlNISUZUVFlQRVMocl9hY2MsUngsUnMsNF84LCssUnhWLGZFQ0hPLCwpCitSU0hJRlRUWVBF UyhwX2FjYyxSeHgsUnNzLDhfOCwrLFJ4eFYsZkVDSE8sLCkKK1JTSElGVFRZUEVTKHJfbmFjLFJ4 LFJzLDRfOCwtLFJ4VixmRUNITywsKQorUlNISUZUVFlQRVMocF9uYWMsUnh4LFJzcyw4XzgsLSxS eHhWLGZFQ0hPLCwpCisKK1JTSElGVFRZUEVTKHJfYW5kLFJ4LFJzLDRfOCwmLFJ4VixmRUNITyws KQorUlNISUZUVFlQRVMocl9vcixSeCxScyw0XzgsfCxSeFYsZkVDSE8sLCkKK1JTSElGVFRZUEVT KHBfYW5kLFJ4eCxSc3MsOF84LCYsUnh4VixmRUNITywsKQorUlNISUZUVFlQRVMocF9vcixSeHgs UnNzLDhfOCx8LFJ4eFYsZkVDSE8sLCkKK1JTSElGVFRZUEVTKHBfeG9yLFJ4eCxSc3MsOF84LF4s Unh4VixmRUNITywsKQorCisKKyN1bmRlZiBSU0hJRlRUWVBFUworCisvKiBSZWdpc3RlciBzaGlm dCB3aXRoIHNhdHVyYXRpb24gKi8KKyNkZWZpbmUgUlNBVFNISUZUVFlQRVMoVEFHRU5ELFJFR0Qs UkVHUyxSRUdTVFlQRSkgXAorUTZJTlNOKFMyX2Fzcl9yXyMjVEFHRU5ELCNSRUdEICIzMiIgIj1h c3IoIiAjUkVHUyAiMzIsUnQzMik6c2F0IixBVFRSSUJTKCksIFwKKyAgICAiQXJpdGhtZXRpYyBT aGlmdCBSaWdodCBieSBSZWdpc3RlciIsIFwKKyAgICB7ICBcCisgICAgICAgIGZISURFKHNpemU0 c190KSBzaGFtdD1mU1hUTig3LDMyLFJ0Vik7XAorICAgICAgICBSRUdEIyNWID0gZkJJRElSX0FT SElGVFJfU0FUKFJFR1MjI1Ysc2hhbXQsUkVHU1RZUEUpOyAgXAorICAgIH0pXAorXAorUTZJTlNO KFMyX2FzbF9yXyMjVEFHRU5ELCNSRUdEICIzMiIgIj1hc2woIiAjUkVHUyAiMzIsUnQzMik6c2F0 IixBVFRSSUJTKCksIFwKKyAgICAiQXJpdGhtZXRpYyBTaGlmdCBMZWZ0IGJ5IFJlZ2lzdGVyIiwg XAorICAgIHsgIFwKKyAgICAgICAgZkhJREUoc2l6ZTRzX3QpIHNoYW10PWZTWFROKDcsMzIsUnRW KTtcCisgICAgICAgIFJFR0QjI1YgPSBmQklESVJfQVNISUZUTF9TQVQoUkVHUyMjVixzaGFtdCxS RUdTVFlQRSk7ICBcCisgICAgfSkKKworUlNBVFNISUZUVFlQRVMocl9zYXQsUmQsUnMsNF84KQor CisKKworCisKKyNkZWZpbmUgSVNISUZUVFlQRVMoVEFHRU5ELFNJWkUsUkVHRCxSRUdTLFJFR1NU WVBFLEFDQyxBQ0NTUkMsU0FULFNBVE9QVCxBVFRSUykgXAorUTZJTlNOKFMyX2Fzcl9pXyMjVEFH RU5ELCNSRUdEICIzMiIgI0FDQyAiPWFzcigiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRP UFQsQVRUUklCUyhBVFRSUyksIFwKKyAgICAiQXJpdGhtZXRpYyBTaGlmdCBSaWdodCBieSBJbW1l ZGlhdGUiLCBcCisgICAgeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkFTSElGVFIoUkVHUyMj Vix1aVYsUkVHU1RZUEUpKTsgfSkgXAorXAorUTZJTlNOKFMyX2xzcl9pXyMjVEFHRU5ELCNSRUdE ICIzMiIgI0FDQyAiPWxzcigiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQsQVRUUklC UyhBVFRSUyksIFwKKyAgICAiTG9naWNhbCBTaGlmdCBSaWdodCBieSBJbW1lZGlhdGUiLCBcCisg ICAgeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkxTSElGVFIoUkVHUyMjVix1aVYsUkVHU1RZ UEUpKTsgfSkgXAorXAorUTZJTlNOKFMyX2FzbF9pXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAi PWFzbCgiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQsQVRUUklCUyhBVFRSUyksIFwK KyAgICAiU2hpZnQgTGVmdCBieSBJbW1lZGlhdGUiLCBcCisgICAgeyBSRUdEIyNWID0gU0FUKEFD Q1NSQyBBQ0MgZkFTSElGVEwoUkVHUyMjVix1aVYsUkVHU1RZUEUpKTsgfSkgXAorUTZJTlNOKFM2 X3JvbF9pXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPXJvbCgiICNSRUdTICIzMiwjdSIgI1NJ WkUgIikiICNTQVRPUFQsQVRUUklCUyhBVFRSUyksIFwKKyAgICAiUm90YXRlIExlZnQgYnkgSW1t ZWRpYXRlIiwgXAorICAgIHsgUkVHRCMjViA9IFNBVChBQ0NTUkMgQUNDIGZST1RMKFJFR1MjI1Ys dWlWLFJFR1NUWVBFKSk7IH0pCisKKworI2RlZmluZSBJU0hJRlRUWVBFU19PTkxZX0FTTChUQUdF TkQsU0laRSxSRUdELFJFR1MsUkVHU1RZUEUsQUNDLEFDQ1NSQyxTQVQsU0FUT1BUKSBcCitRNklO U04oUzJfYXNsX2lfIyNUQUdFTkQsI1JFR0QgIjMyIiAjQUNDICI9YXNsKCIgI1JFR1MgIjMyLCN1 IiAjU0laRSAiKSIgI1NBVE9QVCxBVFRSSUJTKCksIFwKKyAgICAiIiwgXAorICAgIHsgUkVHRCMj ViA9IFNBVChBQ0NTUkMgQUNDIGZBU0hJRlRMKFJFR1MjI1YsdWlWLFJFR1NUWVBFKSk7IH0pCisK KyNkZWZpbmUgSVNISUZUVFlQRVNfT05MWV9BU1IoVEFHRU5ELFNJWkUsUkVHRCxSRUdTLFJFR1NU WVBFLEFDQyxBQ0NTUkMsU0FULFNBVE9QVCkgXAorUTZJTlNOKFMyX2Fzcl9pXyMjVEFHRU5ELCNS RUdEICIzMiIgI0FDQyAiPWFzcigiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQsQVRU UklCUygpLCBcCisgICAgIiIsIFwKKyAgICB7IFJFR0QjI1YgPSBTQVQoQUNDU1JDIEFDQyBmQVNI SUZUUihSRUdTIyNWLHVpVixSRUdTVFlQRSkpOyB9KQorCisKKyNkZWZpbmUgSVNISUZUVFlQRVNf Tk9BU1IoVEFHRU5ELFNJWkUsUkVHRCxSRUdTLFJFR1NUWVBFLEFDQyxBQ0NTUkMsU0FULFNBVE9Q VCkgXAorUTZJTlNOKFMyX2xzcl9pXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWxzcigiICNS RUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQsQVRUUklCUygpLCBcCisgICAgIkxvZ2ljYWwg U2hpZnQgUmlnaHQgYnkgUmVnaXN0ZXIiLCBcCisgICAgeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBB Q0MgZkxTSElGVFIoUkVHUyMjVix1aVYsUkVHU1RZUEUpKTsgfSkgXAorUTZJTlNOKFMyX2FzbF9p XyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWFzbCgiICNSRUdTICIzMiwjdSIgI1NJWkUgIiki ICNTQVRPUFQsQVRUUklCUygpLCBcCisgICAgIlNoaWZ0IExlZnQgYnkgUmVnaXN0ZXIiLCBcCisg ICAgeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkFTSElGVEwoUkVHUyMjVix1aVYsUkVHU1RZ UEUpKTsgfSkgXAorUTZJTlNOKFM2X3JvbF9pXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPXJv bCgiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQsQVRUUklCUygpLCBcCisgICAgIlJv dGF0ZSBMZWZ0IGJ5IEltbWVkaWF0ZSIsIFwKKyAgICB7IFJFR0QjI1YgPSBTQVQoQUNDU1JDIEFD QyBmUk9UTChSRUdTIyNWLHVpVixSRUdTVFlQRSkpOyB9KQorCisKKworSVNISUZUVFlQRVMociw1 LFJkLFJzLDRfNCwsLGZFQ0hPLCwpCitJU0hJRlRUWVBFUyhwLDYsUmRkLFJzcyw4XzgsLCxmRUNI TywsKQorSVNISUZUVFlQRVMocl9hY2MsNSxSeCxScyw0XzQsKyxSeFYsZkVDSE8sLCkKK0lTSElG VFRZUEVTKHBfYWNjLDYsUnh4LFJzcyw4XzgsKyxSeHhWLGZFQ0hPLCwpCitJU0hJRlRUWVBFUyhy X25hYyw1LFJ4LFJzLDRfNCwtLFJ4VixmRUNITywsKQorSVNISUZUVFlQRVMocF9uYWMsNixSeHgs UnNzLDhfOCwtLFJ4eFYsZkVDSE8sLCkKKworSVNISUZUVFlQRVNfTk9BU1Iocl94YWNjLDUsUngs UnMsNF80LF4sIFJ4VixmRUNITywpCitJU0hJRlRUWVBFU19OT0FTUihwX3hhY2MsNixSeHgsUnNz LDhfOCxeLCBSeHhWLGZFQ0hPLCkKKworSVNISUZUVFlQRVMocl9hbmQsNSxSeCxScyw0XzQsJixS eFYsZkVDSE8sLCkKK0lTSElGVFRZUEVTKHJfb3IsNSxSeCxScyw0XzQsfCxSeFYsZkVDSE8sLCkK K0lTSElGVFRZUEVTKHBfYW5kLDYsUnh4LFJzcyw4XzgsJixSeHhWLGZFQ0hPLCwpCitJU0hJRlRU WVBFUyhwX29yLDYsUnh4LFJzcyw4XzgsfCxSeHhWLGZFQ0hPLCwpCisKK0lTSElGVFRZUEVTX09O TFlfQVNMKHJfc2F0LDUsUmQsUnMsNF84LCwsZlNBVCw6c2F0KQorCisKK1E2SU5TTihTMl9hc3Jf aV9yX3JuZCwiUmQzMj1hc3IoUnMzMiwjdTUpOnJuZCIsQVRUUklCUygpLAorICAgICAgICJTaGlm dCByaWdodCB3aXRoIHJvdW5kIiwKKyAgICAgICB7IFJkViA9IGZBU0hJRlRSKCgoZkFTSElGVFIo UnNWLHVpViw0XzgpKSsxKSwxLDhfOCk7IH0pCisKKworUTZJTlNOKFMyX2Fzcl9pX3Bfcm5kLCJS ZGQzMj1hc3IoUnNzMzIsI3U2KTpybmQiLEFUVFJJQlMoKSwgIlNoaWZ0IHJpZ2h0IHdpdGggcm91 bmQiLAoreyBmSElERShzaXplOHVfdCB0bXA7KQorICBmSElERShzaXplOHVfdCBybmQ7KQorICB0 bXAgPSBmQVNISUZUUihSc3NWLHVpViw4XzgpOworICBybmQgPSB0bXAgJiAxOworICBSZGRWID0g ZkFTSElGVFIodG1wLDEsOF84KSArIHJuZDsgfSkKKworCitRNklOU04oUzRfbHNsaSwiUmQzMj1s c2woI3M2LFJ0MzIpIixBVFRSSUJTKCksICJTaGlmdCBhbiBpbW1lZGlhdGUgbGVmdCBieSByZWdp c3RlciBhbW91bnQiLAoreworICAgIGZISURFKHNpemU0c190KSBzaGFtdCA9IGZTWFROKDcsMzIs UnRWKTsKKyAgICBSZFYgPSBmQklESVJfTFNISUZUTChzaVYsc2hhbXQsNF84KTsKK30pCisKKwor CisKK1E2SU5TTihTMl9hZGRhc2xfcnJyaSwiUmQzMj1hZGRhc2woUnQzMixSczMyLCN1MykiLEFU VFJJQlMoKSwKKyAgICAiU2hpZnQgbGVmdCBieSBzbWFsbCBhbW91bnQgYW5kIGFkZCIsCisgICAg eyBSZFYgPSBSdFYgKyBmQVNISUZUTChSc1YsdWlWLDRfNCk7IH0pCisKKworCisjZGVmaW5lIFNI SUZUT1BJKFRBR0VORCxJTk5FUk9QLElOTkVSU0VNKVwKK1E2SU5TTihTNF9hbmRpXyMjVEFHRU5E LCJSeDMyPWFuZCgjdTgsIklOTkVST1AiKSIsLCJTaGlmdC1vcCIse1J4Vj1mSU1NRVhUKHVpVikm SU5ORVJTRU07fSlcCitRNklOU04oUzRfb3JpXyMjVEFHRU5ELCAiUngzMj1vcigjdTgsIklOTkVS T1AiKSIsLCJTaGlmdC1vcCIse1J4Vj1mSU1NRVhUKHVpVil8SU5ORVJTRU07fSlcCitRNklOU04o UzRfYWRkaV8jI1RBR0VORCwiUngzMj1hZGQoI3U4LCJJTk5FUk9QIikiLCwiU2hpZnQtb3AiLHtS eFY9ZklNTUVYVCh1aVYpK0lOTkVSU0VNO30pXAorUTZJTlNOKFM0X3N1YmlfIyNUQUdFTkQsIlJ4 MzI9c3ViKCN1OCwiSU5ORVJPUCIpIiwsIlNoaWZ0LW9wIix7UnhWPWZJTU1FWFQodWlWKS1JTk5F UlNFTTt9KQorCisKK1NISUZUT1BJKGFzbF9yaSwiYXNsKFJ4MzIsI1U1KSIsKFJ4Vjw8VWlWKSkK K1NISUZUT1BJKGxzcl9yaSwibHNyKFJ4MzIsI1U1KSIsKCgodW5zaWduZWQgaW50KVJ4Vik+PlVp VikpCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisvKiBQRVJNVVRFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworUTZJTlNOKFMyX3Zh bGlnbmliLCJSZGQzMj12YWxpZ25iKFJ0dDMyLFJzczMyLCN1MykiLAorQVRUUklCUygpLCAiVmVj dG9yIGFsaWduIGJ5dGVzIiwKK3sKKyAgUmRkViA9IChmTFNISUZUUihSc3NWLHVpVio4LDhfOCkp fChmQVNISUZUTChSdHRWLCgoOC11aVYpKjgpLDhfOCkpOworfSkKKworUTZJTlNOKFMyX3ZhbGln bnJiLCJSZGQzMj12YWxpZ25iKFJ0dDMyLFJzczMyLFB1NCkiLAorQVRUUklCUygpLCAiQWxpZ24g d2l0aCByZWdpc3RlciIsCit7IFJkZFYgPSBmTFNISUZUUihSc3NWLChQdVYmMHg3KSo4LDhfOCl8 KGZBU0hJRlRMKFJ0dFYsKDgtKFB1ViYweDcpKSo4LDhfOCkpO30pCisKK1E2SU5TTihTMl92c3Bs aWNlaWIsIlJkZDMyPXZzcGxpY2ViKFJzczMyLFJ0dDMyLCN1MykiLAorQVRUUklCUygpLCAiVmVj dG9yIHNwbGljZSBieXRlcyIsCit7IFJkZFYgPSBmQVNISUZUTChSdHRWLHVpVio4LDhfOCkgfCBm WlhUTih1aVYqOCw2NCxSc3NWKTsgfSkKKworUTZJTlNOKFMyX3ZzcGxpY2VyYiwiUmRkMzI9dnNw bGljZWIoUnNzMzIsUnR0MzIsUHU0KSIsCitBVFRSSUJTKCksICJTcGxpY2Ugd2l0aCByZWdpc3Rl ciIsCit7IFJkZFYgPSBmQVNISUZUTChSdHRWLChQdVYmNykqOCw4XzgpIHwgZlpYVE4oKFB1ViY3 KSo4LDY0LFJzc1YpOyB9KQorCitRNklOU04oUzJfdnNwbGF0cmgsIlJkZDMyPXZzcGxhdGgoUnMz MikiLAorQVRUUklCUygpLCAiVmVjdG9yIHNwbGF0IGhhbGZ3b3JkcyBmcm9tIHJlZ2lzdGVyIiwK K3sKKyAgICBmSElERShpbnQgaTspCisgICAgZm9yIChpPTA7aTw0O2krKykgeworICAgICAgICBm U0VUSEFMRihpLFJkZFYsIGZHRVRIQUxGKDAsUnNWKSk7CisgICAgfQorfSkKKworCitRNklOU04o UzJfdnNwbGF0cmIsIlJkMzI9dnNwbGF0YihSczMyKSIsCitBVFRSSUJTKCksICJWZWN0b3Igc3Bs YXQgYnl0ZXMgZnJvbSByZWdpc3RlciIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAo aT0wO2k8NDtpKyspIHsKKyAgICAgICAgZlNFVEJZVEUoaSxSZFYsIGZHRVRCWVRFKDAsUnNWKSk7 CisgICAgfQorfSkKKworUTZJTlNOKFM2X3ZzcGxhdHJicCwiUmRkMzI9dnNwbGF0YihSczMyKSIs CitBVFRSSUJTKCksICJWZWN0b3Igc3BsYXQgYnl0ZXMgZnJvbSByZWdpc3RlciIsCit7CisgICAg ZkhJREUoaW50IGk7KQorICAgIGZvciAoaT0wO2k8ODtpKyspIHsKKyAgICAgICAgZlNFVEJZVEUo aSxSZGRWLCBmR0VUQllURSgwLFJzVikpOworICAgIH0KK30pCisKKworCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEluc2VydC9FeHRyYWN0W3Vd ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihTMl9pbnNlcnQsIlJ4MzI9aW5zZXJ0KFJz MzIsI3U1LCNVNSkiLAorQVRUUklCUygpLCAiSW5zZXJ0IGJpdHMiLAoreworICAgIGZISURFKGlu dCkgd2lkdGg9dWlWOworICAgIGZISURFKGludCkgb2Zmc2V0PVVpVjsKKyAgICAvKiBjbGVhciBi aXRzIGluIFJ4eCB3aGVyZSBuZXcgYml0cyBnbyAqLworICAgIFJ4ViAmPSB+KCgoZkNPTlNUTEwo MSk8PHdpZHRoKS0xKTw8b2Zmc2V0KTsKKyAgICAvKiBPUiBpbiBuZXcgYml0cyAqLworICAgIFJ4 ViB8PSAoKFJzViAmICgoZkNPTlNUTEwoMSk8PHdpZHRoKS0xKSkgPDwgb2Zmc2V0KTsKK30pCisK KworUTZJTlNOKFMyX3RhYmxlaWR4YiwiUngzMj10YWJsZWlkeGIoUnMzMiwjdTQsI1M2KTpyYXci LAorQVRUUklCUyhBX0FSQ0hWMiksICJFeHRyYWN0IGFuZCBpbnNlcnQgYml0cyIsCit7CisgICAg ICAgIGZISURFKGludCkgd2lkdGg9dWlWOworICAgICAgICBmSElERShpbnQpIG9mZnNldD1TaVY7 CisgICAgICAgIGZISURFKGludCkgZmllbGQgPSBmRVhUUkFDVFVfQklESVIoUnNWLHdpZHRoLG9m ZnNldCk7CisgICAgICAgIGZJTlNFUlRfQklUUyhSeFYsd2lkdGgsMCxmaWVsZCk7Cit9KQorCitR NklOU04oUzJfdGFibGVpZHhoLCJSeDMyPXRhYmxlaWR4aChSczMyLCN1NCwjUzYpOnJhdyIsCitB VFRSSUJTKEFfQVJDSFYyKSwgIkV4dHJhY3QgYW5kIGluc2VydCBiaXRzIiwKK3sKKyAgICAgICAg ZkhJREUoaW50KSB3aWR0aD11aVY7CisgICAgICAgIGZISURFKGludCkgb2Zmc2V0PVNpVisxOwor ICAgICAgICBmSElERShpbnQpIGZpZWxkID0gZkVYVFJBQ1RVX0JJRElSKFJzVix3aWR0aCxvZmZz ZXQpOworICAgICAgICBmSU5TRVJUX0JJVFMoUnhWLHdpZHRoLDEsZmllbGQpOworfSkKKworUTZJ TlNOKFMyX3RhYmxlaWR4dywiUngzMj10YWJsZWlkeHcoUnMzMiwjdTQsI1M2KTpyYXciLAorQVRU UklCUyhBX0FSQ0hWMiksICJFeHRyYWN0IGFuZCBpbnNlcnQgYml0cyIsCit7CisgICAgICAgIGZI SURFKGludCkgd2lkdGg9dWlWOworICAgICAgICBmSElERShpbnQpIG9mZnNldD1TaVYrMjsKKyAg ICAgICAgZkhJREUoaW50KSBmaWVsZCA9IGZFWFRSQUNUVV9CSURJUihSc1Ysd2lkdGgsb2Zmc2V0 KTsKKyAgICAgICAgZklOU0VSVF9CSVRTKFJ4Vix3aWR0aCwyLGZpZWxkKTsKK30pCisKK1E2SU5T TihTMl90YWJsZWlkeGQsIlJ4MzI9dGFibGVpZHhkKFJzMzIsI3U0LCNTNik6cmF3IiwKK0FUVFJJ QlMoQV9BUkNIVjIpLCAiRXh0cmFjdCBhbmQgaW5zZXJ0IGJpdHMiLAoreworICAgIGZISURFKGlu dCkgd2lkdGg9dWlWOworICAgIGZISURFKGludCkgb2Zmc2V0PVNpViszOworICAgIGZISURFKGlu dCkgZmllbGQgPSBmRVhUUkFDVFVfQklESVIoUnNWLHdpZHRoLG9mZnNldCk7CisgICAgZklOU0VS VF9CSVRTKFJ4Vix3aWR0aCwzLGZpZWxkKTsKK30pCisKKworUTZJTlNOKEE0X2JpdHNwbGl0aSwi UmRkMzI9Yml0c3BsaXQoUnMzMiwjdTUpIiwKK0FUVFJJQlMoKSwgIlNwbGl0IGEgYml0ZmllbGQg aW50byB0d28gcmVnaXN0ZXJzIiwKK3sKKyAgICBmU0VUV09SRCgxLFJkZFYsKGZDQVNUNF80dShS c1YpPj51aVYpKTsKKyAgICBmU0VUV09SRCgwLFJkZFYsZlpYVE4odWlWLDMyLFJzVikpOworfSkK KworUTZJTlNOKEE0X2JpdHNwbGl0LCJSZGQzMj1iaXRzcGxpdChSczMyLFJ0MzIpIiwKK0FUVFJJ QlMoKSwgIlNwbGl0IGEgYml0ZmllbGQgaW50byB0d28gcmVnaXN0ZXJzIiwKK3sKKyAgICBmSElE RShzaXplNHVfdCkgc2hhbXQgPSBmWlhUTig1LDMyLFJ0Vik7CisgICAgZlNFVFdPUkQoMSxSZGRW LChmQ0FTVDRfNHUoUnNWKT4+c2hhbXQpKTsKKyAgICBmU0VUV09SRCgwLFJkZFYsZlpYVE4oc2hh bXQsMzIsUnNWKSk7Cit9KQorCisKKworCitRNklOU04oUzRfZXh0cmFjdCwiUmQzMj1leHRyYWN0 KFJzMzIsI3U1LCNVNSkiLAorQVRUUklCUygpLCAiRXh0cmFjdCBzaWduZWQgYml0ZmllbGQiLAor eworICAgIGZISURFKGludCkgd2lkdGg9dWlWOworICAgIGZISURFKGludCkgb2Zmc2V0PVVpVjsK KyAgICBSZFYgPSBmU1hUTih3aWR0aCwzMiwoZkNBU1Q0XzR1KFJzVikgPj4gb2Zmc2V0KSk7Cit9 KQorCisKK1E2SU5TTihTMl9leHRyYWN0dSwiUmQzMj1leHRyYWN0dShSczMyLCN1NSwjVTUpIiwK K0FUVFJJQlMoKSwgIkV4dHJhY3QgdW5zaWduZWQgYml0ZmllbGQiLAoreworICAgIGZISURFKGlu dCkgd2lkdGg9dWlWOworICAgIGZISURFKGludCkgb2Zmc2V0PVVpVjsKKyAgICBSZFYgPSBmWlhU Tih3aWR0aCwzMiwoZkNBU1Q0XzR1KFJzVikgPj4gb2Zmc2V0KSk7Cit9KQorCitRNklOU04oUzJf aW5zZXJ0cCwiUnh4MzI9aW5zZXJ0KFJzczMyLCN1NiwjVTYpIiwKK0FUVFJJQlMoKSwgIkluc2Vy dCBiaXRzIiwKK3sKKyAgICBmSElERShpbnQpIHdpZHRoPXVpVjsKKyAgICBmSElERShpbnQpIG9m ZnNldD1VaVY7CisgICAgLyogY2xlYXIgYml0cyBpbiBSeHggd2hlcmUgbmV3IGJpdHMgZ28gKi8K KyAgICBSeHhWICY9IH4oKChmQ09OU1RMTCgxKTw8d2lkdGgpLTEpPDxvZmZzZXQpOworICAgIC8q IE9SIGluIG5ldyBiaXRzICovCisgICAgUnh4ViB8PSAoKFJzc1YgJiAoKGZDT05TVExMKDEpPDx3 aWR0aCktMSkpIDw8IG9mZnNldCk7Cit9KQorCisKK1E2SU5TTihTNF9leHRyYWN0cCwiUmRkMzI9 ZXh0cmFjdChSc3MzMiwjdTYsI1U2KSIsCitBVFRSSUJTKCksICJFeHRyYWN0IHNpZ25lZCBiaXRm aWVsZCIsCit7CisgICAgZkhJREUoaW50KSB3aWR0aD11aVY7CisgICAgZkhJREUoaW50KSBvZmZz ZXQ9VWlWOworICAgIFJkZFYgPSBmU1hUTih3aWR0aCw2NCwoZkNBU1Q4Xzh1KFJzc1YpID4+IG9m ZnNldCkpOworfSkKKworCitRNklOU04oUzJfZXh0cmFjdHVwLCJSZGQzMj1leHRyYWN0dShSc3Mz MiwjdTYsI1U2KSIsCitBVFRSSUJTKCksICJFeHRyYWN0IHVuc2lnbmVkIGJpdGZpZWxkIiwKK3sK KyAgICBmSElERShpbnQpIHdpZHRoPXVpVjsKKyAgICBmSElERShpbnQpIG9mZnNldD1VaVY7Cisg ICAgUmRkViA9IGZaWFROKHdpZHRoLDY0LChmQ0FTVDhfOHUoUnNzVikgPj4gb2Zmc2V0KSk7Cit9 KQorCisKKworCitRNklOU04oUzJfbWFzaywiUmQzMj1tYXNrKCN1NSwjVTUpIiwKK0FUVFJJQlMo KSwgIkZvcm0gbWFzayBmcm9tIGltbWVkaWF0ZSIsCit7CisgICAgUmRWID0gKCgxPDx1aVYpLTEp IDw8IFVpVjsKK30pCisKKworCisKKworUTZJTlNOKFMyX2luc2VydF9ycCwiUngzMj1pbnNlcnQo UnMzMixSdHQzMikiLAorQVRUUklCUygpLCAiSW5zZXJ0IGJpdHMiLAoreworICAgIGZISURFKGlu dCkgd2lkdGg9ZlpYVE4oNiwzMiwoZkdFVFdPUkQoMSxSdHRWKSkpOworICAgIGZISURFKGludCkg b2Zmc2V0PWZTWFROKDcsMzIsKGZHRVRXT1JEKDAsUnR0VikpKTsKKyAgICBmSElERShzaXplOHVf dCkgbWFzayA9ICgoZkNPTlNUTEwoMSk8PHdpZHRoKS0xKTsKKyAgICBpZiAob2Zmc2V0IDwgMCkg eworICAgICAgICBSeFYgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIGNsZWFyIGJpdHMg aW4gUnh4IHdoZXJlIG5ldyBiaXRzIGdvICovCisgICAgICAgIFJ4ViAmPSB+KG1hc2s8PG9mZnNl dCk7CisgICAgICAgIC8qIE9SIGluIG5ldyBiaXRzICovCisgICAgICAgIFJ4ViB8PSAoKFJzViAm IG1hc2spIDw8IG9mZnNldCk7CisgICAgfQorfSkKKworCitRNklOU04oUzRfZXh0cmFjdF9ycCwi UmQzMj1leHRyYWN0KFJzMzIsUnR0MzIpIiwKK0FUVFJJQlMoKSwgIkV4dHJhY3Qgc2lnbmVkIGJp dGZpZWxkIiwKK3sKKyAgICBmSElERShpbnQpIHdpZHRoPWZaWFROKDYsMzIsKGZHRVRXT1JEKDEs UnR0VikpKTsKKyAgICBmSElERShpbnQpIG9mZnNldD1mU1hUTig3LDMyLChmR0VUV09SRCgwLFJ0 dFYpKSk7CisgICAgUmRWID0gZlNYVE4od2lkdGgsNjQsZkJJRElSX0xTSElGVFIoZkNBU1Q0Xzh1 KFJzViksb2Zmc2V0LDRfOCkpOworfSkKKworCisKK1E2SU5TTihTMl9leHRyYWN0dV9ycCwiUmQz Mj1leHRyYWN0dShSczMyLFJ0dDMyKSIsCitBVFRSSUJTKCksICJFeHRyYWN0IHVuc2lnbmVkIGJp dGZpZWxkIiwKK3sKKyAgICBmSElERShpbnQpIHdpZHRoPWZaWFROKDYsMzIsKGZHRVRXT1JEKDEs UnR0VikpKTsKKyAgICBmSElERShpbnQpIG9mZnNldD1mU1hUTig3LDMyLChmR0VUV09SRCgwLFJ0 dFYpKSk7CisgICAgUmRWID0gZlpYVE4od2lkdGgsNjQsZkJJRElSX0xTSElGVFIoZkNBU1Q0Xzh1 KFJzViksb2Zmc2V0LDRfOCkpOworfSkKKworUTZJTlNOKFMyX2luc2VydHBfcnAsIlJ4eDMyPWlu c2VydChSc3MzMixSdHQzMikiLAorQVRUUklCUygpLCAiSW5zZXJ0IGJpdHMiLAoreworICAgIGZI SURFKGludCkgd2lkdGg9ZlpYVE4oNiwzMiwoZkdFVFdPUkQoMSxSdHRWKSkpOworICAgIGZISURF KGludCkgb2Zmc2V0PWZTWFROKDcsMzIsKGZHRVRXT1JEKDAsUnR0VikpKTsKKyAgICBmSElERShz aXplOHVfdCkgbWFzayA9ICgoZkNPTlNUTEwoMSk8PHdpZHRoKS0xKTsKKyAgICBpZiAob2Zmc2V0 IDwgMCkgeworICAgICAgICBSeHhWID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICAvKiBjbGVh ciBiaXRzIGluIFJ4eCB3aGVyZSBuZXcgYml0cyBnbyAqLworICAgICAgICBSeHhWICY9IH4obWFz azw8b2Zmc2V0KTsKKyAgICAgICAgLyogT1IgaW4gbmV3IGJpdHMgKi8KKyAgICAgICAgUnh4ViB8 PSAoKFJzc1YgJiBtYXNrKSA8PCBvZmZzZXQpOworICAgIH0KK30pCisKKworUTZJTlNOKFM0X2V4 dHJhY3RwX3JwLCJSZGQzMj1leHRyYWN0KFJzczMyLFJ0dDMyKSIsCitBVFRSSUJTKCksICJFeHRy YWN0IHNpZ25lZCBiaXRmaWVsZCIsCit7CisgICAgZkhJREUoaW50KSB3aWR0aD1mWlhUTig2LDMy LChmR0VUV09SRCgxLFJ0dFYpKSk7CisgICAgZkhJREUoaW50KSBvZmZzZXQ9ZlNYVE4oNywzMiwo ZkdFVFdPUkQoMCxSdHRWKSkpOworICAgIFJkZFYgPSBmU1hUTih3aWR0aCw2NCxmQklESVJfTFNI SUZUUihmQ0FTVDhfOHUoUnNzViksb2Zmc2V0LDhfOCkpOworfSkKKworCitRNklOU04oUzJfZXh0 cmFjdHVwX3JwLCJSZGQzMj1leHRyYWN0dShSc3MzMixSdHQzMikiLAorQVRUUklCUygpLCAiRXh0 cmFjdCB1bnNpZ25lZCBiaXRmaWVsZCIsCit7CisgICAgZkhJREUoaW50KSB3aWR0aD1mWlhUTig2 LDMyLChmR0VUV09SRCgxLFJ0dFYpKSk7CisgICAgZkhJREUoaW50KSBvZmZzZXQ9ZlNYVE4oNywz MiwoZkdFVFdPUkQoMCxSdHRWKSkpOworICAgIFJkZFYgPSBmWlhUTih3aWR0aCw2NCxmQklESVJf TFNISUZUUihmQ0FTVDhfOHUoUnNzViksb2Zmc2V0LDhfOCkpOworfSkKKworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiB0c3RiaXQvc2V0Yml0L2Ns cmJpdCAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oUzJfdHN0Yml0X2ksIlBkND10c3RiaXQo UnMzMiwjdTUpIiwKK0FUVFJJQlMoKSwgIlRlc3QgYSBiaXQiLAoreworICAgIFBkViA9IGY4QklU U09GKChSc1YgJiAoMTw8dWlWKSkgIT0gMCk7Cit9KQorCitRNklOU04oUzRfbnRzdGJpdF9pLCJQ ZDQ9IXRzdGJpdChSczMyLCN1NSkiLAorQVRUUklCUygpLCAiVGVzdCBhIGJpdCIsCit7CisgICAg UGRWID0gZjhCSVRTT0YoKFJzViAmICgxPDx1aVYpKSA9PSAwKTsKK30pCisKK1E2SU5TTihTMl9z ZXRiaXRfaSwiUmQzMj1zZXRiaXQoUnMzMiwjdTUpIiwKK0FUVFJJQlMoKSwgIlNldCBhIGJpdCIs Cit7CisgICAgUmRWID0gKFJzViB8ICgxPDx1aVYpKTsKK30pCisKK1E2SU5TTihTMl90b2dnbGVi aXRfaSwiUmQzMj10b2dnbGViaXQoUnMzMiwjdTUpIiwKK0FUVFJJQlMoKSwgIlRvZ2dsZSBhIGJp dCIsCit7CisgICAgUmRWID0gKFJzViBeICgxPDx1aVYpKTsKK30pCisKK1E2SU5TTihTMl9jbHJi aXRfaSwiUmQzMj1jbHJiaXQoUnMzMiwjdTUpIiwKK0FUVFJJQlMoKSwgIkNsZWFyIGEgYml0IiwK K3sKKyAgICBSZFYgPSAoUnNWICYgKH4oMTw8dWlWKSkpOworfSkKKworCisKKy8qIHVzaW5nIGEg cmVnaXN0ZXIgKi8KK1E2SU5TTihTMl90c3RiaXRfciwiUGQ0PXRzdGJpdChSczMyLFJ0MzIpIiwK K0FUVFJJQlMoKSwgIlRlc3QgYSBiaXQiLAoreworICAgIFBkViA9IGY4QklUU09GKChmQ0FTVDRf OHUoUnNWKSAmIGZCSURJUl9MU0hJRlRMKDEsZlNYVE4oNywzMixSdFYpLDRfOCkpICE9IDApOwor fSkKKworUTZJTlNOKFM0X250c3RiaXRfciwiUGQ0PSF0c3RiaXQoUnMzMixSdDMyKSIsCitBVFRS SUJTKCksICJUZXN0IGEgYml0IiwKK3sKKyAgICBQZFYgPSBmOEJJVFNPRigoZkNBU1Q0Xzh1KFJz VikgJiBmQklESVJfTFNISUZUTCgxLGZTWFROKDcsMzIsUnRWKSw0XzgpKSA9PSAwKTsKK30pCisK K1E2SU5TTihTMl9zZXRiaXRfciwiUmQzMj1zZXRiaXQoUnMzMixSdDMyKSIsCitBVFRSSUJTKCks ICJTZXQgYSBiaXQiLAoreworICAgIFJkViA9IChSc1YgfCBmQklESVJfTFNISUZUTCgxLGZTWFRO KDcsMzIsUnRWKSw0XzgpKTsKK30pCisKK1E2SU5TTihTMl90b2dnbGViaXRfciwiUmQzMj10b2dn bGViaXQoUnMzMixSdDMyKSIsCitBVFRSSUJTKCksICJUb2dnbGUgYSBiaXQiLAoreworICAgIFJk ViA9IChSc1YgXiBmQklESVJfTFNISUZUTCgxLGZTWFROKDcsMzIsUnRWKSw0XzgpKTsKK30pCisK K1E2SU5TTihTMl9jbHJiaXRfciwiUmQzMj1jbHJiaXQoUnMzMixSdDMyKSIsCitBVFRSSUJTKCks ICJDbGVhciBhIGJpdCIsCit7CisgICAgUmRWID0gKFJzViAmICh+KGZCSURJUl9MU0hJRlRMKDEs ZlNYVE4oNywzMixSdFYpLDRfOCkpKSk7Cit9KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworLyogdmVjdG9yIHNoaWZ0aW5nICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworLyogSGFsZiBWZWN0b3IgSW1tZWRpYXRlIFNoaWZ0cyAqLworCitRNklO U04oUzJfYXNyX2lfdmgsIlJkZDMyPXZhc3JoKFJzczMyLCN1NCkiLEFUVFJJQlMoKSwKKyAgICAi VmVjdG9yIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgYnkgSW1tZWRpYXRlIiwKK3sKKyAgICBmSElE RShpbnQgaTspCisgICAgZm9yIChpPTA7aTw0O2krKykgeworICAgICAgICBmU0VUSEFMRihpLFJk ZFYsIChmR0VUSEFMRihpLFJzc1YpPj51aVYpKTsKKyAgICB9Cit9KQorCisKK1E2SU5TTihTMl9s c3JfaV92aCwiUmRkMzI9dmxzcmgoUnNzMzIsI3U0KSIsQVRUUklCUygpLAorICAgICJWZWN0b3Ig TG9naWNhbCBTaGlmdCBSaWdodCBieSBJbW1lZGlhdGUiLAoreworICAgIGZISURFKGludCBpOykK KyAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRkViwgKGZHRVRV SEFMRihpLFJzc1YpPj51aVYpKTsKKyAgICB9Cit9KQorCitRNklOU04oUzJfYXNsX2lfdmgsIlJk ZDMyPXZhc2xoKFJzczMyLCN1NCkiLEFUVFJJQlMoKSwKKyAgICAiVmVjdG9yIEFyaXRobWV0aWMg U2hpZnQgTGVmdCBieSBJbW1lZGlhdGUiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3Ig KGk9MDtpPDQ7aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRkViwgKGZHRVRIQUxGKGksUnNz Vik8PHVpVikpOworICAgIH0KK30pCisKKy8qIEhhbGYgVmVjdG9yIFJlZ2lzdGVyIFNoaWZ0cyAq LworCitRNklOU04oUzJfYXNyX3JfdmgsIlJkZDMyPXZhc3JoKFJzczMyLFJ0MzIpIixBVFRSSUJT KCksCisgICAgIlZlY3RvciBBcml0aG1ldGljIFNoaWZ0IFJpZ2h0IGJ5IFJlZ2lzdGVyIiwKK3sK KyAgICBmSElERShpbnQgaTspCisgICAgZm9yIChpPTA7aTw0O2krKykgeworICAgICAgICBmU0VU SEFMRihpLFJkZFYsIGZCSURJUl9BU0hJRlRSKGZHRVRIQUxGKGksUnNzViksZlNYVE4oNywzMixS dFYpLDJfOCkpOworICAgIH0KK30pCisKK1E2SU5TTihTNV9hc3JodWJfcm5kX3NhdCwiUmQzMj12 YXNyaHViKFJzczMyLCN1NCk6cmF3IiwsCisgICAgIlZlY3RvciBBcml0aG1ldGljIFNoaWZ0IFJp Z2h0IGJ5IEltbWVkaWF0ZSB3aXRoIFJvdW5kLCBTYXR1cmF0ZSwgYW5kIFBhY2siLAoreworICAg IGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgIGZTRVRCWVRF KGksUmRWLCBmU0FUVUIoICgoZkdFVEhBTEYoaSxSc3NWKSA+PiB1aVYgKSsxKT4+MSAgKSk7Cisg ICAgfQorfSkKKworUTZJTlNOKFM1X2Fzcmh1Yl9zYXQsIlJkMzI9dmFzcmh1YihSc3MzMiwjdTQp OnNhdCIsLAorICAgICJWZWN0b3IgQXJpdGhtZXRpYyBTaGlmdCBSaWdodCBieSBJbW1lZGlhdGUg d2l0aCBTYXR1cmF0ZSBhbmQgUGFjayIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAo aT0wO2k8NDtpKyspIHsKKyAgICAgICAgZlNFVEJZVEUoaSxSZFYsIGZTQVRVQiggZkdFVEhBTEYo aSxSc3NWKSA+PiB1aVYgKSk7CisgICAgfQorfSkKKworCisKK1E2SU5TTihTNV92YXNyaHJuZCwi UmRkMzI9dmFzcmgoUnNzMzIsI3U0KTpyYXciLCwKKyAgICAiVmVjdG9yIEFyaXRobWV0aWMgU2hp ZnQgUmlnaHQgYnkgSW1tZWRpYXRlIHdpdGggUm91bmQiLAoreworICAgIGZISURFKGludCBpOykK KyAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRkViwgKCAoKGZH RVRIQUxGKGksUnNzVikgPj4gdWlWKSsxKT4+MSAgKSk7CisgICAgfQorfSkKKworCitRNklOU04o UzJfYXNsX3JfdmgsIlJkZDMyPXZhc2xoKFJzczMyLFJ0MzIpIixBVFRSSUJTKCksCisgICAgIlZl Y3RvciBBcml0aG1ldGljIFNoaWZ0IExlZnQgYnkgUmVnaXN0ZXIiLAoreworICAgIGZISURFKGlu dCBpOykKKyAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRkViwg ZkJJRElSX0FTSElGVEwoZkdFVEhBTEYoaSxSc3NWKSxmU1hUTig3LDMyLFJ0ViksMl84KSk7Cisg ICAgfQorfSkKKworCisKK1E2SU5TTihTMl9sc3Jfcl92aCwiUmRkMzI9dmxzcmgoUnNzMzIsUnQz MikiLEFUVFJJQlMoKSwKKyAgICAiVmVjdG9yIExvZ2ljYWwgU2hpZnQgUmlnaHQgYnkgUmVnaXN0 ZXIiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAg ICAgIGZTRVRIQUxGKGksUmRkViwgZkJJRElSX0xTSElGVFIoZkdFVFVIQUxGKGksUnNzViksZlNY VE4oNywzMixSdFYpLDJfOCkpOworICAgIH0KK30pCisKKworUTZJTlNOKFMyX2xzbF9yX3ZoLCJS ZGQzMj12bHNsaChSc3MzMixSdDMyKSIsQVRUUklCUygpLAorICAgICJWZWN0b3IgTG9naWNhbCBT aGlmdCBMZWZ0IGJ5IFJlZ2lzdGVyIiwKK3sKKyAgICBmSElERShpbnQgaTspCisgICAgZm9yIChp PTA7aTw0O2krKykgeworICAgICAgICBmU0VUSEFMRihpLFJkZFYsIGZCSURJUl9MU0hJRlRMKGZH RVRVSEFMRihpLFJzc1YpLGZTWFROKDcsMzIsUnRWKSwyXzgpKTsKKyAgICB9Cit9KQorCisKKwor CisvKiBXb3JkIFZlY3RvciBJbW1lZGlhdGUgU2hpZnRzICovCisKK1E2SU5TTihTMl9hc3JfaV92 dywiUmRkMzI9dmFzcncoUnNzMzIsI3U1KSIsQVRUUklCUygpLAorICAgICJWZWN0b3IgQXJpdGht ZXRpYyBTaGlmdCBSaWdodCBieSBJbW1lZGlhdGUiLAoreworICAgIGZISURFKGludCBpOykKKyAg ICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgIGZTRVRXT1JEKGksUmRkViwoZkdFVFdPUkQo aSxSc3NWKT4+dWlWKSk7CisgICAgfQorfSkKKworCisKK1E2SU5TTihTMl9hc3JfaV9zdndfdHJ1 biwiUmQzMj12YXNydyhSc3MzMiwjdTUpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyAgICAiVmVjdG9y IEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgYnkgSW1tZWRpYXRlIHdpdGggVHJ1bmNhdGUgYW5kIFBh Y2siLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAg ICAgIGZTRVRIQUxGKGksUmRWLGZHRVRIQUxGKDAsKGZHRVRXT1JEKGksUnNzVik+PnVpVikpKTsK KyAgICB9Cit9KQorCitRNklOU04oUzJfYXNyX3Jfc3Z3X3RydW4sIlJkMzI9dmFzcncoUnNzMzIs UnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorICAgICJWZWN0b3IgQXJpdGhtZXRpYyBTaGlmdCBS aWdodCB0cnVuY2F0ZSBhbmQgUGFjayIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAo aT0wO2k8MjtpKyspIHsKKyAgICAgICAgZlNFVEhBTEYoaSxSZFYsZkdFVEhBTEYoMCxmQklESVJf QVNISUZUUihmR0VUV09SRChpLFJzc1YpLGZTWFROKDcsMzIsUnRWKSw0XzgpKSk7CisgICAgfQor fSkKKworCitRNklOU04oUzJfbHNyX2lfdncsIlJkZDMyPXZsc3J3KFJzczMyLCN1NSkiLEFUVFJJ QlMoKSwKKyAgICAiVmVjdG9yIExvZ2ljYWwgU2hpZnQgUmlnaHQgYnkgSW1tZWRpYXRlIiwKK3sK KyAgICBmSElERShpbnQgaTspCisgICAgZm9yIChpPTA7aTwyO2krKykgeworICAgICAgICBmU0VU V09SRChpLFJkZFYsKGZHRVRVV09SRChpLFJzc1YpPj51aVYpKTsKKyAgICB9Cit9KQorCitRNklO U04oUzJfYXNsX2lfdncsIlJkZDMyPXZhc2x3KFJzczMyLCN1NSkiLEFUVFJJQlMoKSwKKyAgICAi VmVjdG9yIEFyaXRobWV0aWMgU2hpZnQgTGVmdCBieSBJbW1lZGlhdGUiLAoreworICAgIGZISURF KGludCBpOykKKyAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgIGZTRVRXT1JEKGksUmRk ViwoZkdFVFdPUkQoaSxSc3NWKTw8dWlWKSk7CisgICAgfQorfSkKKworLyogV29yZCBWZWN0b3Ig UmVnaXN0ZXIgU2hpZnRzICovCisKK1E2SU5TTihTMl9hc3Jfcl92dywiUmRkMzI9dmFzcncoUnNz MzIsUnQzMikiLEFUVFJJQlMoKSwKKyAgICAiVmVjdG9yIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQg YnkgUmVnaXN0ZXIiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDI7aSsr KSB7CisgICAgICAgIGZTRVRXT1JEKGksUmRkViwgZkJJRElSX0FTSElGVFIoZkdFVFdPUkQoaSxS c3NWKSxmU1hUTig3LDMyLFJ0ViksNF84KSk7CisgICAgfQorfSkKKworCisKK1E2SU5TTihTMl9h c2xfcl92dywiUmRkMzI9dmFzbHcoUnNzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyAgICAiVmVjdG9y IEFyaXRobWV0aWMgU2hpZnQgTGVmdCBieSBSZWdpc3RlciIsCit7CisgICAgZkhJREUoaW50IGk7 KQorICAgIGZvciAoaT0wO2k8MjtpKyspIHsKKyAgICAgICAgZlNFVFdPUkQoaSxSZGRWLCBmQklE SVJfQVNISUZUTChmR0VUV09SRChpLFJzc1YpLGZTWFROKDcsMzIsUnRWKSw0XzgpKTsKKyAgICB9 Cit9KQorCisKK1E2SU5TTihTMl9sc3Jfcl92dywiUmRkMzI9dmxzcncoUnNzMzIsUnQzMikiLEFU VFJJQlMoKSwKKyAgICAiVmVjdG9yIExvZ2ljYWwgU2hpZnQgUmlnaHQgYnkgUmVnaXN0ZXIiLAor eworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgIGZT RVRXT1JEKGksUmRkViwgZkJJRElSX0xTSElGVFIoZkdFVFVXT1JEKGksUnNzViksZlNYVE4oNywz MixSdFYpLDRfOCkpOworICAgIH0KK30pCisKKworCitRNklOU04oUzJfbHNsX3JfdncsIlJkZDMy PXZsc2x3KFJzczMyLFJ0MzIpIixBVFRSSUJTKCksCisgICAgIlZlY3RvciBMb2dpY2FsIFNoaWZ0 IExlZnQgYnkgUmVnaXN0ZXIiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtp PDI7aSsrKSB7CisgICAgICAgIGZTRVRXT1JEKGksUmRkViwgZkJJRElSX0xTSElGVEwoZkdFVFVX T1JEKGksUnNzViksZlNYVE4oNywzMixSdFYpLDRfOCkpOworICAgIH0KK30pCisKKworCisKKwor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBWZWN0 b3IgU1hUL1pYVC9TQVQvVFJVTi9STkRQQUNLICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK1E2SU5TTihTMl92cm5kcGFj a3doLCJSZDMyPXZybmR3aChSc3MzMikiLEFUVFJJQlMoKSwKKyJSb3VuZCBhbmQgUGFjayB2ZWN0 b3Igb2Ygd29yZHMgdG8gSGFsZndvcmRzIiwKK3sKKyAgICBmSElERShpbnQgaTspCisgICAgZm9y IChpPTA7aTwyO2krKykgeworICAgICAgICBmU0VUSEFMRihpLFJkVixmR0VUSEFMRigxLChmR0VU V09SRChpLFJzc1YpKzB4MDgwMDApKSk7CisgICAgfQorfSkKKworUTZJTlNOKFMyX3ZybmRwYWNr d2hzLCJSZDMyPXZybmR3aChSc3MzMik6c2F0IixBVFRSSUJTKCksCisiUm91bmQgYW5kIFBhY2sg dmVjdG9yIG9mIHdvcmRzIHRvIEhhbGZ3b3JkcyIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAg IGZvciAoaT0wO2k8MjtpKyspIHsKKyAgICAgICAgZlNFVEhBTEYoaSxSZFYsZkdFVEhBTEYoMSxm U0FUKGZHRVRXT1JEKGksUnNzVikrMHgwODAwMCkpKTsKKyAgICB9Cit9KQorCitRNklOU04oUzJf dnN4dGJoLCJSZGQzMj12c3h0YmgoUnMzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIlZlY3RvciBz aWduIGV4dGVuZCBieXRlIHRvIGhhbGYiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3Ig KGk9MDtpPDQ7aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRkVixmR0VUQllURShpLFJzVikp OworICAgIH0KK30pCisKK1E2SU5TTihTMl92enh0YmgsIlJkZDMyPXZ6eHRiaChSczMyKSIsQVRU UklCUygpLAorIlZlY3RvciB6ZXJvIGV4dGVuZCBieXRlIHRvIGhhbGYiLAoreworICAgIGZISURF KGludCBpOykKKyAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRk VixmR0VUVUJZVEUoaSxSc1YpKTsKKyAgICB9Cit9KQorCitRNklOU04oUzJfdnNhdGh1YiwiUmQz Mj12c2F0aHViKFJzczMyKSIsQVRUUklCUygpLAorIlZlY3RvciBzYXR1cmF0ZSBoYWxmIHRvIHVu c2lnbmVkIGJ5dGUiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDQ7aSsr KSB7CisgICAgICAgIGZTRVRCWVRFKGksUmRWLGZTQVRVTig4LGZHRVRIQUxGKGksUnNzVikpKTsK KyAgICB9Cit9KQorCisKKworCisKK1E2SU5TTihTMl9zdnNhdGh1YiwiUmQzMj12c2F0aHViKFJz MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJWZWN0b3Igc2F0dXJhdGUgaGFsZiB0byB1bnNpZ25l ZCBieXRlIiwKK3sKKyAgICBmU0VUQllURSgwLFJkVixmU0FUVU4oOCxmR0VUSEFMRigwLFJzVikp KTsKKyAgICBmU0VUQllURSgxLFJkVixmU0FUVU4oOCxmR0VUSEFMRigxLFJzVikpKTsKKyAgICBm U0VUQllURSgyLFJkViwwKTsKKyAgICBmU0VUQllURSgzLFJkViwwKTsKK30pCisKK1E2SU5TTihT Ml9zdnNhdGhiLCJSZDMyPXZzYXRoYihSczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiVmVjdG9y IHNhdHVyYXRlIGhhbGYgdG8gc2lnbmVkIGJ5dGUiLAoreworICAgIGZTRVRCWVRFKDAsUmRWLGZT QVROKDgsZkdFVEhBTEYoMCxSc1YpKSk7CisgICAgZlNFVEJZVEUoMSxSZFYsZlNBVE4oOCxmR0VU SEFMRigxLFJzVikpKTsKKyAgICBmU0VUQllURSgyLFJkViwwKTsKKyAgICBmU0VUQllURSgzLFJk ViwwKTsKK30pCisKKworUTZJTlNOKFMyX3ZzYXRoYiwiUmQzMj12c2F0aGIoUnNzMzIpIixBVFRS SUJTKEFfQVJDSFYyKSwKKyJWZWN0b3Igc2F0dXJhdGUgaGFsZiB0byBzaWduZWQgYnl0ZSIsCit7 CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgZlNF VEJZVEUoaSxSZFYsZlNBVE4oOCxmR0VUSEFMRihpLFJzc1YpKSk7CisgICAgfQorfSkKKworUTZJ TlNOKFMyX3Z0cnVub2hiLCJSZDMyPXZ0cnVub2hiKFJzczMyKSIsQVRUUklCUyhBX0FSQ0hWMiks CisiVmVjdG9yIHRydW5jYXRlIGhhbGYgdG8gYnl0ZTogdGFrZSBoaWdoIiwKK3sKKyAgICBmSElE RShpbnQgaTspCisgICAgZm9yIChpPTA7aTw0O2krKykgeworICAgICAgICBmU0VUQllURShpLFJk VixmR0VUQllURShpKjIrMSxSc3NWKSk7CisgICAgfQorfSkKKworUTZJTlNOKFMyX3Z0cnVuZXdo LCJSZGQzMj12dHJ1bmV3aChSc3MzMixSdHQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIlZlY3Rv ciB0cnVuY2F0ZSB3b3JkIHRvIGhhbGY6IHRha2UgbG93IiwKK3sKKyAgICBmU0VUSEFMRigwLFJk ZFYsZkdFVEhBTEYoMCxSdHRWKSk7CisgICAgZlNFVEhBTEYoMSxSZGRWLGZHRVRIQUxGKDIsUnR0 VikpOworICAgIGZTRVRIQUxGKDIsUmRkVixmR0VUSEFMRigwLFJzc1YpKTsKKyAgICBmU0VUSEFM RigzLFJkZFYsZkdFVEhBTEYoMixSc3NWKSk7Cit9KQorCitRNklOU04oUzJfdnRydW5vd2gsIlJk ZDMyPXZ0cnVub3doKFJzczMyLFJ0dDMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiVmVjdG9yIHRy dW5jYXRlIHdvcmQgdG8gaGFsZjogdGFrZSBoaWdoIiwKK3sKKyAgICBmU0VUSEFMRigwLFJkZFYs ZkdFVEhBTEYoMSxSdHRWKSk7CisgICAgZlNFVEhBTEYoMSxSZGRWLGZHRVRIQUxGKDMsUnR0Vikp OworICAgIGZTRVRIQUxGKDIsUmRkVixmR0VUSEFMRigxLFJzc1YpKTsKKyAgICBmU0VUSEFMRigz LFJkZFYsZkdFVEhBTEYoMyxSc3NWKSk7Cit9KQorCisKK1E2SU5TTihTMl92dHJ1bmVoYiwiUmQz Mj12dHJ1bmVoYihSc3MzMikiLEFUVFJJQlMoKSwKKyJWZWN0b3IgdHJ1bmNhdGUgaGFsZiB0byBi eXRlOiB0YWtlIGxvdyIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAoaT0wO2k8NDtp KyspIHsKKyAgICAgICAgZlNFVEJZVEUoaSxSZFYsZkdFVEJZVEUoaSoyLFJzc1YpKTsKKyAgICB9 Cit9KQorCitRNklOU04oUzZfdnRydW5laGJfcHBwLCJSZGQzMj12dHJ1bmVoYihSc3MzMixSdHQz MikiLEFUVFJJQlMoKSwKKyJWZWN0b3IgdHJ1bmNhdGUgaGFsZiB0byBieXRlOiB0YWtlIGxvdyIs Cit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAg ZlNFVEJZVEUoaSxSZGRWLGZHRVRCWVRFKGkqMixSdHRWKSk7CisgICAgICAgIGZTRVRCWVRFKGkr NCxSZGRWLGZHRVRCWVRFKGkqMixSc3NWKSk7CisgICAgfQorfSkKKworUTZJTlNOKFM2X3Z0cnVu b2hiX3BwcCwiUmRkMzI9dnRydW5vaGIoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiVmVjdG9y IHRydW5jYXRlIGhhbGYgdG8gYnl0ZTogdGFrZSBoaWdoIiwKK3sKKyAgICBmSElERShpbnQgaTsp CisgICAgZm9yIChpPTA7aTw0O2krKykgeworICAgICAgICBmU0VUQllURShpLFJkZFYsZkdFVEJZ VEUoaSoyKzEsUnR0VikpOworICAgICAgICBmU0VUQllURShpKzQsUmRkVixmR0VUQllURShpKjIr MSxSc3NWKSk7CisgICAgfQorfSkKKworUTZJTlNOKFMyX3ZzeHRodywiUmRkMzI9dnN4dGh3KFJz MzIpIixBVFRSSUJTKCksCisiVmVjdG9yIHNpZ24gZXh0ZW5kIGhhbGYgdG8gd29yZCIsCit7Cisg ICAgZkhJREUoaW50IGk7KQorICAgIGZvciAoaT0wO2k8MjtpKyspIHsKKyAgICAgICAgZlNFVFdP UkQoaSxSZGRWLGZHRVRIQUxGKGksUnNWKSk7CisgICAgfQorfSkKKworUTZJTlNOKFMyX3Z6eHRo dywiUmRkMzI9dnp4dGh3KFJzMzIpIixBVFRSSUJTKCksCisiVmVjdG9yIHplcm8gZXh0ZW5kIGhh bGYgdG8gd29yZCIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAoaT0wO2k8MjtpKysp IHsKKyAgICAgICAgZlNFVFdPUkQoaSxSZGRWLGZHRVRVSEFMRihpLFJzVikpOworICAgIH0KK30p CisKKworUTZJTlNOKFMyX3ZzYXR3aCwiUmQzMj12c2F0d2goUnNzMzIpIixBVFRSSUJTKCksCisi VmVjdG9yIHNhdHVyYXRlIHdvcmQgdG8gc2lnbmVkIGhhbGYiLAoreworICAgIGZISURFKGludCBp OykKKyAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRWLGZTQVRO KDE2LGZHRVRXT1JEKGksUnNzVikpKTsKKyAgICB9Cit9KQorCitRNklOU04oUzJfdnNhdHd1aCwi UmQzMj12c2F0d3VoKFJzczMyKSIsQVRUUklCUygpLAorIlZlY3RvciBzYXR1cmF0ZSB3b3JkIHRv IHVuc2lnbmVkIGhhbGYiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDI7 aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRWLGZTQVRVTigxNixmR0VUV09SRChpLFJzc1Yp KSk7CisgICAgfQorfSkKKworLyogT3RoZXIgbWlzYyBpbnNucyBvZiB0aGlzIHR5cGUgKi8KKwor UTZJTlNOKFMyX3BhY2tobCwiUmRkMzI9cGFja2hsKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJQ YWNrIGhpZ2ggaGFsZndvcmRzIGFuZCBsb3cgaGFsZndvcmRzIHRvZ2V0aGVyIiwKK3sKKyAgICBm U0VUSEFMRigwLFJkZFYsZkdFVEhBTEYoMCxSdFYpKTsKKyAgICBmU0VUSEFMRigxLFJkZFYsZkdF VEhBTEYoMCxSc1YpKTsKKyAgICBmU0VUSEFMRigyLFJkZFYsZkdFVEhBTEYoMSxSdFYpKTsKKyAg ICBmU0VUSEFMRigzLFJkZFYsZkdFVEhBTEYoMSxSc1YpKTsKK30pCisKK1E2SU5TTihBMl9zd2l6 LCJSZDMyPXN3aXooUnMzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkVuZGlhbiBzd2FwIHRoZSBi eXRlcyBvZiBScyIsCit7CisgICAgZlNFVEJZVEUoMCxSZFYsZkdFVEJZVEUoMyxSc1YpKTsKKyAg ICBmU0VUQllURSgxLFJkVixmR0VUQllURSgyLFJzVikpOworICAgIGZTRVRCWVRFKDIsUmRWLGZH RVRCWVRFKDEsUnNWKSk7CisgICAgZlNFVEJZVEUoMyxSZFYsZkdFVEJZVEUoMCxSc1YpKTsKK30p CisKKworCisvKiBWZWN0b3IgU2F0IHdpdGhvdXQgUGFja2luZyAqLworUTZJTlNOKFMyX3ZzYXRo dWJfbm9wYWNrLCJSZGQzMj12c2F0aHViKFJzczMyKSIsQVRUUklCUygpLAorIlZlY3RvciBzYXR1 cmF0ZSBoYWxmIHRvIHVuc2lnbmVkIGJ5dGUiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBm b3IgKGk9MDtpPDQ7aSsrKSB7CisgICAgICAgIGZTRVRIQUxGKGksUmRkVixmU0FUVU4oOCxmR0VU SEFMRihpLFJzc1YpKSk7CisgICAgfQorfSkKKworUTZJTlNOKFMyX3ZzYXRoYl9ub3BhY2ssIlJk ZDMyPXZzYXRoYihSc3MzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIlZlY3RvciBzYXR1cmF0ZSBo YWxmIHRvIHNpZ25lZCBieXRlIHdpdGhvdXQgcGFjayIsCit7CisgICAgZkhJREUoaW50IGk7KQor ICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgICAgICAgZlNFVEhBTEYoaSxSZGRWLGZTQVROKDgs ZkdFVEhBTEYoaSxSc3NWKSkpOworICAgIH0KK30pCisKK1E2SU5TTihTMl92c2F0d2hfbm9wYWNr LCJSZGQzMj12c2F0d2goUnNzMzIpIixBVFRSSUJTKCksCisiVmVjdG9yIHNhdHVyYXRlIHdvcmQg dG8gc2lnbmVkIGhhbGYiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDI7 aSsrKSB7CisgICAgICAgIGZTRVRXT1JEKGksUmRkVixmU0FUTigxNixmR0VUV09SRChpLFJzc1Yp KSk7CisgICAgfQorfSkKKworUTZJTlNOKFMyX3ZzYXR3dWhfbm9wYWNrLCJSZGQzMj12c2F0d3Vo KFJzczMyKSIsQVRUUklCUygpLAorIlZlY3RvciBzYXR1cmF0ZSB3b3JkIHRvIHVuc2lnbmVkIGhh bGYiLAoreworICAgIGZISURFKGludCBpOykKKyAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgICAg ICAgIGZTRVRXT1JEKGksUmRkVixmU0FUVU4oMTYsZkdFVFdPUkQoaSxSc3NWKSkpOworICAgIH0K K30pCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisvKiBTaHVmZmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK1E2SU5TTihT Ml9zaHVmZm9iLCJSZGQzMj1zaHVmZm9iKFJ0dDMyLFJzczMyKSIsQVRUUklCUygpLAorIlNodWZm bGUgaGlnaCBieXRlcyB0b2dldGhlciIsCit7CisgICAgZkhJREUoaW50IGk7KQorICAgIGZvciAo aT0wO2k8NDtpKyspIHsKKyAgICAgICAgZlNFVEJZVEUoaSoyICAsUmRkVixmR0VUQllURShpKjIr MSxSc3NWKSk7CisgICAgICAgIGZTRVRCWVRFKGkqMisxLFJkZFYsZkdFVEJZVEUoaSoyKzEsUnR0 VikpOworICAgIH0KK30pCisKK1E2SU5TTihTMl9zaHVmZmViLCJSZGQzMj1zaHVmZmViKFJzczMy LFJ0dDMyKSIsQVRUUklCUygpLAorIlNodWZmbGUgbG93IGJ5dGVzIHRvZ2V0aGVyIiwKK3sKKyAg ICBmSElERShpbnQgaTspCisgICAgZm9yIChpPTA7aTw0O2krKykgeworICAgICAgICBmU0VUQllU RShpKjIgICxSZGRWLGZHRVRCWVRFKGkqMixSdHRWKSk7CisgICAgICAgIGZTRVRCWVRFKGkqMisx LFJkZFYsZkdFVEJZVEUoaSoyLFJzc1YpKTsKKyAgICB9Cit9KQorCitRNklOU04oUzJfc2h1ZmZv aCwiUmRkMzI9c2h1ZmZvaChSdHQzMixSc3MzMikiLEFUVFJJQlMoKSwKKyJTaHVmZmxlIGhpZ2gg aGFsdmVzIHRvZ2V0aGVyIiwKK3sKKyAgICBmSElERShpbnQgaTspCisgICAgZm9yIChpPTA7aTwy O2krKykgeworICAgICAgICBmU0VUSEFMRihpKjIgICxSZGRWLGZHRVRIQUxGKGkqMisxLFJzc1Yp KTsKKyAgICAgICAgZlNFVEhBTEYoaSoyKzEsUmRkVixmR0VUSEFMRihpKjIrMSxSdHRWKSk7Cisg ICAgfQorfSkKKworUTZJTlNOKFMyX3NodWZmZWgsIlJkZDMyPXNodWZmZWgoUnNzMzIsUnR0MzIp IixBVFRSSUJTKCksCisiU2h1ZmZsZSBsb3cgaGFsdmVzIHRvZ2V0aGVyIiwKK3sKKyAgICBmSElE RShpbnQgaTspCisgICAgZm9yIChpPTA7aTwyO2krKykgeworICAgICAgICBmU0VUSEFMRihpKjIg ICxSZGRWLGZHRVRIQUxGKGkqMixSdHRWKSk7CisgICAgICAgIGZTRVRIQUxGKGkqMisxLFJkZFYs ZkdFVEhBTEYoaSoyLFJzc1YpKTsKKyAgICB9Cit9KQorCisKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogU3RyYW5nZSBiaXQgaW5zdHJ1Y3Rpb25z ICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKworUTZJTlNOKFM1X3BvcGNvdW50cCwiUmQzMj1wb3Bjb3VudChSc3Mz MikiLEFUVFJJQlMoKSwKKyJQb3B1bGF0aW9uIENvdW50IiwgeyBSZFYgPSBmQ09VTlRPTkVTXzgo UnNzVik7IH0pCisKK1E2SU5TTihTNF9wYXJpdHksIlJkMzI9cGFyaXR5KFJzMzIsUnQzMikiLCwK KyJQYXJpdHkgb2YgTWFza2VkIFZhbHVlIiwgeyBSZFYgPSAxJmZDT1VOVE9ORVNfNChSc1YgJiBS dFYpOyB9KQorCitRNklOU04oUzJfcGFyaXR5cCwiUmQzMj1wYXJpdHkoUnNzMzIsUnR0MzIpIixB VFRSSUJTKEFfQVJDSFYyKSwKKyJQYXJpdHkgb2YgTWFza2VkIFZhbHVlIiwgeyBSZFYgPSAxJmZD T1VOVE9ORVNfOChSc3NWICYgUnR0Vik7IH0pCisKK1E2SU5TTihTMl9sZnNwLCJSZGQzMj1sZnMo UnNzMzIsUnR0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJQYXJpdHkgb2YgTWFza2VkIFZhbHVl IiwgeyBSZGRWID0gKGZDQVNUOHUoUnNzVikgPj4gMSkgfCAoZkNBU1Q4dSgoMSZmQ09VTlRPTkVT XzgoUnNzViAmIFJ0dFYpKSk8PDYzKSA7IH0pCisKK1E2SU5TTihTMl9jbGJub3JtLCJSZDMyPW5v cm1hbXQoUnMzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkNvdW50IGxlYWRpbmcgc2lnbiBiaXRz IC0gMSIsIHsgaWYgKFJzViA9PSAwKSB7IFJkViA9IDA7IH0gZWxzZSB7IFJkViA9IChmTUFYKGZD TDFfNChSc1YpLGZDTDFfNCh+UnNWKSkpLTE7fSB9KQorCitRNklOU04oUzRfY2xiYWRkaSwiUmQz Mj1hZGQoY2xiKFJzMzIpLCNzNikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkNvdW50IGxlYWRpbmcg c2lnbiBiaXRzIHRoZW4gYWRkIHNpZ25lZCBudW1iZXIiLAoreyBSZFYgPSAoZk1BWChmQ0wxXzQo UnNWKSxmQ0wxXzQoflJzVikpKStzaVY7fSApCisKK1E2SU5TTihTNF9jbGJwbm9ybSwiUmQzMj1u b3JtYW10KFJzczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQ291bnQgbGVhZGluZyBzaWduIGJp dHMgLSAxIiwgeyBpZiAoUnNzViA9PSAwKSB7IFJkViA9IDA7IH0KK2Vsc2UgeyBSZFYgPSAoZk1B WChmQ0wxXzgoUnNzViksZkNMMV84KH5Sc3NWKSkpLTE7fX0pCisKK1E2SU5TTihTNF9jbGJwYWRk aSwiUmQzMj1hZGQoY2xiKFJzczMyKSwjczYpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJDb3VudCBs ZWFkaW5nIHNpZ24gYml0cyB0aGVuIGFkZCBzaWduZWQgbnVtYmVyIiwKK3sgUmRWID0gKGZNQVgo ZkNMMV84KFJzc1YpLGZDTDFfOCh+UnNzVikpKStzaVY7fSkKKworCitRNklOU04oUzJfY2xiLCJS ZDMyPWNsYihSczMyKSIsQVRUUklCUygpLAorIkNvdW50IGxlYWRpbmcgYml0cyIsIHtSZFYgPSBm TUFYKGZDTDFfNChSc1YpLGZDTDFfNCh+UnNWKSk7fSkKKworCitRNklOU04oUzJfY2wwLCJSZDMy PWNsMChSczMyKSIsQVRUUklCUygpLAorIkNvdW50IGxlYWRpbmcgYml0cyIsIHtSZFYgPSBmQ0wx XzQoflJzVik7fSkKKworUTZJTlNOKFMyX2NsMSwiUmQzMj1jbDEoUnMzMikiLEFUVFJJQlMoKSwK KyJDb3VudCBsZWFkaW5nIGJpdHMiLCB7UmRWID0gZkNMMV80KFJzVik7fSkKKworUTZJTlNOKFMy X2NsYnAsIlJkMzI9Y2xiKFJzczMyKSIsQVRUUklCUygpLAorIkNvdW50IGxlYWRpbmcgYml0cyIs IHtSZFYgPSBmTUFYKGZDTDFfOChSc3NWKSxmQ0wxXzgoflJzc1YpKTt9KQorCitRNklOU04oUzJf Y2wwcCwiUmQzMj1jbDAoUnNzMzIpIixBVFRSSUJTKCksCisiQ291bnQgbGVhZGluZyBiaXRzIiwg e1JkViA9IGZDTDFfOCh+UnNzVik7fSkKKworUTZJTlNOKFMyX2NsMXAsIlJkMzI9Y2wxKFJzczMy KSIsQVRUUklCUygpLAorIkNvdW50IGxlYWRpbmcgYml0cyIsIHtSZFYgPSBmQ0wxXzgoUnNzVik7 fSkKKworCisKKworUTZJTlNOKFMyX2JyZXYsICJSZDMyPWJyZXYoUnMzMikiLCAgIEFUVFJJQlMo QV9BUkNIVjIpLCAiQml0IFJldmVyc2UiLHtSZFYgPSBmQlJFVl80KFJzVik7fSkKK1E2SU5TTihT Ml9icmV2cCwiUmRkMzI9YnJldihSc3MzMikiLCBBVFRSSUJTKCksICJCaXQgUmV2ZXJzZSIse1Jk ZFYgPSBmQlJFVl84KFJzc1YpO30pCitRNklOU04oUzJfY3QwLCAgIlJkMzI9Y3QwKFJzMzIpIiwg ICAgQVRUUklCUyhBX0FSQ0hWMiksICJDb3VudCBUcmFpbGluZyIse1JkViA9IGZDTDFfNCh+ZkJS RVZfNChSc1YpKTt9KQorUTZJTlNOKFMyX2N0MSwgICJSZDMyPWN0MShSczMyKSIsICAgIEFUVFJJ QlMoQV9BUkNIVjIpLCAiQ291bnQgVHJhaWxpbmciLHtSZFYgPSBmQ0wxXzQoZkJSRVZfNChSc1Yp KTt9KQorUTZJTlNOKFMyX2N0MHAsICJSZDMyPWN0MChSc3MzMikiLCAgIEFUVFJJQlMoKSwgIkNv dW50IFRyYWlsaW5nIix7UmRWID0gZkNMMV84KH5mQlJFVl84KFJzc1YpKTt9KQorUTZJTlNOKFMy X2N0MXAsICJSZDMyPWN0MShSc3MzMikiLCAgIEFUVFJJQlMoKSwgIkNvdW50IFRyYWlsaW5nIix7 UmRWID0gZkNMMV84KGZCUkVWXzgoUnNzVikpO30pCisKKworUTZJTlNOKFMyX2ludGVybGVhdmUs IlJkZDMyPWludGVybGVhdmUoUnNzMzIpIixBVFRSSUJTKEFfQVJDSFYyKSwiSW50ZXJsZWF2ZSBi aXRzIiwKK3tSZGRWID0gZklOVEVSTEVBVkUoZkdFVFdPUkQoMSxSc3NWKSxmR0VUV09SRCgwLFJz c1YpKTt9KQorCitRNklOU04oUzJfZGVpbnRlcmxlYXZlLCJSZGQzMj1kZWludGVybGVhdmUoUnNz MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwiSW50ZXJsZWF2ZSBiaXRzIiwKK3tSZGRWID0gZkRFSU5U RVJMRUFWRShSc3NWKTt9KQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc3Vi aW5zbnMuaWRlZiBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL3N1Ymluc25zLmlkZWYKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMxYzc0ZgotLS0gL2Rldi9udWxsCisrKyBi L3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL3N1Ymluc25zLmlkZWYKQEAgLTAsMCArMSwxNDkgQEAK Ky8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor ICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisgKi8KKworLyoKKyAqIHN1Yi1pbnN0cnVjdGlvbnMKKyAqLworCisK KworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgIEEtdHlw ZSBzdWJpbnNucyAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworCitRNklOU04oU0ExX2FkZGksICAgICAiUngxNj1hZGQoUngxNiwjczcpIiwgICAgQVRU UklCUyhBX1NVQklOU04pLCJBZGQiLCAgICAgICAgeyBmSU1NRVhUKHNpVik7IFJ4Vj1SeFYrc2lW O30pCitRNklOU04oU0ExX3RmciwgICAgICAiUmQxNj1SczE2IiwgICAgICAgICAgICAgQVRUUklC UyhBX1NVQklOU04pLCJUZnIiLCAgICAgICAgeyBSZFY9UnNWO30pCitRNklOU04oU0ExX3NldGks ICAgICAiUmQxNj0jdTYiLCAgICAgICAgICAgICAgQVRUUklCUyhBX1NVQklOU04pLCJTZXQgaW1t ZWQiLCAgeyBmSU1NRVhUKHVpVik7IFJkVj11aVY7fSkKK1E2SU5TTihTQTFfc2V0aW4xLCAgICJS ZDE2PSMtMSIsICAgICAgICAgICAgICBBVFRSSUJTKEFfU1VCSU5TTiksIlNldCB0byAtMSIsICB7 IFJkVj0tMTt9KQorUTZJTlNOKFNBMV9jbHJ0bmV3LCAgImlmIChwMC5uZXcpIFJkMTY9IzAiLCAg IEFUVFJJQlMoQV9TVUJJTlNOKSwiY2xlYXIgaWYgdHJ1ZSIsIHsgaWYgKGZMU0JORVcwKSB7UmRW PTA7fSBlbHNlIHtDQU5DRUw7fSB9KQorUTZJTlNOKFNBMV9jbHJmbmV3LCAgImlmICghcDAubmV3 KSBSZDE2PSMwIiwgIEFUVFJJQlMoQV9TVUJJTlNOKSwiY2xlYXIgaWYgZmFsc2UiLHsgaWYgKGZM U0JORVcwTk9UKSB7UmRWPTA7fSBlbHNlIHtDQU5DRUw7fSB9KQorUTZJTlNOKFNBMV9jbHJ0LCAg ICAgImlmIChwMCkgUmQxNj0jMCIsICAgICAgIEFUVFJJQlMoQV9TVUJJTlNOKSwiY2xlYXIgaWYg dHJ1ZSIsIHsgaWYgKGZMU0JPTEQoZlJFQURfUDAoKSkpIHtSZFY9MDt9IGVsc2Uge0NBTkNFTDt9 IH0pCitRNklOU04oU0ExX2NscmYsICAgICAiaWYgKCFwMCkgUmQxNj0jMCIsICAgICAgQVRUUklC UyhBX1NVQklOU04pLCJjbGVhciBpZiBmYWxzZSIseyBpZiAoZkxTQk9MRE5PVChmUkVBRF9QMCgp KSkge1JkVj0wO30gZWxzZSB7Q0FOQ0VMO30gfSkKKworUTZJTlNOKFNBMV9hZGRzcCwgICAgIlJk MTY9YWRkKHIyOSwjdTY6MikiLCAgIEFUVFJJQlMoQV9TVUJJTlNOKSwiQWRkIiwgICAgICAgIHsg UmRWPWZSRUFEX1NQKCkrdWlWOyB9KQorUTZJTlNOKFNBMV9pbmMsICAgICAgIlJkMTY9YWRkKFJz MTYsIzEpIiwgICAgIEFUVFJJQlMoQV9TVUJJTlNOKSwiSW5jIiwgICAgICAgIHsgUmRWPVJzVisx O30pCitRNklOU04oU0ExX2RlYywgICAgICAiUmQxNj1hZGQoUnMxNiwjLTEpIiwgICAgQVRUUklC UyhBX1NVQklOU04pLCJEZWMiLCAgICAgICAgeyBSZFY9UnNWLTE7fSkKK1E2SU5TTihTQTFfYWRk cngsICAgICJSeDE2PWFkZChSeDE2LFJzMTYpIiwgICBBVFRSSUJTKEFfU1VCSU5TTiksIkFkZCIs ICAgICAgICB7IFJ4Vj1SeFYrUnNWOyB9KQorUTZJTlNOKFNBMV96eHRiLCAgICAgIlJkMTY9YW5k KFJzMTYsIzI1NSkiLCAgIEFUVFJJQlMoQV9TVUJJTlNOKSwiWnh0YiIsICAgICAgIHsgUmRWPSBm WlhUTig4LDMyLFJzVik7fSkKK1E2SU5TTihTQTFfYW5kMSwgICAgICJSZDE2PWFuZChSczE2LCMx KSIsICAgICBBVFRSSUJTKEFfU1VCSU5TTiksIkFuZCAjMSIsICAgICB7IFJkVj0gUnNWJjE7fSkK K1E2SU5TTihTQTFfc3h0YiwgICAgICJSZDE2PXN4dGIoUnMxNikiLCAgICAgICBBVFRSSUJTKEFf U1VCSU5TTiksIlN4dGIiLCAgICAgICB7IFJkVj0gZlNYVE4oOCwzMixSc1YpO30pCitRNklOU04o U0ExX3p4dGgsICAgICAiUmQxNj16eHRoKFJzMTYpIiwgICAgICAgQVRUUklCUyhBX1NVQklOU04p LCJaeHRoIiwgICAgICAgeyBSZFY9IGZaWFROKDE2LDMyLFJzVik7fSkKK1E2SU5TTihTQTFfc3h0 aCwgICAgICJSZDE2PXN4dGgoUnMxNikiLCAgICAgICBBVFRSSUJTKEFfU1VCSU5TTiksIlN4dGgi LCAgICAgICB7IFJkVj0gZlNYVE4oMTYsMzIsUnNWKTt9KQorUTZJTlNOKFNBMV9jb21iaW5lenIs IlJkZDg9Y29tYmluZSgjMCxSczE2KSIsIEFUVFJJQlMoQV9TVUJJTlNOKSwiQ29tYmluZXMiLCAg IHsgZlNFVFdPUkQoMCxSZGRWLFJzVik7IGZTRVRXT1JEKDEsUmRkViwwKTsgfSkKK1E2SU5TTihT QTFfY29tYmluZXJ6LCJSZGQ4PWNvbWJpbmUoUnMxNiwjMCkiLCBBVFRSSUJTKEFfU1VCSU5TTiks IkNvbWJpbmVzIiwgICB7IGZTRVRXT1JEKDAsUmRkViwwKTsgZlNFVFdPUkQoMSxSZGRWLFJzVik7 IH0pCitRNklOU04oU0ExX2NvbWJpbmUwaSwiUmRkOD1jb21iaW5lKCMwLCN1MikiLCBBVFRSSUJT KEFfU1VCSU5TTiksIkNvbWJpbmVzIiwgICB7IGZTRVRXT1JEKDAsUmRkVix1aVYpOyBmU0VUV09S RCgxLFJkZFYsMCk7IH0pCitRNklOU04oU0ExX2NvbWJpbmUxaSwiUmRkOD1jb21iaW5lKCMxLCN1 MikiLCBBVFRSSUJTKEFfU1VCSU5TTiksIkNvbWJpbmVzIiwgICB7IGZTRVRXT1JEKDAsUmRkVix1 aVYpOyBmU0VUV09SRCgxLFJkZFYsMSk7IH0pCitRNklOU04oU0ExX2NvbWJpbmUyaSwiUmRkOD1j b21iaW5lKCMyLCN1MikiLCBBVFRSSUJTKEFfU1VCSU5TTiksIkNvbWJpbmVzIiwgICB7IGZTRVRX T1JEKDAsUmRkVix1aVYpOyBmU0VUV09SRCgxLFJkZFYsMik7IH0pCitRNklOU04oU0ExX2NvbWJp bmUzaSwiUmRkOD1jb21iaW5lKCMzLCN1MikiLCBBVFRSSUJTKEFfU1VCSU5TTiksIkNvbWJpbmVz IiwgICB7IGZTRVRXT1JEKDAsUmRkVix1aVYpOyBmU0VUV09SRCgxLFJkZFYsMyk7IH0pCitRNklO U04oU0ExX2NtcGVxaSwgICAicDA9Y21wLmVxKFJzMTYsI3UyKSIsICAgQVRUUklCUyhBX1NVQklO U04pLCJDb21wYXJlSW1tZWQiLHtmV1JJVEVfUDAoZjhCSVRTT0YoUnNWPT11aVYpKTt9KQorCisK KworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgTGQx LzIgc3ViaW5zbnMgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisKK1E2SU5TTihTTDFfbG9hZHJpX2lvLCAgIlJkMTY9bWVtdyhSczE2KyN1NDoyKSIs IEFUVFJJQlMoQV9MT0FELEFfU1VCSU5TTiksImxvYWQgd29yZCIsIHtmRUFfUkkoUnNWLHVpVik7 IGZMT0FEKDEsNCx1LEVBLFJkVik7fSkKK1E2SU5TTihTTDFfbG9hZHJ1Yl9pbywgIlJkMTY9bWVt dWIoUnMxNisjdTQ6MCkiLEFUVFJJQlMoQV9MT0FELEFfU1VCSU5TTiksImxvYWQgYnl0ZSIsIHtm RUFfUkkoUnNWLHVpVik7IGZMT0FEKDEsMSx1LEVBLFJkVik7fSkKKworUTZJTlNOKFNMMl9sb2Fk cmhfaW8sICAiUmQxNj1tZW1oKFJzMTYrI3UzOjEpIiwgQVRUUklCUyhBX0xPQUQsQV9TVUJJTlNO KSwibG9hZCBoYWxmIiwge2ZFQV9SSShSc1YsdWlWKTsgZkxPQUQoMSwyLHMsRUEsUmRWKTt9KQor UTZJTlNOKFNMMl9sb2FkcnVoX2lvLCAiUmQxNj1tZW11aChSczE2KyN1MzoxKSIsQVRUUklCUyhB X0xPQUQsQV9TVUJJTlNOKSwibG9hZCBoYWxmIiwge2ZFQV9SSShSc1YsdWlWKTsgZkxPQUQoMSwy LHUsRUEsUmRWKTt9KQorUTZJTlNOKFNMMl9sb2FkcmJfaW8sICAiUmQxNj1tZW1iKFJzMTYrI3Uz OjApIiwgQVRUUklCUyhBX0xPQUQsQV9TVUJJTlNOKSwibG9hZCBieXRlIiwge2ZFQV9SSShSc1Ys dWlWKTsgZkxPQUQoMSwxLHMsRUEsUmRWKTt9KQorUTZJTlNOKFNMMl9sb2Fkcmlfc3AsICAiUmQx Nj1tZW13KHIyOSsjdTU6MikiLCAgQVRUUklCUyhBX0xPQUQsQV9TVUJJTlNOKSwibG9hZCB3b3Jk Iiwge2ZFQV9SSShmUkVBRF9TUCgpLHVpVik7IGZMT0FEKDEsNCx1LEVBLFJkVik7fSkKK1E2SU5T TihTTDJfbG9hZHJkX3NwLCAgIlJkZDg9bWVtZChyMjkrI3U1OjMpIiwgQVRUUklCUyhBX0xPQUQs QV9TVUJJTlNOKSwibG9hZCBkd29yZCIse2ZFQV9SSShmUkVBRF9TUCgpLHVpVik7IGZMT0FEKDEs OCx1LEVBLFJkZFYpO30pCisKK1E2SU5TTihTTDJfZGVhbGxvY2ZyYW1lLCJkZWFsbG9jZnJhbWUi LCBBVFRSSUJTKEFfU1VCSU5TTixBX0xPQUQpLCAiRGVhbGxvY2F0ZSBzdGFjayBmcmFtZSIsCit7 IGZISURFKHNpemU4dV90IHRtcDspIGZFQV9SRUcoZlJFQURfRlAoKSk7CisgIGZMT0FEKDEsOCx1 LEVBLHRtcCk7CisgIHRtcCA9IGZGUkFNRV9VTlNDUkFNQkxFKHRtcCk7CisgIGZXUklURV9MUihm R0VUV09SRCgxLHRtcCkpOworICBmV1JJVEVfRlAoZkdFVFdPUkQoMCx0bXApKTsKKyAgZldSSVRF X1NQKEVBKzgpOyB9KQorCitRNklOU04oU0wyX3JldHVybiwiZGVhbGxvY19yZXR1cm4iLCBBVFRS SUJTKEFfSklORElSLEFfU1VCSU5TTixBX0xPQUQsQV9SRVRVUk4sQV9SRVNUUklDVF9TTE9UME9O TFkpLCAiRGVhbGxvY2F0ZSBzdGFjayBmcmFtZSBhbmQgcmV0dXJuIiwKK3sgZkhJREUoc2l6ZTh1 X3QgdG1wOykgZkVBX1JFRyhmUkVBRF9GUCgpKTsKKyAgZkxPQUQoMSw4LHUsRUEsdG1wKTsKKyAg dG1wID0gZkZSQU1FX1VOU0NSQU1CTEUodG1wKTsKKyAgZldSSVRFX0xSKGZHRVRXT1JEKDEsdG1w KSk7CisgIGZXUklURV9GUChmR0VUV09SRCgwLHRtcCkpOworICBmV1JJVEVfU1AoRUErOCk7Cisg IGZKVU1QUihSRUdfTFIsZkdFVFdPUkQoMSx0bXApLENPRl9UWVBFX0pVTVBSKTt9KQorCitRNklO U04oU0wyX3JldHVybl90LCJpZiAocDApIGRlYWxsb2NfcmV0dXJuIiwgQVRUUklCUyhBX0pJTkRJ Uk9MRCxBX1NVQklOU04sQV9MT0FELEFfUkVUVVJOLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwgIkRl YWxsb2NhdGUgc3RhY2sgZnJhbWUgYW5kIHJldHVybiIsCit7IGZISURFKHNpemU4dV90IHRtcDsp OyBmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCT0xEKGZSRUFEX1AwKCkpLCwgU1BFQ1VMQVRF X05PVF9UQUtFTiw0LDApOyBmRUFfUkVHKGZSRUFEX0ZQKCkpOyBpZiAoZkxTQk9MRChmUkVBRF9Q MCgpKSkgeyBmTE9BRCgxLDgsdSxFQSx0bXApOyB0bXAgPSBmRlJBTUVfVU5TQ1JBTUJMRSh0bXAp OyBmV1JJVEVfTFIoZkdFVFdPUkQoMSx0bXApKTsgZldSSVRFX0ZQKGZHRVRXT1JEKDAsdG1wKSk7 IGZXUklURV9TUChFQSs4KTsKKyAgZkpVTVBSKFJFR19MUixmR0VUV09SRCgxLHRtcCksQ09GX1RZ UEVfSlVNUFIpO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO30gfSkKKworUTZJTlNOKFNMMl9yZXR1 cm5fZiwiaWYgKCFwMCkgZGVhbGxvY19yZXR1cm4iLCBBVFRSSUJTKEFfSklORElST0xELEFfU1VC SU5TTixBX0xPQUQsQV9SRVRVUk4sQV9SRVNUUklDVF9TTE9UME9OTFkpLCAiRGVhbGxvY2F0ZSBz dGFjayBmcmFtZSBhbmQgcmV0dXJuIiwKK3sgZkhJREUoc2l6ZTh1X3QgdG1wOyk7ZkJSQU5DSF9T UEVDVUxBVEVfU1RBTEwoZkxTQk9MRE5PVChmUkVBRF9QMCgpKSwsIFNQRUNVTEFURV9OT1RfVEFL RU4sNCwwKTsgZkVBX1JFRyhmUkVBRF9GUCgpKTsgaWYgKGZMU0JPTEROT1QoZlJFQURfUDAoKSkp IHsgZkxPQUQoMSw4LHUsRUEsdG1wKTsgdG1wID0gZkZSQU1FX1VOU0NSQU1CTEUodG1wKTsgZldS SVRFX0xSKGZHRVRXT1JEKDEsdG1wKSk7IGZXUklURV9GUChmR0VUV09SRCgwLHRtcCkpOyBmV1JJ VEVfU1AoRUErOCk7CisgIGZKVU1QUihSRUdfTFIsZkdFVFdPUkQoMSx0bXApLENPRl9UWVBFX0pV TVBSKTt9IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9IH0pCisKKworCitRNklOU04oU0wyX3JldHVy bl90bmV3LCJpZiAocDAubmV3KSBkZWFsbG9jX3JldHVybjpudCIsIEFUVFJJQlMoQV9KSU5ESVJO RVcsQV9TVUJJTlNOLEFfTE9BRCxBX1JFVFVSTixBX1JFU1RSSUNUX1NMT1QwT05MWSksICJEZWFs bG9jYXRlIHN0YWNrIGZyYW1lIGFuZCByZXR1cm4iLAoreyBmSElERShzaXplOHVfdCB0bXA7KSBm QlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCTkVXMCwsIFNQRUNVTEFURV9OT1RfVEFLRU4gLCA0 LDMpOyBmRUFfUkVHKGZSRUFEX0ZQKCkpOyBpZiAoZkxTQk5FVzApIHsgZkxPQUQoMSw4LHUsRUEs dG1wKTsgdG1wID0gZkZSQU1FX1VOU0NSQU1CTEUodG1wKTsgZldSSVRFX0xSKGZHRVRXT1JEKDEs dG1wKSk7IGZXUklURV9GUChmR0VUV09SRCgwLHRtcCkpOyBmV1JJVEVfU1AoRUErOCk7CisgIGZK VU1QUihSRUdfTFIsZkdFVFdPUkQoMSx0bXApLENPRl9UWVBFX0pVTVBSKTt9IGVsc2Uge0xPQURf Q0FOQ0VMKEVBKTt9IH0pCisKK1E2SU5TTihTTDJfcmV0dXJuX2ZuZXcsImlmICghcDAubmV3KSBk ZWFsbG9jX3JldHVybjpudCIsIEFUVFJJQlMoQV9KSU5ESVJORVcsQV9TVUJJTlNOLEFfTE9BRCxB X1JFVFVSTixBX1JFU1RSSUNUX1NMT1QwT05MWSksICJEZWFsbG9jYXRlIHN0YWNrIGZyYW1lIGFu ZCByZXR1cm4iLAoreyBmSElERShzaXplOHVfdCB0bXA7KSBmQlJBTkNIX1NQRUNVTEFURV9TVEFM TChmTFNCTkVXME5PVCwsIFNQRUNVTEFURV9OT1RfVEFLRU4gLCA0LDMpOyBmRUFfUkVHKGZSRUFE X0ZQKCkpOyBpZiAoZkxTQk5FVzBOT1QpIHsgZkxPQUQoMSw4LHUsRUEsdG1wKTsgdG1wID0gZkZS QU1FX1VOU0NSQU1CTEUodG1wKTsgZldSSVRFX0xSKGZHRVRXT1JEKDEsdG1wKSk7IGZXUklURV9G UChmR0VUV09SRCgwLHRtcCkpOyBmV1JJVEVfU1AoRUErOCk7CisgIGZKVU1QUihSRUdfTFIsZkdF VFdPUkQoMSx0bXApLENPRl9UWVBFX0pVTVBSKTt9IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9IH0p CisKKworUTZJTlNOKFNMMl9qdW1wcjMxLCJqdW1wciByMzEiLEFUVFJJQlMoQV9TVUJJTlNOLEFf SklORElSLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwiaW5kaXJlY3QgdW5jb25kaXRpb25hbCBqdW1w IiwKK3sgZkpVTVBSKFJFR19MUixmUkVBRF9MUigpLENPRl9UWVBFX0pVTVBSKTt9KQorCitRNklO U04oU0wyX2p1bXByMzFfdCwiaWYgKHAwKSBqdW1wciByMzEiLEFUVFJJQlMoQV9TVUJJTlNOLEFf SklORElST0xELEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwiaW5kaXJlY3QgY29uZGl0aW9uYWwganVt cCBpZiB0cnVlIiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCT0xEKGZSRUFEX1AwKCkp LCwgU1BFQ1VMQVRFX1RBS0VOLDQsMCk7IGlmIChmTFNCT0xEKGZSRUFEX1AwKCkpKSB7ZkpVTVBS KFJFR19MUixmUkVBRF9MUigpLENPRl9UWVBFX0pVTVBSKTt9fSkKKworUTZJTlNOKFNMMl9qdW1w cjMxX2YsImlmICghcDApIGp1bXByIHIzMSIsQVRUUklCUyhBX1NVQklOU04sQV9KSU5ESVJPTEQs QV9SRVNUUklDVF9TTE9UME9OTFkpLCJpbmRpcmVjdCBjb25kaXRpb25hbCBqdW1wIGlmIGZhbHNl IiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCT0xETk9UKGZSRUFEX1AwKCkpLCwgU1BF Q1VMQVRFX1RBS0VOLDQsMCk7IGlmIChmTFNCT0xETk9UKGZSRUFEX1AwKCkpKSB7ZkpVTVBSKFJF R19MUixmUkVBRF9MUigpLENPRl9UWVBFX0pVTVBSKTt9fSkKKworCisKK1E2SU5TTihTTDJfanVt cHIzMV90bmV3LCJpZiAocDAubmV3KSBqdW1wcjpudCByMzEiLEFUVFJJQlMoQV9TVUJJTlNOLEFf SklORElSTkVXLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwiaW5kaXJlY3QgY29uZGl0aW9uYWwganVt cCBpZiB0cnVlIiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCTkVXMCwsIFNQRUNVTEFU RV9OT1RfVEFLRU4gLCA0LDMpOyBpZiAoZkxTQk5FVzApIHtmSlVNUFIoUkVHX0xSLGZSRUFEX0xS KCksQ09GX1RZUEVfSlVNUFIpO319KQorCitRNklOU04oU0wyX2p1bXByMzFfZm5ldywiaWYgKCFw MC5uZXcpIGp1bXByOm50IHIzMSIsQVRUUklCUyhBX1NVQklOU04sQV9KSU5ESVJORVcsQV9SRVNU UklDVF9TTE9UME9OTFkpLCJpbmRpcmVjdCBjb25kaXRpb25hbCBqdW1wIGlmIGZhbHNlIiwKK3tm QlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCTkVXME5PVCwsIFNQRUNVTEFURV9OT1RfVEFLRU4g LCA0LDMpOyBpZiAoZkxTQk5FVzBOT1QpIHtmSlVNUFIoUkVHX0xSLGZSRUFEX0xSKCksQ09GX1RZ UEVfSlVNUFIpO319KQorCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAg ICAgICAgICAgICAgICAgICBTdDEvMiBzdWJpbnNucyAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKFNTMV9zdG9yZXdfaW8sICAibWVt dyhSczE2KyN1NDoyKT1SdDE2IiwgQVRUUklCUyhBX1NUT1JFLEFfU1VCSU5TTiksICJzdG9yZSB3 b3JkIiwge2ZFQV9SSShSc1YsdWlWKTsgZlNUT1JFKDEsNCxFQSxSdFYpO30pCitRNklOU04oU1Mx X3N0b3JlYl9pbywgICJtZW1iKFJzMTYrI3U0OjApPVJ0MTYiLCBBVFRSSUJTKEFfU1RPUkUsQV9T VUJJTlNOKSwgInN0b3JlIGJ5dGUiLCB7ZkVBX1JJKFJzVix1aVYpOyBmU1RPUkUoMSwxLEVBLGZH RVRCWVRFKDAsUnRWKSk7fSkKK1E2SU5TTihTUzJfc3RvcmVoX2lvLCAgIm1lbWgoUnMxNisjdTM6 MSk9UnQxNiIsIEFUVFJJQlMoQV9TVE9SRSxBX1NVQklOU04pLCAic3RvcmUgaGFsZiIsIHtmRUFf UkkoUnNWLHVpVik7IGZTVE9SRSgxLDIsRUEsZkdFVEhBTEYoMCxSdFYpKTt9KQorUTZJTlNOKFNT Ml9zdG9yZWRfc3AsICAibWVtZChyMjkrI3M2OjMpPVJ0dDgiLCBBVFRSSUJTKEFfU1RPUkUsQV9T VUJJTlNOKSwgInN0b3JlIGR3b3JkIix7ZkVBX1JJKGZSRUFEX1NQKCksc2lWKTsgZlNUT1JFKDEs OCxFQSxSdHRWKTt9KQorUTZJTlNOKFNTMl9zdG9yZXdfc3AsICAibWVtdyhyMjkrI3U1OjIpPVJ0 MTYiLCAgQVRUUklCUyhBX1NUT1JFLEFfU1VCSU5TTiksICJzdG9yZSB3b3JkIiwge2ZFQV9SSShm UkVBRF9TUCgpLHVpVik7IGZTVE9SRSgxLDQsRUEsUnRWKTt9KQorUTZJTlNOKFNTMl9zdG9yZXdp MCwgICAibWVtdyhSczE2KyN1NDoyKT0jMCIsIEFUVFJJQlMoQV9TVE9SRSxBX1NVQklOU04pLCAi c3RvcmUgd29yZCIsIHtmRUFfUkkoUnNWLHVpVik7IGZTVE9SRSgxLDQsRUEsMCk7fSkKK1E2SU5T TihTUzJfc3RvcmViaTAsICAgIm1lbWIoUnMxNisjdTQ6MCk9IzAiLCBBVFRSSUJTKEFfU1RPUkUs QV9TVUJJTlNOKSwgInN0b3JlIGJ5dGUiLCB7ZkVBX1JJKFJzVix1aVYpOyBmU1RPUkUoMSwxLEVB LDApO30pCitRNklOU04oU1MyX3N0b3Jld2kxLCAgICJtZW13KFJzMTYrI3U0OjIpPSMxIiwgQVRU UklCUyhBX1NUT1JFLEFfU1VCSU5TTiksICJzdG9yZSB3b3JkIiwge2ZFQV9SSShSc1YsdWlWKTsg ZlNUT1JFKDEsNCxFQSwxKTt9KQorUTZJTlNOKFNTMl9zdG9yZWJpMSwgICAibWVtYihSczE2KyN1 NDowKT0jMSIsIEFUVFJJQlMoQV9TVE9SRSxBX1NVQklOU04pLCAic3RvcmUgYnl0ZSIsIHtmRUFf UkkoUnNWLHVpVik7IGZTVE9SRSgxLDEsRUEsMSk7fSkKKworCitRNklOU04oU1MyX2FsbG9jZnJh bWUsImFsbG9jZnJhbWUoI3U1OjMpIiwgQVRUUklCUyhBX1NVQklOU04sQV9TVE9SRSxBX1JFU1RS SUNUX1NMT1QwT05MWSksICJBbGxvY2F0ZSBzdGFjayBmcmFtZSIsCit7IGZFQV9SSShmUkVBRF9T UCgpLC04KTsgIGZTVE9SRSgxLDgsRUEsZkZSQU1FX1NDUkFNQkxFKChmQ0FTVDhfOHUoZlJFQURf TFIoKSkgPDwgMzIpIHwgZkNBU1Q0XzR1KGZSRUFEX0ZQKCkpKSk7IGZXUklURV9GUChFQSk7IGZG UkFNRUNIRUNLKEVBLXVpVixFQSk7IGZXUklURV9TUChFQS11aVYpOyB9KQpkaWZmIC0tZ2l0IGEv dGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc3lzdGVtLmlkZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBv cnRlZC9zeXN0ZW0uaWRlZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTBl YmYxCi0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc3lzdGVtLmlk ZWYKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIxIFF1YWxj b21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisvKgorICogU3lzdGVt IEludGVyZmFjZSBJbnN0cnVjdGlvbnMKKyAqLworCisKKworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworLyogVXNlci0+T1MgaW50ZXJmYWNlICAgICAgICAg ICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworCitRNklOU04oSjJfdHJhcDAsInRyYXAwKCN1OCkiLEFUVFJJQlMoQV9DT0YpLAor IlRyYXAgdG8gT3BlcmF0aW5nIFN5c3RlbSIsCisgICAgZlRSQVAoMCx1aVYpOworKQorCitRNklO U04oWTJfaWNpbnZhLCJpY2ludmEoUnMzMikiLEFUVFJJQlMoQV9JQ09QLEFfSUNGTFVTSE9QKSwi SW5zdHJ1Y3Rpb24gQ2FjaGUgSW52YWxpZGF0ZSBBZGRyZXNzIix7ZkVBX1JFRyhSc1YpOyBmSUNJ TlZBKEVBKTt9KQorCitRNklOU04oWTJfaXN5bmMsImlzeW5jIixBVFRSSUJTKCksIk1lbW9yeSBT eW5jaHJvbml6YXRpb24iLHtmSVNZTkMoKTt9KQorUTZJTlNOKFkyX2JhcnJpZXIsImJhcnJpZXIi LEFUVFJJQlMoQV9SRVNUUklDVF9TTE9UME9OTFkpLCJNZW1vcnkgQmFycmllciIse2ZCQVJSSUVS KCk7fSkKK1E2SU5TTihZMl9zeW5jaHQsInN5bmNodCIsQVRUUklCUyhBX1JFU1RSSUNUX1NMT1Qw T05MWSksIk1lbW9yeSBTeW5jaHJvbml6YXRpb24iLHtmU1lOQ0goKTt9KQorCisKK1E2SU5TTihZ Ml9kY2ZldGNoYm8sImRjZmV0Y2goUnMzMisjdTExOjMpIixBVFRSSUJTKEFfUkVTVFJJQ1RfUFJF RkVSU0xPVDAsQV9EQ0ZFVENIKSwiRGF0YSBDYWNoZSBQcmVmZXRjaCIse2ZFQV9SSShSc1YsdWlW KTsgZkRDRkVUQ0goRUEpO30pCisKKworUTZJTlNOKFkyX2RjemVyb2EsImRjemVyb2EoUnMzMiki LEFUVFJJQlMoQV9TVE9SRSxBX1JFU1RSSUNUX1NMT1QwT05MWSxBX0RDWkVST0EpLCJaZXJvIGFu IGFsaWduZWQgMzItYnl0ZSBjYWNoZWxpbmUiLHtmRUFfUkVHKFJzVik7IGZEQ1pFUk9BKEVBKTt9 KQorUTZJTlNOKFkyX2RjY2xlYW5hLCJkY2NsZWFuYShSczMyKSIsQVRUUklCUyhBX1JFU1RSSUNU X1NMT1QwT05MWSxBX0RDRkxVU0hPUCksIkRhdGEgQ2FjaGUgQ2xlYW4gQWRkcmVzcyIse2ZFQV9S RUcoUnNWKTsgZkRDQ0xFQU5BKEVBKTt9KQorUTZJTlNOKFkyX2RjY2xlYW5pbnZhLCJkY2NsZWFu aW52YShSczMyKSIsQVRUUklCUyhBX1JFU1RSSUNUX1NMT1QwT05MWSxBX0RDRkxVU0hPUCksIkRh dGEgQ2FjaGUgQ2xlYW4gYW5kIEludmFsaWRhdGUgQWRkcmVzcyIse2ZFQV9SRUcoUnNWKTsgZkRD Q0xFQU5JTlZBKEVBKTt9KQorUTZJTlNOKFkyX2RjaW52YSwiZGNpbnZhKFJzMzIpIixBVFRSSUJT KEFfUkVTVFJJQ1RfU0xPVDBPTkxZLEFfRENGTFVTSE9QKSwiRGF0YSBDYWNoZSBJbnZhbGlkYXRl IEFkZHJlc3MiLHtmRUFfUkVHKFJzVik7IGZEQ0NMRUFOSU5WQShFQSk7fSkKKworCitRNklOU04o WTRfbDJmZXRjaCwibDJmZXRjaChSczMyLFJ0MzIpIixBVFRSSUJTKEFfUkVTVFJJQ1RfU0xPVDBP TkxZKSwiTDIgQ2FjaGUgUHJlZmV0Y2giLAoreyBmTDJGRVRDSChSc1YsCisgICAgICAgICAgIChS dFYmMHhmZiksIC8qaGVpZ2h0Ki8KKyAgICAgICAgICAgKChSdFY+PjgpJjB4ZmYpLCAvKndpZHRo Ki8KKyAgICAgICAgICAgKChSdFY+PjE2KSYweGZmZmYpLCAvKnN0cmlkZSovCisgICAgICAgICAg IDApOyAvKmV4dHJhIGF0dHJpYiBmbGFncyovCit9KQorCisKKworUTZJTlNOKFk1X2wyZmV0Y2gs ImwyZmV0Y2goUnMzMixSdHQzMikiLEFUVFJJQlMoQV9SRVNUUklDVF9TTE9UME9OTFkpLCJMMiBD YWNoZSBQcmVmZXRjaCIsCit7IGZMMkZFVENIKFJzViwKKyAgICAgICAgICAgZkdFVFVIQUxGKDAs UnR0ViksIC8qaGVpZ2h0Ki8KKyAgICAgICAgICAgZkdFVFVIQUxGKDEsUnR0ViksIC8qd2lkdGgq LworICAgICAgICAgICBmR0VUVUhBTEYoMixSdHRWKSwgLypzdHJpZGUqLworICAgICAgICAgICBm R0VUVUhBTEYoMyxSdHRWKSk7IC8qZmxhZ3MqLworfSkKLS0gCjIuNy40Cgo=